WO2021261514A1 - 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 - Google Patents

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 Download PDF

Info

Publication number
WO2021261514A1
WO2021261514A1 PCT/JP2021/023778 JP2021023778W WO2021261514A1 WO 2021261514 A1 WO2021261514 A1 WO 2021261514A1 JP 2021023778 W JP2021023778 W JP 2021023778W WO 2021261514 A1 WO2021261514 A1 WO 2021261514A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
tile
data
dimensional data
unit
Prior art date
Application number
PCT/JP2021/023778
Other languages
English (en)
French (fr)
Inventor
賀敬 井口
敏康 杉尾
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to CN202180042893.4A priority Critical patent/CN115997237A/zh
Publication of WO2021261514A1 publication Critical patent/WO2021261514A1/ja
Priority to US18/082,019 priority patent/US20230125048A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree

Definitions

  • the present disclosure relates to a three-dimensional data coding method, a three-dimensional data decoding method, a three-dimensional data coding device, and a three-dimensional data decoding device.
  • 3D data In the future, devices or services that utilize 3D data are expected to become widespread in a wide range of fields such as computer vision for autonomous operation of automobiles or robots, map information, monitoring, infrastructure inspection, or video distribution.
  • the 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.
  • point cloud As one of the expression methods of 3D data, there is an expression method called point cloud that expresses the shape of a 3D structure by a point cloud in a 3D space. In the point cloud, the position and color of the point cloud are stored. Point clouds are expected to become the mainstream method for expressing 3D data, but point clouds have a very large amount of data. Therefore, in the storage or transmission of 3D data, it is essential to compress the amount of data by encoding, as in the case of 2D moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG). Become.
  • 2D moving images for example, MPEG-4 AVC or HEVC standardized by MPEG.
  • the compression of the point cloud is partially supported by a public library (Point Cloud Library) that performs processing related to the point cloud.
  • a public library Point Cloud Library
  • Patent Document 1 a technique for searching and displaying facilities located around a vehicle using three-dimensional map data is known (see, for example, Patent Document 1).
  • the three-dimensional data coding method is tile information including information on N (N is an integer of 0 or more) subspaces which are at least a part of a target space including a plurality of three-dimensional points. And, based on the tile information, the point group data of the plurality of three-dimensional points is encoded to generate a bit stream including the encoded point group data, and the tile information is the N. Includes N subspace coordinate information indicating the coordinates of the subspaces, and each of the N subspace coordinate information includes three coordinate information indicating the coordinates in each of the three axial directions in the three-dimensional orthogonal coordinate system.
  • each of the three coordinate information included in each of the N subspace coordinate information is encoded with the first fixed length, and (ii). )
  • the bit stream including the encoded N subspace coordinate information and the first fixed length information indicating the first fixed length is generated.
  • the three-dimensional data decoding method acquires a bit stream containing encoded point group data of a plurality of three-dimensional points, and at least a part of the target space including the plurality of three-dimensional points.
  • the encoded tile information including the information about N (N is an integer of 0 or more) subspaces is decoded, and the encoded point group data is decoded based on the tile information.
  • the tile information includes N subspace coordinate information indicating the coordinates of the N subspace, and each of the N subspace coordinate information has coordinates in each of the three axial directions in the three-dimensional orthogonal coordinate system.
  • N is 1 or more including the three coordinate information shown
  • the N coded sub-spatial coordinate information and the first fixed length information indicating the first fixed length are included.
  • Each of the information is decoded with the first fixed length.
  • the present disclosure can provide a three-dimensional data coding method, a three-dimensional data decoding method, a three-dimensional data coding device, or a three-dimensional data decoding device that can reduce the amount of processing in coding.
  • FIG. 1 is a diagram showing a configuration of a three-dimensional data coding / decoding system according to the first embodiment.
  • FIG. 2 is a diagram showing a configuration example of point cloud data according to the first embodiment.
  • FIG. 3 is a diagram showing a configuration example of a data file in which the point cloud data information according to the first embodiment is described.
  • FIG. 4 is a diagram showing the types of point cloud data according to the first embodiment.
  • FIG. 5 is a diagram showing a configuration of a first coding unit according to the first embodiment.
  • FIG. 6 is a block diagram of the first coding unit according to the first embodiment.
  • FIG. 7 is a diagram showing a configuration of a first decoding unit according to the first embodiment.
  • FIG. 1 is a diagram showing a configuration of a three-dimensional data coding / decoding system according to the first embodiment.
  • FIG. 2 is a diagram showing a configuration example of point cloud data according to the first embodiment.
  • FIG. 3 is a diagram showing a
  • FIG. 8 is a block diagram of the first decoding unit according to the first embodiment.
  • FIG. 9 is a diagram showing a configuration of a second coding unit according to the first embodiment.
  • FIG. 10 is a block diagram of a second coding unit according to the first embodiment.
  • FIG. 11 is a diagram showing a configuration of a second decoding unit according to the first embodiment.
  • FIG. 12 is a block diagram of a second decoding unit according to the first embodiment.
  • FIG. 13 is a diagram showing a protocol stack related to PCC coded data according to the first embodiment.
  • FIG. 14 is a diagram showing a basic structure of ISOBMFF according to the second embodiment.
  • FIG. 15 is a diagram showing a protocol stack according to the second embodiment.
  • FIG. 16 is a diagram showing an example of storing the NAL unit according to the second embodiment in a file for the codec 1.
  • FIG. 17 is a diagram showing an example of storing the NAL unit according to the second embodiment in a file for the codec 2.
  • FIG. 18 is a diagram showing the configuration of the first multiplexing unit according to the second embodiment.
  • FIG. 19 is a diagram showing the configuration of the first demultiplexing unit according to the second embodiment.
  • FIG. 20 is a diagram showing the configuration of the second multiplexing unit according to the second embodiment.
  • FIG. 21 is a diagram showing a configuration of a second demultiplexing unit according to the second embodiment.
  • FIG. 22 is a flowchart of processing by the first multiplexing unit according to the second embodiment.
  • FIG. 23 is a flowchart of processing by the second multiplexing unit according to the second embodiment.
  • FIG. 24 is a flowchart of processing by the first demultiplexing unit and the first decoding unit according to the second embodiment.
  • FIG. 25 is a flowchart of processing by the second demultiplexing unit and the second decoding unit according to the second embodiment.
  • FIG. 26 is a diagram showing a configuration of a coding unit and a multiplexing unit according to the third embodiment.
  • FIG. 27 is a diagram showing a configuration example of coded data according to the third embodiment.
  • FIG. 28 is a diagram showing a configuration example of the coded data and the NAL unit according to the third embodiment.
  • FIG. 29 is a diagram showing an example of semantics of pcc_nal_unit_type according to the third embodiment.
  • FIG. 30 is a diagram showing an example of a delivery order of NAL units according to the third embodiment.
  • FIG. 31 is a flowchart of processing by the three-dimensional data coding apparatus according to the third embodiment.
  • FIG. 32 is a flowchart of processing by the three-dimensional data decoding device according to the third embodiment.
  • FIG. 33 is a diagram showing an example of division of slices and tiles according to the fourth embodiment.
  • FIG. 34 is a diagram showing an example of a slice and tile division pattern according to the fourth embodiment.
  • FIG. 35 is a diagram showing a memory, a requested real time, a current decoding time, and a distance when the slice or tile division according to the fifth embodiment is not performed and when the tile division is performed.
  • FIG. 36 is a diagram showing an example of tile or slice division according to the fifth embodiment.
  • FIG. 37 is a diagram showing an example of a method of sorting the count number of the octave tree division according to the fifth embodiment.
  • FIG. 38 is a diagram showing an example of tile or slice division according to the fifth embodiment.
  • FIG. 39 is a diagram showing a configuration example of the bit stream according to the fifth embodiment.
  • FIG. 40 is a diagram showing a configuration example of SEI according to the fifth embodiment.
  • FIG. 41 is a diagram showing an example of SEI syntax according to the fifth embodiment.
  • FIG. 42 is a diagram showing a configuration example of the three-dimensional data decoding device according to the fifth embodiment.
  • FIG. 43 is a diagram for explaining the acquisition operation of tile or slice data according to the fifth embodiment.
  • FIG. 44 is a diagram for explaining the acquisition operation of tile or slice data according to the fifth embodiment.
  • FIG. 45 is a diagram showing a test operation of SEI according to the fifth embodiment.
  • FIG. 46 is a diagram showing a test operation of SEI according to the fifth embodiment.
  • FIG. 47 is a flowchart of the three-dimensional data coding process according to the fifth embodiment.
  • FIG. 48 is a flowchart of the three-dimensional data decoding process according to the fifth embodiment.
  • FIG. 49 is a block diagram of the three-dimensional data coding apparatus according to the fifth embodiment.
  • FIG. 50 is a block diagram of the three-dimensional data decoding device according to the fifth embodiment.
  • FIG. 51 is a flowchart of the three-dimensional data coding process according to the fifth embodiment.
  • FIG. 52 is a flowchart of the three-dimensional data decoding process according to the fifth embodiment.
  • FIG. 53 is a diagram showing an example of syntax of tile addition information according to the sixth embodiment.
  • FIG. 54 is a block diagram of the coding / decoding system according to the sixth embodiment.
  • FIG. 55 is a diagram showing an example of syntax of slice addition information according to the sixth embodiment.
  • FIG. 56 is a flowchart of the coding process according to the sixth embodiment.
  • FIG. 57 is a flowchart of the decoding process according to the sixth embodiment.
  • FIG. 51 is a flowchart of the three-dimensional data coding process according to the fifth embodiment.
  • FIG. 52 is a flowchart of the three-dimensional data decoding process according to the fifth embodiment.
  • FIG. 53 is a diagram
  • FIG. 58 is a flowchart of the coding process according to the sixth embodiment.
  • FIG. 59 is a flowchart of the decoding process according to the sixth embodiment.
  • FIG. 60 is a diagram showing an example of the division method according to the seventh embodiment.
  • FIG. 61 is a diagram showing a division example of the point cloud data according to the seventh embodiment.
  • FIG. 62 is a diagram showing an example of syntax of tile addition information according to the seventh embodiment.
  • FIG. 63 is a diagram showing an example of index information according to the seventh embodiment.
  • FIG. 64 is a diagram showing an example of the dependency relationship according to the seventh embodiment.
  • FIG. 65 is a diagram showing an example of transmission data according to the seventh embodiment.
  • FIG. 66 is a diagram showing a configuration example of the NAL unit according to the seventh embodiment.
  • FIG. 67 is a diagram showing an example of the dependency relationship according to the seventh embodiment.
  • FIG. 68 is a diagram showing an example of the order of decoding the data according to the seventh embodiment.
  • FIG. 69 is a diagram showing an example of the dependency relationship according to the seventh embodiment.
  • FIG. 70 is a diagram showing an example of the decoding order of the data according to the seventh embodiment.
  • FIG. 71 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 72 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 73 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 74 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 71 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 72 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 73 is a flowchart of the coding process according to the seventh
  • FIG. 75 is a diagram showing an example of transmission data and reception data according to the seventh embodiment.
  • FIG. 76 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 77 is a diagram showing an example of transmission data and reception data according to the seventh embodiment.
  • FIG. 78 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 79 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 80 is a diagram showing an example of index information according to the seventh embodiment.
  • FIG. 81 is a diagram showing an example of the dependency relationship according to the seventh embodiment.
  • FIG. 82 is a diagram showing an example of transmission data according to the seventh embodiment.
  • FIG. 83 is a diagram showing an example of transmission data and reception data according to the seventh embodiment.
  • FIG. 84 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 85 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 86 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 87 is a diagram showing a configuration of slice data according to the eighth embodiment.
  • FIG. 88 is a diagram showing a configuration example of a bit stream according to the eighth embodiment.
  • FIG. 89 is a diagram showing an example of tiles according to the eighth embodiment.
  • FIG. 90 is a diagram showing an example of tiles according to the eighth embodiment.
  • FIG. 91 is a diagram showing an example of tiles according to the eighth embodiment.
  • FIG. 92 is a flowchart of the three-dimensional data coding process according to the eighth embodiment.
  • FIG. 85 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 86 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 94 is a diagram showing an example of setting a tile index when the number of tiles according to the eighth embodiment> 1.
  • FIG. 95 is a flowchart of the three-dimensional data decoding process according to the eighth embodiment.
  • FIG. 96 is a flowchart of the random access process according to the eighth embodiment.
  • FIG. 97 is a diagram showing a method of adding a tile index according to the eighth embodiment.
  • FIG. 98 is a diagram showing a method of adding a tile index according to the eighth embodiment.
  • FIG. 99 is a flowchart of the three-dimensional data coding process according to the eighth embodiment.
  • FIG. 100 is a flowchart of the three-dimensional data decoding process according to the eighth embodiment.
  • FIG. 101 is a diagram showing a first example of the syntax of tile information according to the ninth embodiment.
  • FIG. 102 is a diagram showing a second example of the tile information syntax according to the ninth embodiment.
  • FIG. 103 is a diagram showing a third example of the tile information syntax according to the ninth embodiment.
  • FIG. 104 is a flowchart showing an outline of the coding process of the three-dimensional data coding apparatus according to the ninth embodiment.
  • FIG. 105 is a flowchart showing a specific example of the tile information coding process of the three-dimensional data coding apparatus according to the ninth embodiment.
  • FIG. 106 is a flowchart showing a specific example of the decoding process of the coded tile information of the three-dimensional data decoding device according to the ninth embodiment.
  • FIG. 107 is a flowchart showing a processing procedure of the three-dimensional data coding apparatus according to the ninth embodiment.
  • FIG. 108 is a flowchart showing a processing procedure of the three-dimensional data decoding apparatus according to the ninth embodiment.
  • FIG. 109 is a block diagram of the three-dimensional data creation device according to the tenth embodiment.
  • FIG. 110 is a flowchart of the three-dimensional data creation method according to the tenth embodiment.
  • FIG. 111 is a diagram showing a configuration of the system according to the tenth embodiment.
  • FIG. 111 is a diagram showing a configuration of the system according to the tenth embodiment.
  • FIG. 112 is a block diagram of the client device according to the tenth embodiment.
  • FIG. 113 is a block diagram of the server according to the tenth embodiment.
  • FIG. 114 is a flowchart of the three-dimensional data creation process by the client device according to the tenth embodiment.
  • FIG. 115 is a flowchart of the sensor information transmission process by the client device according to the tenth embodiment.
  • FIG. 116 is a flowchart of the three-dimensional data creation process by the server according to the tenth embodiment.
  • FIG. 117 is a flowchart of a three-dimensional map transmission process by the server according to the tenth embodiment.
  • FIG. 118 is a diagram showing a configuration of a modified example of the system according to the tenth embodiment.
  • FIG. 118 is a diagram showing a configuration of a modified example of the system according to the tenth embodiment.
  • FIG. 119 is a diagram showing a configuration of a server and a client device according to the tenth embodiment.
  • FIG. 120 is a diagram showing a configuration of a server and a client device according to the tenth embodiment.
  • FIG. 121 is a flowchart of processing by the client device according to the tenth embodiment.
  • FIG. 122 is a diagram showing a configuration of a sensor information collection system according to the tenth embodiment.
  • FIG. 123 is a diagram showing an example of the system according to the tenth embodiment.
  • FIG. 124 is a diagram showing a modified example of the system according to the tenth embodiment.
  • FIG. 125 is a flowchart showing an example of application processing according to the tenth embodiment.
  • FIG. 126 is a diagram showing a sensor range of various sensors according to the tenth embodiment.
  • FIG. 127 is a diagram showing a configuration example of the automatic operation system according to the tenth embodiment.
  • FIG. 128 is a diagram showing a configuration example of a bit stream according to the tenth embodiment.
  • FIG. 129 is a flowchart of the point group selection process according to the tenth embodiment.
  • FIG. 130 is a diagram showing a screen example of the point group selection process according to the tenth embodiment.
  • FIG. 131 is a diagram showing a screen example of the point group selection process according to the tenth embodiment.
  • FIG. 132 is a diagram showing a screen example of the point group selection process according to the tenth embodiment.
  • the three-dimensional data coding method is tile information including information on N (N is an integer of 0 or more) subspaces which are at least a part of a target space including a plurality of three-dimensional points. And, based on the tile information, the point group data of the plurality of three-dimensional points is encoded to generate a bit stream including the encoded point group data, and the tile information is the N. Includes N subspace coordinate information indicating the coordinates of the subspaces, and each of the N subspace coordinate information includes three coordinate information indicating the coordinates in each of the three axial directions in the three-dimensional orthogonal coordinate system.
  • each of the three coordinate information included in each of the N subspace coordinate information is encoded with the first fixed length, and (ii). )
  • the bit stream including the encoded N subspace coordinate information and the first fixed length information indicating the first fixed length is generated.
  • the tile information includes at least one size information indicating the size of at least one subspace among the N subspaces, and in the coding of the tile information, the at least one size information.
  • Each is encoded with a second fixed length, and in the generation of the bit stream, the bit stream including the at least one encoded size information and the second fixed length information indicating the second fixed length is generated. do.
  • the amount of processing in the coding can be further reduced as compared with the case of encoding with the variable length, for example.
  • the predetermined size of the N subspaces is used.
  • the size information indicating the sizes of the non-matching subspaces is encoded by the second fixed length as the at least one size information, and in the generation of the bitstream, the size of each of the N subspaces is the predetermined size.
  • the three-dimensional data decoding device that has acquired the bitstream can appropriately determine the size of the subspace. Therefore, for example, when there are many sizes that match a predetermined size in a plurality of subspaces, the amount of data in the generated bitstream can be reduced, and the amount of processing for encoding the size information can be reduced.
  • first fixed length and the second fixed length have the same length.
  • the information indicating each of the first fixed length and the second fixed length can be unified, the amount of data of the generated bit stream can be reduced.
  • the tile information includes common origin information indicating the coordinates of the origin of the target space, and in the generation of the bit stream, the bit stream including the common origin information is generated.
  • the three-dimensional data decoding device that has acquired the bitstream can obtain the point cloud data encoded based on the information contained in the bitstream. Can be decrypted properly.
  • bitstream when N is 0, in the generation of the bitstream, the bitstream that does not include information about the subspace is generated.
  • the amount of data in the generated bitstream can be reduced.
  • a bit stream including encoded point group data of a plurality of three-dimensional points is acquired, and at least the target space including the plurality of three-dimensional points is included.
  • the encoded tile information including the information about N (N is an integer of 0 or more) subspace which is a part is decoded, and the encoded point group data is decoded based on the tile information.
  • the tile information includes N subspace coordinate information indicating the coordinates of the N subspace, and the N subspace coordinate information is each in the three axial directions in the three-dimensional orthogonal coordinate system.
  • N is 1 or more
  • the N coded subspace coordinate information and the first fixed indicating the first fixed length are included.
  • the encoded 3 included in each of the N coded subspace coordinate information is decoded with the first fixed length.
  • the tile information includes at least one size information indicating the size of at least one subspace among the N subspaces, and in the acquisition of the bit stream, the at least one encoded size is included.
  • the tile information encoded by acquiring the bit stream including the information and the second fixed length information indicating the second fixed length, each of the encoded at least one size information is described. Decrypt with the second fixed length.
  • the coded size information included in the tile information is decoded with the second fixed length, the amount of processing in decoding can be reduced as compared with the case of decoding with variable length, for example.
  • the bit stream including the common flag information indicating whether or not the size of each of the N subspaces matches a predetermined size is acquired, and the common flag information is used. Based on this, it is determined whether or not the size of each of the N subspaces matches the predetermined size, and in decoding the encoded tile information, the predetermined size of the N subspaces is determined.
  • the encoded size information indicating the size of the subspace that does not match the size of is decoded at the second fixed length as the at least one encoded size information.
  • the size of the subspace matches the predetermined size, a common indicating whether or not the subspace matches the predetermined size even if the size information indicating the size is not included in the bitstream. If the size flag information is included in the bitstream, the size of the subspace can be determined appropriately. Therefore, for example, when there are many sizes that match a predetermined size in a plurality of subspaces, the amount of data in the bitstream to be acquired can be reduced, and the amount of processing for decoding size information can be reduced.
  • first fixed length and the second fixed length have the same length.
  • the information indicating each of the first fixed length and the second fixed length can be unified, the amount of data of the bitstream to be acquired can be reduced.
  • the tile information includes common origin information indicating the coordinates of the origin of the target space, and in the acquisition of the bit stream, the bit stream including the common origin information is acquired.
  • the point cloud data encoded based on the information contained in the bit stream can be appropriately decoded.
  • bitstream when N is 0, in the acquisition of the bitstream, the bitstream that does not include information about the subspace is acquired.
  • the amount of bitstream data to be acquired can be reduced.
  • the three-dimensional data coding apparatus includes a processor and a memory, and the processor uses the memory in at least a part of a target space including a plurality of three-dimensional points.
  • the tile information including information about a certain N (N is an integer of 0 or more) subspaces is encoded, and the point group data of the plurality of three-dimensional points is encoded and encoded based on the tile information.
  • a bit stream including the point group data is generated, the tile information includes N subspace coordinate information indicating the coordinates of the N subspace, and the N subspace coordinate information includes each of the N subspace coordinate information.
  • N is 1 or more
  • N is 1 or more
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to include bits including coded point group data of a plurality of three-dimensional points.
  • Acquires a stream decodes encoded tile information containing information about N (N is an integer greater than or equal to 0) subspaces that are at least part of the target space containing the plurality of three-dimensional points, and decodes.
  • the encoded point group data is decoded based on the tile information, and the tile information includes N subspace coordinate information indicating the coordinates of the N subspaces, and the N subs.
  • the spatial coordinate information includes three coordinate information indicating the coordinates in each of the three axial directions in the three-dimensional orthogonal coordinate system, and when N is 1 or more, (i) the encoded said in the acquisition of the bit stream.
  • the bit stream including the N sub-spatial coordinate information and the first fixed length information indicating the first fixed length is acquired, and (ii) in decoding the encoded tile information, N encodings are performed.
  • Each of the three encoded coordinate information included in each of the subspatial coordinate information is decoded with the first fixed length.
  • a recording medium such as a system, a method, an integrated circuit, a computer program, or a computer-readable CD-ROM, and the system, a method, an integrated circuit, or a computer program. And may be realized by any combination of recording media.
  • a three-dimensional data coding method and a three-dimensional data coding device for providing a function of transmitting and receiving necessary information according to an application in the coded data of a three-dimensional point cloud, and the code thereof.
  • 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. do.
  • a first coding method and a second coding method are being studied as a coding method (coding method) for point group data, but the composition of the coded data and the coded data are used as a system.
  • the method of storing in the format is not defined, and there is a problem that the MUX processing (multiplexing), transmission or storage in the coding unit cannot be performed as it is.
  • PCC Point Cloud Compression
  • FIG. 1 is a diagram showing a configuration example of a three-dimensional data coding / decoding system according to the present embodiment.
  • the three-dimensional data coding / decoding system includes a three-dimensional data coding / decoding system 4601, a three-dimensional data decoding system 4602, a sensor terminal 4603, and an external connection unit 4604.
  • the three-dimensional data coding system 4601 generates coded data or multiplexed data by encoding point cloud data which is three-dimensional data.
  • the three-dimensional data coding system 4601 may be a three-dimensional data coding device realized by a single device, or may be a system realized by a plurality of devices. Further, the three-dimensional data coding apparatus may include a part of a plurality of processing units included in the three-dimensional data coding system 4601.
  • the three-dimensional data coding system 4601 includes a point cloud data generation system 4611, a presentation unit 4612, a coding 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.
  • 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 coding unit 4613.
  • 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 sensor information or point cloud data.
  • the coding unit 4613 encodes (compresses) the point cloud data, and outputs the obtained coded data, the control information obtained in the coding process, and other additional information to the multiplexing unit 4614.
  • the additional information includes, for example, sensor information.
  • the multiplexing unit 4614 generates multiplexed data by multiplexing the coded data input from the coding unit 4613, the control information, and the additional information.
  • the format of the multiplexed data is, for example, a file format for storage or a packet format for transmission.
  • the input / output unit 4615 (for example, the communication unit or the interface) outputs the multiplexed data to the outside.
  • the multiplexed data is stored in a storage unit such as an internal memory.
  • the control unit 4616 (or application execution unit) controls each processing unit. That is, the control unit 4616 controls coding, multiplexing, and the like.
  • the sensor information may be input to the coding unit 4613 or the multiplexing unit 4614. Further, the input / output unit 4615 may output the point cloud data or the coded data as it is to the outside.
  • the transmission signal (multiplexed data) output from the three-dimensional data coding system 4601 is input to the three-dimensional data decoding system 4602 via the external connection unit 4604.
  • the three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding encoded data or multiplexed data.
  • the three-dimensional data decoding system 4602 may be a three-dimensional data decoding device realized by a single device, or may be a system realized by a plurality of devices. Further, the three-dimensional data decoding device may include a part of a plurality of processing units included in the three-dimensional data decoding system 4602.
  • 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.
  • the sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603.
  • the input / output unit 4622 acquires the transmission signal, decodes the multiplexed data (file format or packet) from the transmitted signal, and outputs the multiplexed data to the demultiplexed unit 4623.
  • the demultiplexing unit 4623 acquires encoded data, control information and additional information from the multiplexing data, and outputs the encoded data, control information and additional information to the decoding unit 4624.
  • the decoding unit 4624 reconstructs the point cloud data by decoding the coded data.
  • 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 instructions based on user operations.
  • the control unit 4627 (or application execution unit) controls each processing unit. That is, the control unit 4627 controls demultiplexing, decoding, presentation, and the like.
  • the input / output unit 4622 may acquire the point cloud data or the coded data as it is from the outside. Further, 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 make a presentation based on the user's instruction acquired by the user interface 4626.
  • 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 includes, for example, a moving object such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera.
  • the sensor information that can be acquired by the sensor terminal 4603 is, for example, (1) the distance between the sensor terminal 4603 and the object obtained from the LIDAR, the millimeter-wave radar, or the infrared sensor, or the reflectance of the object, and (2) a plurality.
  • the sensor information may include the attitude, orientation, gyro (angular velocity), position (GPS information or altitude), speed, acceleration, and the like of the sensor.
  • the sensor information may include temperature, atmospheric pressure, humidity, magnetism, and the like.
  • the external connection unit 4604 is realized by communication with an integrated circuit (LSI or IC), an external storage unit, a cloud server via the Internet, broadcasting, or the like.
  • LSI integrated circuit
  • IC integrated circuit
  • cloud server via the Internet, broadcasting, or the like.
  • FIG. 2 is a diagram showing the structure of point cloud data.
  • FIG. 3 is a diagram showing a configuration example of a data file in which information on point cloud data is described.
  • the point cloud data includes data of a plurality of points.
  • the data at each point includes position information (three-dimensional coordinates) and attribute information for the position information.
  • a point cloud is a collection of multiple points. For example, a point cloud indicates a three-dimensional shape of an object.
  • Position information such as three-dimensional coordinates may be called geometry.
  • the data at each point may include attribute information (attribute) of a plurality of attribute types.
  • the attribute type is, for example, color or reflectance.
  • One attribute information may be associated with one position information, or attribute information having a plurality of different attribute types may be associated with one position information. Further, a plurality of attribute information of the same attribute type may be associated with one position information.
  • the configuration example of the data file shown in FIG. 3 is an example in which the position information and the attribute information have a one-to-one correspondence, and shows the position information and the attribute information of N points constituting the point cloud data. There is.
  • the position information is, for example, information on three axes of x, y, and z.
  • the attribute information is, for example, RGB color information.
  • a typical data file is a ply file or the like.
  • FIG. 4 is a diagram showing the types of point cloud data.
  • the point cloud data includes a static object and a dynamic object.
  • the static object is 3D point cloud data at an arbitrary time (certain time).
  • a dynamic object is three-dimensional point cloud data that changes over time.
  • the three-dimensional point cloud data at a certain time is referred to as a PCC frame or a frame.
  • the object may be a point cloud whose area is limited to some extent like ordinary video data, or a large-scale point cloud whose area is not limited such as map information.
  • 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 point cloud data, and adds attribute information for the position information to the position information.
  • the point cloud data generation unit 4618 may process the point cloud data when generating position information or adding attribute information. For example, the point cloud data generation unit 4618 may reduce the amount of data by deleting the point clouds whose positions overlap. Further, the point cloud data generation unit 4618 may convert the position information (position shift, rotation, normalization, etc.), or may render the attribute information.
  • point cloud data generation system 4611 is included in the three-dimensional data coding system 4601 in FIG. 1, it may be independently provided outside the three-dimensional data coding system 4601.
  • the coding unit 4613 generates coded data by coding the point cloud data based on a predetermined coding method.
  • a predetermined coding method There are roughly the following two types of coding methods.
  • the first is a coding method using position information, and this coding method will be hereinafter referred to as a first coding method.
  • the second is a coding method using a video codec, and this coding method will be hereinafter referred to as a second coding method.
  • the decoding unit 4624 decodes the point cloud data by decoding the coded data based on a predetermined coding method.
  • the multiplexing unit 4614 generates multiplexed data by multiplexing the coded data using an existing multiplexing method.
  • the generated multiplexed data is transmitted or accumulated.
  • the multiplexing unit 4614 multiplexes other media such as video, audio, subtitles, applications, and files, or reference time information. Further, the multiplexing unit 4614 may further multiplex the attribute information related to the sensor information or the point cloud data.
  • the multiplexing method or file format includes ISOBMFF, MPEG-DASH, MMT, MPEG-2 TS Systems, RMP, etc., which are ISOBMFF-based transmission methods.
  • the demultiplexing unit 4623 extracts PCC coded data, other media, time information, etc. from the multiplexing data.
  • the input / output unit 4615 transmits the multiplexed data by using a method suitable for the medium to be transmitted or the medium to be stored, such as broadcasting or communication.
  • the input / output unit 4615 may communicate with other devices via the Internet, or may communicate with a storage unit such as a cloud server.
  • http http, ftp, TCP, UDP, etc. are used.
  • a PULL type communication method may be used, or a PUSH type communication method may be used.
  • Either wired transmission or wireless transmission may be used.
  • Ethernet registered trademark
  • USB registered trademark
  • RS-232C USB-232C
  • HDMI registered trademark
  • coaxial cable or the like
  • wireless transmission a wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter wave, or the like is used.
  • DVB-T2 DVB-S2, DVB-C2, ATSC3.0, ISDB-S3 and the like are used.
  • FIG. 5 is a diagram showing the configuration of the first coding unit 4630, which is an example of the coding unit 4613 that encodes the first coding method.
  • FIG. 6 is a block diagram of the first coding unit 4630.
  • the first coding unit 4630 generates coded data (coded stream) by coding the point cloud data by the first coding method.
  • the first coding unit 4630 includes a position information coding unit 4631, an attribute information coding unit 4632, an additional information coding unit 4633, and a multiplexing unit 4634.
  • the first coding unit 4630 has a feature of performing coding while being aware of the three-dimensional structure. Further, the first coding unit 4630 has a feature that the attribute information coding unit 4632 performs coding using the information obtained from the position information coding unit 4631.
  • the first coding method is also called GPCC (Geometry based PCC).
  • the point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and is position information (Position), attribute information (Attribute), and other additional information (MetaData). including.
  • the position information is input to the position information coding unit 4631, the attribute information is input to the attribute information coding unit 4632, and the additional information is input to the additional information coding unit 4633.
  • the position information coding unit 4631 generates coded position information (Compressed Geometry) which is coded data by encoding the position information.
  • the position information coding unit 4631 encodes the position information by using an N-branch structure such as an octa-tree. Specifically, in the octane tree, the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not each node contains a point cloud is generated. .. Further, the node including the point cloud is further divided into eight nodes, and 8-bit information indicating whether or not each of the eight nodes includes the point cloud is generated. This process is repeated until it becomes equal to or less than the threshold value of the number of point clouds included in the predetermined hierarchy or node.
  • the attribute information coding unit 4632 generates coded attribute information (Compressed Attribute) which is coded data by encoding using the configuration information generated by the position information coding unit 4631. For example, the attribute information coding unit 4632 determines a reference point (reference node) to be referred to in coding the target point (target node) to be processed based on the octal tree structure generated by the position information coding unit 4631. do. For example, the attribute information coding unit 4632 refers to a node whose parent node in the octal tree is the same as the target node among the peripheral nodes or adjacent nodes. The method of determining the reference relationship is not limited to this.
  • the attribute information coding process may include at least one of a quantization process, a prediction process, and an arithmetic coding process.
  • the reference means that the reference node is used to calculate the predicted value of the attribute information, or the state of the reference node (for example, occupancy indicating whether or not the reference node contains a point group) is used to determine the encoding parameter. Information) is used.
  • the coding parameter is a quantization parameter in the quantization process, a context in arithmetic coding, or the like.
  • the additional information coding unit 4633 generates coded additional information (Compressed Metadata Data) which is encoded data by encoding the compressible data among the additional information.
  • coded additional information Compressed Metadata Data
  • the multiplexing unit 4634 generates a coded stream (Compressed Stream) which is coded data by multiplexing the coded position information, the coded attribute information, the coded additional information, and other additional information.
  • the generated coded stream is output to a processing unit of a system layer (not shown).
  • 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 the coded data (coded stream) encoded by the first coding method by the first coding method.
  • the first decoding unit 4640 includes a demultiplexing unit 4641, a position information decoding unit 4642, an attribute information decoding unit 4643, and an additional information decoding unit 4644.
  • a coded stream (Compressed Stream), which is coded data, is input to the first decoding unit 4640 from a processing unit of a system layer (not shown).
  • the demultiplexing unit 4641 separates the coded position information (Compressed Geometry), the coded attribute information (Compressed Attribute), the coded additional information (Compressed Metadata), and other additional information from the coded data.
  • the position information decoding unit 4642 generates position information by decoding the coded position information. For example, the position information decoding unit 4642 restores the position information of the point cloud represented by the three-dimensional coordinates from the coded position information represented by the N-branch structure such as the octal tree.
  • the attribute information decoding unit 4643 decodes the coded 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 octave tree 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 octal tree is the same as the target node among the peripheral nodes or adjacent nodes. The method of determining the reference relationship is not limited to this.
  • the attribute information decoding process may include at least one of an inverse quantization process, a prediction process, and an arithmetic decoding process.
  • the reference means that the reference node is used to calculate the predicted value of the attribute information, or the state of the reference node (for example, the occupancy information indicating whether or not the reference node contains a point cloud) is used to determine the decoding parameter. ) Is used.
  • the decoding parameter is a quantization parameter in the inverse quantization process, a context in arithmetic decoding, or the like.
  • the additional information decoding unit 4644 generates additional information by decoding the coded additional information. Further, the first decoding unit 4640 uses the additional information necessary for the decoding process of the position information and the attribute information at the time of decoding, and outputs the additional information necessary for the application to the outside.
  • FIG. 9 is a diagram showing the configuration of the second coding unit 4650.
  • FIG. 10 is a block diagram of the second coding unit 4650.
  • the second coding unit 4650 generates coded data (coded stream) by coding the point cloud data by the second coding method.
  • the second coding unit 4650 includes an additional information generation unit 4651, a position image generation unit 4652, an attribute image generation unit 4653, a video coding unit 4654, an additional information coding unit 4655, and a multiplexing unit 4656. And include.
  • the second coding unit 4650 generates a position image and an attribute image by projecting the three-dimensional structure onto the two-dimensional image, and encodes the generated position image and the attribute image using an existing video coding method. It has the feature.
  • the second coding method is also called VPCC (Video based PCC).
  • the point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData).
  • Position information Position
  • attribute information Attribute
  • MetaData Other additional information
  • the additional information generation unit 4651 generates map information of a plurality of two-dimensional images by projecting the three-dimensional structure onto the two-dimensional image.
  • 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 distance image in which a distance (Dept) is shown as a pixel value.
  • this distance image may be an image in which a plurality of point groups are viewed from one viewpoint (an image in which a plurality of point groups are projected on one two-dimensional plane), or a plurality of point groups from a plurality of viewpoints. It may be a plurality of images that have been viewed, or it may be a single image that is a combination of these plurality of images.
  • 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 (for example, color (RGB)) is shown as a pixel value.
  • RGB color
  • this image may be an image in which a plurality of point groups are viewed from one viewpoint (an image in which a plurality of point groups are projected onto one two-dimensional plane), or a plurality of point groups may be viewed from a plurality of viewpoints. It may be a plurality of images seen, or it may be a single image in which these plurality of images are integrated.
  • the video coding unit 4654 encodes the position image and the attribute image by using the video coding method, so that the coded position image (Compressed Geometry Image) and the coded attribute image (Compressed Attribute Image), which are coded data, are encoded. ) Is generated.
  • the video coding method any known coding method may be used.
  • the video coding method is AVC, HEVC, or the like.
  • the additional information coding unit 4655 generates encoded additional information (Compressed Metadata Data) by encoding the additional information included in the point cloud data, the map information, and the like.
  • the multiplexing unit 4656 generates a coded stream (Compressed Stream) which is coded data by multiplexing the coded position image, the coded attribute image, the coded additional information, and other additional information.
  • the generated coded stream is output to a processing unit of a system layer (not shown).
  • FIG. 11 is a diagram showing the configuration of the second decoding unit 4660.
  • FIG. 12 is a block diagram of the second decoding unit 4660.
  • the second decoding unit 4660 generates point cloud data by decoding the coded data (coded stream) encoded by the second coding method by the second coding method.
  • the second decoding unit 4660 includes a demultiplexing unit 4661, a video decoding unit 4662, an additional information decoding unit 4663, a position information generation unit 4664, and an attribute information generation unit 4665.
  • a coded stream (Compressed Stream), which is coded data, is input to the second decoding unit 4660 from a processing unit of a system layer (not shown).
  • the demultiplexing unit 4661 separates the coded position image (Compressed Geometry Image), the coded attribute image (Compressed Attribute Image), the coded additional information (Compressed Metadata Image), and other additional information from the coded data. ..
  • the video decoding unit 4662 generates a position image and an attribute image by decoding the coded position image and the coded attribute image using a video coding method.
  • a video coding method any known coding method may be used.
  • the video coding method is AVC, HEVC, or the like.
  • the additional information decoding unit 4663 generates additional information including map information by decoding the coded additional information.
  • 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.
  • the second decoding unit 4660 uses the additional information necessary for decoding at the time of decoding, and outputs the additional information necessary for the application to the outside.
  • FIG. 13 is a diagram showing a protocol stack related to PCC coded data.
  • FIG. 13 shows an example in which data of another medium such as video (for example, HEVC) or audio is multiplexed with PCC coded data and transmitted or stored.
  • video for example, HEVC
  • audio is multiplexed with PCC coded data and transmitted or stored.
  • the multiplexing method and file format have a function for multiplexing, transmitting or accumulating various coded data.
  • the coded data In order to transmit or store the coded data, the coded data must be converted to a multiplexing format.
  • HEVC defines a technique for storing coded data in a data structure called a NAL unit and storing the NAL unit in ISOBMFF.
  • a first coding method (Codec1) and a second coding method (Codec2) are being studied as a method for coding point group data.
  • the method of storing in the system format is not defined, and there is a problem that MUX processing (multiplexing), transmission and storage in the coding unit cannot be performed as it is.
  • ISOBMFF ISO based media file format
  • ISOBMFF ISO based media file format
  • ISOBMFF defines a format that can multiplex and store various media such as video, audio, and text, and is a media-independent standard.
  • the basic structure (file) of ISOBMFF will be explained.
  • the basic unit in ISOBMFF is a box.
  • a box is composed of type, lens, and data, and a set of various type boxes is a file.
  • FIG. 14 is a diagram showing the basic structure (file) of ISOBMFF.
  • the ISOBMFF file mainly includes a ftip indicating the brand of the file in 4CC (4 character code), a moov for storing metadata such as control information, and a box for storing data such as mdat.
  • the storage method for each medium in the ISOBMFF file is separately specified.
  • the storage method for AVC video and HEVC video is specified in ISO / IEC14496-15.
  • a method of storing the PCC coded data in the ISOBMFF file will be described.
  • FIG. 15 is a diagram showing a protocol stack when a NAL unit common to PCC codecs is stored in an ISOBMFF file.
  • the NAL unit common to the PCC codec is stored in the ISOBMFF file.
  • the NAL unit is common to PCC codecs, since a plurality of PCC codecs are stored in the NAL unit, it is desirable to specify a storage method (Carriage of Codec 1, Carriage of Codec 2) corresponding to each codec.
  • FIG. 16 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file of a codec 1 storage method (Carriage of Codec 1).
  • FIG. 17 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file of a codec 2 storage method (Carriage of Codec 2).
  • ftyp is important information for identifying the file format, and a different identifier is defined for each codec for ftyp.
  • ftyp pcc1
  • pcc1 indicates that the PCC codec 1 (first coding method) is used.
  • pcc2 indicates that the PCC codec 2 (second coding method) is used. That is, pcc1 and pcc2 indicate that the data is PCC (code data of three-dimensional data (point cloud data)) and indicate a PCC codec (first coding method and second coding method). ..
  • the multiplexing unit stores the NAL unit in a predetermined method, for example, in moov or mdat.
  • the multiplexing unit stores the NAL unit in a predetermined method, for example, in moov or mdat.
  • the multiplexing unit may store the NAL unit size in the NAL unit as in HEVC.
  • the PCC coded data is encoded by the first coding method or coded by the second coding method. It is possible to determine whether or not it has been converted. Further, as described above, the PCC coded data was coded by both coding methods by determining whether the PCC coded data was coded by the first coding method or the second coding method. It is possible to extract the coded data encoded by either of the coding methods from the data in which the coded data is mixed. This makes it possible to suppress the amount of data to be transmitted when the coded data is transmitted. Further, according to this storage method, a common data format can be used between the first coding method and the second coding method without setting different data (file) formats.
  • the multiplexing unit may store the NAL unit in which pcc_nal_unit_type is deleted in the file of ISOBMFF.
  • the multiplexing unit included in the three-dimensional data coding system (three-dimensional data coding apparatus) according to the present embodiment and the three-dimensional data decoding system (three-dimensional data decoding apparatus) according to the present embodiment are provided.
  • the configuration and operation of the demultiplexing unit provided will be described.
  • FIG. 18 is a diagram showing the configuration of the first multiplexing unit 4710.
  • the first multiplexing unit 4710 is a file conversion that generates multiplexed data (file) by storing the coded data and control information (NAL unit) generated by the first coding unit 4630 in the ISOBMFF file.
  • a unit 4711 is provided.
  • the first multiplexing unit 4710 is included in, for example, the multiplexing unit 4614 shown in FIG.
  • FIG. 19 is a diagram showing the configuration of the first demultiplexing unit 4720.
  • the first demultiplexing unit 4720 acquires coded data and control information (NAL unit) from the multiplexing data (file), and outputs the acquired coded data and control information to the first decoding unit 4640. It is provided with an inverse conversion unit 4721.
  • the first demultiplexing unit 4720 is included in, for example, the demultiplexing unit 4623 shown in FIG.
  • FIG. 20 is a diagram showing the configuration of the second multiplexing unit 4730.
  • the second multiplexing unit 4730 is a file conversion that generates multiplexed data (file) by storing the coded data and control information (NAL unit) generated by the second coding unit 4650 in the ISOBMFF file.
  • a unit 4731 is provided.
  • the second multiplexing unit 4730 is included in, for example, the multiplexing unit 4614 shown in FIG.
  • FIG. 21 is a diagram showing the configuration of the second demultiplexing unit 4740.
  • the second demultiplexing unit 4740 acquires coded data and control information (NAL unit) from the multiplexing data (file), and outputs the acquired coded data and control information to the second decoding unit 4660. It is provided with an inverse conversion unit 4741.
  • the second demultiplexing unit 4740 is included in, for example, the demultiplexing unit 4623 shown in FIG.
  • FIG. 22 is a flowchart of the multiplexing process by the first multiplexing unit 4710.
  • the first multiplexing unit 4710 analyzes the pcc_codec_type included in the NAL unit header to determine whether the codec used is the first coding method or the second coding method. Judgment (S4701).
  • the first multiplexing unit 4710 does not process the NAL unit (S4703).
  • the first multiplexing unit 4710 when pcc_codec_type indicates a second coding method (first coding method in S4702), the first multiplexing unit 4710 describes pcc1 in ftyp (S4704). That is, the first multiplexing unit 4710 describes in ftyp information indicating that the data encoded by the first coding method is stored in the file.
  • the first multiplexing unit 4710 analyzes the pcc_nal_unit_type contained in the NAL unit header, and stores the data in the box (moov, mdat, etc.) by a predetermined method according to the data type indicated by pcc_nal_unit_type (S4705). ). Then, the first multiplexing unit 4710 creates an ISOBMFF file including the ftyp and the box (S4706).
  • FIG. 23 is a flowchart of the multiplexing process by the second multiplexing unit 4730.
  • the second multiplexing unit 4730 analyzes the pcc_codec_type included in the NAL unit header to determine whether the codec used is the first coding method or the second coding method. Judgment (S4711).
  • the second multiplexing unit 4730 When pcc_unit_type indicates a second coding method (second coding method in S4712), the second multiplexing unit 4730 describes pcc2 in ftyp (S4713). That is, the second multiplexing unit 4730 describes in ftyp information indicating that the data encoded by the second coding method is stored in the file.
  • the second multiplexing unit 4730 analyzes the pcc_nal_unit_type contained in the NAL unit header, and stores the data in the box (moov, mdat, etc.) by a predetermined method according to the data type indicated by pcc_nal_unit_type (S4714). ). Then, the second multiplexing unit 4730 creates an ISOBMFF file including the ftyp and the box (S4715).
  • the second multiplexing unit 4730 does not process the NAL unit (S4716).
  • the above processing shows an example of encoding PCC data by either the first coding method or the second coding method.
  • the first multiplexing unit 4710 and the second multiplexing unit 4730 store the desired NAL unit in a file by identifying the codec type of the NAL unit.
  • the identification information of the PCC codec is included in addition to the NAL unit header, the first multiplexing unit 4710 and the second multiplexing unit 4730 are included in steps S4701 and S4711 in addition to the NAL unit header.
  • the identification information of the PCC codec may be used to identify the codec type (first coding method or second coding method).
  • first multiplexing unit 4710 and the second multiplexing unit 4730 delete pcc_nal_unit_type from the NAL unit header when storing the data in the file in steps S4706 and S4714, the data is stored in the file. good.
  • FIG. 24 is a flowchart showing processing by the first demultiplexing unit 4720 and the first decoding unit 4640.
  • the first demultiplexing unit 4720 analyzes the ftyp included in the ISOBMFF file (S4721).
  • the codec represented by ftyp is the second coding method (pcc2) (second coding method in S4722)
  • the first demultiplexing unit 4720 contains the data contained in the payload of the NAL unit as the second. It is determined that the data is encoded by the coding method of (S4723). Further, the first demultiplexing unit 4720 transmits the result of the determination to the first decoding unit 4640.
  • the first decoding unit 4640 does not process the NAL unit (S4724).
  • the first demultiplexing unit 4720 contains data contained in the payload of the NAL unit. It is determined that the data is encoded by the first coding method (S4725). Further, the first demultiplexing unit 4720 transmits the result of the determination to the first decoding unit 4640.
  • the first decoding unit 4640 identifies the data as the pcc_nal_unit_type included in the NAL unit header is the identifier of the NAL unit for the first coding method (S4726). Then, the first decoding unit 4640 decodes the PCC data by using the decoding process of the first coding method (S4727).
  • FIG. 25 is a flowchart showing processing by the second demultiplexing unit 4740 and the second decoding unit 4660.
  • the second demultiplexing unit 4740 analyzes the ftyp included in the ISOBMFF file (S4731).
  • the codec represented by ftyp is the second coding method (pcc2) (second coding method in S4732)
  • the second demultiplexing unit 4740 contains the data contained in the payload of the NAL unit as the second. It is determined that the data is encoded by the coding method of (S4733). Further, the second demultiplexing unit 4740 transmits the result of the determination to the second decoding unit 4660.
  • the second decoding unit 4660 identifies the data as the pcc_nal_unit_type included in the NAL unit header is the identifier of the NAL unit for the second coding method (S4734). Then, the second decoding unit 4660 decodes the PCC data by using the decoding process of the second coding method (S4735).
  • the second demultiplexing unit 4740 contains data contained in the payload of the NAL unit. It is determined that the data is encoded by the first coding method (S4736). Further, the second demultiplexing unit 4740 transmits the result of the determination to the second decoding unit 4660. The second decoding unit 4660 does not process the NAL unit (S4737).
  • the codec type can be identified at an early stage. Further, a desired NAL unit can be input to the first decoding unit 4640 or the second decoding unit 4660 to remove unnecessary NAL units. In this case, the process of analyzing the codec identification information in the first decoding unit 4640 or the second decoding unit 4660 may become unnecessary. The first decoding unit 4640 or the second decoding unit 4660 may perform a process of analyzing the codec identification information by referring to the NAL unit type again.
  • the first demultiplexing unit 4720 or the second demultiplexing unit 4740 may be used.
  • Pcc_nal_unit_type may be added to the NAL unit and then output to the first decoding unit 4640 or the second decoding unit 4660.
  • the coded data (position information (Geometry), attribute information (Attribute), additional information (Metatatta)) generated by the first coding unit 4630 or the second coding unit 4650 described above.
  • the type of the data, the method of generating additional information (metadata), and the multiplexing process in the multiplexing unit will be described.
  • the additional information (metadata) may be referred to as a parameter set or control information.
  • the dynamic object (three-dimensional point cloud data that changes with time) described with reference to FIG. 4 will be described as an example, but even in the case of a static object (three-dimensional point cloud data at an arbitrary time). A similar method may be used.
  • FIG. 26 is a diagram showing a configuration of a coding unit 4801 and a multiplexing unit 4802 included in the three-dimensional data coding apparatus according to the present embodiment.
  • the coding unit 4801 corresponds to, for example, the first coding unit 4630 or the second coding unit 4650 described above.
  • the multiplexing unit 4802 corresponds to the multiplexing unit 4634 or 46456 described above.
  • the coding unit 4801 encodes the point cloud data of a plurality of PCC (Point Cloud Compression) frames and generates the coded data (Multiple Compressed Data) of a plurality of position information, attribute information and additional information.
  • PCC Point Cloud Compression
  • the multiplexing unit 4802 converts the data into a data configuration in consideration of data access in the decoding device by converting the data of a plurality of data types (position information, attribute information and additional information) into NAL units.
  • FIG. 27 is a diagram showing a configuration example of coded data generated by the coding unit 4801.
  • the arrow in the figure shows the dependency related to the decoding of the coded data, and the source of the arrow depends on the data at the tip of the arrow. That is, the decoding device decodes the data at the tip of the arrow, and uses the decoded data to decode the original data of the arrow.
  • dependence means that the dependent data is referenced (used) in the processing (encoding or decoding, etc.) of the dependent data.
  • the coding unit 4801 encodes the position information of each frame to generate coded position data (Compressed Geometry Data) for each frame. Further, the coded position data is represented by G (i). i indicates a frame number, a frame time, or the like.
  • the coding unit 4801 generates a position parameter set (GPS (i)) corresponding to each frame.
  • the position parameter set contains parameters that can be used to decode the coded position data. Also, the coded position data for each frame depends on the corresponding position parameter set.
  • the coded position data consisting of a plurality of frames is defined as a position sequence (Geometry Sequence).
  • the coding unit 4801 generates a position sequence parameter set (Geometry Sequence PS: also referred to as position SPS) that stores parameters commonly used for decoding processing for a plurality of frames in the position sequence.
  • the position sequence depends on the position SPS.
  • the coding unit 4801 encodes the attribute information of each frame to generate the coded attribute data (Compressed Attribute Data) for each frame. Further, the coded attribute data is represented by A (i). Further, FIG. 27 shows an example in which the attribute X and the attribute Y exist, the coded attribute data of the attribute X is represented by AX (i), and the coded attribute data of the attribute Y is represented by AY (i). ..
  • the coding unit 4801 generates an attribute parameter set (APS (i)) corresponding to each frame.
  • the attribute parameter set of the attribute X is represented by AXPS (i)
  • the attribute parameter set of the attribute Y is represented by AYPS (i).
  • the attribute parameter set contains parameters that can be used to decode the coded attribute information.
  • the coded attribute data depends on the corresponding set of attribute parameters.
  • the coded attribute data consisting of a plurality of frames is defined as an attribute sequence (Attribute Sequence).
  • the coding unit 4801 generates an attribute sequence parameter set (attribute Sequence PS: also referred to as attribute SPS) that stores parameters commonly used for decoding processing for a plurality of frames in the attribute sequence.
  • attribute sequence PS also referred to as attribute SPS
  • the attribute sequence depends on the attribute SPS.
  • the coding attribute data depends on the coding position data.
  • FIG. 27 shows an example in which two types of attribute information (attribute X and attribute Y) exist.
  • attribute information for example, the respective data and metadata are generated by the two coding units.
  • an attribute sequence is defined for each type of attribute information, and an attribute SPS is generated for each type of attribute information.
  • FIG. 27 shows an example in which there is one type of position information and two types of attribute information, but the present invention is not limited to this, and the attribute information may be one type or three or more types. good.
  • the coded data can be generated by the same method.
  • the attribute information may not be present. In that case, the coding unit 4801 does not have to generate the parameter set related to the attribute information.
  • the coding unit 4801 generates a PCC stream PS (PCC Stream PS: also referred to as a stream PS), which is a parameter set for the entire PCC stream.
  • the coding unit 4801 stores in the stream PS a parameter that can be commonly used in the decoding process for one or more position sequences and one or more attribute sequences.
  • the stream PS includes identification information indicating a codec of point cloud data, information indicating an algorithm used for encoding, and the like.
  • the position sequence and attribute sequence depend on the stream PS.
  • An access unit is a basic unit for accessing data at the time of decryption, and is composed of one or more data and one or more metadata.
  • the access unit is composed of position information at the same time and one or more attribute information.
  • a GOF is a random access unit and is composed of one or more access units.
  • the coding unit 4801 generates an access unit header (AU Header) as identification information indicating the head of the access unit.
  • the coding unit 4801 stores the parameters related to the access unit in the access unit header.
  • the access unit header contains the structure or information of the coded data contained in the access unit.
  • the access unit header includes parameters commonly used for data included in the access unit, for example, parameters related to decoding of coded data.
  • the coding 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 head of the access unit.
  • the decryption device identifies the head of the access unit by detecting the access unit header or the access unit delimiter.
  • the coding unit 4801 generates a GOF header (GOF Header) as identification information indicating the head of the GOF.
  • the coding unit 4801 stores the parameters related to the GOF in the GOF header.
  • the GOF header contains the structure or information of the coded data contained in the GOF.
  • the GOF header includes parameters commonly used for the data included in the GOF, for example, parameters related to decoding of the coded data.
  • the coding unit 4801 may generate a GOF delimiter that does not include the parameters related to the GOF instead of the GOF header.
  • This GOF delimiter is used as identification information indicating the head of the GOF.
  • the decoding device identifies the head of the GOF by detecting the GOF header or the GOF delimiter.
  • the access unit is defined as a PCC frame unit.
  • the decoding device accesses the PCC frame based on the identification information at the head of the access unit.
  • 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 the PCC frames are not dependent on each other and can be decoded independently, the PCC frame may be defined as a random access unit.
  • one access unit may be assigned two or more PCC frames, or one GOF may be assigned a plurality of random access units.
  • the coding unit 4801 may define and generate a parameter set or metadata other than the above.
  • the coding unit 4801 may generate an SEI (Supplemental Enhancement Information) that stores parameters (optional parameters) that may not necessarily be used at the time of decoding.
  • SEI Supplemental Enhancement Information
  • FIG. 28 is a diagram showing an example of coded data and a NAL unit.
  • the coded data includes a header and a payload.
  • the coded data may include length information indicating the length (data amount) of the coded data, the header or the payload. Further, the coded data does not have to include a header.
  • the header contains, for example, identification information for identifying data.
  • This identification information indicates, for example, a data type or a frame number.
  • the header contains, for example, identification information indicating a reference relationship. This identification information is stored in the header when there is a dependency between the data, and is information for referencing the reference destination from the reference source. For example, the referenced header contains identification information for identifying the data. The header of the reference source contains identification information indicating the reference destination.
  • the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.
  • the multiplexing unit 4802 stores the coded data in the payload of the NAL unit.
  • the NAL unit header includes pcc_nal_unit_type which is identification information of the coded data.
  • FIG. 29 is a diagram showing an example of the semantics of pcc_nal_unit_type.
  • pcc_codec_type is codec 1 (Codec 1: first coding method)
  • the values 0 to 10 of pcc_nal_unit_type are codec position data (Geometry) and coding attribute X data in codec 1.
  • HeaderX Codec Attribute Y Data (HeaderY), Position PS (Geom.PS), Attribute XPS (AttrX.PS), Attribute YPS (AttrX.PS), Position SPS (Geometry Sequence PS), Attribute XSPS (HeaderX) It is assigned to PS), attribute YSPS (AttributeY Position PS), AU header (AU Header), and GOF header (GOF Header). Further, the value 11 or later is assigned to the reserve of the codec 1.
  • pcc_codec_type is codec 2 (Codec 2: second coding method)
  • the values 0 to 2 of pcc_nal_unit_type are assigned to codec data A (DataA), metadata A (MetaDataA), and metadata B (MetaDataB). .. Further, the value 3 or later is assigned to the reserve of the codec 2.
  • the multiplexing unit 4802 collectively sends out the NAL unit in units of GOF or AU.
  • the multiplexing unit 4802 arranges the GOF header at the head of the GOF and the AU header at the head of the AU.
  • the multiplexing unit 4802 may arrange a sequence parameter set (SPS) for each AU so that the decoding device can decode from the next AU.
  • SPS sequence parameter set
  • the decoding device decodes the referenced data and then decodes the reference source data.
  • the multiplexing unit 4802 sends out the referenced data first so that the data can be decoded in the order in which they are received without rearranging the data.
  • FIG. 30 is a diagram showing an example of the sending order of NAL units.
  • FIG. 30 shows three examples of location information priority, parameter priority, and data integration.
  • the location information priority transmission order is an example of transmitting information related to position information and information related to attribute information together. In the case of this transmission order, the transmission of the information regarding the position information is completed earlier than the transmission of the information regarding the attribute information.
  • a decoding device that does not decode the attribute information may be able to set a time for not processing by ignoring the decoding of the attribute information. Further, for example, in the case of a decoding device that wants to decode the position information quickly, there is a possibility that the position information can be decoded earlier by obtaining the coded data of the position information earlier.
  • attribute XSPS and the attribute YSPS are integrated and described as the attribute SPS in FIG. 30, the attribute XSPS and the attribute YSPS may be arranged individually.
  • the parameter set is transmitted first and the data is transmitted later.
  • the multiplexing unit 4802 may transmit the NAL units in any order.
  • the order identification information is defined, and the multiplexing unit 4802 may have a function of transmitting NAL units in the order of a plurality of patterns.
  • the order identification information of the NAL unit is stored in the stream PS.
  • the three-dimensional data decoding device may perform decoding based on the order identification information.
  • the three-dimensional data decoding device may instruct the three-dimensional data coding device of a desired transmission order, and the three-dimensional data coding device (multiplexing unit 4802) may control the transmission order according to the instructed transmission order.
  • the multiplexing unit 4802 may generate coded data in which a plurality of functions are merged as long as it is within the range that is subject to the restrictions of the transmission order, such as the transmission order of data integration.
  • the GOF header and the AU header may be integrated, or the AXIS and the AYPS may be integrated.
  • an identifier indicating that the data has a plurality of functions is defined in pcc_nal_unit_type.
  • the parameter storage method is The following method may be used.
  • the default PS value is indicated by the higher PS.
  • the lower PS value indicates the PS value.
  • the PS value is not described in the upper PS, and the PS value is described in the lower PS.
  • information on whether the value of PS is indicated by a lower PS, a higher PS, or both is shown in one or both of the lower PS and the upper PS.
  • the lower PS may be merged with the upper PS.
  • the multiplexing unit 4802 may omit the transmission of either one.
  • the coding unit 4801 or the multiplexing unit 4802 may divide the data into slices, tiles, or the like, and send out the divided data.
  • the divided data contains information for identifying the divided data, and the parameters used for decoding the divided data are included in the parameter set.
  • pcc_nal_unit_type an identifier indicating that the data stores data or parameters related to tiles or slices is defined.
  • the three-dimensional data coding apparatus performs the processing shown in FIG.
  • the three-dimensional data coding device encodes time-series three-dimensional data (for example, point cloud data of a dynamic object).
  • the three-dimensional data includes position information and attribute information for each time.
  • the three-dimensional data coding device encodes the position information (S4841).
  • the three-dimensional data coding apparatus encodes the attribute information of the processing target with reference to the position information at the same time as the attribute information of the processing target (S4842).
  • the position information and the attribute information at the same time form an access unit (AU). That is, the three-dimensional data coding device encodes the attribute information of the processing target with reference to the position information included in the same access unit as the attribute information of the processing target.
  • the three-dimensional data coding device can facilitate the control of the reference in the coding by using the access unit. Therefore, the three-dimensional data coding apparatus can reduce the processing amount of the coding process.
  • the three-dimensional data coding device converts the coded position information (coded position data), the coded attribute information (coded attribute data), and the position information of the reference destination of the attribute information to be processed. Generate a bitstream containing the information shown.
  • the bitstream includes a position parameter set (position PS) containing control information of position information at each time and an attribute parameter set (attribute PS) containing control information of attribute information at each time.
  • position PS position parameter set
  • attribute PS attribute parameter set
  • a bitstream has a position sequence parameter set (position SPS) containing control information common to position information at multiple times and an attribute sequence parameter set (attribute SPS) containing control information common to attribute information at multiple times. And include.
  • position SPS position sequence parameter set
  • attribute SPS attribute sequence parameter set
  • a bitstream includes a stream parameter set (stream PS) that includes control information common to position information at a plurality of times and attribute information at a plurality of times.
  • stream PS stream parameter set
  • the bitstream includes an access unit header (AU header) containing control information common within the access unit.
  • AU header access unit header
  • a three-dimensional data coding device encodes a GOF (group of frames) composed of one or more access units so that it can be independently decoded. That is, GOF is a random access unit.
  • the bitstream contains a GOF header containing control information common within the GOF.
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the process shown in FIG. 32.
  • the three-dimensional data decoding device decodes time-series three-dimensional data (for example, point cloud data of a dynamic object).
  • the three-dimensional data includes position information and attribute information for each time.
  • the position information and the attribute information at the same time constitute an access unit (AU).
  • AU access unit
  • the three-dimensional data decoding device decodes the position information from the bit stream (S4851). That is, the three-dimensional data decoding device generates position information by decoding the coded position information (coded position data) included in the bit stream.
  • the three-dimensional data decoding device decodes the attribute information of the processing target from the bit stream by referring to the position information at the same time as the attribute information of the processing target (S4852). That is, the three-dimensional data decoding device generates the attribute information by decoding the coded attribute information (encoded attribute data) included in the bit stream. At this time, the three-dimensional data decoding device refers to the decoded position information included in the same access unit as the attribute information.
  • the three-dimensional data decoding device can facilitate the control of the reference in decoding by using the access unit. Therefore, the three-dimensional data decoding method can reduce the processing amount of the decoding process.
  • the three-dimensional data decoding device acquires information indicating the position information of the reference destination of the attribute information of the processing target from the bit stream, and refers to the position information of the reference destination indicated by the acquired information to be the attribute of the processing target. Decrypt the information.
  • the bitstream includes a position parameter set (position PS) containing control information of position information at each time and an attribute parameter set (attribute PS) containing control information of attribute information at each time. That is, the three-dimensional data decoding device decodes the position information of the processing target time by using the control information included in the position parameter set of the processing target time, and uses the control information included in the attribute parameter set of the processing target time. , Decrypt the attribute information of the processing target time.
  • position PS position parameter set
  • attribute PS attribute parameter set
  • a bitstream has a position sequence parameter set (position SPS) containing control information common to position information at multiple times and an attribute sequence parameter set (attribute SPS) containing control information common to attribute information at multiple times. And include. That is, the three-dimensional data decoding device decodes the position information of a plurality of times by using the control information included in the position sequence parameter set, and uses the control information included in the attribute sequence parameter set to decode the attributes of the plurality of times. Decrypt the information.
  • position SPS position sequence parameter set
  • attribute SPS attribute sequence parameter set
  • a bitstream includes a stream parameter set (stream PS) that includes control information common to position information at a plurality of times and attribute information at a plurality of times. That is, the three-dimensional data decoding device decodes the position information at a plurality of times and the attribute information at a plurality of times by using the control information included in the stream parameter set.
  • stream PS stream parameter set
  • the bitstream includes an access unit header (AU header) containing control information common within the access unit. That is, the three-dimensional data decoding device decodes the position information and the attribute information included in the access unit by using the control information included in the access unit header.
  • AU header access unit header
  • a three-dimensional data decoding device independently decodes a GOF (group of frames) composed of one or more access units. That is, GOF is a random access unit.
  • the bitstream contains a GOF header containing control information common within the GOF. That is, the three-dimensional data decoding device decodes the position information and the attribute information included in the GOF by using the control information included in the GOF header.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 33 is a diagram showing an example of slicing and tile division.
  • the three-dimensional data encoding device divides the three-dimensional point cloud data into arbitrary point clouds in slice units.
  • the three-dimensional data coding device does not divide the position information and the attribute information constituting the point, but divides the position information and the attribute information collectively. That is, the three-dimensional data coding device performs slice division so that the position information and the attribute information at an arbitrary point belong to the same slice.
  • the number of divisions and the division method may be any method.
  • the smallest unit of division is a point.
  • the number of divisions between the position information and the attribute information is the same.
  • the three-dimensional point corresponding to the position information after the slice division and the three-dimensional point corresponding to the attribute information are included in the same slice.
  • the three-dimensional data coding device generates slice additional information which is additional information related to the number of divisions and the division method at the time of slice division.
  • the slice addition information is the same for the position information and the attribute information.
  • the slice addition information includes information indicating the reference coordinate position, size, or side length of the bounding box after division. Further, the slice addition information includes information indicating the number of divisions, the division type, and the like.
  • the three-dimensional data encoding device divides the slice-divided data into slice position information (G slice) and slice attribute information (A slice), and divides the slice position information and slice attribute information into tile units, respectively.
  • FIG. 33 shows an example of dividing by an octa-tree structure
  • the number of divisions and the division method may be any method.
  • the three-dimensional data coding device may divide the position information and the attribute information by different division methods or may be divided by the same division method. Further, the three-dimensional data coding apparatus may divide a plurality of slices into tiles by different division methods, or may divide them into tiles by the same division method.
  • the three-dimensional data coding device generates tile addition information related to the number of divisions and the division method at the time of tile division.
  • the tile addition information (position tile addition information and attribute tile addition information) is independent of the position information and the attribute information.
  • the tile addition information includes information indicating the reference coordinate position, size, or side length of the bounding box after division. Further, the tile addition information includes information indicating the number of divisions, the division type, and the like.
  • the three-dimensional data coding apparatus may use a predetermined method as a method of slicing or tile division, or may adaptively switch the method to be used according to the point cloud data.
  • the three-dimensional data coding device collectively divides the three-dimensional space for the position information and the attribute information. For example, a three-dimensional data coding device determines the shape of an object and divides the three-dimensional space into slices according to the shape of the object. For example, a three-dimensional data coding device extracts an object such as a tree or a building and divides the object into units. For example, a three-dimensional data coding device performs slice division so that the entire one or a plurality of objects are included in one slice. Alternatively, the three-dimensional data coding device divides one object into a plurality of slices.
  • the coding device may change the coding method for each slice, for example.
  • the coding device may use a high quality compression method for a particular object or a particular portion of the object.
  • the coding apparatus may store information indicating the coding method for each slice in additional information (metadata).
  • the three-dimensional data coding device may perform slice division so that each slice corresponds to a predetermined coordinate space based on the map information or the position information.
  • the 3D data coding device independently divides the position information and the attribute information. For example, a three-dimensional data coding device divides a slice into tiles according to the amount of data or the amount of processing. For example, the three-dimensional data coding device determines whether the amount of data in the slice (for example, the number of three-dimensional points contained in the slice) is larger than a predetermined threshold value. The three-dimensional data coding device divides a slice into tiles when the amount of data in the slice is larger than the threshold value. The 3D data encoder does not divide the slice into tiles when the amount of data in the slice is less than the threshold.
  • the three-dimensional data coding device divides the slice into tiles so that the processing amount or processing time in the decoding device is within a certain range (less than or equal to a predetermined value). As a result, the amount of processing per tile in the decoding device becomes constant, and distributed processing in the decoding device becomes easy.
  • the number of divisions of the position information is determined by the attribute information. More than the number of divisions.
  • the three-dimensional data coding device divides the position information.
  • the number may be larger than the number of divisions of the attribute information.
  • the decoding device can increase the number of parallel positions of the position information, so that the processing of the position information can be made faster than the processing of the attribute information.
  • the decoding device does not necessarily have to process the sliced or tiled data in parallel, and may determine whether or not to process these in parallel according to the number or capacity of the decoding processing units.
  • adaptive coding according to the content or object can be realized.
  • parallel processing in decoding processing can be realized. This increases the flexibility of the point cloud coding system or the point cloud decoding system.
  • FIG. 34 is a diagram showing an example of a pattern of slicing and dividing tiles.
  • the DU in the figure is a data unit (DataUnit) and indicates tile or slice data.
  • each DU includes a slice index (SliceIndex) and a tile index (TileIndex).
  • sliceIndex slice index
  • TileIndex tile index
  • the number of divisions and the division method are the same for G slices and A slices.
  • the number of divisions and the division method for the G slice and the division number and the division method for the A slice are different. Further, the same number of divisions and division methods are used among a plurality of G slices. The same number of divisions and division method are used among a plurality of A slices.
  • the number of divisions and the division method are the same for G slice and A slice.
  • the number of divisions and the division method for the G slice and the division number and the division method for the A slice are different. Further, the number of divisions and the division method are different among the plurality of G slices. The number of divisions and the division method differ among a plurality of A slices.
  • Embodiment 5 Due to hardware restrictions such as transfer speed, input / output performance, memory usage, and CPU performance, it is difficult to decode all large-scale 3D maps (point cloud maps) and load the decoded data into the system. ..
  • a method of encoding a large-scale three-dimensional map into a bitstream as a plurality of slices or tiles is used. As a result, the demand for hardware in the three-dimensional data decoding device can be reduced, and real-time decoding processing can be realized in an embedded system or a mobile terminal.
  • SEI Supplemental Enhancement Information
  • the three-dimensional data encoding device generates data of tiles or slices in PCC coding, and also generates SEI including attribute information (metadata) and data access information of tiles or slices.
  • SEI including attribute information (metadata) and data access information of tiles or slices.
  • the generated SEI is encoded together with the data.
  • the three-dimensional data decoding device specifies the tile or slice necessary for decoding and the data access position thereof based on the SEI including the attribute information and the data access information of the tile or slice. As a result, the three-dimensional data decoding device can realize high-speed parallel decoding using tiles or slices.
  • tile and the slice may be used, or both may be used.
  • FIG. 35 is a diagram showing examples of memory, requested real time, current decoding time, and distance when slice or tile division is not performed (whole) and when 20 slices or tile division is performed.
  • FIG. 36 is a diagram showing an example of tile or slice division.
  • division is performed using clustering with a fixed number of point cloud data.
  • all tiles have a fixed number of point cloud data and there are no empty tiles.
  • This method has the advantage that the tiles and processing load can be made even.
  • this method requires additional computation and information to cluster the data and determine the world coordinates of each tile.
  • point cloud data that are close to each other are clustered so that spatial overlap can be avoided or minimized, and at the same time, coordinate relationships between clusters can be provided.
  • a method for clustering point cloud data for example, a method for sorting the counts of 8-segment tree division, hierarchical clustering, clustering based on the center of gravity (k-means clustering), clustering based on distribution, and clustering based on density.
  • k-means clustering clustering based on the center of gravity
  • clustering based on distribution clustering based on density.
  • density clustering based on density.
  • the method of sorting the counts of the ocree division is one of the methods that is easy to implement.
  • the point cloud data is sorted and counted. Then, when the number of point cloud data reaches a fixed value, the previous groups are classified into one cluster.
  • FIG. 37 is a diagram showing an example of this method.
  • the area number of each point cloud data is input.
  • the area number is, for example, the number of eight nodes in an octal tree.
  • the point cloud data having the same number is extracted by sorting, and for example, the point cloud data having the same number is assigned to one slice or tile.
  • slicing or tile division As a method of slicing or dividing tiles, a method using a two-dimensional map viewed from above is used.
  • the three-dimensional data coding device performs partitioning according to the minimum value and the maximum value of the bounding box based on the number of tiles input by the user.
  • This method has the advantage that the space of point cloud data can be evenly arranged in a three-dimensional data coding device without performing additional operations. However, there is a possibility that the point cloud is not included in many regions depending on the density of the point cloud.
  • FIG. 38 is a diagram showing an example of this method. As shown in FIG. 38, the space of the point cloud data is divided into a plurality of bounding boxes of the same size.
  • the 3D data encoding device introduces additional information so that the 3D data decoding device can decode the slice or tile information.
  • the 3D data coding device may introduce SEI for PCC.
  • SEI can also be used in both 3D data coding and 3D data decoding devices.
  • a three-dimensional data decoding device that does not support the SEI decoding process can decode a bit stream including an SEI message.
  • a three-dimensional data decoding device that supports SEI decoding processing can decode a bit stream that does not include an SEI message.
  • FIG. 39 is a diagram showing a configuration example of a bit stream including SEI for PCC.
  • FIG. 40 is a diagram showing an example of the information contained in the SEI for a tile or slice.
  • FIG. 41 is a diagram showing an example of the syntax of this SEI (Tile_Slice_information_SEI).
  • This SEI is included in the header of the bitstream, for example. That is, this SEI is included in the control information common to the coded data of a plurality of tiles or slices. Further, as shown in FIGS. 40 and 41, this SEI includes a tile index (Tile idx) or a slice index (Slice idx), area information (Area information), a memory offset (pointer), and a memory offset pointer. Includes Global position information; the SEI may also include other information related to coding or decoding of tiles or slices, and the SEI may be per tile index or slice index. The above information is included. Note that the SEI may include at least a part of the above information.
  • the tile index is an identifier for identifying a plurality of tiles, and different tile index values are assigned to each of the plurality of tiles.
  • the slice index is an identifier for identifying a plurality of slices, and a different slice index value is assigned to each of the plurality of slices. Further, the tile index or slice index of the tile or slice corresponding to the coded data is added to the header of the coded data of each tile or each slice.
  • Area information is information indicating the spatial range (area) of a tile or slice.
  • the area information includes size information indicating the size of the tile or slice.
  • the memory offset is information indicating the position (address) of the memory in which the coded data of the tile or slice is stored, and is the information indicating the position (address) of the coded data of the tile or slice in the bit stream.
  • the global position information is information indicating the global position of the tile or slice (for example, world coordinates (latitude / longitude, etc.)).
  • the three-dimensional data coding device performs byte alignment processing of each tile or slice.
  • SEI is not limited to coding slices or tiles, but may be used for other information encoded in a bitstream as an option.
  • the three-dimensional data encoding device associates one attribute information (the above-mentioned area information, address information (memory offset), position information (global position information), etc.) with one tile or one slice.
  • a plurality of attribute information may be associated with one tile or one slice.
  • the three-dimensional data coding device may correspond one attribute information to a plurality of tiles or a plurality of slices. Further, when the tile and the slice are used together, the three-dimensional data encoding device may add the attribute information for each to the bit stream. Further, for example, the three-dimensional data encoding device generates the first attribute information which is the area information and the second attribute information which shows the relationship between the first area information and the second area information.
  • the first attribute information and the second attribute information may be stored in the SEI.
  • the SEI may include attribute information (area information, address information and position information) for tiles or slices.
  • attribute information area information, address information and position information
  • the SEI may include a tile index or a slice index corresponding to the number of the attribute information.
  • FIG. 42 is a diagram showing a hardware configuration example of a three-dimensional data decoding device.
  • the three-dimensional data decoding device includes an input unit 4501, a localization unit 4502, a memory management unit 4503, a decoding unit 4504, a memory 4505, and a display unit 4506.
  • the input unit 4501 inputs / outputs data to / from the outside via a network such as wireless communication. Further, the input unit 4501 inputs / outputs data to / from storage such as SSD (Solid State Drive), HDD (hard disk drive), and memory module.
  • SSD Solid State Drive
  • HDD hard disk drive
  • the localization unit 4502 is, for example, a GPS (Global Positioning System), a wheel orientation detector, a gyro sensor, or the like, and detects the position and speed of a moving body or the like on which a three-dimensional data coding device is mounted. It is a module.
  • GPS Global Positioning System
  • wheel orientation detector e.g., a wheel orientation detector
  • gyro sensor e.g., gyro sensor
  • the memory management unit 4503 manages the memory 4505.
  • the memory management unit 4503 acquires information from the localization unit 4502, uses the acquired information, refers to the SEI, reads a stream of related slices or tiles, and loads the read stream into the decoding unit 4504.
  • the decoding unit 4504 decodes the slice or tile stream and stores the obtained three-dimensional data in the memory 4505.
  • Memory 4505 stores a stream of slices or tiles and 3D data.
  • the display unit 4506 displays an image or video based on the three-dimensional data stored in the memory 4505.
  • the memory management unit 4503 determines a necessary area based on the information from the localization unit 4502 (for example, GPS) and the moving direction of the moving body on which the three-dimensional data decoding device is mounted, and determines the necessary area (encoding).
  • the data of the slice or tile) is acquired from the memory 4505.
  • the related global position or the relative position related to the map is encoded as the area information.
  • 43 and 44 are diagrams showing examples of access operations to slices or tiles.
  • the current position of the object on which the three-dimensional data decoding device is mounted is identified as the region M. Further, as shown in FIGS. 43 and 44, the object moves to the left.
  • the data in these areas is read from the memory 4505 by the memory management unit 4503 in order to decode the data in these areas. Further, since the other areas are not related to the moving direction, it is not necessary to perform decoding.
  • the decoding time can be shortened and the memory capacity required in the hardware can be reduced.
  • the point cloud data bitstream for testing is generated by dividing the point cloud data in the original PLY format and individually encoding the divided point cloud data.
  • One file (concatenated stream) is generated by concatenating the obtained plurality of bitstreams. Also, this one file is transmitted with a text format SEI indicating the file size of each bitstream.
  • the decryption unit 4504 has been modified so that a part of the stream can be loaded and decoded using the SEI and the information from the memory management unit 4503. With multiple observations, the upper bound of the decoding time is observed with a slight overhead.
  • FIG. 47 is a flowchart of the three-dimensional data coding process by the three-dimensional data coding apparatus according to the present embodiment.
  • the 3D data encoding device sets a bounding box including the input 3D points based on the user settings for the tile or slice request (S4501).
  • the three-dimensional data coding device divides the bounding box into eight child nodes (S4502).
  • the three-dimensional data coding device generates an occupancy code for each of the child nodes including the three-dimensional points among the eight child nodes (S4503).
  • the three-dimensional data encoding device determines whether or not the level (tree structure hierarchy) of the node to be processed has reached the target tile level (S4504).
  • the target tile level is a level (tree structure hierarchy) for dividing tiles.
  • the 3D data encoding device divides each child node into eight grandchild nodes (S4505), and each of the grandchild nodes. Is processed in steps S4503 and subsequent steps.
  • the 3D data encoding device saves the current node position and tile level (tile size) in the tile table (S4506).
  • the 3D data coding device divides each child node into eight grandchild nodes (S4507).
  • the three-dimensional data coding device repeats the process of generating the occupancy code until the node cannot be divided (S4508).
  • the three-dimensional data coding device encodes the occupancy code of each tile (S4509).
  • the three-dimensional data coding device combines the coded bitstreams (coded data) of the generated plurality of tiles (S4510). Further, the three-dimensional data coding device adds information indicating the size of each coded bit stream (coded data), a tile table, and the like to the header information of the bit stream. Further, the three-dimensional data coding apparatus adds an identifier (tile index or slice index) of the tile or slice corresponding to each coded bit stream (coded data) to the header information of each coded bit stream.
  • the tile size (tile level) is stored in the tile table. Therefore, the three-dimensional data decoding device can acquire the size of the bounding box of the subtree of each tile by using this tile size. In addition, the three-dimensional data decoding device can calculate the size of the bounding box of the entire tree structure by using the size of the bounding box of the subtree.
  • the three-dimensional data coding device may store the size of the bounding box of each tile in the tile table. As a result, the three-dimensional data decoding device can acquire the size of the bounding box of each tile by referring to the tile table.
  • the 3D data encoder adds SEI to the bitstream (S4511).
  • the SEI includes a list showing the correspondence between the attribute information (area information, address information, position information, etc.) of each tile or each slice and the identifier (tile index or slice index).
  • the tile table may be included in the SEI.
  • FIG. 48 is a flowchart of the three-dimensional data decoding process by the three-dimensional data decoding device according to the present embodiment.
  • the memory management unit 4503 sets the tile or slice information acquired from the SEI (SEI header) (S4521).
  • the three-dimensional data decoder then refers to the SEI (SEI header) and accesses the associated tile or slice (S4522).
  • the memory management unit 4503 determines the position of the tile or slice to be acquired based on the current position and the moving direction of the three-dimensional data decoding device. Alternatively, the memory management unit 4503 determines the position of the tile or slice to be acquired based on the setting from the user. Next, the memory management unit 4503 refers to the list of the attribute information and the identifier (tile index or slice index) included in the SEI, and determines the identifier of the tile or slice at the determined position. Next, the memory management unit 4503 refers to the header information of each coded bit stream, and acquires the coded bit stream to which the determined identifier is added as the coded bit stream to be decoded.
  • the three-dimensional data decoding device uses the header information included in the bitstream to set a bounding box including the three-dimensional points to be output (S4523).
  • the three-dimensional data decoding device sets the root position of each tile (subtree) using the header information included in the bitstream (S4524).
  • the three-dimensional data decoding device divides the bounding box into eight child nodes (S4525).
  • the three-dimensional data decoding device decodes the occupancy code of each node, and divides the node into eight child nodes based on the decoded occupancy code. Further, the three-dimensional data decoding device repeats this process until the nodes of each tile (subtree) cannot be divided (S4526).
  • the 3D data decoder combines the 3D points of the decoded tiles (S4527).
  • FIG. 49 is a block diagram showing the configuration of the three-dimensional data coding device 4510 according to the present embodiment.
  • the three-dimensional data coding device 4510 includes an ocree generation unit 4511, a tile division unit 4512, a plurality of entropy coding units 4513, a bitstream generation unit 4514, and an SEI processing unit 4515.
  • the target tile level is input to the 3D data coding device 4510.
  • the three-dimensional data coding device 4510 stores the occupancy coding of each tile after the processing reaches the target tile level, and individually encodes the occupancy codes of the plurality of tiles to obtain the code data of each tile. Generate.
  • the ocree generation unit 4511 sets the bounding box and divides the bounding box into eight child nodes. Further, the ocree generation unit 4511 repeats this division process until the process reaches the target tile level. Further, the obtained information is analyzed and sent to the SEI processing unit 4515.
  • the tile division unit 4512 sets tiles. Specifically, when the above process reaches the target tile level, a plurality of tiles rooted at that level are set.
  • the plurality of entropy coding units 4513 individually encode a plurality of tiles.
  • the bitstream generation unit 4514 generates a bitstream by combining coded data in which a plurality of tiles are encoded.
  • the SEI processing unit 4515 generates an SEI and writes the generated SEI to a bit stream.
  • FIG. 50 is a block diagram showing the configuration of the three-dimensional data decoding device 4520 according to the present embodiment.
  • the three-dimensional data decoding device 4520 includes an SEI processing unit 4521, an ocree generation unit 4522, a bitstream division unit 4523, a plurality of entropy decoding units 4524, and a three-dimensional point coupling unit 4525.
  • the SEI processing unit 4521 refers to the SEI and determines which data is read and processed. Further, the determination result is sent to the bitstream division unit 4523.
  • the ocree generation unit 4522 sets the bounding box and divides the bounding box into eight child nodes. Further, the ocree generation unit 4522 repeats this division process until the process reaches the target tile level.
  • the bitstream division unit 4523 divides the bitstream into the coded data of each tile by using the header information included in the bitstream. Further, based on the information from the SEI processing unit 4521, the coded data of the tile to be decoded is sent to the entropy decoding unit 4524.
  • the plurality of entropy decoding units 4524 decodes a plurality of tiles individually.
  • the three-dimensional point coupling unit 4525 joins the three-dimensional points of a plurality of decoded tiles. In some cases, the decoded 3D points are used directly in the application. In such a case, this join process is skipped.
  • tile or slice attribute information (identifier, area information, address information, position information, etc.) may be stored not only in SEI but also in other control information.
  • the attribute information may be stored in the control information indicating the configuration of the entire PCC data, or may be stored in the control information for each tile or slice.
  • the three-dimensional data encoding device converts control information such as SEI into control information peculiar to the protocol of the system. May be shown.
  • the three-dimensional data encoding device may store the SEI together with the PCC data in the "mdat box" when converting the PCC data including the attribute information into the ISOBMFF (ISO Base Media File Format), or the stream. It may be stored in a "track box” that describes control information related to the above. That is, the 3D data coding device may store the control information in a table for random access. Further, the three-dimensional data encoding device may store the SEI in the packet header when the PCC data is packetized and transmitted. By making it possible to acquire the attribute information at the layer of the system in this way, the attribute information and the tile data or the slice data can be easily accessed, and the access speed can be improved.
  • ISOBMFF ISO Base Media File Format
  • the memory management unit 4503 determines in advance whether or not the information required for the decoding process is in the memory 4505, and if there is no information required for the decoding process, The information may be obtained from storage or network.
  • the memory management unit 4503 When the three-dimensional data decoding device acquires PCC data from the storage or network using Pull in a protocol such as MPEG-DASH, the memory management unit 4503 is required for the decoding process based on the information from the localization unit 4502 or the like. You may specify the attribute information of the data, request the tile or slice containing the specified attribute information, and acquire the necessary data (PCC stream). The tile or slice including the attribute information may be specified on the storage or network side, or may be performed by the memory management unit 4503. For example, the memory management unit 4503 may acquire SEIs of all PCC data in advance and specify tiles or slices based on the information.
  • the memory management unit 4503 When all the PCC data is transmitted from the storage or the network using Push in the UDP protocol or the like, the memory management unit 4503 has the attribute information of the data required for the decoding process based on the information from the localization unit 4502 or the like. And the desired data may be acquired by identifying the tile or slice and filtering the desired tile or slice from the transmitted PCC data.
  • the three-dimensional data coding device determines whether or not there is desired data, whether or not processing in real time is possible based on the data size, or the communication state, etc., when acquiring the data. You may. When the three-dimensional data coding apparatus determines that it is difficult to acquire data based on this determination result, another slice or tile having a different priority or amount of data may be selected and acquired.
  • the three-dimensional data decoding device may transmit information from the localization unit 4502 or the like to the cloud server, and the cloud server may determine necessary information based on the information.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 51.
  • the three-dimensional data coding device encodes a plurality of subspaces (for example, tiles or slices) contained in an object space containing a plurality of three-dimensional points to obtain a plurality of coded data corresponding to the plurality of subspaces. Generate a bitstream containing.
  • the three-dimensional data encoding device has a plurality of identifiers (for example, SEI) assigned to a plurality of subspaces in the first control information (for example, SEI) common to a plurality of coded data included in the bit stream.
  • SEI identifiers
  • the three-dimensional data coding device stores an identifier assigned to the subspace corresponding to the coded data in each header (for example, a tile header or a slice header) of the plurality of coded data (S4532).
  • the three-dimensional data decoding device decodes the bit stream generated by the three-dimensional data coding device
  • the plurality of identifiers associated with the plurality of identifiers stored in the first control information are associated with the plurality of identifiers.
  • the desired coded data can be obtained by referring to the list of information in the subspace and the identifier stored in the header of each of the plurality of coded data. Therefore, the processing amount of the three-dimensional data decoding device can be reduced.
  • the first control information is arranged before a plurality of coded data.
  • the list includes position information (for example, global position or relative position) of a plurality of subspaces.
  • the list contains size information for a plurality of subspaces.
  • the three-dimensional data encoding device converts the first control information into the second control information in the protocol of the system to which the bitstream is transmitted.
  • the three-dimensional data encoding device can convert control information according to the protocol of the system to which the bitstream is transmitted.
  • the second control information is a table for random access in the protocol.
  • the second control information is mdat box or track box in ISOBMFF.
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the process shown in FIG. 52.
  • the three-dimensional data decoding device corresponds to a plurality of subspaces obtained by encoding a plurality of subspaces (for example, tiles or slices) included in a target space containing a plurality of three-dimensional points. Decoding the bitstream containing the coded data of.
  • the three-dimensional data decoding device determines the subspace to be decoded among the plurality of subspaces in the bitstream decoding (S4541).
  • the three-dimensional data decoder includes a plurality of identifiers (eg, tile index or slice) assigned to a plurality of subspaces contained in the first control information (for example, SEI) contained in the bit stream and common to the plurality of coded data.
  • a list of information for example, position information or size information
  • the coded data included in each header for example, a tile header or a slice header
  • the coded data of the subspace to be decoded is acquired by using the identifier assigned to the corresponding subspace (S4542).
  • the three-dimensional data decoding device stores a list of information in a plurality of subspaces associated with the plurality of identifiers stored in the first control information, and stores them in the headers of the plurality of coded data.
  • the desired coded data can be obtained with reference to the identifier. Therefore, the processing amount of the three-dimensional data decoding device can be reduced.
  • the first control information is arranged before a plurality of coded data.
  • the list includes position information (for example, global position or relative position) of a plurality of subspaces.
  • the list contains size information for a plurality of subspaces.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 53 is a diagram showing an example of syntax of tile addition information (TileMetaData).
  • the tile addition information includes division method information (type_of_divide), shape information (topview_shape), duplicate flag (tile_overlap_flag), duplicate information (type_of_overlap), and height information (tile).
  • division method information type_of_divide
  • shape information topview_shape
  • duplicate flag duplicate flag
  • duplicate information type_of_overlap
  • height information e.g., height information for example
  • the number of tiles (tile_number) and the tile position information (global_position, reactive_position).
  • the division method information indicates the tile division method.
  • the division method information indicates whether the tile division method is division based on map information, that is, division based on top view (top_view) or other (other).
  • the shape information (topview_shape) is included in the tile addition information, for example, when the tile division method is division based on the top view.
  • the shape information indicates the shape of the tile as viewed from above. For example, this shape includes squares and circles. In addition, this shape may include a polygon other than an ellipse, a rectangle or a quadrangle, and may include other shapes.
  • the shape information is not limited to the shape of the tile viewed from above, and may indicate the three-dimensional shape of the tile (for example, a cube or a cylinder).
  • the duplicate flag indicates whether or not the tiles are duplicated.
  • the duplicate flag is included in the tile addition information when the tile division method is division based on the top view.
  • the overlap flag indicates whether or not the tiles overlap in the top view.
  • the duplication flag may indicate whether or not the tiles overlap in the three-dimensional space.
  • Duplicate information (type_of_overlap) is included in the tile addition information when, for example, tiles are duplicated.
  • Duplicate information indicates how tiles are duplicated.
  • the overlapping information indicates the size of the overlapping area and the like.
  • the height information indicates the height of the tile.
  • the height information may include information indicating the shape of the tile.
  • the information may indicate the length of the sides (vertical length and horizontal length) of the rectangle when the shape of the tile in the top view of the tile is rectangular.
  • the information may indicate the diameter or radius of the circle.
  • the height information may indicate the height of each tile, or may indicate a common height among a plurality of tiles. Further, a plurality of height types such as a road and a grade separation portion may be set in advance, and the height of each height type and the height type of each tile may be indicated by the height information. 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 does not have to be indicated by the height information.
  • the number of tiles indicates the number of tiles.
  • the tile addition information may include information indicating the tile spacing.
  • the tile position information (global_position, reactive_position) is information for specifying the position of each tile.
  • the tile position information indicates the absolute coordinates or relative coordinates of each tile.
  • each tile may be provided for each of a plurality of tiles (for example, for each frame or for each of a plurality of frames).
  • the three-dimensional data encoding device may include the tile addition information in the SEI (Supplemental Enhancement Information) and send it out.
  • the 3D data coding device may store the tile addition information in an existing parameter set (PPS, GPS, APS, etc.) and send it out.
  • the tile addition information when the tile addition information changes for each frame, the tile addition information may be stored in the parameter set (GPS, APS, etc.) for each frame. If the tile addition information does not change in the sequence, the tile addition information may be stored in the parameter set (position SPS or attribute SPS) for each sequence. Further, when the same tile division information is used for the position information and the attribute information, the tile addition information may be stored in the parameter set (stream PS) of the PCC stream.
  • the parameter set position SPS or attribute SPS
  • the tile addition information may be stored in any one of the above parameter sets, or may be stored in a plurality of parameter sets. Further, the tile addition information may be stored in the header of the coded data. Further, the tile addition information may be stored in the header of the NAL unit.
  • all or part of the tile addition information is 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.
  • the tile addition information may be included in one header of the position information and the attribute information.
  • the header of the position information may include these tile addition information, and the header of the attribute information may not include the tile addition information.
  • 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.
  • the three-dimensional data decoding device reconstructs the tile-divided point cloud data based on the tile addition information.
  • the three-dimensional data decoding device identifies a plurality of overlapping point cloud data, selects one of them, or merges the plurality of point cloud data.
  • the three-dimensional data decoding device may perform decoding using the tile additional information. For example, when a plurality of tiles overlap, the three-dimensional data decoding device decodes each tile, performs processing using the decoded plurality of data (for example, smoothing or filtering), and performs point cloud data. May be generated. This may enable highly accurate decoding.
  • FIG. 54 is a diagram showing a configuration example of a system including a three-dimensional data coding device and a three-dimensional data decoding device.
  • the tile dividing unit 5051 divides the point cloud data including the position information and the attribute information into the first tile and the second tile. Further, the tile division unit 5051 sends the tile addition information related to the tile division to the decoding unit 5053 and the tile connection unit 5054.
  • the coding unit 5052 generates coded data by coding the first tile and the second tile.
  • the decoding unit 5053 restores the first tile and the second tile by decoding the coded data generated by the coding unit 5052.
  • the tile joining portion 5054 restores the point cloud data (position information and attribute information) by joining the first tile and the second tile using the tile addition information.
  • the three-dimensional data encoding device generates slice addition information which is metadata about a slice division method, and transmits the generated slice addition information to the three-dimensional data decoding device.
  • FIG. 55 is a diagram showing an example of syntax of slice addition information (SliceMetaData).
  • the slice addition information includes the division method information (type_of_divide), the overlap flag (slice_overlap_flag), the duplicate information (type_of_overlap), the number of slices (slice_number), and the slice position information (globlion_). ) And slice size information (slice_bounding_box_size).
  • the division method information indicates a slice division method.
  • the division method information indicates whether or not the division method of the slice is an object based on the information of the object as shown in FIG. 78.
  • the slice addition information may include information indicating the method of object division. For example, this information indicates whether an object should be split into multiple slices or assigned to one slice. Further, this information may indicate the number of divisions when one object is divided into a plurality of slices.
  • the duplicate flag indicates whether or not the slices are duplicated.
  • the duplicate information (type_of_overlap) is included in the slice addition information, for example, when the slices are duplicated.
  • Duplicate information indicates how slices are duplicated. For example, the overlapping information indicates the size of the overlapping area and the like.
  • the number of slices indicates the number of slices.
  • the slice position information (global_position, reactive_position) and the slice size information (slice_bounding_box_size) are information regarding the region of the slice.
  • the slice position information is information for specifying the position of each slice.
  • 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.
  • the slice size information indicates the size of the bounding box of each slice.
  • the three-dimensional data encoding device may include the slice addition information in the SEI and send it out.
  • the three-dimensional data coding device may store the slice addition information in an existing parameter set (PPS, GPS, APS, etc.) and send it out.
  • the slice addition information when the slice addition information changes for each frame, the slice addition information may be stored in a parameter set (GPS, APS, etc.) for each frame. If the slice addition information does not change in the sequence, the slice addition information may be stored in the parameter set (position SPS or attribute SPS) for each sequence. Further, when the same slice division information is used for the position information and the attribute information, the slice addition information may be stored in the parameter set (stream PS) of the PCC stream.
  • a parameter set GPS, APS, etc.
  • the slice addition information may be stored in the parameter set (position SPS or attribute SPS) for each sequence.
  • the slice addition information may be stored in the parameter set (stream PS) of the PCC stream.
  • the slice addition information may be stored in any one of the above parameter sets, or may be stored in a plurality of parameter sets. Further, the slice addition information may be stored in the header of the coded data. Further, the slice addition information may be stored in the header of the NAL unit.
  • all or part of the slice addition information is 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.
  • the slice addition information may be included in one of the headers of the position information and the attribute information.
  • the header of the position information may include these slice addition information, and the header of the attribute information may not include the slice addition information.
  • 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.
  • the three-dimensional data decoding device reconstructs the point cloud data divided into slices based on the slice addition information.
  • the three-dimensional data decoding device identifies a plurality of overlapping point cloud data, selects one of them, or merges the plurality of point cloud data.
  • the three-dimensional data decoding device may perform decoding using the slice addition information. For example, when a plurality of slices overlap, the three-dimensional data decoding device decodes each slice, performs processing using the decoded plurality of data (for example, smoothing or filtering), and obtains point cloud data. It may be generated. This may enable highly accurate decoding.
  • FIG. 56 is a flowchart of a three-dimensional data coding process including a tile addition information generation process by the three-dimensional data coding device according to the present embodiment.
  • the three-dimensional data coding device determines the tile division method (S5031). Specifically, the three-dimensional data coding apparatus determines whether to use a division method based on top view (top_view) or other (other) as the tile division method. Further, the three-dimensional data coding device determines the shape of the tile when the division method based on the top view is used. The three-dimensional data coding device also determines whether a tile overlaps with other tiles.
  • the three-dimensional data coding apparatus has a tile division method based on top view (top_view). Is described in the tile addition information (S5033).
  • the tile division method determined in step S5031 is other than the division method based on the top view (No in S5032), in the three-dimensional data coding apparatus, the tile division method is based on the top view (top_view). It is described in the tile addition information that the method is other than (S5034).
  • the three-dimensional data encoding device describes in the tile addition information that the shape of the tile viewed from above is square. (S5036).
  • the shape of the tile viewed from above is a circle (circle in S5035) determined in step S5031
  • the three-dimensional data encoding device describes in the tile addition information that the shape of the tile viewed from above is a circle. (S5037).
  • the three-dimensional data coding device determines whether the tile overlaps with other tiles (S5038). When a tile overlaps with another tile (Yes in S5038), the three-dimensional data encoding device describes that the tile overlaps in the tile addition information (S5039). On the other hand, when the tile does not overlap with other tiles (No in S5038), the three-dimensional data coding apparatus describes in the tile addition information that the tile does not overlap (S5040).
  • the three-dimensional data coding device divides the tiles based on the tile dividing method determined in step S5031, encodes each tile, and sends out the generated coded data and tile addition information (S5041).
  • FIG. 57 is a flowchart of the three-dimensional data decoding process using the tile addition information by the three-dimensional data decoding apparatus according to the present embodiment.
  • the three-dimensional data decoding device analyzes the tile addition information included in the bit stream (S5051).
  • the 3D data decoding device When the tile addition information indicates that the tile does not overlap with other tiles (No in S5052), the 3D data decoding device generates point cloud data for each tile by decoding each tile (S5053). ). Next, the three-dimensional data decoding device 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).
  • the three-dimensional data decoding device when the tile addition information indicates that the tile overlaps with other tiles (Yes in S5052), the three-dimensional data decoding device generates point cloud data for each tile by decoding each tile. .. Further, the three-dimensional data decoding device identifies the overlapping portion of the tiles based on the tile addition information (S5055). The three-dimensional data decoding device may perform decoding processing on the overlapping portion by using a plurality of overlapping information. Next, the three-dimensional data decoding device 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).
  • the three-dimensional data encoding device may transmit information indicating the type (road, building, tree, etc.) or attribute (dynamic information, static information, etc.) of the object as additional information.
  • the coding parameters are predetermined according to the object, and the three-dimensional data coding device may notify the three-dimensional data decoding device of the coding parameters by sending out the type or attribute of the object.
  • the three-dimensional data encoding device may encode slice data in order from data in which object recognition or clustering is easy.
  • the three-dimensional data coding apparatus may perform coding in order from the slice data for which clustering has been completed earlier.
  • the three-dimensional data coding apparatus may send out the coded slice data in order.
  • the three-dimensional data encoding device may send out slice data in the order of priority of decoding in the application. For example, when the priority of decoding dynamic information is high, the three-dimensional data coding apparatus may send out slice data in order from the slices grouped by the dynamic information.
  • the three-dimensional data coding apparatus may send the coded data after rearranging them. Further, when storing the coded data, the three-dimensional data coding device may store the coded data after rearranging the coded data.
  • the application requests the server (three-dimensional data coding device) to send out a slice containing the desired data.
  • the server sends out the slice data required by the application and does not have to send out the unnecessary slice data.
  • the application requests the server to send tiles containing the desired data.
  • the server sends out the tile data required by the application, and does not have to send out the unnecessary tile data.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 58.
  • the three-dimensional data coding device generates a plurality of coded data by encoding a plurality of subspaces (for example, tiles) obtained by dividing a target space including a plurality of three-dimensional points (S5061).
  • the three-dimensional data coding apparatus generates a bit stream including the plurality of coded data and the first information (for example, topview_shipe) indicating the shape of the plurality of subspaces (S5062).
  • the three-dimensional data coding device can select an arbitrary shape from a plurality of types of subspace shapes, so that the coding efficiency can be improved.
  • the shape is a two-dimensional shape or a three-dimensional shape of the plurality of subspaces.
  • the shape is a shape in which the plurality of sub-spaces are viewed from above. That is, the first information indicates the shape of the subspace as viewed from a specific direction (for example, upward). In other words, the first information shows a shape that gives a bird's-eye view of the subspace.
  • the shape is a rectangle or a circle.
  • the bitstream contains second information (eg, tile_overlap_flag) indicating whether or not the plurality of sub-sections overlap.
  • second information eg, tile_overlap_flag
  • the sub-spaces can be generated without complicating the shape of the sub-spaces.
  • the bitstream includes a third piece of information (eg, type_of_divide) indicating whether the method of dividing the plurality of sub-sections is a division method using a top view.
  • a third piece of information eg, type_of_divide
  • the bitstream contains a fourth piece of information (eg, tile_height) indicating at least one of the height, width, depth, and radius of the plurality of subsections.
  • a fourth piece of information eg, tile_height
  • the bitstream contains a fifth piece of information (eg, global_position or reactive_position) indicating the position of each of the plurality of subsections.
  • a fifth piece of information eg, global_position or reactive_position
  • the bitstream contains sixth information (eg, tile_number) indicating the number of the plurality of sub-sections.
  • the bitstream contains a seventh piece of information indicating the spacing between the plurality of subsections.
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the process shown in FIG. 59.
  • the three-dimensional data decoding device has a plurality of encodings generated by encoding a plurality of subspaces (for example, tiles) that divide a target space containing a plurality of three-dimensional points contained in a bit stream.
  • the plurality of subspaces are restored by decoding the data (S5071).
  • the three-dimensional data decoding device restores the target space by combining the plurality of subspaces using the first information (for example, topview_shape) indicating the shape of the plurality of subspaces included in the bitstream. S5072).
  • the first information for example, topview_shape
  • the three-dimensional data decoding device can grasp the position and range of each subspace in the target space by recognizing the shapes of the plurality of subspaces by using the first information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces grasped. As a result, the three-dimensional data decoding device can correctly combine a plurality of subspaces.
  • the shape is a two-dimensional shape or a three-dimensional shape of the plurality of subspaces.
  • the shape is a rectangle or a circle.
  • the bitstream contains second information (eg, tile_overlap_flag) indicating whether or not the plurality of sub-sections overlap.
  • the three-dimensional data decoding device further uses the second information to combine the plurality of subspaces.
  • the three-dimensional data decoding device uses the second information to determine whether or not the subspaces overlap.
  • the three-dimensional data decoding device identifies the overlapping area and takes a predetermined response to the specified overlapping area.
  • the bitstream includes a third piece of information (eg, type_of_divide) indicating whether the method of dividing the plurality of sub-sections is a division method using a top view.
  • a third piece of information eg, type_of_divide
  • the three-dimensional data decoding apparatus uses the first information to create the plurality of sub-spaces. Join.
  • the bitstream contains a fourth piece of information (eg, tile_height) indicating at least one of the height, width, depth, and radius of the plurality of subsections.
  • the three-dimensional data decoding device further uses the fourth information to combine the plurality of subspaces.
  • the three-dimensional data decoding device can grasp the position and range of each subspace in the target space by recognizing the heights of the plurality of subspaces by using the fourth information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces grasped.
  • the bitstream contains a fifth piece of information (eg, global_position or reactive_position) indicating the position of each of the plurality of subsections.
  • the three-dimensional data decoding device further uses the fifth information to combine the plurality of subspaces.
  • the three-dimensional data decoding device can grasp the position of each subspace in the target space by recognizing the positions of the plurality of subspaces by using the fifth information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions of the plurality of subspaces grasped.
  • the bitstream contains sixth information (eg, tile_number) indicating the number of the plurality of sub-sections.
  • the three-dimensional data decoding device further uses the sixth information to combine the plurality of subspaces.
  • the bitstream contains a seventh piece of information indicating the spacing between the plurality of subsections.
  • the three-dimensional data decoding device further uses the seventh information to combine the plurality of subspaces.
  • the three-dimensional data decoding device can grasp the position and range of each subspace in the target space by recognizing the intervals between the plurality of subspaces by using the seventh information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces grasped.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the division method can be classified according to whether or not the division unit (for example, tile or slice), which is the divided data unit, always contains one or more point data.
  • a division method that includes one or more point data in all of a plurality of division units is called a first division method.
  • the first division method for example, there is a method of dividing the point cloud data in consideration of the coding processing time or the size of the coded data. In this case, the number of points is approximately equal in each division unit.
  • FIG. 60 is a diagram showing an example of a division method.
  • a method of dividing points belonging to the same space into two identical spaces may be used as the first division method.
  • FIG. 60 (b) the space may be divided into a plurality of subspaces (division units) so that each division unit includes a point.
  • the division method in which one or more division units that do not include point data may be included in a plurality of division units is called a second division method.
  • a second division method as shown in FIG. 60 (c), a method of evenly dividing the space can be used.
  • the point does not always exist in the division unit. That is, there may be no points in the division unit.
  • the three-dimensional data encoding device divides the point group data
  • the three-dimensional data coding device may show the above information as a type of division method. Further, the three-dimensional data coding apparatus does not have to perform division by a predetermined division method and send out division additional information. In that case, the three-dimensional data coding apparatus clearly indicates in advance whether the division method is the first division method or the second division method.
  • tile division will be described as an example of the division method of the three-dimensional space, but it does not have to be tile division, and the following method can be applied to the division method of the division unit different from the tile.
  • tile division may be read as slice division.
  • FIG. 61 is a diagram showing an example of dividing the point cloud data into 6 tiles.
  • FIG. 61 shows an example in which the smallest unit is a point, and shows an example in which position information (Geometry) and attribute information (Attribute) are divided together. The same applies when the position information and the attribute information are divided by an individual division method or the number of divisions, when there is no attribute information, and when there are a plurality of attribute information.
  • the tiles having dots in the tiles (# 1, # 2, # 4, # 6) and the tiles having no dots in the tiles (# 3, # 5) are separated. exist.
  • a tile that does not contain dots in the tile is called a null tile.
  • any division method may be used, not limited to the case of dividing into 6 tiles.
  • the division unit may be a cube, or may be a non-cubic shape such as a rectangular parallelepiped or a cylinder.
  • the plurality of division units may have the same shape or may include different shapes.
  • a predetermined method may be used, or a different method may be used for each predetermined unit (for example, PCC frame).
  • the three-dimensional data coding apparatus may generate, for example, the following information as additional information (metadata) regarding data division, and send out the generated information.
  • FIG. 62 is a diagram showing an example of syntax of tile addition information (TileMetaData).
  • the tile addition information includes the division method information (type_of_divide), the division method null information (type_of_divide_null), the number of tile divisions (number_of_tiles), and the tile null flag (tile_null_flag).
  • the division method information is information regarding the division method or the division type.
  • the division method information indicates one or a plurality of division methods or division types.
  • the division method there are top view (top_view) division, even division, and the like.
  • the tile addition information may not include the division method information.
  • the division method null information is information indicating whether the division method used is the following first division method or second division method.
  • the first division method is a division method in which one or more point data are always included in all of the plurality of division units.
  • the second division method is a division method in which one or more division units do not include point data in a plurality of division units, or there is a possibility that one or more division units do not include point data in a plurality of division units. There is a division method.
  • the tile addition information includes (1) information indicating the number of tile divisions (number of tile divisions (number_of_tiles)) or information for specifying the number of tile divisions, and (2) null tiles, as the division information of the entire tile. At least one of information indicating the number or information for specifying the number of null tiles, and (3) information indicating the number of tiles other than null tiles, or information for specifying the number of tiles other than null tiles. May include. Further, the tile addition information may include information indicating the shape of the tile or whether or not the tiles overlap as the division information of the entire tile.
  • the tile addition information indicates the division information for each tile in order.
  • the order of tiles is predetermined for each division method and is known in a three-dimensional data coding device and a three-dimensional data decoding device. If the order of the tiles is not predetermined, the three-dimensional data coding device may send information indicating the order to the three-dimensional data decoding device.
  • the division information for each tile includes a tile null flag (tile_null_flag), which is a flag indicating whether or not data (points) exists in the tile.
  • tile null flag When there is no data in the tile, the tile null flag may be included as the tile division information.
  • the tile addition information includes division information for each tile (position information (for example, origin coordinates (origin_x, origin_y, origin_z)), tile height information, and the like). Further, when the tile is a null tile, the tile addition information does not include the division information for each tile.
  • the three-dimensional data encoding device does not have to store the information for the slice division of the null tile in the additional information.
  • the number of tile divisions indicates the number of tiles including null tiles.
  • FIG. 63 is a diagram showing an example of tile index information (idx). In the example shown in FIG. 63, the index information is also assigned to the null tile.
  • FIGS. 64 to 66 are diagrams showing a data structure when the position information and the attribute information are divided into six tiles and no data exists in the third and fifth tiles.
  • FIG. 64 is a diagram showing an example of the dependency relationship of each data.
  • the tip of the arrow in the figure indicates the dependency destination, and the source of the arrow indicates the dependency source.
  • G nt (n is 1 to 6) indicates the position information of the tile number n, and Atn indicates the attribute information of the tile number n.
  • M tile indicates tile additional information.
  • FIG. 65 is a diagram showing a configuration example of transmission data, which is coding data transmitted from a three-dimensional data encoding device. Further, FIG. 66 is a diagram showing a configuration of coded data and a method of storing the coded data in the NAL unit.
  • tile index information (tile_idx) is included in the header of the data of the position information (division position information) and the attribute information (division attribute information), respectively.
  • the three-dimensional data coding device does not have to send out the position information or the attribute information constituting the null tile.
  • the three-dimensional data coding apparatus may send information indicating that the tile is a null tile as data of the null tile.
  • the three-dimensional data coding device describes in the header of the NAL unit or the tile_type stored in the header in the payload (nal_unit_payload) of the NAL unit that the type of the data is null tile, and sends the header. You may. In the following, the description will be given on the premise of structure 1.
  • the value of the index information (tile_idx) of the tile included in the header of the position information data or the attribute information data in the transmission data is missing and is not continuous.
  • the three-dimensional data encoding device sends the referenced data so that the referenced data can be decoded before the reference source data.
  • the attribute information tile has a dependency relationship with the position information tile.
  • the index number of the same tile is added to the attribute information and the position information that have a dependency.
  • the tile additional information related to the tile division may be stored in both the position information parameter set (GPS) and the attribute information parameter set (APS), or may be stored in either one.
  • the tile addition information is stored in one of the GPS and the APS
  • the reference information indicating the referenced GPS or the APS may be stored in the other of the GPS and the APS.
  • different tile addition information is stored in each of GPS and APS.
  • the tile division method is the same in the sequence (multiple PCC frames)
  • the tile addition information may be stored in GPS, APS or SPS (sequence parameter set).
  • the tile addition information when the tile addition information is stored in both GPS and APS, the tile addition information of the position information is stored in the GPS, and the tile addition information of the attribute information is stored in the APS. Further, when the tile addition information is stored in common information such as SPS, the tile addition information commonly used in the position information and the attribute information may be stored, and the tile addition information and the attribute information of the position information may be stored. The tile additional information of may be stored respectively.
  • tile division and slice division The combination of tile division and slice division will be described below. First, the data structure and data transmission in the case of performing tile division after slice division will be described.
  • FIG. 67 is a diagram showing an example of the dependency relationship of each data when tile division is performed after slice division.
  • the tip of the arrow in the figure indicates the dependency destination, and the source of the arrow indicates the dependency source. Further, the data indicated by the solid line in the figure is the data actually transmitted, and the data indicated by the dotted line is the data not transmitted.
  • G indicates position information and A indicates attribute information.
  • G s1 indicates the position information of the slice number 1
  • G s2 indicates the position information of the slice number 2.
  • G s1t1 indicates the position information of the slice number 1 and the tile number 1
  • G s2t2 indicates the position information of the slice number 2 and the tile number 2.
  • a s1 indicates the attribute information of the slice number 1
  • a s2 indicates the attribute information of the slice number 2.
  • As1t1 indicates the attribute information of the slice number 1 and the tile number 1
  • As2t1 indicates the attribute information of the slice number 2 and the tile number 1.
  • Mslice indicates slice addition information
  • MGtile indicates position tile addition information
  • MAtile indicates attribute tile addition information
  • D s1t1 shows the dependency information of the attribute information A s1t1
  • D s2t1 shows the dependency information of the attribute information A s2t1 .
  • the three-dimensional data coding device does not have to generate and send out position information and attribute information related to null tiles.
  • the number of tiles generated and transmitted may differ between slices.
  • the null tile may exist in one of the position information and the attribute information and may not exist in the other.
  • the position information (G s1 ) of the slice 1 is divided into two tiles, G s1t1 and G s1t2 , of which G s1t2 is a null tile.
  • slice 1 of the attribute information (A s1) is present one A S1t1 not divided, Nurutairu is absent.
  • the three-dimensional data encoding device generates and sends the dependency information of the attribute information at least when the data exists in the tile of the attribute information regardless of whether or not the slice of the position information contains the null tile. .. For example, when the three-dimensional data coding device stores the slice division information for each tile in the division information for each slice included in the slice addition information related to the slice division, whether or not the tile is a null tile in this information. Store the information.
  • FIG. 68 is a diagram showing an example of the data decoding order.
  • decoding is performed in order from the data on the left.
  • the three-dimensional data decoding device decodes the dependent data first among the dependent data.
  • the three-dimensional data coding apparatus sorts the data in advance so as to send the data in this order. It should be noted that any order may be used as long as the dependent data comes first. Further, the three-dimensional data coding apparatus may send additional information and dependency information before the data.
  • FIG. 69 is a diagram showing an example of the dependency relationship of each data when the slice division is performed after the tile division.
  • the tip of the arrow in the figure indicates the dependency destination, and the source of the arrow indicates the dependency source. Further, the data indicated by the solid line in the figure is the data actually transmitted, and the data indicated by the dotted line is the data not transmitted.
  • G indicates position information and A indicates attribute information.
  • G t1 indicates the position information of the tile number 1.
  • G t1s1 indicates the position information of the tile number 1 and the slice number 1, and
  • G t1s2 indicates the position information of the tile number 1 and the slice number 2.
  • a t1 indicates the attribute information of the tile number 1
  • a T1S1 indicates attribute information of the tile number 1 and slice number 1.
  • Mtile indicates tile addition information
  • MGslice indicates position slice addition information
  • MAslice indicates attribute slice addition information.
  • D T1S1 shows the dependency information of the attribute information A t1s1
  • D t2s1 shows the dependency information of the attribute information A T2s1.
  • the 3D data coding device does not slice the null tile. Further, it is not necessary to generate and send the position information, the attribute information, and the dependency information of the attribute information related to the null tile.
  • FIG. 70 is a diagram showing an example of the order of decoding data.
  • decoding is performed in order from the data on the left.
  • the three-dimensional data decoding device decodes the dependent data first among the dependent data.
  • the three-dimensional data coding apparatus sorts the data in advance so as to send the data in this order. It should be noted that any order may be used as long as the dependent data comes first. Further, the three-dimensional data coding apparatus may send additional information and dependency information before the data.
  • FIG. 71 is a flowchart of a three-dimensional data coding process including a data division process by a three-dimensional data coding device.
  • the three-dimensional data coding apparatus determines the division method to be used (S5101). Specifically, the three-dimensional data coding apparatus determines whether to use the first division method or the second division method. For example, the three-dimensional data encoding device may determine the division method based on the designation from the user or an external device (for example, a three-dimensional data decoding device), or determine the division method according to the input point cloud data. You may. Moreover, the division method to be used may be predetermined.
  • the first division method is a division method in which one or more point data are always included in all of a plurality of division units (tiles or slices).
  • the second division method is a division method in which one or more division units do not include point data in a plurality of division units, or there is a possibility that one or more division units do not include point data in a plurality of division units. There is a division method.
  • the three-dimensional data coding apparatus When the determined division method is the first division method (first division method in S5102), the three-dimensional data coding apparatus has the division addition information (for example, tile addition information or slice addition information) which is the metadata related to the data division. ) Is the first division method (S5103). Then, the three-dimensional data coding device encodes all the division units (S5104).
  • the division addition information for example, tile addition information or slice addition information
  • the three-dimensional data coding apparatus determines that the division method used for the division additional information is the second division method. Describe (S5105). Then, the three-dimensional data coding device encodes the division unit excluding the division unit (for example, null tile) that does not include the point data among the plurality of division units (S5106).
  • FIG. 72 is a flowchart of a three-dimensional data decoding process including a data combination process by a three-dimensional data decoding device.
  • the three-dimensional data decoding device refers to the division additional information included in the bit stream, and determines whether the division method used is the first division method or the second division method (S5111).
  • the three-dimensional data decoding device receives the coded data of all the division units and decodes the received coded data. Then, the decryption data of all the division units is generated (S5113). Next, the three-dimensional data decoding device reconstructs the three-dimensional point cloud using the decoded data of all the division units (S5114). For example, a three-dimensional data decoding device reconstructs a three-dimensional point cloud by combining a plurality of division units.
  • the three-dimensional data decoding apparatus has the coded data of the division unit including the point data and the division unit not including the point data.
  • the decoded data is generated by receiving the coded data of the above and decoding the received coded data of the division unit (S5115).
  • the three-dimensional data decoding device does not have to receive and decode the division unit that does not include the point cloud data when the division unit that does not include the point cloud data is not transmitted.
  • the three-dimensional data decoding device reconstructs the three-dimensional point cloud using the decoding data of the division unit including the point data (S5116). For example, a three-dimensional data decoding device reconstructs a three-dimensional point cloud by combining a plurality of division units.
  • the three-dimensional data coding device When the space is evenly divided as shown in FIG. 60 (c), there may be no points in the divided space.
  • the three-dimensional data coding device combines the space in which the point does not exist with the other space in which the point exists. Thereby, the three-dimensional data coding apparatus can form a plurality of division units so that all division units include one or more points.
  • FIG. 73 is a flowchart of data division in this case.
  • the three-dimensional data coding device divides the data by a specific method (S5121).
  • the specific method is the second division method described above.
  • the three-dimensional data coding device determines whether or not a point is included in the target division unit, which is the division unit of the processing target (S5122).
  • the target division unit includes a point (Yes in S5122)
  • the three-dimensional data coding apparatus encodes the target division unit (S5123).
  • the target division unit does not include a point (No in S5122)
  • the three-dimensional data coding device combines the target division unit with another division unit including the point, and encodes the combined division unit. (S5124). That is, the three-dimensional data coding device encodes the target division unit together with other division units including points.
  • a three-dimensional data coding device determines whether or not each of a plurality of division units contains a point, performs a combination so that there are no division units that do not include a point, and a plurality of division units after the combination.
  • Each of may be encoded.
  • FIG. 74 is a flowchart of the data transmission process.
  • the three-dimensional data coding device determines the tile division method, and divides the point cloud data into tiles using the determined division method (S5131).
  • the three-dimensional data coding device determines whether or not the target tile is a null tile (S5132). That is, the three-dimensional data coding device determines whether or not there is data in the target tile.
  • the three-dimensional data encoding device When the target tile is a null tile (Yes in S5132), the three-dimensional data encoding device indicates that the target tile is a null tile and indicates the target tile information (tile position and size, etc.) in the tile addition information. Not (S5133). Further, the three-dimensional data coding device does not send out the target tile (S5134).
  • the three-dimensional data encoding device when the target tile is not a null tile (No in S5132), the three-dimensional data encoding device indicates that the target tile is not a null tile in the tile addition information, and indicates information for each tile (S5135). Further, the three-dimensional data coding device sends out the target tile (S5136).
  • the amount of information in the tile addition information can be reduced.
  • FIG. 75 is a diagram showing an example of transmission data which is coding data transmitted from a three-dimensional data encoding device and received data input to the three-dimensional data decoding device.
  • transmission data which is coding data transmitted from a three-dimensional data encoding device and received data input to the three-dimensional data decoding device.
  • the received data is the same as the transmitted data.
  • the 3D data decoder receives all of the transmitted data in the system environment where there is no packet loss.
  • FIG. 76 is a flowchart of processing by the three-dimensional data decoding device.
  • the three-dimensional data decoding device refers to the tile addition information (S5141) and determines whether or not each tile is a null tile (S5142).
  • the three-dimensional data decoding device determines that the target tile is not a null tile and decodes the target tile (S5143). Next, the three-dimensional data decoding device acquires tile information (tile position information (origin coordinates, etc.) and size, etc.) from the tile addition information, and combines a plurality of tiles using the acquired information. Reconstruct the three-dimensional data (S5144).
  • the three-dimensional data decoding device determines that the target tile is a null tile and does not decode the target tile (S5145).
  • the three-dimensional data decoding device may determine that the missing data is a null tile by sequentially analyzing the index information shown in the header of the coded data. Further, the three-dimensional data decoding device may combine a determination method using tile addition information and a determination method using index information.
  • FIG. 77 is a diagram showing an example of transmission data transmitted from the three-dimensional data coding device and received data input to the three-dimensional data decoding device.
  • the case of a system environment with packet loss is assumed.
  • the 3D data decoder may not be able to receive all of the transmitted data.
  • packets of G t2 and A t2 is lost.
  • FIG. 78 is a flowchart of the processing of the three-dimensional data decoding device in this case.
  • the three-dimensional data decoding device analyzes the continuity of the index information shown in the header of the coded data (S5151), and determines whether or not the index number of the target tile exists (S5152).
  • the three-dimensional data decoding device determines that the target tile is not a null tile and executes the decoding process of the target tile (S5153). Next, the three-dimensional data decoding device acquires tile information (tile position information (origin coordinates, etc.) and size, etc.) from the tile addition information, and combines a plurality of tiles using the acquired information. Reconstruct the three-dimensional data (S5154).
  • the three-dimensional data decoding device determines whether or not the target tile is a null tile by referring to the tile addition information (S5155).
  • the 3D data decoding device determines that the target tile has been lost (packet loss) and performs error decoding processing (S5157).
  • the error decoding process is, for example, a process of attempting to decode the original data assuming that there is data.
  • the three-dimensional data decoding device may reproduce the three-dimensional data and reconstruct the three-dimensional data (S5154).
  • the three-dimensional data decoding device assumes that the target tile is a null tile and does not perform the decoding process and the reconstruction of the three-dimensional data (S5158).
  • the three-dimensional data coding apparatus may generate the coded data and additional information by the following method.
  • the 3D data coding device does not show the null tile information in the tile addition information.
  • the three-dimensional data coding device assigns the index number of the tile excluding the null tile to the data header.
  • the 3D data coding device does not send null tiles.
  • the number of tile divisions indicates the number of divisions that do not include null tiles.
  • the three-dimensional data coding device may separately store information indicating the number of null tiles in the bit stream. Further, the three-dimensional data coding apparatus may indicate information about null tiles in the additional information, or may indicate some information about null tiles.
  • FIG. 79 is a flowchart of the three-dimensional data coding process by the three-dimensional data coding device in this case.
  • the three-dimensional data coding device determines a tile division method, and divides the point cloud data into tiles using the determined division method (S5161).
  • the three-dimensional data coding device determines whether or not the target tile is a null tile (S5162). That is, the three-dimensional data coding device determines whether or not there is data in the target tile.
  • the three-dimensional data encoding device When the target tile is not a null tile (No in S5162), the three-dimensional data encoding device adds index information of the tile excluding the null tile to the data header (S5163). Then, the three-dimensional data coding device sends out the target tile (S5164).
  • the three-dimensional data encoding device adds the index information of the target tile to the data header and does not send the target tile.
  • FIG. 80 is a diagram showing an example of index information (idx) added to the data header. As shown in FIG. 80, the index information of the null tile is not added, and the serial number is added to the tiles other than the null tile.
  • FIG. 81 is a diagram showing an example of the dependency relationship of each data.
  • the tip of the arrow in the figure indicates the dependency destination, and the source of the arrow indicates the dependency source.
  • G nt (n is 1 to 4) indicates the position information of the tile number n, and Atn indicates the attribute information of the tile number n.
  • M tile indicates tile additional information.
  • FIG. 82 is a diagram showing a configuration example of transmission data, which is coding data transmitted from a three-dimensional data encoding device.
  • FIG. 83 is a diagram showing an example of transmission data transmitted from the three-dimensional data coding device and received data input to the three-dimensional data decoding device. Here, the case of a system environment with packet loss is assumed.
  • FIG. 84 is a flowchart of the processing of the three-dimensional data decoding device in this case.
  • the three-dimensional data decoding device analyzes the index information of the tile shown in the header of the coded data, and determines whether or not the index number of the target tile exists. Further, the three-dimensional data decoding device acquires the number of tile divisions from the tile addition information (S5171).
  • the three-dimensional data decoding device performs the decoding process of the target tile (S5173). Next, the three-dimensional data decoding device acquires tile information (tile position information (origin coordinates, etc.) and size, etc.) from the tile addition information, and combines a plurality of tiles using the acquired information. Reconstruct the three-dimensional data (S5175).
  • the three-dimensional data decoding device determines that the target tile is packet loss and performs error decoding processing (S5174). Further, the three-dimensional data decoding device determines that the space that does not exist in the data is a null tile, and reconstructs the three-dimensional data.
  • the 3D data encoding device can appropriately determine that there are no points in the tile, not data loss due to measurement error or data processing, or packet loss, by explicitly indicating the null tile. can.
  • the three-dimensional data coding device may use both a method of explicitly indicating a null packet and a method of not explicitly indicating a null packet. In that case, the three-dimensional data coding device may show information indicating whether or not to explicitly indicate the null packet in the tile addition information. Further, it is determined in advance whether or not to explicitly indicate the null packet according to the type of the division method, and the three-dimensional data coding apparatus explicitly indicates the null packet by indicating the type of the division method. It may indicate whether or not.
  • FIG. 62 and the like an example in which information relating to all tiles is shown in the tile addition information is shown, but information on some tiles among a plurality of tiles may be shown in the tile addition information. However, information on null tiles of some tiles among a plurality of tiles may be shown.
  • nal_unit_type which means information indicating whether or not there is divided data
  • this information may be stored in both additional information and data.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 85.
  • the three-dimensional data coding device generates a plurality of coded data by encoding a plurality of subspaces (for example, tiles or slices) obtained by dividing an object space including a plurality of three-dimensional points (S5181). ..
  • the three-dimensional data coding apparatus generates a bitstream containing a plurality of coded data and first information (for example, tile_null_flag) corresponding to each of the plurality of subspaces (S5182).
  • Each of the plurality of first pieces of information indicates whether or not the bitstream contains the second piece of information indicating the structure of the corresponding subspace.
  • the amount of data in the bitstream can be reduced.
  • the second information includes information indicating the coordinates of the origin of the corresponding subspace.
  • the second information includes information indicating at least one of the height, width and depth of the corresponding subspace.
  • the three-dimensional data coding device can reduce the amount of data in the bitstream.
  • the three-dimensional data coding device divides an object space including a plurality of three-dimensional points into a plurality of subspaces (for example, tiles or slices), and divides the plurality of subspaces into each subspace. You may combine according to the number of three-dimensional points contained in, and encode the subspace after the combination. For example, the three-dimensional data encoding device may combine a plurality of subspaces so that the number of three-dimensional points contained in each of the plurality of subspaces after the combination is equal to or more than a predetermined number. For example, the 3D data encoding device may combine a subspace containing no 3D points with a subspace containing 3D points.
  • the three-dimensional data coding device can suppress the generation of a subspace having a small number of points or no points, so that the coding efficiency can be improved.
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the process shown in FIG.
  • the three-dimensional data decoding device corresponds to each of a plurality of subspaces (for example, tiles or slices) obtained by dividing a target space containing a plurality of three-dimensional points from a bit stream, and shows the structure of the corresponding subspaces.
  • a plurality of first information (for example, tile_null_flag) indicating whether or not the second information is included in the bit stream is acquired (S5911).
  • the three-dimensional data decoding device uses a plurality of first pieces of information to (i) decode a plurality of coded data generated by encoding a plurality of subspaces contained in a bit stream, thereby performing a plurality of codes.
  • the subspace is restored, and (ii) the target space is restored by combining a plurality of subspaces (S5912).
  • the three-dimensional data decoding device uses the first information to determine whether or not the second information is included in the bitstream, and if the bitstream contains the second information, the second information is used. And combine multiple decoded subspaces.
  • the amount of data in the bitstream can be reduced.
  • the second information includes information indicating the coordinates of the origin of the corresponding subspace.
  • the second information includes information indicating at least one of the height, width and depth of the corresponding subspace.
  • the three-dimensional data decoding device can reduce the amount of data in the bitstream.
  • the three-dimensional data decoding device divides a target space containing a plurality of three-dimensional points into a plurality of subspaces (for example, tiles or slices), and divides the plurality of subspaces into the number of three-dimensional points included in each subspace.
  • the encoded data generated by combining according to the above and encoding the combined subspace may be received, and the received encoded data may be decoded.
  • the coded data may be generated by combining a plurality of subspaces so that the number of three-dimensional points contained in each of the plurality of subspaces after the combination is equal to or more than a predetermined number. ..
  • 3D data may be generated by combining a subspace that does not contain 3D points with a subspace that contains 3D points.
  • the three-dimensional data device can decode coded data with improved coding efficiency by suppressing the generation of a subspace having a small number of points or not including points.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 87 is a diagram showing the structure of slice data. As shown in FIG. 87, the slice data includes a slice header and a payload.
  • FIG. 88 is a diagram showing a configuration example of a bit stream.
  • the bitstream includes SPS (sequence parameter set), GPS (position information parameter set), APS (attribute information parameter set), tile metadata, and a plurality of slice data.
  • the slice data is described as a position information (geometry) slice (described as Gtisj in FIG. 88 (i and j are arbitrary natural numbers)) and an attribute information slice (described as Atisj in FIG. 88 (i and j are arbitrary)). Natural numbers)) and included.
  • FIG. 88 shows an example in which two tiles 1 and 2 exist, and each tile is divided into two slices.
  • Gt1s1 shown in FIG. 88 is a position information slice (position information coding data) of the slice 1 included in the tile 1.
  • the slice header of the position information slice includes a slice index (sliceIdx) which is an identifier of the slice and a tile index (tileIdx) which is an identifier of the tile.
  • sliceIdx slice index
  • tileIdx tile index
  • SPS is a parameter set for each sequence (multiple frames), and is a parameter set common to position information and attribute information.
  • GPS is a parameter set of position information, for example, a parameter set for each frame.
  • APS is a parameter set of attribute information, for example, a parameter set for each frame.
  • Tile metadata is metadata (control information) that includes information about tiles.
  • the tile metadata includes information indicating the number of tiles (number_of_tiles) and information indicating the spatial area (bounding box) of each tile.
  • the information indicating the spatial area of the tile indicates, for example, information indicating the position of the tile and information indicating the size of the tile.
  • the information indicating the position of the tile is information indicating the three-dimensional coordinates of the origin of the tile (origin_x, origin_y, origin_z).
  • the information indicating the size of the tile is information indicating the width, height and depth of the tile (size_wise, size_height, size_depth).
  • FIGS. 89 to 91 are diagrams showing an example of tiles.
  • the circle shown in the figure shows a point cloud (three-dimensional point cloud data), and the solid rectangle shows the bounding box of the tile. Further, in the figure, the point cloud data and the bounding box are described in two dimensions, but these are actually three dimensions.
  • the point cloud data (slice) always belongs to one of the tiles, that is, the slice always belongs to one or more tiles. In other words, we define that there is no slice that does not belong to any tile.
  • FIG. 89 shows an example when the number of tiles is 1.
  • the tile's bounding box is the default bounding box.
  • the default bounding box is at least larger than the bounding box for point cloud data.
  • the example shown in FIG. 89 is an example in which the default bounding box matches the bounding box of the original point cloud.
  • the tile's bounding box matches the original point cloud's bounding box.
  • FIG. 90 shows an example when the number of tiles is 2 (or more). In this example, tile 1 and tile 2 do not overlap each other.
  • FIG. 91 shows an example in which the number of tiles is 2 (or more) and the tiles overlap. In this example, tile 1 and tile 2 overlap. When slice division is performed, two slices may belong to one tile.
  • FIG. 92 is a flowchart of the three-dimensional data coding process according to the present embodiment.
  • the three-dimensional data coding device determines whether or not the number of tiles, which is the number of divided tiles, is 1 (S9301). When the number of tiles is 1 (Yes in S9301), the three-dimensional data encoding device determines that the tile is the default tile and does not transmit the tile metadata (S9302). That is, the 3D data encoder does not add tile metadata to the bitstream.
  • the three-dimensional data encoding device describes any of 0 to N-1 in the tile index of the slice header (S9305). Specifically, the 3D data coding device stores the tile index assigned to the tile to which the slice belongs in the slice header.
  • FIG. 94 is a diagram showing a setting example of the tile index (tileIdx) when the number of tiles is> 1. As shown in FIG. 94, in each tile when the number of tiles> 1, a value from 1 to N-1 is set as a tile index for tiles other than the default tile. In addition, N is the number of tiles.
  • the default bounding box which is the bounding box of the default tile, is defined in advance.
  • the default bounding box may be large enough to include the point cloud bounding box.
  • the origin of the default bounding box may be the origin of the point cloud or 0 in the coordinate system.
  • the default tile is used.
  • the bounding box information for the default tile is not shown in the tile metadata. Also, tile metadata is not sent.
  • tile information other than the default tiles is shown in the tile metadata.
  • the number of tiles indicates the number of tiles N that does not include the default tile. Further, the value obtained by subtracting 1 from the loop order (1 to N) of the tile is used as the value of the tile index (tileIdx) of the tile, and is described in the slice header of the slice to which the tile belongs.
  • the number of tiles is 2 or more, there are a default tile and one or more tiles other than the default tile, and there is no default tile and there are two or more tiles other than the default tile. Including the case of doing.
  • the three-dimensional data decoding apparatus can determine whether or not the number of tiles is 1 depending on whether or not the tile metadata is transmitted.
  • the three-dimensional data encoding device may store information indicating whether or not tile metadata is transmitted in other metadata included in the bitstream, such as SPS or GPS. Thereby, the three-dimensional data decoding device can determine whether or not there is tile metadata by analyzing SPS or GPS, not whether or not the tile metadata has been received.
  • the 3D data encoding device does not have to add the tile index to all the slice headers when the tile metadata is not added to the bitstream.
  • the 3D data decoder may determine that all slices belong to the default tile if the tile metadata is not transmitted.
  • FIG. 95 is a flowchart of the three-dimensional data decoding process according to the present embodiment.
  • the process shown in FIG. 95 is a process for decoding all slice data included in the bit stream.
  • the three-dimensional data encoding device determines whether or not tile metadata exists in the bitstream (S9311).
  • the three-dimensional data decoding device may determine this determination based on whether or not the tile metadata has been received, and a flag indicating whether or not the tile metadata has been transmitted is stored in the SPS or GPS. If so, the flag may be analyzed and determined.
  • the three-dimensional data decoding device determines that two or more tiles exist (S9312). Further, the three-dimensional data decoding device determines that a tile other than the default tile exists.
  • the three-dimensional data decoding device uses the bounding box information of the tiles to specify the tile index (0 to (number of tiles-1)) of each tile (S9314).
  • FIG. 96 is a flowchart of this random access process.
  • the three-dimensional data decoding device determines whether or not tile metadata exists in the bit stream (S9321). The details of this determination are the same as, for example, S9311.
  • the three-dimensional data decoding device determines that two or more tiles exist (S9322). Further, the three-dimensional data decoding device determines that a tile other than the default tile exists.
  • the three-dimensional data decoding device analyzes the tile metadata and creates a tile list which is a list of bounding box information of a plurality of tiles (S9323). Specifically, the tile list shows the tile index and the bounding box information for each tile.
  • the three-dimensional data decoding device determines that the number of tiles is 1 and the tile is the default tile (S9324). Next, the three-dimensional data decoding device creates a tile list using the information of the default tile (S9325). This tile list shows the tile index (value 0) of the default tile and the bounding box information of the default tile.
  • the three-dimensional data decoding device acquires information on the target area, which is the area to be randomly accessed (S9326). Next, the three-dimensional data decoding device collates the target area with the bounding box information included in the tile list, and identifies the tile index of the tile that overlaps with the target area (S9327).
  • the three-dimensional data decoding device analyzes each slice header, selects the slice data having the tile index of the random access target specified in step S9327, and decodes the selected slice data (S9328).
  • the slice header has only one area indicating the tile index of the tile to which the slice belongs, and cannot indicate a plurality of tile indexes. That is, when tiles overlap, the slice header can only show the tile index of one of the tiles to which the slice belongs.
  • FIG. 97 is a diagram showing a method of adding a tile index. As shown in FIG. 97, if the tiles are duplicated, the slice header may contain a plurality of tile indexes. The tile metadata may also indicate the number of overlapping tiles and the tile index of each tile.
  • FIG. 98 is a diagram showing another method of adding the tile index.
  • the slice header may indicate the tile index of any one of the plurality of tiles to which the slice belongs.
  • the three-dimensional data decoding device determines the overlapping tiles from the default tile information and the tile list at the time of random access. Further, the three-dimensional data decoding device determines that if one of the two overlapping tiles and the target area of random access overlap, the target area may overlap with the other tile. Get slice data that belongs to both tiles.
  • the three-dimensional data decoding device belongs to tile A because tile A overlaps with tile B even when the target area of random access actually overlaps only with tile B.
  • the slice data and the slice data belonging to the tile B are acquired.
  • duplication of tiles it is permissible to partially overlap, but the case of complete duplication and the setting of tiles in which one completely includes the other may be prohibited.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 99.
  • the three-dimensional data encoding device divides a plurality of three-dimensional points included in the point cloud data into one or a plurality of first divided data units (for example, tiles) (S9331), and one or a plurality of first divisions.
  • a bit stream is generated by encoding the divided data unit (S9332).
  • the three-dimensional data encoding device has the first metadata regarding one or more first divided data units (Yes).
  • tile metadata is added to the bit stream (S9334), and when the number of one or more first divided data units is 1 (No in S9333), the first metadata is not added to the bit stream. (S9335).
  • the three-dimensional data encoding device does not add the first metadata to the bitstream when the number of the first divided data units is 1, so that the amount of data in the bitstream can be reduced.
  • the first metadata includes information indicating a spatial area (for example, a bounding box) of each first divided data unit.
  • the first metadata contains information indicating the number of one or more first partitioned data units.
  • the space indicated by the information indicating the spatial area of the first partitioned data unit is a tile.
  • a three-dimensional data encoding device may use a header (eg, slice) of each second divided data unit (eg, slice) contained in a bit stream when the number of one or more first divided data units is two or more.
  • An identifier for example, a tile index
  • An identifier indicating a predetermined value for example, 0
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the process shown in FIG. 100.
  • the three-dimensional data decoding device is a bit stream generated by encoding one or a plurality of first divided data units (for example, tiles) in which a plurality of three-dimensional points included in the point cloud data are divided. It is determined whether or not the first metadata (for example, tile metadata) relating to one or a plurality of first divided data units is added to the data (S9341).
  • the three-dimensional data decoder uses the first metadata to be one or a plurality of first divided data units from the bit stream. Decoding at least one first divided data unit of (S9342).
  • the three-dimensional data decoding device determines that the number of one or a plurality of first divided data units is one, and determines that the number is one.
  • the first divided data unit is decoded from the bit stream using a predetermined setting as the first metadata of the first divided data unit (S9343).
  • the three-dimensional data decoding device can appropriately decode the bit stream in which the amount of data is reduced.
  • the first metadata includes information indicating a spatial area (for example, a bounding box) of each first divided data unit.
  • the first metadata contains information indicating the number of one or more first partitioned data units.
  • the space indicated by the information indicating the spatial area of the first partitioned data unit is a tile.
  • the second divided data unit for example, slice header
  • the header for example, slice header
  • the identifier of the first divided data unit to which the divided data unit belongs for example, the first divided data unit index
  • the number of one or a plurality of first divided data units is 1, each second An identifier indicating a predetermined value (for example, 0) is added to the header of the divided data unit as an identifier.
  • the first metadata indicates the spatial area of each first split data unit, and the first split to which the second split data unit belongs to the header of each second split data unit contained in the bit stream.
  • the identifier of the data unit is added.
  • the three-dimensional data decoding device acquires information on the area to be accessed (for example, S9326 in FIG. 96), and uses the first metadata to identify a first partitioned data unit that overlaps with the area to be accessed (for example, S9326 in FIG. 96). S9327), the second divided data unit to which the identifier of the specified first divided data unit is added is decoded (S9328).
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the tile information includes, for example, information (box information) indicating the origin (origin) and size (size) of the bounding box for each tile.
  • 3D map information is a large point cloud in an area spanning several kilometers. Therefore, when such a large-scale point cloud is divided into a plurality of tiles and encoded, the number of tiles, origin, and size become large. Therefore, the number of bits of the tile information increases, the ratio of the tile information in the bit stream including the coded point cloud data (point cloud data) increases, and the coding efficiency by the three-dimensional data coding device decreases. ..
  • the number of bits of tile information is reduced, and the increase in the number of bits of the bit stream including tile information in the case of a large-scale point group is suppressed.
  • FIG. 101 is a diagram showing a first example of the syntax of tile information according to the present embodiment.
  • Number_of_tiles is information indicating the number of bounding boxes included in the tile information (box number information).
  • the loop of the number of number_of_tiles indicates the origin of the bounding box, the origin in the x-axis direction (origin_x), the origin in the y-axis direction (origin_y), and the origin in the z-axis direction (origin_z).
  • the loop of the number of number_of_tiles indicates the size of the bounding box, width (size_width), height (size_height), and depth (size_depth), respectively.
  • the three-dimensional data encoding device includes information common to each bounding box in the bitstream.
  • Bb_bits is information indicating the number of bits, that is, the code length, when the three-dimensional data coding device entropy-codes orange and size. That is, the three-dimensional data coding device encodes the orange and the size with the length specified by bb_bits, that is, the fixed length.
  • the number of bits to be encoded can be reduced as compared with the case where the three-dimensional data encoding device encodes origin and size with variable length without specifying bb_bits.
  • i is a tile count, that is, an identifier indicating which of the tiles is one or more.
  • Bb_bits is calculated by, for example, the following calculation method.
  • count () is a function that counts the number of bits of parameters such as orange and size.
  • a three-dimensional data coding device counts the number of bits of each parameter of origin and size for all tiles. Further, the three-dimensional data coding device uses the largest number of bits counted as bb_bits (that is, fixed length) used for entropy coding.
  • the coordinate information such as origin and size and the size information are decoded (entropy decoding), they are decoded as being encoded by bb_bits (fixed length).
  • FIG. 102 is a diagram showing a second example of the tile information syntax according to the present embodiment.
  • a close value is used for the range of tile sizes (more specifically, the values of size_width, size_height, and size_depth). It is expected that it will be done. That is, the number of bits of size_wise, size_height, and size_depth are likely to be close to each other.
  • origin tends to show a large value from a small value (that is, a wide range of possibilities). Therefore, the possible range of the number of bits of origin is likely to be large.
  • size_width is, for example, the length in the x-axis direction in a three-dimensional Cartesian coordinate system.
  • size_height is, for example, a length in the y-axis direction in a three-dimensional Cartesian coordinate system.
  • size_depth is, for example, a length in the z-axis direction in a three-dimensional Cartesian coordinate system.
  • the number of coding bits can be reduced by not aligning the number of coding bits of origin and size and specifying them individually. That is, for example, a three-dimensional data coding device encodes size and origin with different fixed lengths.
  • Bb_origin_bits is information indicating the number of bits when the three-dimensional data encoding device entropy-codes origin. That is, the three-dimensional data coding device encodes the origin with the length specified by bb_origin_bits (that is, a fixed length).
  • Bb_size_bits is information indicating the number of bits when the three-dimensional data coding device entropy-codes the size. That is, the three-dimensional data coding device encodes the size with the length specified by bb_size_bits (that is, a fixed length).
  • Bb_size_bits and bb_origin_bits are calculated by, for example, the following calculation method.
  • the three-dimensional data decoding device When the three-dimensional data decoding device performs entropy decoding of the original, it decodes it as if it is encoded by bb_origin_bits. Further, when the size is entropy-decoded, the three-dimensional data decoding device decodes the size as if it were encoded by bb_size_bits.
  • FIG. 103 is a diagram showing a third example of the tile information syntax according to the present embodiment.
  • the number of bits can be further reduced.
  • size_wise, size_height, and size_depth have the same length for all tiles.
  • size_width and size_depth have the same length for all tiles.
  • a three-dimensional data encoding device is used by using common size information indicating a predetermined (common) size (comon_bb_size) and a common size flag (comon_size_flag) indicating whether or not the tile size is the predetermined size. Reduces the amount of data in the bitstream generated by.
  • Common_size_flag is 3 bits of information.
  • the 0th bit of common_size_flag is flag information indicating whether or not common_bb_size is used for size_width.
  • the first bit of common_size_flag is flag information indicating whether or not common_bb_size is used for size_height.
  • the second bit of common_size_flag is flag information indicating whether or not common_bb_size is used for size_depth.
  • a three-dimensional data encoding device has a common size among a plurality of tiles when any of the bit flags of these common size flag information is set, that is, when common_size_flag is not b'000. Generates a bitstream containing information indicating common_bb_size).
  • the three-dimensional data encoding device is fixed to be used for coding individually when any of the bit flags of these flag information is not set, that is, when common_size_flag is not b'111.
  • bb_size_bits common bit number
  • the three-dimensional data coding device may be indicated by common_size_flag as a flag indicating whether or not size_width, size_height, and size_depth are all common.
  • the three-dimensional data encoding device may specify various tile shapes (that is, divided shapes) as types instead of flags, and determine whether to signal the size based on the type.
  • the use / non-use of the above method may be switched by a flag, or it may be possible to switch which of the plurality of methods is used.
  • FIG. 104 is a flowchart showing an outline of the coding process of the three-dimensional data coding apparatus according to the present embodiment.
  • the three-dimensional data encoding device determines whether or not the space in which the three-dimensional point cloud is located is divided into one or more tiles (S11801).
  • the 3D data coding device determines that the space in which the 3D point cloud is located is divided into one or more tiles (Yes in S11801), the space in which the 3D point cloud is located is divided into one or more tiles (Yes). S11802).
  • the three-dimensional data encoding device determines whether or not the number of three-dimensional points located in the tile is equal to or greater than the maximum number of three-dimensional points per predetermined slice (S11803). For example, the three-dimensional data coding device executes step S11803 for each one or more tiles. For example, when the three-dimensional data coding apparatus determines that the number of three-dimensional points located in the tile is less than the maximum number of three-dimensional points (No in S11803), the three-dimensional data coding apparatus does not execute the slice division described later.
  • the three-dimensional data encoding device determines that the number of three-dimensional points located in the tile is equal to or greater than the maximum number of three-dimensional points (Yes in S11803), the three-dimensional points located in the tile are set to a predetermined number of slices. It is determined whether or not to divide so as to be (S11804).
  • the 3D data encoding device determines that the 3D points located in the tile are divided into a predetermined number of slices (Yes in S11804), the 3D points located in the tile are set to the predetermined number of slices. It is divided (slice division) so as to be (S11805).
  • the three-dimensional data coding device analyzes the slice data (divided data) after the slice division, and if further processing is required, executes a predetermined processing (slice adjustment) (S11806). For example, if the number of 3D points included in a slice after slice division is greater than or equal to the maximum number of 3D points, the 3D data coding device further divides the corresponding slice into slices and sets the number to less than the maximum number of 3D points. Adjust the 3D score included in the slice so that it becomes. Alternatively, for example, the three-dimensional data coding device combines the corresponding slice with another slice when the three-dimensional score contained in the slice after the slice division is less than the predetermined minimum three-dimensional score. By doing so, the three-dimensional score included in the slice is adjusted so as to be equal to or more than the minimum three-dimensional score.
  • the three-dimensional data encoding device determines that the number of three-dimensional points located in the tile is less than the maximum number of three-dimensional points after step S11806 (No in S11803), or the tertiary located in the tile.
  • the point cloud data is encoded (S11807).
  • the three-dimensional data coding device encodes the point cloud data for each slice (that is, for each three-dimensional point data included in the slice).
  • the three-dimensional data coding device encodes the three-dimensional point cloud as one slice when the slices are not divided, or encodes each data of the three-dimensional points individually. ..
  • the three-dimensional data coding device may be set to always execute slice division (S11805).
  • step S11806 does not have to be executed.
  • the three-dimensional data coding device generates a bit stream including the point cloud data of the encoded three-dimensional point cloud and the generated tile information when the tile information is generated, and the generated bit stream is, for example, Send to the 3D data decoder.
  • FIG. 105 is a flowchart showing a specific example of the tile information coding process of the three-dimensional data coding apparatus according to the present embodiment.
  • the three-dimensional data encoding device calculates the number of bits of the information indicating the origin of the tile and the information indicating the size of the tile based on the tile information (S11811).
  • the three-dimensional data decoding device starts coding the information indicating the origin and the information indicating the size (S11812).
  • the three-dimensional data encoding device calculates the number of bits of the origin (for example, the above-mentioned bb_origin_bits) by the above-mentioned method for the information indicating the origin of the tile (“origin” in S11813), and the calculated number of bits is fixed length.
  • the information indicating the origin of the tile is encoded as (S11814).
  • the three-dimensional data encoding device calculates the number of bits of the size (for example, the above-mentioned bb_size_bits) by the above-mentioned method for the information indicating the tile size (“size” in S11813), and calculates the number of bits.
  • the information indicating the size of the tile is encoded as a fixed length (S11815).
  • the three-dimensional data encoding device generates, for example, a bit stream containing information about the encoded tile (information indicating the origin of the tile and information indicating the size of the tile) and information indicating the number of bits (bb_origin_bits and bb_size_bits). , Send the generated bit stream to the 3D data decoder.
  • FIG. 106 is a flowchart showing a specific example of the decoding process of the coded tile information of the three-dimensional data decoding device according to the present embodiment.
  • the three-dimensional data decoding device acquires information indicating the number of bits at the origin of the tile and information indicating the number of bits of the tile size from the metadata (additional information) (S11821).
  • a three-dimensional data decoder obtains a bit stream containing information about the encoded tile (information indicating the origin of the tile and information indicating the size of the tile) and information indicating the number of bits (bb_origin_bits and bb_size_bits).
  • Information indicating the number of bits at the origin for example, bb_origin_bits described above
  • information indicating the number of bits of size for example, bb_size_bits described above
  • the three-dimensional data decoding device starts decoding of the information indicating the coded origin and the information indicating the coded size (S11822).
  • the three-dimensional data decoding device decodes the information indicating the origin of the encoded tile with the number of bits of the origin as a fixed length for the information indicating the origin of the encoded tile (“origin” in S11823). ).
  • the three-dimensional data decoding device decodes the information indicating the size of the encoded tile with the number of bits of the size as a fixed length for the information indicating the size of the encoded tile (“size” in S11823). (S11825).
  • the three-dimensional data coding apparatus performs the process shown in FIG. 107.
  • FIG. 107 is a flowchart showing a processing procedure of the three-dimensional data coding apparatus according to the present embodiment.
  • the three-dimensional data coding device encodes tile information including information about N (N is an integer of 0 or more) subspaces which are at least a part of the target space including a plurality of three-dimensional points.
  • Point cloud data of a plurality of three-dimensional points is encoded based on the tile information (S11831).
  • the three-dimensional data encoding device generates a bit stream containing the encoded point cloud data (S11832).
  • the tile information includes N subspace coordinate information indicating the coordinates of N subspace. Further, each of the N sub-spatial coordinate information includes three coordinate information indicating the coordinates in each of the three axial directions in the three-dimensional Cartesian coordinate system.
  • each of the three coordinate information included in each of the N subspace coordinate information (from). Specifically, all) are encoded with the first fixed length.
  • the three-dimensional data encoding device (ii) in the above-mentioned bit stream generation (S11832) has N coded sub-spatial coordinate information and a first. Generates a bit stream containing first fixed length information indicating a fixed length. That is, when N is 1 or more, the three-dimensional data encoding device is a bit stream including encoded point cloud data, N encoded subspace coordinate information, and first fixed-length information. To generate.
  • encoding based on tile information means, for example, when N is 0, information about subspace in the bit stream (for example, position, size, etc. of bounding box such as subspace coordinate information and size information described later). It means that the coding is performed after confirming that the information indicating the subspace is not included, and when N is 1 or more, the coding is performed based on the information regarding the subspace.
  • encoding based on tile information means, for example, as described above, the point cloud data is sliced (that is, the point cloud data is divided) based on the tile information, and each divided slice (that is, the divided points) is used. It means encoding for each group data).
  • the tile information is, for example, the above-mentioned tile metadata and is information about a bounding box.
  • the target space is a space including N sub-spaces.
  • the subspace is, for example, the area inside the above-mentioned bounding box, in other words, the area surrounded by the bounding box.
  • the subspace coordinate information is, for example, an example of information about the subspace, and is information indicating the coordinates of the subspace (in other words, the position of the subspace).
  • the sub-spatial coordinate information includes three coordinate information indicating the coordinates in the three-axis direction (origin in the present embodiment) in the three-dimensional Cartesian coordinate system.
  • the three coordinate information are, for example, in the case of a three-dimensional Cartesian coordinate system xyz coordinate system, the information indicating the above-mentioned cartesian_x, the information indicating the orientation_y, and the information indicating the orientation_z, which are the origins in the x-axis direction.
  • the first fixed length may be calculated by the above-mentioned fixed length calculation method, or may be arbitrarily set in advance.
  • the tile information includes at least one size information indicating the size of at least one subspace out of N subspaces.
  • the three-dimensional data coding device encodes each (more specifically, all) of the at least one size information with a second fixed length. do.
  • the three-dimensional data encoding device includes at least one encoded size information and a second fixed length information indicating a second fixed length. Generate a bitstream containing.
  • the three-dimensional data coding device encodes the point cloud data based on, for example, N subspace coordinate information and at least one size information.
  • the size information is, for example, information indicating the size of the above-mentioned bounding box.
  • the size information includes, for example, the above-mentioned information indicating size_wise, information indicating size_height, and information indicating size_depth.
  • the second fixed length may be calculated by the above-mentioned fixed length calculation method, or may be arbitrarily set in advance.
  • the amount of processing in the coding can be further reduced as compared with the case of encoding with the variable length, for example.
  • the three-dimensional data coding device determines whether or not the size of each of the N subspaces matches the predetermined size before step S11831.
  • the three-dimensional data coding apparatus provides size information indicating the size of the subspace that does not match the predetermined size among the N subspaces.
  • Each of the at least one size information is encoded with a second fixed length.
  • the three-dimensional data encoding device has common flag information indicating whether or not the size of each of the N subspaces matches a predetermined size. Generate a bitstream containing.
  • the three-dimensional data encoding device further determines, for example, whether or not the size of the subspace matches a predetermined size for each of the N subspaces, and then the subspace.
  • the size information indicating the size of the subspace is set as one of the above-mentioned at least one size information and has a second fixed length.
  • the bit stream includes first common flag information indicating that the size of the subspace does not match the predetermined size.
  • the three-dimensional data encoding device indicates that, for example, when the size of the subspace matches the predetermined size, the size of the subspace matches the predetermined size in the bitstream generation (S11832).
  • the second common flag information is included in the bitstream.
  • the three-dimensional data encoding device determines, for example, whether or not the sizes of the subspaces match for each of the N subspaces, and if it is determined that they match, the subspaces are based on the common flag information. If it is determined that they do not match, the size of the subspace is indicated by the size information indicating the specific size (length).
  • the common flag information is, for example, the above-mentioned common_size_flag.
  • the three-dimensional data decoding device that has acquired the bitstream can appropriately determine the size of the subspace. Therefore, for example, when there are many sizes that match a predetermined size in a plurality of subspaces, the amount of data in the generated bitstream can be reduced, and the amount of processing for encoding the size information can be reduced.
  • the size information includes information indicating width, information indicating weight, and information indicating depth.
  • the width, height, and depth are examples of sizes, and the common size flag information may indicate whether or not the width, height, and depth match a predetermined size.
  • the three-dimensional data coding device does not have to include the common size information in the bit stream.
  • the three-dimensional data encoding device may include common size information in the bitstream, for example, if at least one of the sizes of the N subspaces matches a predetermined size.
  • the first fixed length and the second fixed length have the same length (that is, the same number of bits).
  • the three-dimensional data coding device calculates, for example, the first fixed length and the second fixed length by the above-mentioned fixed length calculation method, and the longer one (that is, the larger number of bits) is the first fixed length and the second fixed length.
  • the length may be calculated as a common fixed length, or may be arbitrarily set in advance.
  • the information indicating each of the first fixed length and the second fixed length can be unified, the amount of data of the generated bit stream can be reduced.
  • the tile information includes common origin information indicating the coordinates of the origin of the target space.
  • the three-dimensional data encoding device generates a bit stream including the common origin information in the above-mentioned bit stream generation (S11832).
  • the common origin information is, for example, in the case of a three-dimensional orthogonal coordinate system xyz coordinate system, it is information including the above-mentioned information indicating common_origin_x, information indicating common_origin_y, and information indicating common_origin_z.
  • the three-dimensional data decoding device that has acquired the bitstream can obtain the point cloud data encoded based on the information contained in the bitstream. Can be decrypted properly.
  • the three-dimensional data encoding device when N is 0, the three-dimensional data encoding device generates a bit stream that does not include information about the subspace in the bit stream generation (S11832).
  • the three-dimensional data coding device first determines whether or not N is 0, and executes each of the above processes (for example, the processes after step S11831) based on the determination result.
  • the amount of data in the generated bitstream can be reduced.
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • a control program that performs the above processing may be stored in the memory.
  • the three-dimensional data decoding device performs the process shown in FIG. 108.
  • FIG. 108 is a flowchart showing a processing procedure of the three-dimensional data decoding device according to the present embodiment.
  • the three-dimensional data decoding device acquires a bit stream including encoded point cloud data of a plurality of three-dimensional points (S11841).
  • the 3D data decoding device generates encoded tile information including information about N (N is an integer of 0 or more) subspaces that are at least a part of the target space containing a plurality of 3D points. Decoding and decoding the encoded point group data based on the tile information (S11842).
  • the tile information includes N subspace coordinate information indicating the coordinates of N subspace. Further, each of the N sub-spatial coordinate information includes three coordinate information indicating the coordinates in each of the three axial directions in the three-dimensional Cartesian coordinate system.
  • Decoding based on tile information means, for example, when N is 0, it is confirmed that the bitstream does not contain information about the subspace, and when N is 1 or more, decoding is performed. It means encoding based on information about subspaces. Further, decoding based on the tile information means, for example, decoding one or more point cloud data sliced based on the tile information for each point cloud data.
  • the tile information includes at least one size information indicating the size of at least one subspace out of N subspaces.
  • the three-dimensional data decoding device in the acquisition of the bit stream (S11841) described above, includes at least one encoded size information and a second fixed length information indicating a second fixed length. Get the stream. Further, in this case, for example, the three-dimensional data decoding device decodes each of at least one encoded size information with the second fixed length in the above-mentioned decoding of the coded tile information (S11842).
  • the coded size information included in the tile information is decoded with the second fixed length, the amount of processing in decoding can be reduced as compared with the case of decoding with variable length, for example.
  • the three-dimensional data decoding device includes a bitstream including common flag information indicating whether or not the size of each of the N subspaces matches a predetermined size. To get. Further, in this case, the three-dimensional data decoding device determines whether or not the size of each of the N subspaces matches the predetermined size, for example, based on the common flag information after step S11841. Further, in this case, the three-dimensional data decoding device is encoded to indicate the size of the subspace that does not match the predetermined size among the N subspaces in the decoding of the encoded tile information (S11842) described above. The size information is decoded as at least one encoded size information described above with a second fixed length.
  • the three-dimensional data decoding device indicates that, for example, in the above-mentioned bitstream acquisition (S11841), the size of the subspace does not match the predetermined size for each of the N subspaces. 1 Acquires a bitstream containing either common flag information and second common flag information indicating that the size of the subspace matches a predetermined size. In this case, the three-dimensional data coding apparatus further sets the size of the subspace to a predetermined size for each of the N subspaces based on, for example, either the first common flag information or the second common flag information. It is determined whether or not it matches with.
  • the three-dimensional data decoding device obtains size information indicating the size of the subspace in decoding, one of at least one encoded size information. Decoding is performed with the second fixed length.
  • the three-dimensional data decoding device is, for example, when the size of the subspace matches a predetermined size, that is, the second common flag information as information indicating the size of the subspace. Is included in the bit stream, the size of the subspace is determined to be a predetermined size.
  • the size of the subspace matches the predetermined size, a common indicating whether or not the subspace matches the predetermined size even if the size information indicating the size is not included in the bitstream. If the size flag information is included in the bitstream, the size of the subspace can be determined appropriately. Therefore, for example, when there are many sizes that match a predetermined size in a plurality of subspaces, the amount of data in the bitstream to be acquired can be reduced, and the amount of processing for decoding size information can be reduced.
  • the common size information may be predetermined (for example, the common size information may be stored in advance in a memory or the like provided in the three-dimensional data decoding device), or is included in the bit stream. May be good.
  • the first fixed length and the second fixed length have the same length (that is, the same number of bits).
  • the information indicating each of the first fixed length and the second fixed length can be unified, the amount of data of the bitstream to be acquired can be reduced.
  • the tile information includes common origin information indicating the coordinates of the origin of the target space.
  • the three-dimensional data decoding device acquires the bitstream including the common origin information in the above-mentioned bitstream acquisition (S11841).
  • the point cloud data encoded based on the information contained in the bit stream can be appropriately decoded.
  • the three-dimensional data decoding device acquires a bit stream that does not include information about the tile subspace in the bit stream acquisition (S11841).
  • the amount of bitstream data to be acquired can be reduced.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • a control program that performs the above processing may be stored in the memory.
  • FIG. 109 is a block diagram showing a configuration example of the three-dimensional data creation device 810 according to the present embodiment.
  • the 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 vehicle in front or a following vehicle, and creates and stores three-dimensional data.
  • 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, and a three-dimensional data synthesis unit. It includes an 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.
  • the data receiving unit 811 receives the three-dimensional data 831 from the traffic monitoring cloud or the vehicle in front.
  • the three-dimensional data 831 includes, for example, information such as a point cloud, a visible light image, depth information, sensor position information, or speed information, which includes a region that cannot be detected by the sensor 815 of the own vehicle.
  • the communication unit 812 communicates with the traffic monitoring cloud or the vehicle in front, and transmits a data transmission request or the like to the traffic monitoring cloud or the vehicle in front.
  • the reception control unit 813 exchanges information such as the corresponding format with the communication destination via the communication unit 812, and establishes communication with the communication destination.
  • the format conversion unit 814 generates the 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, the format conversion unit 814 performs decompression or decoding processing when the three-dimensional data 831 is compressed or encoded.
  • the plurality of sensors 815 are a group of sensors that acquire information outside the vehicle, such as a LiDAR, a visible light camera, or an infrared camera, and generate sensor information 833.
  • the sensor information 833 is three-dimensional data such as a point cloud (point cloud data) when the sensor 815 is a laser sensor such as LiDAR.
  • the number of sensors 815 does not have to be plural.
  • the 3D data creation unit 816 generates 3D data 834 from the sensor information 833.
  • the three-dimensional data 834 includes information such as point cloud, visible light image, depth information, sensor position information, speed information, and the like.
  • the three-dimensional data synthesizing unit 817 synthesizes the three-dimensional data 834 created based on the sensor information 833 of the own vehicle with the three-dimensional data 832 created by the traffic monitoring cloud or the vehicle in front of the vehicle, thereby synthesizing the three-dimensional data 832 of the own vehicle.
  • the three-dimensional data storage unit 818 stores the generated three-dimensional data 835 and the like.
  • the communication unit 819 communicates with the traffic monitoring cloud or the following vehicle, and transmits a data transmission request or the like to the traffic monitoring cloud or the following vehicle.
  • the transmission control unit 820 exchanges information such as compatible formats with the communication destination via the communication unit 819, and establishes communication with the communication destination. Further, the transmission control unit 820 is in 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. Determine a transmission area.
  • the transmission control unit 820 determines a transmission area including a space in front of the own vehicle that cannot be detected by the sensor of the following vehicle in response to a data transmission request from the traffic monitoring cloud or the following vehicle. Further, the transmission control unit 820 determines the transmission area by determining whether or not the space that can be transmitted or the transmitted space has been updated based on the three-dimensional data construction information. For example, the transmission control unit 820 determines an area designated by the data transmission request and in which 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 format corresponding to the communication destination and the transmission area.
  • the format conversion unit 821 converts the 3D data 836 in the transmission area out of the 3D data 835 stored in the 3D data storage unit 818 into a format supported by the receiving side to convert the 3D data 837. Generate.
  • the format conversion unit 821 may reduce the amount of data by compressing or encoding the three-dimensional data 837.
  • the data transmission unit 822 transmits the three-dimensional data 837 to the traffic monitoring cloud or the following vehicle.
  • the three-dimensional data 837 includes information such as a point cloud in front of the own vehicle, a visible light image, depth information, or sensor position information, including a region that becomes a blind spot of the following vehicle, for example.
  • the format conversion may not be performed.
  • the three-dimensional data creation device 810 acquires the three-dimensional data 831 in the area that cannot be detected by the sensor 815 of the own vehicle from the outside, and the sensor information 833 detected by the three-dimensional data 831 and the sensor 815 of the own vehicle.
  • the three-dimensional data 835 is generated by synthesizing the three-dimensional data 834 based on the above.
  • the three-dimensional data creation device 810 can generate three-dimensional data in a range that cannot be detected by the sensor 815 of the own vehicle.
  • the three-dimensional data creation device 810 obtains three-dimensional data including the space in front of the own vehicle, which cannot be detected by the sensor of the following vehicle, in the traffic monitoring cloud or the following in response to the data transmission request from the traffic monitoring cloud or the following vehicle. Can be sent to vehicles, etc.
  • FIG. 110 is a flowchart showing an example of a procedure for transmitting three-dimensional data to a traffic monitoring cloud or a following vehicle by the three-dimensional data creation device 810.
  • the three-dimensional data creation device 810 generates and updates three-dimensional data 835 of the space including the space on the road ahead of the own vehicle (S801). Specifically, the three-dimensional data creation device 810 synthesizes the three-dimensional data 834 created based on the sensor information 833 of the own vehicle with the three-dimensional data 831 created by the traffic monitoring cloud or the vehicle in front. Therefore, the three-dimensional data 835 including the space in front of the vehicle in front, which cannot be detected by the sensor 815 of the own vehicle, is constructed.
  • the three-dimensional data creation device 810 determines whether the three-dimensional data 835 included in the transmitted space has changed (S802).
  • the 3D data creation device 810 changes.
  • the three-dimensional data including the three-dimensional data 835 of the generated space is transmitted to the traffic monitoring cloud or the following vehicle (S803).
  • the three-dimensional data creation device 810 may transmit the three-dimensional data in the space where the change has occurred at the transmission timing of the three-dimensional data to be transmitted at predetermined intervals, but transmit immediately after detecting the change. You may. That is, the three-dimensional data creation device 810 may transmit the three-dimensional data in the space where the change has occurred with priority over the three-dimensional data transmitted at predetermined intervals.
  • the three-dimensional data creation device 810 may transmit all the three-dimensional data of the changed space as the three-dimensional data of the changed space, or the difference (for example, appearance or disappearance) of the three-dimensional data. Only the information of the three-dimensional point, the displacement information of the three-dimensional point, etc.) may be transmitted.
  • the three-dimensional data creation device 810 may transmit metadata related to the danger avoidance operation of the own vehicle such as a sudden braking warning to the following vehicle prior to the three-dimensional data of the space where the change has occurred.
  • the following vehicle can recognize the sudden braking of the preceding vehicle at an early stage, and can start the danger avoidance operation such as deceleration at an earlier stage.
  • the three-dimensional data creation device 810 When the three-dimensional data 835 included in the transmitted space has not changed (No in S802), or after step S803, the three-dimensional data creation device 810 has a predetermined shape at a distance L in front of the own vehicle.
  • the three-dimensional data contained in the space of is transmitted to the traffic monitoring cloud or the following vehicle (S804).
  • steps S801 to S804 are repeatedly performed at predetermined time intervals.
  • the three-dimensional data creation device 810 does not have to transmit the three-dimensional data 837 of the space if there is no difference between the three-dimensional data 835 of the space currently to be transmitted and the three-dimensional map.
  • the client device transmits the sensor information obtained by the sensor to the server or another client device.
  • FIG. 111 is a diagram showing a configuration of a three-dimensional map and a sensor information transmission / reception system according to the present embodiment.
  • the system includes a server 901 and client devices 902A and 902B.
  • client devices 902A and 902B are not particularly distinguished, they are also referred to as the client devices 902.
  • the client device 902 is, for example, 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.
  • the server 901 transmits a three-dimensional map composed of a point cloud to the client device 902.
  • the configuration of the three-dimensional map is not limited to the point cloud, and may represent other three-dimensional data such as a mesh structure.
  • the client device 902 transmits the 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.
  • the data sent and received between the server 901 and the client device 902 may be compressed to reduce the data, or may remain uncompressed to maintain the accuracy of the data.
  • a three-dimensional compression method based on an octa-tree structure can be used for the point cloud.
  • 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.
  • the server 901 transmits the three-dimensional map managed by the server 901 to the client device 902 in response to the transmission request of the three-dimensional map from the client device 902.
  • the server 901 may transmit the three-dimensional map without waiting for the transmission request of the three-dimensional map from the client device 902.
  • the server 901 may broadcast a three-dimensional map to one or more client devices 902 in a predetermined space.
  • the server 901 may transmit a three-dimensional map suitable for the position of the client device 902 to the client device 902 once receiving the transmission request at regular intervals.
  • the server 901 may transmit the three-dimensional map to the client device 902 every time the three-dimensional map managed by the server 901 is updated.
  • the client device 902 issues a three-dimensional map transmission request to the server 901. For example, when the client device 902 wants to perform self-position estimation during traveling, the client device 902 transmits a transmission request for a three-dimensional map to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 may issue a transmission request for the three-dimensional map to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901 before a certain time when the client device 902 goes out. For example, when the client device 902 exists within a predetermined distance from the boundary of the space indicated by the three-dimensional map held by the client device 902, the client device 902 issues a three-dimensional map transmission request to the server 901. You may. If the movement route and movement speed of the client device 902 are known, the time when the client device 902 goes out is predicted from the space shown by the three-dimensional map held by the client device 902. You may.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 transmits the sensor information to the server 901 in response to the transmission request for the sensor information transmitted from the server 901.
  • the client device 902 may send the sensor information to the server 901 without waiting for the sensor information transmission request from the server 901. For example, once the client device 902 receives the sensor information transmission request from the server 901, the client device 902 may periodically transmit the sensor information to the server 901 for a certain period of time. Further, when the error at the time of alignment between the three-dimensional data created by the client device 902 based on the sensor information and the three-dimensional map obtained from the server 901 is equal to or more than a certain value, the client device 902 is located around the client device 902. It may be determined that the three-dimensional map may have changed, and that fact and the sensor information may be transmitted to the server 901.
  • the server 901 issues a sensor information transmission request to the client device 902.
  • the server 901 receives the position information of the client device 902 such as GPS from the client device 902.
  • the server 901 determines that the client device 902 is approaching a space with little information in the three-dimensional map managed by the server 901 based on the position information of the client device 902
  • the server 901 determines that the client device 902 is approaching a space with little information, and the client is required to generate a new three-dimensional map.
  • a request for transmission of sensor information is sent to the device 902.
  • the server 901 issues a sensor information transmission request when it wants to update the three-dimensional map, when it wants to check the road condition such as when it snows or when there is a disaster, when it wants to check the traffic jam situation, or when it wants to check the incident accident situation. May be good.
  • the client device 902 may set the data amount of the sensor information to be transmitted to the server 901 according to the communication state or the band at the time of receiving the transmission request of the sensor information received from the server 901. Setting the amount of sensor information to be transmitted to the server 901 means, for example, increasing or decreasing the data itself, or appropriately selecting a compression method.
  • FIG. 112 is a block diagram showing a configuration example of the client device 902.
  • the client device 902 receives a three-dimensional map composed of a point cloud or the like from the server 901, and estimates the self-position of the client device 902 from the three-dimensional data created based on the sensor information of the client device 902. Further, the client device 902 transmits the acquired sensor information to the server 901.
  • the 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, and a three-dimensional image processing unit 1017. It includes 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.
  • the data receiving unit 1011 receives the three-dimensional map 1031 from the server 901.
  • 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.
  • the communication unit 1012 communicates with the server 901 and transmits a data transmission request (for example, a three-dimensional map transmission request) or the like to the server 901.
  • a data transmission request for example, a three-dimensional map transmission request
  • the reception control unit 1013 exchanges information such as the corresponding format with the communication destination via the communication unit 1012, and establishes communication with the communication destination.
  • the format conversion unit 1014 generates the 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, the format conversion unit 1014 performs decompression or decoding processing when the three-dimensional map 1031 is compressed or encoded. If the three-dimensional map 1031 is uncompressed data, the format conversion unit 1014 does not perform decompression or decoding processing.
  • the plurality of sensors 1015 are 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 generate sensor information 1033.
  • the sensor information 1033 is three-dimensional data such as a point cloud (point cloud data) when the sensor 1015 is a laser sensor such as LiDAR.
  • the number of sensors 1015 does not have to be plural.
  • the three-dimensional data creation unit 1016 creates three-dimensional data 1034 around the own 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 own vehicle using the information acquired by LiDAR and the visible light image obtained by the visible light camera.
  • the three-dimensional image processing unit 1017 performs self-position estimation processing of the own vehicle using the received three-dimensional map 1032 such as a point cloud and the three-dimensional data 1034 around the own vehicle generated from the sensor information 1033. ..
  • the three-dimensional image processing unit 1017 creates three-dimensional data 1035 around the own vehicle by synthesizing the three-dimensional map 1032 and the three-dimensional data 1034, and estimates the self-position using the created three-dimensional data 1035. Processing may be performed.
  • 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.
  • the format conversion unit 1019 generates the sensor information 1037 by converting the sensor information 1033 into a format supported by the receiving side.
  • the format conversion unit 1019 may reduce the amount of data by compressing or encoding the sensor information 1037. Further, the format conversion unit 1019 may omit the process when it is not necessary to perform the format conversion. Further, the format conversion unit 1019 may control the amount of data to be transmitted according to the designation of the transmission range.
  • the communication unit 1020 communicates with the server 901 and receives a data transmission request (sensor information transmission request) or the like from the server 901.
  • the transmission control unit 1021 exchanges information such as the corresponding format with the communication destination via the communication unit 1020 to establish communication.
  • the data transmission unit 1022 transmits the sensor information 1037 to the server 901.
  • the sensor information 1037 includes a plurality of sensors such as information acquired by LiDAR, a brightness 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. Contains information acquired by 1015.
  • FIG. 113 is a block diagram showing a configuration example of the server 901.
  • the server 901 receives the 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 by using the created three-dimensional data. Further, the server 901 transmits the updated three-dimensional map to the client device 902 in response to the transmission request of the three-dimensional map from the client device 902.
  • 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, and 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.
  • the data receiving unit 1111 receives the sensor information 1037 from the client device 902.
  • the sensor information 1037 includes, for example, information acquired by LiDAR, a brightness 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, speed information, and the like.
  • the communication unit 1112 communicates with the client device 902 and transmits a data transmission request (for example, a sensor information transmission request) or the like to the client device 902.
  • a data transmission request for example, a sensor information transmission request
  • the reception control unit 1113 exchanges information such as the corresponding format with the communication destination via the communication unit 1112 to establish communication.
  • the format conversion unit 1114 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. If the sensor information 1037 is uncompressed data, the format conversion unit 1114 does not perform decompression or decoding processing.
  • 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 acquired by LiDAR and the visible light image obtained by the visible light camera.
  • the 3D data synthesis unit 1117 updates the 3D map 1135 by synthesizing the 3D data 1134 created based on the sensor information 1132 with the 3D map 1135 managed by the server 901.
  • the 3D data storage unit 1118 stores the 3D map 1135 and the like.
  • the format conversion unit 1119 generates the 3D map 1031 by converting the 3D map 1135 into a format supported by the receiving side.
  • the format conversion unit 1119 may reduce the amount of data by compressing or encoding the three-dimensional map 1135. Further, the format conversion unit 1119 may omit the process when it is not necessary to perform the format conversion. Further, the format conversion unit 1119 may control the amount of data to be transmitted according to the designation of the transmission range.
  • the communication unit 1120 communicates with the client device 902 and receives a data transmission request (three-dimensional map transmission request) or the like from the client device 902.
  • the transmission control unit 1121 exchanges information such as the corresponding format with the communication destination via the communication unit 1120 to establish communication.
  • 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.
  • FIG. 114 is a flowchart showing an operation when the client device 902 acquires a three-dimensional map.
  • the client device 902 requests the server 901 to transmit a three-dimensional map (point cloud, etc.) (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.
  • a three-dimensional map point cloud, etc.
  • the client device 902 receives the three-dimensional map from the server 901 (S1002). If the received 3D map is compressed data, the client device 902 decodes the received 3D map to generate an uncompressed 3D map (S1003).
  • 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).
  • the client device 902 estimates the self-position of the client device 902 using the three-dimensional map 1032 received from the server 901 and the three-dimensional data 1034 created from the sensor information 1033 (S1005).
  • FIG. 115 is a flowchart showing the operation when the sensor information is transmitted by the client device 902.
  • the client device 902 receives the sensor information transmission request from the server 901 (S1011).
  • the client device 902 transmits the sensor information 1037 to the server 901 (S1012).
  • the sensor information 1033 includes a plurality of information obtained by the plurality of sensors 1015
  • the client device 902 may generate the sensor information 1037 by compressing each information by a compression method suitable for each information. good.
  • FIG. 116 is a flowchart showing an operation when the server 901 acquires sensor information.
  • the server 901 requests the client device 902 to transmit the sensor information (S1021).
  • the server 901 receives the sensor information 1037 transmitted from the client device 902 in response to the request (S1022).
  • the server 901 creates three-dimensional data 1134 using the received sensor information 1037 (S1023).
  • the server 901 reflects the created three-dimensional data 1134 in the three-dimensional map 1135 (S1024).
  • FIG. 117 is a flowchart showing the operation at the time of transmission of the three-dimensional map by the server 901.
  • the server 901 receives the transmission request of the three-dimensional map from the client device 902 (S1031).
  • the server 901 that has received the three-dimensional map transmission request transmits the three-dimensional map 1031 to the client device 902 (S1032).
  • the server 901 may extract a three-dimensional map in the vicinity thereof according to the position information of the client device 902 and transmit the extracted three-dimensional map.
  • the server 901 may compress the three-dimensional map configured by the point cloud by using, for example, a compression method based on an octane structure, and transmit the compressed three-dimensional map.
  • the server 901 creates three-dimensional data 1134 near the position of the client device 902 using the sensor information 1037 received from the client device 902. Next, the server 901 calculates the difference between the three-dimensional data 1134 and the three-dimensional map 1135 by matching the created three-dimensional data 1134 with the three-dimensional map 1135 in the same area managed by the server 901. .. When the difference is equal to or greater than a predetermined threshold value, the server 901 determines that some abnormality has occurred in the vicinity of the client device 902. For example, when land subsidence occurs due to a natural disaster such as an earthquake, a large difference occurs between the three-dimensional map 1135 managed by the server 901 and the three-dimensional data 1134 created based on the sensor information 1037. Is possible.
  • the sensor information 1037 may include information indicating at least one of the sensor type, the sensor performance, and the sensor model number. Further, 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 the information acquired by LiDAR, the sensor that can acquire the information with the accuracy of several mm is the class 1, the sensor that can acquire the information with the accuracy of several cm is the class 2, and the sensor is the unit of several m. As in class 3, it is conceivable to assign an identifier to the performance of a sensor that can acquire information with accuracy. Further, the server 901 may estimate the performance information of the sensor or the like from the model number of the client device 902.
  • the server 901 may determine the sensor spec information from the vehicle model of the vehicle. In this case, the server 901 may acquire information on the vehicle type of the vehicle in advance, or the sensor information may include the information. Further, the server 901 may switch the degree of correction for the three-dimensional data 1134 created by using the sensor information 1037 by using the acquired sensor information 1037. For example, if the sensor performance is high accuracy (class 1), the server 901 does not make corrections to the 3D data 1134. When the sensor performance is low accuracy (class 3), the server 901 applies a correction to the three-dimensional data 1134 according to the accuracy of the sensor. For example, in the server 901, the lower the accuracy of the sensor, the stronger the degree (strength) of the correction.
  • the server 901 may issue a sensor information transmission request to a plurality of client devices 902 in a certain space at the same time.
  • 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.
  • the sensor to be used depends on the performance of the sensor. You may select the information.
  • the server 901 selects highly accurate sensor information (class 1) from a plurality of received sensor information, and creates three-dimensional data 1134 using the selected sensor information. You may.
  • the server 901 is not limited to a server such as a traffic monitoring cloud, and may be another client device (vehicle-mounted).
  • FIG. 118 is a diagram showing a system configuration in this case.
  • the client device 902C issues a sensor information transmission request to the nearby client device 902A, 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. As a result, the client device 902C can generate a three-dimensional map of the space that can be acquired from the client device 902A by taking advantage of the performance of the client device 902C. For example, it is considered that such a case occurs when the performance of the client device 902C is high.
  • the client device 902A that provided the sensor information is given the right to acquire the highly accurate three-dimensional map generated by the client device 902C.
  • the client device 902A receives a highly accurate 3D map from the client device 902C in accordance with its rights.
  • the client device 902C may issue a request for transmission of sensor information to a plurality of nearby client devices 902 (client device 902A and client device 902B).
  • client device 902A and client device 902B client devices 902
  • the client device 902C can create three-dimensional data using the sensor information obtained by this high-performance sensor.
  • FIG. 119 is a block diagram showing a functional configuration of the server 901 and the client device 902.
  • the server 901 includes, for example, a three-dimensional map compression / decoding processing unit 1201 that compresses and decodes a three-dimensional map, and a sensor information compression / decoding processing unit 1202 that compresses and decodes sensor information.
  • 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 compressed sensor information encoded data to the server 901.
  • the client device 902 may internally hold a processing unit (device or LSI) that performs a process of decoding a three-dimensional map (point cloud, etc.), and the three-dimensional data of the three-dimensional map (point cloud, etc.). It is not necessary to hold a processing unit that performs processing for compressing. As a result, the cost and power consumption of the client device 902 can be suppressed.
  • the client device 902 is mounted on the moving body, and is obtained from the sensor information 1033 indicating the surrounding condition of the moving body obtained by the sensor 1015 mounted on the moving body. Create peripheral three-dimensional data 1034.
  • the client device 902 estimates the self-position of the moving object 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.
  • the client device 902 transmits the sensor information 1033 to the server 901 and the like.
  • the amount of transmitted data can be reduced as compared with the case of transmitting three-dimensional data.
  • the processing amount of the client device 902 can be reduced. Therefore, the client device 902 can reduce the amount of data to be transmitted or simplify the configuration of the device.
  • the client device 902 further transmits a transmission request for the three-dimensional map to the server 901, and receives the three-dimensional map 1031 from the server 901.
  • the client device 902 estimates the self-position using the three-dimensional data 1034 and the three-dimensional map 1032 in the estimation of the self-position.
  • the sensor information 1033 includes at least one of information obtained by the laser sensor, a luminance image, an infrared image, a depth image, a sensor position information, and a sensor speed information.
  • the sensor information 1033 includes information indicating the performance of the sensor.
  • the client device 902 encodes or compresses the sensor information 1033, and in transmitting the sensor information, the encoded or compressed sensor information 1037 is transmitted to the server 901 or another client device 902. According to this, the client device 902 can reduce the amount of data to be transmitted.
  • the client device 902 includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the server 901 can communicate with the client device 902 mounted on the mobile body, and the sensor information 1037 indicating the peripheral situation of the mobile body obtained by the sensor 1015 mounted on the mobile body is obtained. Is received from the client device 902. The server 901 creates three-dimensional data 1134 around the moving object from the received sensor information 1037.
  • the server 901 creates the three-dimensional data 1134 using the sensor information 1037 transmitted from the client device 902. As a result, there is a possibility that the amount of data to be transmitted can be reduced as compared with the case where the client device 902 transmits three-dimensional data. Further, since it is not necessary to perform processing such as compression or coding of three-dimensional data on the client device 902, the processing amount of the client device 902 can be reduced. Therefore, the server 901 can reduce the amount of data to be transmitted or simplify the configuration of the device.
  • the server 901 further transmits a transmission request for sensor information to the client device 902.
  • the server 901 updates the three-dimensional map 1135 using the created three-dimensional data 1134, and sends the three-dimensional map 1135 to the client device 902 in response to the transmission request of the three-dimensional map 1135 from the client device 902. Send.
  • the sensor information 1037 includes at least one of information obtained by the laser sensor, a luminance image, an infrared image, a depth image, a sensor position information, and a sensor speed information.
  • the sensor information 1037 includes information indicating the performance of the sensor.
  • 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.
  • the server 901 when receiving sensor information, receives a plurality of sensor information 1037 from a plurality of client devices 902, and based on a plurality of information indicating the performance of the sensor included in the plurality of sensor information 1037, the server 901 receives three-dimensional data 1134. Select the sensor information 1037 used to create. According to this, the server 901 can improve the quality of the three-dimensional data 1134.
  • the server 901 decodes or decompresses the received sensor information 1037, and creates three-dimensional data 1134 from the decoded or decompressed sensor information 1132. According to this, the server 901 can reduce the amount of data to be transmitted.
  • the server 901 includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 120 is a diagram showing a configuration of a system according to the present embodiment.
  • the system shown in FIG. 120 includes a server 2001, a client device 2002A, and a client device 2002B.
  • 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.
  • the client device 2002A includes a sensor information acquisition unit 2011, a storage unit 2012, and a data transmission availability determination unit 2013.
  • the configuration of the client device 2002B is also the same. Further, in the following, when the client device 2002A and the client device 2002B are not particularly distinguished, they are also described as the client device 2002.
  • FIG. 121 is a flowchart showing the operation of the client device 2002 according to the present embodiment.
  • the sensor information acquisition unit 2011 acquires various sensor information using a sensor (sensor group) mounted on the moving body. That is, the sensor information acquisition unit 2011 acquires sensor information indicating the surrounding condition of the moving body, which is obtained by the sensor (sensor group) mounted on the moving body. Further, 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 from which the sensor information has been acquired.
  • the velocity information indicates the velocity of the moving object when the sensor acquires the sensor information.
  • the acquisition time information indicates the time when the sensor information is acquired by the sensor.
  • the acquisition location information indicates the position of the moving object or the sensor when the sensor information is acquired by the sensor.
  • the data transmission availability determination unit 2013 determines whether the mobile body (client device 2002) exists in an environment in which the sensor information can be transmitted to the server 2001 (S2002). For example, the data transmission availability determination unit 2013 may specify the location and time of the client device 2002 using information such as GPS, and determine whether or not the data can be transmitted. Further, the data transmission availability determination unit 2013 may determine whether or not data can be transmitted depending on whether or not it can be connected to a specific access point.
  • the client device 2002 determines that the mobile body exists in an environment where the sensor information can be transmitted to the server 2001 (Yes in S2002), the client device 2002 transmits the sensor information to the server 2001 (S2003). That is, when the client device 2002 is in a situation where the sensor information can be transmitted to the server 2001, the client device 2002 transmits the held sensor information to the server 2001.
  • a millimeter-wave access point capable of high-speed communication is installed at an intersection or the like.
  • the sensor information held by the client device 2002 is transmitted to the server 2001 at high speed by using millimeter wave communication.
  • the client device 2002 deletes the sensor information transmitted to the server 2001 from the storage unit 2012 (S2004).
  • the client device 2002 may delete the sensor information when the sensor information not transmitted to the server 2001 satisfies a predetermined condition.
  • the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition time of the sensor information to be held 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 is acquired by the sensor and the current time exceeds a predetermined time. Further, the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition location of the sensor information to be held is more than a certain distance from the current position.
  • the sensor information is obtained when the difference between the position of the moving body or the sensor when the sensor information is acquired by the sensor and the position of the current moving body or the sensor exceeds a predetermined distance. May be deleted from the storage unit 2012. As a result, the capacity of the storage unit 2012 of the client device 2002 can be suppressed.
  • the client device 2002 performs the processing after step S2001 again. Further, when the acquisition of the sensor information by the client device 2002 is completed (Yes in S2005), the client device 2002 ends the process.
  • the client device 2002 may select the sensor information to be transmitted to the server 2001 according to the communication status. For example, when high-speed communication is possible, the client device 2002 preferentially transmits sensor information (for example, LiDAR acquisition information) having a large size held in the storage unit 2012. Further, when high-speed communication is difficult, the client device 2002 transmits sensor information (for example, a visible light image) having a small size and a high priority held in the storage unit 2012. As a result, the client device 2002 can efficiently transmit the sensor information held in the storage unit 2012 to the server 2001 according to the network conditions.
  • sensor information for example, LiDAR acquisition information
  • sensor information for example, a visible light image
  • 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. Further, 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 the time information from the server 2001 and generate the acquired time information using the acquired time information. Further, the client device 2002 may acquire the location information from the server 2001 and generate the acquisition location information using the acquired location information.
  • the server 2001 and the client device 2002 synchronize the time using a mechanism such as NTP (Network Time Protocol) or PTP (Precision Time Protocol).
  • NTP Network Time Protocol
  • PTP Precision Time Protocol
  • the client device 2002 can acquire accurate time information.
  • the server 2001 can handle the sensor information indicating the synchronized time.
  • the time synchronization mechanism may be any method other than NTP or PTP.
  • GPS information may be used as the time information and location information.
  • the server 2001 may acquire sensor information from a plurality of client devices 2002 by designating a time or place. For example, in the event of an accident, the server 2001 broadcasts a sensor information transmission request to a plurality of client devices 2002 by designating the time and place of the accident in order to search for a client in the vicinity thereof. Then, the client device 2002 having the sensor information of the corresponding time and place transmits the sensor information to the server 2001. That is, the client device 2002 receives the sensor information transmission request including the designated information for designating the place and time from the server 2001. The client device 2002 has determined that the storage unit 2012 stores the sensor information obtained at the place and time indicated by the designated information, and that the mobile body exists in an environment in which the sensor information can be transmitted to the server 2001.
  • the sensor information obtained at the place and time indicated by the designated information is transmitted to the server 2001.
  • the server 2001 can acquire sensor information related to the occurrence of an accident from a plurality of client devices 2002 and use it for accident analysis and the like.
  • the client device 2002 may refuse to transmit the sensor information when it receives the sensor information transmission request from the server 2001. Further, the client device 2002 may set in advance which sensor information among the plurality of sensor information can be transmitted. Alternatively, the server 2001 may inquire of the client device 2002 whether or not the sensor information can be transmitted each time.
  • points may be given to the client device 2002 that has transmitted the sensor information to the server 2001.
  • This point can be used, for example, to pay for gasoline purchase costs, EV (Electric Vehicle) charging costs, highway tolls, car rental costs, and the like.
  • the server 2001 may delete the information for identifying the client device 2002 from which the sensor information is transmitted after the sensor information is acquired.
  • this information is information such as the network address of the client device 2002.
  • the sensor information can be anonymized, so that the user of the client device 2002 can safely transmit the sensor information from the client device 2002 to the server 2001.
  • 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. This makes it possible to avoid stopping the service due to a server failure.
  • the designated place specified in the sensor information transmission request indicates the position where the accident occurred, and may differ from the position of the client device 2002 at the designated time specified in the sensor information transmission request. Therefore, the server 2001 can request the client device 2002 existing in the range to acquire information by designating a range such as within XX m in the vicinity as the designated place. Similarly, for the designated time, the server 2001 may specify a range such as within N seconds before and after a certain time. As a result, the server 2001 can acquire the sensor information from the client device 2002 that exists at "time: t-N to t + N, location: within XXm from the absolute position S". When transmitting three-dimensional data such as LiDAR, the client device 2002 may transmit the data generated immediately after the time t.
  • the server 2001 may transmit the data generated immediately after the time t.
  • the server 2001 may separately specify, as the designated location, the information indicating the location of the client device 2002 for which the sensor information is to be acquired and the location where the sensor information is desired. For example, the server 2001 specifies that the sensor information including at least the range from the absolute position S to YYm is acquired from the client device 2002 existing within XXm from the absolute position S.
  • the client device 2002 selects the 3D data in one or more randomly accessible units so as to include at least the sensor information in the specified range.
  • the client device 2002 may transmit a plurality of temporally continuous image data including at least a frame immediately before or after time t.
  • the client device 2002 uses the network according to the priority notified from the server 2001. You may choose. Alternatively, the client device 2002 itself may select a network that can secure an appropriate bandwidth based on the size of the transmitted data. Alternatively, the client device 2002 may select a network to be used based on the cost for data transmission and the like. Further, the transmission request from the server 2001 may include information indicating a transmission deadline, such as transmission when the client device 2002 can start transmission by time T. The server 2001 may issue a transmission request again if sufficient sensor information cannot be acquired within the deadline.
  • a transmission deadline such as transmission when the client device 2002 can start transmission by time T.
  • the sensor information may include header information indicating the characteristics of the sensor data together with the 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 the transmission of the sensor data.
  • the server 2001 determines whether or not to acquire the sensor data of the client device 2002 based on the analysis result of the header information.
  • the header information may include information indicating the point cloud acquisition density, elevation angle, or frame rate of LiDAR, or the resolution, signal-to-noise ratio, or frame rate of the visible light image. As a result, the server 2001 can acquire the sensor information from the client device 2002 having the sensor data of the determined quality.
  • the client device 2002 acquires the sensor information indicating the peripheral condition of the moving body, which is mounted on the moving body and obtained by the sensor mounted on the moving body, and stores the sensor information in the storage unit 2012. ..
  • the client device 2002 determines whether the mobile body exists in an environment capable of transmitting sensor information to the server 2001, and if it determines that the mobile body exists in an environment capable of transmitting sensor information to the server, the client device 2002 transmits the sensor information to the server 2001. Send to.
  • the client device 2002 further creates three-dimensional data around the moving body from the sensor information, and estimates the self-position of the moving body using the created three-dimensional data.
  • the client device 2002 further transmits a transmission request for the three-dimensional map to the server 2001, and receives the three-dimensional map from the server 2001.
  • the client device 2002 estimates the self-position using the three-dimensional data and the three-dimensional map.
  • processing by the client device 2002 may be realized as an information transmission method in the client device 2002.
  • the client device 2002 includes a processor and a memory, and the processor may perform the above processing using the memory.
  • FIG. 122 is a diagram showing a configuration of a sensor information collection system according to the present embodiment.
  • 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, and a map server 2025.
  • the client device 2026 and the like.
  • the terminal 2021A and the terminal 2021B are not particularly distinguished, they are also described as the terminal 2021.
  • the communication device 2022A and the communication device 2022B are not particularly distinguished, they are also described as the communication device 2022.
  • the data collection server 2024 collects data such as sensor data obtained by the sensor included in the terminal 2021 as position-related data associated with the position in the three-dimensional space.
  • the sensor data is, for example, data acquired by using a sensor included in the terminal 2021 such as a state around the terminal 2021 or an internal state of the terminal 2021.
  • the terminal 2021 transmits sensor data collected from one or more sensor devices at a position capable of directly communicating with the terminal 2021 or relaying one or a plurality of relay devices by the same communication method to the data collection server 2024. Send.
  • the data included in the position-related data may include, for example, information indicating the operating state of the terminal itself or the device included in the terminal, the operation log, the usage status of the service, and the like. Further, the data included in the position-related data may include information in which the identifier of the terminal 2021 is associated with the position or the movement route of the terminal 2021.
  • the information indicating the position included in the position-related data is associated with the information indicating the position in the three-dimensional data such as the three-dimensional map data.
  • the details of the information indicating the position will be described later.
  • the position-related data includes, in addition to the position information which is information indicating the position, the time information described above, the attributes of the data included in the position-related data, or the information indicating the type of the sensor (for example, model number) that generated the data. And at least one of them may be included.
  • 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 for 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.
  • 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 a request from another device 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 by using the sensor information transmitted from the terminal 2021.
  • 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 the collected position-related data or the metadata of the three-dimensional map data generated based on the position-related data to the terminal 2021 in response to the request from the terminal 2021.
  • 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 a plurality of 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, and (3) LPWA such as SIGFOX, LoRaWAN or Wi-SUN. (Low Power Wide Area)
  • a communication satellite that communicates using a Gateway of Network or (4) a satellite communication method such as DVB-S2.
  • the base station may communicate with the terminal 2021 by a method classified into LPWA such as NB-IoT (Narrow Band-IoT) or LTE-M, and may communicate with the terminal 2021 while switching between these methods. Communication may be performed.
  • LPWA Low Band-IoT
  • LTE-M Long Term Evolution
  • the terminal 2021 has a function of communicating with a communication device 2022 using two types of communication methods, and a communication device using any of these communication methods or a plurality of these communication methods and a direct communication partner.
  • a communication device 2022 using two types of communication methods, and a communication device using any of these communication methods or a plurality of these communication methods and a direct communication partner.
  • An example is given in the case of communicating with the map server 2025 or the data collection server 2024 while switching 2022, but the configuration of the sensor information collection system and the terminal 2021 is not limited to this.
  • the terminal 2021 may not have a communication function in a plurality of communication methods, but may have a function of communicating in any one communication method.
  • the terminal 2021 may support three or more communication methods. Further, the corresponding communication method may be different for each terminal 2021.
  • the terminal 2021 includes, for example, the configuration of the client device 902 shown in FIG. 112.
  • the terminal 2021 estimates a position such as a self-position using the received three-dimensional data. Further, 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.
  • the position information added to the position-related data indicates, for example, the position in the coordinate system used in the three-dimensional data.
  • the position information is a coordinate value represented by a latitude and longitude value.
  • the terminal 2021 may include the coordinate value as well as the information indicating the coordinate system that is the reference of the coordinate value and the three-dimensional data used for the position estimation in the position information.
  • the coordinate values may include altitude information.
  • the position information may be associated with a unit of data or a unit of space that can be used for encoding the above-mentioned three-dimensional data.
  • This unit is, for example, WLD, GOS, SPC, VLM, VXL, or the like.
  • the position information is represented by an identifier for specifying a data unit such as an SPC corresponding to the position-related data.
  • the position information is information indicating three-dimensional data in which the three-dimensional space including the data unit such as SPC is encoded, or the details in the SPC. It may contain information indicating a different position.
  • the information indicating the three-dimensional data is, for example, the file name of the three-dimensional data.
  • the system generates position-related data associated with position information based on position estimation using three-dimensional data, so that the self-position of the client device (terminal 2021) acquired by GPS can be used. It is possible to add position information to the sensor information with higher accuracy than when the based position information is added to the sensor information. As a result, even when the position-related data is used by other devices in other services, the position corresponding to the position-related data can be specified more accurately in the real space by performing the position estimation based on the same three-dimensional data. There is a possibility that it can be done.
  • the data transmitted from the terminal 2021 is position-related data
  • the data transmitted from the terminal 2021 may be data not associated with the position information. good. That is, the transmission / reception of the three-dimensional data or the sensor data described in the other embodiment may be performed via the network 2023 described in the present embodiment.
  • the position information added to the position-related data may be information indicating a position relative to a feature point in the three-dimensional data.
  • the feature point that serves as a reference for the position information is, for example, a feature point encoded as SWLD and notified to the terminal 2021 as three-dimensional data.
  • the information indicating the relative position with respect to the feature point is represented by, for example, 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.
  • 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, the Y-axis, and the Z-axis from the feature point to the point indicated by the position information.
  • the information indicating the relative position with respect to the feature point may be information indicating the distance from each of the three or more feature points to the point indicated by the position information.
  • the relative position may not be the relative position of the point indicated by the position information expressed with respect to each feature point, but may be the relative position of each feature point expressed with reference to the point indicated by the position information.
  • An example of position information based on a relative position with respect to a feature point includes information for specifying a reference feature point and information indicating a relative position of a point indicated by the position information with respect to the feature point.
  • 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 is the coordinate axis used for deriving the relative position, the information indicating the type of the three-dimensional data, and the information indicating the type of the three-dimensional data.
  • it may include information indicating the magnitude (scale, etc.) of the value of the information indicating the relative position per unit amount.
  • the position information may include information indicating a relative position with respect to each feature point for a plurality of feature points.
  • the terminal 2021 that tries to specify the position indicated by the position information in the real space has the position information from the position of the feature point estimated from the sensor data for each feature point.
  • the candidate points of the positions indicated by may be calculated, and the points obtained by averaging the calculated plurality of candidate points may be determined to be the points indicated by the position information. According to this configuration, the influence of an error in estimating the position of the feature point from the sensor data can be reduced, so that the estimation accuracy of the point indicated by the position information in the real space can be improved.
  • the position information includes information indicating a relative position with respect to a plurality of feature points, even if there is a feature point that cannot be detected due to restrictions such as the type or performance of the sensor included in the terminal 2021, any of the plurality of feature points. If even one of them can be detected, it is possible to estimate the value of the point indicated by the position information.
  • a point that can be identified from the sensor data can be used.
  • the points that can be identified from the sensor data are, for example, points within a region or points that satisfy predetermined conditions for feature point detection, such as the above-mentioned three-dimensional feature amount or feature amount of visible light data being equal to or greater than a threshold value.
  • a marker installed in a real space may be used as a feature point.
  • the marker may be detected and its position can be specified from the data acquired by using a sensor such as LiDER or a camera.
  • the marker is represented by a change in color or luminance value (reflectance), or a three-dimensional shape (unevenness, etc.).
  • a coordinate value indicating the position of the marker, a two-dimensional code or a barcode generated from the identifier of the marker, or the like may be used.
  • a light source that transmits an optical signal may be used as a marker.
  • a light source of an optical signal When a light source of an optical signal is used as a marker, not only information for acquiring a position such as a coordinate value or an identifier but also other data may be transmitted by the optical signal.
  • the optical signal connects to the wireless communication device with the content of the service according to the position of the marker, the address such as ur for acquiring the content, or the identifier of the wireless communication device for receiving the provision of the service. It may include information indicating a wireless communication method for the purpose.
  • the terminal 2021 grasps the correspondence between the feature points between different data by using, for example, an identifier commonly used between the data, or information or a table showing the correspondence between the feature points between the data. Further, when there is no information indicating the correspondence between the feature points, the terminal 2021 is the feature at the closest distance when the coordinates of the feature points in one three-dimensional data are converted to the positions in the other three-dimensional data space. A point may be determined to be a corresponding feature point.
  • the position information based on the relative position described above is used, it is included in each 3D data or associated with each 3D data even between terminals 2021 or services that use different 3D data.
  • the position indicated by the position information can be specified or estimated based on the common feature point. As a result, it becomes possible to identify or estimate the same position with higher accuracy between terminals 2021 or services that use different three-dimensional data.
  • the data collection server 2024 may transfer the received position-related data to another data server.
  • the data collection server 2024 determines to which data server the received position-related data is to be transferred, and transfers the position-related data to the data server determined as the transfer destination.
  • the data collection server 2024 determines the transfer destination based on, for example, the determination rule of the transfer destination server preset in the data collection server 2024.
  • the determination rule of the transfer destination server is set, for example, in the transfer destination table in which the identifier associated with each terminal 2021 and the data server of the transfer destination are associated with each other.
  • the terminal 2021 adds an identifier associated with the terminal 2021 to the position-related data to be transmitted and transmits the data to the data collection server 2024.
  • the data collection server 2024 specified the transfer destination data server corresponding to the identifier attached to the position-related data based on the determination rule of the transfer destination server using the transfer destination table or the like, and specified the position-related data. Send to the data server. Further, the determination rule of the transfer destination server may be specified by the determination condition using the time or place where the position-related data is acquired.
  • the identifier associated with the above-mentioned transmission source terminal 2021 is, for example, an identifier unique to each terminal 2021 or an identifier indicating a group to which the terminal 2021 belongs.
  • the transfer destination table does not have to be a direct association between the identifier associated with the source terminal and the transfer destination data server.
  • the data collection server 2024 holds a management table that stores tag information assigned to each terminal 2021 for each unique identifier, and a transfer destination table that associates the tag information with the transfer destination data server.
  • the data collection server 2024 may determine the transfer destination data server based on the tag information by using the management table and the transfer destination table.
  • the tag information is, for example, management control information or service provision control information given to the type, model number, owner, group to which the terminal 2021 corresponds to the identifier, or other identifier.
  • an identifier unique to each sensor may be used instead of the identifier associated with the transmission source terminal 2021.
  • the determination rule of the transfer destination server may be set from the client device 2026.
  • the data collection server 2024 may determine a plurality of data servers as transfer destinations and transfer the received position-related data to the plurality of data servers. According to this configuration, for example, when backing up location-related data automatically, or in order to share location-related data with different services, location-related data is sent to the data server for providing each service. If it is necessary to do so, the data can be transferred as intended by changing the setting for the data collection server 2024. As a result, the man-hours required for constructing and changing the system can be reduced as compared with the case where the transmission destination of the position-related data is set in the individual terminal 2021.
  • the data collection server 2024 registers the data server specified by the transfer request signal as a new transfer destination in response to the transfer request signal received from the data server, and transfers the position-related data received thereafter to the data server. You may.
  • the data collection server 2024 stores the position-related data received from the terminal 2021 in the recording device, and requests the position-related data specified by the transmission request signal according to the transmission request signal received from the terminal 2021 or the data server. It may be transmitted to the terminal 2021 or the data server of.
  • the data collection server 2024 determines whether or not the location-related data can be provided to the requesting data server or terminal 2021, and if it is determined that the location-related data can be provided, the data collection server 2024 transfers or transmits the location-related data to the requesting data server or terminal 2021. May be done.
  • the data collection server 2024 When the request for the current position-related data is received from the client device 2026, the data collection server 2024 requests the terminal 2021 to transmit the position-related data even if the terminal 2021 does not send the position-related data. 2021 may transmit position-related data in response to the transmission request.
  • the terminal 2021 transmits the position information data to the data collection server 2024, but the data collection server 2024 collects the position-related data from the terminal 2021, such as a function for managing the terminal 2021. It may be provided with a function necessary for the above or a function used when collecting position-related data from the terminal 2021.
  • the data collection server 2024 may have a function of transmitting a data request signal requesting the transmission of position information data to the terminal 2021 and collecting position-related data.
  • Management information such as an address for communicating with the terminal 2021 to be collected data or an identifier unique to the terminal 2021 is registered in the data collection server 2024 in advance.
  • 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 included in the terminal 2021, the number of sensors included in the terminal 2021, and the communication method supported by the terminal 2021.
  • the data collection server 2024 may collect information such as the operating status or the current position of the terminal 2021 from the terminal 2021.
  • the registration of the management information may be performed from the client device 2026, or the process for registration may be started by the terminal 2021 transmitting the registration request to the data collection server 2024.
  • the data acquisition server 2024 may have a function of controlling communication with the terminal 2021.
  • the communication connecting the data collection server 2024 and the terminal 2021 is configured by a dedicated line provided by a service provider such as an MNO (Mobile Network Operator) or a MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network). It may be a virtual dedicated line or the like. According to this configuration, communication between the terminal 2021 and the data collection server 2024 can be performed safely.
  • a service provider such as an MNO (Mobile Network Operator) or a MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network). It may be a virtual dedicated line or the like. According to this configuration, communication between the terminal 2021 and the data collection server 2024 can be performed safely.
  • the data collection server 2024 may have a function of authenticating the terminal 2021 or a function of encrypting data transmitted to and received from the terminal 2021.
  • the authentication process of the terminal 2021 or the data encryption process is a terminal group including an identifier unique to the terminal 2021 or a plurality of terminals 2021 shared in advance between the data collection server 2024 and the terminal 2021. It is done using a unique identifier or the like.
  • This identifier is, for example, an IMSI (International Mobile Subscriber Identity), which is a unique number stored in a SIM (Subscriber Identity Module) card.
  • IMSI International Mobile Subscriber Identity
  • SIM Subscriber Identity Module
  • the process 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 a function to perform the process, and can be relayed. It does not depend on the communication method used by the communication device 2022. Therefore, since the common authentication or encryption process can be used without considering whether the terminal 2021 uses the communication method, the convenience of the user's system construction is improved. However, the fact that the communication device 2022 for relaying does not depend on the communication method means that it is not essential to change the communication method according to the communication method. That is, for the purpose of improving transmission efficiency or ensuring security, the authentication or data encryption process between the data collection server 2024 and the terminal 2021 may be switched according to the communication method used by the relay device.
  • the data collection server 2024 may provide the client device 2026 with a UI that manages data collection rules such as the type of location-related data collected from the terminal 2021 and the data collection schedule. As a result, the user can specify the terminal 2021 for collecting data using the client device 2026, the data collection time and frequency, and the like. Further, the data collection server 2024 may specify an area on the map on which data is to be collected and collect position-related data from the terminal 2021 included in the area.
  • the client device 2026 When the data collection rule is managed for each terminal 2021, 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 of data collection or the collection schedule for each item in the list.
  • the client device 2026 When designating an area on a map for which data is to be collected, the client device 2026 presents, for example, a two-dimensional or three-dimensional map of the area to be managed on the screen. The user selects an area on the displayed map to collect data.
  • 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 in the city, a block, or a main road.
  • the area may be set by inputting the numerical values of latitude and longitude, or the area is selected from the list of candidate areas derived based on the input text information. May be done.
  • Textual information may be, for example, the name of a region, city, or landmark.
  • an area on the map may be designated based on the position of the client device 2026 in real space obtained from the sensor data. For example, the client device 2026 estimates its own position using sensor data, and data a region within a predetermined distance from a point on the map corresponding to the estimated position or a distance specified by the user. May be specified as the area to collect. Further, the client device 2026 may designate the sensing area of the sensor, that is, the area corresponding to the acquired sensor data as the area for collecting the data. Alternatively, the client device 2026 may designate an area based on the position corresponding to the sensor data specified by the user as an area for collecting data. The estimation of the area or position on the map corresponding to the sensor data may be performed by the client device 2026 or may be performed by the data collection server 2024.
  • the data collection server 2024 When specifying in the area on the map, the data collection server 2024 identifies the terminal 2021 in the specified area by collecting the current position information of each terminal 2021, and positions the terminal 2021 with respect to the specified terminal 2021. You may request the transmission of relevant data. Further, the data collection server 2024 does not specify the terminal 2021 in the area, but the data collection server 2024 transmits information indicating the designated area to the terminal 2021, and the terminal 2021 itself is in the designated area. It may be determined whether or not it is, and if it is determined that it is within the specified area, the position-related data may be transmitted.
  • the data collection server 2024 transmits data such as a list or a map for providing the above-mentioned UI (User Interface) in the application executed by the client device 2026 to the client device 2026.
  • the data collection server 2024 may transmit the application program to the client device 2026 as well as data such as a list or a map.
  • the above-mentioned UI may be provided as content created by HTML or the like that can be displayed by a browser.
  • 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.
  • the client device 2026 transmits the input information to the data collection server 2024 as the setting information when the input for notifying the completion of the input is performed, such as the user pressing the setting button.
  • the data collection server 2024 transmits a signal notifying the position-related data request or the position-related data collection rule to each terminal 2021 based on the setting information received from the client device 2026, and collects the position-related data. conduct.
  • object information indicating the position of a power feeding unit such as a wireless power feeding antenna or a power feeding coil embedded in a road or a parking lot is included in the three-dimensional data or associated with the three-dimensional data.
  • a power feeding unit such as a wireless power feeding antenna or a power feeding coil embedded in a road or a parking lot is included in the three-dimensional data or associated with the three-dimensional data.
  • terminal 2021 such as a car or drone.
  • the vehicle or drone that has acquired the object information for charging automatically drives the vehicle itself so that the position of the charging part such as the charging antenna or charging coil of the vehicle faces the area indicated by the object information. Move the position of and start charging.
  • the direction to move or the operation to be performed is presented to the driver or operator using the image or sound displayed on the screen.
  • the operation or maneuvering is stopped.
  • the image or sound presented to is switched, and charging is started.
  • the object information may not be information indicating the position of the feeding unit, but may be information indicating an area where charging efficiency equal to or higher than a predetermined threshold value can be obtained by arranging the charging unit in the area.
  • the position of the object information may be represented by a point at the center of the region indicated by the object information, a region or line in a two-dimensional plane, or a region, line or plane in a three-dimensional space. good.
  • the antenna for wireless charging provided in the terminal 2021 such as a car and the wireless embedded in the road etc.
  • the alignment with the feeding antenna can be performed with higher accuracy. As a result, the charging speed at the time of wireless charging can be shortened and the charging efficiency can be improved.
  • the object information may be an object other than the feeding antenna.
  • the three-dimensional data includes the position of the AP of millimeter-wave wireless communication as object information.
  • the terminal 2021 can grasp the position of the AP in advance, so that the directivity of the beam can be directed in the direction of the object information and the communication can be started.
  • the communication quality such as improving the transmission speed, shortening the time until the start of communication, and extending the communicable period.
  • the object information may include information indicating the type of the object corresponding to the object information. Further, the object information should be executed by the terminal 2021 when the terminal 2021 is included in the area in the real space corresponding to the position of the object information on the three-dimensional data or within a range of a predetermined distance from the area. Information indicating the process may be included.
  • the object information may be provided from a server different from the server that provides the three-dimensional data.
  • the object group in which the object information used in the same service is stored may be provided as different data depending on the type of the target service or the target device. ..
  • the three-dimensional data used in combination with the object information may be WLD point cloud data or SWLD feature point data.
  • the three-dimensional data decoding device when the attribute information of the target three-dimensional point, which is the three-dimensional point to be encoded, is hierarchically coded using LoD (Level of Datail), the three-dimensional data decoding device is the three-dimensional. It is not necessary to decode the attribute information up to the required LoD hierarchy in the data decoding device and not to decode the attribute information of the unnecessary hierarchy. For example, when the total number of LoDs of the attribute information in the bit stream encoded by the three-dimensional data encoding device is N, the three-dimensional data decoding device is M from LoD0 to LoD (M-1) of the uppermost layer. It is not necessary to decode the LoDs (M ⁇ N) and the remaining LoDs (N-1). As a result, 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.
  • LoD Level of Datail
  • FIG. 123 is a diagram showing the above use case.
  • the server holds a three-dimensional map obtained by encoding the three-dimensional position information and the attribute information.
  • the server (three-dimensional data coding device) broadcasts a three-dimensional map to a client device (three-dimensional data decoding device: for example, a vehicle or a drone) in an area managed by the server, and the client device receives from the server.
  • a process of specifying the self-position of the client device using a three-dimensional map, or a process of displaying map information to a user or the like who operates the client device is performed.
  • the server encodes the position information of the three-dimensional map by using an octree configuration 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 stores a bitstream of the 3D map obtained by hierarchical coding.
  • the server transmits a bitstream of the encoded three-dimensional map to the client device in response to a transmission request for map information transmitted from the client device in the area managed by the server.
  • the client device receives the bitstream of the 3D map transmitted from the server, and decodes the position information and attribute information of the 3D map according to the usage of the client device. For example, when the client device performs highly accurate self-position estimation using the position information and the attribute information of N LoDs, the client device determines that the decoding result up to a dense three-dimensional point is required as the attribute information. And decode all the information in the bitstream.
  • the client device determines that the decoding result up to the sparse 3D point is necessary as the attribute information, and the position information and the upper layer of LoD are used.
  • Decoding attribute information of LoD from a certain LoD0 to M (M ⁇ N).
  • the three-dimensional point map includes position information and attribute information.
  • the position information is coded by an octree.
  • the attribute information is encoded by N LoDs.
  • Client device A performs highly accurate self-position estimation. In this case, the client device A determines that all the position information and the attribute information are necessary, and decodes all the position information in the bit stream and the attribute information composed of N LoDs.
  • the client device B displays a three-dimensional map to the user. In this case, the client device B determines that the position information and the attribute information of M LoDs (M ⁇ N) are necessary, and decodes the position information in the bitstream and the attribute information composed of M LoDs. do.
  • the server may broadcast the three-dimensional map to the client device, multicast transmission, or unicast transmission.
  • the three-dimensional data coding device when the attribute information of the target three-dimensional point, which is the target three-dimensional point to be coded, is hierarchically coded using LoD, the three-dimensional data coding device is the three-dimensional data decoding device. It is not necessary to encode the attribute information up to the required LoD hierarchy and not to encode the attribute information of the unnecessary hierarchy. For example, when the total number of LoDs is N, the three-dimensional data coding device encodes M (M ⁇ N) LoDs from the uppermost layer LoD0 to LoD (M-1), and the remaining LoD (N). A bit stream may be generated by not encoding LoD up to -1).
  • the 3D data encoding device obtains a bit stream in which the attribute information from LoD0 to LoD (M-1) required by the 3D data decoding device is encoded in response to the request from the 3D data decoding device. Can be provided.
  • FIG. 124 is a diagram showing the above use case.
  • the server holds a three-dimensional map obtained by encoding the three-dimensional position information and the attribute information.
  • the server (three-dimensional data coding device) unicasts a three-dimensional map to the client device (three-dimensional data decoding device: for example, a vehicle or a drone) in the area managed by the server according to the request of the client device.
  • the client device performs a process of specifying the self-position of the client device using a three-dimensional map received from the server, or a process of displaying map information to a user or the like who operates the client device.
  • the server encodes the position information of the three-dimensional map by using an octree configuration or the like. Then, the server generates a bitstream of the three-dimensional map A by hierarchically encoding the attribute information of the three-dimensional map using N LoDs constructed based on the position information, and generates the generated bitstream. Save to the server. Further, the server generates a bitstream of the three-dimensional map B by hierarchically coding the attribute information of the three-dimensional map using M (M ⁇ N) LoDs constructed based on the position information. Save the generated bitstream on the server.
  • the client device requests the server to send a three-dimensional map according to the purpose of the client device. For example, when the client device performs highly accurate self-position estimation using the position information and the attribute information of N LoDs, the client device determines that the decoding result up to a dense three-dimensional point is necessary as the attribute information, and is tertiary. Requests the server to send the bitstream of the original map A. Further, when displaying the information of the 3D map to the user or the like, the client device determines that the decoding result up to the sparse 3D point is necessary as the attribute information, and M pieces from the position information and the upper layer LoD0 of LoD.
  • the server Requests the server to transmit a bitstream of the three-dimensional map B including LoD attribute information up to (M ⁇ N). Then, the server transmits the encoded bitstream of the three-dimensional map A or the three-dimensional map B to the client device in response to the request for transmission of the map information from the client device.
  • the client device receives the bitstream of the three-dimensional map A or the three-dimensional map B transmitted from the server according to the use of the client device, and decodes the bitstream. In this way, the server switches the bit stream to be transmitted according to the usage of the client device. As a result, the processing load of the client device can be reduced.
  • the server holds the three-dimensional map A and the three-dimensional map B.
  • the server encodes the position information of the three-dimensional map with, for example, an ocree, and encodes the attribute information of the three-dimensional map with N LoDs to generate the three-dimensional map A. That is, NumLoD included in the bitstream of the three-dimensional map A indicates N.
  • the server encodes the position information of the three-dimensional map with, for example, an ocree, and encodes the attribute information of the three-dimensional map with M LoDs to generate the three-dimensional map B. That is, NumLoD included in the bitstream of the three-dimensional map B indicates M.
  • Client device A performs highly accurate self-position estimation.
  • the client device A determines that all the position information and the attribute information are necessary, and sends a transmission request of the three-dimensional map A including all the position information and the attribute information composed of N LoDs to the server. ..
  • the client device A receives the three-dimensional map A and decodes all the position information and the attribute information composed of N LoDs.
  • the client device B displays a three-dimensional map to the user.
  • the client device B determines that the position information and the attribute information of M (M ⁇ N) LoDs are necessary, and includes all the position information and the attribute information composed of M LoDs in three dimensions.
  • the client device B receives the three-dimensional map B and decodes all the position information and the attribute information composed of M LoDs.
  • the server (three-dimensional data coding device) encodes the three-dimensional map C in which the remaining NM attribute information of LoD is encoded in addition to the three-dimensional map B, and the request of the client device B.
  • the three-dimensional map C may be transmitted to the client device B according to the above. Further, the client device B may obtain decoding results of N LoDs by using the bitstream of the three-dimensional map B and the three-dimensional map C.
  • FIG. 125 is a flowchart showing an example of application processing.
  • the three-dimensional data demultiplexing device acquires an ISOBMFF file including point cloud data and a plurality of coded data (S7301).
  • the three-dimensional data demultiplexing device may acquire the ISOBMFF file by communication or may read it from the stored data.
  • the three-dimensional data demultiplexing device analyzes the entire configuration information in the ISOBMFF file and identifies the data to be used for the application (S7302). For example, the three-dimensional data demultiplexing device acquires data used for processing and does not acquire data not used for processing.
  • the three-dimensional data demultiplexing device extracts one or more data used for the application and analyzes the configuration information of the data (S7303).
  • the three-dimensional data demultiplexing device converts the ISOBMFF into a coded stream and extracts a time stamp (S7305). Further, the three-dimensional data demultiplexing device determines whether or not the data are synchronized, for example, by referring to a flag indicating whether or not the data are synchronized, and if they are not synchronized, the synchronization is performed. Processing may be performed.
  • the three-dimensional data demultiplexing device decodes the data by a predetermined method according to the time stamp and other instructions, and processes the decoded data (S7306).
  • the three-dimensional data demultiplexing device extracts the data and the time stamp (S7307). Further, the three-dimensional data demultiplexing device determines whether or not the data are synchronized, for example, by referring to a flag indicating whether or not the data are synchronized, and if they are not synchronized, the synchronization is performed. Processing may be performed. The three-dimensional data demultiplexing device then processes the data according to the time stamp and other instructions (S7308).
  • FIG. 126 is a diagram showing an example of the sensor range of the beam LiDAR, FLASH LiDAR, and the camera.
  • the beam LiDAR detects all directions around the vehicle (sensor), and the FLASH LiDAR and the camera detect a range in one direction (for example, forward) of the vehicle.
  • the three-dimensional data demultiplexing device extracts and decodes the coded data of the beam LiDAR and FLASH LiDAR with reference to the overall configuration information. Further, the three-dimensional data demultiplexing device does not extract the camera image.
  • the three-dimensional data demultiplexing device simultaneously processes the coded data of the time of the same time stamp according to the time stamps of LiDAR and FLASH LiDAR.
  • the three-dimensional data demultiplexing device may present the processed data on the presenting device, synthesize the point cloud data of the beam LiDAR and the FLASH LiDAR, perform processing such as rendering.
  • the three-dimensional data demultiplexing device may extract sensor position information and use it in the application.
  • the three-dimensional data demultiplexing device may select whether to use beam LiDAR information or FLASH LiDAR in the application, and switch the processing according to the selection result.
  • FIG. 127 is a diagram showing a configuration example of an automated driving system.
  • This automated driving system includes a cloud server 7350 and an edge 7360 such as an in-vehicle device or a mobile device.
  • the cloud server 7350 includes a demultiplexing unit 7351, a decoding unit 7352A, 7352B and 7355, a point cloud data synthesis unit 7353, a large-scale data storage unit 7354, a comparison unit 7356, and a coding unit 7357.
  • the edge 7360 includes sensors 7361A and 7361B, point cloud data generation units 7362A and 7362B, synchronization units 7363, coding units 7364A and 7364B, multiplexing unit 7365, update data storage unit 7366, and demultiplexing unit. It includes a 7637, a decoding unit 7368, a filter 7369, a self-position estimation unit 7370, and an operation control unit 7371.
  • the edge 7360 downloads a large-scale data which is a large-scale point cloud map data stored in the cloud server 7350.
  • the edge 7360 performs self-position estimation processing of the edge 7360 (vehicle or terminal) by matching the large-scale data with the sensor information obtained by the edge 7360. Further, the edge 7360 uploads the acquired sensor information to the cloud server 7350, and updates the large-scale data with the latest map data.
  • point cloud data with different coding methods are handled in various applications that handle point cloud data in the system.
  • the cloud server 7350 encodes and multiplexes large-scale data. Specifically, the coding unit 7357 performs coding by using a third coding method suitable for coding a large-scale point cloud. Further, the coding unit 7357 multiplexes the coded data.
  • the large-scale data storage unit 7354 stores data encoded and multiplexed by the coding unit 7357.
  • Edge 7360 performs sensing.
  • the point cloud data generation unit 7362A generates the first point cloud data (position information (geometry) and attribute information) by using the sensing information acquired by the sensor 7361A.
  • the point cloud data generation unit 7362B generates the second point cloud data (position information and attribute information) by using the sensing information acquired by the sensor 7361B.
  • the generated first point cloud data and second point cloud data are used for self-position estimation or vehicle control of automatic driving, or map update. In each process, some information of the first point cloud data and the second point cloud data may be used.
  • Edge 7360 performs self-position estimation. Specifically, Edge 7360 downloads large-scale data from the cloud server 7350.
  • the demultiplexing unit 7637 acquires the coded data by demultiplexing the large-scale data in the file format.
  • the decoding unit 7368 acquires large-scale data, which is large-scale point cloud map data, by decoding the acquired coded data.
  • the self-position estimation unit 7370 matches the acquired large-scale data with the first point cloud data and the second point cloud data generated by the point cloud data generation units 7362A and 7362B to map the vehicle. Estimate the self-position in. Further, the operation control unit 7371 uses the matching result or the self-position estimation result for the operation control.
  • the self-position estimation unit 7370 and the operation control unit 7371 may extract specific information such as position information from the large-scale data and perform processing using the extracted information. Further, the filter 7369 performs processing such as correction or thinning on the first point cloud data and the second point cloud data. The self-position estimation unit 7370 and the operation control unit 7371 may use the first point cloud data and the second point cloud data after the processing is performed. Further, the self-position estimation unit 7370 and the operation control unit 7371 may use the sensor signals obtained by the sensors 7361A and 7361B.
  • the synchronization unit 7363 performs time synchronization and position correction between a plurality of sensor signals or a plurality of point cloud data. Further, the synchronization unit 7363 corrects the position information of the sensor signal or the point cloud data so as to match the large-scale data based on the position correction information of the large-scale data and the sensor data generated by the self-position estimation process. May be good.
  • synchronization and position correction may be performed on the cloud server 7350 instead of the edge 7360.
  • the edge 7360 may multiplex the synchronization information and the position information and transmit them to the cloud server 7350.
  • Edge 7360 is. Encode and multiplex sensor signals or point cloud data.
  • the sensor signal or point cloud data is encoded using a first or second coding method suitable for encoding each signal.
  • the coding unit 7364A generates the first coded data by coding the first point cloud data using the first coding method.
  • the coding unit 7364B generates the second coded data by coding the second point cloud data using the second coding method.
  • the multiplexing unit 7365 generates a multiplexed signal by multiplexing the first coded data, the second coded data, the synchronization information, and the like.
  • the update data storage unit 7366 stores the generated multiplexed signal. Further, the update data storage unit 7366 uploads the multiplexed signal to the cloud server 7350.
  • the cloud server 7350 synthesizes the point cloud data. Specifically, the demultiplexing unit 7351 acquires the first coded data and the second coded data by demultiplexing the multiplexing signal uploaded to the cloud server 7350.
  • the decoding unit 7352A acquires the first point cloud data (or sensor signal) by decoding the first coded data.
  • the decoding unit 7352B acquires the second point cloud data (or sensor signal) by decoding the second coded data.
  • the point cloud data synthesis unit 7353 synthesizes the first point cloud data and the second point cloud data by a predetermined method.
  • the point cloud data synthesis unit 7353 may perform the synthesis using the information.
  • the decoding unit 7355 demultiplexes and decodes the large-scale data stored in the large-scale data storage unit 7354.
  • the comparison unit 7356 compares the point cloud data generated based on the sensor signal obtained at the edge 7360 with the large-scale data possessed by the cloud server 7350, and determines the point cloud data that needs to be updated.
  • the comparison unit 7356 updates the point cloud data determined to be necessary to be updated among the large-scale data to the point cloud data obtained from the edge 7360.
  • the coding unit 7357 encodes and multiplexes the updated large-scale data, and stores the obtained data in the large-scale data storage unit 7354.
  • the signals to be handled may differ depending on the intended use or application, and the signal to be multiplexed or the coding method may differ. Even in such a case, flexible decoding and application processing can be performed by multiplexing data of various coding methods using the present embodiment. In addition, even if the signal coding method is different, various applications and systems can be constructed by converting a coding method suitable for demultiplexing, decoding, data conversion, coding, and multiplexing processing. , Flexible service can be provided.
  • FIG. 128 is a diagram showing a configuration example of a bit stream.
  • the whole information of the divided data indicates the sensor ID (sensor_id) and the data ID (data_id) of the divided data for each divided data.
  • the data ID is also shown in the header of each coded data.
  • the entire information of the divided data shown in FIG. 128 includes the sensor information (Sensor), the sensor version (Version), the sensor manufacturer name (Maker), and the sensor, in addition to the sensor ID. It may include at least one of the installation information (Mount Info.) And the position coordinates (World Coordinate) of the sensor.
  • the three-dimensional data decoding device can acquire information on various sensors from the configuration information.
  • the entire information of the divided data may be stored in the metadata SPS, GPS or APS, or may be stored in the SEI which is the metadata not essential for encoding. Further, the three-dimensional data encoding device stores the SEI in the ISOBMFF file at the time of multiplexing. The three-dimensional data decoding device can acquire desired divided data based on the metadata.
  • SPS is the metadata of the entire coded data
  • GPS is the metadata of the position information
  • APS is the metadata for each attribute information
  • G is the coded data of the position information for each divided data.
  • Yes, A1 and the like are coded data of attribute information for each divided data.
  • FIG. 129 is a flowchart of the point group selection process executed by this application.
  • 130 to 132 are diagrams showing screen examples of point group selection processing.
  • a three-dimensional data decoding device that executes an application has, for example, a UI unit that displays an input UI (user interface) 8661 for selecting an arbitrary point cloud.
  • the input UI8661 has a presentation unit 8662 that presents the selected point cloud, and an operation unit (buttons 8663 and 8664) that accepts the user's operation.
  • the three-dimensional data decoding device acquires desired data from the storage unit 8665 after the point cloud is selected by UI8661.
  • the point cloud information that the user wants to display is selected based on the operation for the user's input UI8661 (S8631). Specifically, when the button 8663 is selected, a point cloud based on the sensor 1 is selected. When the button 8664 is selected, a point cloud based on the sensor 2 is selected. Alternatively, by selecting both the button 8663 and the button 8664, both the point cloud based on the sensor 1 and the point cloud based on the sensor 2 are selected.
  • the point cloud selection method is an example and is not limited to this.
  • the three-dimensional data decoding device analyzes the entire information of the divided data contained in the multiplexed signal (bit stream) or the coded data, and selects a point group from the sensor ID (sensor_id) of the selected sensor.
  • the data ID (data_id) of the divided data constituting the above is specified (S8632).
  • the three-dimensional data decoding device extracts coded data including the specified desired data ID from the multiplexed signal, and decodes the extracted coded data to obtain a point cloud based on the selected sensor. Is decoded (S8633).
  • the three-dimensional data decoding device does not decode other coded data.
  • the three-dimensional data decoding device presents (for example, displays) the decoded point cloud (S8634).
  • FIG. 131 shows an example when the button 8663 of the sensor 1 is pressed, and a point cloud of the sensor 1 is presented.
  • FIG. 132 shows an example in which both the button 8663 of the sensor 1 and the button 8664 of the sensor 2 are pressed, and a point cloud of the sensor 1 and the sensor 2 is presented.
  • the present disclosure is not limited to this embodiment.
  • each processing unit included in the three-dimensional data coding device, the three-dimensional data decoding device, and the like according to the above embodiment is typically realized as an LSI which is an integrated circuit. These may be individually integrated into one chip, or may be integrated into one chip so as to include a part or all of them.
  • the integrated circuit is not limited to the LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
  • each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • the present disclosure may be realized as a three-dimensional data coding method, a three-dimensional data decoding method, or the like executed by a three-dimensional data coding device, a three-dimensional data decoding device, or the like.
  • the division of functional blocks in the block diagram is an example, and multiple functional blocks can be realized as one functional block, one functional block can be divided into multiple, and some functions can be transferred to other functional blocks. You may. Further, the functions of a plurality of functional blocks having similar functions may be processed by a single hardware or software in parallel or in a time division manner.
  • each step in the flowchart is executed is for exemplifying in order to specifically explain the present disclosure, and may be an order other than the above. Further, a part of the above steps may be executed simultaneously with other steps (parallel).
  • the three-dimensional data coding device, the three-dimensional data decoding device, and the like according to one or more embodiments have been described above based on the embodiment, but the present disclosure is not limited to this embodiment. .. As long as it does not deviate from the gist of the present disclosure, various modifications that can be conceived by those skilled in the art are applied to this embodiment, and a form constructed by combining components in different embodiments is also within the scope of one or more embodiments. May be included within.
  • the present disclosure is applicable to a three-dimensional data coding device and a three-dimensional data decoding device.
  • Three-dimensional data creation device 811 Data reception unit 812, 819 Communication unit 813 Reception control unit 814, 821 Format conversion unit 815

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

三次元データ符号化方法は、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、タイル情報に基づいて、複数の三次元点の点群データを符号化し(S11831)、符号化された点群データを含むビットストリームを生成する(S11832)。タイル情報は、N個のサブ空間の座標を示すN個のサブ空間座標情報を含む。N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含む。Nが1以上の場合、タイル情報の符号化(S11831)では、N個のサブ空間座標情報のそれぞれに含まれる3つの座標情報のそれぞれを第1固定長で符号化し、ビットストリームの生成(S11832)では、N個の符号化されたサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含むビットストリームを生成する。

Description

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
 本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信等、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダ等の距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせ等様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVC等がある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)等によって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 三次元データの符号化において処理量を削減できることが望まれている。
 本開示は、符号化における処理量を削減できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供することを目的とする。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、前記タイル情報に基づいて、前記複数の三次元点の点群データを符号化し、符号化された前記点群データを含むビットストリームを生成し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記タイル情報の符号化では、前記N個のサブ空間座標情報のそれぞれに含まれる前記3つの座標情報のそれぞれを第1固定長で符号化し、(ii)前記ビットストリームの生成では、符号化された前記N個のサブ空間座標情報と、前記第1固定長を示す第1固定長情報と、を含む前記ビットストリームを生成する。
 本開示の一態様に係る三次元データ復号方法は、複数の三次元点の符号化された点群データを含むビットストリームを取得し、前記複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、前記タイル情報に基づいて、符号化された前記点群データを復号し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記ビットストリームの取得では、符号化された前記N個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含む前記ビットストリームを取得し、(ii)符号化された前記タイル情報の復号では、符号化された前記N個のサブ空間座標情報のそれぞれに含まれる符号化された前記3つの座標情報のそれぞれを前記第1固定長で復号する。
 本開示は、符号化における処理量を削減できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供できる。
図1は、実施の形態1に係る三次元データ符号化復号システムの構成を示す図である。 図2は、実施の形態1に係る点群データの構成例を示す図である。 図3は、実施の形態1に係る点群データ情報が記述されたデータファイルの構成例を示す図である。 図4は、実施の形態1に係る点群データの種類を示す図である。 図5は、実施の形態1に係る第1の符号化部の構成を示す図である。 図6は、実施の形態1に係る第1の符号化部のブロック図である。 図7は、実施の形態1に係る第1の復号部の構成を示す図である。 図8は、実施の形態1に係る第1の復号部のブロック図である。 図9は、実施の形態1に係る第2の符号化部の構成を示す図である。 図10は、実施の形態1に係る第2の符号化部のブロック図である。 図11は、実施の形態1に係る第2の復号部の構成を示す図である。 図12は、実施の形態1に係る第2の復号部のブロック図である。 図13は、実施の形態1に係るPCC符号化データに関わるプロトコルスタックを示す図である。 図14は、実施の形態2に係るISOBMFFの基本構造を示す図である。 図15は、実施の形態2に係るプロトコルスタックを示す図である。 図16は、実施の形態2に係るNALユニットをコーデック1用のファイルに格納する例を示す図である。 図17は、実施の形態2に係るNALユニットをコーデック2用のファイルに格納する例を示す図である。 図18は、実施の形態2に係る第1の多重化部の構成を示す図である。 図19は、実施の形態2に係る第1の逆多重化部の構成を示す図である。 図20は、実施の形態2に係る第2の多重化部の構成を示す図である。 図21は、実施の形態2に係る第2の逆多重化部の構成を示す図である。 図22は、実施の形態2に係る第1の多重化部による処理のフローチャートである。 図23は、実施の形態2に係る第2の多重化部による処理のフローチャートである。 図24は、実施の形態2に係る第1の逆多重化部及び第1の復号部による処理のフローチャートである。 図25は、実施の形態2に係る第2の逆多重化部及び第2の復号部による処理のフローチャートである。 図26は、実施の形態3に係る符号化部及び多重化部の構成を示す図である。 図27は、実施の形態3に係る符号化データの構成例を示す図である。 図28は、実施の形態3に係る符号化データ及びNALユニットの構成例を示す図である。 図29は、実施の形態3に係るpcc_nal_unit_typeのセマンティクス例を示す図である。 図30は、実施の形態3に係るNALユニットの送出順序の例を示す図である。 図31は、実施の形態3に係る三次元データ符号化装置による処理のフローチャートである。 図32は、実施の形態3に係る三次元データ復号装置による処理のフローチャートである。 図33は、実施の形態4に係るスライス及びタイルの分割例を示す図である。 図34は、実施の形態4に係るスライス及びタイルの分割パターンの例を示す図である。 図35は、実施の形態5に係るスライス又はタイル分割を行わない場合と行う場合とにおける、メモリ、要求実時間、現行の復号時間及び距離を示す図である。 図36は、実施の形態5に係るタイル又はスライス分割の例を示す図である。 図37は、実施の形態5に係る8分木分割のカウント数をソートする手法の例を示す図である。 図38は、実施の形態5に係るタイル又はスライス分割の例を示す図である。 図39は、実施の形態5に係るビットストリームの構成例を示す図である。 図40は、実施の形態5に係るSEIの構成例を示す図である。 図41は、実施の形態5に係るSEIのシンタックス例を示す図である。 図42は、実施の形態5に係る三次元データ復号装置の構成例を示す図である。 図43は、実施の形態5に係るタイル又はスライスのデータの取得動作を説明するための図である。 図44は、実施の形態5に係るタイル又はスライスのデータの取得動作を説明するための図である。 図45は、実施の形態5に係るSEIのテスト動作を示す図である。 図46は、実施の形態5に係るSEIのテスト動作を示す図である。 図47は、実施の形態5に係る三次元データ符号化処理のフローチャートである。 図48は、実施の形態5に係る三次元データ復号処理のフローチャートである。 図49は、実施の形態5に係る三次元データ符号化装置のブロック図である。 図50は、実施の形態5に係る三次元データ復号装置のブロック図である。 図51は、実施の形態5に係る三次元データ符号化処理のフローチャートである。 図52は、実施の形態5に係る三次元データ復号処理のフローチャートである。 図53は、実施の形態6に係るタイル付加情報のシンタックス例を示す図である。 図54は、実施の形態6に係る符号化復号システムのブロック図である。 図55は、実施の形態6に係るスライス付加情報のシンタックス例を示す図である。 図56は、実施の形態6に係る符号化処理のフローチャートである。 図57は、実施の形態6に係る復号処理のフローチャートである。 図58は、実施の形態6に係る符号化処理のフローチャートである。 図59は、実施の形態6に係る復号処理のフローチャートである。 図60は、実施の形態7に係る分割方法の例を示す図である。 図61は、実施の形態7に係る点群データの分割例を示す図である。 図62は、実施の形態7に係るタイル付加情報のシンタックス例を示す図である。 図63は、実施の形態7に係るインデックス情報の例を示す図である。 図64は、実施の形態7に係る依存関係の例を示す図である。 図65は、実施の形態7に係る送出データの例を示す図である。 図66は、実施の形態7に係るNALユニットの構成例を示す図である。 図67は、実施の形態7に係る依存関係の例を示す図である。 図68は、実施の形態7に係るデータの復号順の例を示す図である。 図69は、実施の形態7に係る依存関係の例を示す図である。 図70は、実施の形態7に係るデータの復号順の例を示す図である。 図71は、実施の形態7に係る符号化処理のフローチャートである。 図72は、実施の形態7に係る復号処理のフローチャートである。 図73は、実施の形態7に係る符号化処理のフローチャートである。 図74は、実施の形態7に係る符号化処理のフローチャートである。 図75は、実施の形態7に係る送出データ及び受信データの例を示す図である。 図76は、実施の形態7に係る復号処理のフローチャートである。 図77は、実施の形態7に係る送出データ及び受信データの例を示す図である。 図78は、実施の形態7に係る復号処理のフローチャートである。 図79は、実施の形態7に係る符号化処理のフローチャートである。 図80は、実施の形態7に係るインデックス情報の例を示す図である。 図81は、実施の形態7に係る依存関係の例を示す図である。 図82は、実施の形態7に係る送出データの例を示す図である。 図83は、実施の形態7に係る送出データ及び受信データの例を示す図である。 図84は、実施の形態7に係る復号処理のフローチャートである。 図85は、実施の形態7に係る符号化処理のフローチャートである。 図86は、実施の形態7に係る復号処理のフローチャートである。 図87は、実施の形態8に係るスライスデータの構成を示す図である。 図88は、実施の形態8に係るビットストリームの構成例を示す図である。 図89は、実施の形態8に係るタイルの例を示す図である。 図90は、実施の形態8に係るタイルの例を示す図である。 図91は、実施の形態8に係るタイルの例を示す図である。 図92は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図93は、実施の形態8に係るタイル数=1の場合のタイルインデックスの設定例を示す図である。 図94は、実施の形態8に係るタイル数>1の場合のタイルインデックスの設定例を示す図である。 図95は、実施の形態8に係る三次元データ復号処理のフローチャートである。 図96は、実施の形態8に係るランダムアクセス処理のフローチャートである。 図97は、実施の形態8に係るタイルインデックスの付加方法を示す図である。 図98は、実施の形態8に係るタイルインデックスの付加方法を示す図である。 図99は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図100は、実施の形態8に係る三次元データ復号処理のフローチャートである。 図101は、実施の形態9に係るタイル情報のシンタックスの第1例を示す図である。 図102は、実施の形態9に係るタイル情報のシンタックスの第2例を示す図である。 図103は、実施の形態9に係るタイル情報のシンタックスの第3例を示す図である。 図104は、実施の形態9に係る三次元データ符号化装置の符号化処理の概要を示すフローチャートである。 図105は、実施の形態9に係る三次元データ符号化装置のタイル情報の符号化処理の具体例を示すフローチャートである。 図106は、実施の形態9に係る三次元データ復号装置の符号化されたタイル情報の復号処理の具体例を示すフローチャートである。 図107は、実施の形態9に係る三次元データ符号化装置の処理手順を示すフローチャートである。 図108は、実施の形態9に係る三次元データ復号装置の処理手順を示すフローチャートである。 図109は、実施の形態10に係る三次元データ作成装置のブロック図である。 図110は、実施の形態10に係る三次元データ作成方法のフローチャートである。 図111は、実施の形態10に係るシステムの構成を示す図である。 図112は、実施の形態10に係るクライアント装置のブロック図である。 図113は、実施の形態10に係るサーバのブロック図である。 図114は、実施の形態10に係るクライアント装置による三次元データ作成処理のフローチャートである。 図115は、実施の形態10に係るクライアント装置によるセンサ情報送信処理のフローチャートである。 図116は、実施の形態10に係るサーバによる三次元データ作成処理のフローチャートである。 図117は、実施の形態10に係るサーバによる三次元マップ送信処理のフローチャートである。 図118は、実施の形態10に係るシステムの変形例の構成を示す図である。 図119は、実施の形態10に係るサーバ及びクライアント装置の構成を示す図である。 図120は、実施の形態10に係るサーバ及びクライアント装置の構成を示す図である。 図121は、実施の形態10に係るクライアント装置による処理のフローチャートである。 図122は、実施の形態10に係るセンサ情報収集システムの構成を示す図である。 図123は、実施の形態10に係るシステムの例を示す図である。 図124は、実施の形態10に係るシステムの変形例を示す図である。 図125は、実施の形態10に係るアプリケーション処理の例を示すフローチャートである。 図126は、実施の形態10に係る各種センサのセンサ範囲を示す図である。 図127は、実施の形態10に係る自動運転システムの構成例を示す図である。 図128は、実施の形態10に係るビットストリームの構成例を示す図である。 図129は、実施の形態10に係る点群選択処理のフローチャートである。 図130は、実施の形態10に係る点群選択処理の画面例を示す図である。 図131は、実施の形態10に係る点群選択処理の画面例を示す図である。 図132は、実施の形態10に係る点群選択処理の画面例を示す図である。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、前記タイル情報に基づいて、前記複数の三次元点の点群データを符号化し、符号化された前記点群データを含むビットストリームを生成し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記タイル情報の符号化では、前記N個のサブ空間座標情報のそれぞれに含まれる前記3つの座標情報のそれぞれを第1固定長で符号化し、(ii)前記ビットストリームの生成では、符号化された前記N個のサブ空間座標情報と、前記第1固定長を示す第1固定長情報と、を含む前記ビットストリームを生成する。
 これによれば、タイル情報に含まれるN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で符号化するために、例えば可変長で符号化する場合と比較して、符号化における処理量を削減できる。
 また、例えば、前記タイル情報は、前記N個のサブ空間のうちの少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含み、前記タイル情報の符号化では、前記少なくとも1つのサイズ情報のそれぞれを第2固定長で符号化し、前記ビットストリームの生成では、符号化された前記少なくとも1つのサイズ情報と、前記第2固定長を示す第2固定長情報と、を含む前記ビットストリームを生成する。
 これによれば、タイル情報に含まれるサイズ情報を第2固定長で符号化するために、例えば可変長で符号化する場合と比較して、符号化における処理量をさらに削減できる。
 また、例えば、前記N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを判定し、前記タイル情報の符号化では、前記N個のサブ空間のうちの前記所定のサイズと一致しないサブ空間のサイズを示すサイズ情報を、前記少なくとも1つのサイズ情報としてそれぞれ前記第2固定長で符号化し、前記ビットストリームの生成では、前記N個のサブ空間のそれぞれのサイズが前記所定のサイズと一致するか否かを示すコモンフラグ情報を含む前記ビットストリームを生成する。
 これによれば、サブ空間のサイズが所定のサイズと一致する場合、当該サイズを示すサイズ情報を符号化してビットストリームに含めてなくても、サブ空間が所定のサイズと一致するか否かを示すコモンサイズフラグ情報をビットストリームに含めておくことで、ビットストリームを取得した三次元データ復号装置は、サブ空間のサイズを適切に決定できる。そのため、例えば、複数のサブ空間において所定のサイズと一致するサイズが多い場合には、生成するビットストリームのデータ量を削減でき、且つ、サイズ情報を符号化する処理量を削減できる。
 また、例えば、前記第1固定長と前記第2固定長とは、同じ長さである。
 これによれば、第1固定長及び第2固定長のそれぞれを示す情報を1つにできるため、生成するビットストリームのデータ量を削減できる。
 また、例えば、前記タイル情報は、前記対象空間の原点の座標を示すコモン原点情報を含み、前記ビットストリームの生成では、前記コモン原点情報を含む前記ビットストリームを生成する。
 これによれば、例えば対象空間の原点の座標が予め定められていなくても、ビットストリームを取得した三次元データ復号装置は、ビットストリームに含まれる情報に基づいて符号化された点群データを適切に復号できる。
 また、例えば、Nが0の場合、前記ビットストリームの生成では、前記サブ空間に関する情報を含まない前記ビットストリームを生成する。
 これによれば、生成するビットストリームのデータ量を削減できる。
 また、本開示の一態様に係る三次元データ復号方法は、複数の三次元点の符号化された点群データを含むビットストリームを取得し、前記複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、前記タイル情報に基づいて、符号化された前記点群データを復号し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記ビットストリームの取得では、符号化された前記N個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含む前記ビットストリームを取得し、(ii)符号化された前記タイル情報の復号では、符号化された前記N個のサブ空間座標情報のそれぞれに含まれる符号化された前記3つの座標情報のそれぞれを前記第1固定長で復号する。
 これによれば、タイル情報に含まれる符号化されたN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で復号するために、例えば可変長で復号する場合と比較して、復号における処理量を削減できる。
 また、例えば、前記タイル情報は、前記N個のサブ空間のうち少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含み、前記ビットストリームの取得では、符号化された前記少なくとも1つのサイズ情報と、第2固定長を示す第2固定長情報と、を含む前記ビットストリームを取得し、符号化された前記タイル情報の復号では、符号化された前記少なくとも1つのサイズ情報のそれぞれを前記第2固定長で復号する。
 これによれば、タイル情報に含まれる符号化されたサイズ情報を第2固定長で復号するために、例えば可変長で復号する場合と比較して、復号における処理量を削減できる。
 また、例えば、前記ビットストリームの取得では、前記N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを示すコモンフラグ情報を含む前記ビットストリームを取得し、前記コモンフラグ情報に基づいて、前記N個のサブ空間のそれぞれのサイズが前記所定のサイズと一致するか否かを判定し、符号化された前記タイル情報の復号では、前記N個のサブ空間のうちの前記所定のサイズと一致しないサブ空間のサイズを示す符号化されたサイズ情報を、符号化された前記少なくとも1つのサイズ情報としてそれぞれ前記第2固定長で復号する。
 これによれば、サブ空間のサイズが所定のサイズと一致する場合、当該サイズを示すサイズ情報がビットストリームに含まれていなくても、サブ空間が所定のサイズと一致するか否かを示すコモンサイズフラグ情報がビットストリームに含まれていれば、サブ空間のサイズを適切に決定できる。そのため、例えば、複数のサブ空間において所定のサイズと一致するサイズが多い場合には、取得するビットストリームのデータ量を削減でき、且つ、サイズ情報を復号する処理量を削減できる。
 また、例えば、前記第1固定長と前記第2固定長とは、同じ長さである。
 これによれば、第1固定長及び第2固定長のそれぞれを示す情報を1つにできるため、取得するビットストリームのデータ量を削減できる。
 また、例えば、前記タイル情報は、前記対象空間の原点の座標を示すコモン原点情報を含み、前記ビットストリームの取得では、前記コモン原点情報を含む前記ビットストリームを取得する。
 これによれば、例えば対象空間の原点の座標が予め定められていなくても、ビットストリームに含まれる情報に基づいて符号化された点群データを適切に復号できる。
 また、例えば、Nが0の場合、前記ビットストリームの取得では、前記サブ空間に関する情報を含まない前記ビットストリームを取得する。
 これによれば、取得するビットストリームのデータ量を削減できる。
 また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、前記タイル情報に基づいて、前記複数の三次元点の点群データを符号化し、符号化された前記点群データを含むビットストリームを生成し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記タイル情報の符号化では、前記N個のサブ空間座標情報のそれぞれに含まれる前記3つの座標情報のそれぞれを第1固定長で符号化し、(ii)前記ビットストリームの生成では、さらに、N個の符号化された前記サブ空間座標情報と、前記第1固定長を示す第1固定長情報と、を含む前記ビットストリームを生成する。
 これによれば、タイル情報に含まれるN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で符号化するために、例えば可変長で符号化する場合と比較して、符号化における処理量を削減できる。
 また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元点の符号化された点群データを含むビットストリームを取得し、前記複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、前記タイル情報に基づいて、符号化された前記点群データを復号し、前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、Nが1以上の場合、(i)前記ビットストリームの取得では、符号化された前記N個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含む前記ビットストリームを取得し、(ii)符号化された前記タイル情報の復号では、N個の符号化された前記サブ空間座標情報のそれぞれに含まれる3つの符号化された前記座標情報のそれぞれを第1固定長で復号する。
 これによれば、タイル情報に含まれる符号化されたN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で復号するために、例えば可変長で復号する場合と比較して、復号における処理量を削減できる。
 なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
 本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報を送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置、並びに、当該符号化データを多重化する三次元データ多重化方法、並びに、当該符号化データを伝送する三次元データ伝送方法について説明する。
 特に、現在、点群データの符号化方法(符号化方式)として第1の符号化方法、及び第2の符号化方法が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、又は、伝送或いは蓄積ができないという課題がある。
 また、PCC(Point Cloud Compression)のように、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するフォーマットをサポートする方法はこれまで存在しない。
 本実施の形態では、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するPCC符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法について説明する。
 まず、本実施の形態に係る三次元データ(点群データ)符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム4601と、三次元データ復号システム4602と、センサ端末4603と、外部接続部4604とを含む。
 三次元データ符号化システム4601は、三次元データである点群データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム4601は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム4601に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ符号化システム4601は、点群データ生成システム4611と、提示部4612と、符号化部4613と、多重化部4614と、入出力部4615と、制御部4616とを含む。点群データ生成システム4611は、センサ情報取得部4617と、点群データ生成部4618とを含む。
 センサ情報取得部4617は、センサ端末4603からセンサ情報を取得し、センサ情報を点群データ生成部4618に出力する。点群データ生成部4618は、センサ情報から点群データを生成し、点群データを符号化部4613へ出力する。
 提示部4612は、センサ情報又は点群データをユーザに提示する。例えば、提示部4612は、センサ情報又は点群データに基づく情報又は画像を表示する。
 符号化部4613は、点群データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部4614へ出力する。付加情報は、例えば、センサ情報を含む。
 多重化部4614は、符号化部4613から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
 入出力部4615(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部4616(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4616は、符号化及び多重化等の制御を行う。
 なお、センサ情報が符号化部4613又は多重化部4614へ入力されてもよい。また、入出力部4615は、点群データ又は符号化データをそのまま外部へ出力してもよい。
 三次元データ符号化システム4601から出力された伝送信号(多重化データ)は、外部接続部4604を介して、三次元データ復号システム4602に入力される。
 三次元データ復号システム4602は、符号化データ又は多重化データを復号することで三次元データである点群データを生成する。なお、三次元データ復号システム4602は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム4602に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ復号システム4602は、センサ情報取得部4621と、入出力部4622と、逆多重化部4623と、復号部4624と、提示部4625と、ユーザインタフェース4626と、制御部4627とを含む。
 センサ情報取得部4621は、センサ端末4603からセンサ情報を取得する。
 入出力部4622は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部4623へ出力する。
 逆多重化部4623は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部4624へ出力する。
 復号部4624は、符号化データを復号することで点群データを再構成する。
 提示部4625は、点群データをユーザに提示する。例えば、提示部4625は、点群データに基づく情報又は画像を表示する。ユーザインタフェース4626は、ユーザの操作に基づく指示を取得する。制御部4627(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4627は、逆多重化、復号及び提示等の制御を行う。
 なお、入出力部4622は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部4625は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部4625は、ユーザインタフェース4626で取得されたユーザの指示に基づき、提示を行ってもよい。
 センサ端末4603は、センサで得られた情報であるセンサ情報を生成する。センサ端末4603は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
 センサ端末4603で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末4603と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
 外部接続部4604は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
 次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
 点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報とを含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
 三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
 1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
 図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
 位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
 次に、点群データの種類について説明する。図4は、点群データの種類を示す図である。図4に示すように、点群データには、静的オブジェクトと、動的オブジェクトとがある。
 静的オブジェクトは、任意の時間(ある時刻)の三次元点群データである。動的オブジェクトは、時間的に変化する三次元点群データである。以降、ある時刻の三次元点群データをPCCフレーム、又はフレームと呼ぶ。
 オブジェクトは、通常の映像データのように、ある程度領域が制限されている点群であってもよいし、地図情報のように領域が制限されていない大規模点群であってもよい。
 また、様々な密度の点群データがあり、疎な点群データと、密な点群データとが存在してもよい。
 以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。点群データ生成部4618は、センサ情報取得部4617で得られたセンサ情報に基づき点群データを生成する。点群データ生成部4618は、点群データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
 点群データ生成部4618は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、点群データ生成部4618は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、点群データ生成部4618は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、属性情報をレンダリングしてもよい。
 なお、図1では、点群データ生成システム4611は、三次元データ符号化システム4601に含まれるが、三次元データ符号化システム4601の外部に独立して設けられてもよい。
 符号化部4613は、点群データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には大きく以下の2種類がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
 復号部4624は、符号化データを予め規定された符号化方法に基づき復号することで点群データを復号する。
 多重化部4614は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部4614は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部4614は、さらに、センサ情報又は点群データに関連する属性情報を多重してもよい。
 多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RMPなどがある。
 逆多重化部4623は、多重化データからPCC符号化データ、その他のメディア、及び時刻情報などを抽出する。
 入出力部4615は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部4615は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
 通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
 有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
 また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
 図5は、第1の符号化方法の符号化を行う符号化部4613の例である第1の符号化部4630の構成を示す図である。図6は、第1の符号化部4630のブロック図である。第1の符号化部4630は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4630は、位置情報符号化部4631と、属性情報符号化部4632と、付加情報符号化部4633と、多重化部4634とを含む。
 第1の符号化部4630は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部4630は、属性情報符号化部4632が、位置情報符号化部4631から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、GPCC(Geometry based PCC)とも呼ばれる。
 点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部4631に入力され、属性情報は属性情報符号化部4632に入力され、付加情報は付加情報符号化部4633に入力される。
 位置情報符号化部4631は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部4631は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
 属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
 付加情報符号化部4633は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
 多重化部4634は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
 次に、第1の符号化方法の復号を行う復号部4624の例である第1の復号部4640について説明する。図7は、第1の復号部4640の構成を示す図である。図8は、第1の復号部4640のブロック図である。第1の復号部4640は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部4640は、逆多重化部4641と、位置情報復号部4642と、属性情報復号部4643と、付加情報復号部4644とを含む。
 図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部4640に入力される。
 逆多重化部4641は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
 位置情報復号部4642は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部4642は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
 属性情報復号部4643は、位置情報復号部4642で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部4643は、位置情報復号部4642で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部4643は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
 付加情報復号部4644は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部4640は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
 次に、第2の符号化方法の符号化を行う符号化部4613の例である第2の符号化部4650について説明する。図9は、第2の符号化部4650の構成を示す図である。図10は、第2の符号化部4650のブロック図である。
 第2の符号化部4650は、点群データを第2の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第2の符号化部4650は、付加情報生成部4651と、位置画像生成部4652と、属性画像生成部4653と、映像符号化部4654と、付加情報符号化部4655と、多重化部4656とを含む。
 第2の符号化部4650は、三次元構造を二次元画像に投影することで位置画像及び属性画像を生成し、生成した位置画像及び属性画像を既存の映像符号化方式を用いて符号化するという特徴を有する。第2の符号化方法は、VPCC(Video based PCC)とも呼ばれる。
 点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報MetaData)を含む。
 付加情報生成部4651は、三次元構造を二次元画像に投影することで、複数の二次元画像のマップ情報を生成する。
 位置画像生成部4652は、位置情報と、付加情報生成部4651で生成されたマップ情報とに基づき、位置画像(Geometry Image)を生成する。この位置画像は、例えば、画素値として距離(Depth)が示される距離画像である。なお、この距離画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
 属性画像生成部4653は、属性情報と、付加情報生成部4651で生成されたマップ情報とに基づき、属性画像を生成する。この属性画像は、例えば、画素値として属性情報(例えば色(RGB))が示される画像である。なお、この画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
 映像符号化部4654は、位置画像及び属性画像を、映像符号化方式を用いて符号化することで、符号化データである符号化位置画像(Compressed Geometry Image)及び符号化属性画像(Compressed Attribute Image)を生成する。なお、映像符号化方式として、公知の任意の符号化方法が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
 付加情報符号化部4655は、点群データに含まれる付加情報、及びマップ情報等を符号化することで符号化付加情報(Compressed MetaData)を生成する。
 多重化部4656は、符号化位置画像、符号化属性画像、符号化付加情報、及び、その他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
 次に、第2の符号化方法の復号を行う復号部4624の例である第2の復号部4660について説明する。図11は、第2の復号部4660の構成を示す図である。図12は、第2の復号部4660のブロック図である。第2の復号部4660は、第2の符号化方法で符号化された符号化データ(符号化ストリーム)を、第2の符号化方法で復号することで点群データを生成する。この第2の復号部4660は、逆多重化部4661と、映像復号部4662と、付加情報復号部4663と、位置情報生成部4664と、属性情報生成部4665とを含む。
 図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第2の復号部4660に入力される。
 逆多重化部4661は、符号化データから、符号化位置画像(Compressed Geometry Image)、符号化属性画像(Compressed Attribute Image)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
 映像復号部4662は、符号化位置画像及び符号化属性画像を、映像符号化方式を用いて復号することで、位置画像及び属性画像を生成する。なお、映像符号化方式として、公知の任意の符号化方式が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
 付加情報復号部4663は、符号化付加情報を復号することで、マップ情報等を含む付加情報を生成する。
 位置情報生成部4664は、位置画像とマップ情報とを用いて位置情報を生成する。属性情報生成部4665は、属性画像とマップ情報とを用いて属性情報を生成する。
 第2の復号部4660は、復号に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
 以下、PCC符号化方式における課題を説明する。図13は、PCC符号化データに関わるプロトコルスタックを示す図である。図13には、PCC符号化データに、映像(例えばHEVC)又は音声などの他のメディアのデータを多重し、伝送又は蓄積する例を示す。
 多重化方式及びファイルフォーマットは、様々な符号化データを多重し、伝送又は蓄積するための機能を有している。符号化データを伝送又は蓄積するためには、符号化データを多重化方式のフォーマットに変換しなければならない。例えば、HEVCでは、NALユニットと呼ばれるデータ構造に符号化データを格納し、NALユニットをISOBMFFに格納する技術が規定されている。
 一方、現在、点群データの符号化方法として第1の符号化方法(Codec1)、及び第2の符号化方法(Codec2)が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、伝送及び蓄積ができないという課題がある。
 なお、以降において、特定の符号化方法の記載がなければ、第1の符号化方法、及び第2の符号化方法のいずれかを示すものとする。
 (実施の形態2)
 本実施の形態では、NALユニットをISOBMFFのファイルに格納する方法について説明する。
 ISOBMFF(ISO based media file format)は、ISO/IEC14496-12に規定されるファイルフォーマット規格である。ISOBMFFは、ビデオ、オーディオ、及びテキストなど様々なメディアを多重して格納できるフォーマットを規定しており、メディアに依存しない規格である。
 ISOBMFFの基本構造(ファイル)について説明する。ISOBMFFにおける基本単位はボックスである。ボックスはtype、length、dataで構成され、様々なtypeのボックスを組み合わせた集合がファイルである。
 図14は、ISOBMFFの基本構造(ファイル)を示す図である。ISOBMFFのファイルは、主に、ファイルのブランドを4CC(4文字コード)で示すftyp、制御情報などのメタデータを格納するmoov、及び、データを格納するmdatなどのボックスを含む。
 ISOBMFFのファイルへのメディア毎の格納方法は別途規定されており、例えば、AVCビデオ及びHEVCビデオの格納方法は、ISO/IEC14496-15に規定される。ここで、PCC符号化データを蓄積又は伝送するために、ISOBMFFの機能を拡張して使用することが考えられるが、PCC符号化データをISOBMFFのファイルに格納する規定はまだない。そこで、本実施の形態では、PCC符号化データをISOBMFFのファイルに格納する方法について説明する。
 図15は、PCCコーデック共通のNALユニットをISOBMFFのファイルに格納する場合のプロトコルスタックを示す図である。ここでは、PCCコーデック共通のNALユニットがISOBMFFのファイルに格納される。NALユニットはPCCコーデック共通であるが、NALユニットには複数のPCCコーデックが格納されるため、それぞれのコーデックに応じた格納方法(Carriage of Codec1、Carriage of Codec2)を規定することが望ましい。
 次に、複数のPCCコーデックをサポートする共通のPCC NALユニットをISOBMFFのファイルへ格納する方法について説明する。図16は、共通のPCC NALユニットをコーデック1の格納方法(Carriage of Codec1)のISOBMFFのファイルに格納する例を示す図である。図17は、共通のPCC NALユニットをコーデック2の格納方法(Carriage of Codec2)のISOBMFFのファイルに格納する例を示す図である。
 ここで、ftypは、ファイルフォーマットを識別するための重要な情報であり、ftyp用に、コーデック毎に異なる識別子が定義される。第1の符号化方法(符号化方式)で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc1に設定される。第2の符号化方法で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc2に設定される。
 ここで、pcc1は、PCCのコーデック1(第1の符号化方法)が用いられることを示す。pcc2は、PCCのコーデック2(第2の符号化方法)が用いられることを示す。つまり、pcc1及びpcc2は、データがPCC(三次元データ(点群データ)の符号データ)であることを示し、かつ、PCCコーデック(第1の符号化方法及び第2の符号化方法)を示す。
 以下、NALユニットをISOBMFFのファイルへ格納する方法について説明する。多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec1である場合にはISOBMFFのftypにpcc1を記載する。
 また、多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec2である場合にはISOBMFFのftypにpcc2を記載する。
 また、多重化部は、pcc_nal_unit_typeがメタデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。多重化部は、pcc_nal_unit_typeがデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。
 例えば、多重化部は、HEVCと同様にNALユニットにNALユニットサイズを格納してもよい。
 本格納方法により、逆多重化部(システムレイヤ)においてファイルに含まれるftypを解析することで、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することが可能となる。さらに、上記の通り、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することで、両方の符号化方法で符号化された符号化データが混在するデータからいずれか一方の符号化方法で符号化された符号化データを抽出することができる。これにより、符号化データを伝送する際に、伝送されるデータ量を抑制することができる。また、本格納方法により、第1の符号化方法と第2の符号化方法とで、異なるデータ(ファイル)フォーマットを設定することなく、共通のデータフォーマットを用いることができる。
 なお、ISOBMFFにおけるftypなど、システムレイヤのメタデータにコーデックの識別情報が示される場合は、多重化部は、pcc_nal_unit_typeを削除したNALユニットをISOBMFFのファイルに格納してもよい。
 次に、本実施の形態に係る三次元データ符号化システム(三次元データ符号化装置)が備える多重化部、及び、本実施の形態に係る三次元データ復号システム(三次元データ復号装置)が備える逆多重化部の構成及び動作について説明する。
 図18は、第1の多重化部4710の構成を示す図である。第1の多重化部4710は、第1の符号化部4630で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4711を備える。この第1の多重化部4710は、例えば、図1に示す多重化部4614に含まれる。
 図19は、第1の逆多重化部4720の構成を示す図である。第1の逆多重化部4720は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第1の復号部4640に出力するファイル逆変換部4721を備える。この第1の逆多重化部4720は、例えば、図1に示す逆多重化部4623に含まれる。
 図20は、第2の多重化部4730の構成を示す図である。第2の多重化部4730は、第2の符号化部4650で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4731を備える。この第2の多重化部4730は、例えば、図1に示す多重化部4614に含まれる。
 図21は、第2の逆多重化部4740の構成を示す図である。第2の逆多重化部4740は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第2の復号部4660に出力するファイル逆変換部4741を備える。この第2の逆多重化部4740は、例えば、図1に示す逆多重化部4623に含まれる。
 図22は、第1の多重化部4710による多重化処理のフローチャートである。まず、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4701)。
 pcc_codec_typeが第2の符号化方法を示す場合(S4702で第2の符号化方法)、第1の多重化部4710は、当該NALユニットを処理しない(S4703)。
 一方、pcc_codec_typeが第2の符号化方法を示す場合(S4702で第1の符号化方法)、第1の多重化部4710は、ftypにpcc1を記載する(S4704)。つまり、第1の多重化部4710は、第1の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4705)。そして、第1の多重化部4710は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4706)。
 図23は、第2の多重化部4730による多重化処理のフローチャートである。まず、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4711)。
 pcc_unit_typeが第2の符号化方法を示す場合(S4712で第2の符号化方法)、第2の多重化部4730は、ftypにpcc2を記載する(S4713)。つまり、第2の多重化部4730は、第2の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4714)。そして、第2の多重化部4730は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4715)。
 一方、pcc_unit_typeが第1の符号化方法を示す場合(S4712で第1の符号化方法)、第2の多重化部4730は、当該NALユニットを処理しない(S4716)。
 なお、上記処理は、PCCデータを第1の符号化方法、及び第2の符号化方法のいずれか一方で符号化する例を示している。第1の多重化部4710及び第2の多重化部4730は、NALユニットのコーデックタイプを識別することにより、所望のNALユニットをファイルに格納する。なお、NALユニットヘッダ以外に、PCCコーデックの識別情報が含まれる場合には、第1の多重化部4710及び第2の多重化部4730は、ステップS4701及びS4711において、NALユニットヘッダ以外に含まれるPCCコーデックの識別情報を用いて、コーデックタイプ(第1の符号化方法又は第2の符号化方法)を識別してもよい。
 また、第1の多重化部4710及び第2の多重化部4730は、ステップS4706及びS4714において、データをファイルに格納する際に、NALユニットヘッダからpcc_nal_unit_typeを削除したうえでファイルに格納してもよい。
 図24は、第1の逆多重化部4720及び第1の復号部4640による処理を示すフローチャートである。まず、第1の逆多重化部4720は、ISOBMFFのファイルに含まれるftypを解析する(S4721)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4722で第2の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4723)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。第1の復号部4640は、当該NALユニットを処理しない(S4724)。
 一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4722で第1の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4725)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。
 第1の復号部4640は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4726)。そして、第1の復号部4640は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4727)。
 図25は、第2の逆多重化部4740及び第2の復号部4660による処理を示すフローチャートである。まず、第2の逆多重化部4740は、ISOBMFFのファイルに含まれるftypを解析する(S4731)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4732で第2の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4733)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。
 第2の復号部4660は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4734)。そして、第2の復号部4660は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4735)。
 一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4732で第1の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4736)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。第2の復号部4660は、当該NALユニットを処理しない(S4737)。
 このように、例えば、第1の逆多重化部4720又は第2の逆多重化部4740において、NALユニットのコーデックタイプを識別することにより、早い段階でコーデックタイプを識別できる。さらに、所望のNALユニットを第1の復号部4640又は第2の復号部4660に入力し、不要なNALユニットを取り除くことができる。この場合、第1の復号部4640又は第2の復号部4660において、コーデックの識別情報を解析する処理は不要になる可能性がある。なお、第1の復号部4640又は第2の復号部4660で再度NALユニットタイプを参照してコーデックの識別情報を解析する処理を実施してもよい。
 また、第1の多重化部4710又は第2の多重化部4730においてNALユニットヘッダからpcc_nal_unit_typeを削除されている場合には、第1の逆多重化部4720又は第2の逆多重化部4740は、NALユニットにpcc_nal_unit_typeを付与したうえで第1の復号部4640又は第2の復号部4660へ出力してもよい。
 (実施の形態3)
 本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
 本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
 図26は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は46456に対応する。
 符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
 多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
 図27は、符号化部4801で生成される符号化データの構成例を示す図である。図中の矢印は符号化データの復号に係る依存関係を示しており、矢印の元は矢印の先のデータに依存している。つまり、復号装置は、矢印の先のデータを復号し、その復号したデータを用いて矢印の元のデータを復号する。言い換えると、依存するとは、依存元のデータの処理(符号化又は復号等)において依存先のデータが参照(使用)されることを意味する。
 まず、位置情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの位置情報を符号化することで、フレーム毎の符号化位置データ(Compressed Geometry Data)を生成する。また、符号化位置データをG(i)で表す。iはフレーム番号、又はフレームの時刻等を示す。
 また、符号化部4801は、各フレームに対応する位置パラメータセット(GPS(i))を生成する。位置パラメータセットは、符号化位置データの復号に使用することが可能なパラメータを含む。また、フレーム毎の符号化位置データは、対応する位置パラメータセットに依存する。
 また、複数フレームから成る符号化位置データを位置シーケンス(Geometry Sequence)と定義する。符号化部4801は、位置シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する位置シーケンスパラメータセット(Geometry Sequence PS:位置SPSとも記す)を生成する。位置シーケンスは、位置SPSに依存する。
 次に、属性情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの属性情報を符号化することで、フレーム毎の符号化属性データ(Compressed Attribute Data)を生成する。また、符号化属性データをA(i)で表す。また、図27では、属性Xと属性Yとが存在する例を示しており、属性Xの符号化属性データをAX(i)で表し、属性Yの符号化属性データをAY(i)で表す。
 また、符号化部4801は、各フレームに対応する属性パラメータセット(APS(i))を生成する。また、属性Xの属性パラメータセットをAXPS(i)で表し、属性Yの属性パラメータセットをAYPS(i)で表す。属性パラメータセットは、符号化属性情報の復号に使用することが可能なパラメータを含む。符号化属性データは、対応する属性パラメータセットに依存する。
 また、複数フレームから成る符号化属性データを属性シーケンス(Attribute Sequence)と定義する。符号化部4801は、属性シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する属性シーケンスパラメータセット(Attribute Sequence PS:属性SPSとも記す)を生成する。属性シーケンスは、属性SPSに依存する。
 また、第1の符号化方法では、符号化属性データは符号化位置データに依存する。
 また、図27では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
 なお、図27では、位置情報が1種類、属性情報が2種類である例を示しているが、これに限らず、属性情報は1種類であってもよいし、3種類以上であってもよい。この場合も、同様の方法で符号化データを生成できる。また、属性情報を持たない点群データの場合は、属性情報はなくてもよい。その場合は、符号化部4801は、属性情報に関連するパラメータセットを生成しなくてもよい。
 次に、付加情報(メタデータ)の生成処理について説明する。符号化部4801は、PCCストリーム全体のパラメータセットであるPCCストリームPS(PCC Stream PS:ストリームPSとも記す)を生成する。符号化部4801は、ストリームPSに、1又は複数の位置シーケンス及び1又は複数の属性シーケンスに対する復号処理に共通に使用することができるパラメータを格納する。例えば、ストリームPSには、点群データのコーデックを示す識別情報、及び符号化に使用されたアルゴリズムを示す情報等が含まれる。位置シーケンス及び属性シーケンスはストリームPSに依存する。
 次に、アクセスユニット及びGOFについて説明する。本実施の形態では、新たにアクセスユニット(Access Unit:AU)、及びGOF(Group of Frame)の考え方を導入する。
 アクセスユニットは、復号時にデータにアクセスするため基本単位であり、1つ以上のデータ及び1つ以上のメタデータで構成される。例えば、アクセスユニットは、同一時刻の位置情報と1又は複数の属性情報とで構成される。GOFは、ランダムアクセス単位であり、1つ以上のアクセスユニットで構成される。
 符号化部4801は、アクセスユニットの先頭を示す識別情報として、アクセスユニットヘッダ(AU Header)を生成する。符号化部4801は、アクセスユニットヘッダに、アクセスユニットに係るパラメータを格納する。例えば、アクセスユニットヘッダは、アクセスユニットに含まれる符号化データの構成又は情報を含む。また、アクセスユニットヘッダは、アクセスユニットに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
 なお、符号化部4801は、アクセスユニットヘッダの代わりに、アクセスユニットに係るパラメータを含まないアクセスユニットデリミタを生成してもよい。このアクセスユニットデリミタは、アクセスユニットの先頭を示す識別情報として用いられる。復号装置は、アクセスユニットヘッダ又はアクセスユニットデリミタを検出することにより、アクセスユニットの先頭を識別する。
 次に、GOF先頭の識別情報の生成について説明する。符号化部4801は、GOFの先頭を示す識別情報として、GOFヘッダ(GOF Header)を生成する。符号化部4801は、GOFヘッダに、GOFに係るパラメータを格納する。例えば、GOFヘッダは、GOFに含まれる符号化データの構成又は情報を含む。また、GOFヘッダは、GOFに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
 なお、符号化部4801は、GOFヘッダの代わりに、GOFに係るパラメータを含まないGOFデリミタを生成してもよい。このGOFデリミタは、GOFの先頭を示す識別情報として用いられる。復号装置は、GOFヘッダ又はGOFデリミタを検出することにより、GOFの先頭を識別する。
 PCC符号化データにおいて、例えば、アクセスユニットはPCCフレーム単位であると定義される。復号装置は、アクセスユニット先頭の識別情報に基づき、PCCフレームにアクセスする。
 また、例えば、GOFは1つのランダムアクセス単位であると定義される。復号装置は、GOF先頭の識別情報に基づき、ランダムアクセス単位にアクセスする。例えば、PCCフレームが互いに依存関係がなく、単独で復号可能であれば、PCCフレームをランダムアクセス単位と定義してもよい。
 なお、1つのアクセスユニットに2つ以上のPCCフレームが割り当てられてもよいし、1つのGOFに複数のランダムアクセス単位が割り当てられてもよい。
 また、符号化部4801は、上記以外のパラメータセット又はメタデータを定義し、生成してもよい。例えば、符号化部4801は、復号時に必ずしも用いない可能性のあるパラメータ(オプションのパラメータ)を格納するSEI(Supplemental Enhancement Information)を生成してもよい。
 次に、符号化データの構成、及び符号化データのNALユニットへの格納方法を説明する。
 例えば、符号化データの種類毎にデータフォーマットが規定される。図28は、符号化データ及びNALユニットの例を示す図である。
 例えば、図28に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
 ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
 ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
 なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
 多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図29は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
 図29に示すように、pcc_codec_typeがコーデック1(Codec1:第1の符号化方法)である場合、pcc_nal_unit_typeの値0~10は、コーデック1における、符号化位置データ(Geometry)、符号化属性Xデータ(AttributeX)、符号化属性Yデータ(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrX.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AUヘッダ(AU Header)、GOFヘッダ(GOF Header)に割り当てられる。また、値11以降は、コーデック1の予備に割り当てられる。
 pcc_codec_typeがコーデック2(Codec2:第2の符号化方法)である場合、pcc_nal_unit_typeの値0~2は、コーデックのデータA(DataA)、メタデータA(MetaDataA)、メタデータB(MetaDataB)に割り当てられる。また、値3以降は、コーデック2の予備に割り当てられる。
 次に、データの送出順序について説明する。以下、NALユニットの送出順序の制約について説明する。
 多重化部4802は、NALユニットをGOF又はAU単位でまとめて送出する。多重化部4802は、GOFの先頭にGOFヘッダを配置し、AUの先頭にAUヘッダを配置する。
 パケットロスなどでデータが失われた場合でも、復号装置が次のAUから復号できるように、多重化部4802は、シーケンスパラメータセット(SPS)を、AU毎に配置してもよい。
 符号化データに復号に係る依存関係がある場合には、復号装置は、参照先のデータを復号した後に、参照元のデータを復号する。復号装置において、データを並び替ることなく、受信した順番に復号できるようにするために、多重化部4802は、参照先のデータを先に送出する。
 図30は、NALユニットの送出順の例を示す図である。図30は、位置情報優先と、パラメータ優先と、データ統合との3つの例を示す。
 位置情報優先の送出順序は、位置情報に関する情報と、属性情報に関する情報との各々をまとめて送出する例である。この送出順序の場合、位置情報に関する情報の送出が属性情報に関する情報の送出よりも早く完了する。
 例えば、この送出順序を用いることで、属性情報を復号しない復号装置は、属性情報の復号を無視することで、処理しない時間を設けることができる可能性がある。また、例えば、位置情報を早く復号したい復号装置の場合、位置情報の符号化データを早く得ることにより、より早く位置情報を復号することができる可能性がある。
 なお、図30では、属性XSPSと属性YSPSを統合し、属性SPSと記載しているが、属性XSPSと属性YSPSとを個別に配置してもよい。
 パラメータセット優先の送出順序では、パラメータセットが先に送出され、データが後で送出される。
 以上のようにNALユニット送出順序の制約に従えば、多重化部4802は、NALユニットをどのような順序で送出してもよい。例えば、順序識別情報が定義され、多重化部4802は、複数パターンの順序でNALユニットを送出する機能を有してもよい。例えばストリームPSにNALユニットの順序識別情報が格納される。
 三次元データ復号装置は、順序識別情報に基づき復号を行ってもよい。三次元データ復号装置から三次元データ符号化装置に所望の送出順序が指示され、三次元データ符号化装置(多重化部4802)は、指示された送出順序に従って送出順序を制御してもよい。
 なお、多重化部4802は、データ統合の送出順序のように、送出順序の制約に従う範囲であれば、複数の機能をマージした符号化データを生成してもよい。例えば、図30に示すように、GOFヘッダとAUヘッダとを統合してもよいし、AXPSとAYPSとを統合してもよい。この場合、pcc_nal_unit_typeには、複数の機能を有するデータであることを示す識別子が定義される。
 以下、本実施の形態の変形例について説明する。フレームレベルのPS、シーケンスレベルのPS、PCCシーケンスレベルのPSのように、PSにはレベルがあり、PCCシーケンスレベルを上位のレベルとし、フレームレベルを下位のレベルとすると、パラメータの格納方法には下記の方法を用いてもよい。
 デフォルトのPSの値をより上位のPSで示す。また、下位のPSの値が上位のPSの値と異なる場合には、下位のPSでPSの値が示される。または、上位ではPSの値を記載せず、下位のPSにPSの値を記載する。または、PSの値を、下位のPSで示すか、上位のPSで示すか、両方で示すかの情報を、下位のPSと上位のPSのいずれか一方又は両方に示す。または、下位のPSを上位のPSにマージしてもよい。または、下位のPSと上位のPSとが重複する場合には、多重化部4802は、いずれか一方の送出を省略してもよい。
 なお、符号化部4801又は多重化部4802は、データをスライス又はタイルなどに分割し、分割したデータを送出してもよい。分割したデータには、分割したデータを識別するための情報が含まれ、分割データの復号に使用するパラメータがパラメータセットに含まれる。この場合、pcc_nal_unit_typeには、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
 以上のように、三次元データ符号化装置は、図31に示す処理を行う。三次元データ符号化装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を符号化する。三次元データは、時刻毎の位置情報と属性情報とを含む。
 まず、三次元データ符号化装置は、位置情報を符号化する(S4841)。次に、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して符号化する(S4842)。ここで、図27に示すように、同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。つまり、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同じアクセスユニットに含まれる位置情報を参照して符号化する。
 これによれば、三次元データ符号化装置は、アクセスユニットを用いて符号化における参照の制御を容易化できる。よって、三次元データ符号化装置は符号化処理の処理量を低減できる。
 例えば、三次元データ符号化装置は、符号化された位置情報(符号化位置データ)と、符号化された属性情報(符号化属性データ)と、処理対象の属性情報の参照先の位置情報を示す情報とを含むビットストリームを生成する。
 例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。
 例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。
 例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。
 例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。
 例えば、三次元データ符号化装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号可能なように符号化する。つまり、GOFはランダムアクセス単位である。
 例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、以上のように、三次元データ復号装置は、図32に示す処理を行う。三次元データ復号装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を復号する。三次元データは、時刻毎の位置情報と属性情報とを含む。同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。
 まず、三次元データ復号装置は、ビットストリームから位置情報を復号する(S4851)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された位置情報(符号化位置データ)を復号することで位置情報を生成する。
 次に、三次元データ復号装置は、ビットストリームから、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して復号する(S4852)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された属性情報(符号化属性データ)を復号することで属性情報を生成する。このとき、三次元データ復号装置は、属性情報と同じアクセスユニットに含まれる復号済みの位置情報を参照する。
 これによれば、三次元データ復号装置は、アクセスユニットを用いて復号における参照の制御を容易化できる。よって、当該三次元データ復号方法は復号処理の処理量を低減できる。
 例えば、三次元データ復号装置は、ビットストリームから、処理対象の属性情報の参照先の位置情報を示す情報を取得し、取得した情報で示される参照先の位置情報を参照して処理対象の属性情報を復号する。
 例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。つまり、三次元データ復号装置は、処理対象時刻の位置パラメータセットに含まれる制御情報を用いて、処理対象時刻の位置情報を復号し、処理対象時刻の属性パラメータセットに含まれる制御情報を用いて、処理対象時刻の属性情報を復号する。
 例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。つまり、三次元データ復号装置は、位置シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報を復号し、属性シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の属性情報を復号する。
 例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。つまり、三次元データ復号装置は、ストリームパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報及び複数時刻の属性情報を復号する。
 例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。つまり、三次元データ復号装置は、アクセスユニットヘッダに含まれる制御情報を用いて、アクセスユニットに含まれる位置情報及び属性情報を復号する。
 例えば、三次元データ復号装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号する。つまり、GOFはランダムアクセス単位である。
 例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。つまり、三次元データ復号装置は、GOFヘッダに含まれる制御情報を用いて、GOFに含まれる位置情報及び属性情報を復号する。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態4)
 以下、点群データの分割方法について説明する。図33は、スライス及びタイル分割の例を示す図である。
 まず、スライス分割の方法について説明する。三次元データ符号化装置は、三次元点群データを、スライス単位で、任意の点群に分割する。三次元データ符号化装置は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、三次元データ符号化装置は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
 また、三次元データ符号化装置は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
 次に、タイル分割の方法について説明する。三次元データ符号化装置は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
 なお、図33では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
 また、三次元データ符号化装置は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、三次元データ符号化装置は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
 また、三次元データ符号化装置は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
 次に、点群データをスライス又はタイルに分割する方法の例を説明する。三次元データ符号化装置は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
 スライス分割時には、三次元データ符号化装置は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、三次元データ符号化装置は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、三次元データ符号化装置は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、三次元データ符号化装置は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、三次元データ符号化装置は、一つのオブジェクトを複数のスライスに分割する。
 この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
 また、三次元データ符号化装置は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
 タイル分割時には、三次元データ符号化装置は、位置情報と属性情報とを独立に分割する。例えば、三次元データ符号化装置は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、三次元データ符号化装置は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。三次元データ符号化装置は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。三次元データ符号化装置は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
 例えば、三次元データ符号化装置は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
 また、三次元データ符号化装置は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
 また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、三次元データ符号化装置は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
 なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
 以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
 図34は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
 パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
 パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
 (実施の形態5)
 転送速度、入出力性能、メモリ使用率、及びCPU性能等のハードウェアの制限により、大規模な三次元マップ(ポイントクラウドマップ)の全てを復号し、復号したデータをシステムにロードすることは難しい。これに対して、本実施の形態では、大規模な三次元マップを複数のスライス又はタイルとしてビットストリームに符号化する手法を用いる。これにより、三次元データ復号装置におけるハードウェアへの要求を下げることができ、組み込みシステム又は携帯端末においてリアルタイムでの復号処理を実現できる。
 スライス及びタイルの符号化処理及び復号処理については上述した。しなしながら、上記の手法を実現するために、PCC(Point Cloud Compression)符号化のフォーマット及び復号のフォーマットの両方を不可逆的に変更する必要がある。
 本実施の形態では、スライス及びタイルの符号化のためのSEI(Supplemental Enhancement Information)を用いる。これにより、フォーマットの変更を行なわずに、スライス及びタイルの符号化処理及び復号処理を実現できる。
 本実施の形態では、三次元データ符号化装置は、PCC符号化において、タイル又はスライスのデータを生成するとともに、タイル又はスライスの属性情報(メタデータ)及びデータアクセス情報を含むSEIを生成し、生成したSEIをデータとともに符号化する。
 また、三次元データ復号装置は、PCC復号において、タイル又はスライスの属性情報及びデータアクセス情報を含むSEIに基づき、復号に必要なタイル又はスライスと、そのデータアクセス位置とを特定する。これにより、三次元データ復号装置は、タイル又はスライスを用いた高速な並列復号を実現できる。
 なお、タイル及びスライスの一方が用いられてもよいし、両方が用いられてもよい。
 以下、スライス又はタイルの分割例を説明する。例えば、60km/hrで走行する自動車における三次元データ復号装置では、ハードウェアに16.67m/sの処理能力が要求される。また、長さが約2.2kmの都市部のトンネルのデータをテストストリームとして用いる。このテストストリームをリアルタイム復号するには、このテストストリームを132秒で復号を行う必要がある。また、復号した点群情報を格納するために2GBのメモリが必要である。
 一方で、ビットストリームが20個のスライス又はタイルとして符号化された場合、三次元データ復号装置は、このうちの1個を復号できる。この場合、要求実時間を6.5秒に短縮でき、要求されるメモリを100MBに削減できる。図35は、スライス又はタイル分割を行わない場合(全体)と、20個のスライス又はタイル分割を行う場合における、メモリ、要求実時間、現行の復号時間及び距離の例を示す図である。
 図36は、タイル又はスライス分割の例を示す図である。例えば、固定数の点群データによるクラスタリングを用いて分割が行われる。この手法では、全てのタイルは固定数の点群データを有し、空のタイルは存在しない。この手法では、タイル及び処理負荷を均等にできるという利点がある。一方で、この手法は、データのクラスタリング及び各タイルの世界座標を決定するために、さらなる演算及び情報が必要となる。
 また、スライス又はタイル毎の点群データの数又はビット数に基づくスライス又はタイル分割の代わりに、点群データを効果的に分割する別の手法を用いてもよい。この手法を非均一分割(non uniform division)とも呼ぶ。この手法では、空間の重複を避ける又は最小限にし、同時にクラスタ間の座標関係を提供できるように、位置的に近い点群データをクラスタリングする。
 点群データをクラスタリングする手法として、例えば、8分木分割のカウント数をソートする手法、階層クラスタリング、重心に基づくクラスタリング(k平均法(k means clustering))、分布に基づくクラスタリング、密度に基づくクラスタリング等の複数の手法が存在する。
 8分木分割のカウント数をソートする手法は、実装が容易な手法の一つである。この手法では、点群データはソートされ、カウントされる。そして、点群データの数が固定値に達した場合に、それまでのグループが1つのクラスタに分類される。図37は、この手法の例を示す図である。例えば、図37に示す例では、各点群データの領域の番号が入力される。ここで、領域の番号とは、例えば、8分木における8個のノードの番号である。また、ソートにより同一の番号を有する点群データが抽出され、例えば、同一の番号を有する点群データが一つのスライス又はタイルに割り当てられる。
 次に、スライス又はタイル分割の別の例を説明する。スライス又はタイル分割の手法として、上面視した二次元マップを用いる手法を用いる。三次元データ符号化装置は、ユーザが入力したタイルの数に基づき、バウンディングボックスの最小値及び最大値に応じて区画分けを行う。
 この手法は、三次元データ符号化装置において、追加の演算を行うことなく、点群データの空間を均等に配置できるという利点がある。ただし、点群の密度に応じて多くの領域に点群が含まれない可能性がある。
 図38は、この手法の例を示す図である。図38に示すように、点群データの空間が同じサイズの複数のバウンディングボックスに分割される。
 次に、SEIの構成について説明する。三次元データ復号装置においてスライス又はタイル情報を復号できるようにするために、三次元データ符号化装置は、追加情報を導入する。例えば、三次元データ符号化装置は、PCCのためのSEIを導入してもよい。SEIは、三次元データ符号化装置及び三次元データ復号装置の両方において用いることもできる。
 また、SEIの復号処理に対応していない三次元データ復号装置は、SEIメッセージを含むビットストリームを復号可能である。一方、SEIの復号処理に対応している三次元データ復号装置は、SEIメッセージを含まないビットストリームを復号可能である。
 図39は、PCCのためのSEIを含むビットストリームの構成例を示す図である。図40は、タイル又はスライスのためのSEIに含まれる情報の例を示す図である。図41は、このSEI(Tile_Slice_information_SEI)のシンタックス例を示す図である。
 このSEIは、例えば、ビットストリームのヘッダに含まれる。つまり、このSEIは、複数のタイル又はスライスの符号化データに共通の制御情報に含まれる。また、図40及び図41に示すように、このSEIは、タイルインデックス(Tile idx)又はスライスインデックス(Slice idx)と、領域情報(Area information)と、メモリオフセット(ポインタ)(Memory offset pointerと、グローバル位置情報(Global position information)とを含む。また、このSEIは、タイル又はスライスの符号化又は復号に関連するその他の情報を含んでもよい。また、SEIには、タイルインデックス又はスライスインデックス毎に上記情報が含まれる。なお、SEIは上記情報の少なくとも一部を含んでもよい。
 タイルインデックスは、複数のタイルを識別するための識別子であり、複数のタイルの各々に異なるタイルインデックスの値が割り当てられる。スライスインデックスは、複数のスライスを識別するための識別子であり、複数のスライスの各々に異なるスライスインデックスの値が割り当てられる。また、各タイル又は各スライスの符号化データのヘッダに、当該符号化データに対応するタイル又はスライスのタイルインデックス又はスライスインデックスが付加される。
 領域情報は、タイル又はスライスの空間範囲(領域)を示す情報である。例えば、領域情報は、タイル又はスライスのサイズを示すサイズ情報を含む。メモリオフセットは、タイル又はスライスの符号化データが格納されているメモリの位置(アドレス)を示す情報であり、ビットストリーム内のタイル又はスライスの符号化データの位置(アドレス)を示す情報である。グローバル位置情報は、タイル又はスライスのグローバル位置(例えば世界座標(緯度経度等))を示す情報である。
 また、三次元データ符号化装置は、各タイル又はスライスのバイトアライメント処理等を行う。
 なお、SEIの用途は、スライス又はタイルの符号化に限らず、オプションとしてビットストリームに符号化される他の情報に使用されてもよい。
 また、三次元データ符号化装置は、1つのタイル又は1つのスライスに対し、1つの属性情報(上述した領域情報、アドレス情報(メモリオフセット)及び位置情報(グローバル位置情報)等)を対応させてもよいし、1つのタイル又は1つのスライスに対し複数の属性情報を対応させてもよい。また、三次元データ符号化装置は、複数のタイル又は複数のスライスに対し、1つの属性情報を対応させてもよい。また、三次元データ符号化装置は、タイルとスライスを併用する場合であれば、それぞれに対する属性情報をビットストリームに付加してもよい。また、例えば、三次元データ符号化装置は、領域情報である第1の属性情報と、第1の領域情報と第2の領域情報との関連性を示す第2の属性情報とを生成し、第1の属性情報と第2の属性情報とをSEIに格納してもよい。
 また、図41に示すように、SEIは、タイル又はスライスに対する属性情報(領域情報、アドレス情報及び位置情報)を含んでもよい。例えば、属性情報の番号が規定され、SEIは、属性情報の番号に対応するタイルインデックス又はスライスインデックスを含んでもよい。
 次に、三次元データ復号装置のハードウェア構成の例を説明する。図42は、三次元データ復号装置のハードウェア構成例を示す図である。図42に示すように、三次元データ復号装置は、入力部4501と、ローカライズ部4502と、メモリ管理部4503と、復号部4504と、メモリ4505と、表示部4506とを備える。
 入力部4501は、無線通信等のネットワークを介して外部とのデータの入出力を行う。また、入力部4501は、SSD(Solid State Drive)、HDD(hard disk drive)及びメモリモジュール等のストレージとのデータの入出力を行う。
 ローカライズ部4502は、例えば、GPS(Global Positioning System)、ホイールの向きの検知器、又はジャイロセンサ等であり、三次元データ符号化装置が搭載されている移動体等の位置及び速度等を検知するモジュールである。
 メモリ管理部4503は、メモリ4505を管理する。メモリ管理部4503は、ローカライズ部4502から情報を取得し、取得した情報を用い、SEIを参照して、関連するスライス又はタイルのストリームを読み込み、読み込んだストリームを復号部4504にロードする。
 復号部4504は、スライス又はタイルのストリームを復号し、得られた三次元データをメモリ4505に格納する。メモリ4505は、スライス又はタイルのストリーム及び三次元データを格納する。
 表示部4506は、メモリ4505に格納される三次元データに基づく画像又は映像を表示する。
 次に、スライス又はタイルへのアクセス動作について説明する。PCCストリームは分割され、SEIにその情報が格納される。これにより、三次元データ復号装置は、領域単位でのアクセスを容易に実現できる。メモリ管理部4503は、ローカライズ部4502(例えばGPS)からの情報と、三次元データ復号装置が搭載されている移動体の移動方向等に基づき、必要な領域を判定し、必要な領域(符号化されたスライス又はタイル)のデータをメモリ4505から取得する。
 SEIには、領域情報として、関連するグローバル位置又は地図に関連する相対位置が符号化される。図43及び図44は、スライス又はタイルへのアクセス動作の例を示す図である。この例では、三次元データ復号装置が搭載されている対象物の現在位置は領域Mであると識別される。また、図43及び図44に示すように対象物は、左方向に移動する。この場合、領域F、K及びPは利用可能でない(ロードされていない)ため、これらの領域のデータを復号するために、これらの領域のデータがメモリ管理部4503によりメモリ4505から読み出される。また、他の領域は、移動方向に関連しないため、復号を行う必要はない。
 上記の手法により、復号時間を短縮できるとともに、ハードウェアにおいて必要なメモリ容量を削減できる。
 次に、スライス又はタイルの復号処理のテストの例を説明する。以下、点群データビットストリームの復号におけるSEIのテストについて説明する。図45及び図46は、SEIのテスト動作を示す図である。
 テスト用の点群データビットストリームは、元のPLYフォーマットの点群データを分割し、分割された点群データを個別に符号化することにより生成される。得られた複数のビットストリームが連結されることで1つのファイル(連結したストリーム)が生成される。また、この1つのファイルは、各ビットストリームのファイルサイズを示すテキストフォーマットのSEIとともに送信される。
 復号部4504は、SEIと、メモリ管理部4503からの情報とを用いて、ストリームの一部をロードし、復号できるように変更されている。複数回の観測により、復号時間の上限が、わずかなオーバヘッドで観測される。
 以下、三次元データ符号化装置の動作及び三次元データ復号装置の動作を説明する。図47は、本実施の形態に係る三次元データ符号化装置による三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、タイル又はスライスの要求に対するユーザ設定に基づき、入力された三次元点を含むバウンディングボックスを設定する(S4501)。次に、三次元データ符号化装置は、当該バウンディングボックスを8個の子ノードに分割する(S4502)。
 次に、三次元データ符号化装置は、8個の子ノードのうち三次元点が含まれる子ノードの各々のオキュパンシー符号を生成する(S4503)。次に、三次元データ符号化装置は、処理対象のノードのレベル(木構造の階層)が、対象タイルレベルに到達したか否かを判定する(S4504)。ここで対象タイルレベルとは、タイル分割を行うレベル(木構造の階層)である。
 処理対象のノードのレベルが対象タイルレベルに到達していない場合(S4504でNo)、三次元データ符号化装置は、各子ノードを8個の孫ノードに分割し(S4505)、孫ノードの各々に対してステップS4503以降の処理を行う。
 処理対象のノードのレベルが対象タイルレベルに到達した場合(S4504でYes)、三次元データ符号化装置は、タイルテーブルに現在のノード位置及びタイルレベル(タイルサイズ)を保存する(S4506)。
 次に、三次元データ符号化装置は、各子ノードを8個の孫ノードに分割する(S4507)。次に、三次元データ符号化装置は、オキュパンシー符号を生成する処理を、ノードが分割できなくなるまで繰り返す(S4508)。次に、三次元データ符号化装置は、各タイルのオキュパンシー符号を符号化する(S4509)。
 次に、三次元データ符号化装置は、生成した複数のタイルの符号化ビットストリーム(符号化データ)を結合する(S4510)。また、三次元データ符号化装置は、各符号化ビットストリーム(符号化データ)のサイズを示す情報及びタイルテーブル等をビットストリームのヘッダ情報に付加する。また、三次元データ符号化装置は、各符号化ビットストリーム(符号化データ)が対応するタイル又はスライスの識別子(タイルインデックス又はスライスインデックス)を各符号化ビットストリームのヘッダ情報に付加する。
 ここで、タイルテーブルに、タイルサイズ(タイルレベル)が格納される。よって、三次元データ復号装置は、このタイルサイズを用いて、各タイルのサブツリーのバウンディングボックスのサイズを取得できる。また、三次元データ復号装置は、サブツリーのバウンディングボックスのサイズを用いて、全体の木構造のバウンディングボックスのサイズを算出できる。
 なお、三次元データ符号化装置は、各タイルのバウンディングボックスのサイズをタイルテーブルに格納してもよい。これにより、三次元データ復号装置は、タイルテーブルを参照することで各タイルのバウンディングボックスのサイズを取得できる。
 最後に、三次元データ符号化装置は、ビットストリームにSEIを付加する(S4511)。上述したようにSEIは、各タイル又は各スライスの属性情報(領域情報、アドレス情報及び位置情報等)と、識別子(タイルインデックス又はスライスインデックス)との対応関係を示す一覧を含む。なお、上記タイルテーブルがSEIに含まれてもよい。
 図48は、本実施の形態に係る三次元データ復号装置による三次元データ復号処理のフローチャートである。
 まず、メモリ管理部4503は、SEI(SEIヘッダ)から取得するタイル又はスライスの情報を設定する(S4521)。次に、三次元データ復号装置は、SEI(SEIヘッダ)を参照し、関連するタイル又はスライスにアクセスする(S4522)。
 例えば、メモリ管理部4503は、図43及び図44に示したように、三次元データ復号装置の現在位置及び移動方向に基づき、取得するタイル又はスライスの位置を決定する。または、メモリ管理部4503は、ユーザからの設定に基づき、取得するタイル又はスライスの位置を決定する。次に、メモリ管理部4503は、SEIに含まれる属性情報と識別子(タイルインデックス又はスライスインデックス)との一覧を参照し、決定した位置のタイル又はスライスの識別子を判定する。次に、メモリ管理部4503は、各符号化ビットストリームのヘッダ情報を参照し、判定した識別子が付加されている符号化ビットストリームを復号対象の符号化ビットストリームとして取得する。
 次に、三次元データ復号装置は、ビットストリームに含まれるヘッダ情報を用いて、出力する三次元点を含むバウンディングボックスを設定する(S4523)。次に、三次元データ復号装置は、ビットストリームに含まれるヘッダ情報を用いて各タイル(サブツリー)のルート位置を設定する(S4524)。
 次に、三次元データ復号装置は、当該バウンディングボックスを8個の子ノードに分割する(S4525)。次に、三次元データ復号装置は、各ノードのオキュパンシー符号を復号し、復号したオキュパンシー符号に基づきノードを8個の子ノードに分割する。また、三次元データ復号装置は、この処理を、各タイル(サブツリー)のノードが分割できなくなるまで繰り返す(S4526)。
 最後に、三次元データ復号装置は、復号した複数のタイルの三次元点を結合する(S4527)。
 図49は、本実施の形態に係る三次元データ符号化装置4510の構成を示すブロック図である。三次元データ符号化装置4510は、8分木生成部4511と、タイル分割部4512と、複数のエントロピー符号化部4513と、ビットストリーム生成部4514と、SEI処理部4515を備える。
 対象タイルレベルが三次元データ符号化装置4510に入力される。三次元データ符号化装置4510は、当該対象タイルレベルに処理が到達した後、各タイルのオキュパンシー符号化を格納し、複数のタイルのオキュパンシー符号を個別に符号化することで各タイルの符号データを生成する。
 8分木生成部4511は、バウンディングボックスを設定し、バウンディングボックスを8個の子ノードに分割する。また、8分木生成部4511は、この分割処理を、処理が対象タイルレベルに到達するまで繰り返す。また、得られた情報は解析され、SEI処理部4515に送られる。
 タイル分割部4512は、タイルを設定する。具体的には、上記処理が対象タイルレベルに到達した場合に、当該レベルをルートとする複数のタイルを設定する。
 複数のエントロピー符号化部4513は、複数のタイルを個別に符号化する。ビットストリーム生成部4514は、複数のタイルが符号化された符号化データを結合することでビットストリームを生成する。
 SEI処理部4515は、SEIを生成し、生成したSEIをビットストリームに書き込む。
 図50は、本実施の形態に係る三次元データ復号装置4520の構成を示すブロック図である。三次元データ復号装置4520は、SEI処理部4521と、8分木生成部4522と、ビットストリーム分割部4523と、複数のエントロピー復号部4524と、三次元点結合部4525とを備える。
 SEI処理部4521は、SEIを参照し、どのデータを読み出し、処理するかを決定する。また、決定結果がビットストリーム分割部4523に送られる。
 8分木生成部4522は、バウンディングボックスを設定し、バウンディングボックスを8個の子ノードに分割する。また、8分木生成部4522は、この分割処理を、処理が対象タイルレベルに到達するまで繰り返す。
 ビットストリーム分割部4523は、ビットストリームに含まれるヘッダ情報を用いて、ビットストリームを各タイルの符号化データに分割する。また、SEI処理部4521からの情報に基づき、復号処理を行うタイルの符号化データをエントロピー復号部4524に送る。
 複数のエントロピー復号部4524は、複数のタイルを個別に復号する。三次元点結合部4525は、復号された複数のタイルの三次元点を結合する。なお、復号された三次元点がアプリケーションにおいて直接使用される場合もある。このような場合には、この結合処理はスキップされる。
 なお、タイル又はスライスの属性情報(識別子、領域情報、アドレス情報及び位置情報等)は、SEIに限らず、その他の制御情報に格納されてもよい。例えば、属性情報は、PCCデータ全体の構成を示す制御情報に格納されてもよいし、タイル又はスライス毎の制御情報に格納されてもよい。
 また、三次元データ符号化装置(三次元データ送信装置)は、PCCデータを他のデバイスに伝送する際には、SEI等の制御情報を、そのシステムのプロトコルに特有の制御情報に変換して示してもよい。
 例えば、三次元データ符号化装置は、属性情報を含むPCCデータを、ISOBMFF(ISO Base Media File Format)に変換する際に、SEIをPCCデータとともに「mdat box」に格納してもよいし、ストリームに関する制御情報を記載する「track box」に格納してもよい。つまり、三次元データ符号化装置は、制御情報を、ランダムアクセスのためのテーブルに格納してもよい。また、三次元データ符号化装置は、PCCデータをパケット化して伝送する場合には、SEIをパケットヘッダに格納してもよい。このように、属性情報をシステムのレイヤで取得可能にすることにより、属性情報、及びタイルデータ又はスライスデータへのアクセスが容易となり、アクセスの速度を向上できる。
 なお、図42に示す三次元データ復号装置の構成において、メモリ管理部4503は、復号処理に必要な情報がメモリ4505にあるか否かを予め判定し、復号処理に必要な情報がなければ、当該情報をストレージ又はネットワークから取得してもよい。
 三次元データ復号装置が、ストレージ又はネットワークからPCCデータをMPEG-DASHなどのプロトコルにおけるPullを用いて取得する場合は、メモリ管理部4503は、ローカライズ部4502などからの情報に基づき、復号処理に必要なデータの属性情報を特定し、特定した属性情報を含むタイル又はスライスを要求し、必要なデータ(PCCストリーム)を取得してもよい。属性情報を含むタイル又はスライスの特定は、ストレージ又はネットワーク側で行われてもよいし、メモリ管理部4503が行ってもよい。例えば、メモリ管理部4503は、予め全てのPCCデータのSEIを取得しておき、その情報に基づき、タイル又はスライスを特定してもよい。
 ストレージ又はネットワークから全てのPCCデータがUDPプロトコルなどにおいてPushを用いて送信されている場合は、メモリ管理部4503は、ローカライズ部4502などからの情報に基づき、復号処理に必要なデータの属性情報、及びタイル又はスライスを特定し、送出されるPCCデータから所望のタイル又はスライスをフィルタリングすることで、所望のデータを取得してもよい。
 また、三次元データ符号化装置は、データの取得の際に、所望のデータがあるか否か、又はデータサイズ等に基づき実時間での処理が可能か否か、又は通信状態等を判定してもよい。三次元データ符号化装置は、この判定結果に基づき、データ取得が困難であると判断した場合は、優先度又はデータ量の異なる別のスライス又はタイルを選択して取得してもよい。
 また、三次元データ復号装置は、ローカライズ部4502などからの情報をクラウドサーバへ送信し、クラウドサーバが、その情報に基づき必要な情報を判定してもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図51に示す処理を行う。三次元データ符号化装置は、複数の三次元点が含まれる対象空間に含まれる複数のサブ空間(例えばタイル又はスライス)を符号化することで複数のサブ空間に対応する複数の符号化データを含むビットストリームを生成する。
 三次元データ符号化装置は、ビットストリームの生成では、ビットストリームに含まれる、複数の符号化データに共通の第1制御情報(例えばSEI)に、複数のサブ空間に割り当てられた複数の識別子(例えばタイルインデックス又はスライスインデックス)に対応づけられた複数のサブ空間の情報(例えば位置情報又はサイズ情報)の一覧を格納する(S4531)。三次元データ符号化装置は、複数の符号化データの各々のヘッダ(例えばタイルヘッダ又はスライスヘッダ)に、当該符号化データに対応するサブ空間に割り当てられた識別子を格納する(S4532)。
 これによれば、三次元データ復号装置は、当該三次元データ符号化装置で生成されたビットストリームを復号する際に、第1制御情報に格納された複数の識別子に対応づけられた前記複数のサブ空間の情報の一覧と、複数の符号化データの各々のヘッダに格納された識別子とを参照して、所望の符号化データを取得できる。よって、三次元データ復号装置の処理量を低減できる。
 例えば、ビットストリームにおいて、第1制御情報は、複数の符号化データの前に配置される。
 例えば、前記一覧は、複数のサブ空間の位置情報(例えばグローバル位置又は相対位置)を含む。例えば、前記一覧は、複数のサブ空間のサイズ情報を含む。
 例えば、三次元データ符号化装置は、第1制御情報を、ビットストリームの送信先のシステムのプロトコルにおける第2制御情報に変換する。
 これによれば、当該三次元データ符号化装置は、ビットストリームの送信先のシステムのプロトコルに応じて、制御情報を変換できる。
 例えば、第2制御情報は、前記プロトコルにおけるランダムアクセスのためのテーブルである。例えば、第2制御情報は、ISOBMFFにおけるmdat box又はtrack boxである。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図52に示す処理を行う。まず、三次元データ復号装置は、複数の三次元点が含まれる対象空間に含まれる複数のサブ空間(例えばタイル又はスライス)を符号化することで得られた、複数のサブ空間に対応する複数の符号化データを含むビットストリームを復号する。
 三次元データ復号装置は、ビットストリームの復号では、複数のサブ空間のうち復号対象のサブ空間を決定する(S4541)。三次元データ復号装置は、ビットストリームに含まれる、複数の符号化データに共通の第1制御情報(例えばSEI)に含まれる、複数のサブ空間に割り当てられた複数の識別子(例えばタイルインデックス又はスライスインデックス)に対応づけられた複数のサブ空間の情報(例えば位置情報又はサイズ情報)の一覧と、複数の符号化データの各々のヘッダ(例えばタイルヘッダ又はスライスヘッダ)に含まれる当該符号化データに対応するサブ空間に割り当てられた識別子とを用いて、復号対象のサブ空間の符号化データを取得する(S4542)。
 これによれば、当該三次元データ復号装置は、第1制御情報に格納された複数の識別子に対応づけられた複数のサブ空間の情報の一覧と、複数の符号化データの各々のヘッダに格納された識別子とを参照して、所望の符号化データを取得できる。よって、三次元データ復号装置の処理量を低減できる。
 例えば、ビットストリームにおいて、第1制御情報は、複数の符号化データの前に配置される。
 例えば、前記一覧は、複数のサブ空間の位置情報(例えばグローバル位置又は相対位置)を含む。例えば、前記一覧は、複数のサブ空間のサイズ情報を含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態6)
 以下、タイル分割後にスライス分割を行う例について説明する。車両の自動運転等の自律型のアプリケーションでは、全ての領域の点群データではなく、車両の周辺の領域、又は車両の進行方向の地域の点群データが必要である。ここで、元の点群データを選択的に復号するためにタイル及びスライスを用いることができる。三次元点群データをタイルに分割し、さらにスライスを分割することで、符号化効率の向上、又は並列処理を実現できる。データを分割する際には、付加情報(メタデータ)が生成され、生成された付加情報は、多重化部に送られる。
 図53は、タイル付加情報(TileMetaData)のシンタックス例を示す図である。図53に示すように、例えば、タイル付加情報は、分割方法情報(type_of_divide)と、形状情報(topview_shape)と、重複フラグ(tile_overlap_flag)と、重複情報(type_of_overlap)と、高さ情報(tile_height)と、タイル数(tile_number)と、タイル位置情報(global_position、relative_position)と、を含む。
 分割方法情報(type_of_divide)は、タイルの分割方法を示す。例えば、分割方法情報は、タイルの分割方法が、地図の情報に基づいた分割であるか、つまり上面視に基づく分割(top_view)であるか、それ以外(other)であるかを示す。
 形状情報(topview_shape)は、例えば、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。形状情報は、タイルを上面視した形状を示す。例えば、この形状は、正方形及び円を含む。なお、この形状は、楕円、矩形又は四角形以外の多角形を含んでもよいし、それ以外の形状を含んでもよい。なお、形状情報は、タイルを上面視した形状に限らず、タイルの三次元形状(例えば、立方体及び円柱等)を示してもよい。
 重複フラグ(tile_overlap_flag)は、タイルが重複するか否かを示す。例えば、重複フラグは、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。この場合、重複フラグは、上面視において、タイルが重複するか否かを示す。なお、重複フラグは、三次元空間においてタイルが重複するか否かを示してもよい。
 重複情報(type_of_overlap)は、例えば、タイルが重複する場合に、タイル付加情報に含まれる。重複情報は、タイルの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
 高さ情報(tile_height)は、タイルの高さを示す。なお、高さ情報は、タイルの形状を示す情報を含んでもよい。例えば、当該情報は、タイルの上面視における形状が矩形の場合には、当該の矩形の辺の長さ(縦の長さ及び横の長さ)を示してもよい。また、当該情報は、タイルの上面視における形状が円の場合には、当該円の直径又は半径を示してもよい。
 また、高さ情報は、各タイルの高さを示してもよし、複数のタイルで共通の高さを示してもよい。また、予め道路及び立体交差部分等の複数の高さタイプが設定され、高さ情報により、各高さタイプの高さと、各タイルの高さタイプとが示されてもよい。または、各高さタイプの高さは予め定義されており、高さ情報により、各タイルの高さタイプが示されてもよい。つまり、各高さタイプの高さは、高さ情報で示されなくてもよい。
 タイル数(tile_number)は、タイルの数を示す。なお、タイル付加情報は、タイルの間隔を示す情報を含んでもよい。
 タイル位置情報(global_position、relative_position)は、各タイルの位置を特定するための情報である。例えば、タイル位置情報は、各タイルの絶対座標又は相対座標を示す。
 なお、上記の情報の一部又は全ては、タイル毎に設けられてもよいし、複数のタイル毎(例えばフレーム毎又は複数フレーム毎)に設けられてもよい。
 三次元データ符号化装置は、タイル付加情報を、SEI(Supplemental Enhancement Information)に含めて送出してもよい。または、三次元データ符号化装置は、タイル付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
 例えば、タイル付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にタイル付加情報が格納されてもよい。シーケンス内でタイル付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にタイル付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じタイル分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にタイル付加情報が格納されてもよい。
 また、タイル付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル付加情報は、符号化データのヘッダに格納されてもよい。また、タイル付加情報は、NALユニットのヘッダに格納されてもよい。
 また、タイル付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のタイル付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにタイル付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのタイル付加情報が含まれ、属性情報のヘッダにはタイル付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のタイルと同一のタイルに依存元の属性情報が属すると判断する。
 三次元データ復号装置は、タイル付加情報に基づき、タイル分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
 また、三次元データ復号装置は、タイル付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のタイルが重複する場合は、タイル毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング等)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
 図54は、三次元データ符号化装置及び三次元データ復号装置を含むシステムの構成例を示す図である。タイル分割部5051は、位置情報及び属性情報を含む点群データを第1タイルと第2タイルとに分割する。また、タイル分割部5051は、タイル分割に係るタイル付加情報を復号部5053及びタイル結合部5054に送る。
 符号化部5052は、第1タイル及び第2タイルを符号化することで符号化データを生成する。
 復号部5053は、符号化部5052で生成された符号化データを復号することで第1タイル及び第2タイルを復元する。タイル結合部5054は、タイル付加情報を用いて、第1タイル及び第2タイルを結合することで点群データ(位置情報及び属性情報)を復元する。
 次に、スライス付加情報について説明する。三次元データ符号化装置は、スライスの分割方法に関するメタデータであるスライス付加情報を生成し、生成したスライス付加情報を三次元データ復号装置に送信する。
 図55は、スライス付加情報(SliceMetaData)のシンタックス例を示す図である。図55に示すように、例えば、スライス付加情報は、分割方法情報(type_of_divide)と、重複フラグ(slice_overlap_flag)と、重複情報(type_of_overlap)と、スライス数(slice_number)と、スライス位置情報(global_position、relative_position)と、スライスサイズ情報(slice_bounding_box_size)とを含む。
 分割方法情報(type_of_divide)は、スライスの分割方法を示す。例えば、分割方法情報は、スライスの分割方法が、図78で示すようなオブジェクトの情報に基づいた分割である(object)か否かを示す。なお、スライス付加情報は、オブジェクト分割の方法を示す情報を含んでもよい。例えば、この情報は、1つのオブジェクトを複数のスライスに分割するか、1つのスライスに割り当てるかを示す。また、この情報は、1つのオブジェクトを複数のスライスに分割する場合の分割数等を示してもよい。
 重複フラグ(slice_overlap_flag)は、スライスが重複するか否かを示す。重複情報(type_of_overlap)は、例えば、スライスが重複する場合に、スライス付加情報に含まれる。重複情報は、スライスの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
 スライス数(slice_number)は、スライスの数を示す。
 スライス位置情報(global_position、relative_position)、及びスライスサイズ情報(slice_bounding_box_size)は、スライスの領域に関する情報である。スライス位置情報は、各スライスの位置を特定するための情報である。例えば、スライス位置情報は、各スライスの絶対座標又は相対座標を示す。スライスサイズ情報(slice_bounding_box_size)は、各スライスのサイズを示す。例えば、スライスサイズ情報は、各スライスのバウンディングボックスのサイズを示す。
 三次元データ符号化装置は、スライス付加情報をSEIに含めて送出してもよい。または、三次元データ符号化装置は、スライス付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
 例えば、スライス付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にスライス付加情報が格納されてもよい。シーケンス内でスライス付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にスライス付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じスライス分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にスライス付加情報が格納されてもよい。
 また、スライス付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、スライス付加情報は、符号化データのヘッダに格納されてもよい。また、スライス付加情報は、NALユニットのヘッダに格納されてもよい。
 また、スライス付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のスライス付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにスライス付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのスライス付加情報が含まれ、属性情報のヘッダにはスライス付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライスと同一のスライスに依存元の属性情報が属すると判断する。
 三次元データ復号装置は、スライス付加情報に基づき、スライス分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
 また、三次元データ復号装置は、スライス付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のスライスが重複する場合は、スライス毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
 図56は、本実施の形態に係る三次元データ符号化装置による、タイル付加情報の生成処理を含む三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、タイルの分割方法を決定する(S5031)。具体的には、三次元データ符号化装置は、タイルの分割方法として、上面視に基づく分割方法(top_view)を用いるか、それ以外(other)を用いるかを決定する。また、三次元データ符号化装置は、上面視に基づく分割方法を用いる場合のタイルの形状を決定する。また、三次元データ符号化装置は、タイルが他のタイルと重複するか否かを決定する。
 ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法である場合(S5032でYes)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)であることをタイル付加情報に記載する(S5033)。
 一方、ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法以外である場合(S5032でNo)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)以外の方法であることをタイル付加情報に記載する(S5034)。
 また、ステップS5031で決定した、タイルを上面視した形状が正方形である場合(S5035で正方形)、三次元データ符号化装置は、タイルを上面視した形状が正方形であることをタイル付加情報に記載する(S5036)。一方、ステップS5031で決定した、タイルを上面視した形状が円である場合(S5035で円)、三次元データ符号化装置は、タイルを上面視した形状が円であることをタイル付加情報に記載する(S5037)。
 次に、三次元データ符号化装置は、タイルが他のタイルと重複するかを判定する(S5038)。タイルが他のタイルと重複している場合(S5038でYes)、三次元データ符号化装置は、タイルが重複していることをタイル付加情報に記載する(S5039)。一方、タイルが他のタイルと重複していない場合(S5038でNo)、三次元データ符号化装置は、タイルが重複していないことをタイル付加情報に記載する(S5040)。
 次に、三次元データ符号化装置は、ステップS5031で決定したタイルの分割方法に基づきタイルを分割し、各タイルを符号化し、生成された符号化データ及びタイル付加情報を送出する(S5041)。
 図57は、本実施の形態に係る三次元データ復号装置による、タイル付加情報を用いた三次元データ復号処理のフローチャートである。
 まず、三次元データ復号装置は、ビットストリームに含まれるタイル付加情報を解析する(S5051)。
 タイル付加情報によりタイルが他のタイルと重複していないことが示される場合(S5052でNo)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する(S5053)。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法及びタイルの形状に基づき、各タイルの点群データから点群データを再構成する(S5054)。
 一方、タイル付加情報によりタイルが他のタイルと重複していることが示される場合(S5052でYes)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する。また、三次元データ復号装置は、タイル付加情報に基づき、タイルの重複部分を特定する(S5055)。なお、三次元データ復号装置は、重複部分については重複する複数の情報を用いて復号処理を行ってもよい。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法、タイルの形状、及び重複情報に基づき、各タイルの点群データから点群データを再構成する(S5056)。
 以下、スライスに関する変形例等を説明する。三次元データ符号化装置は、オブジェクトの種類(道、建物、木等)又は属性(動的情報、静的情報等)を示す情報を付加情報として送信してもよい。または、オブジェクトに応じて符号化のパラメータが予め規定され、三次元データ符号化装置は、オブジェクトの種類又は属性を送出することにより符号化パラメータを三次元データ復号装置へ通知してもよい。
 スライスデータの符号化順及び送出順について以下の方法を用いてもよい。例えば、三次元データ符号化装置は、オブジェクトの認識又はクラスタリングが容易なデータから順にスライスデータを符号化してもよい。または、三次元データ符号化装置は、早くクラスタリングが終わったスライスデータから順に符号化を行ってもよい。また、三次元データ符号化装置は、符号化されたスライスデータから順に送出してもよい。または、三次元データ符号化装置は、アプリケーションにおいて復号の優先度の高い順にスライスデータを送出してもよい。例えば、動的情報の復号の優先度が高い場合には、三次元データ符号化装置は、動的情報でグループ化されたスライスから順にスライスデータを送出してもよい。
 また、三次元データ符号化装置は、符号化データの順番と、復号の優先度の順番とが異なる場合には、符号化データを並び替えた後に送出してもよい。また、三次元データ符号化装置は、符号化データを蓄積する際には、符号化データを並び替えた後に蓄積してもよい。
 アプリケーション(三次元データ復号装置)は、所望のデータを含むスライスの送出をサーバ(三次元データ符号化装置)に要求する。サーバはアプリケーションが必要とするスライスデータを送出し、不要なスライスデータは送出しなくてもよい。
 アプリケーションは、所望のデータを含むタイルの送出をサーバに要求する。サーバはアプリケーションが必要とするタイルデータを送出し、不要なタイルデータは送出しなくてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図58に示す処理を行う。まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル)を符号化することで複数の符号化データを生成する(S5061)。三次元データ符号化装置は、前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報(例えばtopview_shape)とを含むビットストリームを生成する(S5062)。
 これによれば、三次元データ符号化装置は、複数種類のサブ空間の形状から任意の形状を選択できるので符号化効率を向上できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である。例えば、前記形状は、前記複数のサブ空間を上面視した形状である。つまり、第1情報は、サブ空間を特定の方向(例えば上方向)から見た形状を示す。言い換えると、第1情報は、サブ空間を俯瞰した形状を示す。例えば、前記形状は、矩形又は円である。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報(例えばtile_overlap_flag)を含む。
 これによれば、三次元データ符号化装置は、サブ空間を重複させることができるので、サブ空間の形状を複雑にすることなくサブ空間を生成できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報(例えばtype_of_divide)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報(例えばtile_height)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報(例えばglobal_position又はrelative_position)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報(例えばtile_number)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図59に示す処理を行う。まず、三次元データ復号装置は、ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル)が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元する(S5071)。三次元データ復号装置は、前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報(例えばtopview_shape)を用いて前記複数のサブ空間を結合することで前記対象空間を復元する(S5072)。例えば、三次元データ復号装置は、第1情報を用いて、複数のサブ空間の形状を認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。これにより、三次元データ復号装置は、複数のサブ空間を正しく結合できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である。例えば、前記形状は、矩形又は円である。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報(例えばtile_overlap_flag)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第2情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第2情報を用いて、サブ空間が重複している否かを判定する。三次元データ復号装置は、サブ空間が重複している場合には、重複領域を特定し、特定した重複領域に対しては、所定の対応を行う。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報(例えばtype_of_divide)を含む。三次元データ復号装置は、前記第3情報により、前記複数のサブ区間の分割方法が上面視を用いた分割方法であることが示される場合、前記第1情報を用いて前記複数のサブ空間を結合する。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報(例えばtile_height)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第4情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第4情報を用いて、複数のサブ空間の高さを認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報(例えばglobal_position又はrelative_position)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第5情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第5情報を用いて、複数のサブ空間の位置を認識することで、各サブ空間の対象空間内の位置を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置に基づき複数のサブ空間を結合できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報(例えばtile_number)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第6情報をさらに用いて前記複数のサブ空間を結合する。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含む。三次元データ復号装置は、前記対象空間の復元では、前記第7情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第7情報を用いて、複数のサブ空間の間隔を認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態7)
 本実施の形態では、点を含まない分割単位(例えばタイル又はスライス)の処理について説明する。まず、点群データの分割方法について説明する。
 HEVCなどの動画像符号化規格では、二次元画像の全ての画素に対してデータが存在するため、二次元空間を複数のデータ領域に分割した場合であっても、全てのデータ領域にデータが存在する。一方、三次元点群データの符号化では、点群データの要素である点自体がデータであり、一部の領域にデータが存在しない可能性がある。
 点群データを空間的に分割する方法は様々あるが、分割したデータ単位である分割単位(例えばタイル又はスライス)が常に1以上の点データを含むかどうかで分割方法を分類できる。
 複数の分割単位の全てに、1以上の点データを含む分割方法を第1分割方法と呼ぶ。第1分割方法として、例えば、点群データを、符号化の処理時間、又は符号化データのサイズを意識して分割する方法がある。この場合、各分割単位で点の数がおおよそ均等となる。
 図60は、分割方法の例を示す図である。例えば、第1分割方法として、図60の(a)に示すように、同一の空間に属する点を2つの同一の空間に分割する方法を用いてもよい。また、図60の(b)に示すように、各分割単位が点を含むように、空間を複数のサブ空間(分割単位)に分割してもよい。
 これらの方法は、点を意識した分割であるため、常に全ての分割単位に1以上の点が含まれる。
 複数の分割単位に、点データを含まない分割単位が1以上含まれる可能性のある分割方法を第2分割方法と呼ぶ。例えば、第2分割方法として、図60の(c)に示すように、空間を均等に分割する方法を用いることができる。この場合、分割単位に点が存在するとは限らない。つまり、分割単位に点が存在しない場合がある。
 三次元データ符号化装置は、点群データを分割する場合、(1)複数の分割単位の全てに1以上の点データを含む分割方法が用いられたか、(2)複数の分割単位に、点データを含まない分割単位が1以上ある分割方法が用いられたか、(3)複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法が用いられたかを、分割に係る付加情報(メタデータ)である分割付加情報(例えばタイル付加情報又はスライス付加情報)に示し、当該分割付加情報を送出してもよい。
 なお、三次元データ符号化装置は、上記の情報を、分割方法のタイプとして示してもよい。また、三次元データ符号化装置は、予め定められた分割方法で分割を行い、分割付加情報を送出しなくてもよい。その場合は、三次元データ符号化装置は、分割方法が、第1分割方法であるか、第2分割方法であるかを予め明示する。
 以下、第2分割方法、及び符号化データの生成並びに送出の例を説明する。なお、以降、三次元空間の分割方法として、タイル分割を例に説明するが、タイル分割でなくてもよく、タイルとは別の分割単位の分割方法にも以下の手法を適用できる。例えば、タイル分割をスライス分割と読み替えてもよい。
 図61は、点群データを6個のタイルに分割する例を示す図である。図61は、最小単位が点である例を示しており、位置情報(Geometry)と属性情報(Attribute)とを一緒に分割する例を示している。なお、位置情報と属性情報とを個別の分割方法又は分割数で分割する場合、属性情報がない場合、及び、属性情報が複数ある場合も同様である。
 図61に示す例では、タイル分割後に、タイル内に点を含むタイル(#1、#2、#4、#6)と、タイル内に点を含まないタイル(#3、#5)とが存在する。タイル内に点を含まないタイルをヌルタイルと呼ぶ。
 なお、6個のタイルに分割する場合に限らず、いかなる分割の方法が用いられてもよい。例えば、分割単位は、立方体であってもよいし、直方体又は円柱など立方体でない形状であってもよい。複数の分割単位は同一形状であってもよいし、異なる形状が含まれてもよい。また、分割の方法として、予め定められた方法が用いられてもよいし、所定の単位(例えばPCCフレーム)毎に異なる方法が用いられてもよい。
 本分割方法において、点群データをタイルに分割した場合に、タイル内にデータがない場合、当該タイルがヌルタイルであることを示す情報を含むビットストリームが生成される。
 以降、ヌルタイルの送出方法、及びヌルタイルのシグナリング方法について説明する。三次元データ符号化装置は、データ分割に関する付加情報(メタデータ)として、例えば、以下の情報を生成し、生成された情報を送出してもよい。図62は、タイル付加情報(TileMetaData)のシンタックス例を示す図である。タイル付加情報は、分割方法情報(type_of_divide)と、分割方法ヌル情報(type_of_divide_null)と、タイル分割数(number_of_tiles)と、タイルヌルフラグ(tile_null_flag)とを含む。
 分割方法情報(type_of_divide)は、分割方法又は分割種別に関する情報である。例えば、分割方法情報は、1又は複数の分割方法又は分割種別を示す。例えば、分割方法としては、上面視(top_view)分割、及び均等分割などがある。なお、分割方法の定義が1個の場合は、タイル付加情報に分割方法情報が含まれなくてもよい。
 分割方法ヌル情報(type_of_divide_null)は、使用される分割方法が、下記第1分割方法であるか第2分割方法であるかを示す情報である。ここで、第1分割方法とは、複数の分割単位の全てに、常にそれぞれ1以上の点データが含まれる分割方法である。第2分割方法とは、複数の分割単位に、点データを含まない分割単位が1以上存在する分割方法、又は、複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法である。
 また、タイル付加情報は、タイル全体の分割情報として、(1)タイルの分割数を示す情報(タイル分割数(number_of_tiles))、又はタイルの分割数を特定するための情報、(2)ヌルタイルの数を示す情報、又はヌルタイルの数を特定するための情報、及び、(3)ヌルタイル以外のタイルの数を示す情報、又はヌルタイル以外のタイルの数を特定するための情報、のうち少なくとも一つを含んでもよい。また、タイル付加情報は、タイル全体の分割情報として、タイルの形を示す、又はタイルが重複するか否かを示す情報を含んでもよい。
 また、タイル付加情報は、タイル毎の分割情報を順に示す。例えば、タイルの順序は、分割方法毎に予め定められており、三次元データ符号化装置及び三次元データ復号装置において既知である。なお、タイルの順序を予め定めない場合には、三次元データ符号化装置は、順序を示す情報を三次元データ復号装置に送出してもよい。
 タイル毎の分割情報は、タイル内にデータ(点)が存在するか否かを示すフラグであるタイルヌルフラグ(tile_null_flag)を含む。なお、タイル内にデータがない場合に、タイル分割情報として、タイルヌルフラグが含まれてもよい。
 また、タイルがヌルタイルでない場合には、タイル付加情報は、タイル毎の分割情報(位置情報(例えば原点の座標(origin_x、origin_y、origin_z))、及びタイルの高さ情報など)を含む。また、タイルがヌルタイルである場合には、タイル付加情報は、タイル毎の分割情報を含まない。
 例えば、タイル毎の分割情報に、タイル毎のスライス分割の情報を格納する場合、三次元データ符号化装置は、付加情報に、ヌルタイルのスライス分割の情報を格納しなくてもよい。
 なお、この例では、タイル分割数(number_of_tiles)は、ヌルタイルを含めたタイルの数を示す。図63は、タイルのインデックス情報(idx)の例を示す図である。図63に示す例では、インデックス情報は、ヌルタイルにも割り当てられる。
 次に、ヌルタイルを含む符号化データのデータ構成及び送出方法について説明する。図64~図66は、6個のタイルに位置情報及び属性情報を分割する場合において、3番目及び5番目のタイルにデータが存在しない場合のデータ構造を示す図である。
 図64は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、同図において、Gtn(nは1~6)は、タイル番号nの位置情報を示し、Atnは、タイル番号nの属性情報を示す。Mtileは、タイル付加情報を示す。
 図65は、三次元データ符号化装置から送出される符号化データである送出データの構成例を示す図である。また、図66は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
 図66に示すように、位置情報(分割位置情報)及び属性情報(分割属性情報)のデータのヘッダ内には、それぞれタイルのインデックス情報(tile_idx)が含まれる。
 また、図65の構造1に示すように、三次元データ符号化装置は、ヌルタイルを構成する位置情報又は属性情報は送出しなくてもよい。または、図65の構造2に示すように、三次元データ符号化装置は、ヌルタイルのデータとして当該タイルがヌルタイルであることを示す情報を送出してもよい。例えば、三次元データ符号化装置は、NALユニットのヘッダ、又は、NALユニットのペイロード(nal_unit_payload)内のヘッダに格納されるtile_typeに当該データのタイプがヌルタイルであることを記載し、当該ヘッダを送出してもよい。なお、以降では構造1を前提に説明を行う。
 構造1では、ヌルタイルが存在する場合、送出データにおいて、位置情報データ又は属性情報データのヘッダに含まれるタイルのインデックス情報(tile_idx)の値は、歯抜けとなり連続しない。
 また、三次元データ符号化装置は、データ間に依存関係がある場合、参照先のデータが参照元のデータより先に復号できるように送出する。なお、属性情報のタイルは位置情報のタイルに対して依存関係がある。依存関係がある属性情報と位置情報には同一のタイルのインデックス番号が付加される。
 なお、タイル分割に係るタイル付加情報は、位置情報のパラメータセット(GPS)、及び属性情報のパラメータセット(APS)の両方に格納されてもよいし、いずれか一方に格納されてもよい。GPS及びAPSの一方にタイル付加情報が格納される場合、GPS及びAPSの他方には、参照先のGPS又はAPSを示す参照情報が格納されてもよい。また、位置情報と属性情報とでタイル分割方法が異なる場合は、GPSとAPSとのそれぞれに異なるタイル付加情報が格納される。また、タイル分割の方法がシーケンス(複数PCCフレーム)で同一の場合は、GPS、APS又はSPS(シーケンスパラメータセット)にタイル付加情報が格納されてもよい。
 例えば、GPSとAPSとの両方にタイル付加情報が格納される場合、GPS内には位置情報のタイル付加情報が格納され、APS内には属性情報のタイル付加情報が格納される。また、SPSなどの共通の情報にタイル付加情報が格納される場合には、位置情報と属性情報で共通に用いられるタイル付加情報が格納されてもよいし、位置情報のタイル付加情報と属性情報のタイル付加情報とがそれぞれ格納されてもよい。
 以下、タイル分割とスライス分割との組み合わせについて説明する。まず、スライス分割後にタイル分割を行う場合のデータ構成及びデータ送出について説明する。
 図67は、スライス分割後にタイル分割を行う場合の各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
 また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gs1は、スライス番号1の位置情報を示し、Gs2は、スライス番号2の位置情報を示す。Gs1t1は、スライス番号1かつタイル番号1の位置情報を示し、Gs2t2は、スライス番号2かつタイル番号2の位置情報を示す。同様に、As1は、スライス番号1の属性情報を示し、As2は、スライス番号2の属性情報を示す。As1t1は、スライス番号1かつタイル番号1の属性情報を示し、As2t1は、スライス番号2かつタイル番号1の属性情報を示す。
 Msliceは、スライス付加情報を示し、MGtileは、位置タイル付加情報を示し、MAtileは、属性タイル付加情報を示す。Ds1t1は属性情報As1t1の依存関係情報を示し、Ds2t1は属性情報As2t1の依存関係情報を示す。
 三次元データ符号化装置は、ヌルタイルに係る位置情報及び属性情報の生成及び送出を行わなくてもよい。
 また、全てのスライスにおいて、タイル分割数が同一である場合でも、スライス間で生成及び送出されるタイルの数は異なる可能性がある。例えば、位置情報と属性情報とのタイル分割数が異なる場合、位置情報と属性情報とのいずれか一方にヌルタイルが存在し、他方に存在しない場合がある。図67に示す例では、スライス1の位置情報(Gs1)は、Gs1t1とGs1t2との2つのタイルに分割され、このうちGs1t2がヌルタイルである。一方、スライス1の属性情報(As1)は分割されず一つのAs1t1が存在し、ヌルタイルは存在しない。
 また、三次元データ符号化装置は、位置情報のスライスにヌルタイルが含まれているか否かに係らず、少なくとも属性情報のタイルにデータが存在する場合、属性情報の依存関係情報を生成及び送出する。例えば、三次元データ符号化装置は、スライス分割に係るスライス付加情報に含まれるスライス毎の分割情報に、タイル毎のスライス分割の情報を格納する場合、この情報に当該タイルがヌルタイルであるか否かの情報を格納する。
 図68は、データの復号順の例を示す図である。図68の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
 次に、タイル分割後にスライス分割を行う場合のデータ構成及びデータ送出について説明する。
 図69は、タイル分割後にスライス分割を行う場合の各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
 また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gt1は、タイル番号1の位置情報を示す。Gt1s1は、タイル番号1かつスライス番号1の位置情報を示し、Gt1s2は、タイル番号1かつスライス番号2の位置情報を示す。同様に、At1は、タイル番号1の属性情報を示し、At1s1は、タイル番号1かつスライス番号1の属性情報を示す。
 Mtileは、タイル付加情報を示し、MGsliceは、位置スライス付加情報を示し、MAsliceは、属性スライス付加情報を示す。Dt1s1は属性情報At1s1の依存関係情報を示し、Dt2s1は属性情報At2s1の依存関係情報を示す。
 三次元データ符号化装置は、ヌルタイルをスライス分割しない。また、ヌルタイルに係る位置情報、属性情報、及び属性情報の依存関係情報の生成、及び送出を行わなくてもよい。
 図70は、データの復号順の例を示す図である。図70の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
 次に、点群データの分割処理、及び結合処理の流れについて説明する。なお、ここでは、タイル分割及びスライス分割の例を説明するが、その他の空間の分割に対しても同様の手法を適用できる。
 図71は、三次元データ符号化装置によるデータ分割処理を含む三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、使用する分割方法を決定する(S5101)。具体的には、三次元データ符号化装置は、第1分割方法と第2分割方法とのいずれを用いるかを決定する。例えば、三次元データ符号化装置は、ユーザ又は外部装置(例えば三次元データ復号装置)からの指定に基づき分割方法を決定してもよいし、入力された点群データに応じて分割方法を決定してもよい。また、使用される分割方法は予め定められていてもよい。
 ここで、第1分割方法とは、複数の分割単位(タイル又はスライス)の全てに、常にそれぞれ1以上の点データが含まれる分割方法である。第2分割方法とは、複数の分割単位に、点データを含まない分割単位が1以上存在する分割方法、又は、複数の分割単位に、点データを含まない分割単位が1以上ある可能性のある分割方法である。
 決定された分割方法が第1分割方法である場合(S5102で第1分割方法)、三次元データ符号化装置は、データ分割に係るメタデータである分割付加情報(例えばタイル付加情報又はスライス付加情報)に使用された分割方法が第1分割方法であることを記載する(S5103)。そして、三次元データ符号化装置は、全ての分割単位を符号化する(S5104)。
 一方、決定された分割方法が第2分割方法である場合(S5102で第2分割方法)、三次元データ符号化装置は、分割付加情報に使用された分割方法が第2分割方法であることを記載する(S5105)。そして、三次元データ符号化装置は、複数の分割単位のうち、点データを含まない分割単位(例えばヌルタイル)を除く分割単位を符号化する(S5106)。
 図72は、三次元データ復号装置によるデータ結合処理を含む三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームに含まれる分割付加情報を参照し、使用された分割方法が第1分割方法であるか第2分割方法であるかを判定する(S5111)。
 使用された分割方法が第1分割方法である場合(S5112で第1分割方法)、三次元データ復号装置は、全ての分割単位の符号化データを受信し、受信した符号化データを復号することで、全ての分割単位の復号データを生成する(S5113)。次に、三次元データ復号装置は、全ての分割単位の復号データを用いて三次元点群を再構成する(S5114)。例えば、三次元データ復号装置は、複数の分割単位を結合することで三次元点群を再構成する。
 一方、使用された分割方法が第2分割方法である場合(S5112で第2分割方法)、三次元データ復号装置は、点データを含む分割単位の符号化データ、及び点データを含まない分割単位の符号化データを受信し、受信した分割単位の符号化データを復号することで復号データを生成する(S5115)。なお、三次元データ復号装置は、点データを含まない分割単位が送出されていない場合は、点群データを含まない分割単位を受信及び復号しなくてもよい。次に、三次元データ復号装置は、点データを含む分割単位の復号データを用いて三次元点群を再構成する(S5116)。例えば、三次元データ復号装置は、複数の分割単位を結合することで三次元点群を再構成する。
 以下、その他の点群データの分割方法について説明する。図60の(c)に示すように空間を均等に分割する場合、分割された空間に点が存在しない場合がある。この場合において、三次元データ符号化装置は、点が存在しない空間を点が存在する他の空間と結合する。これにより、三次元データ符号化装置は、全ての分割単位が1以上の点を含むように複数の分割単位を形成できる。
 図73は、この場合のデータ分割のフローチャートである。まず、三次元データ符号化装置は、データを特定の方法で分割する(S5121)。例えば、特定の方法とは、上述した第2分割方法である。
 次に、三次元データ符号化装置は、処理対象の分割単位である対象分割単位に点が含まれるか否かを判定する(S5122)。対象分割単位に点が含まれる場合(S5122でYes)、三次元データ符号化装置は、対象分割単位を符号化する(S5123)。一方、対象分割単位に点が含まれない場合(S5122でNo)、三次元データ符号化装置は、対象分割単位と、点を含む他の分割単位とを結合し、結合後の分割単位を符号化する(S5124)。つまり、三次元データ符号化装置は、対象分割単位を、点を含む他の分割単位と一緒に符号化する。
 なお、ここでは、分割単位毎に判定及び結合を行う例を述べたが、処理方法はこれに限らない。例えば、三次元データ符号化装置は、複数の分割単位の各々に点が含まれるか否かを判定し、点が含まれない分割単位がなくなるように結合を行い、結合後の複数の分割単位の各々を符号化してもよい。
 次に、ヌルタイルを含むデータの送出方法について説明する。三次元データ符号化装置は、処理対象のタイルである対象タイルがヌルタイルである場合には、対象タイルのデータを送出しない。図74は、データ送出処理のフローチャートである。
 まず、三次元データ符号化装置は、タイルの分割方法を決定し、決定した分割方法を用いて点群データをタイルに分割する(S5131)。
 次に、三次元データ符号化装置は、対象タイルがヌルタイルであるか否かを判定する(S5132)。つまり、三次元データ符号化装置は、対象タイル内にデータがないか否かを判定する。
 対象タイルがヌルタイルである場合(S5132でYes)、三次元データ符号化装置は、タイル付加情報に、対象タイルがヌルタイルであることを示し、対象タイルの情報(タイルの位置及びサイズ等)を示さない(S5133)。また、三次元データ符号化装置は、対象タイルを送出しない(S5134)。
 一方、対象タイルがヌルタイルでない場合(S5132でNo)、三次元データ符号化装置は、タイル付加情報に対象タイルがヌルタイルでないことを示し、タイル毎の情報を示す(S5135)。また、三次元データ符号化装置は、対象タイルを送出する(S5136)。
 このように、ヌルタイルの情報をタイル付加情報に含めないことにより、タイル付加情報の情報量を削減できる。
 以下、ヌルタイルを含む符号化データの復号方法について説明する。まず、パケットロスがない場合の処理について説明する。
 図75は、三次元データ符号化装置から送出される符号化データである送出データと、三次元データ復号装置に入力される受信データの例を示す図である。なお、ここでは、パケットロスがないシステム環境の場合を想定しており、受信データは送出データと同じである。
 三次元データ復号装置は、パケットロスがないシステム環境の場合には、送出データの全てを受信する。図76は、三次元データ復号装置による処理のフローチャートである。
 まず、三次元データ復号装置は、タイル付加情報を参照し(S5141)、それぞれのタイルがヌルタイルであるか否かを判定する(S5142)。
 タイル付加情報に対象タイルがヌルタイルでないことが示される場合(S5142でNo)、三次元データ復号装置は、対象タイルはヌルタイルではないと判断し、対象タイルを復号する(S5143)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5144)。
 一方、タイル付加情報に対象タイルがヌルタイルでないことが示される場合(S5142でYes)、三次元データ復号装置は、対象タイルはヌルタイルであると判断し、対象タイルを復号しない(S5145)。
 なお、三次元データ復号装置は、符号化データのヘッダに示されるインデックス情報を順番に解析することにより、歯抜けとなっているデータがヌルタイルであると判定してもよい。また、三次元データ復号装置は、タイル付加情報を用いた判定方法とインデックス情報を用いた判定方法とを組み合わせてもよい。
 次に、パケットロスがある場合の処理について説明する。図77は、三次元データ符号化装置から送出される送出データ、及び、三次元データ復号装置に入力される受信データの例を示す図である。ここでは、パケットロスがあるシステム環境の場合を想定している。
 パケットロスがあるシステム環境の場合、三次元データ復号装置は、送出データの全てを受信できない可能性がある。この例では、Gt2とAt2のパケットが損失している。
 図78は、この場合の三次元データ復号装置の処理のフローチャートである。まず、三次元データ復号装置は、符号化データのヘッダに示されるインデックス情報の連続性を解析し(S5151)、対象タイルのインデックス番号が存在するか否かを判定する(S5152)。
 対象タイルのインデックス番号が存在する場合(S5152でYes)、三次元データ復号装置は、対象タイルはヌルタイルでないと判断し、対象タイルの復号処理を実施する(S5153)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5154)。
 一方、対象タイルのインデックス情報が存在しない場合(S5152でNo)、三次元データ復号装置は、タイル付加情報を参照することで、対象タイルがヌルタイルであるか否かを判定する(S5155)。
 対象タイルがヌルタイルでない場合(S5156でNo)、三次元データ復号装置は、対象タイルは損失した(パケットロス)と判断し、エラー復号処理を実施する(S5157)。エラー復号処理とは、例えば、データがあったものとして、元データの復号を試みる処理である。この場合、三次元データ復号装置は、三次元データを再生し、三次元データの再構成を実施してもよい(S5154)。
 一方、対象タイルがヌルタイルである場合(S5156でYes)、三次元データ復号装置は、対象タイルはヌルタイルであるものとして、復号処理及び三次元データの再構成を実施しない(S5158)。
 次に、ヌルタイルを明示しない場合の符号化方法について説明する。三次元データ符号化装置は、以下の方法で符号化データ及び付加情報を生成してもよい。
 三次元データ符号化装置は、タイル付加情報に、ヌルタイルの情報を示さない。三次元データ符号化装置は、ヌルタイルを除くタイルのインデックス番号をデータヘッダに付与する。三次元データ符号化装置は、ヌルタイルを送出しない。
 この場合、タイル分割数(number_of_tiles)は、ヌルタイルを含めない分割数を示す。なお、三次元データ符号化装置は、別途ヌルタイルの数を示す情報をビットストリームに格納してもよい。また、三次元データ符号化装置は、付加情報にヌルタイルに関する情報を示してもよし、ヌルタイルに関する一部の情報を示してもよい。
 図79は、この場合の三次元データ符号化装置による三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、タイルの分割方法を決定し、決定した分割方法を用いて点群データをタイルに分割する(S5161)。
 次に、三次元データ符号化装置は、対象タイルがヌルタイルであるか否かを判定する(S5162)。つまり、三次元データ符号化装置は、対象タイル内にデータがないか否かを判定する。
 対象タイルがヌルタイルでない場合(S5162でNo)、三次元データ符号化装置は、データヘッダに、ヌルタイルを除くタイルのインデックス情報を付与する(S5163)。そして、三次元データ符号化装置は、対象タイルを送出する(S5164)。
 一方、対象タイルがヌルタイルである場合(S5162でYes)、三次元データ符号化装置は、データヘッダへの対象タイルのインデックス情報を付与、及び対象タイルの送出を行わない。
 図80は、データヘッダに付加されるインデックス情報(idx)の例を示す図である。図80に示すようにヌルタイルのインデックス情報は付加されず、ヌルタイル以外のタイルに対して連続番号が付加される。
 図81は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。また、同図において、Gtn(nは1~4)は、タイル番号nの位置情報を示し、Atnは、タイル番号nの属性情報を示す。Mtileは、タイル付加情報を示す。
 図82は、三次元データ符号化装置から送出される符号化データである送出データの構成例を示す図である。
 以下、ヌルタイルを明示しない場合の復号方法について説明する。図83は、三次元データ符号化装置から送出される送出データ、及び、三次元データ復号装置に入力される受信データの例を示す図である。ここでは、パケットロスがあるシステム環境の場合を想定している。
 図84は、この場合の三次元データ復号装置の処理のフローチャートである。まず、三次元データ復号装置は、符号化データのヘッダに示されるタイルのインデックス情報を解析し、対象タイルのインデックス番号が存在するか否かを判定する。また、三次元データ復号装置は、タイル付加情報からタイルの分割数を取得する(S5171)。
 対象タイルのインデックス番号が存在する場合(S5172でYes)、三次元データ復号装置は、対象タイルの復号処理を実施する(S5173)。次に、三次元データ復号装置は、タイル付加情報からタイルの情報(タイルの位置情報(原点座標等)及びサイズ等)を取得し、取得した情報を用いて複数のタイルを結合することでの三次元データを再構成する(S5175)。
 一方、対象タイルのインデックス番号が存在しない場合(S5172でNo)、三次元データ復号装置は、対象タイルはパケットロスと判断し、エラー復号処理を実施する(S5174)。また、三次元データ復号装置は、データに存在しない空間は、ヌルタイルであると判断し、三次元データ再構成する。
 また、三次元データ符号化装置は、ヌルタイルを明示的に示すことで、測定ミス或いはデータ処理等によるデータ欠損、またはパケットロスではなく、タイル内に点が存在しないことを適切に判断することができる。
 なお、三次元データ符号化装置は、ヌルパケットを明示的に示す方法と、ヌルパケットを明示的に示さない方法とを併用してもよい。その場合、三次元データ符号化装置は、ヌルパケットを明示的に示すか否かを示す情報をタイル付加情報に示してもよい。また、分割方法のタイプに応じて、予めヌルパケットを明示的に示すか否かを決定しておき、三次元データ符号化装置は、分割方法のタイプを示すことによりヌルパケットを明示的に示すか否かを示してもよい。
 また、図62等において、タイル付加情報に、全てのタイルに係る情報が示される例を示したが、タイル付加情報に、複数のタイルのうちの一部のタイルの情報が示されてもよいし、複数のタイルのうちの一部のタイルのヌルタイルの情報が示されてもよい。
 また、分割データ(タイル)があるか否かの情報等の分割データに関する情報が、タイル付加情報に格納される例を説明したが、これらの情報の一部又は全ては、パラメータセットに格納されてもいし、データとして格納されてもよい。これらの情報がデータとして格納される場合には、例えば分割データがあるか否かを示す情報を意味するnal_unit_typeを定義し、これらの情報をNALユニットに格納してもよい。また、これらの情報は、付加情報とデータとの両方に格納されてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図85に示す処理を行う。まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル又はスライス)を符号化することで複数の符号化データを生成する(S5181)。三次元データ符号化装置は、複数の符号化データと、複数のサブ空間の各々に対応する第1情報(例えばtile_null_flag)とを含むビットストリームを生成する(S5182)。複数の第1情報の各々は、対応するサブ空間の構造を示す第2情報がビットストリームに含まれるか否かを示す。
 これによれば、例えば、点を含まないサブ空間に対しては第2情報を省略できるので、ビットストリームのデータ量を低減できる。
 例えば、第2情報は、対応するサブ空間の原点の座標を示す情報を含む。例えば、第2情報は、対応するサブ空間の高さ、幅及び奥行きのうち少なくとも1つを示す情報を含む。
 これによれば、当該三次元データ符号化装置は、ビットストリームのデータ量を削減できる。
 また、図73に示すように、三次元データ符号化装置は、複数の三次元点が含まれる対象空間を複数のサブ空間(例えばタイル又はスライス)に分割し、複数のサブ空間を各サブ空間に含まれる三次元点の数に応じて結合し、結合後のサブ空間を符号化してもよい。例えば、三次元データ符号化装置は、結合後の複数のサブ空間の各々に含まれる三次元点の数が予め定められた数以上になるように、複数のサブ空間を結合してもよい。例えば、三次元データ符号化装置は、三次元点を含まないサブ空間を三次元点を含むサブ空間と結合してもよい。
 これによれば、当該三次元データ符号化装置は、点の数が少ない又は点を含まないサブ空間が生成されることを抑制できるので、符号化効率を向上できる。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図86に示す処理を行う。まず、三次元データ復号装置は、ビットストリームから、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル又はスライス)の各々に対応し、対応するサブ空間の構造を示す第2情報がビットストリームに含まれるか否かを各々が示す、複数の第1情報(例えばtile_null_flag)を取得する(S5191)。三次元データ復号装置は、複数の第1情報を用いて、(i)ビットストリームに含まれる複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで複数のサブ空間を復元し、(ii)複数のサブ空間を結合することで対象空間を復元する(S5192)。例えば、三次元データ復号装置は、第1情報を用いて、第2情報がビットストリームに含まれるか否かを判定し、ビットストリームに第2情報が含まれる場合には、第2情報を用いて、復号した複数のサブ空間を結合する。
 これによれば、例えば、点を含まないサブ空間に対しては第2情報を省略できるので、ビットストリームのデータ量を低減できる。
 例えば、第2情報は、対応するサブ空間の原点の座標を示す情報を含む。例えば、第2情報は、対応するサブ空間の高さ、幅及び奥行きのうち少なくとも1つを示す情報を含む。
 これによれば、三次元データ復号装置は、ビットストリームのデータ量を削減できる。
 また、三次元データ復号装置は、複数の三次元点が含まれる対象空間を複数のサブ空間(例えばタイル又はスライス)に分割し、複数のサブ空間を各サブ空間に含まれる三次元点の数に応じて結合し、結合後のサブ空間を符号化することで生成された符号化データを受信し、受信した符号化データを復号してもよい。例えば、符号化データは、結合後の複数のサブ空間の各々に含まれる三次元点の数が予め定められた数以上になるように、複数のサブ空間を結合することで生成されてもよい。例えば、三次元データは、三次元点を含まないサブ空間を三次元点を含むサブ空間と結合することで生成されてもよい。
 これによれば、当該三次元データ装置は、点の数が少ない又は点を含まないサブ空間が生成されることを抑制することで符号化効率を向上した符号化データを復号できる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態8)
 本実施の形態では、タイル関連のシグナリング方法、シンタックス及びセマンティクスについて説明する。図87は、スライスデータの構成を示す図である。図87に示すようにスライスデータは、スライスヘッダとペイロードとを含む。
 図88は、ビットストリームの構成例を示す図である。ビットストリームは、SPS(シーケンスパラメータセット)と、GPS(位置情報パラメータセット)と、APS(属性情報パラメータセット)と、タイルメタデータと、複数のスライスデータとを含む。また、スライスデータは、位置情報(ジオメトリ)スライス(図88においてGtisjと記載(i、jはそれぞれ任意の自然数))と、属性情報スライス(図88においてAtisjと記載(i、jはそれぞれ任意の自然数))とを含む。また、図88では、2つのタイル1とタイル2とが存在し、各タイルが2つのスライスに分割されている例を示す。例えば、図88に示すGt1s1は、タイル1に含まれるスライス1の位置情報スライス(位置情報の符号化データ)である。
 図88に示すように、位置情報スライスのスライスヘッダは、スライスの識別子であるスライスインデックス(sliceIdx)及びタイルの識別子であるタイルインデックス(tileIdx)を含む。
 SPSはシーケンス(複数フレーム)単位のパラメータセットであり、位置情報及び属性情報に共通のパラメータセットである。GPSは、位置情報のパラメータセットであり、例えば、フレーム単位のパラメータセットである。APSは、属性情報のパラメータセットであり、例えば、フレーム単位のパラメータセットである。
 タイルメタデータは、タイルに関する情報を含むメタデータ(制御情報)である。タイルメタデータは、タイルの数を示す情報(number_of_tiles)と、各タイルの空間領域(バウンディングボックス)を示す情報とを含む。タイルの空間領域を示す情報は、例えば、タイルの位置を示す情報と、タイルの大きさを示す情報とを示す。例えば、タイルの位置を示す情報は、タイルの原点の三次元座標を示す情報(origin_x、origin_y、origin_z)である。また、タイルの大きさを示す情報は、タイルの幅、高さ及び深さを示す情報(size_width、size_height、size_depth)である。
 ここで、現在の状況において、シンタックスの詳細の仕様及びセマンティクスが定義されていない。以下では、このシンタックスの詳細の仕様及びセマンティクスについて説明する。
 図89~図91は、タイルの例を示す図である。同図に示す円は、点群(三次元点群データ)を示し、実線の矩形はタイルのバウンディングボックスを示す。また、同図では、点群データ及びバウンディングボックスを二次元で記載しているが実際にはこれらは三次元である。
 ここで、点群データ(スライス)は、必ずいずれかのタイルに属する、つまり、スライスは必ず1以上のタイルに属すると定義する。言い換えれば、どのタイルにも属さないスライスは存在しないと定義する。
 図89は、タイル数が1である場合の例を示す。この場合、タイルのバウンディングボックスは、デフォルトバウンディングボックスである。デフォルトバウンディングボックスは、少なくとも点群データのバウンディングボックスより大きい。
 また、図89に示す例は、デフォルトバウンディングボックスが元の点群のバウンディングボックスと一致する例である。この場合、タイルのバウンディングボックスは元の点群のバウンディングボックスと一致する。
 図90は、タイル数が2(以上)である場合の例を示す。この例では、タイル1とタイル2とは互いに重複しない。図91は、タイル数が2(以上)であり、タイルが重複する場合の例を示す。この例では、タイル1とタイル2とは重複する。なお、スライス分割が行われた場合は、1つのタイルに2つのスライスが属する場合がある。
 以下に示す例では、タイルは少なくとも1つ存在すると規定する。図92は、本実施の形態に係る三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、分割されたタイルの数であるタイル数が1であるか否かを判定する(S9301)。タイル数が1である場合(S9301でYes)、三次元データ符号化装置は、当該タイルはデフォルトタイルであると判定し、タイルメタデータを送信しない(S9302)。つまり、三次元データ符号化装置は、タイルメタデータをビットストリームに付加しない。
 また、三次元データ符号化装置は、タイルに属するスライスのスライスヘッダのタイルインデックスを0に設定する(S9303)。図93は、タイル数=1の場合のタイルインデックス(tileIdx)の設定例を示す図である。図93に示すように、タイル数=1の場合のデフォルトタイルのタイルインデックスは0に設定される。
 一方、タイル数が1でない場合、つまり、タイル数が2以上である場合(S9301でNo)、三次元データ符号化装置は、当該タイルはデフォルトタイルでないと判定し、タイルメタデータを送信する(S9304)。つまり、三次元データ符号化装置は、ビットストリームにタイルメタデータを付加する。また、三次元データ符号化装置は、タイルメタデータに、タイル数=Nと、1~N番目の各タイルのバウンディングボックス情報(タイルの位置及び大きさを示す情報)とを格納する。
 また、三次元データ符号化装置は、スライスヘッダのタイルインデックスに0~N-1のいずれかを記載する(S9305)。具体的には、三次元データ符号化装置は、スライスヘッダにスライスが属するタイルに割り当てられているタイルインデックスを格納する。図94は、タイル数>1の場合のタイルインデックス(tileIdx)の設定例を示す図である。図94に示すように、タイル数>1の場合の各タイルには、デフォルトタイル以外のタイルに、タイルインデックスとして1からN-1までの値が設定される。なお、Nはタイル数である。
 ここで、デフォルトタイルのバウンディングボックスであるデフォルトバウンディングボックスは予め規定される。デフォルトバウンディングボックスは、点群のバウンディングボックスを含む大きさであればよい。デフォルトバウンディングボックスの原点は、点群の原点でもよいし、座標系における0であってもよい。
 図89に示すように、タイル数が1である場合は、デフォルトタイルが用いられる。デフォルトタイルのバウンディングボックス情報は、タイルメタデータには示されない。また、タイルメタデータは送出されない。
 図90に示すように、タイル数が2以上の場合、つまり、デフォルトタイル以外のタイルが存在する場合にタイルメタデータにデフォルトタイル以外のタイル情報が示される。
 また、タイル数は、デフォルトタイルを含まないタイル数Nを示す。また、タイルのループの順番(1からN)から1引いた値が、当該タイルのタイルインデックス(tileIdx)の値として用いられ、当該タイルが属するスライスのスライスヘッダに記載される。なお、タイル数が2以上の場合とは、デフォルトタイルと、デフォルトタイル以外の1以上のタイルとが存在する場合、及び、デフォルトタイルが存在せず、デフォルトタイル以外の2以上のタイルとが存在する場合を含む。
 なお、この例では、タイルメタデータのタイル数に0を記載することはない。したがって、タイル=0は禁止すると規定してもよい。あるいは、タイルメタデータに含まれる情報は、タイル数ではなくタイル数-1を示すと規定してもよい。
 本実施の形態により、タイル数が1である場合は、ビットストリームにタイルメタデータが含まれないことにより、ビットストリームのデータ量を削減できる。また、本実施の形態の処理を規定することで、三次元データ復号装置は、タイルメタデータが送信されているかに応じてタイル数が1であるか否かを判断できる。
 なお、三次元データ符号化装置は、タイルメタデータが送信されているか否かを示す情報を、SPS又はGPSなどの、ビットストリームに含まれる他のメタデータに格納してもよい。これにより、三次元データ復号装置は、タイルメタデータがあるか否かを、タイルメタデータを受信したか否かではなく、SPS又はGPSを解析して判断できる。
 また、三次元データ符号化装置は、ビットストリームにタイルメタデータを付加しない場合に、全てのスライスヘッダにタイルインデックスを付加しなくてもよい。この場合、三次元データ復号装置は、タイルメタデータが送信されない場合は、全てのスライスはデフォルトタイルに属すると判断してもよい。
 次に、上記処理により生成されたビットストリームを復号する三次元データ復号装置における処理を説明する。図95は、本実施の形態に係る三次元データ復号処理のフローチャートである。なお、図95に示す処理は、ビットストリームに含まれる全てのスライスデータを復号する場合の処理である。
 まず、三次元データ符号化装置は、ビットストリーム内にタイルメタデータが存在するか否かを判定する(S9311)。なお、三次元データ復号装置は、この判定を、タイルメタデータを受信したか否かで判定してもよいし、タイルメタデータが送信されたか否かを示すフラグがSPS又はGPSに格納されている場合は、当該フラグを解析して判定してもよい。
 三次元データ復号装置は、ビットストリーム内にタイルメタデータが存在する場合(S9311でYes)、タイルが2以上存在すると判定する(S9312)。また、三次元データ復号装置は、デフォルトタイル以外のタイルが存在すると判定する。
 次に、三次元データ復号装置は、タイルメタデータを解析することで、タイル数と各タイルのバウンディングボックス情報とを取得する(S9313)。なお、三次元データ復号装置は、タイル数=0を示す情報がタイルメタデータに含まれている場合は、規格不整合としてタイルメタデータの解析を行わなくてもよいし、エラー通知等を行ってもよい。
 次に、三次元データ復号装置は、タイルのバウンディングボックス情報を用いて、各タイルのタイルインデックス(0~(タイル数-1))を特定する(S9314)。
 次に、三次元データ復号装置は、tileIdx=0~(タイル数-1)のスライスデータを取得する(S9315)。また、三次元データ復号装置は、取得したスライスデータを復号する。
 一方、三次元データ復号装置は、ビットストリーム内にタイルメタデータが存在しない場合(S9311でNo)、タイル数は1であり、当該タイルがデフォルトタイルであると判定する(S9316)。次に、三次元データ復号装置は、tileIdx=0のスライスデータをデフォルトタイルに属するスライスデータであると判定し、当該スライスデータを取得する(S9317)。また、三次元データ復号装置は、取得したスライスデータを復号する。
 次に、ビットストリームに含まれるデータのうち所望の対象データを復号するランダムアクセス処理を行う場合の動作を説明する。図96は、このランダムアクセス処理のフローチャートである。
 まず、三次元データ復号装置は、ビットストリーム内にタイルメタデータが存在するか否かを判定する(S9321)。なお、この判定の詳細は例えばS9311と同様である。
 三次元データ復号装置は、ビットストリーム内にタイルメタデータが存在する場合(S9321でYes)、タイルが2以上存在すると判定する(S9322)。また、三次元データ復号装置は、デフォルトタイル以外のタイルが存在すると判定する。
 次に、三次元データ復号装置は、タイルメタデータを解析し、複数のタイルのバウンディングボックス情報のリストであるタイルリストを作成する(S9323)。具体的には、タイルリストは、タイル毎のタイルインデックスとバウンディングボックス情報とを示す。
 一方、三次元データ復号装置は、ビットストリーム内にタイルメタデータが存在しない場合(S9321でNo)、タイル数は1であり、当該タイルがデフォルトタイルであると判定する(S9324)。次に、三次元データ復号装置は、デフォルトタイルの情報を用いてタイルリストを作成する(S9325)。このタイルリストは、デフォルトタイルのタイルインデックス(値0)と、デフォルトタイルのバウンディングボックス情報とを示す。
 ステップS9323又はS9325の後、三次元データ復号装置は、ランダムアクセスしたい領域である対象領域の情報を取得する(S9326)。次に、三次元データ復号装置は、対象領域と、タイルリストに含まれるバウンディングボックス情報と照合し、対象領域と重複するタイルのタイルインデックスを特定する(S9327)。
 次に、三次元データ復号装置は、各スライスヘッダを解析し、ステップS9327で特定したランダムアクセス対象のタイルインデックスを持つスライスデータを選択し、選択したスライスデータを復号する(S9328)。
 以下、図91に示すようにタイルが重複する場合について説明する。スライスヘッダには、スライスが属するタイルのタイルインデックスを示す領域が1つしかなく、複数のタイルインデックスを示すことができない。つまり、タイルが重複する場合、スライスヘッダには、スライスが属するタイルのうち、いずれか一方のタイルのタイルインデックスしか示すことができない。
 これを回避するために、以下の手法を用いることができる。図97は、タイルインデックスの付加方法を示す図である。図97に示すように、タイルが重複している場合には、スライスヘッダに複数のタイルインデックスが含まれてもよい。また、タイルメタデータは、重複するタイルの数と、各タイルのタイルインデックスを示してもよい。
 図98は、タイルインデックスの付加方法の別の方法を示す図である。図98に示すように、タイルが重複する場合、スライスヘッダは、スライスが属する複数のタイルのうち、いずれか一つのタイルインデックスを示してもよい。その場合、三次元データ復号装置は、ランダムアクセス時に、デフォルトタイルの情報及びタイルリストから、重複しているタイルを判定する。また、三次元データ復号装置は、重複している2つのタイルの一方と、ランダムアクセスの対象領域が重複する場合には、対象領域がもう一方のタイルと重複する可能性があると判断し、両方のタイルに属するスライスデータを取得する。
 つまり、図98において、三次元データ復号装置は、ランダムアクセスの対象領域が実際にはタイルBとしか重複しない場合であっても、タイルAがタイルBと重複しているため、タイルAに属するスライスデータとタイルBに属するスライスデータとを取得する。
 また、タイルの重複について、一部重複することは許容するが、完全に重複するケース、及び、一方がもう一方を完全に含むようなタイルの設定を禁止してもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図99に示す処理を行う。まず、三次元データ符号化装置は、点群データに含まれる複数の三次元点を1又は複数の第1の分割データ単位(例えばタイル)に分割し(S9331)、1又は複数の第1の分割データ単位を符号化することでビットストリームを生成する(S9332)。三次元データ符号化装置は、1又は複数の第1の分割データ単位の数が2以上の場合には(S9333でYes)、1又は複数の第1の分割データ単位に関する第1のメタデータ(例えばタイルメタデータ)をビットストリームに付加し(S9334)、1又は複数の第1の分割データ単位の数が1の場合には(S9333でNo)、第1のメタデータをビットストリームに付加しない(S9335)。
 これによれば、三次元データ符号化装置は、第1の分割データ単位の数が1の場合に第1のメタデータをビットストリームに付加しないのでビットストリームのデータ量を削減できる。
 例えば、第1のメタデータは、各第1の分割データ単位の空間領域(例えばバウンディングボックス)を示す情報を含む。例えば、第1のメタデータは、1又は複数の第1の分割データ単位の数を示す情報を含む。例えば、第1の分割データ単位の空間領域を示す情報によって示される空間は、タイルである。
 例えば、三次元データ符号化装置は、1又は複数の第1の分割データ単位の数が2以上の場合には、ビットストリームに含まれる各第2の分割データ単位(例えばスライス)のヘッダ(例えばスライスヘッダ)に当該第2の分割データ単位が属する第1の分割データ単位の識別子(例えばタイルインデックス)を付加し、1又は複数の第1の分割データ単位の数が1の場合には、各第2の分割データ単位のヘッダに識別子として予め定められた値(例えば0)を示す識別子を付加する。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図100に示す処理を行う。まず、三次元データ復号装置は、点群データに含まれる複数の三次元点が分割された1又は複数の第1の分割データ単位(例えばタイル)が符号化されることで生成されたビットストリームに、1又は複数の第1の分割データ単位に関する第1のメタデータ(例えばタイルメタデータ)が付加されているか否かを判定する(S9341)。三次元データ復号装置は、ビットストリームに第1のメタデータが付加されている場合(S9341でYes)、第1のメタデータを用いてビットストリームから1又は複数の第1の分割データ単位のうちの少なくとも一つの第1の分割データ単位を復号する(S9342)。三次元データ復号装置は、ビットストリームに第1のメタデータが付加されていない場合(S9341でNo)、1又は複数の第1の分割データ単位の数が1であると判定し、当該1つの第1の分割データ単位の第1のメタデータとして予め定められた設定を用いて、ビットストリームから当該第1の分割データ単位を復号する(S9343)。
 これによれば、三次元データ復号装置は、データ量が削減されたビットストリームを適切に復号できる。
 例えば、第1のメタデータは、各第1の分割データ単位の空間領域(例えばバウンディングボックス)を示す情報を含む。例えば、第1のメタデータは、1又は複数の第1の分割データ単位の数を示す情報を含む。例えば、第1の分割データ単位の空間領域を示す情報によって示される空間は、タイルである。
 例えば、1又は複数の第1の分割データ単位の数が2以上の場合には、ビットストリームに含まれる各第2の分割データ単位(例えばスライス)のヘッダ(例えばスライスヘッダ)に当該第2の分割データ単位が属する第1の分割データ単位の識別子(例えば第1の分割データ単位インデックス)が付加され、1又は複数の第1の分割データ単位の数が1の場合には、各第2の分割データ単位のヘッダに識別子として予め定められた値(例えば0)を示す識別子が付加されている。
 例えば、第1のメタデータは、各第1の分割データ単位の空間領域を示し、ビットストリームに含まれる各第2の分割データ単位のヘッダに当該第2の分割データ単位が属する第1の分割データ単位の識別子が付加されている。三次元データ復号装置は、アクセス対象の領域の情報を取得し(例えば図96のS9326)、第1のメタデータを用いて、アクセス対象の領域と重複する第1の分割データ単位を特定し(S9327)、特定した第1の分割データ単位の識別子が付加されている第2の分割データ単位を復号する(S9328)。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態9)
 タイル情報(タイルメタデータ)のビット数を削減する方法について説明する。
 タイル情報は、例えば、タイル毎のバウンディングボックスの原点(origin)及びサイズ(size)を示す情報(ボックス情報)を含む。
 特に、三次元の地図情報は、数キロメートルにわたる領域の大規模な点群である。そのため、このような大規模な点群を複数のタイルに分割して符号化する場合、タイルの数、origin、及び、sizeは、大きくなる。したがって、タイル情報のビット数が増大し、符号化された点群のデータ(点群データ)を含むビットストリームにおけるタイル情報の割合が大きくなり、三次元データ符号化装置による符号化効率が低下する。
 そこで、以下の方法を用いることにより、タイル情報のビット数を削減し、大規模な点群の場合のタイル情報を含むビットストリームのビット数の増大を抑制する。
 図101は、本実施の形態に係るタイル情報のシンタックスの第1例を示す図である。
 number_of_tilesは、タイル情報に含まれるバウンディングボックスの数を示す情報(ボックス数情報)である。number_of_tilesの数のループによって、バウンディングボックスの原点である、x軸方向の原点(origin_x)、y軸方向の原点(origin_y)、及び、z軸方向の原点(origin_z)がそれぞれ示される。
 また、number_of_tilesの数のループによって、バウンディングボックスのサイズである、幅(size_width)、高さ(size_height)、及び、深さ(size_depth)がそれぞれ示される。
 例えば、三次元データ符号化装置は、num_of_tiles=0の場合には、ボックス情報をビットストリームに含めない。一方、例えば、三次元データ符号化装置は、number_of_tilesが0でない場合には、それぞれのバウンディングボックスで共通の情報をビットストリームに含める。
 なお、三次元データ符号化装置は、num_of_tiles=0の場合に、予め定められたバウンディングボックスに関する情報をビットストリームに含めてもよい。
 bb_bitsは、origin及びsizeを三次元データ符号化装置がエントロピー符号化する際のビット数、つまり、符号長を示す情報である。つまり、三次元データ符号化装置は、origin及びsizeをbb_bitsで指定された長さ、つまり、固定長で符号化する。
 これによれば、例えば、bb_bitsを指定せず、三次元データ符号化装置がorigin及びsizeを可変長で符号化する場合と比較して、符号化するビット数を削減できる。
 common_originは、全てのタイルに共通に用いられる原点座標である。具体的には、common_originは、全てのタイルを含む空間全体の原点である。例えば、originは、
 origin=common_origin+origin(i)
で表現される。
 なお、iは、タイルのカウント、つまり、1以上のタイルのいずれであるかを示す識別子である。
 bb_bitsは、例えば、以下の算出方法で算出される。
 bb_bits = 0;
 for(int i=0;i<number_of_tiles;i++){bb_bits=max{count(bb(i).origin_x),count(bb(i).origin_y),count(bb(i).origin_z),count(bb(i).size),count(bb(i).width),count(bb(i).depth),bb_bits};}
 ここで、count()は、origin及びsize等のパラメータのビット数をカウントする関数である。例えば、三次元データ符号化装置は、全てのタイルについて、origin及びsizeのそれぞれのパラメータのビット数をカウントする。さらに三次元データ符号化装置は、カウントした中で最も大きいビット数をエントロピー符号化で用いるbb_bits(つまり、固定長)とする。
 なお、三次元データ復号装置では、origin及びsize等の座標情報及びサイズ情報を復号(エントロピー復号)する場合には、bb_bits(固定長)で符号化されているものとして復号する。
 図102は、本実施の形態に係るタイル情報のシンタックスの第2例を示す図である。
 例えば、三次元点群を複数のタイル(バウンディングボックス)毎に分割する場合、タイルのサイズ(より具体的には、size_width、size_height、及び、size_depthのそれぞれの値)の範囲は、近い値が用いられることが想定される。つまり、size_width、size_height、及び、size_depthのビット数は、互いに近い値となる可能性が高い。
 一方、originは、小さな値から大きな値を示す(つまり、取り得る範囲が広い)傾向にある。そのため、originのビット数の取り得る範囲は、大きい可能性が高い。
 なお、size_widthは、例えば、三次元直交座標系におけるx軸方向の長さである。また、size_heightは、例えば、三次元直交座標系におけるy軸方向の長さである。また、size_depthは、例えば、三次元直交座標系におけるz軸方向の長さである。
 このように、sizeとoriginとで取り得るビット数の傾向が異なる。そこで、originとsizeとの符号化のビット数を揃えず、個別に指定することで、符号化ビット数を削減できる。つまり、例えば、三次元データ符号化装置は、sizeとoriginとを異なる固定長で符号化する。
 bb_origin_bitsは、三次元データ符号化装置がoriginをエントロピー符号化する際のビット数を示す情報である。つまり、三次元データ符号化装置は、originを、bb_origin_bitsで指定された長さ(つまり、固定長)で符号化する。
 bb_size_bitsは、三次元データ符号化装置がsizeをエントロピー符号化する際のビット数を示す情報である。つまり、三次元データ符号化装置は、sizeを、bb_size_bitsで指定された長さ(つまり、固定長)で符号化する。
 bb_size_bits及びbb_origin_bitsは、例えば、以下の算出方法で算出される。
 bb_bits = 0;
 for(int i=0;i<number_of_tiles;i++){bb_origin_bits=max{count(bb(i).origin_x),count(bb(i).origin_y),count(bb(i).origin_z)};bb_size_bits=max{count(bb(i).size),count(bb(i).width),count(bb(i).depth),bb_bits};}
 三次元データ復号装置は、originをエントロピー復号する場合には、bb_origin_bitsで符号化されているものとして復号する。また、三次元データ復号装置は、sizeをエントロピー復号する場合には、bb_size_bitsで符号化されているものとして復号する。
 図103は、本実施の形態に係るタイル情報のシンタックスの第3例を示す図である。
 例えば、一のタイルのsizeであるsize_width、size_height、及び、size_depthのうち、一部が他のタイルのsizeと共通である場合には、さらにビット数を削減できる。
 例えば、タイルを立方体とすると予め定められている場合には、size_width、size_height、及び、size_depthは、全てのタイルで同じ長さとなる。また、上から(例えば、三軸直交系の座標空間におけるy軸方向から)見てタイルを正方形とする場合、size_widthとsize_depthとは、全てのタイルで同じ長さとなる。
 そこで、所定(共通)のサイズ(common_bb_size)を示すコモンサイズ情報と、タイルのサイズが当該所定のサイズであるか否かを示すコモンサイズフラグ(common_size_flag)とを用いて、三次元データ符号化装置が生成するビットストリームのデータ量を削減する。
 common_size_flagは、3bitの情報である。例えば、common_size_flagの0ビット目は、size_widthにcommon_bb_sizeを用いるか否かを示すフラグ情報である。また、例えば、common_size_flagの1ビット目は、size_heightにcommon_bb_sizeを用いるか否かを示すフラグ情報である。また、例えば、common_size_flagの2ビット目は、size_depthにcommon_bb_sizeを用いるか否かを示すフラグ情報である。例えば、三次元データ符号化装置は、これらのコモンサイズフラグ情報のうち、いずれかのビットフラグが立っている場合、つまり、common_size_flagがb’000でない場合には、複数のタイルで共通のサイズ(common_bb_size)を示す情報を含むビットストリームを生成する。
 また、例えば、三次元データ符号化装置は、これらのフラグ情報のうち、いずれかのビットフラグが立っていない場合、つまり、common_size_flagがb’111ではない場合には、個別に符号化に用いる固定長(例えば、上記の通り算出した複数のビット数のうちで最大のビット数)を示す情報を含むビットストリームを生成する。
 三次元データ符号化装置は、common_size_flag[0]==0の場合には、つまり、size_widthに共通のサイズが適用されない場合には、各タイルで共通のビット数(bb_size_bits)で、各タイルそれぞれのsize_widthを符号化する。
 また、三次元データ符号化装置は、common_size_flag[1]==0の場合には、つまり、size_heightに共通のサイズが適用されない場合には、各タイルで共通のビット数(bb_size_bits)で、各タイルそれぞれのsize_heightを符号化する。
 また、三次元データ符号化装置は、common_size_flag[2]==0の場合には、つまり、size_depthに共通のサイズが適用されない場合には、各タイルで共通のビット数(bb_size_bits)で、各タイルそれぞれのsize_depthを符号化する。
 三次元データ復号装置では、common_size_flag[0]==1の場合には、width=common_bb_sizeとし、common_size_flag[0]==0の場合には、size_widthをbb_size_bitsで復号した値をsize_widthとする。同様に、三次元データ復号装置は、size_height及びsize_depthも復号する。
 なお、三次元データ符号化装置は、common_size_flagによって、size_width、size_heigh、及び、size_depthが全て共通であるか否かを示すフラグとして示してもよい。
 また、三次元データ符号化装置は、フラグではなくtypeとして、様々なタイルの形状(つまり、分割形状)を指定し、typeに基づきsizeをシグナリングするか否かを決定してもよい。
 なお、上記では、各タイルで共通のサイズについては共通の情報(common_bb_sizeを示す情報)とする(つまり、共通化する)例について説明したが、初期値(origin)を共通化する場合にも同様の方法が用いられ得る。
 また、上記した方法を用いる/用いないをフラグによって切り替えてもよいし、複数の方法のうちいずれの方法を用いるかを切り替えられるようにされていてもよい。
 続いて、三次元データ符号化装置の処理手順について説明する。
 図104は、本実施の形態に係る三次元データ符号化装置の符号化処理の概要を示すフローチャートである。
 まず、三次元データ符号化装置は、三次元点群が位置する空間を1以上のタイルに分割するか否かを判定する(S11801)。
 三次元データ符号化装置は、三次元点群が位置する空間を1以上のタイルに分割すると判定した場合(S11801でYes)、三次元点群が位置する空間を1以上のタイルに分割する(S11802)。
 次に、三次元データ符号化装置は、タイル内に位置する三次元点の数が、予め定められたスライス当たりの最大三次元点数以上であるか否かを判定する(S11803)。例えば、三次元データ符号化装置は、1以上のタイル毎に、ステップS11803を実行する。三次元データ符号化装置は、例えば、タイル内に位置する三次元点の数が最大三次元点数未満であると判定した場合(S11803でNo)、後述するスライス分割を実行しない。
 三次元データ符号化装置は、タイル内に位置する三次元点の数が最大三次元点数以上であると判定した場合(S11803でYes)、タイル内に位置する三次元点を所定のスライス数となるように分割するか否かを判定する(S11804)。
 三次元データ符号化装置は、タイル内に位置する三次元点を所定のスライス数となるように分割すると判定した場合(S11804でYes)、タイル内に位置する三次元点を所定のスライス数となるように分割(スライス分割)する(S11805)。
 次に、三次元データ符号化装置は、スライス分割した後のスライスのデータ(分割データ)を解析し、さらに処理が必要であれば、所定の処理(スライスの調整)を実行する(S11806)。例えば、三次元データ符号化装置は、スライス分割した後のスライスに含まれる三次元点数が最大三次元点数以上である場合には、該当するスライスをさらにスライスを分割し、最大三次元点数未満となるようにスライスに含まれる三次元点数を調整する。或いは、例えば、三次元データ符号化装置は、スライス分割した後のスライスに含まれる三次元点数が予め定められた最小三次元点数未満である場合には、該当するスライスと他のスライスとを結合することで、最小三次元点数以上となるようにスライスに含まれる三次元点数を調整する。
 三次元データ符号化装置は、ステップS11806の次に、タイル内に位置する三次元点の数が最大三次元点数未満であると判定した場合(S11803でNo)、又は、タイル内に位置する三次元点を所定のスライス数となるように分割しないと判定した場合(S11804でNo)、点群データを符号化する(S11807)。例えば、三次元データ符号化装置は、三次元点群をスライス分割している場合には、スライス毎(つまり、スライスに含まれる三次元点のデータ毎)に点群データを符号化する。或いは、例えば、三次元データ符号化装置は、スライス分割していない場合には、三次元点群を1つのスライスとしてまとめて符号化する、又は、三次元点のデータ毎に個別に符号化する。
 なお、最大三次元点数をMAXに設定することで、三次元データ符号化装置にスライス分割(S11805)を常に実行させるように設定されていてもよい。
 また、ステップS11806は、実行されなくてもよい。
 また、例えば、三次元データ符号化装置は、タイル分割する際(ステップS11802を実行する場合)には、タイル情報を生成する。例えば、三次元データ符号化装置は、タイルの数>2の場合には、タイル情報を生成し、タイルの数=0又は1の場合には、タイル情報を生成しなくてもよい。三次元データ符号化装置は、符号化した三次元点群の点群データと、タイル情報を生成した場合には生成したタイル情報とを含むビットストリームを生成し、生成したビットストリームを、例えば、三次元データ復号装置に送信する。
 図105は、本実施の形態に係る三次元データ符号化装置のタイル情報の符号化処理の具体例を示すフローチャートである。
 まず、三次元データ符号化装置は、タイル情報に基づいて、タイルの原点を示す情報及びタイルのサイズを示す情報のビット数をそれぞれ算出する(S11811)。
 次に、三次元データ復号装置は、原点を示す情報及びサイズを示す情報の符号化を開始する(S11812)。
 三次元データ符号化装置は、タイルの原点を示す情報については(S11813で「原点」)、上記した方法で原点のビット数(例えば、上記したbb_origin_bits)を算出し、算出したビット数を固定長としてタイルの原点を示す情報を符号化する(S11814)。
 一方、三次元データ符号化装置は、タイルのサイズを示す情報については(S11813で「サイズ」)、上記した方法でサイズのビット数(例えば、上記したbb_size_bits)を算出し、算出したビット数を固定長としてタイルのサイズを示す情報を符号化する(S11815)。
 三次元データ符号化装置は、例えば、符号化したタイルに関する情報(タイルの原点を示す情報及びタイルのサイズを示す情報)と、ビット数を示す情報(bb_origin_bits及びbb_size_bits)を含むビットストリームを生成し、生成したビットストリームを三次元データ復号装置に送信する。
 図106は、本実施の形態に係る三次元データ復号装置の符号化されたタイル情報の復号処理の具体例を示すフローチャートである。
 まず、三次元データ復号装置は、タイルの原点のビット数を示す情報と、タイルのサイズのビット数を示す情報と、をメタデータ(付加情報)より取得する(S11821)。例えば、三次元データ復号装置は、符号化したタイルに関する情報(タイルの原点を示す情報及びタイルのサイズを示す情報)と、ビット数を示す情報(bb_origin_bits及びbb_size_bits)を含むビットストリームを取得し、取得したビットストリームにそれぞれ含まれる付加情報である、原点のビット数(例えば、上記したbb_origin_bits)を示す情報と、サイズのビット数(例えば、上記したbb_size_bits)を示す情報と、を取得する。
 次に、三次元データ復号装置は、符号化された原点を示す情報及び符号化されたサイズを示す情報の復号を開始する(S11822)。
 三次元データ復号装置は、符号化されたタイルの原点を示す情報については(S11823で「原点」)、原点のビット数を固定長として符号化されたタイルの原点を示す情報を復号する(S11824)。
 一方、三次元データ復号装置は、符号化されたタイルのサイズを示す情報については(S11823で「サイズ」)、サイズのビット数を固定長として符号化されたタイルのサイズを示す情報を復号する(S11825)。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図107に示す処理を行う。
 図107は、本実施の形態に係る三次元データ符号化装置の処理手順を示すフローチャートである。
 まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、タイル情報に基づいて、複数の三次元点の点群データを符号化する(S11831)。
 次に、三次元データ符号化装置は、符号化された点群データを含むビットストリームを生成する(S11832)。
 タイル情報は、N個のサブ空間の座標を示すN個のサブ空間座標情報を含む。また、N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含む。
 三次元データ符号化装置は、Nが1以上の場合、(i)上記したタイル情報の符号化(S11831)では、N個のサブ空間座標情報のそれぞれに含まれる3つの座標情報のそれぞれ(より具体的には、全て)を第1固定長で符号化する。また、この場合(Nが1以上の場合)、三次元データ符号化装置は、(ii)上記したビットストリームの生成(S11832)では、符号化されたN個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含むビットストリームを生成する。つまり、三次元データ符号化装置は、Nが1以上の場合、符号化された点群データと、符号化されたN個のサブ空間座標情報と、第1固定長情報と、を含むビットストリームを生成する。
 なお、タイル情報に基づいて符号化するとは、例えば、Nが0の場合には、ビットストリームにサブ空間に関する情報(例えば、サブ空間座標情報、後述するサイズ情報等のバウンディングボックスの位置、サイズ等を示す情報)が含まれていないことを確認して符号化し、Nが1以上の場合には、サブ空間に関する情報に基づいて符号化することを意味する。また、タイル情報に基づいて符号化するとは、例えば、上記した通り、タイル情報に基づいて点群データをスライス分割(つまり、点群データを分割)し、分割したスライス毎(つまり、分割した点群データ毎)に符号化することを意味する。
 タイル情報とは、例えば、上記したタイルメタデータであって、バウンディングボックスに関する情報である。
 対象空間とは、N個のサブ空間を含む空間である。
 サブ空間とは、例えば、上記したバウンディングボックス内の領域、言い換えると、バウンディングボックスに囲まれた領域である。
 サブ空間座標情報とは、例えば、サブ空間に関する情報の一例であって、サブ空間の座標(言い換えると、サブ空間の位置)を示す情報である。例えば、サブ空間座標情報は、三次元直交座標系における三軸方向の座標(本実施の形態では、原点)の座標を示す3つの座標情報を含む。3つの座標情報とは、例えば、三次元直交座標系xyz座標系である場合、上記したorigin_xを示す情報と、origin_yを示す情報と、origin_zを示す情報とであって、x軸方向の原点の座標を示す情報と、y軸方向の原点の座標を示す情報と、x軸方向の原点の座標を示す情報と、である。
 第1固定長は、上記した固定長の算出方法で算出されてもよいし、予め任意に設定されてもよい。
 これによれば、タイル情報に含まれるN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で符号化するために、例えば可変長で符号化する場合と比較して、符号化における処理量を削減できる。
 また、例えば、タイル情報は、N個のサブ空間のうちの少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含む。この場合、例えば、三次元データ符号化装置は、上記したタイル情報の符号化(S11831)では、当該少なくとも1つのサイズ情報のそれぞれ(より具体的には、全て)を第2固定長で符号化する。また、この場合、例えば、三次元データ符号化装置は、上記したビットストリームの生成(S11832)では、符号化された少なくとも1つのサイズ情報と、第2固定長を示す第2固定長情報と、を含むビットストリームを生成する。
 なお、この場合、三次元データ符号化装置は、例えば、N個のサブ空間座標情報と少なくとも1つのサイズ情報とに基づいて点群データを符号化する。
 サイズ情報とは、例えば、上記したバウンディングボックスの大きさを示す情報である。サイズ情報は、例えば、上記したsize_widthを示す情報と、size_heightを示す情報と、size_depthを示す情報と、を含む。
 第2固定長は、上記した固定長の算出方法で算出されてもよいし、予め任意に設定されてもよい。
 これによれば、タイル情報に含まれるサイズ情報を第2固定長で符号化するために、例えば可変長で符号化する場合と比較して、符号化における処理量をさらに削減できる。
 また、例えば、三次元データ符号化装置は、例えば、ステップS11831の前に、N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを判定する。この場合、例えば、三次元データ符号化装置は、上記したタイル情報の符号化(S11831)では、N個のサブ空間のうちの所定のサイズと一致しないサブ空間のサイズを示すサイズ情報を、上記した少なくとも1つのサイズ情報としてそれぞれ第2固定長で符号化する。また、この場合、例えば、三次元データ符号化装置は、上記したビットストリームの生成(S11832)では、N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを示すコモンフラグ情報を含むビットストリームを生成する。
 より具体的には、三次元データ符号化装置は、例えば、さらに、N個のサブ空間のそれぞれについて、サブ空間のサイズが所定のサイズと一致するか否かを判定した後に、当該サブ空間のサイズが所定のサイズと一致しない場合、上記したタイル情報の符号化(S11831)では、当該サブ空間のサイズを示すサイズ情報を、上記した少なくとも1つのサイズ情報のうちの1つとして第2固定長で符号化し、上記したビットストリームの生成(S11832)では、当該サブ空間のサイズが所定のサイズと一致しないことを示す第1コモンフラグ情報をビットストリームに含める。一方、三次元データ符号化装置は、例えば、当該サブ空間のサイズが所定のサイズと一致する場合、ビットストリームの生成(S11832)では、当該サブ空間のサイズが所定のサイズと一致することを示す第2コモンフラグ情報をビットストリームに含める。
 このように、三次元データ符号化装置は、例えば、N個のサブ空間それぞれについて、サブ空間のサイズが一致するか否かを判定し、一致すると判定した場合にはコモンフラグ情報によって当該サブ空間のサイズを示し、一致しないと判定した場合には具体的なサイズ(長さ)を示すサイズ情報によって当該サブ空間のサイズを示す。
 コモンフラグ情報は、例えば、上記したcommon_size_flagである。第1コモンフラグ情報とは、例えば、上記したcommon_size_flag[n]=0(nは0、1、又は2)である。第2コモンフラグ情報とは、例えば、上記したcommon_size_flag[n]=1である。
 これによれば、サブ空間のサイズが所定のサイズと一致する場合、当該サイズを示すサイズ情報を符号化してビットストリームに含めてなくても、サブ空間が所定のサイズと一致するか否かを示すコモンサイズフラグ情報をビットストリームに含めておくことで、ビットストリームを取得した三次元データ復号装置は、サブ空間のサイズを適切に決定できる。そのため、例えば、複数のサブ空間において所定のサイズと一致するサイズが多い場合には、生成するビットストリームのデータ量を削減でき、且つ、サイズ情報を符号化する処理量を削減できる。
 なお、上記した通り、例えば、サイズ情報には、widthを示す情報と、heightを示す情報と、depthを示す情報とが含まれる。widthと、heightと、depthとは、それぞれサイズの一例であり、コモンサイズフラグ情報は、widthと、heightと、depthとのそれぞれについて、所定のサイズと一致するか否かを示してもよい。
 また、三次元データ符号化装置は、所定のサイズを示すコモンサイズ情報が予め定められている場合には、当該コモンサイズ情報をビットストリームに含めなくてもよい。もちろん、三次元データ符号化装置は、例えば、N個のサブ空間のサイズのうち、少なくとも1つが所定のサイズと一致する場合、コモンサイズ情報をビットストリームに含めてもよい。
 また、例えば、第1固定長と第2固定長とは、同じ長さ(つまり、同じビット数)である。
 三次元データ符号化装置は、例えば、上記した固定長の算出方法で第1固定長及び第2固定長を算出し、長い(つまり、ビット数の多い)方を第1固定長及び第2固定長で共通の固定長として算出してもよいし、予め任意に設定されてもよい。
 これによれば、第1固定長及び第2固定長のそれぞれを示す情報を1つにできるため、生成するビットストリームのデータ量を削減できる。
 また、例えば、タイル情報は、対象空間の原点の座標を示すコモン原点情報を含む。この場合、例えば、三次元データ符号化装置は、上記したビットストリームの生成(S11832)では、コモン原点情報を含むビットストリームを生成する。
 コモン原点情報は、例えば、三次元直交座標系xyz座標系である場合、上記したcommon_origin_xを示す情報と、common_origin_yを示す情報と、common_origin_zを示す情報と、を含む情報である。
 これによれば、例えば対象空間の原点の座標が予め定められていなくても、ビットストリームを取得した三次元データ復号装置は、ビットストリームに含まれる情報に基づいて符号化された点群データを適切に復号できる。
 また、例えば、三次元データ符号化装置は、Nが0の場合、ビットストリームの生成(S11832)では、サブ空間に関する情報を含まないビットストリームを生成する。
 例えば、三次元データ符号化装置は、まず、Nが0であるか否かを判定し、判定結果に基づいて、上記した各処理(例えば、ステップS11831以降の処理)を実行する。
 これによれば、生成するビットストリームのデータ量を削減できる。
 また、例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。メモリには、上記処理を行う制御プログラムが記憶されていてもよい。
 また、本実施の形態に係る三次元データ復号装置は、図108に示す処理を行う。
 図108は、本実施の形態に係る三次元データ復号装置の処理手順を示すフローチャートである。
 まず、三次元データ復号装置は、複数の三次元点の符号化された点群データを含むビットストリームを取得する(S11841)。
 次に、三次元データ復号装置は、複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、タイル情報に基づいて、符号化された点群データを復号する(S11842)。
 タイル情報は、N個のサブ空間の座標を示すN個のサブ空間座標情報を含む。また、N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含む。
 三次元データ復号装置は、Nが1以上の場合、(i)上記したビットストリームの取得(S11841)では、符号化されたN個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含むビットストリームを取得する。また、この場合(Nが1以上の場合)、三次元データ復号装置は、(ii)上記した符号化されたタイル情報の復号(S11842)では、符号化されたN個のサブ空間座標情報のそれぞれに含まれる符号化された3つの座標情報のそれぞれを第1固定長で復号する。
 なお、タイル情報に基づいて復号するとは、例えば、Nが0の場合には、ビットストリームにサブ空間に関する情報が含まれていないことを確認して復号し、Nが1以上の場合には、サブ空間に関する情報に基づいて符号化することを意味する。また、タイル情報に基づいて復号するとは、例えば、スライス分割された1以上の点群データを、点群データ毎にタイル情報に基づいて復号することを意味する。
 これによれば、タイル情報に含まれる符号化されたN個のサブ空間座標情報のそれぞれの3つの座標情報のそれぞれを第1固定長で復号するために、例えば可変長で復号する場合と比較して、復号における処理量を削減できる。
 また、例えば、タイル情報は、N個のサブ空間のうちの少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含む。この場合、例えば、三次元データ復号装置は、上記したビットストリームの取得(S11841)では、符号化された少なくとも1つのサイズ情報と、第2固定長を示す第2固定長情報と、を含むビットストリームを取得する。また、この場合、例えば、三次元データ復号装置は、上記した符号化されたタイル情報の復号(S11842)では、符号化された少なくとも1つのサイズ情報のそれぞれを第2固定長で復号する。
 これによれば、タイル情報に含まれる符号化されたサイズ情報を第2固定長で復号するために、例えば可変長で復号する場合と比較して、復号における処理量を削減できる。
 また、例えば、三次元データ復号装置は、上記したビットストリームの取得(S11841)では、N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを示すコモンフラグ情報を含むビットストリームを取得する。また、この場合、三次元データ復号装置は、例えば、ステップS11841の次に、コモンフラグ情報に基づいて、N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを判定する。また、この場合、三次元データ復号装置は、上記した符号化されたタイル情報の復号(S11842)では、N個のサブ空間のうちの所定のサイズと一致しないサブ空間のサイズを示す符号化されたサイズ情報を、上記した符号化された少なくとも1つのサイズ情報としてそれぞれ第2固定長で復号する。
 より具体的には、三次元データ復号装置は、例えば、上記したビットストリームの取得(S11841)では、N個のサブ空間のそれぞれについて、サブ空間のサイズが所定のサイズと一致しないことを示す第1コモンフラグ情報、及び、サブ空間のサイズが所定のサイズと一致することを示す第2コモンフラグ情報のいずれかを含むビットストリームを取得する。この場合、三次元データ符号化装置は、例えば、さらに、第1コモンフラグ情報及び第2コモンフラグ情報のいずれかに基づいて、N個のサブ空間のそれぞれについて、サブ空間のサイズが所定のサイズと一致するか否かを判定する。三次元データ復号装置は、例えば、当該サブ空間のサイズが所定のサイズと一致しない場合、復号では、当該サブ空間のサイズを示すサイズ情報を、符号化された少なくとも1つのサイズ情報のうちの1つとして第2固定長で復号する。一方、例えば、三次元データ復号装置は、三次元データ復号装置は、例えば、当該サブ空間のサイズが所定のサイズと一致する場合、つまり、当該サブ空間のサイズを示す情報として第2コモンフラグ情報がビットストリームに含まれていた場合、当該サブ空間のサイズを所定のサイズと決定する。
 これによれば、サブ空間のサイズが所定のサイズと一致する場合、当該サイズを示すサイズ情報がビットストリームに含まれていなくても、サブ空間が所定のサイズと一致するか否かを示すコモンサイズフラグ情報がビットストリームに含まれていれば、サブ空間のサイズを適切に決定できる。そのため、例えば、複数のサブ空間において所定のサイズと一致するサイズが多い場合には、取得するビットストリームのデータ量を削減でき、且つ、サイズ情報を復号する処理量を削減できる。
 なお、コモンサイズ情報は、予め定められていてもよいし(例えば、コモンサイズ情報が、三次元データ復号装置が備えるメモリ等に予め記憶されていてもよいし)、ビットストリームに含まれていてもよい。
 また、例えば、第1固定長と第2固定長とは、同じ長さ(つまり、同じビット数)である。
 これによれば、第1固定長及び第2固定長のそれぞれを示す情報を1つにできるため、取得するビットストリームのデータ量を削減できる。
 また、例えば、タイル情報は、対象空間の原点の座標を示すコモン原点情報を含む。この場合、例えば、三次元データ復号装置は、上記したビットストリームの取得(S11841)では、コモン原点情報を含むビットストリームを取得する。
 これによれば、例えば対象空間の原点の座標が予め定められていなくても、ビットストリームに含まれる情報に基づいて符号化された点群データを適切に復号できる。
 また、例えば、三次元データ復号装置は、Nが0の場合、ビットストリームの取得(S11841)では、タイルサブ空間に関する情報を含まないビットストリームを取得する。
 これによれば、取得するビットストリームのデータ量を削減できる。
 また、例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。メモリには、上記処理を行う制御プログラムが記憶されていてもよい。
 (実施の形態10)
 次に、本実施の形態に係る三次元データ作成装置810の構成を説明する。図109は、本実施の形態に係る三次元データ作成装置810の構成例を示すブロック図である。この三次元データ作成装置810は、例えば、車両に搭載される。三次元データ作成装置810は、外部の交通監視クラウド、前走車両又は後続車両と三次元データの送受信を行うとともに、三次元データを作成及び蓄積する。
 三次元データ作成装置810は、データ受信部811と、通信部812と、受信制御部813と、フォーマット変換部814と、複数のセンサ815と、三次元データ作成部816と、三次元データ合成部817と、三次元データ蓄積部818と、通信部819と、送信制御部820と、フォーマット変換部821と、データ送信部822とを備える。
 データ受信部811は、交通監視クラウド又は前走車両から三次元データ831を受信する。三次元データ831は、例えば、自車両のセンサ815で検知不能な領域を含む、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
 通信部812は、交通監視クラウド又は前走車両と通信し、データ送信要求などを交通監視クラウド又は前走車両に送信する。
 受信制御部813は、通信部812を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
 フォーマット変換部814は、データ受信部811が受信した三次元データ831にフォーマット変換等を行うことで三次元データ832を生成する。また、フォーマット変換部814は、三次元データ831が圧縮又は符号化されている場合には、伸張又は復号処理を行う。
 複数のセンサ815は、LiDAR、可視光カメラ又は赤外線カメラなどの、車両の外部の情報を取得するセンサ群であり、センサ情報833を生成する。例えば、センサ情報833は、センサ815がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ815は複数でなくてもよい。
 三次元データ作成部816は、センサ情報833から三次元データ834を生成する。三次元データ834は、例えば、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
 三次元データ合成部817は、自車両のセンサ情報833に基づいて作成された三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ832を合成することで、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
 三次元データ蓄積部818は、生成された三次元データ835等を蓄積する。
 通信部819は、交通監視クラウド又は後続車両と通信し、データ送信要求などを交通監視クラウド又は後続車両に送信する。
 送信制御部820は、通信部819を介して、対応フォーマット等の情報を通信先と交換し、通信先と通信を確立する。また、送信制御部820は、三次元データ合成部817で生成された三次元データ832の三次元データ構築情報と、通信先からのデータ送信要求とに基づき、送信対象の三次元データの空間である送信領域を決定する。
 具体的には、送信制御部820は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む送信領域を決定する。また、送信制御部820は、三次元データ構築情報に基づいて送信可能な空間又は送信済み空間の更新有無等を判断することで送信領域を決定する。例えば、送信制御部820は、データ送信要求で指定された領域であり、かつ、対応する三次元データ835が存在する領域を送信領域に決定する。そして、送信制御部820は、通信先が対応するフォーマット、及び送信領域をフォーマット変換部821に通知する。
 フォーマット変換部821は、三次元データ蓄積部818に蓄積されている三次元データ835のうち、送信領域の三次元データ836を、受信側が対応しているフォーマットへ変換することで三次元データ837を生成する。なお、フォーマット変換部821は、三次元データ837を圧縮又は符号化することでデータ量を削減してもよい。
 データ送信部822は、三次元データ837を交通監視クラウド又は後続車両に送信する。この三次元データ837は、例えば、後続車両の死角になる領域を含む、自車両の前方のポイントクラウド、可視光映像、奥行き情報、又はセンサ位置情報などの情報を含む。
 なお、ここでは、フォーマット変換部814及び821にてフォーマット変換等が行われる例を述べたが、フォーマット変換は行われなくてもよい。
 このような構成により、三次元データ作成装置810は、自車両のセンサ815では検知できない領域の三次元データ831を外部から取得し、三次元データ831と自車両のセンサ815で検知したセンサ情報833に基づく三次元データ834とを合成することで三次元データ835を生成する。これにより、三次元データ作成装置810は、自車両のセンサ815で検知できない範囲の三次元データを生成できる。
 また、三次元データ作成装置810は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む三次元データを、交通監視クラウド又は後続車両等へ送信できる。
 次に、三次元データ作成装置810における後続車両への三次元データの送信手順について説明する。図110は、三次元データ作成装置810による交通監視クラウド又は後続車両へ三次元データを送信する手順の一例を示すフローチャートである。
 まず、三次元データ作成装置810は、自車両の前方道路上の空間を含む空間の三次元データ835を生成及び更新する(S801)。具体的には、三次元データ作成装置810は、自車両のセンサ情報833に基づいて作成した三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ831を合成するなどして、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
 次に、三次元データ作成装置810は、送信済みの空間に含まれる三次元データ835が変化したかを判定する(S802)。
 送信済みの空間に外部から車両又は人が進入するなどして、当該空間に含まれる三次元データ835に変化が生じた場合には(S802でYes)、三次元データ作成装置810は、変化が生じた空間の三次元データ835を含む三次元データを交通監視クラウド又は後続車両に送信する(S803)。
 なお、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データの送信タイミングに合わせて送信してもよいが、変化を検知した後すぐに送信してもよい。つまり、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データよりも優先して送信してもよい。
 また、三次元データ作成装置810は、変化が生じた空間の三次元データとして、変化が生じた空間の三次元データの全てを送信してもよいし、三次元データの差分(例えば出現又は消失した三次元点の情報、又は三次元点の変位情報など)のみを送信してもよい。
 また、三次元データ作成装置810は、変化が生じた空間の三次元データに先行して、急制動警報など自車両の危険回避動作に関するメタデータを後続車両へ送信してもよい。これによれば、後続車両は前走車両の急制動などを早期に認知でき、より早期に減速などの危険回避動作を開始できる。
 送信済みの空間に含まれる三次元データ835に変化が生じていない場合(S802でNo)、又は、ステップS803の後、三次元データ作成装置810は、自車両の前方距離Lにある所定の形状の空間に含まれる三次元データを、交通監視クラウド又は後続車両へ送信する(S804)。
 また、例えば、ステップS801~S804の処理は、所定の時間間隔で繰り返し行われる。
 また、三次元データ作成装置810は、現在の送信対象の空間の三次元データ835と、三次元地図とに差がない場合には、空間の三次元データ837を送信しなくてもよい。
 本実施の形態では、クライアント装置は、サーバ又は他のクライアント装置にセンサで得られたセンサ情報を送信する。
 まず、本実施の形態に係るシステムの構成を説明する。図111は、本実施の形態に係る三次元マップ及びセンサ情報の送受信システムの構成を示す図である。このシステムは、サーバ901と、クライアント装置902A及び902Bを含む。なお、クライアント装置902A及び902Bを特に区別しない場合には、クライアント装置902とも記す。
 クライアント装置902は、例えば、車両等の移動体に搭載される車載機器である。サーバ901は、例えば、交通監視クラウド等であり、複数のクライアント装置902と通信可能である。
 サーバ901は、クライアント装置902に、ポイントクラウドから構成される三次元マップを送信する。なお、三次元マップの構成はポイントクラウドに限定されず、メッシュ構造等、他の三次元データを表すものであってもよい。
 クライアント装置902は、サーバ901に、クライアント装置902が取得したセンサ情報を送信する。センサ情報は、例えば、LiDAR取得情報、可視光画像、赤外画像、デプス画像、センサ位置情報及び速度情報のうち少なくとも一つを含む。
 サーバ901とクライアント装置902との間で送受信されるデータは、データ削減のために圧縮されてもよいし、データの精度を維持するために非圧縮のままでも構わない。データを圧縮する場合、ポイントクラウドには例えば8分木構造に基づく三次元圧縮方式を用いることができる。また、可視光画像、赤外画像、及びデプス画像には二次元の画像圧縮方式を用いることできる。二次元の画像圧縮方式とは、例えば、MPEGで規格化されたMPEG-4 AVC又はHEVC等である。
 また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じてサーバ901で管理する三次元マップをクライアント装置902に送信する。なお、サーバ901はクライアント装置902からの三次元マップの送信要求を待たずに三次元マップを送信してもよい。例えば、サーバ901は、予め定められた空間にいる1つ以上のクライアント装置902に三次元マップをブロードキャストしても構わない。また、サーバ901は、一度送信要求を受けたクライアント装置902に、一定時間毎にクライアント装置902の位置に適した三次元マップを送信してもよい。また、サーバ901は、サーバ901が管理する三次元マップが更新される度にクライアント装置902に三次元マップを送信してもよい。
 クライアント装置902は、サーバ901に三次元マップの送信要求を出す。例えば、クライアント装置902が、走行時に自己位置推定を行いたい場合に、クライアント装置902は、三次元マップの送信要求をサーバ901に送信する。
 なお、次のような場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。クライアント装置902の保持する三次元マップが古い場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が三次元マップを取得してから一定期間が経過した場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
 クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る一定時刻前に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が、クライアント装置902が保持する三次元マップで示される空間の境界から予め定められた距離以内に存在する場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。また、クライアント装置902の移動経路及び移動速度が把握できている場合には、これらに基づき、クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る時刻を予測してもよい。
 クライアント装置902がセンサ情報から作成した三次元データと三次元マップとの位置合せ時の誤差が一定以上の場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
 クライアント装置902は、サーバ901から送信されたセンサ情報の送信要求に応じて、サーバ901にセンサ情報を送信する。なお、クライアント装置902はサーバ901からのセンサ情報の送信要求を待たずにセンサ情報をサーバ901に送ってもよい。例えば、クライアント装置902は、一度サーバ901からセンサ情報の送信要求を得た場合、一定期間の間、定期的にセンサ情報をサーバ901に送信してもよい。また、クライアント装置902は、クライアント装置902がセンサ情報を元に作成した三次元データと、サーバ901から得た三次元マップとの位置合せ時の誤差が一定以上の場合、クライアント装置902の周辺の三次元マップに変化が生じた可能性があると判断し、その旨とセンサ情報とをサーバ901に送信してもよい。
 サーバ901は、クライアント装置902にセンサ情報の送信要求を出す。例えば、サーバ901は、クライアント装置902から、GPS等のクライアント装置902の位置情報を受信する。サーバ901は、クライアント装置902の位置情報に基づき、サーバ901が管理する三次元マップにおいて情報が少ない空間にクライアント装置902が近づいていると判断した場合、新たな三次元マップを生成するためにクライアント装置902にセンサ情報の送信要求を出す。また、サーバ901は、三次元マップを更新したい場合、積雪時或いは災害時などの道路状況を確認したい場合、渋滞状況、或いは事件事故状況等を確認したい場合に、センサ情報の送信要求を出してもよい。
 また、クライアント装置902は、サーバ901から受け取るセンサ情報の送信要求の受信時における通信状態又は帯域に応じて、サーバ901に送信するセンサ情報のデータ量を設定してもよい。サーバ901に送信するセンサ情報のデータ量を設定するというのは、例えば、当該データそのものを増減させること、又は圧縮方式を適宜選択することである。
 図112は、クライアント装置902の構成例を示すブロック図である。クライアント装置902は、サーバ901からポイントクラウド等で構成される三次元マップを受信し、クライアント装置902のセンサ情報に基づいて作成した三次元データからクライアント装置902の自己位置を推定する。また、クライアント装置902は、取得したセンサ情報をサーバ901に送信する。
 クライアント装置902は、データ受信部1011と、通信部1012と、受信制御部1013と、フォーマット変換部1014と、複数のセンサ1015と、三次元データ作成部1016と、三次元画像処理部1017と、三次元データ蓄積部1018と、フォーマット変換部1019と、通信部1020と、送信制御部1021と、データ送信部1022とを備える。
 データ受信部1011は、サーバ901から三次元マップ1031を受信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
 通信部1012は、サーバ901と通信し、データ送信要求(例えば、三次元マップの送信要求)などをサーバ901に送信する。
 受信制御部1013は、通信部1012を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
 フォーマット変換部1014は、データ受信部1011が受信した三次元マップ1031にフォーマット変換等を行うことで三次元マップ1032を生成する。また、フォーマット変換部1014は、三次元マップ1031が圧縮又は符号化されている場合には、伸張又は復号処理を行う。なお、フォーマット変換部1014は、三次元マップ1031が非圧縮データであれば、伸張又は復号処理を行わない。
 複数のセンサ1015は、LiDAR、可視光カメラ、赤外線カメラ、又はデプスセンサなど、クライアント装置902が搭載されている車両の外部の情報を取得するセンサ群であり、センサ情報1033を生成する。例えば、センサ情報1033は、センサ1015がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ1015は複数でなくてもよい。
 三次元データ作成部1016は、センサ情報1033に基づいて自車両の周辺の三次元データ1034を作成する。例えば、三次元データ作成部1016は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いて自車両の周辺の色情報付きのポイントクラウドデータを作成する。
 三次元画像処理部1017は、受信したポイントクラウド等の三次元マップ1032と、センサ情報1033から生成した自車両の周辺の三次元データ1034とを用いて、自車両の自己位置推定処理等を行う。なお、三次元画像処理部1017は、三次元マップ1032と三次元データ1034とを合成することで自車両の周辺の三次元データ1035を作成し、作成した三次元データ1035を用いて自己位置推定処理を行ってもよい。
 三次元データ蓄積部1018は、三次元マップ1032、三次元データ1034及び三次元データ1035等を蓄積する。
 フォーマット変換部1019は、センサ情報1033を、受信側が対応しているフォーマットへ変換することでセンサ情報1037を生成する。なお、フォーマット変換部1019は、センサ情報1037を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1019は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1019は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
 通信部1020は、サーバ901と通信し、データ送信要求(センサ情報の送信要求)などをサーバ901から受信する。
 送信制御部1021は、通信部1020を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 データ送信部1022は、センサ情報1037をサーバ901に送信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報など、複数のセンサ1015によって取得した情報を含む。
 次に、サーバ901の構成を説明する。図113は、サーバ901の構成例を示すブロック図である。サーバ901は、クライアント装置902から送信されたセンサ情報を受信し、受信したセンサ情報に基づいて三次元データを作成する。サーバ901は、作成した三次元データを用いて、サーバ901が管理する三次元マップを更新する。また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じて、更新した三次元マップをクライアント装置902に送信する。
 サーバ901は、データ受信部1111と、通信部1112と、受信制御部1113と、フォーマット変換部1114と、三次元データ作成部1116と、三次元データ合成部1117と、三次元データ蓄積部1118と、フォーマット変換部1119と、通信部1120と、送信制御部1121と、データ送信部1122とを備える。
 データ受信部1111は、クライアント装置902からセンサ情報1037を受信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報などを含む。
 通信部1112は、クライアント装置902と通信し、データ送信要求(例えば、センサ情報の送信要求)などをクライアント装置902に送信する。
 受信制御部1113は、通信部1112を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 フォーマット変換部1114は、受信したセンサ情報1037が圧縮又は符号化されている場合には、伸張又は復号処理を行うことでセンサ情報1132を生成する。なお、フォーマット変換部1114は、センサ情報1037が非圧縮データであれば、伸張又は復号処理を行わない。
 三次元データ作成部1116は、センサ情報1132に基づいてクライアント装置902の周辺の三次元データ1134を作成する。例えば、三次元データ作成部1116は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いてクライアント装置902の周辺の色情報付ポイントクラウドデータを作成する。
 三次元データ合成部1117は、センサ情報1132を元に作成した三次元データ1134を、サーバ901が管理する三次元マップ1135に合成することで三次元マップ1135を更新する。
 三次元データ蓄積部1118は、三次元マップ1135等を蓄積する。
 フォーマット変換部1119は、三次元マップ1135を、受信側が対応しているフォーマットへ変換することで三次元マップ1031を生成する。なお、フォーマット変換部1119は、三次元マップ1135を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1119は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1119は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
 通信部1120は、クライアント装置902と通信し、データ送信要求(三次元マップの送信要求)などをクライアント装置902から受信する。
 送信制御部1121は、通信部1120を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 データ送信部1122は、三次元マップ1031をクライアント装置902に送信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
 次に、クライアント装置902の動作フローについて説明する。図114は、クライアント装置902による三次元マップ取得時の動作を示すフローチャートである。
 まず、クライアント装置902は、サーバ901へ三次元マップ(ポイントクラウド等)の送信を要求する(S1001)。このとき、クライアント装置902は、GPS等で得られたクライアント装置902の位置情報を合わせて送信することで、その位置情報に関連する三次元マップの送信をサーバ901に要求してもよい。
 次に、クライアント装置902は、サーバ901から三次元マップを受信する(S1002)。受信した三次元マップが圧縮データであれば、クライアント装置902は、受信した三次元マップを復号して非圧縮の三次元マップを生成する(S1003)。
 次に、クライアント装置902は、複数のセンサ1015で得られたセンサ情報1033からクライアント装置902の周辺の三次元データ1034を作成する(S1004)。次に、クライアント装置902は、サーバ901から受信した三次元マップ1032と、センサ情報1033から作成した三次元データ1034とを用いてクライアント装置902の自己位置を推定する(S1005)。
 図115は、クライアント装置902によるセンサ情報の送信時の動作を示すフローチャートである。まず、クライアント装置902は、サーバ901からセンサ情報の送信要求を受信する(S1011)。送信要求を受信したクライアント装置902は、センサ情報1037をサーバ901に送信する(S1012)。なお、クライアント装置902は、センサ情報1033が複数のセンサ1015で得られた複数の情報を含む場合、各情報を、各情報に適した圧縮方式で圧縮することでセンサ情報1037を生成してもよい。
 次に、サーバ901の動作フローについて説明する。図116は、サーバ901によるセンサ情報の取得時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902へセンサ情報の送信を要求する(S1021)。次に、サーバ901は、当該要求に応じてクライアント装置902から送信されたセンサ情報1037を受信する(S1022)。次に、サーバ901は、受信したセンサ情報1037を用いて三次元データ1134を作成する(S1023)。次に、サーバ901は、作成した三次元データ1134を三次元マップ1135に反映する(S1024)。
 図117は、サーバ901による三次元マップの送信時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902から三次元マップの送信要求を受信する(S1031)。三次元マップの送信要求を受信したサーバ901は、クライアント装置902へ三次元マップ1031を送信する(S1032)。このとき、サーバ901は、クライアント装置902の位置情報に合わせてその付近の三次元マップを抽出し、抽出した三次元マップを送信してもよい。また、サーバ901は、ポイントクラウドで構成される三次元マップを、例えば8分木構造による圧縮方式等を用いて圧縮し、圧縮後の三次元マップを送信してもよい。
 以下、本実施の形態の変形例について説明する。
 サーバ901は、クライアント装置902から受信したセンサ情報1037を用いてクライアント装置902の位置付近の三次元データ1134を作成する。次に、サーバ901は、作成した三次元データ1134と、サーバ901が管理する同エリアの三次元マップ1135とのマッチングを行うことによって、三次元データ1134と三次元マップ1135との差分を算出する。サーバ901は、差分が予め定められた閾値以上の場合は、クライアント装置902の周辺で何らかの異常が発生したと判断する。例えば、地震等の自然災害によって地盤沈下等が発生した際などに、サーバ901が管理する三次元マップ1135と、センサ情報1037を基に作成した三次元データ1134との間に大きな差が発生することが考えられる。
 センサ情報1037は、センサの種類、センサの性能、及びセンサの型番のうち少なくとも一つを示す情報を含んでもよい。また、センサ情報1037に、センサの性能に応じたクラスID等が付加されてもよい。例えば、センサ情報1037がLiDARで取得された情報である場合、数mm単位の精度で情報を取得できるセンサをクラス1、数cm単位の精度で情報を取得できるセンサをクラス2、数m単位の精度で情報を取得できるセンサをクラス3のように、センサの性能に識別子を割り当てることが考えられる。また、サーバ901は、センサの性能情報等を、クライアント装置902の型番から推定してもよい。例えば、クライアント装置902が車両に搭載されている場合、サーバ901は、当該車両の車種からセンサのスペック情報を判断してもよい。この場合、サーバ901は、車両の車種の情報を事前に取得していてもよいし、センサ情報に、当該情報が含まれてもよい。また、サーバ901は取得したセンサ情報1037を用いて、センサ情報1037を用いて作成した三次元データ1134に対する補正の度合いを切り替えてもよい。例えば、センサ性能が高精度(クラス1)である場合、サーバ901は、三次元データ1134に対する補正を行わない。センサ性能が低精度(クラス3)である場合、サーバ901は、三次元データ1134に、センサの精度に応じた補正を適用する。例えば、サーバ901は、センサの精度が低いほど補正の度合い(強度)を強くする。
 サーバ901は、ある空間にいる複数のクライアント装置902に同時にセンサ情報の送信要求を出してもよい。サーバ901は、複数のクライアント装置902から複数のセンサ情報を受信した場合に、全てのセンサ情報を三次元データ1134の作成に利用する必要はなく、例えば、センサの性能に応じて、利用するセンサ情報を選択してもよい。例えば、サーバ901は、三次元マップ1135を更新する場合、受信した複数のセンサ情報の中から高精度なセンサ情報(クラス1)を選別し、選別したセンサ情報を用いて三次元データ1134を作成してもよい。
 サーバ901は、交通監視クラウド等のサーバのみに限定されず、他のクライアント装置(車載)であってもよい。図118は、この場合のシステム構成を示す図である。
 例えば、クライアント装置902Cが近くにいるクライアント装置902Aにセンサ情報の送信要求を出し、クライアント装置902Aからセンサ情報を取得する。そして、クライアント装置902Cは、取得したクライアント装置902Aのセンサ情報を用いて三次元データを作成し、クライアント装置902Cの三次元マップを更新する。これにより、クライアント装置902Cは、クライアント装置902Aから取得可能な空間の三次元マップを、クライアント装置902Cの性能を活かして生成できる。例えば、クライアント装置902Cの性能が高い場合に、このようなケースが発生すると考えられる。
 また、この場合、センサ情報を提供したクライアント装置902Aは、クライアント装置902Cが生成した高精度な三次元マップを取得する権利が与えられる。クライアント装置902Aは、その権利に従ってクライアント装置902Cから高精度な三次元マップを受信する。
 また、クライアント装置902Cは近くにいる複数のクライアント装置902(クライアント装置902A及びクライアント装置902B)にセンサ情報の送信要求を出してもよい。クライアント装置902A又はクライアント装置902Bのセンサが高性能である場合には、クライアント装置902Cは、この高性能なセンサで得られたセンサ情報を用いて三次元データを作成できる。
 図119は、サーバ901及びクライアント装置902の機能構成を示すブロック図である。サーバ901は、例えば、三次元マップを圧縮及び復号する三次元マップ圧縮/復号処理部1201と、センサ情報を圧縮及び復号するセンサ情報圧縮/復号処理部1202とを備える。
 クライアント装置902は、三次元マップ復号処理部1211と、センサ情報圧縮処理部1212とを備える。三次元マップ復号処理部1211は、圧縮された三次元マップの符号化データを受信し、符号化データを復号して三次元マップを取得する。センサ情報圧縮処理部1212は、取得したセンサ情報から作成した三次元データの代わりに、センサ情報そのものを圧縮し、圧縮したセンサ情報の符号化データをサーバ901へ送信する。この構成により、クライアント装置902は、三次元マップ(ポイントクラウド等)を復号する処理を行う処理部(装置又はLSI)を内部に保持すればよく、三次元マップ(ポイントクラウド等)の三次元データを圧縮する処理を行う処理部を内部に保持する必要がない。これにより、クライアント装置902のコスト及び消費電力等を抑えることができる。
 以上のように、本実施の形態に係るクライアント装置902は、移動体に搭載され、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1033から、移動体の周辺の三次元データ1034を作成する。クライアント装置902は、作成された三次元データ1034を用いて移動体の自己位置を推定する。クライアント装置902は、取得したセンサ情報1033をサーバ901又は他のクライアント装置902に送信する。
 これによれば、クライアント装置902は、センサ情報1033をサーバ901等に送信する。これにより、三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、クライアント装置902は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
 また、クライアント装置902は、さらに、サーバ901に三次元マップの送信要求を送信し、サーバ901から三次元マップ1031を受信する。クライアント装置902は、自己位置の推定では、三次元データ1034と三次元マップ1032とを用いて、自己位置を推定する。
 また、センサ情報1033は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
 また、センサ情報1033は、センサの性能を示す情報を含む。
 また、クライアント装置902は、センサ情報1033を符号化又は圧縮し、センサ情報の送信では、符号化又は圧縮後のセンサ情報1037を、サーバ901又は他のクライアント装置902に送信する。これによれば、クライアント装置902は、伝送されるデータ量を削減できる。
 例えば、クライアント装置902は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係るサーバ901は、移動体に搭載されるクライアント装置902と通信可能であり、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1037をクライアント装置902から受信する。サーバ901は、受信したセンサ情報1037から、移動体の周辺の三次元データ1134を作成する。
 これによれば、サーバ901は、クライアント装置902から送信されたセンサ情報1037を用いて三次元データ1134を作成する。これにより、クライアント装置902が三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、サーバ901は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
 また、サーバ901は、さらに、クライアント装置902にセンサ情報の送信要求を送信する。
 また、サーバ901は、さらに、作成された三次元データ1134を用いて三次元マップ1135を更新し、クライアント装置902からの三次元マップ1135の送信要求に応じて三次元マップ1135をクライアント装置902に送信する。
 また、センサ情報1037は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
 また、センサ情報1037は、センサの性能を示す情報を含む。
 また、サーバ901は、さらに、センサの性能に応じて、三次元データを補正する。これによれば、当該三次元データ作成方法は、三次元データの品質を向上できる。
 また、サーバ901は、センサ情報の受信では、複数のクライアント装置902から複数のセンサ情報1037を受信し、複数のセンサ情報1037に含まれるセンサの性能を示す複数の情報に基づき、三次元データ1134の作成に用いるセンサ情報1037を選択する。これによれば、サーバ901は、三次元データ1134の品質を向上できる。
 また、サーバ901は、受信したセンサ情報1037を復号又は伸張し、復号又は伸張後のセンサ情報1132から、三次元データ1134を作成する。これによれば、サーバ901は、伝送されるデータ量を削減できる。
 例えば、サーバ901は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 以下、変形例について説明する。図120は、本実施の形態に係るシステムの構成を示す図である。図120に示すシステムは、サーバ2001と、クライアント装置2002Aと、クライアント装置2002Bとを含む。
 クライアント装置2002A及びクライアント装置2002Bは、車両等の移動体に搭載され、センサ情報をサーバ2001に送信する。サーバ2001は、三次元マップ(ポイントクラウド)をクライアント装置2002A及びクライアント装置2002Bに送信する。
 クライアント装置2002Aは、センサ情報取得部2011と、記憶部2012と、データ送信可否判定部2013とを備える。なお、クライアント装置2002Bの構成も同様である。また、以下ではクライアント装置2002Aとクライアント装置2002Bとを特に区別しない場合には、クライアント装置2002とも記載する。
 図121は、本実施の形態に係るクライアント装置2002の動作を示すフローチャートである。
 センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)を用いて各種センサ情報を取得する。つまり、センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)により得られた、移動体の周辺状況を示すセンサ情報を取得する。また、センサ情報取得部2011は、取得したセンサ情報を記憶部2012に記憶する。このセンサ情報は、LiDAR取得情報、可視光画像、赤外画像及びデプス画像の少なくとも一つを含む。また、センサ情報は、センサ位置情報、速度情報、取得時刻情報、及び取得場所情報の少なくとも一つを含んでもよい。センサ位置情報は、センサ情報を取得したセンサの位置を示す。速度情報は、センサがセンサ情報を取得した際の移動体の速度を示す。取得時刻情報は、センサ情報がセンサにより取得された時刻を示す。取得場所情報は、センサ情報がセンサにより取得された際の移動体又はセンサの位置を示す。
 次に、データ送信可否判定部2013は、移動体(クライアント装置2002)がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定する(S2002)。例えば、データ送信可否判定部2013は、GPS等の情報を用いて、クライアント装置2002がいる場所及び時刻を特定し、データを送信可能かどうかを判定してもよい。また、データ送信可否判定部2013は、特定のアクセスポイントに接続できるかどうかで、データを送信可能かどうかを判定してもよい。
 クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合(S2002でYes)、センサ情報をサーバ2001に送信する(S2003)。つまり、クライアント装置2002がセンサ情報をサーバ2001に送信できるような状況になった時点で、クライアント装置2002は、保持しているセンサ情報をサーバ2001に送信する。例えば、交差点等に高速通信が可能なミリ波のアクセスポイントが設置される。クライアント装置2002は、交差点内に入った時点で、ミリ波通信を用いてクライアント装置2002が保持するセンサ情報を高速にサーバ2001に送信する。
 次に、クライアント装置2002は、サーバ2001に送信済みのセンサ情報を記憶部2012から削除する(S2004)。なお、クライアント装置2002は、サーバ2001に送信していないセンサ情報が所定の条件を満たした場合に、当該センサ情報を削除してもよい。例えば、クライアント装置2002は、保持するセンサ情報の取得時刻が現在時刻から一定時刻前より古くなった時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された時刻と、現在の時刻との差が、予め定められた時間を超えた場合にセンサ情報を記憶部2012から削除してもよい。また、クライアント装置2002は、保持するセンサ情報の取得場所が現在地点から一定距離より離れた時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された際の移動体又はセンサの位置と、現在の移動体又はセンサの位置との差が、予め定められた距離を超えた場合にセンサ情報を記憶部2012から削除してもよい。これにより、クライアント装置2002の記憶部2012の容量を抑制することができる。
 クライアント装置2002によるセンサ情報の取得が終了していない場合(S2005でNo)、クライアント装置2002は、ステップS2001以降の処理を再度行う。また、クライアント装置2002によるセンサ情報の取得が終了した場合(S2005でYes)、クライアント装置2002は処理を終了する。
 また、クライアント装置2002はサーバ2001に送信するセンサ情報を通信状況に合わせて選択してもよい。例えば、クライアント装置2002は、高速通信が可能な場合は、記憶部2012に保持されるサイズが大きいセンサ情報(例えばLiDAR取得情報等)を優先して送信する。また、クライアント装置2002は、高速通信が難しい場合は、記憶部2012に保持されるサイズが小さく優先度の高いセンサ情報(例えば可視光画像)を送信する。これにより、クライアント装置2002は記憶部2012に保持したセンサ情報をネットワークの状況に応じて効率的にサーバ2001に送信できる。
 また、クライアント装置2002は、上記現在時刻を示す時刻情報、及び、現在地点を示す場所情報をサーバ2001から取得してもよい。また、クライアント装置2002は、取得した時刻情報及び場所情報に基づきセンサ情報の取得時刻及び取得場所を決定してもよい。つまり、クライアント装置2002は、サーバ2001から時刻情報を取得し、取得した時刻情報を用いて取得時刻情報を生成してもよい。また、クライアント装置2002は、サーバ2001から場所情報を取得し、取得した場所情報を用いて取得場所情報を生成してもよい。
 例えば時刻情報については、サーバ2001とクライアント装置2002とはNTP(Network Time Protocol)、又はPTP(Precision Time Protocol)等の仕組みを用いて時刻同期を行う。これにより、クライアント装置2002は正確な時刻情報を取得できる。また、サーバ2001と複数のクライアント装置との間で時刻を同期できるので、別々のクライアント装置2002が取得したセンサ情報内の時刻を同期できる。よって、サーバ2001は、同期された時刻を示すセンサ情報を取り扱える。なお、時刻同期の仕組みはNTP又はPTP以外のどのような方法でも構わない。また、上記時刻情報及び場所情報としてGPSの情報が用いられてもよい。
 サーバ2001は、時刻又は場所を指定して複数のクライアント装置2002からセンサ情報を取得しても構わない。例えば何らかの事故が発生した場合に、その付近にいたクライアントを探すため、サーバ2001は、事故発生時刻と場所を指定して複数のクライアント装置2002にセンサ情報送信要求をブロードキャスト送信する。そして、該当する時刻と場所のセンサ情報を持つクライアント装置2002は、サーバ2001にセンサ情報を送信する。つまり、クライアント装置2002は、サーバ2001から場所及び時刻を指定する指定情報を含むセンサ情報送信要求を受信する。クライアント装置2002は、記憶部2012に、指定情報で示される場所及び時刻において得られたセンサ情報が記憶されており、かつ、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合、指定情報で示される場所及び時刻において得られたセンサ情報をサーバ2001に送信する。これにより、サーバ2001は、事故の発生に関連するセンサ情報を複数のクライアント装置2002から取得し、事故解析等に利用できる。
 なお、クライアント装置2002は、サーバ2001からのセンサ情報送信要求を受信した場合に、センサ情報の送信を拒否してもよい。また、複数のセンサ情報のうち、どのセンサ情報を送信可能かどうかを事前にクライアント装置2002が設定してもよい。または、サーバ2001は、センサ情報の送信の可否を都度クライアント装置2002に問い合わせてもよい。
 また、サーバ2001にセンサ情報を送信したクライアント装置2002にはポイントが付与されてもよい。このポイントは、例えば、ガソリン購入費、EV(Electric Vehicle)の充電費、高速道路の通行料、又はレンタカー費用などの支払いに使用できる。また、サーバ2001は、センサ情報を取得した後、センサ情報の送信元のクライアント装置2002を特定するための情報を削除してもよい。例えば、この情報は、クライアント装置2002のネットワークアドレスなどの情報である。これによりセンサ情報を匿名化することができるので、クライアント装置2002のユーザは安心して、クライアント装置2002からセンサ情報をサーバ2001に送信できる。また、サーバ2001は、複数のサーバから構成されてもよい。例えば複数のサーバでセンサ情報が共有化されることで、あるサーバが故障しても他のサーバがクライアント装置2002と通信できる。これにより、サーバ故障によるサービスの停止を回避できる。
 また、センサ情報送信要求で指定される指定場所は事故の発生位置などを示すものであり、センサ情報送信要求で指定される指定時刻におけるクライアント装置2002の位置とは異なることがある。よって、サーバ2001は、例えば、指定場所として周辺XXm以内などの範囲を指定することで、当該範囲内に存在するクライアント装置2002に対して情報取得を要求できる。指定時刻についても同様に、サーバ2001は、ある時刻から前後N秒以内など範囲を指定してもよい。これにより、サーバ2001は、「時刻:t-Nからt+Nにおいて、場所:絶対位置SからXXm以内」に存在していたクライアント装置2002からセンサ情報が取得できる。クライアント装置2002は、LiDARなどの三次元データを送信する際に、時刻tの直後に生成したデータを送信してもよい。
 また、サーバ2001は、指定場所として、センサ情報取得対象となるクライアント装置2002の場所を示す情報と、センサ情報が欲しい場所とをそれぞれ別に指定してもよい。例えば、サーバ2001は、絶対位置SからYYmの範囲を少なくとも含むセンサ情報を、絶対位置SからXXm以内に存在したクライアント装置2002から取得することを指定する。クライアント装置2002は、送信する三次元データを選択する際には、指定された範囲のセンサ情報を少なくとも含むように、1つ以上のランダムアクセス可能な単位の三次元データを選択する。また、クライアント装置2002は、可視光画像を送信する際は、少なくとも時刻tの直前又は直後のフレームを含む、時間的に連続した複数の画像データを送信してもよい。
 クライアント装置2002が5G或いはWiFi、又は、5Gにおける複数モードなど、複数の物理ネットワークをセンサ情報の送信に利用できる場合には、クライアント装置2002は、サーバ2001から通知された優先順位に従って利用するネットワークを選択してもよい。または、クライアント装置2002自身が送信データのサイズに基づいて適切な帯域を確保できるネットワークを選択してもよい。または、クライアント装置2002は、データ送信にかかる費用等に基づいて利用するネットワークを選択してもよい。また、サーバ2001からの送信要求には、クライアント装置2002が時刻Tまでに送信を開始可能な場合に送信を行う、など、送信期限を示す情報が含まれてもよい。サーバ2001は、期限内に十分なセンサ情報が取得できなければ再度送信要求を発行してもよい。
 センサ情報は、圧縮又は非圧縮のセンサデータと共に、センサデータの特性を示すヘッダ情報を含んでもよい。クライアント装置2002は、ヘッダ情報を、センサデータとは異なる物理ネットワーク又は通信プロトコルを介してサーバ2001に送信してもよい。例えば、クライアント装置2002は、センサデータの送信に先立ってヘッダ情報をサーバ2001に送信する。サーバ2001は、ヘッダ情報の解析結果に基づいてクライアント装置2002のセンサデータを取得するかどうかを判断する。例えば、ヘッダ情報は、LiDARの点群取得密度、仰角、或いはフレームレート、又は、可視光画像の解像度、SN比、或いはフレームレートなどを示す情報を含んでもよい。これにより、サーバ2001は、決定した品質のセンサデータを有するクライアント装置2002からセンサ情報を取得できる。
 以上のように、クライアント装置2002は、移動体に搭載され、移動体に搭載されたセンサにより得られた、移動体の周辺状況を示すセンサ情報を取得し、センサ情報を記憶部2012に記憶する。クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定し、移動体がサーバへセンサ情報を送信可能な環境に存在すると判定した場合、センサ情報をサーバ2001に送信する。
 また、クライアント装置2002は、さらに、センサ情報から、移動体の周辺の三次元データを作成し、作成された三次元データを用いて移動体の自己位置を推定する。
 また、クライアント装置2002は、さらに、サーバ2001に三次元マップの送信要求を送信し、サーバ2001から三次元マップを受信する。クライアント装置2002は、自己位置の推定では、三次元データと三次元マップとを用いて、自己位置を推定する。
 なお、上記クライアント装置2002による処理は、クライアント装置2002における情報送信方法として実現されてもよい。
 また、クライアント装置2002は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行ってもよい。
 次に、本実施の形態に係るセンサ情報収集システムについて説明する。図122は、本実施の形態に係るセンサ情報収集システムの構成を示す図である。図122に示すように本実施の形態に係るセンサ情報収集システムは、端末2021Aと、端末2021Bと、通信装置2022Aと、通信装置2022Bと、ネットワーク2023と、データ収集サーバ2024と、地図サーバ2025と、クライアント装置2026とを含む。なお、端末2021A及び端末2021Bを特に区別しない場合には端末2021とも記載する。通信装置2022A及び通信装置2022Bを特に区別しない場合には通信装置2022とも記載する。
 データ収集サーバ2024は、端末2021が備えるセンサで得られたセンサデータなどのデータを三次元空間中の位置と対応付けられた位置関連データとして収集する。
 センサデータとは、例えば、端末2021の周囲の状態または端末2021の内部の状態などを、端末2021が備えるセンサを用いて取得したデータである。端末2021は、端末2021と直接通信可能、又は同一の通信方式で一或いは複数の中継装置を中継して通信可能な位置にある一又は複数のセンサ機器から収集したセンサデータをデータ収集サーバ2024に送信する。
 位置関連データに含まれるデータは、例えば、端末自身又は端末が備える機器の動作状態、動作ログ、サービスの利用状況などを示す情報を含んでいてもよい。また、位置関連データに含まれるデータは、端末2021の識別子と端末2021の位置又は移動経路などとを対応付けた情報などを含んでもよい。
 位置関連データに含まれる、位置を示す情報は、例えば三次元地図データなどの三次元データにおける位置を示す情報と対応付けられている。位置を示す情報の詳細については後述する。
 位置関連データは、位置を示す情報である位置情報に加えて、前述した時刻情報と、位置関連データに含まれるデータの属性、又は当該データを生成したセンサの種類(例えば型番など)を示す情報とのうち少なくとも一つを含んでいてもよい。位置情報及び時刻情報は、位置関連データのヘッダ領域又は位置関連データを格納するフレームのヘッダ領域に格納されていてもよい。また、位置情報及び時刻情報は、位置関連データと対応付けられたメタデータとして位置関連データとは別に送信及び/又は格納されてもよい。
 地図サーバ2025は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置からの要求に応じて三次元地図データなどの三次元データを送信する。また、前述した各実施の形態で説明したように、地図サーバ2025は、端末2021から送信されたセンサ情報を用いて、三次元データを更新する機能などを備えていてもよい。
 データ収集サーバ2024は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置から位置関連データを収集し、収集した位置関連データを内部又は他のサーバ内の記憶装置に格納する。また、データ収集サーバ2024は、収集した位置関連データ又は位置関連データに基づいて生成した三次元地図データのメタデータなどを、端末2021からの要求に応じて端末2021に対して送信する。
 ネットワーク2023は、例えばインターネットなどの通信ネットワークである。端末2021は、通信装置2022を介してネットワーク2023に接続されている。通信装置2022は、一つの通信方式、又は複数の通信方式を切り替えながら端末2021と通信を行う。通信装置2022は、例えば、(1)LTE(Long Term Evolution)などの基地局、(2)WiFi或いはミリ波通信などのアクセスポイント(AP)、(3)SIGFOX、LoRaWAN或いはWi-SUNなどのLPWA(Low Power Wide Area) Networkのゲートウェイ、又は、(4)DVB-S2などの衛星通信方式を用いて通信を行う通信衛星である。
 なお、基地局は、NB-IoT(Narrow Band-IoT)又はLTE-MなどのLPWAに分類される方式で端末2021との通信を行っていてもよいし、これらの方式を切り替えながら端末2021との通信を行っていてもよい。
 ここでは、端末2021が2種類の通信方式を用いる通信装置2022と通信する機能を備え、これらの通信方式のいずれかを用いて、またはこれらの複数の通信方式及び直接の通信相手となる通信装置2022を切り替えながら地図サーバ2025又はデータ収集サーバ2024と通信を行う場合を例に挙げるが、センサ情報収集システム及び端末2021の構成はこれに限らない。例えば、端末2021は、複数の通信方式での通信機能を有さず、いずれか一つの通信方式で通信を行う機能を備えてもよい。また、端末2021は、3つ以上の通信方式に対応していてもよい。また、端末2021ごとに対応する通信方式が異なっていてもよい。
 端末2021は、例えば図112に示したクライアント装置902の構成を備える。端末2021は、受信した三次元データを用いて自己位置などの位置推定を行う。また、端末2021は、センサから取得したセンサデータと位置推定の処理により得られた位置情報とを対応付けて位置関連データを生成する。
 位置関連データに付加される位置情報は、例えば、三次元データで用いられている座標系における位置を示す。例えば、位置情報は、緯度及び経度の値で表される座標値である。このとき、端末2021は、座標値と共に当該座標値の基準となる座標系、及び位置推定に用いた三次元データを示す情報を位置情報に含めてもよい。また、座標値は高度の情報を含んでいてもよい。
 また、位置情報は、前述した三次元データの符号化に用いることができるデータの単位又は空間の単位に対応付けられていてもよい。この単位とは、例えば、WLD、GOS、SPC、VLM、又はVXLなどである。このとき、位置情報は、例えば位置関連データに対応するSPCなどのデータ単位を特定するための識別子で表現される。なお、位置情報は、SPCなどのデータ単位を特定するための識別子に加えて、当該SPCなどのデータ単位を含む三次元空間を符号化した三次元データを示す情報、又は当該SPC内での詳細な位置を示す情報などを含んでいてもよい。三次元データを示す情報とは、例えば、当該三次元データのファイル名である。
 このように、当該システムは、三次元データを用いた位置推定に基づく位置情報と対応付けた位置関連データを生成することにより、GPSを用いて取得されたクライアント装置(端末2021)の自己位置に基づく位置情報をセンサ情報に付加する場合よりも精度の高い位置情報をセンサ情報に付与することができる。その結果、位置関連データを他の装置が他のサービスにおいて利用する場合においても、同じ三次元データに基づいて位置推定を行うことで、位置関連データに対応する位置を実空間でより正確に特定できる可能性がある。
 なお、本実施の形態では、端末2021から送信されるデータが位置関連データの場合を例に挙げて説明したが、端末2021から送信されるデータは位置情報と関連付けられていないデータであってもよい。すなわち、他の実施の形態で説明した三次元データ又はセンサデータの送受信が本実施の形態で説明したネットワーク2023を介して行われてもよい。
 次に、三次元又は二次元の実空間又は地図空間における位置を示す位置情報の異なる例について説明する。位置関連データに付加される位置情報は、三次元データ中の特徴点に対する相対位置を示す情報であってもよい。ここで、位置情報の基準となる特徴点は、例えばSWLDとして符号化され、三次元データとして端末2021に通知された特徴点である。
 特徴点に対する相対位置を示す情報は、例えば、特徴点から位置情報が示す点までのベクトルで表され、特徴点から位置情報が示す点までの方向と距離を示す情報であってもよい。または、特徴点に対する相対位置を示す情報は、特徴点から位置情報が示す点までのX軸、Y軸、Z軸のそれぞれの変位量を示す情報であってもよい。また、特徴点に対する相対位置を示す情報は、3以上の特徴点のそれぞれから位置情報が示す点までの距離を示す情報であってもよい。なお、相対位置は、各特徴点を基準として表現された位置情報が示す点の相対位置ではなく、位置情報が示す点を基準として表現された各特徴点の相対位置であってもよい。特徴点に対する相対位置に基づく位置情報の一例は、基準となる特徴点を特定するための情報と、当該特徴点に対する位置情報が示す点の相対位置を示す情報とを含む。また、特徴点に対する相対位置を示す情報が三次元データとは別に提供される場合、特徴点に対する相対位置を示す情報は、相対位置の導出に用いた座標軸、三次元データの種類を示す情報、又は/及び相対位置を示す情報の値の単位量あたりの大きさ(縮尺など)を示す情報などを含んでいてもよい。
 また、位置情報は、複数の特徴点について、各特徴点に対する相対位置を示す情報を含んでいてもよい。位置情報を複数の特徴点に対する相対位置で表した場合、実空間において当該位置情報が示す位置を特定しようとする端末2021は、特徴点ごとにセンサデータから推定した当該特徴点の位置から位置情報が示す位置の候補点を算出し、算出された複数の候補点を平均して求めた点を位置情報が示す点であると判定してもよい。この構成によると、センサデータから特徴点の位置を推定する際の誤差の影響を軽減できるため、実空間における位置情報が示す点の推定精度を向上できる。また、位置情報が複数の特徴点に対する相対位置を示す情報を含む場合、端末2021が備えるセンサの種類又は性能などの制約で検出できない特徴点がある場合であっても、複数の特徴点のいずれか一つでも検出することができれば位置情報が示す点の値を推定することが可能となる。
 特徴点として、センサデータから特定可能な点を用いことができる。センサデータから特定可能な点とは、例えば、前述した三次元特徴量又は可視光データの特徴量が閾値以上であるなど特徴点検出用の所定の条件を満たす点又は領域内の点である。
 また、実空間に設置されたマーカなどを特徴点として用いてもよい。この場合、マーカは、LiDER又はカメラなどのセンサを用いて取得されたデータから検出及び位置の特定が可能であればよい。例えば、マーカは、色或いは輝度値(反射率)の変化、又は、三次元形状(凹凸など)で表現される。また、当該マーカの位置を示す座標値、又は当該マーカの識別子から生成された二次元コード又はバーコードなどが用いられてもよい。
 また、光信号を送信する光源をマーカとして用いてもよい。光信号の光源をマーカとして用いる場合、座標値又は識別子などの位置を取得するための情報だけでなく、その他のデータが光信号により送信されてもよい。例えば、光信号は、当該マーカの位置に応じたサービスのコンテンツ、コンテンツを取得するためのurlなどのアドレス、又はサービスの提供を受けるための無線通信装置の識別子と、当該無線通信装置と接続するための無線通信方式などを示す情報を含んでもよい。光通信装置(光源)をマーカとして用いることで、位置を示す情報以外のデータの送信が容易になると共に、当該データを動的に切り替えることが可能となる。
 端末2021は、互いに異なるデータ間での特徴点の対応関係を、例えば、データ間で共通に用いられる識別子、又は、データ間の特徴点の対応関係を示す情報或いはテーブルを用いて把握する。また、特徴点間の対応関係を示す情報がない場合、端末2021は、一方の三次元データにおける特徴点の座標を他方の三次元データ空間上の位置に変換した場合に最も近い距離にある特徴点を対応する特徴点であると判定してもよい。
 以上で説明した相対位置に基づく位置情報を用いた場合、互いに異なる三次元データを用いる端末2021又はサービス間であっても、各三次元データに含まれる、又は各三次元データと対応付けられた共通の特徴点を基準に位置情報が示す位置を特定、又は推定することができる。その結果、互いに異なる三次元データを用いる端末2021又はサービス間で、同じ位置をより高い精度で特定又は推定することが可能となる。
 また、互いに異なる座標系を用いて表現された地図データ又は三次元データを用いる場合であっても、座標系の変換に伴う誤差の影響を低減できるため、より高精度な位置情報に基づくサービスの連携が可能となる。
 以下、データ収集サーバ2024が提供する機能の例について説明する。データ収集サーバ2024は、受信した位置関連データを他のデータサーバに転送してもよい。データサーバが複数ある場合、データ収集サーバ2024は、受信した位置関連データをどのデータサーバに転送するかを判定して、転送先として判定されたデータサーバ宛に位置関連データを転送する。
 データ収集サーバ2024は、転送先の判定を、例えば、データ収集サーバ2024に事前に設定された転送先サーバの判定ルールに基づいて行う。転送先サーバの判定ルールとは、例えば、各端末2021に対応付けられた識別子と転送先のデータサーバとを対応付けた転送先テーブルなどで設定される。
 端末2021は、送信する位置関連データに対して当該端末2021に対応付けられた識別子を付加してデータ収集サーバ2024に送信する。データ収集サーバ2024は、位置関連データに付加された識別子に対応する転送先のデータサーバを転送先テーブルなどを用いた転送先サーバの判定ルールに基づいて特定し、当該位置関連データを特定されたデータサーバに送信する。また、転送先サーバの判定ルールは、位置関連データが取得された時間又は場所などを用いた判定条件で指定されてもよい。ここで、上述した送信元の端末2021に対応付けられた識別子とは、例えば各端末2021に固有の識別子、又は端末2021が属するグループを示す識別子などである。
 また、転送先テーブルは、送信元の端末に対応付けられた識別子と転送先のデータサーバとを直接対応付けたものでなくてもよい。例えば、データ収集サーバ2024は、端末2021に固有の識別子毎に付与されたタグ情報を格納した管理テーブルと、当該タグ情報と転送先のデータサーバを対応付けた転送先テーブルとを保持する。データ収集サーバ2024は、管理テーブルと転送先テーブルとを用いてタグ情報に基づく転送先のデータサーバを判定してもよい。ここで、タグ情報は、例えば当該識別子に対応する端末2021の種類、型番、所有者、所属するグループ又はその他の識別子に付与された管理用の制御情報又はサービス提供用の制御情報である。また、転送先テーブルに、送信元の端末2021に対応付けられた識別子の代わりに、センサ毎に固有の識別子が用いられてもよい。また、転送先サーバの判定ルールは、クライアント装置2026から設定できてもよい。
 データ収集サーバ2024は、複数のデータサーバを転送先として判定し、受信した位置関連データを当該複数のデータサーバに転送してもよい。この構成によると、例えば、位置関連データを自動的にバックアップする場合、又は位置関連データを異なるサービスで共通に利用するために、各サービスを提供するためのデータサーバに対して位置関連データを送信する必要がある場合に、データ収集サーバ2024に対する設定を変更ことで意図通りのデータの転送を実現できる。その結果、個別の端末2021に位置関連データの送信先を設定する場合と比較して、システムの構築及び変更に要する工数を削減することができる。
 データ収集サーバ2024は、データサーバから受信した転送要求信号に応じて、転送要求信号で指定されたデータサーバを新たな転送先として登録し、以降に受信した位置関連データを当該データサーバに転送してもよい。
 データ収集サーバ2024は、端末2021から受信した位置関連データを記録装置に保存し、端末2021又はデータサーバから受信した送信要求信号に応じて、送信要求信号で指定された位置関連データを、要求元の端末2021又はデータサーバに送信してもよい。
 データ収集サーバ2024は、要求元のデータサーバ又は端末2021に対する位置関連データの提供の可否を判断し、提供可能と判断された場合に要求元のデータサーバ又は端末2021に位置関連データの転送又は送信を行ってもよい。
 クライアント装置2026から現在の位置関連データの要求を受け付けた場合、端末2021による位置関連データの送信タイミングでなくても、データ収集サーバ2024が端末2021に対して位置関連データの送信要求を行い、端末2021が当該送信要求に応じて位置関連データを送信してもよい。
 上記の説明では、端末2021がデータ収集サーバ2024に対して位置情報データを送信するとしたが、データ収集サーバ2024は、例えば、端末2021を管理する機能など、端末2021から位置関連データを収集するために必要な機能又は端末2021から位置関連データを収集する際に用いられる機能などを備えてもよい。
 データ収集サーバ2024は、端末2021に対して位置情報データの送信を要求するデータ要求信号を送信し、位置関連データを収集する機能を備えてもよい。
 データ収集サーバ2024には、データ収集の対象となる端末2021と通信を行うためのアドレス又は端末2021固有の識別子などの管理情報が事前に登録されている。データ収集サーバ2024は、登録されている管理情報に基づいて端末2021から位置関連データを収集する。管理情報は、端末2021が備えるセンサの種類、端末2021が備えるセンサの数、及び端末2021が対応する通信方式などの情報を含んでいてもよい。
 データ収集サーバ2024は、端末2021の稼働状態又は現在位置などの情報を端末2021から収集してもよい。
 管理情報の登録は、クライアント装置2026から行われてもよいし、端末2021が登録要求をデータ収集サーバ2024に送信することで、登録のための処理が開始されてもよい。データ収集サーバ2024は、端末2021との間の通信を制御する機能を備えてもよい。
 データ収集サーバ2024と端末2021とを結ぶ通信は、MNO(Mobile Network Operator)、或いはMVNO(Mobile Virtual Network Operator)などのサービス事業者が提供する専用回線、又は、VPN(Virtual Private Network)で構成された仮想の専用回線などであってもよい。この構成によると、端末2021とデータ収集サーバ2024との間の通信を安全に行うことができる。
 データ収集サーバ2024は、端末2021を認証する機能、又は端末2021との間で送受信されるデータを暗号化する機能を備えてもよい。ここで、端末2021の認証の処理又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との間で事前に共有された、端末2021に固有の識別子又は複数の端末2021を含む端末グループに固有の識別子などを用いて行われる。この識別子とは、例えば、SIM(Subscriber Identity Module)カードに格納された固有の番号であるIMSI(International Mobile Subscriber Identity)などである。認証処理に用いられる識別子とデータの暗号化処理に用いる識別子とは、同じであってもよいし、異なっていてもよい。
 データ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との両方が当該処理を実施する機能を備えていれば提供可能であり、中継を行う通信装置2022が用いる通信方式に依存しない。よって、端末2021が通信方式を用いるかを考慮することなく、共通の認証又は暗号化の処理を用いることができるので、ユーザのシステム構築の利便性が向上する。ただし、中継を行う通信装置2022が用いる通信方式に依存しないとは、通信方式に応じて変更することが必須ではないことを意味している。つまり、伝送効率の向上又は安全性の確保の目的で、中継装置が用いる通信方式に応じてデータ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理が切り替えられてもよい。
 データ収集サーバ2024は、端末2021から収集する位置関連データの種類及びデータ収集のスケジュールなどのデータ収集ルールを管理するUIをクライアント装置2026に提供してもよい。これにより、ユーザはクライアント装置2026を用いてデータを収集する端末2021、並びに、データの収集時間及び頻度などを指定できる。また、データ収集サーバ2024は、データを収集したい地図上の領域などを指定し、当該領域に含まれる端末2021から位置関連データを収集してもよい。
 データ収集ルールを端末2021単位で管理する場合、クライアント装置2026は、例えば、管理対象となる端末2021又はセンサのリストを画面に提示する。ユーザはリストの項目毎にデータの収集の要否又は収集スケジュールなどを設定する。
 データを収集したい地図上の領域などを指定する場合、クライアント装置2026は、例えば、管理対象となる地域の二次元又は三次元の地図を画面に提示する。ユーザは、表示された地図上でデータを収集する領域を選択する。地図上で選択される領域は、地図上で指定された点を中心とする円形又は矩形の領域であってもよいし、ドラッグ動作で特定可能な円形又は矩形の領域であってもよい。また、クライアント装置2026は、都市、都市内のエリア、ブロック、又は主要な道路など予め設定された単位で領域を選択してもよい。また、地図を用いて領域を指定するのではなく、緯度及び経度の数値を入力して領域が設定されてもよいし、入力されたテキスト情報に基づいて導出した候補領域のリストから領域が選択されてもよい。テキスト情報は、例えば、地域、都市、又はランドマークの名前などである。
 また、ユーザが一又は複数の端末2021を指定して、当該端末2021の周囲100メートルの範囲内などの条件を設定することで、指定領域を動的に変更しながらデータの収集が行われてもよい。
 また、クライアント装置2026がカメラなどのセンサを備える場合、センサデータから得られたクライアント装置2026の実空間での位置に基づいて地図上の領域が指定されてもよい。例えば、クライアント装置2026は、センサデータを用いて自己位置を推定し、推定された位置に対応する地図上の点から予め定められた距離、又はユーザが指定した距離の範囲内の領域を、データを収集する領域として指定してもよい。また、クライアント装置2026は、センサのセンシング領域、すなわち取得されたセンサデータに対応する領域を、データを収集する領域として指定してもよい。または、クライアント装置2026は、ユーザの指定したセンサデータに対応する位置に基づく領域を、データを収集する領域として指定してもよい。センサデータに対応する地図上の領域、又は位置の推定は、クライアント装置2026が行ってもよいし、データ収集サーバ2024が行ってもよい。
 地図上の領域で指定を行う場合、データ収集サーバ2024は、各端末2021の現在位置情報を収集することで、指定された領域内の端末2021を特定し、特定された端末2021に対して位置関連データの送信を要求してもよい。また、データ収集サーバ2024が領域内の端末2021を特定するのではなく、データ収集サーバ2024が指定された領域を示す情報を端末2021に送信し、端末2021が自身が指定された領域内にあるか否かを判定して、指定された領域内にあると判断された場合に位置関連データを送信してもよい。
 データ収集サーバ2024は、クライアント装置2026が実行するアプリケーションにおいて上述したUI(User Interface)を提供するためのリスト又は地図などのデータをクライアント装置2026に送信する。データ収集サーバ2024は、リスト又は地図などのデータだけでなく、アプリケーションのプログラムをクライアント装置2026に送信してもよい。また、上述したUIは、ブラウザで表示可能なHTMLなどで作成されたコンテンツとして提供されてもよい。なお、地図データなど一部のデータは地図サーバ2025などのデータ収集サーバ2024以外のサーバから提供されてもよい。
 クライアント装置2026は、ユーザによる設定ボタンの押下など、入力が完了したことを通知する入力が行われると、入力された情報を設定情報としてデータ収集サーバ2024に送信する。データ収集サーバ2024は、クライアント装置2026から受信した設定情報に基づいて各端末2021に対して、位置関連データの要求又は位置関連データの収集ルールを通知する信号を送信し、位置関連データの収集を行う。
 次に、三次元又は二次元の地図データに付加された付加情報に基づいて端末2021の動作を制御する例について説明する。
 本構成では、道路又は駐車場に埋設された無線給電の給電アンテナ又は給電コイルなどの給電部の位置を示すオブジェクト情報が、三次元データに含まれて、又は三次元データに対応付けられて、車又はドローンなどである端末2021に提供される。
 充電を行うために当該オブジェクト情報を取得した車両又はドローンは、車両が備える充電アンテナ又は充電コイルなどの充電部の位置が、当該オブジェクト情報が示す領域と対向する位置になるよう自動運転で車両自身の位置を移動させ、充電を開始する。なお、自動運転機能を備えていない車両又はドローンの場合は、画面上に表示された画像又は音声などを利用して、移動すべき方向又は行うべき操作を運転手又は操縦者に対して提示される。そして、推定された自己位置に基づいて算出した充電部の位置が、オブジェクト情報で示された領域又は当該領域から所定の距離の範囲内に入った判断されると、運転又は操縦を中止させる内容へと提示する画像又は音声が切り替えられ、充電が開始される。
 また、オブジェクト情報は給電部の位置を示す情報ではなく、当該領域内に充電部を配置すると所定の閾値以上の充電効率が得られる領域を示す情報であってもよい。オブジェクト情報の位置は、オブジェクト情報が示す領域の中心の点で表されてもよいし、二次元平面内の領域或いは線、又は、三次元空間内の領域、線或いは平面などで表されてもよい。
 この構成によると、LiDERのセンシングデータ又はカメラで撮影した映像では把握できない給電アンテナの位置を把握することができるので、車などの端末2021が備える無線充電用のアンテナと道路などに埋設された無線給電アンテナとの位置合わせをより高精度に行うことができる。その結果、無線充電時の充電速度を短くしたり、充電効率を向上させることができる。
 オブジェクト情報は、給電アンテナの以外の対象物であってもよい。例えば、三次元データは、ミリ波無線通信のAPの位置などをオブジェクト情報として含む。これにより、端末2021は、APの位置を事前に把握することができるので、当該オブジェクト情報の方向にビームの指向性を向けて通信を開始することができる。その結果、伝送速度の向上、通信開始までの時間の短縮、及び通信可能な期間を延ばすなどの通信品質の向上を実現できる。
 オブジェクト情報は、当該オブジェクト情報に対応する対象物のタイプを示す情報を含んでもよい。また、オブジェクト情報は、当該オブジェクト情報の三次元データ上の位置に対応する実空間上の領域内、又は領域から所定の距離の範囲内に端末2021が含まれる場合に、端末2021が実施すべき処理を示す情報を含んでもよい。
 オブジェクト情報は、三次元データを提供するサーバとは異なるサーバから提供されてもよい。オブジェクト情報を三次元データとは別に提供する場合、同一のサービスで使用されるオブジェクト情報が格納されたオブジェクトグループが、対象サービス又は対象機器の種類に応じてそれぞれ別のデータとして提供されてもよい。
 オブジェクト情報と組み合わせて用いられる三次元データは、WLDの点群データであってもよいし、SWLDの特徴点データであってもよい。
 三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoD(Level of Detail)を用いて階層符号化した場合、三次元データ復号装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を復号し、必要でない階層の属性情報を復号しなくてもよい。例えば、三次元データ符号化装置が符号化したビットストリーム内の属性情報のLoDの総数がN個の場合、三次元データ復号装置は、最上位層のLoD0からLoD(M-1)までのM個(M<N)のLoDを復号し、残りのLoD(N-1)までのLoDを復号しなくてもよい。これにより、三次元データ復号装置は、処理負荷を抑制しつつ、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を復号できる。
 図123は、上記のユースケースを示す図である。図123に例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、三次元地図をブロードキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は、クライアント装置を操作するユーザ等に地図情報を表示する処理を行う。
 以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、位置情報をベースに構築されたN個のLoDを用いて三次元地図の属性情報を階層符号化する。サーバは、階層符号化により得られた三次元地図のビットストリームを保存する。
 次にサーバは、サーバが管理する領域のクライアント装置から送信された地図情報の送信要求に応じて、符号化された三次元地図のビットストリームをクライアント装置に送信する。
 クライアント装置は、サーバから送信された三次元地図のビットストリームを受信し、クライアント装置の用途に応じて三次元地図の位置情報と属性情報とを復号する。例えば、クライアント装置が位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、クライアント装置は、属性情報として密な三次元点までの復号結果が必要と判断し、ビットストリーム内の全ての情報を復号する。
 また、クライアント装置が三次元地図の情報をユーザ等に表示する場合は、クライアント装置は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層であるLoD0からM個(M<N)までのLoDの属性情報とを復号する。
 このようにクライアント装置の用途に応じて復号する属性情報のLoDを切替えることによって、クライアント装置の処理負荷を削減できる。
 図123に示す例では、例えば、三次元点地図は、位置情報と属性情報とを含む。位置情報は、8分木で符号化される。属性情報は、N個のLoDで符号化される。
 クライアント装置Aは、高精度な自己位置推定を行う。この場合、クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、ビットストリーム内の位置情報とN個のLoDで構成される属性情報とを全て復号する。
 クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、ビットストリーム内の位置情報とM個のLoDで構成される属性情報とを復号する。
 なお、サーバは、三次元地図をクライアント装置にブロードキャスト送信してもよいし、マルチキャスト送信、又はユニキャスト送信してもよい。
 以下、本実施の形態に係るシステムの変形例について説明する。三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoDを用いて階層符号化する場合、三次元データ符号化装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を符号化し、必要でない階層の属性情報を符号化しなくてもよい。例えば、LoDの総数がN個の場合に、三次元データ符号化装置は、最上位層LoD0からLoD(M-1)までのM個(M<N)のLoDを符号化し、残りLoD(N-1)までのLoDを符号化しないことによりビットストリームを生成してもよい。これにより、三次元データ符号化装置は、三次元データ復号装置からの要望に応じて、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を符号化したビットストリームを提供できる。
 図124は、上記ユースケースを示す図である。図124に示す例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、クライアント装置の要望に応じて三次元地図をユニキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は地図情報をクライアント装置を操作するユーザ等に表示する処理を行う。
 以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたN個のLoDを用いて階層符号化することで三次元地図Aのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。また、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたM個(M<N)のLoDを用いて階層符号化することで三次元地図Bのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。
 次にクライアント装置は、クライアント装置の用途に応じて三次元地図の送信をサーバに要求する。例えば、クライアント装置は、位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、属性情報として密な三次元点までの復号結果が必要と判断し、三次元地図Aのビットストリームの送信をサーバへ要求する。また、クライアント装置は、三次元地図の情報をユーザ等に表示する場合は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層LoD0からM個(M<N)までのLoDの属性情報とを含む三次元地図Bのビットストリームの送信をサーバへ要求する。そしてサーバは、クライアント装置からの地図情報の送信要求に応じて、符号化された三次元地図A又は三次元地図Bのビットストリームをクライアント装置に送信する。
 クライアント装置は、クライアント装置の用途に応じてサーバから送信された三次元地図A又は三次元地図Bのビットストリームを受信し、当該ビットストリームを復号する。このようにサーバは、クライアント装置の用途に応じて送信するビットストリームを切替える。これにより、クライアント装置の処理負荷を削減できる。
 図124に示す例では、サーバは、三次元地図A及び三次元地図Bを保持する。サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をN個のLoDで符号化することで三次元地図Aを生成する。つまり、三次元地図Aのビットストリームに含まれるNumLoDはNを示す。
 また、サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をM個のLoDで符号化することで三次元地図Bを生成する。つまり、三次元地図Bのビットストリームに含まれるNumLoDはMを示す。
 クライアント装置Aは、高精度な自己位置推定を行う。この場合クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、全ての位置情報とN個のLoDで構成される属性情報とを含む三次元地図Aの送信要求をサーバに送る。クライアント装置Aは、三次元地図Aを受信し、全ての位置情報とN個のLoDで構成される属性情報とを復号する。
 クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、全ての位置情報とM個のLoDで構成される属性情報とを含む三次元地図Bの送信要求をサーバに送る。クライアント装置Bは、三次元地図Bを受信して、全ての位置情報とM個のLoDで構成される属性情報とを復号する。
 なお、サーバ(三次元データ符号化装置)は、三次元地図Bに加え、残りのN-M個のLoDの属性情報を符号化した三次元地図Cを符号化しておき、クライアント装置Bの要望に応じて三次元地図Cをクライアント装置Bに送信してもよい。また、クライアント装置Bは、三次元地図Bと三次元地図Cとのビットストリームを用いて、N個のLoDの復号結果を得てもよい。
 以下、アプリケーション処理の例を説明する。図125は、アプリケーション処理の例を示すフローチャートである。アプリ操作が開始されると、三次元データ逆多重化装置は、点群データ及び複数の符号化データを含むISOBMFFファイルを取得する(S7301)。例えば、三次元データ逆多重化装置は、ISOBMFFファイルを、通信により取得してもよいし、蓄積しているデータから読み込んでもよい。
 次に、三次元データ逆多重化装置は、ISOBMFFファイルにおける全体構成情報を解析し、アプリケーションに使用するデータを特定する(S7302)。例えば、三次元データ逆多重化装置は、処理に用いるデータを取得し、処理に用いないデータは取得しない。
 次に、三次元データ逆多重化装置は、アプリケーションに使用する1以上のデータを抽出し、当該データの構成情報を解析する(S7303)。
 データの種別が符号化データである場合(S7304で符号化データ)、三次元データ逆多重化装置は、ISOBMFFを符号化ストリームに変換し、タイムスタンプを抽出する(S7305)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。
 次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、所定の方法でデータを復号し、復号したデータを処理する(S7306)。
 一方、データの種別が符号化データである場合(S7304でRAWデータ)、三次元データ逆多重化装置は、データ及びタイムスタンプを抽出する(S7307)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、データを処理する(S7308)。
 例えば、ビームLiDAR、FLASH LiDAR、及びカメラで取得されたセンサ信号が、それぞれ異なる符号化方式で符号化及び多重化されている場合の例を説明する。図126は、ビームLiDAR、FLASH LiDAR及びカメラのセンサ範囲の例を示す図である。例えば、ビームLiDARは、車両(センサ)の周囲の全方向を検知し、FLASH LiDAR及びカメラは、車両の一方向(例えば前方)の範囲を検知する。
 LiDAR点群を統合的に扱うアプリケーションの場合、三次元データ逆多重化装置は、全体構成情報を参照して、ビームLiDARとFLASH LiDARの符号化データを抽出して復号する。また、三次元データ逆多重化装置は、カメラ映像は抽出しない。
 三次元データ逆多重化装置は、LiDARとFLASH LiDARのタイムスタンプに従い、同一のタイムスタンプの時刻のそれぞれの符号化データを同時に処理する。
 例えば、三次元データ逆多重化装置は、処理したデータを提示装置で提示したり、ビームLiDARとFLASH LiDARの点群データを合成したり、レンダリングなどの処理を行ってもよい。
 また、データ間でキャリブレーションをするアプリケーションの場合には、三次元データ逆多重化装置は、センサ位置情報を抽出してアプリケーションで用いてもよい。
 例えば、三次元データ逆多重化装置は、アプリケーションにおいて、ビームLiDAR情報を使用するか、FLASH LiDARを使用するかを選択し、選択結果に応じて処理を切り替えてもよい。
 このように、アプリケーションの処理に応じて適応的にデータの取得及び符号処理を変えることができるので、処理量及び消費電力を削減できる。
 以下、自動運転におけるユースケースについて説明する。図127は、自動運転システムの構成例を示す図である。この自動運転システムは、クラウドサーバ7350と、車載装置又はモバイル装置等のエッジ7360とを含む。クラウドサーバ7350は、逆多重化部7351と、復号部7352A、7352B及び7355と、点群データ合成部7353と、大規模データ蓄積部7354と、比較部7356と、符号化部7357とを備える。エッジ7360は、センサ7361A及び7361Bと、点群データ生成部7362A及び7362Bと、同期部7363と、符号化部7364A及び7364Bと、多重化部7365と、更新データ蓄積部7366と、逆多重化部7367と、復号部7368と、フィルタ7369と、自己位置推定部7370と、運転制御部7371とを備える。
 このシステムでは、エッジ7360は、クラウドサーバ7350に蓄積されている大規模点群地図データである大規模データをダウンロードする。エッジ7360は、大規模データとエッジ7360で得られたセンサ情報とをマッチングすることで、エッジ7360(車両又は端末)の自己位置推定処理を行う。また、エッジ7360は、取得したセンサ情報をクラウドサーバ7350へアップロードし、大規模データを最新の地図データに更新する。
 また、システム内における点群データを扱う様々なアプリケーションにおいて、符号化方法の異なる点群データが扱われる。
 クラウドサーバ7350は、大規模データを符号化及び多重化する。具体的には、符号化部7357は、大規模点群を符号化するために適した第3の符号化方法を用いて符号化を行う。また、符号化部7357は、符号化データを多重化する。大規模データ蓄積部7354は、符号化部7357で符号化及び多重化されたデータを蓄積する。
 エッジ7360は、センシングを行う。具体的には、点群データ生成部7362Aは、センサ7361Aで取得されるセンシング情報を用いて、第1の点群データ(位置情報(ジオメトリ)及び属性情報)を生成する。点群データ生成部7362Bは、センサ7361Bで取得されるセンシング情報を用いて、第2の点群データ(位置情報及び属性情報)を生成する。生成された第1の点群データ及び第2の点群データは、自動運転の自己位置推定或いは車両制御、又は地図更新に用いられる。それぞれの処理において、第1の点群データ及び第2の点群データのうちの一部の情報が用いられてもよい。
 エッジ7360は、自己位置推定を行う。具体的には、エッジ7360は、大規模データをクラウドサーバ7350からダウンロードする。逆多重化部7367は、ファイルフォーマットの大規模データを逆多重化することで符号化データを取得する。復号部7368は、取得された符号化データを復号することで大規模点群地図データである大規模データを取得する。
 自己位置推定部7370は、取得された大規模データと、点群データ生成部7362A及び7362Bで生成された第1の点群データ及び第2の点群データとをマッチングすることで、車両の地図における自己位置を推定する。また、運転制御部7371は、当該マッチング結果又は自己位置推定結果を運転制御に用いる。
 なお、自己位置推定部7370及び運転制御部7371は、大規模データのうち、位置情報などの特定の情報を抽出し、抽出した情報を用いて処理を行ってもよい。また、フィルタ7369は、第1の点群データ及び第2の点群データに補正又は間引き等の処理を行う。自己位置推定部7370及び運転制御部7371は、当該処理が行われた後の第1の点群データ及び第2の点群データを用いてもよい。また、自己位置推定部7370及び運転制御部7371は、センサ7361A及び7361Bで得られたセンサ信号を用いてもよい。
 同期部7363は、複数のセンサ信号又は複数の点群データのデータ間の時間同期及び位置補正を行う。また、同期部7363は、自己位置推定処理によって生成された、大規模データとセンサデータとの位置補正情報に基づき、センサ信号又は点群データの位置情報を大規模データに合わせるように補正してもよい。
 なお、同期及び位置補正はエッジ7360でなく、クラウドサーバ7350で行われてもよい。この場合、エッジ7360は、同期情報及び位置情報を多重化してクラウドサーバ7350へ送信してもよい。
 エッジ7360は.センサ信号又は点群データを符号化及び多重化する。具体的には、センサ信号又は点群データは、それぞれの信号を符号化するために適した第1の符号化方法又は第2の符号化方法を用いて符号化される。例えば、符号化部7364Aは、第1の符号化方法を用いて第1の点群データを符号化することで第1の符号化データを生成する。符号化部7364Bは、第2の符号化方法を用いて第2の点群データを符号化することで第2の符号化データを生成する。
 多重化部7365は、第1の符号化データ、第2の符号化データ、及び同期情報などを多重化することで多重化信号を生成する。更新データ蓄積部7366は、生成された多重化信号を蓄積する。また、更新データ蓄積部7366は、多重化信号をクラウドサーバ7350へアップロードする。
 クラウドサーバ7350は、点群データを合成する。具体的には、逆多重化部7351は、クラウドサーバ7350にアップロードされた多重化信号を逆多重化することで第1の符号化データ及び第2の符号化データを取得する。復号部7352Aは、第1の符号化データを復号することで第1の点群データ(又はセンサ信号)を取得する。復号部7352Bは、第2の符号化データを復号することで第2の点群データ(又はセンサ信号)を取得する。
 点群データ合成部7353は、第1の点群データと第2の点群データとを所定の方法で合成する。多重化信号に同期情報及び位置補正情報が多重化されている場合には、点群データ合成部7353は、それらの情報を用いて合成を行ってもよい。
 復号部7355は、大規模データ蓄積部7354に蓄積されている大規模データを逆多重化及び復号する。比較部7356は、エッジ7360で得られたセンサ信号に基づき生成された点群データとクラウドサーバ7350が有する大規模データとを比較し、更新が必要な点群データを判断する。比較部7356は、大規模データのうち、更新が必要と判断された点群データを、エッジ7360から得られた点群データに更新する。
 符号化部7357は、更新された大規模データを符号化及び多重化し、得られたデータを大規模データ蓄積部7354に蓄積する。
 以上のように、使用する用途又はアプリケーションに応じて、取り扱う信号が異なり、多重化する信号又は符号化方法が異なる場合がある。このような場合であっても、本実施の形態を用いて様々な符号化方式のデータを多重化することで、柔軟な復号及びアプリケーション処理が可能となる。また、信号の符号化方式が異なる場合であっても、逆多重化、復号、データ変換、符号化、多重の処理により適した符号化方式を変換することで、様々なアプリケーションやシステムを構築し、柔軟なサービスの提供が可能となる。
 以下、分割データの復号及びアプリケーションの例を説明する。まず、分割データの情報について説明する。図128は、ビットストリームの構成例を示す図である。分割データの全体情報は、分割データ毎に、当該分割データのセンサID(sensor_id)とデータID(data_id)とを示す。なお、データIDは各符号化データのヘッダにも示される。
 なお、図128に示す分割データの全体情報は、図40と同様に、センサIDに加え、センサ情報(Sensor)と、センサのバージョン(Version)と、センサのメーカー名(Maker)と、センサの設置情報(Mount Info.)と、センサの位置座標(World Coordinate)とのうち少なく一つを含んでもよい。これにより、三次元データ復号装置は、構成情報から各種センサの情報を取得できる。
 分割データの全体情報は、メタデータであるSPS、GPS又はAPSに格納されてもよいし、符号化に必須でないメタデータであるSEIに格納されてもよい。また、三次元データ符号化装置は、多重化の際に、当該SEIをISOBMFFのファイルに格納する。三次元データ復号装置は、当該メタデータに基づき、所望の分割データを取得できる。
 図128において、SPSは符号化データ全体のメタデータであり、GPSは位置情報のメタデータであり、APSは属性情報毎のメタデータであり、Gは分割データ毎の位置情報の符号化データであり、A1等は分割データ毎の属性情報の符号化データである。
 次に、分割データのアプリケーション例を説明する。点群データから、任意の点群を選択し、選択した点群を提示するアプリケーションの例を説明する。図129は、このアプリケーションにより実行される点群選択処理のフローチャートである。図130~図132は、点群選択処理の画面例を示す図である。
 図130に示すように、アプリケーションを実行する三次元データ復号装置は、例えば、任意の点群を選択するための入力UI(ユーザインタフェース)8661を表示するUI部を有する。入力UI8661は、選択された点群を提示する提示部8662と、ユーザの操作を受け付ける操作部(ボタン8663及び8664)を有する。三次元データ復号装置は、UI8661で点群が選択された後、蓄積部8665から所望のデータを取得する。
 まず、ユーザの入力UI8661に対する操作に基づき、ユーザが表示したい点群情報が選択される(S8631)。具体的には、ボタン8663が選択されることで、センサ1に基づく点群が選択される。ボタン8664が選択されることで、センサ2に基づく点群が選択される。または、ボタン8663及びボタン8664の両方が選択されることで、センサ1に基づく点群とセンサ2に基づく点群の両方が選択される。なお、点群の選択方法は一例であり、これに限らない。
 次に、三次元データ復号装置は、多重化信号(ビットストリーム)又は符号化データに含まれる分割データの全体情報を解析し、選択されたセンサのセンサID(sensor_id)から、選択された点群を構成する分割データのデータID(data_id)を特定する(S8632)。次に、三次元データ復号装置は、多重化信号から、特定された所望のデータIDを含む符号化データを抽出し、抽出した符号化データを復号することで、選択されたセンサに基づく点群を復号する(S8633)。なお、三次元データ復号装置は、その他の符号化データは復号しない。
 最後に、三次元データ復号装置は、復号された点群を提示(例えば表示)する(S8634)。図131は、センサ1のボタン8663が押下された場合の例を示し、センサ1の点群が提示される。図132は、センサ1のボタン8663とセンサ2のボタン8664の両方が押下された場合の例を示し、センサ1及びセンサ2の点群が提示される。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つ又は複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
 本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
 810 三次元データ作成装置
 811 データ受信部
 812、819 通信部
 813 受信制御部
 814、821 フォーマット変換部
 815 センサ
 816 三次元データ作成部
 817 三次元データ合成部
 818 三次元データ蓄積部
 820 送信制御部
 822 データ送信部
 831、832、834、835、836、837 三次元データ
 833 センサ情報
 901 サーバ
 902、902A、902B、902C クライアント装置
 1011、1111 データ受信部
 1012、1020、1112、1120 通信部
 1013、1113 受信制御部
 1014、1019、1114、1119 フォーマット変換部
 1015 センサ
 1016、1116 三次元データ作成部
 1017 三次元画像処理部
 1018、1118 三次元データ蓄積部
 1021、1121 送信制御部
 1022、1122 データ送信部
 1031、1032、1135 三次元マップ
 1033、1037、1132 センサ情報
 1034、1035、1134 三次元データ
 1117 三次元データ合成部
 1201 三次元マップ圧縮/復号処理部
 1202 センサ情報圧縮/復号処理部
 1211 三次元マップ復号処理部
 1212 センサ情報圧縮処理部
 2001 サーバ
 2002、2002A、2002B クライアント装置
 2011 センサ情報取得部
 2012 記憶部
 2013 データ送信可否判定部
 2021、2021A、2021B 端末
 2022、2022A、2022B 通信装置
 2023 ネットワーク
 2024 データ収集サーバ
 2025 地図サーバ
 2026 クライアント装置
 4501 入力部
 4502 ローカライズ部
 4503 メモリ管理部
 4504 復号部
 4505 メモリ
 4506 表示部
 4510 三次元データ符号化装置
 4511、4522 8分木生成部
 4512 タイル分割部
 4513 エントロピー符号化部
 4514 ビットストリーム生成部
 4515、4521 SEI処理部
 4520 三次元データ復号装置
 4523 ビットストリーム分割部
 4524 エントロピー復号部
 4525 三次元点結合部
 4601 三次元データ符号化システム
 4602 三次元データ復号システム
 4603 センサ端末
 4604 外部接続部
 4611 点群データ生成システム
 4612 提示部
 4613 符号化部
 4614 多重化部
 4615 入出力部
 4616 制御部
 4617 センサ情報取得部
 4618 点群データ生成部
 4621 センサ情報取得部
 4622 入出力部
 4623 逆多重化部
 4624 復号部
 4625 提示部
 4626 ユーザインタフェース
 4627 制御部
 4630 第1の符号化部
 4631 位置情報符号化部
 4632 属性情報符号化部
 4633 付加情報符号化部
 4634 多重化部
 4640 第1の復号部
 4641 逆多重化部
 4642 位置情報復号部
 4643 属性情報復号部
 4644 付加情報復号部
 4650 第2の符号化部
 4651 付加情報生成部
 4652 位置画像生成部
 4653 属性画像生成部
 4654 映像符号化部
 4655 付加情報符号化部
 4656 多重化部
 4660 第2の復号部
 4661 逆多重化部
 4662 映像復号部
 4663 付加情報復号部
 4664 位置情報生成部
 4665 属性情報生成部
 4710 第1の多重化部
 4711 ファイル変換部
 4720 第1の逆多重化部
 4721 ファイル逆変換部
 4730 第2の多重化部
 4731 ファイル変換部
 4740 第2の逆多重化部
 4741 ファイル逆変換部
 4801 符号化部
 4802 多重化部
 5051 タイル分割部
 5052 符号化部
 5053 復号部
 5054 タイル結合部

Claims (14)

  1.  複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、前記タイル情報に基づいて、前記複数の三次元点の点群データを符号化し、
     符号化された前記点群データを含むビットストリームを生成し、
     前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、
     前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、
     Nが1以上の場合、
      (i)前記タイル情報の符号化では、前記N個のサブ空間座標情報のそれぞれに含まれる前記3つの座標情報のそれぞれを第1固定長で符号化し、
      (ii)前記ビットストリームの生成では、符号化された前記N個のサブ空間座標情報と、前記第1固定長を示す第1固定長情報と、を含む前記ビットストリームを生成する
     三次元データ符号化方法。
  2.  前記タイル情報は、前記N個のサブ空間のうちの少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含み、
     前記タイル情報の符号化では、前記少なくとも1つのサイズ情報のそれぞれを第2固定長で符号化し、
     前記ビットストリームの生成では、符号化された前記少なくとも1つのサイズ情報と、前記第2固定長を示す第2固定長情報と、を含む前記ビットストリームを生成する
     請求項1に記載の三次元データ符号化方法。
  3.  前記N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを判定し、
     前記タイル情報の符号化では、前記N個のサブ空間のうちの前記所定のサイズと一致しないサブ空間のサイズを示すサイズ情報を、前記少なくとも1つのサイズ情報としてそれぞれ前記第2固定長で符号化し、
     前記ビットストリームの生成では、前記N個のサブ空間のそれぞれのサイズが前記所定のサイズと一致するか否かを示すコモンフラグ情報を含む前記ビットストリームを生成する
     請求項2に記載の三次元データ符号化方法。
  4.  前記第1固定長と前記第2固定長とは、同じ長さである
     請求項2又は3に記載の三次元データ符号化方法。
  5.  前記タイル情報は、前記対象空間の原点の座標を示すコモン原点情報を含み、
     前記ビットストリームの生成では、前記コモン原点情報を含む前記ビットストリームを生成する
     請求項1~4のいずれか1項に記載の三次元データ符号化方法。
  6.  Nが0の場合、前記ビットストリームの生成では、前記サブ空間に関する情報を含まない前記ビットストリームを生成する
     請求項1~5のいずれか1項に記載の三次元データ符号化方法。
  7.  複数の三次元点の符号化された点群データを含むビットストリームを取得し、
     前記複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、前記タイル情報に基づいて、符号化された前記点群データを復号し、
     前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、
     前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、
     Nが1以上の場合、
      (i)前記ビットストリームの取得では、符号化された前記N個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含む前記ビットストリームを取得し、
      (ii)符号化された前記タイル情報の復号では、符号化された前記N個のサブ空間座標情報のそれぞれに含まれる符号化された前記3つの座標情報のそれぞれを前記第1固定長で復号する
     三次元データ復号方法。
  8.  前記タイル情報は、前記N個のサブ空間のうち少なくとも1つのサブ空間のサイズを示す少なくとも1つのサイズ情報を含み、
     前記ビットストリームの取得では、符号化された前記少なくとも1つのサイズ情報と、第2固定長を示す第2固定長情報と、を含む前記ビットストリームを取得し、
     符号化された前記タイル情報の復号では、符号化された前記少なくとも1つのサイズ情報のそれぞれを前記第2固定長で復号する
     請求項7に記載の三次元データ復号方法。
  9.  前記ビットストリームの取得では、前記N個のサブ空間のそれぞれのサイズが所定のサイズと一致するか否かを示すコモンフラグ情報を含む前記ビットストリームを取得し、
     前記コモンフラグ情報に基づいて、前記N個のサブ空間のそれぞれのサイズが前記所定のサイズと一致するか否かを判定し、
     符号化された前記タイル情報の復号では、前記N個のサブ空間のうちの前記所定のサイズと一致しないサブ空間のサイズを示す符号化されたサイズ情報を、符号化された前記少なくとも1つのサイズ情報としてそれぞれ前記第2固定長で復号する
     請求項8に記載の三次元データ復号方法。
  10.  前記第1固定長と前記第2固定長とは、同じ長さである
     請求項8又は9に記載の三次元データ復号方法。
  11.  前記タイル情報は、前記対象空間の原点の座標を示すコモン原点情報を含み、
     前記ビットストリームの取得では、前記コモン原点情報を含む前記ビットストリームを取得する
     請求項7~10のいずれか1項に記載の三次元データ復号方法。
  12.  Nが0の場合、前記ビットストリームの取得では、前記サブ空間に関する情報を含まない前記ビットストリームを取得する
     請求項7~11のいずれか1項に記載の三次元データ復号方法。
  13.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含むタイル情報を符号化し、且つ、前記タイル情報に基づいて、前記複数の三次元点の点群データを符号化し、
     符号化された前記点群データを含むビットストリームを生成し、
     前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、
     前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、
     Nが1以上の場合、
      (i)前記タイル情報の符号化では、前記N個のサブ空間座標情報のそれぞれに含まれる前記3つの座標情報のそれぞれを第1固定長で符号化し、
      (ii)前記ビットストリームの生成では、さらに、N個の符号化された前記サブ空間座標情報と、前記第1固定長を示す第1固定長情報と、を含む前記ビットストリームを生成する
     三次元データ符号化装置。
  14.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     複数の三次元点の符号化された点群データを含むビットストリームを取得し、
     前記複数の三次元点が含まれる対象空間の少なくとも一部であるN(Nは0以上の整数)個のサブ空間に関する情報を含む符号化されたタイル情報を復号し、且つ、前記タイル情報に基づいて、符号化された前記点群データを復号し、
     前記タイル情報は、前記N個のサブ空間の座標を示すN個のサブ空間座標情報を含み、
     前記N個のサブ空間座標情報は、それぞれ、三次元直交座標系における三軸方向それぞれの座標を示す3つの座標情報を含み、
     Nが1以上の場合、
      (i)前記ビットストリームの取得では、符号化された前記N個のサブ空間座標情報と、第1固定長を示す第1固定長情報と、を含む前記ビットストリームを取得し、
      (ii)符号化された前記タイル情報の復号では、N個の符号化された前記サブ空間座標情報のそれぞれに含まれる3つの符号化された前記座標情報のそれぞれを第1固定長で復号する
     三次元データ復号装置。
PCT/JP2021/023778 2020-06-23 2021-06-23 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 WO2021261514A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180042893.4A CN115997237A (zh) 2020-06-23 2021-06-23 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
US18/082,019 US20230125048A1 (en) 2020-06-23 2022-12-15 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063042698P 2020-06-23 2020-06-23
US63/042,698 2020-06-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/082,019 Continuation US20230125048A1 (en) 2020-06-23 2022-12-15 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

Publications (1)

Publication Number Publication Date
WO2021261514A1 true WO2021261514A1 (ja) 2021-12-30

Family

ID=79281290

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/023778 WO2021261514A1 (ja) 2020-06-23 2021-06-23 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Country Status (3)

Country Link
US (1) US20230125048A1 (ja)
CN (1) CN115997237A (ja)
WO (1) WO2021261514A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149319A1 (ja) * 2022-02-01 2023-08-10 キヤノン株式会社 自律移動体制御システム、制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075861A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075862A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020100866A1 (ja) * 2018-11-13 2020-05-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075862A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020100866A1 (ja) * 2018-11-13 2020-05-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149319A1 (ja) * 2022-02-01 2023-08-10 キヤノン株式会社 自律移動体制御システム、制御方法

Also Published As

Publication number Publication date
CN115997237A (zh) 2023-04-21
US20230125048A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
WO2020241723A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021066163A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261516A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20220094982A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021141090A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021187561A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230125048A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2022075428A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20220198719A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021210550A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021210549A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021193899A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020050343A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230154057A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020045590A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230030392A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2022025278A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261458A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021060526A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022004682A1 (ja) 三次元データ符号化方法及び三次元データ符号化装置
WO2021095879A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021075537A1 (ja) 三次元データ復号方法、及び三次元データ復号装置
WO2021141093A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021200919A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022019301A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21828863

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21828863

Country of ref document: EP

Kind code of ref document: A1