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

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

Info

Publication number
WO2021141094A1
WO2021141094A1 PCT/JP2021/000407 JP2021000407W WO2021141094A1 WO 2021141094 A1 WO2021141094 A1 WO 2021141094A1 JP 2021000407 W JP2021000407 W JP 2021000407W WO 2021141094 A1 WO2021141094 A1 WO 2021141094A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
dimensional
attribute information
coding
Prior art date
Application number
PCT/JP2021/000407
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 CN202180008519.2A priority Critical patent/CN115023741A/zh
Publication of WO2021141094A1 publication Critical patent/WO2021141094A1/ja
Priority to US17/857,538 priority patent/US20220343551A1/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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

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 three-dimensional data, there is an expression method called point cloud that expresses the shape of three-dimensional structure by a point cloud in three-dimensional 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 three-dimensional 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 coding, 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.
  • point cloud compression is partially supported by a public library (Point Cloud Library) that performs point cloud-related processing.
  • Point Cloud Library a public library that performs point cloud-related processing.
  • 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 coding efficiency can be improved in the three-dimensional data coding process and the three-dimensional data decoding process.
  • An object of the present disclosure is to 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 capable of improving coding efficiency.
  • the three-dimensional data coding method is a plurality of values indicating each of the plurality of values of the plurality of attribute information when at least a part of the values of the plurality of attribute information of the plurality of three-dimensional points are different.
  • the plurality of second information indicating the same value common to the plurality of attribute information is included. Generates a bit stream that does not contain the first information of.
  • the bit stream contains a plurality of first information indicating each of a plurality of values of the plurality of attribute information of the plurality of three-dimensional points
  • the plurality of first information is described.
  • the plurality of attribute information is generated from one information and the bit stream contains second information indicating a value common to the plurality of attribute information
  • the second value is set as each value of the plurality of attribute information.
  • the common value indicated by the information is output.
  • 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 improve the coding efficiency.
  • 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 the 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 a configuration of a coding unit and a multiplexing unit according to the third embodiment.
  • FIG. 17 is a diagram showing a configuration example of coded data according to the third embodiment.
  • FIG. 18 is a diagram showing a configuration example of the coded data and the NAL unit according to the third embodiment.
  • FIG. 19 is a diagram showing an example of semantics of pcc_nal_unit_type according to the third embodiment.
  • FIG. 20 is a diagram showing an example of the delivery order of the NAL unit according to the third embodiment.
  • FIG. 21 is a block diagram of the first coding unit according to the fourth embodiment.
  • FIG. 22 is a block diagram of the first decoding unit according to the fourth embodiment.
  • FIG. 23 is a block diagram of the divided portion according to the fourth embodiment.
  • FIG. 24 is a diagram showing a division example of slices and tiles according to the fourth embodiment.
  • FIG. 25 is a diagram showing an example of a slice and tile division pattern according to the fourth embodiment.
  • FIG. 26 is a diagram showing an example of the dependency relationship according to the fourth embodiment.
  • FIG. 27 is a diagram showing an example of the decoding order of the data according to the fourth embodiment.
  • FIG. 28 is a flowchart of the coding process according to the fourth embodiment.
  • FIG. 29 is a block diagram of the joint portion according to the fourth embodiment.
  • FIG. 30 is a diagram showing a configuration example of the coded data and the NAL unit according to the fourth embodiment.
  • FIG. 31 is a flowchart of the coding process according to the fourth embodiment.
  • FIG. 32 is a flowchart of the decoding process according to the fourth embodiment.
  • FIG. 33 is a flowchart of the coding process according to the fourth embodiment.
  • FIG. 34 is a flowchart of the decoding process according to the fourth embodiment.
  • FIG. 35 is a diagram showing an image of generating a tree structure and an occupancy code from the point cloud data of a plurality of frames according to the fifth embodiment.
  • FIG. 36 is a diagram showing an example of frame coupling according to the fifth embodiment.
  • FIG. 37 is a diagram showing an example of joining a plurality of frames according to the fifth embodiment.
  • FIG. 38 is a flowchart of the three-dimensional data coding process according to the fifth embodiment.
  • FIG. 39 is a flowchart of the coding process according to the fifth embodiment.
  • FIG. 39 is a flowchart of the coding process according to the fifth embodiment.
  • FIG. 40 is a flowchart of the three-dimensional data decoding process according to the fifth embodiment.
  • FIG. 41 is a flowchart of the decoding and division processing according to the fifth embodiment.
  • FIG. 42 is a block diagram of the coding unit according to the fifth embodiment.
  • FIG. 43 is a block diagram of the divided portion according to the fifth embodiment.
  • FIG. 44 is a block diagram of the position information coding unit according to the fifth embodiment.
  • FIG. 45 is a block diagram of the attribute information coding unit according to the fifth embodiment.
  • FIG. 46 is a flowchart of the point cloud data coding process according to the fifth embodiment.
  • FIG. 47 is a flowchart of the coding process according to the fifth embodiment.
  • FIG. 48 is a block diagram of the decoding unit according to the fifth embodiment.
  • FIG. 49 is a block diagram of the position information decoding unit according to the fifth embodiment.
  • FIG. 50 is a block diagram of the attribute information decoding unit according to the fifth embodiment.
  • FIG. 51 is a block diagram of the joint portion according to the fifth embodiment.
  • FIG. 52 is a flowchart of the point cloud data decoding process according to the fifth embodiment.
  • FIG. 53 is a flowchart of the decoding process according to the fifth embodiment.
  • FIG. 54 is a diagram showing an example of a frame connection pattern according to the fifth embodiment.
  • FIG. 55 is a diagram showing a configuration example of the PCC frame according to the fifth embodiment.
  • FIG. 56 is a diagram showing a configuration of coded position information according to the fifth embodiment.
  • FIG. 57 is a diagram showing an example of syntax of the header of the coded position information according to the fifth embodiment.
  • FIG. 58 is a diagram showing a syntax example of the payload of the coded position information according to the fifth embodiment.
  • FIG. 59 is a diagram showing an example of leaf node information according to the fifth embodiment.
  • FIG. 60 is a diagram showing an example of leaf node information according to the fifth embodiment.
  • FIG. 61 is a diagram showing an example of bitmap information according to the fifth embodiment.
  • FIG. 62 is a diagram showing a configuration of coded attribute information according to the fifth embodiment.
  • FIG. 63 is a diagram showing an example of syntax of the header of the coding attribute information according to the fifth embodiment.
  • FIG. 64 is a diagram showing a syntax example of the payload of the coded attribute information according to the fifth embodiment.
  • FIG. 65 is a diagram showing a configuration of coded data according to the fifth embodiment.
  • FIG. 66 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 67 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 68 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 69 is a diagram showing an example of decoding a part of the frame according to the fifth embodiment.
  • FIG. 70 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 71 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 72 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 73 is a diagram showing a data transmission order and a data reference relationship according to the fifth embodiment.
  • FIG. 74 is a flowchart of the coding process according to the fifth embodiment.
  • FIG. 75 is a flowchart of the decoding process according to the fifth embodiment.
  • FIG. 76 is a diagram showing an example of three-dimensional points according to the sixth embodiment.
  • FIG. 77 is a diagram showing a setting example of LoD according to the sixth embodiment.
  • FIG. 78 is a diagram showing an example of a threshold value used for setting LoD according to the sixth embodiment.
  • FIG. 79 is a diagram showing an example of attribute information used for the predicted value according to the sixth embodiment.
  • FIG. 80 is a diagram showing an example of the exponential Golomb code according to the sixth embodiment.
  • FIG. 81 is a diagram showing processing for the exponential Golomb code according to the sixth embodiment.
  • FIG. 82 is a diagram showing an example of syntax of the attribute header according to the sixth embodiment.
  • FIG. 83 is a diagram showing an example of syntax of attribute data according to the sixth embodiment.
  • FIG. 84 is a flowchart of the three-dimensional data coding process according to the sixth embodiment.
  • FIG. 85 is a flowchart of the attribute information coding process according to the sixth embodiment.
  • FIG. 86 is a diagram showing processing for the exponential Golomb code according to the sixth embodiment.
  • FIG. 87 is a diagram showing an example of a reverse lookup table showing the relationship between the remaining code and the value according to the sixth embodiment.
  • FIG. 88 is a flowchart of the three-dimensional data decoding process according to the sixth embodiment.
  • FIG. 89 is a flowchart of the attribute information decoding process according to the sixth embodiment.
  • FIG. 90 is a block diagram of the three-dimensional data coding apparatus according to the sixth embodiment.
  • FIG. 91 is a block diagram of the three-dimensional data decoding device according to the sixth embodiment.
  • FIG. 92 is a diagram showing a configuration of attribute information according to the sixth embodiment.
  • FIG. 93 is a diagram for explaining the coded data according to the sixth embodiment.
  • FIG. 94 is a flowchart of the three-dimensional data coding process according to the sixth embodiment.
  • FIG. 95 is a flowchart of the three-dimensional data decoding process according to the sixth embodiment.
  • FIG. 96 is a diagram showing an example of coded data according to the seventh embodiment.
  • FIG. 97 is a diagram showing an example of coded data according to the seventh embodiment.
  • FIG. 98 is a flowchart of the three-dimensional data coding process according to the seventh embodiment.
  • FIG. 99 is a diagram showing an example of motion compensation and frame coupling according to the seventh embodiment.
  • FIG. 100 is a diagram showing an example of motion vector transmission according to the seventh embodiment.
  • FIG. 101 is a diagram showing an example of coded data according to the seventh embodiment.
  • FIG. 102 is a block diagram of the three-dimensional data decoding device according to the seventh embodiment.
  • FIG. 103 is a diagram showing an example of a motion vector calculation method according to the seventh embodiment.
  • FIG. 104 is a diagram showing an example of a motion vector calculation method according to the seventh embodiment.
  • FIG. 105 is a diagram showing an example of position-coded data in the seventh embodiment.
  • FIG. 106 is a diagram showing an example of a tile to which motion compensation is applied to the seventh embodiment.
  • FIG. 107 is a flowchart of the coding process according to the seventh embodiment.
  • FIG. 108 is a flowchart of the decoding process according to the seventh embodiment.
  • FIG. 109 is a diagram showing an example of a frame index at the time of frame connection according to the eighth embodiment.
  • FIG. 110 is a block diagram of the three-dimensional data coding device according to the eighth embodiment.
  • FIG. 111 is a diagram showing a case of a coding unit according to the eighth embodiment.
  • FIG. 112 is a diagram showing an example of point cloud data of a frame having no attribute information according to the eighth embodiment.
  • FIG. 113 is a diagram showing an example of the point cloud data after the format change according to the eighth embodiment.
  • FIG. 114 is a block diagram of the attribute information coding unit according to the eighth embodiment.
  • FIG. 115 is a block diagram of the additional information coding unit according to the eighth embodiment.
  • FIG. 116 is a diagram showing an example of APS syntax according to the eighth embodiment.
  • FIG. 117 is a diagram showing an example of syntax of the attribute slice header according to the eighth embodiment.
  • FIG. 111 is a diagram showing a case of a coding unit according to the eighth embodiment.
  • FIG. 112 is a diagram showing an example of point cloud data of a frame having no
  • FIG. 118 is a diagram showing a syntax example of the attribute slice data according to the eighth embodiment.
  • FIG. 119 is a diagram showing a configuration example of a coded bit stream of ordinary attribute information according to the eighth embodiment.
  • FIG. 120 is a diagram showing a configuration example of a coded bit stream of padded attribute information according to the eighth embodiment.
  • FIG. 121 is a block diagram of the attribute information decoding unit according to the eighth embodiment.
  • FIG. 122 is a flowchart of the three-dimensional data coding process according to the eighth embodiment.
  • FIG. 123 is a flowchart of the three-dimensional data decoding process according to the eighth embodiment.
  • FIG. 124 is a flowchart of the three-dimensional data coding process according to the eighth embodiment.
  • FIG. 125 is a flowchart of the three-dimensional data decoding process according to the eighth embodiment.
  • the three-dimensional data coding method is a plurality of values indicating each of the plurality of values of the plurality of attribute information when at least a part of the values of the plurality of attribute information of the plurality of three-dimensional points are different.
  • the plurality of second information indicating the same value common to the plurality of attribute information is included. Generates a bit stream that does not contain the first information of.
  • the three-dimensional data coding method can reduce the amount of data in the bitstream, so that the coding efficiency can be improved.
  • third information indicating that the plurality of values of the plurality of attribute information are all the same value is added to the bit stream. You may.
  • the plurality of attribute information is subjected to conversion processing using the plurality of position information of the plurality of three-dimensional points. 1 information is generated, the fourth information regarding the conversion process is added to the bit stream, and when the plurality of values of the plurality of attribute information are all the same value, the fourth information is added to the bit stream. It does not have to be.
  • the three-dimensional data coding method can reduce the amount of data in the bitstream, so that the coding efficiency can be improved.
  • a predetermined value is set as the plurality of attribute information of the plurality of three-dimensional points, and the bit stream has the same value.
  • the second information indicating the predetermined value may be included.
  • each of the plurality of attribute information may indicate a frame to which the three-dimensional point having the attribute information belongs before the combination in the frame generated by combining the plurality of frames.
  • the bit stream contains a plurality of first information indicating each of a plurality of values of the plurality of attribute information of the plurality of three-dimensional points
  • the plurality of first information is described.
  • the plurality of attribute information is generated from one information and the bit stream contains second information indicating a value common to the plurality of attribute information
  • the second value is set as each value of the plurality of attribute information.
  • the common value indicated by the information is output.
  • the three-dimensional data decoding method can decode a bit stream with improved coding efficiency.
  • the bit stream contains third information indicating that the plurality of values of the plurality of attribute information are all the same value
  • the second information is used as each value of the plurality of attribute information.
  • the common value shown may be output.
  • the fourth information regarding the inverse conversion process using the plurality of position information of the plurality of three-dimensional points is acquired from the bit stream, and the fourth information is obtained.
  • the plurality of attribute information is generated, and when the bit stream contains the second information, the fourth information is referred to as the fourth information. It does not have to be obtained from the bitstream.
  • the three-dimensional data decoding method can decode a bit stream with improved coding efficiency.
  • each of the plurality of attribute information may indicate a frame to which the three-dimensional point having the attribute information belongs before the combination in the frame generated by combining the plurality of frames.
  • the plurality of attribute information of a frame in which a plurality of frames are not combined may indicate a predetermined value
  • the second information may indicate the predetermined value as the common value
  • the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to at least a part of a plurality of attribute information of a plurality of three-dimensional points.
  • the processor uses the memory to at least a part of a plurality of attribute information of a plurality of three-dimensional points.
  • a bit stream including a plurality of first information indicating each of the plurality of values of the plurality of attribute information is generated, and when the plurality of values of the plurality of attribute information are all the same value, the said A bit stream is generated that includes the second information indicating the same value common to the plurality of attribute information and does not include the plurality of first information.
  • the three-dimensional data coding device can reduce the amount of data in the bitstream, so that the coding efficiency can be improved.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to display a plurality of attribute information of a plurality of three-dimensional points in a bit stream.
  • the processor uses the memory to display a plurality of attribute information of a plurality of three-dimensional points in a bit stream.
  • the plurality of attribute information is generated from the plurality of first information, and the bit stream shows a value common to the plurality of attribute information.
  • the common value indicated by the second information is output as each value of the plurality of attribute information.
  • the three-dimensional data decoding device can decode a bit stream with improved coding efficiency.
  • a recording medium such as a system, method, integrated circuit, computer program or computer-readable CD-ROM, and the system, method, integrated circuit, computer program. And any combination of recording media may be realized.
  • 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. To 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 configuration 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.
  • 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 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 the 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 the sensor information or the 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. In addition, 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, or the reflectance of the object, which is obtained from a lidar, a millimeter-wave radar, or an infrared sensor, and (2) a plurality.
  • the distance between the camera and the object obtained from the monocular camera image or the stereo camera image of the above, the reflectance of the object, and the like.
  • 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 of each point includes position information (three-dimensional coordinates) and attribute information for the position information.
  • a collection of multiple points is called a point cloud.
  • a point cloud indicates a three-dimensional shape of an object.
  • Position information such as three-dimensional coordinates is sometimes called geometry.
  • the data of 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 the position information or adding the 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 provided independently 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 encoded 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, ISOBMFF-based transmission method MPEG-DASH, MMT, MPEG-2 TS Systems, RMP, and the like.
  • 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.
  • wired transmission Ethernet (registered trademark), USB, RS-232C, HDMI (registered trademark), a coaxial cable, or the like is used.
  • wireless transmission 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 or the like is 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 using an N-branch structure such as an octa-tree. Specifically, in the octave 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 the point cloud is included in each of the eight nodes 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 the coded attribute information (Compressed Attribute) which is the 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 the coding of the target point (target node) to be processed based on the ocree tree structure generated by the position information coding unit 4631. To do. For example, the attribute information coding unit 4632 refers to a node whose parent node in the octree 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 the encoded additional information (Compressed Metadata Data) which is the encoded data by encoding the compressible data among the additional information.
  • Compressed Metadata Data is the encoded data by encoding the compressible data among the additional information.
  • 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 4461, a position information decoding unit 4642, an attribute information decoding unit 4634, 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 ocree.
  • 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 whose parent node in the octree 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 is the occupancy information indicating whether or not the reference node is used to calculate the predicted value of the attribute information, or the state of the reference node (for example, whether or not the reference node contains a point cloud) is used to determine the decoding parameters. ) 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 by 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 provides position information (Position), attribute information (Attribute), and other additional information (MetaData). Including.
  • 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 clouds are viewed from one viewpoint (an image in which a plurality of point clouds are projected on one two-dimensional plane), or a plurality of point clouds from a plurality of viewpoints. It may be a plurality of images viewed, or it may be a single image in which these plurality of images are integrated.
  • 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 clouds are viewed from one viewpoint (an image in which a plurality of point clouds are projected on one two-dimensional plane), or a plurality of point clouds may be viewed from a plurality of viewpoints. It may be a plurality of images viewed, 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 the 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 the 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 encoded stream (Compressed Stream) which is encoded data by multiplexing the encoded position image, the encoded attribute image, the encoded additional information, and other additional information.
  • the generated 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 encoded position image (Compressed Geometry Image), the encoded attribute image (Compressed Attribute Image), the encoded additional information (Compressed Metadata Image), and other additional information from the encoded 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 and the like 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, transmitted or stored in PCC coded data.
  • video for example, HEVC
  • audio is multiplexed, transmitted or stored in PCC coded data.
  • 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 a 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.
  • the coded data (position information (Geometry), attribute information (Attribute), additional information (Metadata)) 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. 16 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 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 of a plurality of data types (position information, attribute information, and additional information) into a NAL unit, thereby converting the data into a data structure in consideration of data access in the decoding device.
  • FIG. 17 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.
  • 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 composed of a plurality of frames is defined as a position sequence (Geometry Sequence).
  • the coding unit 4801 generates a position sequence parameter set (also referred to as Geometry Sequence PS: 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.
  • the coded attribute data is represented by A (i).
  • FIG. 17 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. 17 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. 17 shows an example in which the position information is one type and the attribute information is two types, 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 parameters 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 the codec of the point cloud data, information indicating the 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 beginning 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 decoding 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 beginning 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 beginning 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.
  • a PCC frame may be defined as a random access unit as long as the PCC frames do not depend on each other and can be decoded independently.
  • 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 SEI (Supplemental Enchanment Information) that stores parameters (optional parameters) that may not necessarily be used at the time of decoding.
  • SEI Supplemental Enchanment Information
  • FIG. 18 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, for example, and is information for referencing the reference destination from the reference source.
  • the referenced header contains identification information for identifying the data.
  • the header of the reference source includes 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. 19 is a diagram showing an example of the semantics of pcc_nal_unit_type.
  • pcc_codec_type is codec 1 (Codec1: first coding method)
  • the values 0 to 10 of pcc_nar_unit_type are the coded position data (Geometry) and the 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. In order to enable the decoding device to decode the data in the order in which they are received without rearranging the data, the multiplexing unit 4802 sends the referenced data first.
  • FIG. 20 is a diagram showing an example of the sending order of NAL units.
  • FIG. 20 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 faster by obtaining the coded data of the position information earlier.
  • the attribute XSPS and the attribute YSPS are integrated and described as the attribute SPS, but the attribute XSPS and the attribute YSPS may be arranged separately.
  • 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 sending out 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.
  • a desired transmission order is instructed by the three-dimensional data decoding device to the three-dimensional data coding device, 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 the transmission order is restricted, 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 value of PS is indicated by the lower PS.
  • the PS value is not described in the upper PS, and the PS value is described in the lower PS.
  • the information on whether the value of PS is indicated by the lower PS, the upper PS, or both is indicated 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 or parameters related to the tile or slice are stored is defined.
  • FIG. 21 is a block diagram showing a configuration of a first coding unit 4910 included in the three-dimensional data coding device according to the present embodiment.
  • the first coding unit 4910 generates coded data (coded stream) by coding the point cloud data by the first coding method (GPC (Geometry based PCC)).
  • the first coding unit 4910 includes a dividing unit 4911, a plurality of position information coding units 4912, a plurality of attribute information coding units 4913, an additional information coding unit 4914, and a multiplexing unit 4915. ..
  • the division unit 4911 generates a plurality of division data by dividing the point cloud data. Specifically, the division unit 4911 generates a plurality of division data by dividing the space of the point cloud data into a plurality of subspaces.
  • the subspace is one of tiles and slices, or a combination of tiles and slices.
  • the point cloud data includes position information, attribute information, and additional information.
  • the division unit 4911 divides the position information into a plurality of division position information, and divides the attribute information into a plurality of division attribute information. In addition, the division unit 4911 generates additional information regarding the division.
  • the plurality of position information coding units 4912 generate a plurality of coded position information by encoding the plurality of divided position information. For example, the plurality of position information coding units 4912 process a plurality of divided position information in parallel.
  • the plurality of attribute information coding units 4913 generate a plurality of coded attribute information by encoding the plurality of divided attribute information. For example, the plurality of attribute information coding units 4913 process a plurality of divided attribute information in parallel.
  • the additional information coding unit 4914 generates the coded additional information by encoding the additional information included in the point cloud data and the additional information related to the data division generated at the time of division by the division unit 4911.
  • the multiplexing unit 4915 generates coded data (coded stream) by multiplexing a plurality of coded position information, a plurality of coded attribute information, and coded additional information, and transmits the generated coded data. .. Further, the coded additional information is used at the time of decoding.
  • the numbers of the position information coding unit 4912 and the attribute information coding unit 4913 show two examples, respectively, but the numbers of the position information coding unit 4912 and the attribute information coding unit 4913 are respectively. It may be one or three or more. Further, the plurality of divided data may be processed in parallel in the same chip like a plurality of cores in the CPU, may be processed in parallel by the cores of a plurality of chips, or may be processed in parallel by a plurality of cores of a plurality of chips. May be done.
  • FIG. 22 is a block diagram showing the configuration of the first decoding unit 4920.
  • the first decoding unit 4920 restores the point cloud data by decoding the coded data (encoded stream) generated by encoding the point cloud data by the first coding method (GPCC). ..
  • the first decoding unit 4920 includes a demultiplexing unit 4921, a plurality of position information decoding units 4922, a plurality of attribute information decoding units 4923, an additional information decoding unit 4924, and a coupling unit 4925.
  • the demultiplexing unit 4921 generates a plurality of coded position information, a plurality of coded attribute information, and coded additional information by demultiplexing the coded data (coded stream).
  • the plurality of position information decoding units 4922 generate a plurality of divided position information by decoding the plurality of coded position information. For example, the plurality of position information decoding units 4922 process a plurality of coded position information in parallel.
  • the plurality of attribute information decoding units 4923 generates a plurality of divided attribute information by decoding the plurality of coded attribute information. For example, the plurality of attribute information decoding units 4923 processes a plurality of coded attribute information in parallel.
  • the plurality of additional information decoding units 4924 generate additional information by decoding the coded additional information.
  • the connecting unit 4925 generates position information by combining a plurality of divided position information using additional information.
  • the connecting unit 4925 generates attribute information by combining a plurality of divided attribute information using additional information.
  • the number of the position information decoding unit 4922 and the number of the attribute information decoding unit 4923 are two, respectively, but the number of the position information decoding unit 4922 and the attribute information decoding unit 4923 is one, respectively. It may be three or more. Further, the plurality of divided data may be processed in parallel in the same chip like the plurality of cores in the CPU, or may be processed in parallel by the cores of the plurality of chips, and may be processed in parallel by the plurality of cores of the plurality of chips. You may.
  • FIG. 23 is a block diagram of the division portion 4911.
  • the division unit 4911 includes a slice division unit 4931 (Slice Divider), a position information tile division unit 4932 (Geometry Tile Divider), and an attribute information tile division unit 4933 (Attribute Tile Divider).
  • the slice division unit 4931 generates a plurality of slice position information by dividing the position information (Position (Geometry)) into slices. Further, the slice division unit 4931 generates a plurality of slice attribute information by dividing the attribute information (Attribute) into slices. Further, the slice division unit 4931 outputs the slice addition information (Slice Metadata Data) including the information related to the slice division and the information generated in the slice division.
  • the position information tile division unit 4932 generates a plurality of division position information (a plurality of tile position information) by dividing a plurality of slice position information into tiles. Further, the position information tile division unit 4932 outputs the position tile additional information (Geometry Tile Metadata Data) including the information related to the tile division of the position information and the information generated in the tile division of the position information.
  • a plurality of division position information a plurality of tile position information
  • the position information tile division unit 4932 outputs the position tile additional information (Geometry Tile Metadata Data) including the information related to the tile division of the position information and the information generated in the tile division of the position information.
  • the attribute information tile division unit 4933 generates a plurality of division attribute information (a plurality of tile attribute information) by dividing a plurality of slice attribute information into tiles. Further, the attribute information tile division unit 4933 outputs the attribute tile additional information (Attribute Tile Metadata Data) including the information related to the tile division of the attribute information and the information generated in the tile division of the attribute information.
  • attribute tile additional information Attribute Tile Metadata Data
  • the number of slices or tiles to be divided is 1 or more. That is, it is not necessary to slice or divide the tile.
  • the slice division may be performed after the tile division.
  • a new division type may be defined, and division may be performed with three or more division types.
  • FIG. 24 is a diagram showing an example of slicing and tile division.
  • the division unit 4911 divides the three-dimensional point cloud data into arbitrary point clouds in slice units.
  • the division unit 4911 does not divide the position information and the attribute information constituting the points, but divides the position information and the attribute information at once. That is, the division unit 4911 performs slice division so that the position information and the attribute information at an arbitrary point belong to the same slice.
  • 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 division unit 4911 generates slice addition 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 division unit 4911 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. 24 shows an example of dividing by an octa-tree structure
  • the number of divisions and the division method may be any method.
  • the division unit 4911 may divide the position information and the attribute information by different division methods, or may divide by the same division method. Further, the division unit 4911 may divide a plurality of slices into tiles by different division methods, or may divide them into tiles by the same division method.
  • the division unit 4911 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 division unit 4911 may use a predetermined method as the method of slicing or tile division, or may adaptively switch the method to be used according to the point cloud data.
  • the division unit 4911 collectively divides the three-dimensional space with respect to the position information and the attribute information. For example, the division unit 4911 determines the shape of the object and divides the three-dimensional space into slices according to the shape of the object. For example, the division unit 4911 extracts an object such as a tree or a building and divides the object unit. For example, the division unit 4911 performs slice division so that the entire one or a plurality of objects are included in one slice. Alternatively, the division unit 4911 divides one object into a plurality of slices.
  • the coding apparatus may change the coding method for each slice, for example.
  • the encoding device may use a high quality compression method for a particular object or a particular part of the object.
  • the coding apparatus may store information indicating the coding method for each slice in additional information (metadata).
  • the division unit 4911 may perform slice division so that each slice corresponds to a predetermined coordinate space based on the map information or the position information.
  • the division unit 4911 independently divides the position information and the attribute information. For example, the division unit 4911 divides the slice into tiles according to the amount of data or the amount of processing. For example, the division unit 4911 determines whether the amount of data in the slice (for example, the number of three-dimensional points included in the slice) is larger than a predetermined threshold value. The dividing unit 4911 divides the slice into tiles when the amount of data of the slice is larger than the threshold value. The dividing unit 4911 does not divide the slice into tiles when the amount of data in the slice is less than the threshold value.
  • the dividing unit 4911 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 processing amount per tile in the decoding device becomes constant, and the distributed processing in the decoding device becomes easy.
  • the division unit 4911 sets the number of divisions of the position information from the number of divisions of the attribute information. Do more.
  • the division unit 4911 determines the number of divisions of the position information. It 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. 25 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 numerical value on the upper right of the DU in the figure indicates the slice index
  • the numerical value on the lower left of the DU indicates the tile index.
  • 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 same number of divisions and division methods are used between a plurality of G slices. The same number of divisions and division methods are used between a plurality of A slices.
  • the number of divisions and the division method are the same for the G slice and the 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 are different among a plurality of A slices.
  • the three-dimensional data coding device (first coding unit 4910) encodes each of the divided data.
  • the three-dimensional data coding device When encoding the attribute information, the three-dimensional data coding device generates dependency information as additional information indicating which configuration information (position information, additional information, or other attribute information) was used for encoding. .. That is, the dependency information indicates, for example, the configuration information of the reference destination (dependency destination).
  • the three-dimensional data coding device generates the dependency information based on the configuration information corresponding to the divided shape of the attribute information.
  • the three-dimensional data coding device may generate dependency information based on the configuration information corresponding to the plurality of divided shapes.
  • Dependency information may be generated by a 3D data coding device, and the generated dependency information may be sent to a 3D data decoding device.
  • the 3D data decoding device does not have to generate the dependency information, and the 3D data coding device does not have to send the dependency information.
  • the dependency relationship used by the three-dimensional data coding device is defined in advance, and the three-dimensional data coding device does not have to send out the dependency relationship information.
  • FIG. 26 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.
  • the three-dimensional data decoding device decodes data in the order of the dependency source from the dependency destination. 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 slice number 1 and tile number 1
  • G s1t2 indicates the position information of slice number 1 and tile number 2
  • G s2t1 indicates the position information of slice number 2 and tile number 1.
  • G s2t2 indicate 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 slice number 1 and tile number 1
  • As1t2 indicates the attribute information of slice number 1 and tile number 2
  • As2t1 indicates the attribute information of slice number 2 and tile number 1.
  • As2t2 indicate the attribute information of the slice number 2 and the tile number 2.
  • 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 may sort the data in the decoding order so that the data does not need to be sorted in the three-dimensional data decoding device.
  • the data may be rearranged in the three-dimensional data decoding device, or the data may be rearranged in both the three-dimensional data coding device and the three-dimensional data decoding device.
  • FIG. 27 is a diagram showing an example of the data decoding order.
  • decoding is performed in order from the left data.
  • the three-dimensional data decoding device decodes the dependent data first among the dependent data.
  • the three-dimensional data coding apparatus rearranges the data in advance so as to send the data in this order. 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. 28 is a flowchart showing the flow of processing by the three-dimensional data coding device.
  • the three-dimensional data coding apparatus encodes the data of a plurality of slices or tiles as described above (S4901).
  • the three-dimensional data coding apparatus rearranges the data so that the dependent data comes first (S4902).
  • the three-dimensional data coding apparatus multiplexes (NAL unitizes) the sorted data (S4903).
  • FIG. 29 is a block diagram showing the configuration of the joint portion 4925.
  • the connecting portion 4925 includes a position information tile connecting portion 4941 (Geometry Tile Comminer), an attribute information tile connecting portion 4942 (Attribute Tile Comminer), and a slice connecting portion (Slice Comminer).
  • the position information tile connection unit 4941 generates a plurality of slice position information by combining a plurality of division position information using the position tile addition information.
  • the attribute information tile combination unit 4942 generates a plurality of slice attribute information by combining a plurality of division attribute information using the attribute tile addition information.
  • the slice joining unit 4943 generates position information by joining a plurality of slice position information using the slice addition information. Further, the slice connection unit 4943 generates attribute information by combining a plurality of slice attribute information using the slice addition information.
  • the number of slices or tiles to be divided is 1 or more. That is, the slices or tiles may not be divided.
  • the slice division may be performed after the tile division.
  • a new division type may be defined, and division may be performed with three or more division types.
  • FIG. 30 is a diagram showing a configuration of coded data and a method of storing the coded data in the NAL unit.
  • the coded data (division position information and division attribute information) is stored in the payload of the NAL unit.
  • the coded data includes a header and a payload.
  • the header contains identification information for identifying the data contained in the payload.
  • This identification information includes, for example, the type of slice division or tile division (slice_type, tile_type), index information (slice_idx, tile_idx) for identifying a slice or tile, position information of data (slice or tile), or data address. (Addless) and the like are included.
  • the index information for identifying the slice is also referred to as a slice index (SliceIndex).
  • the index information for identifying the tile is also referred to as a tile index (TileIndex).
  • the type of division is, for example, a method based on the object shape as described above, a method based on map information or position information, a method based on the amount of data or the amount of processing, and the like.
  • the above 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 division type (slice_type, tile_type) and the index information (slice_idx, tile_idx) are the same for the position information and the attribute information. Therefore, these pieces of information may be included in one of the headers of the position information and the attribute information.
  • the attribute information depends on the position information
  • the position information is processed first. Therefore, it is not necessary that the header of the position information includes such information and the header of the attribute information does not include such information.
  • the three-dimensional data decoding device determines that the attribute information of the dependency source belongs to the same slice or tile as the slice or tile of the position information of the dependency destination, for example.
  • additional information related to slice division or tile division is the existing parameter sets (GPS, APS, position SPS, or It may be stored in the attribute SPS (etc.) and sent out.
  • information indicating the division method may be stored in a parameter set (GPS, APS, etc.) for each frame. If the division method does not change within the sequence, information indicating the division method may be stored in the parameter set (position SPS or attribute SPS) for each sequence. Further, when the same division method is used for the position information and the attribute information, the information indicating the division method may be stored in the parameter set (stream PS) of the PCC stream.
  • the above information may be stored in any of the above parameter sets, or may be stored in a plurality of parameter sets. Further, a parameter set for tile division or slice division may be defined, and the above information may be stored in the parameter set. Further, these pieces of information may be stored in the header of the coded data.
  • the header of the coded data includes identification information indicating the dependency. That is, the header includes identification information for referring to the dependency destination from the dependency source when there is a dependency relationship between the data.
  • the header of the dependent data includes identification information for identifying the data.
  • the header of the data of the dependency source contains identification information indicating the dependency destination. If the identification information for specifying the data, the additional information related to the slice division or the tile division, and the identification information indicating the dependency can be identified or derived from other information, these information are omitted. You may.
  • FIG. 31 is a flowchart of the point cloud data coding process according to the present embodiment.
  • the three-dimensional data coding device determines the division method to be used (S4911).
  • This division method includes whether or not to perform slice division and whether or not to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
  • the type of division is a method based on the object shape as described above, a method based on map information or position information, a method based on the amount of data or the amount of processing, and the like.
  • the division method may be predetermined.
  • the three-dimensional data encoding device When slice division is performed (Yes in S4912), the three-dimensional data encoding device generates a plurality of slice position information and a plurality of slice attribute information by collectively dividing the position information and the attribute information (S4913). .. In addition, the three-dimensional data coding device generates slice addition information related to slice division. The three-dimensional data coding device may independently divide the position information and the attribute information.
  • the three-dimensional data encoding device divides a plurality of slice position information and a plurality of slice attribute information (or position information and attribute information) independently to obtain a plurality of division positions. Information and a plurality of division attribute information are generated (S4915). Further, the three-dimensional data encoding device generates position tile addition information and attribute tile addition information related to tile division.
  • the three-dimensional data coding apparatus may collectively divide the slice position information and the slice attribute information.
  • the three-dimensional data coding apparatus generates a plurality of coded position information and a plurality of coded attribute information by encoding each of the plurality of divided position information and the plurality of divided attribute information (S4916). ..
  • the three-dimensional data coding device generates dependency information.
  • the three-dimensional data coding apparatus generates coded data (coded stream) by NAL unitizing (multiplexing) a plurality of coded position information, a plurality of coded attribute information, and additional information (multiplexed). S4917). In addition, the three-dimensional data coding device sends out the generated coded data.
  • FIG. 32 is a flowchart of the point cloud data decoding process according to the present embodiment.
  • the three-dimensional data decoding device analyzes the additional information (slice addition information, position tile addition information, and attribute tile addition information) related to the division method included in the coded data (encoded stream), thereby performing the division method. Is determined (S4921).
  • This division method includes whether or not to perform slice division and whether or not to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
  • the three-dimensional data decoding device decodes a plurality of coded position information and a plurality of coded attribute information included in the coded data by using the dependency information included in the coded data to obtain the divided position information. And the division attribute information is generated (S4922).
  • the three-dimensional data decoding device When the additional information indicates that the tile division is performed (Yes in S4923), the three-dimensional data decoding device has a plurality of division position information and a plurality of divisions based on the position tile addition information and the attribute tile addition information. By combining the attribute information with each method, a plurality of slice position information and a plurality of slice attribute information are generated (S4924). The three-dimensional data decoding device may combine the plurality of division position information and the plurality of division attribute information by the same method.
  • the three-dimensional data decoding apparatus When the additional information indicates that the slice division is performed (Yes in S4925), the three-dimensional data decoding apparatus has a plurality of slice position information and a plurality of slice attribute information (a plurality of division positions) based on the slice addition information. Information and a plurality of divided attribute information) are combined in the same way to generate position information and attribute information (S4926).
  • the three-dimensional data decoding device may combine the plurality of slice position information and the plurality of slice attribute information by different methods.
  • the three-dimensional data encoding device includes a plurality of divided data in which a target space containing a plurality of three-dimensional points is included in a plurality of divided subspaces (for example, slices), each containing one or more three-dimensional points. Divide into (for example, tiles).
  • the divided data is one or more data aggregates included in the subspace and including one or more three-dimensional points.
  • the divided data is also a space, and may include a space that does not include three-dimensional points.
  • one subspace may contain a plurality of divided data, or one subspace may contain one divided data.
  • a plurality of subspaces may be set in the target space, or one subspace may be set in the target space.
  • the three-dimensional data coding device encodes each of the plurality of partitioned data to generate a plurality of encoded data corresponding to each of the plurality of partitioned data (S4931).
  • the three-dimensional data coding apparatus generates a bit stream including a plurality of coded data and a plurality of control information (for example, a header shown in FIG. 30) for each of the plurality of coded data (S4932).
  • Each of the plurality of control information indicates a first identifier (for example, slice_idx) indicating a subspace corresponding to the coded data corresponding to the control information, and divided data corresponding to the coded data corresponding to the control information.
  • a second identifier for example, tile_idx is stored.
  • the three-dimensional data decoding apparatus that decodes the bit stream generated by the three-dimensional data encoding apparatus uses the first identifier and the second identifier to combine the data of a plurality of divided data to form the target space. Can be easily restored. Therefore, the amount of processing in the three-dimensional data decoding device can be reduced.
  • the three-dimensional data coding device encodes the position information and the attribute information of the three-dimensional points included in each of the plurality of divided data.
  • Each of the plurality of coded data includes coded data of position information and coded data of attribute information.
  • Each of the plurality of control information includes the control information of the coded data of the position information and the control information of the coded data of the attribute information.
  • the first identifier and the second identifier are stored in the control information of the coded data of the position information.
  • each of a plurality of control information is arranged before the coded data corresponding to the control information.
  • a target space including a plurality of three-dimensional points is set in one or more subspaces, and the subspace includes one or more divided data including one or more three-dimensional points.
  • a plurality of coded data corresponding to each of the plurality of divided data is generated, and the plurality of coded data and a plurality of coded data for each of the plurality of coded data are generated.
  • a bit stream including the control information of is generated, and each of the plurality of control information includes a first identifier indicating a subspace corresponding to the coded data corresponding to the control information and a code corresponding to the control information.
  • a second identifier indicating the divided data corresponding to the converted data may be stored.
  • 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 processing shown in FIG. 34.
  • the three-dimensional data decoding device is included in a plurality of subspaces (for example, slices) in which a target space including a plurality of three-dimensional points is divided, and a plurality of divided data (each containing one or more three-dimensional points). From a bit stream containing a plurality of encoded data generated by encoding each of the tiles) and a plurality of control information (for example, a header shown in FIG. 30) for each of the plurality of encoded data.
  • a plurality of subspaces for example, slices
  • a plurality of divided data each containing one or more three-dimensional points.
  • the first identifier (for example, slice_idx) indicating the subspace corresponding to the coded data corresponding to the control information and the divided data corresponding to the coded data corresponding to the control information are stored in a plurality of control information.
  • the second identifier (for example, tile_idx) to be indicated is acquired (S4941).
  • the three-dimensional data decoding device restores the plurality of partitioned data by decoding the plurality of coded data (S4942).
  • the three-dimensional data decoding device restores the target space by combining a plurality of partitioned data using the first identifier and the second identifier (S4943).
  • a three-dimensional data encoding device restores a plurality of subspaces by combining a plurality of divided data using a second identifier, and a target space by combining a plurality of subspaces using the first identifier.
  • Restore multiple 3D points.
  • the three-dimensional data decoding device acquires the coded data of the desired subspace or divided data from the bit stream by using at least one of the first identifier and the second identifier, and selectively selects the acquired coded data. Decoding or preferentially decoding may be performed.
  • the three-dimensional data decoding device can easily restore the target space by combining the data of a plurality of partitioned data using the first identifier and the second identifier. Therefore, the amount of processing in the three-dimensional data decoding device can be reduced.
  • each of the plurality of coded data is generated by encoding the position information and the attribute information of the three-dimensional points included in the corresponding divided data, and the coded data of the position information and the code of the attribute information. Includes coded data.
  • Each of the plurality of control information includes the control information of the coded data of the position information and the control information of the coded data of the attribute information.
  • the first identifier and the second identifier are stored in the control information of the coded data of the position information.
  • control information is placed before the corresponding coded data.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data coding apparatus In position information coding using adjacency dependence, the higher the density of point clouds, the higher the coding efficiency may be.
  • the three-dimensional data coding apparatus collectively encodes the point cloud data of consecutive frames by combining the point cloud data of consecutive frames. At this time, the three-dimensional data coding device generates coded data to which information for identifying the frame to which each of the leaf nodes included in the combined point cloud data belongs is added.
  • the distinction of which frame the point cloud belongs to is made by the leaf node by encoding the index of the frame.
  • FIG. 35 is a diagram showing an image of generating a tree structure and an Occupancy Code from point cloud data of N PCC (Point Cloud Compression) frames.
  • N PCC Point Cloud Compression
  • the points in the arrows indicate the points belonging to each PCC frame.
  • points belonging to each PCC frame are given a frame index to identify the frame.
  • the points belonging to N frames are converted into a tree structure, and an occupancy code is generated. Specifically, for each point, it is determined which leaf node in the tree structure the point belongs to.
  • the tree structure (Tree Structure) shows a set of nodes. It is determined which node the point belongs to in order from the upper node. The determination result for each node is encoded as an occupancy code. The occupancy code is common to N frames.
  • Nodes may have mixed points of different frames with different frame indexes. If the resolution of the ocree is small, points of the same frame with the same frame index may coexist.
  • points belonging to multiple frames may be mixed (overlapping).
  • the higher level tree structure and occupancy code may be common components in all frames, and the lower level tree structure and occupancy code may be individual components or common components for each frame. And individual components may be mixed.
  • points of 0 or more having a frame index are generated, information indicating the number of points, and information of a frame index for each point are generated. It can be said that these pieces of information are individual pieces of information in the frame.
  • FIG. 36 is a diagram showing an example of frame connection. As shown in FIG. 36 (a), by collectively generating a tree structure of a plurality of frames, the density of points of the frames included in the same node is increased. Further, by sharing the tree structure, the amount of data of the occupancy code can be reduced. These may improve the coding rate.
  • the effect of arithmetic coding is enhanced by making the individual components of the occupancy code in the tree structure denser, so that there is a possibility that the coding rate can be improved.
  • the plurality of point cloud data to be combined is not limited to a plurality of frames, that is, point cloud data having different times of the same object. That is, the following method can be applied to the combination of a plurality of point cloud data that are spatially or spatiotemporally different. The following method can also be applied to the combination of point cloud data or point cloud files having different contents.
  • FIG. 37 is a diagram showing an example of combining a plurality of PCC frames that differ in time.
  • FIG. 37 shows an example of acquiring point cloud data with a sensor such as LiDAR while the automobile is moving.
  • the dotted line indicates the acquisition range of the sensor for each frame, that is, the area of the point cloud data.
  • the acquisition range of the sensor is large, the range of the point cloud data is also large.
  • the method of combining and coding the point cloud data is effective for the following point cloud data.
  • the vehicle is moving and the frame is identified by a 360 ° scan around the vehicle. That is, the next frame, frame 2, corresponds to another 360 ° scan after the vehicle has moved in the X direction.
  • the frame 1 and the frame 2 have overlapping areas, the same point cloud data may be included. Therefore, there is a possibility that the coding efficiency can be improved by combining and coding the frame 1 and the frame 2. It is also possible to combine more frames. However, increasing the number of frames to be combined increases the number of bits required to code the frame index added to the leaf node.
  • point cloud data may be acquired by sensors at different positions.
  • each point cloud data acquired from each position may be used as a frame. That is, the plurality of frames may be point cloud data acquired by a single sensor, or may be point cloud data acquired by a plurality of sensors.
  • some or all of the objects may be the same or different between the plurality of frames.
  • FIG. 38 is a flowchart of the three-dimensional data coding process.
  • the three-dimensional data coding device reads the point cloud data of all N frames based on the number of combined frames N, which is the number of frames to be combined.
  • the three-dimensional data coding device determines the number of combined frames N (S5401). For example, the number of combined frames N is specified by the user.
  • the three-dimensional data coding device acquires the point cloud data (S5402).
  • the three-dimensional data coding device records the frame index of the acquired point cloud data (S5403).
  • the three-dimensional data encoding device specifies the next point cloud data (S5405), and processes the specified point cloud data after step S5402. Do.
  • the three-dimensional data coding device combines the N frames and encodes the combined frame (S5406).
  • FIG. 39 is a flowchart of the coding process (S5406).
  • the three-dimensional data coding device generates common information common to N frames (S5411).
  • the common information includes an occupancy code and information indicating the number of combined frames N.
  • the three-dimensional data coding device generates individual information, which is individual information for each frame (S5412).
  • the individual information includes the number of points contained in the leaf node and the frame index of the points contained in the leaf node.
  • the three-dimensional data coding device combines the common information and the individual information, and generates the encoded data by encoding the combined information (S5413).
  • the three-dimensional data coding apparatus generates additional information (metadata) related to frame coupling and encodes the generated additional information (S5414).
  • FIG. 40 is a flowchart of the three-dimensional data decoding process.
  • the three-dimensional data decoding device acquires the number of combined frames N from the bit stream (S5421).
  • the three-dimensional data coding device acquires the coded data from the bit stream (S5422).
  • the three-dimensional data decoding device acquires the point cloud data and the frame index by decoding the coded data (S5423).
  • the three-dimensional data decoding device divides the decoded point cloud data using the frame index (S5424).
  • FIG. 41 is a flowchart of decoding and division processing (S5423 and S5424).
  • the three-dimensional data decoding device decodes (acquires) common information and individual information from the coded data (bit stream) (S5431).
  • the three-dimensional data decoding device determines whether to decode a single frame or a plurality of frames (S5432). For example, whether to decode a single frame or multiple frames may be specified externally.
  • the plurality of frames may be all frames of the combined frames or some frames.
  • the three-dimensional data decoding device may decide to decode a specific frame required by the application and may decide not to decode a frame not required. Alternatively, if real-time decoding is required, the 3D data decoding device may decide to decode a single frame out of the combined plurality of frames.
  • the three-dimensional data decoding device When decoding a single frame (Yes in S5432), the three-dimensional data decoding device extracts the individual information corresponding to the specified single frame index from the decoded individual information, and decodes the extracted individual information. By doing so, the point cloud data of the frame corresponding to the specified frame index is restored (S5433).
  • the three-dimensional data decoding device when decoding a plurality of frames (No in S5432), extracts individual information corresponding to the frame indexes of the specified plurality of frames (or all frames), and extracts the extracted individual information. By decoding, the point cloud data of the specified plurality of frames is restored (S5434). Next, the three-dimensional data decoding device divides the decoded point cloud data (individual information) based on the frame index (S5435). That is, the three-dimensional data decoding device divides the decoded point cloud data into a plurality of frames.
  • the three-dimensional data decoding device may collectively decode the data of all the combined frames and divide the decoded data into each frame, or any part of all the combined frames. Frames may be decoded at once, and the decoded data may be divided into each frame. Further, the three-dimensional data decoding device may independently decode a predetermined unit frame composed of a plurality of frames.
  • FIG. 42 is a block diagram showing a configuration of a coding unit 5410 included in the three-dimensional data coding device according to the present embodiment.
  • the coding unit 5410 generates coded data (coded stream) by coding the point cloud data (point cloud).
  • the coding unit 5410 includes a dividing unit 5411, a plurality of position information coding units 5412, a plurality of attribute information coding units 5413, an additional information coding unit 5414, and a multiplexing unit 5415.
  • the division unit 5411 generates a plurality of division data of a plurality of frames by dividing the point cloud data of a plurality of frames. Specifically, the division unit 5411 generates a plurality of division data by dividing the space of the point cloud data of each frame into a plurality of subspaces.
  • the subspace is one of tiles and slices, or a combination of tiles and slices.
  • the point cloud data includes position information, attribute information (color or reflectance, etc.), and additional information.
  • a frame number is input to the division unit 5411.
  • the division unit 5411 divides the position information of each frame into a plurality of division position information, and divides the attribute information of each frame into a plurality of division attribute information. In addition, the division unit 5411 generates additional information regarding the division.
  • the division unit 5411 first divides the point cloud into tiles. Next, the dividing unit 5411 further divides the obtained tile into slices.
  • the plurality of position information coding units 5412 generate a plurality of coded position information by encoding the plurality of divided position information.
  • the position information coding unit 5412 encodes the divided position information using an N-branch structure such as an octa-tree. Specifically, in the octave 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 the point cloud is included in each of the eight nodes 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. For example, the plurality of position information coding units 5412 process the plurality of divided position information in parallel.
  • the attribute information coding unit 4632 generates the coded attribute information which is the 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 the coding of the target point (target node) to be processed based on the ocree tree structure generated by the position information coding unit 4631. To do. For example, the attribute information coding unit 4632 refers to a node whose parent node in the octree 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 coding process of the position information or the attribute information may include at least one of the quantization process, the prediction process, and the 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 plurality of attribute information coding units 5413 generate a plurality of coded attribute information by encoding the plurality of divided attribute information. For example, the plurality of attribute information coding units 5413 process a plurality of divided attribute information in parallel.
  • the additional information coding unit 5414 generates the coded additional information by encoding the additional information included in the point cloud data and the additional information related to the data division generated at the time of division by the division unit 5411.
  • the multiplexing unit 5415 generates coded data (coded stream) by multiplexing a plurality of coded position information, a plurality of coded attribute information, and coded additional information of a plurality of frames, and the generated coding. Send data. Further, the coded additional information is used at the time of decoding.
  • FIG. 43 is a block diagram of the division portion 5411.
  • the dividing portion 5411 includes a tile dividing portion 5421 and a slice dividing portion 5422.
  • the tile division unit 5421 generates a plurality of tile position information by dividing each of the position information (Position (Geometry)) of the plurality of frames into tiles. Further, the tile dividing unit 5421 generates a plurality of tile attribute information by dividing each of the attribute information (Attribute) of the plurality of frames into tiles. In addition, the tile division unit 5421 outputs the tile addition information (Tile Metadata Data) including the information related to the tile division and the information generated in the tile division.
  • the slice division unit 5422 generates a plurality of division position information (a plurality of slice position information) by dividing a plurality of tile position information into slices. Further, the slice division unit 5422 generates a plurality of division attribute information (a plurality of slice attribute information) by dividing the plurality of tile attribute information into slices. Further, the slice division unit 5422 outputs the slice addition information (Slice Metadata Data) including the information related to the slice division and the information generated in the slice division.
  • slice addition information Selice Metadata Data
  • the division unit 5411 uses a frame number (frame index) in order to indicate the origin coordinates, attribute information, and the like in the division process.
  • FIG. 44 is a block diagram of the position information coding unit 5412.
  • the position information coding unit 5412 includes a frame index generating unit 5431 and an entropy coding unit 5432.
  • the frame index generation unit 5431 determines the value of the frame index based on the frame number, and adds the determined frame index to the position information.
  • the entropy coding unit 5432 generates the coded position information by entropy-coding the divided position information to which the frame index is added.
  • FIG. 45 is a block diagram of the attribute information coding unit 5413.
  • the attribute information coding unit 5413 includes a frame index generation unit 5441 and an entropy coding unit 5442.
  • the frame index generation unit 5441 determines the value of the frame index based on the frame number, and adds the determined frame index to the attribute information.
  • the entropy coding unit 5442 generates the coding attribute information by entropy-coding the division attribute information to which the frame index is added.
  • FIG. 46 is a flowchart of the point cloud data coding process according to the present embodiment.
  • the three-dimensional data coding device determines the division method to be used (S5441).
  • This division method includes whether or not to perform slice division and whether or not to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
  • the three-dimensional data encoding device When tile division is performed (Yes in S5442), the three-dimensional data encoding device generates a plurality of tile position information and a plurality of tile attribute information by dividing the position information and the attribute information (S5443). In addition, the three-dimensional data coding device generates tile additional information related to tile division.
  • the three-dimensional data encoding device divides a plurality of tile position information and a plurality of tile attribute information (or position information and attribute information) to obtain a plurality of division position information and a plurality of division position information. Generate a plurality of division attribute information (S5445). In addition, the three-dimensional data coding device generates slice addition information related to slice division.
  • the three-dimensional data encoding device generates a plurality of coded position information and a plurality of coded attribute information by encoding each of the plurality of divided position information and the plurality of divided attribute information with the frame index. (S5446). In addition, the three-dimensional data coding device generates dependency information.
  • the three-dimensional data coding apparatus generates coded data (coded stream) by NAL unitizing (multiplexing) a plurality of coded position information, a plurality of coded attribute information, and additional information (multiplexed). S5447). In addition, the three-dimensional data coding device sends out the generated coded data.
  • FIG. 47 is a flowchart of the coding process (S5446). First, the three-dimensional data coding device encodes the division position information (S5451). Next, the three-dimensional data coding device encodes the frame index for the division position information (S5452).
  • the three-dimensional data encoding device encodes the division attribute information (S5454) and encodes the frame index for the division attribute information (S5455).
  • the division attribute information does not exist (No in S5453)
  • the three-dimensional data encoding device does not encode the division attribute information and the frame index for the division attribute information.
  • the frame index may be stored in either or both of the division position information and the division attribute information.
  • the three-dimensional data encoding device may encode the attribute information using the frame index or may not use the frame index. That is, the three-dimensional data coding device may use the frame index to identify the frame to which each point belongs and encode each frame, or the points belonging to all frames without identifying the frame. It may be encoded.
  • FIG. 48 is a block diagram showing the configuration of the decoding unit 5450.
  • the decoding unit 5450 restores the point cloud data by decoding the coded data (encoded stream) generated by encoding the point cloud data.
  • the decoding unit 5450 includes a demultiplexing unit 5451, a plurality of position information decoding units 5452, a plurality of attribute information decoding units 5453, an additional information decoding unit 5454, and a coupling unit 5455.
  • the demultiplexing unit 5451 generates a plurality of coded position information, a plurality of coded attribute information, and coded additional information by demultiplexing the coded data (coded stream).
  • the plurality of position information decoding units 5452 generate a plurality of divided position information by decoding the plurality of coded position information. For example, the plurality of position information decoding units 5452 process the plurality of coded position information in parallel.
  • the plurality of attribute information decoding units 5453 generate a plurality of divided attribute information by decoding the plurality of coded attribute information. For example, the plurality of attribute information decoding units 5453 processes a plurality of coded attribute information in parallel.
  • the plurality of additional information decoding units 5454 generate additional information by decoding the coded additional information.
  • the connecting unit 5455 generates position information by combining a plurality of divided position information using additional information.
  • the connecting unit 5455 generates attribute information by combining a plurality of divided attribute information using additional information. Further, the joining unit 5455 divides the position information and the attribute information into the position information of a plurality of frames and the attribute information of a plurality of frames by using the frame index.
  • FIG. 49 is a block diagram of the position information decoding unit 5452.
  • the position information decoding unit 5452 includes an entropy decoding unit 5461 and a frame index acquisition unit 5462.
  • the entropy decoding unit 5461 generates the divided position information by entropy decoding the coded position information.
  • the frame index acquisition unit 5462 acquires the frame index from the division position information.
  • FIG. 50 is a block diagram of the attribute information decoding unit 5453.
  • the attribute information decoding unit 5453 includes an entropy decoding unit 5471 and a frame index acquisition unit 5472.
  • the entropy decoding unit 5471 generates the division attribute information by entropy decoding the coded attribute information.
  • the frame index acquisition unit 5472 acquires the frame index from the division attribute information.
  • FIG. 51 is a diagram showing the configuration of the joint portion 5455.
  • the connecting unit 5455 generates position information by combining a plurality of divided position information.
  • the connecting unit 5455 generates attribute information by combining a plurality of divided attribute information.
  • the joining unit 5455 divides the position information and the attribute information into the position information of a plurality of frames and the attribute information of a plurality of frames by using the frame index.
  • FIG. 52 is a flowchart of the point cloud data decoding process according to the present embodiment.
  • the three-dimensional data decoding device determines the division method by analyzing the additional information (slice addition information and tile addition information) related to the division method included in the coded data (encoded stream) (S5461). ).
  • This division method includes whether or not to perform slice division and whether or not to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
  • the three-dimensional data decoding device decodes a plurality of coded position information and a plurality of coded attribute information included in the coded data by using the dependency information included in the coded data to obtain the divided position information. And the division attribute information is generated (S5462).
  • the three-dimensional data decoding device When the additional information indicates that the slice division is performed (Yes in S5463), the three-dimensional data decoding device combines the plurality of division position information based on the slice addition information to obtain a plurality of tile position information.
  • a plurality of tile attribute information is generated by generating and combining a plurality of division attribute information (S5464).
  • the plurality of division position information, the plurality of division attribute information, the plurality of tile position information, and the plurality of tile attribute information include the frame index.
  • the three-dimensional data decoding device When the additional information indicates that tile division is performed (Yes in S5465), the three-dimensional data decoding device combines a plurality of tile position information (plurality of division position information) based on the tile additional information.
  • the position information is generated by, and the attribute information is generated by combining a plurality of tile attribute information (a plurality of divided attribute information) (S5466).
  • the plurality of tile position information, the plurality of tile attribute information, the position information and the attribute information include the frame index.
  • FIG. 53 is a flowchart of the decoding process (S5464 or S5466).
  • the three-dimensional data decoding device decodes the divided position information (slice position information) (S5471).
  • the three-dimensional data decoding device decodes the frame index for the division position information (S5472).
  • the three-dimensional data decoding device decodes the division attribute information (S5474) and decodes the frame index for the division attribute information (S5475).
  • the three-dimensional data decoding device does not decode the division attribute information and the frame index for the division attribute information.
  • the three-dimensional data decoding device may decode the attribute information using the frame index, or may decode the attribute information without using the frame index.
  • FIG. 54 is a diagram showing an example of a frame connection pattern.
  • the example in the figure is an example in which the PCC frames are in time series and data is generated and coded in real time.
  • FIG. 54 (a) shows a case where four frames are fixedly connected.
  • the three-dimensional data coding device waits for the generation of data for four frames before generating the coded data.
  • FIG. 54 (b) shows a case where the number of frames is adaptively changed.
  • a three-dimensional data coding device changes the number of coupled frames in order to adjust the code amount of the coded data in rate control.
  • the three-dimensional data coding device does not have to combine frames if there is a possibility that the frame combination has no effect. Further, the three-dimensional data coding apparatus may switch between the case of frame coupling and the case of no frame coupling.
  • FIG. 54 (c) is an example in which a part of the plurality of frames to be combined overlaps with a part of the plurality of frames to be combined next. This example is useful when real-time performance or low delay is required, such as sequentially transmitting from what can be encoded.
  • FIG. 55 is a diagram showing a configuration example of a PCC frame.
  • the three-dimensional data coding device may be configured to include data units in which the frames to be combined can be decoded at least independently. For example, as shown in FIG. 55 (a), if all the PCC frames are intra-coded and the PCC frames can be decoded independently, any of the above patterns can be applied.
  • the three-dimensional data encoding device when a random access unit such as GOF (Group of Frame) is set when inter-prediction is applied, the three-dimensional data encoding device is used. Data may be combined with the GOF unit as the minimum unit.
  • GOF Group of Frame
  • the three-dimensional data coding device may encode common information and individual information collectively, or may encode each separately. Further, the three-dimensional data coding apparatus may use a common data structure for common information and individual information, or may use another data structure.
  • the three-dimensional data encoding device generates an occupancy code for each frame and then compares the occupancy codes of a plurality of frames to determine, for example, whether or not there are many intersections among the occupancy codes of the plurality of frames based on a predetermined standard. It may be determined and common information may be generated when there are many common parts. Alternatively, the three-dimensional data coding apparatus may determine whether to combine frames, which frames to combine, or the number of combined frames based on whether or not there are many common parts.
  • FIG. 56 is a diagram showing a configuration of coded position information.
  • the coded position information includes a header and a payload.
  • FIG. 57 is a diagram showing an example of syntax of the header (Geometry_header) of the coded position information.
  • the header of the coded position information includes a GPS index (gps_idx), offset information (offset), other information (other_geometry_information), a frame combination flag (combine_frame_flag), and the number of combined frames (number_of_combine_frame).
  • the GPS index indicates an identifier (ID) of a parameter set (GPS) corresponding to the coded position information.
  • GPS is a parameter set of coded position information of one frame or a plurality of frames. If a parameter set exists for each frame, identifiers of a plurality of parameter sets may be indicated in the header.
  • the offset information indicates the offset position for acquiring the combined data.
  • Other information indicates other information regarding the position information (for example, the difference value (QPdelta) of the quantization parameter).
  • the frame combination flag is a flag indicating whether or not the coded data is frame-coupled.
  • the number of combined frames indicates the number of combined frames.
  • the SPS is a parameter set for each sequence (multiple frames), and is a parameter set commonly used for the coded position information and the coded attribute information.
  • FIG. 58 is a diagram showing a syntax example of the payload (Geometry_data) of the coded position information.
  • the payload of the coded position information includes common information and leaf node information.
  • the common information is data in which one or more frames are combined, and includes an occupancy code (occupancy_Code) and the like.
  • Leaf node information is information of each leaf node.
  • Leaf node information may be shown for each frame as a loop of the number of frames.
  • FIG. 59 is a diagram showing an example of leaf node information in the case of the method 1.
  • the leaf node information shown in FIG. 59 includes a three-dimensional score (NumberOfPoints) indicating the number of points included in the node and a frame index (FrameIndex) for each point.
  • FIG. 60 is a diagram showing an example of leaf node information in the case of the method 2.
  • the leaf node information includes bitmap information (bitmapIsFramePointsFlag) indicating a frame index of a plurality of points by a bitmap.
  • FIG. 61 is a diagram showing an example of bitmap information. In this example, the bitmap shows that the leaf node contains three-dimensional points with frame indexes 1, 3, and 5.
  • the quantization resolution is low, there may be overlapping points in the same frame.
  • the number of three-dimensional points may be shared, and the number of three-dimensional points in each frame and the total number of three-dimensional points in a plurality of frames may be shown.
  • the three-dimensional data encoding device may remove overlapping points to reduce the amount of information.
  • the three-dimensional data coding device may remove the overlapping points before the frame joining, or may remove the overlapping points after the frame joining.
  • FIG. 62 is a diagram showing a configuration of coded attribute information.
  • the coding attribute information includes a header and a payload.
  • FIG. 63 is a diagram showing an example of syntax of the header (Attribute_header) of the coding attribute information.
  • the header of the coding attribute information includes the APS index (apps_idx), the offset information (offset), other information (other_attribute_information), the frame join flag (combine_frame_flag), and the number of join frames (number_of_combine_frame).
  • the APS index indicates the identifier (ID) of the parameter set (APS) corresponding to the coded attribute information.
  • ID is a parameter set of coding attribute information of one frame or a plurality of frames. If a parameter set exists for each frame, identifiers of a plurality of parameter sets may be indicated in the header.
  • the offset information indicates the offset position for acquiring the combined data.
  • the other information indicates other information regarding the attribute information (for example, the difference value (QPdelta) of the quantization parameter).
  • the frame combination flag is a flag indicating whether or not the coded data is frame-coupled.
  • the number of combined frames indicates the number of combined frames.
  • FIG. 64 is a diagram showing a syntax example of the payload (Attribute_data) of the coding attribute information.
  • the payload of the coding attribute information includes leaf node information (combine_information).
  • leaf node information component_information
  • the structure of this leaf node information is the same as the leaf node information included in the payload of the coded position information. That is, the leaf node information (frame index) may be included in the attribute information.
  • the leaf node information (frame index) is stored in one of the coded position information and the coded attribute information, and may not be stored in the other.
  • the leaf node information (frame index) stored in one of the coded position information and the coded attribute information is referred to when decoding the other information.
  • the information indicating the reference destination may be included in the coded position information or the coded attribute information.
  • FIG. 65 is a diagram showing the structure of the coded data.
  • the coded data includes a header and a payload.
  • FIGS. 66 to 68 are diagrams showing the data transmission order and the data reference relationship.
  • G (1) and the like indicate coded position information
  • GPS (1) and the like indicate a parameter set of coded position information
  • SPS indicates a parameter set of a sequence (plural frames).
  • the numbers in parentheses indicate the frame index value.
  • the three-dimensional data coding device may send data in the order of decoding.
  • FIG. 66 is a diagram showing an example of the transmission order when the frames are not combined.
  • FIG. 67 is a diagram showing an example in which frames are combined and metadata (parameter set) is added for each PCC frame.
  • FIG. 68 is a diagram showing an example in which frames are combined and metadata (parameter set) is added in units of combination.
  • the identifier of the referenced metadata is stored in order to obtain the metadata of the frame.
  • the metadata for each of a plurality of frames may be collected. Parameters common to a plurality of frame-coupled frames may be combined into one. Parameters that are not common to frames indicate values for each frame.
  • the information for each frame is, for example, a time stamp indicating the frame data generation time, coding time, decoding time, and the like. Further, the information for each frame may include the information of the sensor that acquired the frame data (sensor speed, acceleration, position information, sensor orientation, other sensor information, etc.).
  • FIG. 69 is a diagram showing an example of decoding a part of the frame in the example shown in FIG. 67. As shown in FIG. 69, if there is no dependency between frames in the frame-combined data, the three-dimensional data decoding device can decode each data independently.
  • the three-dimensional data encoding device may frame-coupling the attribute information.
  • the attribute information is encoded and decoded with reference to the position information.
  • the referenced position information may be the position information before the frame combination or the position information after the frame combination.
  • the number of combined frames of position information and the number of combined frames of attribute information may be common (same) or independent (different).
  • 70 to 73 are diagrams showing the data transmission order and the data reference relationship.
  • 70 and 71 show an example in which both the position information and the attribute information are combined in 4 frames.
  • metadata (parameter set) is added for each PCC frame.
  • metadata (parameter set) is added in units to be combined.
  • a (1) and the like indicate coding attribute information
  • APS (1) and the like indicate a parameter set of coding attribute information.
  • the numbers in parentheses indicate the frame index value.
  • FIG. 72 shows an example in which the position information is combined in 4 frames and the attribute information is not combined. As shown in FIG. 72, the position information may be frame-combined and the attribute information may not be frame-combined.
  • FIG. 73 shows an example in which frame combination and tile division are combined.
  • the header of each tile position information includes information such as a GPS index (gps_idx) and the number of combined frames (number_of_combine_frame). Further, the header of each tile position information includes a tile index (tile_idx) for identifying the tile.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 74.
  • the three-dimensional data encoding device generates the third point cloud data by combining the first point cloud data and the second point cloud data (S5481).
  • the three-dimensional data coding apparatus generates the coded data by encoding the third point cloud data (S5482).
  • the coded data includes identification information (for example, a frame index) indicating whether each of the plurality of three-dimensional points included in the third point cloud data belongs to the first point cloud data or the second point cloud data. Including.
  • the three-dimensional data coding device can improve the coding efficiency by coding a plurality of point cloud data collectively.
  • first point cloud data and the second point cloud data are point cloud data (for example, PCC frame) at different times.
  • first point cloud data and the second point cloud data are point cloud data (for example, PCC frame) at different times of the same object.
  • the coded data includes the position information and the attribute information of each of the plurality of three-dimensional points included in the third point cloud data, and the identification information is included in the attribute information.
  • the coded data includes position information (for example, an occupancy code) in which each position of a plurality of three-dimensional points included in the third point cloud data is represented by using an N (N is an integer of 2 or more) branches. ..
  • 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 processing shown in FIG. 75.
  • the three-dimensional data decoding device decodes the coded data to combine the first point cloud data and the second point cloud data to generate the third point cloud data and the third point cloud.
  • Identification information indicating whether each of the plurality of three-dimensional points included in the data belongs to the first point cloud data or the second point cloud data is acquired (S5491).
  • the three-dimensional data decoding device separates the first point cloud data and the second point cloud data from the third point cloud data using the identification information (S5492).
  • the three-dimensional data decoding device can decode the coded data with improved coding efficiency by coding a plurality of point cloud data collectively.
  • first point cloud data and the second point cloud data are point cloud data (for example, PCC frame) at different times.
  • first point cloud data and the second point cloud data are point cloud data (for example, PCC frame) at different times of the same object.
  • the coded data includes the position information and the attribute information of each of the plurality of three-dimensional points included in the third point cloud data, and the identification information is included in the attribute information.
  • the coded data includes position information (for example, an occupancy code) in which each position of a plurality of three-dimensional points included in the third point cloud data is represented by using an N (N is an integer of 2 or more) branches. ..
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the information of the three-dimensional point cloud includes position information (geometry) and attribute information (attribute).
  • the position information includes coordinates (x-coordinate, y-coordinate, z-coordinate) with respect to a certain point.
  • the attribute information includes information indicating the color information (RGB, YUV, etc.), reflectance, normal vector, etc. of each three-dimensional point.
  • the three-dimensional data coding device can encode the attribute information by using a coding method different from the position information.
  • an integer value will be used as the value of the attribute information.
  • each color component of the color information RGB or YUV has an 8-bit accuracy
  • each color component takes an integer value from 0 to 255.
  • the reflectance value has a precision of 10 bits
  • the reflectance value takes an integer value from 0 to 1023.
  • the three-dimensional data encoding device may multiply the value by a scale value and then round it to an integer value so that the value of the attribute information becomes an integer value. ..
  • the three-dimensional data coding device may add this scale value to the header of the bit stream or the like.
  • the attribute corresponding to each position information is used by using the position information after the combination.
  • the position information after the combination may include the position information of the three-dimensional point cloud and the frame_index (frame index) to which the three-dimensional point cloud belongs.
  • the attribute information of the first three-dimensional point cloud in the three-dimensional point cloud not only the position information or attribute information of the three-dimensional point cloud included in the frame to which the first three-dimensional point belongs, but also The position information or attribute information of the three-dimensional point cloud included in the frame different from the frame to which the first three-dimensional point belongs may be used.
  • Each of the multiple frames contains point cloud data.
  • the first point cloud data belonging to the first frame of the plurality of frames and the second point cloud data belonging to the second frame are point cloud data at different times. Further, the first point cloud data and the second point cloud data are, for example, point cloud data of the same object at different times.
  • the first point cloud data includes a frame index indicating that the three-dimensional point cloud included in the first point cloud data belongs to the first point cloud data.
  • the second point cloud data includes a frame index indicating that the three-dimensional point cloud included in the second point cloud data belongs to the second point cloud data.
  • the frame index is identification information indicating which point cloud data the three-dimensional point cloud included in the combined point cloud data in which a plurality of point cloud data belonging to different frames are combined belongs.
  • the three-dimensional point cloud is also referred to as a plurality of three-dimensional points.
  • the code amount can be reduced by entropy-coding the difference absolute value Diffp using a coding table in which the number of generated bits decreases as the value becomes smaller.
  • the three-dimensional data coding apparatus may encode the attribute information of the first three-dimensional point by using the attribute information of the surrounding three-dimensional points.
  • another surrounding 3D point around the 3D point to be encoded may exist in the frame to which the target 3D point to be encoded belongs, or the target 3D point to be encoded may be present. It may exist in a frame different from the frame to which the original point belongs.
  • the attribute information of the target three-dimensional point includes the first frame index indicating that the target three-dimensional point belongs to the first point cloud data, and the attribute information of the surrounding three-dimensional point is such that the surrounding three-dimensional point is the first. It may include a second frame index indicating that it belongs to the two-point cloud data.
  • a highly accurate predicted value Pp can be generated by referring to the attribute information of the three-dimensional point other than the frame to which the three-dimensional point to be encoded belongs, and the coding efficiency can be improved.
  • the reference three-dimensional point here is a three-dimensional point within a predetermined distance range from the target three-dimensional point.
  • the three-dimensional data encoding device has the three-dimensional expression shown in (Equation H1).
  • the Euclidean distance d (p, q) between the point p and the three-dimensional point q is calculated.
  • the three-dimensional data encoding device determines that the position of the three-dimensional point q is close to the position of the target three-dimensional point p, and determines that the target three-dimensional point p is close to the position. It is determined that the value of the attribute information of the three-dimensional point q is used to generate the predicted value of the attribute information of the point p.
  • the distance calculation method may be another method, for example, Mahalanobis distance or the like may be used. Further, the three-dimensional data coding apparatus may determine that the three-dimensional point outside the predetermined distance range from the target three-dimensional point is not used for the prediction process.
  • the three-dimensional data encoding device predicts the three-dimensional point r. It may be determined that it is not used for.
  • the three-dimensional data encoding device may add information indicating the threshold value THd to the header of the bit stream or the like.
  • the three-dimensional data coding device encodes each position information of the three-dimensional point cloud by combining the point cloud data of a plurality of frames, the distance between the three-dimensional point cloud after the combination and each three-dimensional point. May be calculated. That is, the three-dimensional data coding apparatus may calculate the distance between two three-dimensional points belonging to different frames, or may calculate the distance between two three-dimensional points belonging to the same frame.
  • FIG. 76 is a diagram showing an example of a three-dimensional point.
  • the distance d (p, q) between the target three-dimensional point p and the three-dimensional point q is smaller than the threshold THd. Therefore, the three-dimensional data encoding device determines that the three-dimensional point q is the reference three-dimensional point of the target three-dimensional point p, and the attribute of the three-dimensional point q is used to generate the predicted value Pp of the attribute information Ap of the target three-dimensional p. It is determined that the value of the information Aq is used.
  • the three-dimensional data encoding device determines that the three-dimensional point r is not the reference three-dimensional point of the target three-dimensional point p, and generates the predicted value Pp of the attribute information Ap of the target three-dimensional point p. It is determined that the value of the attribute information Ar of is not used.
  • the 3D encoder may calculate the distance between the 3D point p and the 3D point r, which are indicated by the frame index to belong to the same frame, or may belong to different frames by the frame index. The distance between the shown three-dimensional point p and the three-dimensional point q may be calculated.
  • the three-dimensional data coding device encodes the attribute information of the target three-dimensional point using the predicted value
  • the three-dimensional point whose attribute information has already been encoded and decoded is used as the reference three-dimensional point.
  • the three-dimensional data decoding device uses the three-dimensional point whose attribute information has already been decoded as the reference three-dimensional point.
  • another surrounding 3D point around the target 3D point to be encoded may exist in the frame to which the target 3D point to be encoded belongs, or the target 3D point to be encoded may be present. Although it may exist in a frame different from the frame to which the original point belongs, it is not always limited to this, and for example, a three-dimensional point existing in a frame different from the frame to which the target three-dimensional point to be encoded belongs. May determine that it is not around the target three-dimensional point to be encoded and may not be used as a predicted value.
  • the three-dimensional data encoding device for example, when the attribute information of each three-dimensional point of a plurality of frames to be combined is significantly different, the position information is frame-combined and encoded, and the attribute information is contained in the same frame.
  • the coding efficiency can be improved by predictive coding using the attribute information of other surrounding three-dimensional points.
  • the three-dimensional data coding device encodes the attribute information of the target three-dimensional points by using the attribute information of the surrounding three-dimensional points of the same frame at the time of coding by frame combination, or the same frame and the same frame.
  • Information indicating whether to encode the attribute information of the target three-dimensional point using the attribute information of the surrounding three-dimensional points other than the above may be added to the header of the encoded data to switch the data.
  • the three-dimensional data decoding device decodes the header, and when decoding the coded data by frame combination, the target third order uses the attribute information of the same frame or surrounding three-dimensional points other than the same frame and the same frame. Since it is possible to determine whether or not to decode the attribute information of the original point and switch which decoding is to be performed, the bit stream can be appropriately decoded.
  • each three-dimensional point is classified into a plurality of layers by using the position information of the three-dimensional points belonging to the same frame or different frames. It is conceivable to encode from.
  • each classified layer is referred to as LoD (Level of Detail). The method of generating LoD will be described with reference to FIG. 77.
  • the three-dimensional data coding device selects the initial point a0 from the combined three-dimensional point cloud and assigns it to LoD0.
  • the three-dimensional data coding device extracts the point a1 whose distance from the point a0 is larger than the threshold Thres_LoD [0] of LoD0 and assigns it to LoD0.
  • the three-dimensional data encoding device extracts the point a2 whose distance from the point a1 is larger than the threshold Thres_LoD [0] of LoD0 and assigns it to LoD0.
  • the three-dimensional data coding device configures LoD0 so that the distance between each point in LoD0 is larger than the threshold value Thres_LoD [0].
  • the three-dimensional data coding apparatus may calculate the distance between the two three-dimensional points by the same processing regardless of whether they belong to the same frame or different frames.
  • the point a0 and the point a1 may belong to the same frame or may belong to different frames. Therefore, the distance between the point a0 and the point a1 is calculated by the same processing regardless of whether they belong to the same frame or different frames.
  • the three-dimensional data coding device selects the point b0 to which LoD has not yet been assigned and assigns it to LoD1.
  • the three-dimensional data coding device extracts the unassigned point b1 whose distance from the point b0 is larger than the threshold Thres_LoD [1] of LoD1 and assigns it to LoD1.
  • the three-dimensional data coding device extracts the unassigned point b2 whose distance from the point b1 is larger than the threshold Thres_LoD [1] of LoD1 and assigns it to LoD1. In this way, the three-dimensional data coding device configures LoD1 so that the distance between each point in LoD1 is larger than the threshold value Thres_LoD [1].
  • the three-dimensional data coding device selects the point c0 to which LoD has not yet been assigned and assigns it to LoD2.
  • the three-dimensional data coding device extracts the unassigned point c1 whose distance from the point c0 is larger than the threshold Thres_LoD [2] of LoD2 and assigns it to LoD2.
  • the three-dimensional data coding device extracts the unassigned point c2 whose distance from the point c1 is larger than the threshold Thres_LoD [2] of LoD2 and assigns it to LoD2.
  • the three-dimensional data coding device configures LoD2 so that the distance between each point in LoD2 is larger than the threshold value Thres_LoD [2].
  • the thresholds Thres_LoD [0], Thres_LoD [1], and Thres_LoD [2] of each LoD are set.
  • the three-dimensional data coding device may add information indicating the threshold value of each LoD to the header of the bit stream or the like. For example, in the case of the example shown in FIG. 78, the three-dimensional data coding apparatus may add thresholds Thres_LoD [0], Thres_LoD [1], and Thres_LoD [2] to the header.
  • the three-dimensional data coding device may allocate all three-dimensional points to which LoD is not assigned to the lowest layer of LoD.
  • the three-dimensional data coding apparatus can reduce the code amount of the header by not adding the threshold value of the lowest layer of LoD to the header.
  • the three-dimensional data coding apparatus adds the thresholds Thres_LoD [0] and Thres_LoD [1] to the header, and does not add Thres_LoD [2] to the header.
  • the three-dimensional data decoding device may estimate the value of Thres_LoD [2] to be 0.
  • the three-dimensional data coding device may add the number of layers of LoD to the header. As a result, the three-dimensional data decoding device can determine the LoD of the lowest layer using the number of layers of LoD.
  • the higher layer (the layer closer to LoD0) becomes a sparse point cloud (space) in which the distance between the three-dimensional points is separated.
  • the lower layer is a dense point cloud (dense) in which the distance between three-dimensional points is closer.
  • LoD0 is the uppermost layer.
  • the method of selecting the initial three-dimensional points when setting each LoD may depend on the coding order at the time of position information coding. For example, the three-dimensional data coding device selects the first encoded three-dimensional point at the time of position information coding as the initial point a0 of LoD0, and selects the points a1 and a2 with the initial point a0 as the base point. LoD0 is configured. Then, the three-dimensional data coding apparatus may select the earliest three-dimensional point whose position information is encoded among the three-dimensional points that do not belong to LoD0 as the initial point b0 of LoD1.
  • the three-dimensional data coding device sets the initial point n0 of LoDn as the earliest three-dimensional point in which the position information is encoded among the three-dimensional points that do not belong to the upper layer (LoD0 to LoDn-1) of LoDn. May be selected.
  • the three-dimensional data decoding device can configure the same LoD as at the time of coding by using the same initial point selection method at the time of decoding, so that the bit stream can be appropriately decoded.
  • the three-dimensional data decoding apparatus selects, as the initial point n0 of LoDn, the three-dimensional point whose position information is decoded earliest among the three-dimensional points that do not belong to the upper layer of LoDn.
  • the three-dimensional data encoding device when the three-dimensional data encoding device encodes the three-dimensional points included in LoD0 in order, the target three-dimensional points included in LoD1 are encoded and decoded included in LoD0 and LoD1 (hereinafter, simply "" It is generated using the attribute information of "encoded”).
  • the three-dimensional data encoding device sets the predicted value of the attribute information of the three-dimensional point to N or less of the encoded three-dimensional points around the target three-dimensional point to be encoded. Generated by calculating the average of attribute values. Further, the three-dimensional data coding device may add a value of N to the header of the bit stream or the like. The three-dimensional data coding apparatus may change the value of N for each three-dimensional point and add the value of N for each three-dimensional point. As a result, an appropriate N can be selected for each three-dimensional point, so that the accuracy of the predicted value can be improved. Therefore, the predicted residual can be reduced.
  • the three-dimensional data encoding device may add the value of N to the header of the bitstream and fix the value of N in the bitstream. This eliminates the need to encode or decode the value of N for each three-dimensional point, so that the amount of processing can be reduced. Further, the three-dimensional data coding apparatus may separately encode the value of N for each LoD. As a result, the coding efficiency can be improved by selecting an appropriate N for each LoD.
  • the three-dimensional data encoding device may calculate the predicted value of the attribute information of the three-dimensional points by the weighted average value of the attribute information of the surrounding N coded three-dimensional points. For example, the three-dimensional data coding device calculates the weight using the distance information of the target three-dimensional point and the surrounding N three-dimensional points.
  • the higher layer of LoD is set to have a larger N value
  • the lower layer is set to have a smaller N value. Since the distance between the three-dimensional points to which they belong is large in the upper layer of LoD, there is a possibility that the prediction accuracy can be improved by setting a large value of N and selecting and averaging a plurality of surrounding three-dimensional points. Further, since the distance between the three-dimensional points to which the LoD lower layer belongs is short, it is possible to make an efficient prediction while suppressing the amount of averaging processing by setting the value of N small.
  • FIG. 79 is a diagram showing an example of attribute information used for the predicted value.
  • the peripheral point P' is selected based on the distance from the point P.
  • the predicted value of the attribute information of the point b2 shown in FIG. 79 is generated by using the attribute information of the points a0, a1, a2, b0, and b1.
  • the predicted value is calculated by a distance-dependent weighted average.
  • the predicted value a2p of the point a2 is calculated by the weighted average of the attribute information of the points a0 and a1 as shown in (Equation H2) and (Equation H3).
  • a i is a value of the attribute information of the point ai.
  • the predicted value b2p of the point b2 is calculated by the weighted average of the attribute information of the points a0, a1, a2, b0, and b1 as shown in (Equation H4) to (Equation H6).
  • B i is the value of the attribute information of the point bi.
  • the three-dimensional data encoding device calculates the difference value (predicted residual) between the value of the attribute information of the three-dimensional point and the predicted value generated from the surrounding points, and even if the calculated predicted residual is quantized.
  • a three-dimensional data encoder performs quantization by dividing the predicted residuals by a quantization scale (also called a quantization step).
  • a quantization scale also called a quantization step.
  • the smaller the quantization scale the smaller the error (quantization error) that can occur due to quantization.
  • the larger the quantization scale the larger the quantization error.
  • the three-dimensional data coding device may change the quantization scale used for each LoD. For example, in a three-dimensional data coding apparatus, the higher layer has a smaller quantization scale, and the lower layer has a larger quantization scale. Since the value of the attribute information of the three-dimensional point belonging to the upper layer may be used as the predicted value of the attribute information of the three-dimensional point belonging to the lower layer, the quantization scale of the upper layer is reduced in the upper layer. Coding efficiency can be improved by suppressing possible quantization errors and improving the accuracy of predicted values.
  • the three-dimensional data coding device may add a quantization scale used for each LoD to the header or the like. As a result, the three-dimensional data decoding device can correctly decode the quantization scale, so that the bit stream can be appropriately decoded.
  • the three-dimensional data coding apparatus may convert a signed integer value (signed quantization value), which is a predicted residual after quantization, into an unsigned integer value (unsigned quantization value). This eliminates the need to consider the occurrence of negative integers when entropy encoding the predicted residuals.
  • the three-dimensional data coding apparatus does not necessarily have to convert the signed integer value into an unsigned integer value, and for example, the sign bit may be separately entropy-encoded.
  • the predicted residual is calculated by subtracting the predicted value from the original value.
  • the prediction residual a2r of the point a2 as shown in (Equation H7), from the values A 2 of the attribute information of the point a2, is calculated by subtracting the prediction value a2p the point a2.
  • a2r A 2 -a2p ⁇ (formula H7)
  • b2r B 2 -b2p ⁇ (formula H8)
  • the predicted residual is quantized by dividing by QS (Quantization Step).
  • the quantized value a2q at point a2 is calculated by (Equation H9).
  • the quantized value b2q at point b2 is calculated by (Equation H10).
  • QS_LoD0 is a QS for LoD0
  • QS_LoD1 is a QS for LoD1. That is, the QS may be changed according to LoD.
  • the three-dimensional data encoding device converts the signed integer value, which is the above-mentioned quantization value, into an unsigned integer value as follows.
  • the signed integer value a2q is smaller than 0, the three-dimensional data coding apparatus sets the unsigned integer value a2u to -1- (2 ⁇ a2q).
  • the signed integer value a2q is 0 or more, the three-dimensional data coding apparatus sets the unsigned integer value a2u to 2 ⁇ a2q.
  • the three-dimensional data encoding device sets the unsigned integer value b2u to -1- (2 ⁇ b2q) when the signed integer value b2q is smaller than 0.
  • the three-dimensional data coding apparatus sets the unsigned integer value b2u to 2 ⁇ b2q.
  • the three-dimensional data coding apparatus may encode the predicted residual (unsigned integer value) after quantization by entropy coding. For example, after binarizing an unsigned integer value, binary arithmetic coding may be applied.
  • the three-dimensional data coding device may switch the binarization method according to the value of the predicted residual. For example, when the predicted residual pu is smaller than the threshold value R_TH, the three-dimensional data encoding device binarizes the predicted residual pu with a fixed number of bits required to express the threshold value R_TH. Further, when the predicted residual pu is equal to or higher than the threshold value R_TH, the three-dimensional data encoding device uses the binarized data of the threshold value R_TH and the value of (pu-R_TH) by using an exponential-Golomb or the like. Threshold.
  • the three-dimensional data encoding device when the threshold value R_TH is 63 and the predicted residual pu is smaller than 63, the predicted residual pu is binarized with 6 bits. Further, when the predicted residual pu is 63 or more, the three-dimensional data encoding device binarizes the binary data (111111) and (pu-63) of the threshold value R_TH using the exponential Golomb. Arithmetic coding is performed.
  • the three-dimensional data coding device generates 6-bit binary data (100,000) when the predicted residual pu is 32, and arithmetically encodes this bit string. Further, when the predicted residual pu is 66, the three-dimensional data encoding device generates binary data (111111) of the threshold value R_TH and a bit string (00100) representing the value 3 (66-63) in exponential Golomb. , This bit string (111111 + 00100) is arithmetically coded.
  • the three-dimensional data encoding device switches the binarization method according to the magnitude of the predicted residual, so that the number of binarized bits increases sharply when the predicted residual becomes large. It is possible to encode while suppressing.
  • the three-dimensional data coding device may add the threshold value R_TH to the header of the bit stream or the like.
  • the three-dimensional data coding device sets the threshold value R_TH to a large value.
  • the possibility of encoding the binarized data of the threshold value R_TH is reduced, and the coding efficiency is improved.
  • the three-dimensional data coding device sets the threshold value R_TH to be small. As a result, it is possible to prevent a sudden increase in the bit length of the binarized data.
  • the three-dimensional data coding device may switch the threshold value R_TH for each LoD and add the threshold value R_TH for each LoD to the header or the like. That is, the three-dimensional data coding apparatus may switch the binarization method for each LoD. For example, in the upper layer, the distance between the three-dimensional points is long, so that the prediction accuracy is poor and the prediction residual may increase as a result. Therefore, the three-dimensional data coding device prevents a sudden increase in the bit length of the binarized data by setting the threshold value R_TH small for the upper layer. In addition, since the distance between the three-dimensional points is short in the lower layer, the prediction accuracy may be high and the prediction residual may be small as a result. Therefore, the three-dimensional data coding apparatus improves the coding efficiency by setting the threshold value R_TH large for the hierarchy.
  • FIG. 80 is a diagram showing an example of an exponential Golomb code, and is a diagram showing the relationship between the value before binarization (multi-value) and the bit (code) after binarization. In addition, 0 and 1 shown in FIG. 80 may be inverted.
  • the three-dimensional data coding device applies arithmetic coding to the binarized data of the predicted residuals.
  • arithmetic coding is applied, the n-bit code (n-bit code), which is the part of the binarized data binarized by n bits, and the rest, which is the binarized part using the exponential gorom.
  • the three-dimensional data coding apparatus may switch the application method of arithmetic coding between the n-bit code and the remaining code.
  • a three-dimensional data coding device performs arithmetic coding on an n-bit code using a different coding table (probability table) for each bit.
  • the three-dimensional data coding apparatus may change the number of coding tables used for each bit. For example, the three-dimensional data coding apparatus performs arithmetic coding using one coding table for the first bit b0 of the n-bit code. Further, the three-dimensional data coding device uses two coding tables for the next bit b1. Further, the three-dimensional data coding apparatus switches the coding table used for arithmetic coding of bit b1 according to the value (0 or 1) of b0.
  • the three-dimensional data coding device further uses four coding tables for the next bit b2. Further, the three-dimensional data coding apparatus switches the coding table used for arithmetic coding of bit b2 according to the values (0 to 3) of b0 and b1.
  • the three-dimensional data coding apparatus uses 2 n-1 coding tables when arithmetically coding each bit bn-1 of the n-bit code. Further, the three-dimensional data coding apparatus switches the coding table to be used according to the value (generation pattern) of the bits before bn-1. As a result, the three-dimensional data coding apparatus can use an appropriate coding table for each bit, so that the coding efficiency can be improved.
  • the three-dimensional data coding device may reduce the number of coding tables used in each bit. For example, in a three-dimensional data encoding device, when each bit bn-1 is arithmetically coded, 2 m pieces are used according to the value (generation pattern) of m bits (m ⁇ n-1) before bn-1. The encoding table of may be switched. As a result, the coding efficiency can be improved while reducing the number of coding tables used in each bit.
  • the three-dimensional data coding apparatus may update the probability of occurrence of 0 and 1 in each coding table according to the value of the binarized data actually generated. Further, the three-dimensional data coding apparatus may fix the occurrence probabilities of 0 and 1 in the coding table of some bits. As a result, the number of times the occurrence probability is updated can be suppressed, so that the amount of processing can be reduced.
  • the number of coding tables for b0 is one (CTb0).
  • CTb10, CTb11 There are two coding tables for b1 (CTb10, CTb11). Further, the coding table to be used is switched according to the value of b0 (0 to 1).
  • CTb20, CTb21, CTb22, CTb23 There are four coding tables for b2 (CTb20, CTb21, CTb22, CTb23). Further, the coding table to be used is switched according to the values of b0 and b1 (0 to 3).
  • CTbn0, CTbn1, ..., CTbn (2 n-1 -1) There are 2 n-1 coding tables for bn-1 (CTbn0, CTbn1, ..., CTbn (2 n-1 -1)). Further, the coding table to be used can be switched according to the value of b0b1 ... bn-2 (0 to 2 n-1 -1).
  • FIG. 81 is a diagram for explaining processing when, for example, the remaining code is an exponential Golomb code.
  • the remaining code which is a portion binarized using the exponential Golomb, includes a prefix part and a suffix part as shown in FIG. 81.
  • the three-dimensional data coding apparatus switches the coding table between the prefix unit and the suffix unit. That is, the three-dimensional data coding device arithmetically encodes each bit included in the prefix part using the encoding table for the prefix, and uses the encoding table for the suffix for each bit included in the suffix part. Arithmetic code.
  • the three-dimensional data coding device may update the probability of occurrence of 0 and 1 in each coding table according to the value of the binarized data actually generated.
  • the three-dimensional data coding device may fix the probability of occurrence of 0 and 1 in either coding table.
  • the number of times the occurrence probability is updated can be suppressed, so that the amount of processing can be reduced.
  • the three-dimensional data coding apparatus may update the occurrence probability with respect to the prefix unit and fix the occurrence probability with respect to the suffix unit.
  • the three-dimensional data encoding device decodes the predicted residual after quantization by inverse quantization and reconstruction, and decodes the decoded value, which is the decoded predicted residual, after the three-dimensional point to be encoded. Used for prediction. Specifically, the three-dimensional data encoding device calculates the inverse quantization value by multiplying the predicted residual (quantization value) after quantization by the quantization scale, and obtains the inverse quantization value and the predicted value. To obtain the decoding value (reconstruction value).
  • the inverse quantization value a2iq of the point a2 is calculated by (Equation H11) using the quantization value a2q of the point a2.
  • the inverse quantization value b2iq of the point b2 is calculated by (Equation H12) using the quantization value b2q of the point b2.
  • QS_LoD0 is a QS for LoD0
  • QS_LoD1 is a QS for LoD1. That is, the QS may be changed according to LoD.
  • the decoding value a2rec of the point a2 is calculated by adding the predicted value a2p of the point a2 to the inverse quantization value a2iq of the point a2 as shown in (Equation H13).
  • the decoding value b2rec of the point b2 is calculated by adding the predicted value b2p of the point b2 to the inverse quantization value b2iq of the point b2.
  • FIG. 82 is a diagram showing an example of syntax of the attribute header (attribute_header) according to the present embodiment.
  • the attribute header is the header information of the attribute information.
  • the attribute header includes layer number information (NumLoD), three-dimensional point information (NumOfPoint [i]), layer threshold value (Thres_Lod [i]), and peripheral point information (NumNeigborPoint [i]).
  • the number of layers information indicates the number of layers of LoD used.
  • the three-dimensional point information indicates the number of three-dimensional points belonging to the layer i.
  • the three-dimensional data coding apparatus may add three-dimensional point total number information (AllNumOfPoint) indicating the total number of three-dimensional points to another header.
  • the three-dimensional data coding device does not have to add NuOfPoint [NumMoD-1] indicating the number of three-dimensional points belonging to the lowest layer to the header.
  • the three-dimensional data decoding device can calculate NuOfPoint [NumMoD-1] by (Equation H15). As a result, the amount of code in the header can be reduced.
  • the hierarchy threshold (Thres_Lod [i]) is a threshold used for setting the hierarchy i.
  • the three-dimensional data coding device and the three-dimensional data decoding device configure LoDi so that the distance between each point in LoDi is larger than the threshold value Thres_LoD [i]. Further, the three-dimensional data coding device does not have to add the value of Thres_Lod [NumMoD-1] (bottom layer) to the header. In this case, the three-dimensional data decoding device estimates the value of Thres_Lod [NumMoD-1] to be 0. As a result, the amount of code in the header can be reduced.
  • the peripheral point information indicates the upper limit of the peripheral points used to generate the predicted value of the three-dimensional points belonging to the layer i.
  • the three-dimensional data coding apparatus may calculate the predicted value using the points around M when the peripheral points M are less than the Number Point [i] (M ⁇ NumNeigorPoint [i]). Further, when the three-dimensional data coding device does not need to separate the value of NuNeightPoint [i] in each LoD, one peripheral point information (NumNeigoPoint) used in all LoDs may be added to the header. Good.
  • the prediction threshold (THd [i]) indicates the upper limit of the distance between the surrounding 3D point and the target 3D point used for predicting the target 3D point to be encoded or decoded in the layer i.
  • the three-dimensional data encoding device and the three-dimensional data decoding device do not use a three-dimensional point whose distance from the target three-dimensional point is more than THd [i] for prediction. If it is not necessary to divide the THd [i] value in each LoD, the three-dimensional data coding device may add one prediction threshold value (THd) used in all LoDs to the header. ..
  • the quantization scale indicates the quantization scale used in the quantization and inverse quantization of the layer i.
  • the binarization threshold value (R_TH [i]) is a threshold value for switching the binarization method of the predicted residual of the three-dimensional points belonging to the layer i.
  • the three-dimensional data encoding device binarizes the predicted residual pu with a fixed number of bits when the predicted residual is smaller than the threshold R_TH, and when the predicted residual is equal to or higher than the threshold R_TH, the binary value of the threshold R_TH.
  • the binarization data and the value of (pu-R_TH) are binarized using the exponential gorom.
  • the three-dimensional data encoding device adds one binarization threshold value (R_TH) used in all LoDs to the header. May be good.
  • minimum value minimum number of bits
  • the three-dimensional data encoding device entropy-encodes at least one of NumLoD, Thres_Lod [i], NuNeightborPoint [i], THd [i], QS [i] and R_TH [i] and adds them to the header. May be good.
  • the three-dimensional data coding device may binarize each value and perform arithmetic coding.
  • the three-dimensional data coding apparatus may encode each value with a fixed length in order to reduce the amount of processing.
  • the three-dimensional data coding device does not have to add at least one of NumLoD, Thres_Lod [i], NuNeightborPoint [i], THd [i], QS [i], and R_TH [i] to the header. ..
  • at least one of these values may be specified by a profile or level of a standard or the like. As a result, the bit amount of the header can be reduced.
  • FIG. 83 is a diagram showing an example of syntax of attribute data (attribute_data) according to the present embodiment.
  • This attribute data includes coded data of attribute information of a plurality of three-dimensional points. As shown in FIG. 83, the attribute data includes an n-bit code and a remaining code.
  • the n-bit code (n-bit code) is the coded data of the predicted residual of the value of the attribute information or a part thereof.
  • the bit length of the n-bit code depends on the value of R_TH [i]. For example, when the value indicated by R_TH [i] is 63, the n-bit code is 6 bits, and when the value indicated by R_TH [i] is 255, the n-bit code is 8 bits.
  • the remaining code is the coded data encoded by the exponential Golomb among the coded data of the predicted residuals of the value of the attribute information.
  • the remaining code is encoded or decoded when the n-bit code is the same as R_TH [i]. Further, the three-dimensional data decoding device adds the value of the n-bit code and the value of the remaining code to decode the predicted residual. If the n-bit code is not the same value as R_TH [i], the remaining code may not be encoded or decoded.
  • FIG. 84 is a flowchart of the three-dimensional data coding process by the three-dimensional data coding apparatus.
  • the three-dimensional data coding device combines a plurality of frames (S5601). For example, a three-dimensional data encoding device combines a plurality of three-dimensional point clouds belonging to a plurality of input frames into one three-dimensional point cloud. At the time of joining, the three-dimensional data encoding device adds a frame index indicating a frame to which each three-dimensional point cloud belongs to each three-dimensional point cloud.
  • the three-dimensional data coding device encodes the position information (geometry) after the frame combination (S5602). For example, in three-dimensional data coding, coding is performed using an octree representation.
  • the 3D data encoding device When the position of the 3D point changes due to quantization or the like after the position information is encoded, the 3D data encoding device reassigns the attribute information of the original 3D point to the changed 3D point ( S5603). For example, the three-dimensional data encoding device reassigns by interpolating the value of the attribute information according to the amount of change in the position. For example, the three-dimensional data encoding device detects N three-dimensional points before the change, which are close to the three-dimensional position after the change, and weights and averages the values of the attribute information of the N three-dimensional points.
  • a three-dimensional data coding device determines weights in a weighted average based on the distances from the changed three-dimensional position to each of the N three dimensions. Then, the three-dimensional data encoding device determines the value obtained by the weighted averaging as the value of the attribute information of the three-dimensional point after the change. In addition, when two or more three-dimensional points change to the same three-dimensional position due to quantization or the like, the three-dimensional data encoding device uses the value of the attribute information of the three-dimensional points after the change as the value before the change. The average value of the attribute information of two or more three-dimensional points may be assigned.
  • the three-dimensional data coding device encodes the attribute information (Attribute) after reassignment (S5604).
  • the three-dimensional data encoding device encodes the frame index of the three-dimensional point as the attribute information of the three-dimensional point for each of the plurality of three-dimensional points.
  • the three-dimensional data coding apparatus may encode the plurality of types of attribute information in order. For example, when a three-dimensional data encoding device encodes a color, a reflectance, and a frame index as attribute information, the reflectance coding result is added after the color coding result, and the reflectance is added.
  • the order of the plurality of coding results of the attribute information added to the bit stream is not limited to this order, and may be any order.
  • the three-dimensional data encoding device also encodes the frame index as attribute information in the same data format as other attribute information different from the frame index, such as color or reflectance. Therefore, the coded data includes the frame index in the same data format as other attribute information different from the frame index.
  • the three-dimensional data encoding device may add information indicating the encoded data start location of each attribute information in the bit stream to the header or the like.
  • the three-dimensional data decoding device can selectively decode the attribute information that needs to be decoded, so that the decoding process of the attribute information that does not need to be decoded can be omitted. Therefore, the processing amount of the three-dimensional data decoding device can be reduced.
  • the three-dimensional data coding apparatus may encode a plurality of types of attribute information in parallel and integrate the coding results into one bit stream. As a result, the three-dimensional data coding device can encode a plurality of types of attribute information at high speed.
  • FIG. 85 is a flowchart of the attribute information coding process (S5604).
  • the three-dimensional data coding device sets LoD (S5611). That is, the three-dimensional data coding device assigns each three-dimensional point to any of a plurality of LoDs.
  • the three-dimensional data coding device starts a loop in units of LoD (S5612). That is, the three-dimensional data coding apparatus repeats the processes of steps S5613 to S5621 for each LoD.
  • the three-dimensional data coding device starts a loop in units of three-dimensional points (S5613). That is, the three-dimensional data coding apparatus repeats the processes of steps S5614 to S5620 for each three-dimensional point.
  • the three-dimensional data encoding device searches for a plurality of peripheral points that are three-dimensional points existing around the target three-dimensional point used for calculating the predicted value of the target three-dimensional point to be processed (S5614).
  • the three-dimensional data encoding device calculates a weighted average of the values of the attribute information of the plurality of peripheral points, and sets the obtained value as the predicted value P (S5615).
  • the three-dimensional data encoding device calculates the predicted residual, which is the difference between the attribute information of the target three-dimensional point and the predicted value (S5616).
  • the three-dimensional data coding apparatus calculates the quantization value by quantizing the predicted residual (S5617).
  • the three-dimensional data coding device arithmetically encodes the quantized value (S5618).
  • the three-dimensional data coding device calculates the dequantized value by dequantizing the quantized value (S5619).
  • the three-dimensional data coding apparatus generates a decoded value by adding the predicted value to the inverse quantization value (S5620).
  • the three-dimensional data coding device ends the loop in units of three-dimensional points (S5621). Further, the three-dimensional data coding device ends the loop in units of LoD (S5622).
  • the three-dimensional data decoding device is decoded by arithmetically decoding the binarized data of the attribute information in the bit stream generated by the three-dimensional data coding device in the same manner as the three-dimensional data coding device. Generate binarized data.
  • the application method of arithmetic coding is switched between the portion binarized by n bits (n-bit code) and the portion binarized by using exponential Golomb (remaining code). In this case, the three-dimensional data decoding device performs decoding according to the application of arithmetic decoding.
  • the three-dimensional data decoding device performs arithmetic decoding using a different coding table (decoding table) for each bit in the arithmetic decoding method of n-bit code.
  • the three-dimensional data decoding device may change the number of coding tables used for each bit. For example, arithmetic decoding is performed using one coding table for the first bit b0 of the n-bit code. Further, the three-dimensional data decoding device uses two coding tables for the next bit b1. Further, the three-dimensional data decoding device switches the coding table used for arithmetic decoding of bit b1 according to the value (0 or 1) of b0.
  • the three-dimensional data decoding device further uses four coding tables for the next bit b2. Further, the three-dimensional data decoding device switches the coding table used for arithmetic decoding of bit b2 according to the values (0 to 3) of b0 and b1.
  • the three-dimensional data decoding apparatus uses 2 n-1 coding tables when arithmetically decoding each bit bn-1 of the n-bit code. Further, the three-dimensional data decoding device switches the coding table to be used according to the value (generation pattern) of the bits before bn-1. As a result, the three-dimensional data decoding apparatus can appropriately decode a bit stream having improved coding efficiency by using an appropriate coding table for each bit.
  • the three-dimensional data decoding device may reduce the number of coding tables used in each bit. For example, when the three-dimensional data decoding device arithmetically decodes each bit bn-1, 2 m codes are used according to the value (generation pattern) of m bits (m ⁇ n-1) before bn-1. You may switch the conversion table. As a result, the three-dimensional data decoding device can appropriately decode the bit stream with improved coding efficiency while suppressing the number of coding tables used for each bit.
  • the three-dimensional data decoding device may update the probability of occurrence of 0 and 1 in each coding table according to the value of the binarized data actually generated. Further, the three-dimensional data decoding device may fix the occurrence probabilities of 0 and 1 in the coding table of some bits. As a result, the number of times the occurrence probability is updated can be suppressed, so that the amount of processing can be reduced.
  • the number of coding tables for b0 is one (CTb0).
  • CTb10, CTb11 There are two coding tables for b1 (CTb10, CTb11). Further, the coding table is switched according to the value of b0 (0 to 1).
  • CTb20, CTb21, CTb22, CTb23 There are four coding tables for b2 (CTb20, CTb21, CTb22, CTb23). Further, the coding table is switched according to the values of b0 and b1 (0 to 3).
  • the coding table for bn-1 is 2 n-1 (CTbn0, CTbn1, ..., CTbn (2 n-1 -1)). Further, the coding table is switched according to the value of b0b1 ... bn-2 (0 to 2 n-1 -1).
  • FIG. 86 is a diagram for explaining processing when, for example, the remaining code is an exponential Golomb code.
  • the portion (remaining code) binarized and encoded by the three-dimensional data encoding device using the exponential Golomb includes a prefix portion and a suffix portion as shown in FIG. 86.
  • the three-dimensional data decoding device switches the coding table between the prefix unit and the suffix unit. That is, the three-dimensional data decoding device arithmetically decodes each bit included in the prefix section using the prefix coding table, and arithmetically decodes each bit included in the suffix section using the suffix coding table. Decrypt.
  • the three-dimensional data decoding device may update the probability of occurrence of 0 and 1 in each coding table according to the value of the binarized data generated at the time of decoding.
  • the three-dimensional data decoding device may fix the probability of occurrence of 0 and 1 in either coding table.
  • the number of times the occurrence probability is updated can be suppressed, so that the amount of processing can be reduced.
  • the three-dimensional data decoding device may update the probability of occurrence with respect to the prefix section and fix the probability of occurrence with respect to the suffix section.
  • the three-dimensional data decoding device multi-values the binarized data of the predicted residual that has been arithmetically decoded according to the coding method used in the three-dimensional data coding device, so that the predicted residual after quantization is performed. Decode the difference (unsigned integer value).
  • the three-dimensional data decoding device first calculates the value of the n-bit code decoded by arithmetically decoding the binarized data of the n-bit code.
  • the three-dimensional data decoding device compares the value of the n-bit code with the value of R_TH.
  • the three-dimensional data decoding device determines that the bit encoded by the exponential Golomb exists next, and uses the binarized data encoded by the exponential Golomb. Arithmetically decode some remaining code. Then, the three-dimensional data decoding device calculates the value of the remaining code from the decoded remaining code by using the reverse lookup table showing the relationship between the remaining code and the value.
  • FIG. 87 is a diagram showing an example of a reverse lookup table showing the relationship between the remaining code and its value.
  • the three-dimensional data decoding apparatus obtains a multi-valued predicted residual after quantization by adding the obtained value of the remaining code to R_TH.
  • the three-dimensional data decoding device when the value of the n-bit code and the value of R_TH do not match (the value is smaller than R_TH), the value of the n-bit code is used as it is, and the predicted residue after quantization is quantified. Determine the difference.
  • the three-dimensional data decoding device can appropriately decode the bit stream generated by switching the binarization method according to the value of the predicted residual in the three-dimensional data coding device.
  • the three-dimensional data decoding device decodes the value of the threshold value R_TH from the header and switches the decoding method using the decoded value of the threshold value R_TH. Good. Further, when the threshold value R_TH is added to the header or the like for each LoD, the three-dimensional data decoding device switches the decoding method using the threshold value R_TH decoded for each LoD.
  • the three-dimensional data decoding device obtains the value of the remaining code by decoding the remaining code by the exponential Golomb. For example, in the example shown in FIG. 87, the remaining code is 00100, and 3 is obtained as the value of the remaining code. Next, the three-dimensional data decoding device obtains the predicted residual value 66 by adding the value 63 of the threshold value R_TH and the value 3 of the remaining code.
  • the three-dimensional data decoding device sets the n-bit code value 32 as the predicted residual value.
  • the three-dimensional data decoding device converts the decoded predicted residual after quantization from an unsigned integer value to a signed integer value by, for example, the reverse processing of the processing in the three-dimensional data coding device.
  • the three-dimensional data decoding apparatus can appropriately decode the generated bit stream without considering the generation of negative integers when entropy-coding the predicted residuals.
  • the three-dimensional data decoding device does not necessarily have to convert an unsigned integer value into a signed integer value. For example, when decoding a bit stream generated by separately entropy-coding a sign bit, the sign bit is decoded. You may.
  • the three-dimensional data decoding device generates a decoded value by decoding the predicted residual after quantization converted into a signed integer value by inverse quantization and reconstruction. Further, the three-dimensional data decoding device uses the generated decoded value for the prediction after the three-dimensional point to be decoded. Specifically, the three-dimensional data decoding device calculates the inverse quantization value by multiplying the predicted residual after quantization by the decoded quantization scale, and adds the inverse quantization value and the predicted value. To obtain the decoded value.
  • the decoded unsigned integer value (unsigned quantization value) is converted to a signed integer value by the following processing.
  • the three-dimensional data decoding device sets the signed integer value a2q to ⁇ ((a2u + 1) >> 1).
  • the three-dimensional data decoding apparatus sets the signed integer value a2q to (a2u >> 1) when the LSB of the unsigned integer value a2u is not 1.
  • the three-dimensional data decoding device sets the signed integer value b2q to-((b2u + 1) >> 1) when the LSB of the decoded unsigned integer value b2u is 1.
  • the three-dimensional data decoding device sets the signed integer value b2q to (b2u >> 1) when the LSB of the unsigned integer value n2u is not 1.
  • the details of the inverse quantization and reconstruction processing by the three-dimensional data decoding apparatus are the same as those of the inverse quantization and reconstruction processing in the three-dimensional data coding apparatus.
  • FIG. 88 is a flowchart of the three-dimensional data decoding process by the three-dimensional data decoding device.
  • the three-dimensional data decoding device decodes the position information (geometry) from the bit stream (S5631). For example, a three-dimensional data decoding device decodes using an ocree representation.
  • the three-dimensional data decoding device decodes the attribute information (Attribute) from the bit stream (S5632). For example, when decoding a plurality of types of attribute information, the three-dimensional data decoding device may decode the plurality of types of attribute information in order. For example, when a three-dimensional data decoding device decodes a color, a reflectance, and a frame index as attribute information, the color coding result, the reflectance coding result, and the frame are according to the order in which they are added to the bit stream. Decode the index encoding result.
  • the three-dimensional data decoding device decodes the color coding result, and then the reflectance coding result. To decrypt. Further, in the bit stream, when the coding result of the frame index is added after the coding result of the reflectance, the three-dimensional data decoding device encodes the frame index after decoding the coding result of the reflectance. Decrypt the result. The three-dimensional data decoding device may decode the coding result of the attribute information added to the bit stream in any order.
  • the three-dimensional data decoding device may acquire information indicating the encoded data start location of each attribute information in the bit stream by decoding the header or the like. As a result, the three-dimensional data decoding device can selectively decode the attribute information that needs to be decoded, so that the decoding process of the attribute information that does not need to be decoded can be omitted. Therefore, the processing amount of the three-dimensional data decoding device can be reduced. Further, the three-dimensional data decoding device may decode a plurality of types of attribute information in parallel and integrate the decoding results into one three-dimensional point cloud. As a result, the three-dimensional data decoding device can decode a plurality of types of attribute information at high speed.
  • the three-dimensional data decoding device divides the decoded three-dimensional point cloud into a plurality of frames based on the value of the decoded frame index together with the position information of each three-dimensional point (S5633). For example, when the frame index of the decoded three-dimensional point a is 0, the three-dimensional data decoding device adds the position information and the attribute information of the three-dimensional point a to the frame 0, and the frame index of the decoded three-dimensional point b is 1. In the case of, by adding the position information and the attribute information of the three-dimensional point b to the frame 1, the three-dimensional point cloud obtained by decoding is divided into a plurality of three-dimensional point clouds belonging to a plurality of different frames.
  • FIG. 89 is a flowchart of the attribute information decoding process (S5632).
  • the three-dimensional data decoding device sets LoD (S5641). That is, the three-dimensional data decoding device assigns each of the plurality of three-dimensional points having the decoded position information to any of the plurality of LoDs.
  • this allocation method is the same as the allocation method used in the three-dimensional data coding apparatus.
  • the three-dimensional data decoding device starts a loop in units of LoD (S5642). That is, the three-dimensional data decoding device repeats the processes of steps S5643 to S5649 for each LoD.
  • the three-dimensional data decoding device starts a loop in units of three-dimensional points (S5643). That is, the three-dimensional data decoding device repeats the processes of steps S5644 to S5648 for each three-dimensional point.
  • the three-dimensional data decoding device searches for a plurality of peripheral points that are three-dimensional points existing around the target three-dimensional point used for calculating the predicted value of the target three-dimensional point to be processed (S5644).
  • the three-dimensional data decoding device calculates a weighted average of the values of the attribute information of the plurality of peripheral points, and sets the obtained value as the predicted value P (S5645).
  • the three-dimensional data decoding device arithmetically decodes the quantized value from the bit stream (S5646). Further, the three-dimensional data decoding device calculates the dequantized value by dequantizing the decoded quantization value (S5647). Next, the three-dimensional data decoding device generates a decoded value by adding the predicted value to the inverse quantization value (S5648). Next, the three-dimensional data decoding device ends the loop in units of three-dimensional points (S5649). Further, the three-dimensional data decoding device ends the loop in units of LoD (S5650).
  • FIG. 90 is a block diagram showing the configuration of the three-dimensional data coding device 5600 according to the present embodiment.
  • the three-dimensional data coding device 5600 includes a frame coupling unit 5601, a position information coding unit 5602, an attribute information reassignment unit 5603, and an attribute information coding unit 5604.
  • the frame joining unit 5601 joins a plurality of frames.
  • the position information coding unit 5602 encodes the position information (geometry) of a plurality of three-dimensional points included in the input point group.
  • the attribute information reallocation unit 5603 reassigns the values of the attribute information of a plurality of three-dimensional points included in the input point group by using the coding and decoding results of the position information.
  • the attribute information coding unit 5604 encodes the reassigned attribute information (attribute). Further, the three-dimensional data coding device 5600 generates a bit stream including the coded position information and the coded attribute information.
  • FIG. 91 is a block diagram showing the configuration of the three-dimensional data decoding device 5610 according to the present embodiment.
  • the three-dimensional data decoding device 5610 includes a position information decoding unit 5611, an attribute information decoding unit 5612, and a frame dividing unit 5613.
  • the position information decoding unit 5611 decodes the position information (geometry) of a plurality of three-dimensional points from the bit stream.
  • the attribute information decoding unit 5612 decodes the attribute information (attribute) of a plurality of three-dimensional points from the bit stream.
  • the frame dividing unit 5613 divides the decoded three-dimensional point cloud into a plurality of frames based on the decoded frame index value together with the position information of each three-dimensional point. Further, the three-dimensional data decoding device 5610 generates an output point cloud by combining the decoded position information and the decoded attribute information.
  • FIG. 92 is a diagram showing the structure of attribute information.
  • FIG. 92 (a) is a diagram showing the structure of compressed attribute information
  • FIG. 92 (b) is a diagram showing an example of the syntax of the attribute information header
  • FIG. 92 (c) is a diagram. Is a diagram showing an example of the syntax of the payload (data) of the attribute information.
  • apx_idx indicates the ID of the corresponding parameter set. In apx_idx, if there is a parameter set for each frame, a plurality of IDs may be indicated.
  • the offset indicates an offset position for acquiring the combined data.
  • the other_attribute_information indicates other attribute data, such as a QP delta indicating the difference value of the quantization parameter.
  • the combine_frame_flag is a flag indicating whether or not the coded data is frame-coupled.
  • number_of_combine_frame indicates the number N of combined frames. number_of_combine_frame may be included in SPS or APS.
  • refer_different_frame is a flag indicating whether to encode / decode the attribute information of the target three-dimensional point to be encoded / decoded by using the attribute information of the same frame or the surrounding three-dimensional points belonging to the same frame and other than the same frame. Is. For example, the following values can be assigned.
  • the 3D data encoding device or the 3D data decoding device encodes the attribute information of the target 3D point using the attribute information of the surrounding 3D points in the same frame as the target 3D point. Decrypt. In this case, the three-dimensional data encoding device or the three-dimensional data decoding device does not encode / decode the attribute information of the target three-dimensional point by using the attribute information of the surrounding three-dimensional points in the frame different from the target three-dimensional point.
  • the three-dimensional data encoding device or the three-dimensional data decoding device uses the attribute information of the same frame as the frame to which the target three-dimensional point belongs and the surrounding three-dimensional points other than the same frame, and uses the attribute information of the target three-dimensional point.
  • Encodes / decodes point attribute information That is, the 3D data encoding device or the 3D data decoding device uses the attribute information of the surrounding 3D points to determine the target 3D point regardless of whether or not it belongs to the same frame as the frame to which the target 3D point belongs.
  • Encode / decode attribute information is
  • the frame index of the target 3D point is used as the frame index of the surrounding 3D point. May be encoded using.
  • the three-dimensional data coding apparatus uses, for example, the frame index added to each three-dimensional point when a plurality of frames are combined as the attribute information of each three-dimensional point, and encodes it using the predictive coding method described in the present disclosure. It doesn't matter.
  • the three-dimensional data encoding device calculates the predicted value of the frame index of the three-dimensional point A from the value of the frame index of the three-dimensional points B, C, and D around the three-dimensional point A, and encodes the predicted residual. It does not matter if it becomes.
  • the three-dimensional data coding apparatus can reduce the amount of bits for coding the frame index, and can improve the coding efficiency.
  • FIG. 93 is a diagram for explaining the coded data.
  • the attribute information may be frame-joined.
  • the attribute information is encoded or decoded with reference to the position information.
  • the referenced position information may be the position information before the frame combination or the position information after the frame combination.
  • the number of combined frames of position information and the number of combined frames of attribute information may be the same, independent, or different.
  • the numerical values in parentheses in FIG. 93 indicate frames. For example, in the case of 1, it indicates that it is the information of frame 1, and in the case of 1-4, it indicates that it is the information of the combined frames 1 to 4. .. Further, G indicates position information, and A indicates attribute information. Frame_idx1 is the frame index of frame 1.
  • FIG. 93 (a) shows an example in the case where refer_different_frame is 1.
  • the three-dimensional data encoding device or the three-dimensional data decoding device encodes or decodes A (1-4) based on the information of G (1-4).
  • the three-dimensional data decoding apparatus divides G (1-4) and A (1-4) into Frame 1-4 using Frame_idx 1-4 decoded together with G (1-4).
  • the three-dimensional data encoding device or the three-dimensional data decoding device may refer to other attribute information of A (1-4).
  • the three-dimensional data coding device or the three-dimensional data decoding device encodes or decodes A (1), it may refer to another A (1) or refer to A (2-4). You may. Further, the arrow indicates the reference source and the reference destination of the information, the source of the arrow indicates the reference source, and the tip of the arrow indicates the reference destination.
  • FIG. 93 (b) shows an example when refer_different_frame is 0.
  • refer_different_frame is 0, unlike the case where refer_different_frame is 1, the 3D data encoding device or the 3D data decoding device does not refer to the attribute information of different frames. That is, when the three-dimensional data coding device or the three-dimensional data decoding device encodes or decodes A (1), it refers to another A (1) and does not refer to A (2-4).
  • FIG. 93 shows another example when refer_different_frame is 0.
  • the position information is encoded in the combined frames, but the attribute information is encoded in each frame. Therefore, when the three-dimensional data coding device or the three-dimensional data decoding device encodes or decodes A (1), it refers to another A (1).
  • the three-dimensional data coding device or the three-dimensional data decoding device encodes or decodes A (1), it refers to another A (1).
  • other attribute information belonging to the same frame is referred to.
  • each APS may be added to the header.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 94.
  • the three-dimensional data encoding device is the third point cloud data in which the first point cloud data and the second point cloud data are combined, and the positions of the plurality of three-dimensional points included in the third point cloud data.
  • the third point cloud data including the information and the identification information indicating whether each of the plurality of three-dimensional points belongs to the first point cloud data or the second point cloud data is acquired (S5661).
  • the three-dimensional data coding apparatus generates the coded data by encoding the acquired third point cloud data (S5662).
  • the three-dimensional data coding apparatus encodes the identification information of the three-dimensional points as the attribute information of the three-dimensional points for each of the plurality of three-dimensional points in the generation of the coded data.
  • the three-dimensional data coding method can improve the coding efficiency by coding a plurality of point cloud data collectively.
  • the attribute information of the first three-dimensional point is coded by using the attribute information of the second three-dimensional point around the first three-dimensional point among the plurality of three-dimensional points. To become.
  • the attribute information of the first three-dimensional point includes the first identification information indicating that the first three-dimensional point belongs to the first point cloud data.
  • the attribute information of the second three-dimensional point includes the second identification information indicating that the second three-dimensional point belongs to the second point cloud data.
  • the predicted value of the attribute information of the first three-dimensional point is calculated using the attribute information of the second three-dimensional point, and the attribute information of the first three-dimensional point and the predicted value are calculated.
  • the predicted residual which is the difference from the predicted residual, is calculated, and the encoded data including the predicted residual is generated.
  • the third point cloud data is acquired by generating the third point cloud data by combining the first point cloud data and the second point cloud data.
  • the coded data includes the identification information in the same data format as other attribute information different from the identification information.
  • 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 processing shown in FIG. 95.
  • the three-dimensional data decoding device acquires the coded data (S5671).
  • the three-dimensional data decoding device decodes the encoded data, so that each of the plurality of three-dimensional points included in the third point cloud data in which the first point cloud data and the second point cloud data are combined.
  • the position information and the attribute information of the above are acquired (S5672).
  • the attribute information includes identification information indicating whether the three-dimensional point corresponding to the attribute information belongs to the first point cloud data or the second point cloud data.
  • the three-dimensional data decoding device can decode the coded data with improved coding efficiency by coding a plurality of point cloud data together.
  • the attribute information of the first three-dimensional point is decoded by using the attribute information of the second three-dimensional point around the first three-dimensional point among the plurality of three-dimensional points.
  • the attribute information of the first three-dimensional point includes the first identification information indicating that the first three-dimensional point belongs to the first point cloud data.
  • the attribute information of the second three-dimensional point includes the second identification information indicating that the second three-dimensional point belongs to the second point cloud data.
  • the coded data includes a predicted residual. Then, in decoding the coded data (S5672), the predicted value of the attribute information of the first three-dimensional point is calculated using the attribute information of the second three-dimensional point, and the predicted value and the predicted residual are added. , Calculate the attribute information of the first three-dimensional point.
  • the three-dimensional data decoding device further divides the third three-dimensional point cloud data into the first point cloud data and the second point cloud data by using the identification information.
  • the coded data includes the identification information in the same data format as other attribute information different from the identification information.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 96 is a diagram showing an example of coded data (bit stream) according to the present embodiment.
  • the three-dimensional data encoding device applies frame coupling when the point cloud data has position information G (Geometry) and first attribute information A1 (Attribute) (for example, color).
  • the frame index is encoded as the second attribute information A2.
  • the three-dimensional data coding device stores identification information indicating that the type of the attribute information is a frame index in the SPS (sequence parameter set). That is, the identification information indicates the attribute information including the frame index (indicating the frame index) among the plurality of attribute information. In other words, the identification information indicates whether or not each of the plurality of attribute information is the attribute information including the frame index.
  • SPS is a parameter set common to a plurality of frames (multiple combined frames), and is a parameter set common to position information and attribute information.
  • the identification information may be included in control information (metadata) other than SPS.
  • the identification information may be included in APS or the like.
  • FIG. 96 shows an example of coded data in which a combined frame in which four frames 1 to 4 are combined is encoded.
  • G (1-4) in the figure is the position information of the coupling frame.
  • A1 (1-4) is the first attribute information of the combined frame, for example, color information.
  • A2 (1-4) is the second attribute information, and indicates the frame index related to the frames 1 to 4.
  • GPS (1-4) is a parameter set of G (1-4)
  • APS1 (1-4) is a parameter set of A1 (1-4)
  • APS2 (1-4) is a parameter set. It is a parameter set of A2 (1-4).
  • A1 (1-4) is encoded or decoded using the information of G (1-4).
  • A1 (1-4) may be referred to each other.
  • G (1-4) and A (1-4) are divided into frames 1 to 4 using the frame indexes 1 to 4 decoded together with G (1-4).
  • the reversible coding method is a coding method that does not perform quantization.
  • the quantization parameter may be restricted so that the coding is reversible.
  • the three-dimensional data coding apparatus may store information indicating the coding method or quantization parameter used in the bit stream.
  • the three-dimensional data coding device may use a reversible coding method for a part or all of the position information and the attribute information other than the frame index, or use an irreversible coding method. May be good.
  • the three-dimensional data coding device may send out information for each frame as second attribute information in addition to the frame index.
  • the information for each frame is a time stamp indicating a frame data generation time, coding time, decoding time, and the like.
  • the information for each frame is the sensor information when the frame data is acquired.
  • the sensor information includes the speed, acceleration, position information, orientation, and the like of the sensor.
  • FIG. 97 is a diagram showing an example of coded data in this case.
  • the three-dimensional data coding device generates the attribute information A1 when performing the frame combination, and sends out the coded data including the generated attribute information A1.
  • the attribute information A1 indicates a frame index.
  • the three-dimensional data coding device does not have to generate a frame index when the number of combined frames is variable and the number of combined frames is 1.
  • the three-dimensional data decoding device may determine that the number of combined frames is 1 when the attribute information indicating the frame index does not exist.
  • a three-dimensional data coding device that performs motion compensation will be described.
  • the object constituting the first point cloud and the object constituting the second point cloud are obtained. May move.
  • LiDAR lidar
  • the object in the point cloud moves slowly, there is a high possibility that an ocree can be shared and the object moves quickly. In some cases, it is likely that the ocree cannot be shared.
  • FIG. 98 is a flowchart of the three-dimensional data coding process in this case.
  • the three-dimensional data coding device calculates a motion vector (motion information) indicating the motion between frames by predicting the motion between frames by motion prediction (S5801). For example, a three-dimensional data coding device generates a motion vector by comparing a point cloud of a current frame with a point cloud of a past frame. Specifically, the three-dimensional data coding device detects the positions of the same objects included in the two frames, and determines the movement based on the difference between the detected positions. The three-dimensional data encoding device may use some of the point clouds included in the frame or all of the point clouds in the comparison of the point clouds. Further, the three-dimensional data coding apparatus may extract feature points using position information or attribute information and predict the movement of the feature points.
  • FIG. 99 is a diagram showing an example of this motion compensation and frame coupling.
  • (A) in the figure is an example in the case where motion compensation is not performed, and (b) in the figure is an example in the case where motion compensation is performed.
  • the three-dimensional data encoding device predicts the movement of the point cloud of frame 1 to frame 2 and moves the position of the point cloud of frame 2 by the amount of movement. Then, the position of the point cloud of the frame 2 is corrected.
  • the three-dimensional data coding device generates a combined frame by combining the frame 1 and the corrected frame 2 (S5803).
  • the three-dimensional data coding device encodes the position information of the combined frame (S5804).
  • the three-dimensional data coding device converts the attribute information (S5805) and encodes the converted attribute information (S5806).
  • the conversion of the attribute information for example, when the position of the three-dimensional point changes due to quantization or the like, a process of reassigning the attribute information of the original three-dimensional point to the changed three-dimensional point is performed.
  • FIG. 100 is a diagram showing an example of transmission of a motion vector from the three-dimensional data coding device 5800 to the three-dimensional data decoding device 5810.
  • FIG. 101 is a diagram showing an example of coded data (bit stream).
  • the three-dimensional data coding device 5800 stores the motion vector in control information (metadata) for each frame such as GPS and sends it out.
  • the three-dimensional data coding device 5800 may store the motion vector in the header of the position information or in the payload of the position information.
  • the 3D data coding device 5800 may store the motion vector in other control information such as SPS or APS.
  • the three-dimensional data coding device 5800 stores a motion vector for each frame to be combined in GPS as shown in FIG. 101.
  • FIG. 102 is a block diagram showing the configuration of the three-dimensional data decoding device 5810 according to the present embodiment.
  • the three-dimensional data decoding device 5810 includes a position information decoding unit 5811, an attribute information decoding unit 5812, a frame division unit 5813, and a motion correction unit 5814.
  • the position information decoding unit 5811 decodes the position information from the bit stream.
  • the attribute information decoding unit 5812 decodes the attribute information from the bit stream.
  • the frame dividing unit 5813 divides the decoded combined frame (position information and attribute information) into a plurality of frames.
  • the motion correction unit 5814 corrects a plurality of frames after division by using a motion vector to generate point cloud data of the plurality of frames. That is, the motion correction unit 5814 uses the motion vector to perform a process of returning the position of the shifted point in the three-dimensional data coding device to the original position.
  • FIG. 103 is a diagram showing an example of a method for calculating a motion vector.
  • the dotted line frame in FIG. 103 indicates a frame group in which frames are connected.
  • the three-dimensional data coding apparatus may compare the current frame with the frame immediately before the current frame to derive and send a motion vector. .. In this case, for example, the three-dimensional data coding device does not derive and send a motion vector for the first frame.
  • the three-dimensional data coding apparatus may derive and send a motion vector for the first frame as compared with the previous frame. Further, the three-dimensional data coding apparatus may derive and send a motion vector by comparing the current frame with the first frame of the frame group to be combined, as shown in (b) of the figure.
  • FIG. 104 is a diagram showing an example of a motion vector calculation method when inter-prediction is applied.
  • the 3D data coding device may, for example, compare the current frame with the frame at the beginning of the GOF to derive a motion vector. Further, the three-dimensional data coding device may derive a motion vector between the heads of the GOF.
  • the GOF is a processing unit including a plurality of frames, and is, for example, a random access unit including an I frame.
  • the three-dimensional data encoding device may generate a motion vector from the information of the point cloud, or any information such as the position information of the sensor when the point cloud is acquired, the velocity and the acceleration, or a plurality of information. It may be calculated based on the information.
  • the magnitude of the motion vector between frames may differ for each tile.
  • the 3D data coding device may decide whether or not to apply the motion vector for each tile.
  • the three-dimensional data coding device may change the method of deriving the motion vector or the method of compensating for each tile. For example, a three-dimensional data coding device can apply appropriate motion compensation even when a tile having a large motion vector and a tile having a small motion vector exist by deriving a motion vector for each tile.
  • the three-dimensional data encoding device may store in a bit stream a signal indicating whether or not a motion vector is applied to each tile, a method for deriving the motion vector, a compensation method, and the like.
  • the three-dimensional data coding device may expand the bounding box, or may convert the position of the point cloud to a position in the existing bounding box without expanding the bounding box.
  • FIG. 105 is a diagram showing an example of coded data in this case.
  • the motion vector of each tile may be stored in GPS or the like.
  • FIG. 106 is a diagram showing an example of tiles to which motion compensation is applied. As shown in FIG. 106, for example, a three-dimensional data coding device does not apply motion compensation to tiles close to a moving object such as a vehicle, but applies motion compensation to tiles away from the moving object. ..
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 107.
  • the three-dimensional data coding apparatus generates encoded data by encoding the third point cloud data in which the first point cloud data and the second point cloud data are combined (S5811).
  • the three-dimensional data coding apparatus generates a bit stream including the coded data and the control information (S5812).
  • the coded data includes the position information of each of the plurality of three-dimensional points included in the third point cloud data and the plurality of attribute information.
  • One of the plurality of attribute information includes first information (for example, a frame index) indicating whether the corresponding three-dimensional point belongs to the first point cloud data or the second point cloud data.
  • the control information includes second information (for example, identification information) indicating the attribute information including the first information among the plurality of attribute information.
  • the three-dimensional data decoding device that decodes the bit stream generated by the three-dimensional data encoding device is included in the control information when the first information is included in any of the plurality of attribute information.
  • the attribute information including the first information can be easily determined by using the two pieces of information. Therefore, the three-dimensional data coding device can reduce the processing amount of the three-dimensional data decoding device.
  • control information is control information (for example, SPS) common to a plurality of frames.
  • control information for example, SPS
  • the third point cloud data is a plurality of point cloud data at a plurality of times, and the control information is control information common to the plurality of point cloud data.
  • the three-dimensional data coding device encodes the attribute information including the first information by using a reversible coding method.
  • a three-dimensional data coding device sets the quantization parameters so that a reversible coding method is used.
  • a three-dimensional data coding device stores information indicating a set quantization parameter in a bit stream.
  • a three-dimensional data encoding device uses motion information (for example, a motion vector) indicating the motion between the first point cloud data and the second point cloud data, and uses the motion information (for example, motion vector) of the point cloud included in the second point cloud data.
  • the position is corrected, and the third point cloud data is generated by integrating the first point cloud data and the corrected second point cloud data, and the encoded data includes motion information.
  • the three-dimensional data coding device can bring the positions of the point clouds to be connected closer to each other, 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 processing shown in FIG. 108.
  • the three-dimensional data decoding device has a plurality of position information of each of the plurality of three-dimensional points included in the third point cloud data in which the first point cloud data and the second point cloud data are combined from the bit stream.
  • the coded data including the attribute information is acquired (S5821).
  • the three-dimensional data decoding device is a first indicating whether the corresponding three-dimensional point belongs to the first point cloud data or the second point cloud data among the plurality of attribute information from the control information included in the bit stream.
  • the second information (for example, identification information) indicating the attribute information including the information (for example, the frame index) is acquired (S5822).
  • the three-dimensional data decoding device acquires the first information by using the second information (S5823). For example, the three-dimensional data decoding device uses the second information to specify the attribute information including the first information, and acquires the first information from the specified attribute information.
  • the three-dimensional data decoding device uses the second information included in the control information to obtain the attribute information including the first information. It can be easily determined. Therefore, the three-dimensional data decoding device can reduce the processing amount.
  • control information is control information (for example, SPS) common to a plurality of frames.
  • the attribute information including the first information is encoded by using a reversible coding method.
  • the three-dimensional data decoding device decodes the attribute information encoded by the reversible coding method by using the decoding method corresponding to the reversible coding method.
  • the quantization parameters are set so that a reversible coding method is used.
  • a three-dimensional data decoding device acquires information indicating a quantization parameter set so that a reversible coding method is used from a bit stream, and uses the quantization parameter to obtain attribute information using the above decoding method. To decrypt.
  • the three-dimensional data decoding device uses the first information to separate the first point cloud data and the second point cloud data from the third point cloud data.
  • the three-dimensional data decoding device acquires motion information indicating the motion between the first point cloud data and the second point cloud data from the bit stream, and uses the motion information to include the motion information in the second point cloud data. Correct the position of the point cloud.
  • the three-dimensional data decoding device can decode a bit stream with improved coding efficiency by bringing the positions of the point groups to be combined closer to each other.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 109 is a diagram showing an example of a frame index at the time of frame combination.
  • a frame index indicating a frame to which each three-dimensional point included in the combined frame belonged before the combination. Is added to each 3D point as attribute information.
  • frames in which frame combination is performed # 1 to # 4, # 7 to # 8 and frames in which frame combination is not performed (# 5 to # 6) may coexist. is assumed. In addition, it is assumed that the number of frames to be combined may be changed adaptively.
  • the second point cloud data after frame combination includes a frame index (FlameIndex) indicating which frame each point belongs to.
  • a frame index (FlameIndex) indicating which frame each point belongs to.
  • the frame to which the point belongs is uniquely determined. Therefore, (1B) a frame indicating a predetermined fixed value for these frames.
  • a method of adding an index to each point (indicated as "FlameIndex fixed value” in FIG. 109) and a method of (2) not adding a frame index (indicated as "No FrameIndex” in FIG. 109) are assumed.
  • the predetermined fixed value (default value) may be, for example, 0 or any other value.
  • the attribute information is a frame index
  • FIG. 110 is a block diagram of a three-dimensional data coding device.
  • the three-dimensional data coding apparatus includes a preprocessing unit 10301 and a coding unit 10302.
  • the preprocessing unit 10301 performs preprocessing such as frame coupling, data synthesis, quantization, and conversion processing (coordinate transformation, etc.) on the first point cloud data, thereby converting the first point cloud data into various formats. It is converted into the second point cloud data of.
  • the format may differ between frames.
  • the format may be different inside the data, for example, some points have specific attribute data and some points do not have specific attribute data.
  • FIG. 111 is a diagram showing these cases.
  • the coding unit 10302 of case A When the point cloud data is input to the coding unit 10302 of case A, all the point cloud data of (1A), (1B) and (2) are input to the coding unit 10302 as they are.
  • the coding unit 10302 can perform a normal coding process.
  • the preprocessing unit 10301 converts the original first point cloud data into the second point cloud data, so that the point cloud data is included. Unify the format of.
  • FIG. 112 is a diagram showing an example of point cloud data of a frame having no attribute information.
  • FIG. 113 is a diagram showing an example of point cloud data after the format change.
  • the preprocessing unit 10301 has attribute information by assigning a fixed value such as 0 as attribute information to a frame having position information and no attribute information. Generate a frame.
  • the preprocessing unit 10301 may perform value padding processing such as describing a specific invalid value as attribute information.
  • the coding unit 10302 may correspond to both cases of case A and case B, or may correspond to either case. For example, when the coding unit 10302 corresponds to the case B and does not correspond to the case A, the format conversion in the preprocessing unit 10301 is required.
  • the coding unit 10302 indicates whether the point cloud data is any of (1A), (1B), and (2), or whether there is a possibility that the data of (2) exists, or whether or not the point cloud data is already (
  • An identifier or constraint information indicating whether or not the format is unified in 1A) or (1B) may be stored in metadata such as SPS (sequence parameter set) in the coded bit stream.
  • SPS sequence parameter set
  • the preprocessing unit 10301 When encoding the point cloud data of (2), the preprocessing unit 10301 performs processing such as padding so that the structure of the point cloud data of all frames is the same, thereby performing the process of (2).
  • the point cloud data is converted into the point cloud data of (1B).
  • the coding unit 10302 includes a frame including the attribute information from the time of the original first point group data and the padded attribute information.
  • the frame containing the above is encoded without distinction, and a parameter set such as SPS and APS (attribute information parameter set) and attribute slice data (encoded attribute data) are generated.
  • the list of attribute information stored in the SPS can be made the same in the sequence, and the process of changing the structure of the SPS for each frame becomes unnecessary. Further, when the first method is used, by processing the padded attribute information without distinguishing it from the normal attribute information, it is possible to deal with it without changing the conventional processing.
  • the structure of the point cloud data input to the coding unit 10302 may change although the specific attribute information exists / does not exist (case A), inside the coding unit 10302, The padding process described above may be performed.
  • the coding unit 10302 performs different coding processing based on whether the input point cloud data is a frame containing attribute information from the original first point cloud data or a frame containing padded attribute information. Or use a different data structure.
  • FIG. 114 is a block diagram of the attribute information coding unit 10310 included in the coding unit 10302.
  • the attribute information coding unit 10310 generates coded attribute information by encoding the attribute information included in the second point cloud data.
  • the attribute information coding unit 10310 includes a determination unit 10311, a conversion unit 10312, a quantization unit 10313, and an entropy coding unit 10314.
  • the determination unit 10311 determines whether or not the input attribute information is padded attribute information, or whether or not it is attribute information composed of invalid data or fixed values. If the input attribute information is not padded attribute information, or is not attribute information composed of invalid data or fixed values, the conversion unit 10312 generates a conversion coefficient by performing conversion processing on the attribute information.
  • the quantization unit 10313 quantizes the conversion coefficient.
  • the entropy coding unit 10314 generates coding attribute information by entropy-coding the quantized conversion coefficient.
  • the conversion process is a conversion process using the position information of the three-dimensional points. For example, the conversion process is Predicting, Lifting or RAHT (Region Adaptive Hierarchical Transfer).
  • Predicting and Lifting are one of the conversion methods using LoD (Level of Detail), and are methods for calculating the predicted residuals.
  • the attribute information coding unit 10310 when the input attribute information is padded attribute information, or is attribute information composed of invalid data or fixed values, the attribute information coding unit 10310 performs conversion processing, quantization, and entropy code. Do not change. That is, the attribute information coding unit 10310 does not encode the attribute information. For example, the attribute information coding unit 10310 does not have to output the coded attribute information. Alternatively, the attribute information coding unit 10310 may encode one fixed value when the attribute information is composed of fixed values. Alternatively, the attribute information coding unit 10310 may output the input attribute information as it is as coded attribute information.
  • the attribute information coding unit 10310 does not perform conversion processing and converts the input attribute information into the attribute information. At least one of quantization and entropy coding may be performed.
  • FIG. 115 is a block diagram of the additional information coding unit 10320 included in the coding unit 10302.
  • the additional information coding unit 10320 generates the encoded additional information by encoding the additional information.
  • the additional information coding unit 10320 includes a determination unit 10321, a header compression unit 10322, and a coding unit 10323.
  • the determination unit 10321 determines whether or not the input attribute information is padded attribute information, or whether or not it is attribute information composed of invalid data or fixed values. If the input attribute information is not padded attribute information, or is not attribute information composed of invalid data or fixed values, the encoding unit 10323 adds using a predetermined parameter set or header syntax. Encoded additional information is generated by encoding information (metadata).
  • the header compression unit 10322 deletes unnecessary headers or determines a predetermined value.
  • the header area is reduced by using the compression method.
  • the coding unit 10323 generates the coding additional information by encoding the header from which unnecessary headers have been deleted or the compressed header.
  • the additional information coding unit 10320 does not have to send predetermined metadata. Further, the additional information coding unit 10320 may generate additional information from which unnecessary headers have been deleted, instead of deleting unnecessary headers.
  • the additional information coding unit 10320 depends on whether or not the attribute information coding process (conversion process, quantization, and entropy coding) has been bypassed, and if bypassed, the additional information related to the bypassed process. May be deleted.
  • attribute information coding process conversion process, quantization, and entropy coding
  • the additional information is information included in a parameter set such as SPS and APS, or a data header of attribute information.
  • the attribute information coding unit 10310 includes the determination unit 10311 and the additional information coding unit 10320 includes the determination unit 10321, these may be shared. Further, either one of the above-mentioned processing for attribute information and the processing for additional information may be used, or both may be used.
  • FIG. 116 is a diagram showing a syntax example of APS (attribute information parameter set: Attribute Parameter Set) which is a parameter set of attribute information.
  • the APS includes a flag (attribute_transform_bypass_flag) indicating whether or not to bypass the coding of attribute information (for example, conversion processing).
  • this flag may indicate whether the input point cloud data is a frame containing attribute information in the original data or a frame containing padded attribute information.
  • these pieces of information are not limited to flags, and may be any form of information included in the coded bit stream.
  • FIG. 117 is a diagram showing an example of syntax of the attribute slice header (AttributeSliceHeader).
  • the 3D data coding apparatus performs APS and attribute slices of the metadata required for coding when bypassing the coding based on whether or not the coding is bypassed. It does not have to be stored in the header.
  • the APS and the attribute slice header do not include the metadata related to the conversion process (transform) and are not involved in the conversion process (processes other than the conversion process). Includes metadata (related to).
  • the APS and the attribute slice header include both the metadata related to the conversion process and the metadata not related to the conversion process.
  • the attribute slice data (coded attribute information) may change the data structure according to the flag (attribute_transform_bypass_flag).
  • FIG. 118 is a diagram showing an example of syntax of attribute slice data (AttributeSliceData).
  • the attribute slice data includes normal data.
  • the ordinary data is data in which the attribute information is encoded (conversion, quantization, and entropy encoding), and includes a plurality of information indicating the respective values of the plurality of attribute information.
  • the attribute slice data includes value.
  • Value indicates, for example, a fixed value (0 or other value) in which attribute information is padded.
  • the three-dimensional data decoding device refers to the above flag and refers to the data whose point cloud does not have attribute information (specifically, data loss or the like, or the original data is attribute information in the first place. Is not included), or the fixed value (0 or other value) given by padding can be identified as omitted data.
  • the above flags are stored in the APS and common flags are used for the APS, the attribute slice header, and the attribute slice data, but individual flags are provided for each slice, and each slice has its own flag.
  • the operation may be controlled independently.
  • the above flag may be stored in a slice header or an attribute slice header.
  • FIG. 119 is a diagram showing a configuration example of a coded bit stream of normal unpadded attribute information.
  • FIG. 120 is a diagram showing a configuration example of a coded bit stream of padded attribute information.
  • the data-reduced APS, the attribute slice header (ASH in the figure) and the attribute slice data (A in the figure) are used.
  • the coded bitstream also includes a position slice header (GSH) and position slice data (G).
  • FIG. 121 is a block diagram of the attribute information decoding unit 10330 included in the three-dimensional data decoding device.
  • the attribute information decoding unit 10330 generates attribute information by decoding the coded attribute information included in the coded bit stream.
  • the attribute information decoding unit 10330 includes an analysis unit 10331, an entropy decoding unit 10332, an inverse quantization unit 10333, and an inverse conversion unit 10334.
  • the analysis unit 10331 determines whether to perform normal processing or processing for padded attribute information based on the information contained in the coded bit stream. This information is, for example, the above-mentioned flag included in the additional information (metadata).
  • the analysis unit 10331 determines whether or not the coded attribute information is the coded data of the padded attribute information, or whether or not the coded attribute information is invalid data or coded data of the attribute information composed of fixed values. Is determined.
  • the entropy decoding unit 10332 entropy decodes the coded attribute information. This produces a quantized conversion coefficient.
  • the dequantization unit 10333 generates a conversion coefficient by dequantizing the quantized conversion coefficient.
  • the inverse transformation unit 10334 generates attribute information by performing an inverse transformation process on the conversion coefficient.
  • the inverse transformation process is an inverse transformation process using the position information of a three-dimensional point.
  • the inverse transformation process is the inverse transformation of Predicting, Lifting or RAHT.
  • the attribute information decoding unit 10330 performs entropy decoding. , Inverse quantization and inverse conversion processing is not performed. That is, the attribute information decoding unit 10330 does not decode the attribute information. For example, the attribute information decoding unit 10330 outputs the above-mentioned value value or a predetermined value (default value) as the value of the attribute information. Alternatively, the attribute information decoding unit 10330 may output the input attribute information as it is as coded attribute information.
  • the attribute information decoding unit 10330 When the coded attribute information is padded attribute information encoded data, or invalid data or attribute information encoded data composed of fixed values, the attribute information decoding unit 10330 performs reverse conversion processing. At least one of entropy decoding and dequantization may be performed on the attribute information without performing the above.
  • FIG. 122 is a flowchart of the three-dimensional data coding process by the three-dimensional data coding device.
  • the three-dimensional data encoding device analyzes a plurality of attribute information of a plurality of three-dimensional points included in the frame to be processed, thereby padding the plurality of attribute information of the frame to be processed. Whether or not it is determined (S10301, S10302). It should be noted that this determination is performed based on, for example, whether or not the values of the plurality of attribute information are all the same.
  • the three-dimensional data encoding device determines that the plurality of attribute information is the padded attribute information, and determines that the frame to be processed is the padded attribute information.
  • the preprocessing unit 10301 may generate information indicating whether or not padding has been performed, and the determination may be performed based on the information.
  • the three-dimensional data coding device encodes the attribute information using a normal coding method.
  • the three-dimensional data coding apparatus signals that a normal coding method has been used (S10303). That is, the three-dimensional data coding apparatus adds information indicating that the usual coding method is used to the bit stream.
  • the three-dimensional data encoding device encodes the attribute information by using the second method (bypass) described above, and uses the coding. Signal that it was there (S10304). That is, the three-dimensional data coding device adds information indicating that the second method (bypass) has been used to the bit stream.
  • FIG. 123 is a flowchart of the three-dimensional data decoding process by the three-dimensional data decoding device.
  • the three-dimensional data decoding device acquires information indicating whether or not the second method is used for coding from the additional information included in the bit stream (S10311).
  • the three-dimensional data decoding apparatus decodes the coded attribute information by using a normal decoding method (S10313).
  • the three-dimensional data decoding device decodes the coding attribute information by using the second decoding method (bypass) (S10314).
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 124.
  • the three-dimensional data encoding device has a plurality of first information indicating each of the plurality of values of the plurality of attribute information.
  • Generate a bitstream containing eg, the normal data of FIG. 118) (S10322).
  • the three-dimensional data encoding device provides the second information (value in FIG. 118) indicating the same value common to the plurality of attribute information.
  • a bit stream that includes and does not include a plurality of first pieces of information is generated (S10323).
  • the three-dimensional data encoding device can reduce the amount of data in the bitstream, so that the coding efficiency can be improved.
  • a third information indicating that the plurality of values of the plurality of attribute information are all the same value for example, attribute_transform_bypass_flag.
  • the plurality of the plurality of three-dimensional points for the plurality of attribute information By performing the conversion process using the position information of, a plurality of first pieces of information are generated, and the fourth information regarding the conversion process (for example, the metadata related to the transform of FIG. 116 or FIG. 117) is added to the bit stream.
  • the three-dimensional data encoding device does not add the fourth information to the bit stream when the plurality of values of the plurality of attribute information are all the same value (Yes in S10321).
  • the three-dimensional data encoding device can reduce the amount of data in the bitstream, so that the coding efficiency can be improved.
  • the three-dimensional data encoding device sets a predetermined value as a plurality of attribute information of a plurality of three-dimensional points when the attribute information of a plurality of three-dimensional points included in the frame does not exist, and the bit stream is set. , Includes second information indicating the predetermined value as the same value.
  • each of the plurality of attribute information indicates a frame to which the three-dimensional point having the attribute information belongs before the combination in the frame generated by combining the plurality of frames.
  • 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 processing shown in FIG. 125.
  • the three-dimensional data decoding device includes a case where the bit stream contains a plurality of first information (for example, the normal data of FIG. 118) indicating each of a plurality of values of the plurality of attribute information of the plurality of three-dimensional points (No. in S10331). ), A plurality of attribute information is generated from the plurality of first information (S10332).
  • the bit stream contains the second information (value in FIG. 118) indicating a value common to the plurality of attribute information (Yes in S10331)
  • the three-dimensional data decoding device sets the value as each value of the plurality of attribute information.
  • the common value indicated by the second information is output (S10333).
  • the three-dimensional data decoding device can decode a bit stream with improved coding efficiency.
  • bit stream contains third information (for example, attribute_transform_bypass_flag) indicating that the plurality of values of the plurality of attribute information are all the same value
  • third information for example, attribute_transform_bypass_flag
  • each value of the plurality of attribute information is included.
  • the common value indicated by the second information is output.
  • the three-dimensional data encoding device has a fourth information (for example,) regarding an inverse transformation process using a plurality of position information of the plurality of three-dimensional points.
  • a plurality of attribute information is generated by acquiring the metadata related to the transition of FIG. 116 or FIG. 117 from the bit stream and performing an inverse transformation process on the plurality of first information using the fourth information.
  • the bitstream contains the second information (Yes in S10331)
  • the three-dimensional data decoding device does not acquire the fourth information from the bitstream.
  • the three-dimensional data decoding device can decode a bit stream with improved coding efficiency.
  • each of the plurality of attribute information indicates a frame to which the three-dimensional point having the attribute information belongs before the combination in the frame generated by combining the plurality of frames.
  • a plurality of attribute information of a frame in which a plurality of frames are not combined indicates a predetermined value
  • the second information indicates the predetermined value as a common value
  • the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • 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 the functional block in the block diagram is an example, and a plurality of functional blocks can be realized as one functional block, one functional block can be divided into a plurality of functional blocks, 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 at the same time (parallel) as other steps.
  • the three-dimensional data coding device, the three-dimensional data decoding device, and the like have been described above based on the embodiment, but the present disclosure is not limited to this embodiment. .. As long as the gist of the present disclosure is not deviated, various modifications that can be conceived by those skilled in the art are applied to the present 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.

Landscapes

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

Abstract

三次元データ符号化方法は、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合(S10321でNo)、複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し(S10322)、複数の属性情報の複数の値が全て同じ値である場合(S10321でYes)、複数の属性情報に共通の同じ値を示す第2情報を含み、複数の第1情報を含まないビットストリームを生成する(S10323)。

Description

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
 本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 三次元データの符号化処理及び三次元データ復号処理では、符号化効率を向上できることが望まれている。
 本開示は、符号化効率を向上できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供することを目的とする。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し、前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報に共通の前記同じ値を示す第2情報を含み、前記複数の第1情報を含まないビットストリームを生成する。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報が含まれる場合、前記複数の第1情報から前記複数の属性情報を生成し、前記ビットストリームに、前記複数の属性情報に共通の値を示す第2情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する。
 本開示は、符号化効率を向上できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。
図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は、実施の形態3に係る符号化部及び多重化部の構成を示す図である。 図17は、実施の形態3に係る符号化データの構成例を示す図である。 図18は、実施の形態3に係る符号化データ及びNALユニットの構成例を示す図である。 図19は、実施の形態3に係るpcc_nal_unit_typeのセマンティクス例を示す図である。 図20は、実施の形態3に係るNALユニットの送出順序の例を示す図である。 図21は、実施の形態4に係る第1の符号化部のブロック図である。 図22は、実施の形態4に係る第1の復号部のブロック図である。 図23は、実施の形態4に係る分割部のブロック図である。 図24は、実施の形態4に係るスライス及びタイルの分割例を示す図である。 図25は、実施の形態4に係るスライス及びタイルの分割パターンの例を示す図である。 図26は、実施の形態4に係る依存関係の例を示す図である。 図27は、実施の形態4に係るデータの復号順の例を示す図である。 図28は、実施の形態4に係る符号化処理のフローチャートである。 図29は、実施の形態4に係る結合部のブロック図である。 図30は、実施の形態4に係る符号化データ及びNALユニットの構成例を示す図である。 図31は、実施の形態4に係る符号化処理のフローチャートである。 図32は、実施の形態4に係る復号処理のフローチャートである。 図33は、実施の形態4に係る符号化処理のフローチャートである。 図34は、実施の形態4に係る復号処理のフローチャートである。 図35は、実施の形態5に係る複数フレームの点群データからツリー構造及びオキュパンシー符号を生成するイメージを示す図である。 図36は、実施の形態5に係るフレーム結合の例を示す図である。 図37は、実施の形態5に係る複数フレームの結合の例を示す図である。 図38は、実施の形態5に係る三次元データ符号化処理のフローチャートである。 図39は、実施の形態5に係る符号化処理のフローチャートである。 図40は、実施の形態5に係る三次元データ復号処理のフローチャートである。 図41は、実施の形態5に係る復号及び分割処理のフローチャートである。 図42は、実施の形態5に係る符号化部のブロック図である。 図43は、実施の形態5に係る分割部のブロック図である。 図44は、実施の形態5に係る位置情報符号化部のブロック図である。 図45は、実施の形態5に係る属性情報符号化部のブロック図である。 図46は、実施の形態5に係る点群データの符号化処理のフローチャートである。 図47は、実施の形態5に係る符号化処理のフローチャートである。 図48は、実施の形態5に係る復号部のブロック図である。 図49は、実施の形態5に係る位置情報復号部のブロック図である。 図50は、実施の形態5に係る属性情報復号部のブロック図である。 図51は、実施の形態5に係る結合部のブロック図である。 図52は、実施の形態5に係る点群データの復号処理のフローチャートである。 図53は、実施の形態5に係る復号処理のフローチャートである。 図54は、実施の形態5に係るフレームの結合パターンの例を示す図である。 図55は、実施の形態5に係るPCCフレームの構成例を示す図である。 図56は、実施の形態5に係る符号化位置情報の構成を示す図である。 図57は、実施の形態5に係る符号化位置情報のヘッダのシンタックス例を示す図である。 図58は、実施の形態5に係る符号化位置情報のペイロードのシンタックス例を示す図である。 図59は、実施の形態5に係るリーフノード情報の例を示す図である。 図60は、実施の形態5に係るリーフノード情報の例を示す図である。 図61は、実施の形態5に係るビットマップ情報の例を示す図である。 図62は、実施の形態5に係る符号化属性情報の構成を示す図である。 図63は、実施の形態5に係る符号化属性情報のヘッダのシンタックス例を示す図である。 図64は、実施の形態5に係る符号化属性情報のペイロードのシンタックス例を示す図である。 図65は、実施の形態5に係る符号化データの構成を示す図である。 図66は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図67は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図68は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図69は、実施の形態5に係る一部のフレームを復号する例を示す図である。 図70は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図71は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図72は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図73は、実施の形態5に係るデータの送出順及びデータの参照関係を示す図である。 図74は、実施の形態5に係る符号化処理のフローチャートである。 図75は、実施の形態5に係る復号処理のフローチャートである。 図76は、実施の形態6に係る三次元点の例を示す図である。 図77は、実施の形態6に係るLoDの設定例を示す図である。 図78は、実施の形態6に係るLoDの設定に用いる閾値の例を示す図である。 図79は、実施の形態6に係る予測値に用いる属性情報の例を示す図である。 図80は、実施の形態6に係る指数ゴロム符号の一例を示す図である。 図81は、実施の形態6に係る指数ゴロム符号に対する処理を示す図である。 図82は、実施の形態6に係る属性ヘッダのシンタックス例を示す図である。 図83は、実施の形態6に係る属性データのシンタックス例を示す図である。 図84は、実施の形態6に係る三次元データ符号化処理のフローチャートである。 図85は、実施の形態6に係る属性情報符号化処理のフローチャートである。 図86は、実施の形態6に係る指数ゴロム符号に対する処理を示す図である。 図87は、実施の形態6に係る残り符号とその値との関係を示す逆引きテーブルの例を示す図である。 図88は、実施の形態6に係る三次元データ復号処理のフローチャートである。 図89は、実施の形態6に係る属性情報復号処理のフローチャートである。 図90は、実施の形態6に係る三次元データ符号化装置のブロック図である。 図91は、実施の形態6に係る三次元データ復号装置のブロック図である。 図92は、実施の形態6に係る属性情報の構成を示す図である。 図93は、実施の形態6に係る符号化データについて説明するための図である。 図94は、実施の形態6に係る三次元データ符号化処理のフローチャートである。 図95は、実施の形態6に係る三次元データ復号処理のフローチャートである。 図96は、実施の形態7に係る符号化データの例を示す図である。 図97は、実施の形態7に係る符号化データの例を示す図である。 図98は、実施の形態7に係る三次元データ符号化処理のフローチャートである。 図99は、実施の形態7に係る動き補償及びフレーム結合の例を示す図である。 図100は、実施の形態7に係る動きベクトル送信の例を示す図である。 図101は、実施の形態7に係る符号化データの例を示す図である。 図102は、実施の形態7に係る三次元データ復号装置のブロック図である。 図103は、実施の形態7に係る動きベクトルの算出方法の例を示す図である。 図104は、実施の形態7に係る動きベクトルの算出方法の例を示す図である。 図105は、実施の形態7に位符号化データの例を示す図である。 図106は、実施の形態7に動き補償を適用するタイルの例を示す図である。 図107は、実施の形態7に係る符号化処理のフローチャートである。 図108は、実施の形態7に係る復号処理のフローチャートである。 図109は、実施の形態8に係るフレーム結合時におけるフレームインデックスの例を示す図である。 図110は、実施の形態8に係る三次元データ符号化装置のブロック図である。 図111は、実施の形態8に係る符号化部のケースを示す図である。 図112は、実施の形態8に係る属性情報を持たないフレームの点群データの例を示す図である。 図113は、実施の形態8に係るフォーマット変更後の点群データの例を示す図である。 図114は、実施の形態8に係る属性情報符号化部のブロック図である。 図115は、実施の形態8に係る付加情報符号化部のブロック図である。 図116は、実施の形態8に係るAPSのシンタックス例を示す図である。 図117は、実施の形態8に係る属性スライスヘッダのシンタックス例を示す図である。 図118は、実施の形態8に係る属性スライスデータのシンタックス例を示す図である。 図119は、実施の形態8に係る通常の属性情報の符号化ビットストリームの構成例を示す図である。 図120は、実施の形態8に係るパディングされた属性情報の符号化ビットストリームの構成例を示す図である。 図121は、実施の形態8に係る属性情報復号部のブロック図である。 図122は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図123は、実施の形態8に係る三次元データ復号処理のフローチャートである。 図124は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図125は、実施の形態8に係る三次元データ復号処理のフローチャートである。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し、前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報に共通の前記同じ値を示す第2情報を含み、前記複数の第1情報を含まないビットストリームを生成する。
 これによれば、当該三次元データ符号化方法は、ビットストリームのデータ量を削減できるので、符号化効率を向上できる。
 例えば、前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報の前記複数の値が全て同じ値であることを示す第3情報を、前記ビットストリームに付加してもよい。
 例えば、前記複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報に対して、前記複数の三次元点の複数の位置情報を用いた変換処理を行うことで前記複数の第1情報を生成し、前記変換処理に関する第4情報を前記ビットストリームに付加し、前記複数の属性情報の前記複数の値が全て同じ値である場合、前記第4情報を前記ビットストリームに付加しなくてもよい。
 これによれば、当該三次元データ符号化方法は、ビットストリームのデータ量を削減できるので、符号化効率を向上できる。
 例えば、フレームに含まれる前記複数の三次元点の属性情報が存在しない場合、前記複数の三次元点の前記複数の属性情報として予め定められた値を設定し、前記ビットストリームは、前記同じ値として前記予め定められた値を示す前記第2情報を含んでもよい。
 例えば、前記複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示してもよい。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報が含まれる場合、前記複数の第1情報から前記複数の属性情報を生成し、前記ビットストリームに、前記複数の属性情報に共通の値を示す第2情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する。
 これによれば、当該三次元データ復号方法は、符号化効率が向上されたビットストリームを復号できる。
 例えば、前記ビットストリームに、前記複数の属性情報の前記複数の値が全て同じ値であることを示す第3情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力してもよい。
 例えば、前記ビットストリームに前記複数の第1情報が含まれる場合、前記複数の三次元点の複数の位置情報を用いた逆変換処理に関する第4情報を前記ビットストリームから取得し、前記第4情報を用いて、前記複数の第1情報に対して前記逆変換処理を行うことで、前記複数の属性情報を生成し、前記ビットストリームに前記第2情報が含まれる場合、前記第4情報を前記ビットストリームから取得しなくてもよい。
 これによれば、当該三次元データ復号方法は、符号化効率が向上されたビットストリームを復号できる。
 例えば、前記複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示してもよい。
 例えば、複数のフレームが結合されていないフレームの前記複数の属性情報は、予め定められた値を示し、前記第2情報は、前記共通の値として前記予め定められた値を示してもよい。
 また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し、前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報に共通の前記同じ値を示す第2情報を含み、前記複数の第1情報を含まないビットストリームを生成する。
 これによれば、当該三次元データ符号化装置は、ビットストリームのデータ量を削減できるので、符号化効率を向上できる。
 また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報が含まれる場合、前記複数の第1情報から前記複数の属性情報を生成し、前記ビットストリームに、前記複数の属性情報に共通の値を示す第2情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する。
 これによれば、当該三次元データ復号装置は、符号化効率が向上されたビットストリームを復号できる。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な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)を規定することが望ましい。
 (実施の形態3)
 本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
 本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
 図16は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は46456に対応する。
 符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
 多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
 図17は、符号化部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)で表す。また、図17では、属性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の符号化方法では、符号化属性データは符号化位置データに依存する。
 また、図17では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
 なお、図17では、位置情報が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ユニットへの格納方法を説明する。
 例えば、符号化データの種類毎にデータフォーマットが規定される。図18は、符号化データ及びNALユニットの例を示す図である。
 例えば、図18に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
 ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
 ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
 なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
 多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図19は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
 図19に示すように、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は、参照先のデータを先に送出する。
 図20は、NALユニットの送出順の例を示す図である。図20は、位置情報優先と、パラメータ優先と、データ統合との3つの例を示す。
 位置情報優先の送出順序は、位置情報に関する情報と、属性情報に関する情報との各々をまとめて送出する例である。この送出順序の場合、位置情報に関する情報の送出が属性情報に関する情報の送出よりも早く完了する。
 例えば、この送出順序を用いることで、属性情報を復号しない復号装置は、属性情報の復号を無視することで、処理しない時間を設けることができる可能性がある。また、例えば、位置情報を早く復号したい復号装置の場合、位置情報の符号化データを早く得ることにより、より早く位置情報を復号することができる可能性がある。
 なお、図20では、属性XSPSと属性YSPSを統合し、属性SPSと記載しているが、属性XSPSと属性YSPSとを個別に配置してもよい。
 パラメータセット優先の送出順序では、パラメータセットが先に送出され、データが後で送出される。
 以上のようにNALユニット送出順序の制約に従えば、多重化部4802は、NALユニットをどのような順序で送出してもよい。例えば、順序識別情報が定義され、多重化部4802は、複数パターンの順序でNALユニットを送出する機能を有してもよい。例えばストリームPSにNALユニットの順序識別情報が格納される。
 三次元データ復号装置は、順序識別情報に基づき復号を行ってもよい。三次元データ復号装置から三次元データ符号化装置に所望の送出順序が指示され、三次元データ符号化装置(多重化部4802)は、指示された送出順序に従って送出順序を制御してもよい。
 なお、多重化部4802は、データ統合の送出順序のように、送出順序の制約に従う範囲であれば、複数の機能をマージした符号化データを生成してもよい。例えば、図20に示すように、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には、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
 (実施の形態4)
 HEVC符号化では復号装置における並列処理を可能とするために、スライス又はタイルといったデータ分割のツールがあるが、PCC(Point Cloud Compression)符号化ではまだない。
 PCCでは、並列処理、圧縮効率、及び圧縮アルゴリズムによって、様々なデータ分割方法が考えられる。ここでは、スライス及びタイルの定義、データ構造及び送受信方法について説明する。
 図21は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部4910の構成を示すブロック図である。第1の符号化部4910は、点群データを第1の符号化方法(GPCC(Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4910は、分割部4911と、複数の位置情報符号化部4912と、複数の属性情報符号化部4913と、付加情報符号化部4914と、多重化部4915とを含む。
 分割部4911は、点群データを分割することで複数の分割データを生成する。具体的には、分割部4911は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部4911は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部4911は、分割に関する付加情報を生成する。
 複数の位置情報符号化部4912は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部4912は、複数の分割位置情報を並列処理する。
 複数の属性情報符号化部4913は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部4913は、複数の分割属性情報を並列処理する。
 付加情報符号化部4914は、点群データに含まれる付加情報と、分割部4911で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
 多重化部4915は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
 なお、図21では、位置情報符号化部4912及び属性情報符号化部4913の数がそれぞれ2つの例を示しているが、位置情報符号化部4912及び属性情報符号化部4913の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
 図22は、第1の復号部4920の構成を示すブロック図である。第1の復号部4920は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部4920は、逆多重化部4921と、複数の位置情報復号部4922と、複数の属性情報復号部4923と、付加情報復号部4924と、結合部4925とを含む。
 逆多重化部4921は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
 複数の位置情報復号部4922は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部4922は、複数の符号化位置情報を並列処理する。
 複数の属性情報復号部4923は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部4923は、複数の符号化属性情報を並列処理する。
 複数の付加情報復号部4924は、符号化付加情報を復号することで付加情報を生成する。
 結合部4925は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部4925は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
 なお、図22では、位置情報復号部4922及び属性情報復号部4923の数がそれぞれ2つの例を示しているが、位置情報復号部4922及び属性情報復号部4923の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
 次に、分割部4911の構成を説明する。図23は、分割部4911のブロック図である。分割部4911は、スライス分割部4931(Slice Divider)と、位置情報タイル分割部4932(Geometry Tile Divider)と、属性情報タイル分割部4933(Attribute Tile Divider)とを含む。
 スライス分割部4931は、位置情報(Position(Geometry))をスライスに分割することで複数のスライス位置情報を生成する。また、スライス分割部4931は、属性情報(Attribute)をスライスに分割することで複数のスライス属性情報を生成する。また、スライス分割部4931は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(Slice MetaData)を出力する。
 位置情報タイル分割部4932は、複数のスライス位置情報をタイルに分割することで複数の分割位置情報(複数のタイル位置情報)を生成する。また、位置情報タイル分割部4932は、位置情報のタイル分割に係る情報、及び位置情報のタイル分割において生成された情報を含む位置タイル付加情報(Geometry Tile MetaData)を出力する。
 属性情報タイル分割部4933は、複数のスライス属性情報をタイルに分割することで複数の分割属性情報(複数のタイル属性情報)を生成する。また、属性情報タイル分割部4933は、属性情報のタイル分割に係る情報、及び属性情報のタイル分割において生成された情報を含む属性タイル付加情報(Attribute Tile MetaData)を出力する。
 なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割を行わなくてもよい。
 また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
 以下、点群データの分割方法について説明する。図24は、スライス及びタイル分割の例を示す図である。
 まず、スライス分割の方法について説明する。分割部4911は、三次元点群データを、スライス単位で、任意の点群に分割する。分割部4911は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、分割部4911は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
 また、分割部4911は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
 次に、タイル分割の方法について説明する。分割部4911は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
 なお、図24では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
 また、分割部4911は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、分割部4911は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
 また、分割部4911は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
 次に、点群データをスライス又はタイルに分割する方法の例を説明する。分割部4911は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
 スライス分割時には、分割部4911は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、分割部4911は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、分割部4911は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、分割部4911は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、分割部4911は、一つのオブジェクトを複数のスライスに分割する。
 この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
 また、分割部4911は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
 タイル分割時には、分割部4911は、位置情報と属性情報とを独立に分割する。例えば、分割部4911は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、分割部4911は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。分割部4911は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。分割部4911は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
 例えば、分割部4911は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
 また、分割部4911は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
 また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、分割部4911は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
 なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
 以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
 図25は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
 パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
 パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
 次に、分割データの符号化方法について説明する。三次元データ符号化装置(第1の符号化部4910)は、分割されたデータを、それぞれ符号化する。三次元データ符号化装置は、属性情報を符号化する際に、どの構成情報(位置情報、付加情報又は他の属性情報)に基づき符号化を行ったかを示す依存関係情報を付加情報として生成する。つまり、依存関係情報は、例えば、参照先(依存先)の構成情報を示す。この場合、三次元データ符号化装置は、属性情報の分割形状に対応する構成情報に基づき依存関係情報を生成する。なお、三次元データ符号化装置は、複数の分割形状に対応する構成情報に基づき依存関係情報を生成してもよい。
 依存関係情報は三次元データ符号化装置で生成され、生成された依存関係情報が三次元データ復号装置に送出されてもよい。または、三次元データ復号装置が依存関係情報を生成し、三次元データ符号化装置は依存関係情報を送出しなくてもよい。また、三次元データ符号化装置が使用する依存関係を、予め定めておき、三次元データ符号化装置は、依存関係情報を送出しなくてもよい。
 図26は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。三次元データ復号装置は、依存先から依存元の順でデータを復号する。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
 また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gs1は、スライス番号1の位置情報を示し、Gs2は、スライス番号2の位置情報を示す。Gs1t1は、スライス番号1かつタイル番号1の位置情報を示し、Gs1t2は、スライス番号1かつタイル番号2の位置情報を示し、Gs2t1は、スライス番号2かつタイル番号1の位置情報を示し、Gs2t2は、スライス番号2かつタイル番号2の位置情報を示す。同様に、As1は、スライス番号1の属性情報を示し、As2は、スライス番号2の属性情報を示す。As1t1は、スライス番号1かつタイル番号1の属性情報を示し、As1t2は、スライス番号1かつタイル番号2の属性情報を示し、As2t1は、スライス番号2かつタイル番号1の属性情報を示し、As2t2は、スライス番号2かつタイル番号2の属性情報を示す。
 Msliceは、スライス付加情報を示し、MGtileは、位置タイル付加情報を示し、MAtileは、属性タイル付加情報を示す。Ds1t1は属性情報As1t1の依存関係情報を示し、Ds2t1は属性情報As2t1の依存関係情報を示す。
 また、三次元データ符号化装置は、三次元データ復号装置においてデータを並び替える必要がないように、データを復号順に並び替えてもよい。なお、三次元データ復号装置においてデータを並び替えてもよいし、三次元データ符号化装置と三次元データ復号装置との両方でデータを並び替えてもよい。
 図27は、データの復号順の例を示す図である。図27の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
 図28は、三次元データ符号装置による処理の流れを示すフローチャートである。まず、三次元データ符号化装置は、上記のように複数のスライス又はタイルのデータを符号化する(S4901)。次に、三次元データ符号化装置は、図27に示すように、依存先のデータが先になるようにデータを並び替える(S4902)。次に、三次元データ符号化装置は、並び替え後のデータを多重化(NALユニット化)する(S4903)。
 次に、第1の復号部4920に含まれる結合部4925の構成を説明する。図29は、結合部4925の構成を示すブロック図である。結合部4925は、位置情報タイル結合部4941(Geometry Tile Combiner)と、属性情報タイル結合部4942(Attribute Tile Combiner)と、スライス結合部(Slice Combiner)とを含む。
 位置情報タイル結合部4941は、位置タイル付加情報を用いて複数の分割位置情報を結合することで複数のスライス位置情報を生成する。属性情報タイル結合部4942は、属性タイル付加情報を用いて複数の分割属性情報を結合することで複数のスライス属性情報を生成する。
 スライス結合部4943は、スライス付加情報を用いて複数のスライス位置情報を結合することで位置情報を生成する。また、スライス結合部4943は、スライス付加情報を用いて複数のスライス属性情報を結合することで属性情報を生成する。
 なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割が行われていなくてもよい。
 また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
 次に、スライス分割又はタイル分割された符号化データの構成、及び符号化データのNALユニットへの格納方法(多重化方法)を説明する。図30は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
 符号化データ(分割位置情報及び分割属性情報)は、NALユニットのペイロードに格納される。
 符号化データは、ヘッダとペイロードとを含む。ヘッダは、ペイロードに含まれるデータを特定するための識別情報を含む。この識別情報は、例えば、スライス分割或いはタイル分割の種別(slice_type、tile_type)、スライス或いはタイルを特定するためのインデックス情報(slice_idx、tile_idx)、データ(スライス或いはタイル)の位置情報、又はデータのアドレス(address)などを含む。スライスを特定するためのインデックス情報は、スライスインデックス(SliceIndex)とも記す。タイルを特定するためのインデックス情報は、タイルインデックス(TileIndex)とも記す。また、分割の種別とは、例えば、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。
 なお、上記の情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一の分割方法が用いられる場合には、位置情報と属性情報とで分割の種別(slice_type、tile_type)及びインデックス情報(slice_idx、tile_idx)は同一である。よって、位置情報と属性情報の一方のヘッダにこれらの情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらの情報が含まれ、属性情報のヘッダにはこれらの情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライス又はタイルと同一のスライス又はタイルに依存元の属性情報が属すると判断する。
 また、スライス分割又はタイル分割に係る付加情報(スライス付加情報、位置タイル付加情報又は属性タイル付加情報)、及び依存関係を示す依存関係情報等は、既存のパラメータセット(GPS、APS、位置SPS又は属性SPSなど)に格納されて送出されてもよい。分割方法がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)に分割方法を示す情報が格納されてもよい。シーケンス内で分割方法が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)に分割方法を示す情報が格納されてもよい。さらに、位置情報と属性情報とで同じ分割方法が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)に分割方法を示す情報が格納されてもよい。
 また、上記の情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル分割又はスライス分割用のパラメータセットを定義し、当該パラメータセットに上記の情報を格納してもよい。また、これらの情報は、符号化データのヘッダに格納されてもよい。
 また、符号化データのヘッダは、依存関係を示す識別情報を含む。つまり、当該ヘッダは、データ間に依存関係がある場合は、依存元から依存先を参照するための識別情報を含む。例えば、依存先のデータのヘッダには、当該データを特定するための識別情報が含まれる。依存元のデータのヘッダには、依存先を示す識別情報が含まれる。なお、データを特定するための識別情報、スライス分割又はタイル分割に係る付加情報、及び依存関係を示す識別情報を、他の情報から識別可能又は導出可能である場合は、これらの情報を省略してもよい。
 次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図31は、本実施の形態に係る点群データの符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、使用する分割方法を決定する(S4911)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
 スライス分割が行われる場合(S4912でYes)、三次元データ符号化装置は、位置情報と属性情報とを一括で分割することで複数のスライス位置情報及び複数のスライス属性情報を生成する(S4913)。また、三次元データ符号化装置は、スライス分割に係るスライス付加情報を生成する。なお、三次元データ符号化装置は、位置情報と属性情報とを独立に分割してもよい。
 タイル分割が行われる場合(S4914でYes)、三次元データ符号化装置は、複数のスライス位置情報及び複数のスライス属性情報(又は位置情報及び属性情報)を独立に分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S4915)。また、三次元データ符号化装置は、タイル分割に係る位置タイル付加情報及び属性タイル付加情報を生成する。なお、三次元データ符号化装置は、スライス位置情報とスライス属性情報とを一括で分割してもよい。
 次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S4916)。また、三次元データ符号化装置は、依存関係情報を生成する。
 次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S4917)。また、三次元データ符号化装置は、生成した符号化データを送出する。
 図32は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(スライス付加情報、位置タイル付加情報及び属性タイル付加情報)を解析することで、分割方法を判定する(S4921)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
 次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S4922)。
 付加情報によりタイル分割が行われていることが示される場合(S4923でYes)、三次元データ復号装置は、位置タイル付加情報及び属性タイル付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを、それぞれの方法で結合することで、複数のスライス位置情報及び複数のスライス属性情報を生成する(S4924)。なお、三次元データ復号装置は、複数の分割位置情報と、複数の分割属性情報とを同一の方法で結合してもよい。
 付加情報によりスライス分割が行われていることが示される場合(S4925でYes)、三次元データ復号装置は、スライス付加情報に基づき、複数のスライス位置情報及び複数のスライス属性情報(複数の分割位置情報及び複数の分割属性情報)を同一の方法で結合することで位置情報及び属性情報を生成する(S4926)。なお、三次元データ復号装置は、複数のスライス位置情報と複数のスライス属性情報とを、それぞれ異なる方法で結合してもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図33に示す処理を行う。まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間が分割された複数のサブ空間(例えばスライス)に含まれ、各々が1以上の三次元点を含む複数の分割データ(例えばタイル)に分割する。ここで、分割データは、サブ空間に含まれ、1以上の三次元点を含む1以上のデータ集合体である。また、分割データは空間でもあり、三次元点を含まない空間を含んでいてもよい。また、1つのサブ空間に複数の分割データが含まれてもよいし、1つのサブ空間に1つの分割データが含まれてもよい。なお、対象空間に複数のサブ空間が設定されてもよいし、対象空間に1つのサブ空間が設定されてもよい。
 次に、三次元データ符号化装置は、複数の分割データの各々を符号化することで、複数の分割データの各々に対応する複数の符号化データを生成する(S4931)。三次元データ符号化装置は、複数の符号化データと、複数の符号化データの各々に対する複数の制御情報(例えば図30に示すヘッダ)とを含むビットストリームを生成する(S4932)。複数の制御情報の各々には、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子(例えばslice_idx)と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子(例えばtile_idx)とが格納される。
 これによれば、三次元データ符号化装置で生成されたビットストリームを復号する三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データのデータを結合して対象空間を容易に復元できる。よって、三次元データ復号装置における処理量を低減できる。
 例えば、三次元データ符号化装置は、前記符号化では、複数の分割データの各々に含まれる三次元点の位置情報と属性情報とを符号化する。複数の符号化データの各々は、位置情報の符号化データと、属性情報の符号化データとを含む。複数の制御情報の各々は、位置情報の符号化データの制御情報と、属性情報の符号化データの制御情報とを含む。第1識別子及び第2識別子は、位置情報の符号化データの制御情報に格納される。
 例えば、ビットストリームにおいて、複数の制御情報の各々は、当該制御情報に対応する符号化データの前に配置されている。
 また、三次元データ符号化装置は、複数の三次元点が含まれる対象空間が1以上のサブ空間に設定され、前記サブ空間に1以上の三次元点を含む1以上の分割データが含まれ、前記分割データの各々を符号化することで、前記複数の分割データの各々に対応する複数の符号化データを生成し、前記複数の符号化データと、前記複数の符号化データの各々に対する複数の制御情報とを含むビットストリームを生成し、前記複数の制御情報の各々には、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子とが格納されてもよい。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図34に示す処理を行う。まず、三次元データ復号装置は、複数の三次元点が含まれる対象空間が分割された複数のサブ空間(例えばスライス)に含まれ、各々が1以上の三次元点を含む複数の分割データ(例えばタイル)の各々が符号化されることで生成された複数の符号化データと、複数の符号化データの各々に対する複数の制御情報(例えば図30に示すヘッダ)とを含むビットストリームから、前記複数の制御情報に格納されている、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子(例えばslice_idx)と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子(例えばtile_idx)とを取得する(S4941)。次に、三次元データ復号装置は、複数の符号化データを復号することで複数の分割データを復元する(S4942)。次に、三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データを結合することで対象空間を復元する(S4943)。例えば、三次元データ符号化装置は、第2識別子を用いて複数の分割データを結合することで複数のサブ空間を復元し、第1識別子を用いて複数のサブ空間を結合することで対象空間(複数の三次元点)を復元する。なお、三次元データ復号装置は、第1識別子及び第2識別子の少なくとも一方を用いて、所望のサブ空間又は分割データの符号化データをビットストリームから取得し、取得した符号化データを選択的に復号、又は優先的に復号してもよい。
 これによれば、三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データのデータを結合して対象空間を容易に復元できる。よって、三次元データ復号装置における処理量を低減できる。
 例えば、複数の符号化データの各々は、対応する分割データに含まれる三次元点の位置情報と属性情報とが符号化されることで生成され、位置情報の符号化データと、属性情報の符号化データとを含む。複数の制御情報の各々は、位置情報の符号化データの制御情報と、属性情報の符号化データの制御情報とを含む。第1識別子及び第2識別子は、位置情報の符号化データの制御情報に格納されている。
 例えば、ビットストリームにおいて、制御情報は、対応する符号化データの前に配置されている。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態5)
 隣接依存を用いた位置情報符号化では、点群の密度が高いほど符号化効率が向上する可能性がある。本実施の形態では、三次元データ符号化装置は、連続するフレームの点群データを結合することで、連続するフレームの点群データをまとめて符号化する。このとき、三次元データ符号化装置は、結合後の点群データに含まれるリーフノードの各々が属するフレームを識別するための情報を加えた符号化データを生成する。
 ここで、連続するフレームの点群データは類似する可能性が高い。よって、連続するフレームで、オキュパンシー符号の上位レベルが同一になる可能性が高い。つまり、連続するフレームをまとめて符号化することで、オキュパンシー符号の上位レベルを共用できる。
 また、点群がどのフレームに属するかの区別は、フレームのインデックスを符号化することにより、リーフノードで行われる。
 図35は、N個のPCC(Point Cloud Compression)フレームの点群データからツリー構造及びオキュパンシー符号(Occupancy Code)を生成するイメージを示す図である。同図において、矢印中の点は、それぞれのPCCフレームに属する点を示している。初めに、それぞれのPCCフレームに属する点には、フレームを特定するためのフレームインデックスが付与される。
 次に、N個のフレームに属する点をツリー構造に変換し、オキュパンシー符号が生成される。具体的には、点ごとに、点がツリー構造におけるどのリーフノードに属するかが判定される。同図では、木構造(Tree Structure)はノードの集合を示している。上位のノードから順番に、点がどのノードに属するかが判定される。ノードごとの判定結果がオキュパンシー符号として符号化される。オキュパンシー符号はN個のフレームで共通である。
 ノードには、異なるフレームインデックスが付与された、異なるフレームの点が混在する場合がある。なお、8分木(Octree)の分解能が小さい場合は、同一のフレームインデックスが付与された同一フレームの点が混在することもある。
 最下層のノード(リーフノード)には、複数のフレームに属する点が混在(重複)することがある。
 ツリー構造及びオキュパンシー符号において、上位のレベルのツリー構造及びオキュパンシー符号は、全てのフレームにおいて共通成分である可能性があり、下位のレベルのツリー構造及びオキュパンシー符号はフレーム毎の個別成分、又は共通成分と個別成分とが混在する可能性がある。
 例えば、リーフノードなどの最下層のノードには、フレームインデックスを持つ0以上の点が生成され、点の数を示す情報、及び各点に対するフレームインデックスの情報が生成される。これらの情報は、フレームにおいて個別の情報であるともいえる。
 図36は、フレーム結合の例を示す図である。図36の(a)に示すように、複数フレームをまとめてツリー構造を生成することにより、同一のノードに含まれるフレームの点の密度が増える。また、ツリー構造を共有することによりオキュパンシー符号のデータ量を削減できる。これらにより、符号化率を向上できる可能性がある。
 また、図36の(b)に示すように、ツリー構造におけるオキュパンシー符号の個別成分がより密になることにより、算術符号化の効果が高まるので、符号化率を向上できる可能性がある。
 以降、時間的に異なる複数のPCCフレームの結合を例に説明するが、複数フレームでない場合、つまりフレームを結合しない場合(N=1)にも適用可能である。また、結合する複数の点群データは、複数フレーム、つまり、同一対象物の時刻の異なる点群データに限らない。つまり、以下の手法は、空間的、又は時空間的に異なる複数の点群データの結合にも適用可能である。また、以下の手法は、コンテンツの異なる点群データ又は点群ファイルの結合にも適用可能である。
 図37は、時間的に異なる複数のPCCフレームの結合の例を示す図である。図37は、自動車が移動しながら、LiDARなどのセンサで点群データを取得する例を示す。点線は、フレーム毎のセンサの取得範囲、すなわち点群データの領域を示している。センサの取得範囲が大きい場合は、点群データの範囲も大きくなる。
 点群データを結合して符号化する手法は、以下のような点群データに対して有効である。例えば、図37に示す例では、自動車は移動しており、フレームは自動車の周辺の360°のスキャンにより識別される。つまり、次のフレームであるフレーム2は、車両がX方向への移動した後の別の360°のスキャンに対応する。
 この場合、フレーム1とフレーム2とには、重複する領域が存在するため同一の点群データが含まれる可能性がある。よって、フレーム1とフレーム2とを結合して符号化することで符号化効率を向上できる可能性がある。なお、より多くのフレームを結合することも考えられる。ただし、結合するフレーム数を増やすと、リーフノードに付加されるフレームインデックスの符号化に必要なビット数が増加する。
 また、異なる位置のセンサによって点群データが取得されてもよい。それにより、それぞれの位置から取得されたそれぞれの点群データがそれぞれフレームとして用いらてもよい。つまり、複数のフレームは、単一のセンサで取得された点群データであってもよいし、複数のセンサで取得された点群データであってもよい。また、複数のフレーム間において、一部又は全ての対象物が同一であってもよいし、異なってもよい。
 次に、本実施の形態に係る三次元データ符号化処理の流れを説明する。図38は、三次元データ符号化処理のフローチャートである。三次元データ符号化装置は、結合を行うフレームの数である結合フレーム数Nに基づき、N個全てのフレームの点群データを読み込む。
 まず、三次元データ符号化装置は、結合フレーム数Nを決定する(S5401)。例えば、この結合フレーム数Nはユーザにより指定される。
 次に、三次元データ符号化装置は、点群データを取得する(S5402)。次に、三次元データ符号化装置は、取得した点群データのフレームインデックスを記録する(S5403)。
 N個のフレームを処理済みでない場合(S5404でNo)、三次元データ符号化装置は、次の点群データを指定し(S5405)、指定された点群データに対してステップS5402以降の処理を行う。
 一方、N個のフレームを処理済みである場合(S5404でYes)、三次元データ符号化装置は、N個のフレームを結合し、結合後のフレームを符号化する(S5406)。
 図39は、符号化処理(S5406)のフローチャートである。まず、三次元データ符号化装置は、N個のフレームに共通の共通情報を生成する(S5411)。例えば、共通情報は、オキュパンシー符号、及び結合フレーム数Nを示す情報を含む。
 次に、三次元データ符号化装置は、フレーム毎に個別の情報である個別情報を生成する(S5412)。例えば、個別情報は、リーフノードに含まれる点の数、及びリーフノードに含まれる点のフレームインデックスを含む。
 次に、三次元データ符号化装置は、共通情報と個別情報とを結合し、結合後の情報を符号化することで符号化データを生成する(S5413)。次に、三次元データ符号化装置は、フレーム結合に係る付加情報(メタデータ)を生成し、生成した付加情報を符号化する(S5414)。
 次に、本実施の形態に係る三次元データ復号処理の流れを説明する。図40は、三次元データ復号処理のフローチャートである。
 まず、三次元データ復号装置は、ビットストリームから結合フレーム数Nを取得する(S5421)。次に、三次元データ符号化装置は、ビットストリームから符号化データを取得する(S5422)。次に、三次元データ復号装置は、符号化データを復号することで点群データとフレームインデックスと取得する(S5423)。最後に、三次元データ復号装置は、復号された点群データをフレームインデックスを用いて分割する(S5424)。
 図41は、復号及び分割処理(S5423及びS5424)のフローチャートである。まず、三次元データ復号装置は、符号化データ(ビットストリーム)から共通情報及び個別情報を復号(取得)する(S5431)。
 次に、三次元データ復号装置は、単一のフレームを復号するか複数のフレームを復号するかを決定する(S5432)。例えば、単一のフレームを復号するか複数のフレームを復号するかは外部から指定されてもよい。ここで、複数のフレームとは、結合されたフレームの全てのフレームであってもよいし、一部のフレームであってもよい。例えば、三次元データ復号装置は、アプリケーションが必要とする特定のフレームを復号すると決定し、必要としないフレームを復号しないと決定してもよい。または、リアルタイムな復号が要求される場合には、三次元データ復号装置は、結合された複数フレームのうち単一のフレームを復号すると決定してもよい。
 単一のフレームを復号する場合(S5432でYes)、三次元データ復号装置は、復号した個別情報から指定された単一のフレームインデックスに対応する個別情報を抽出し、抽出した個別情報を復号することで、指定されたフレームインデックスに対応するフレームの点群データを復元する(S5433)。
 一方、複数フレームを復号する場合(S5432でNo)、三次元データ復号装置は、指定された複数のフレーム(又は全てのフレーム)のフレームインデックスに対応する個別情報を抽出し、抽出した個別情報を復号することで、指定された複数フレームの点群データを復元する(S5434)。次に、三次元データ復号装置は、フレームインデックスに基づき、復号した点群データ(個別情報)を分割する(S5435)。つまり、三次元データ復号装置は、復号した点群データを複数フレームに分割する。
 なお、三次元データ復号装置は、結合された全てのフレームのデータを一括で復号し、復号したデータを各フレームに分割してもよいし、結合された全てのフレームのうち、任意の一部のフレームを一括で復号し、復号したデータを各フレームに分割してもよい。また、三次元データ復号装置は、複数フレームからなる予め定められた単位フレームを単独で復号してもよい。
 以下、本実施の形態に係る三次元データ符号化装置の構成を説明する。図42は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部5410の構成を示すブロック図である。符号化部5410は、点群データ(ポイントクラウド)を符号化することで符号化データ(符号化ストリーム)を生成する。この符号化部5410は、分割部5411と、複数の位置情報符号化部5412と、複数の属性情報符号化部5413と、付加情報符号化部5414と、多重化部5415とを含む。
 分割部5411は、複数フレームの点群データを分割することで複数フレームの複数の分割データを生成する。具体的には、分割部5411は、各フレームの点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報(色又は反射率等)、及び付加情報を含む。また、分割部5411には、フレーム番号が入力される。分割部5411は、各フレームの位置情報を複数の分割位置情報に分割し、各フレームの属性情報を複数の分割属性情報に分割する。また、分割部5411は、分割に関する付加情報を生成する。
 例えば、分割部5411は、まず、点群をタイルに分割する。次に、分割部5411は、得られたタイルを、さらにスライスに分割する。
 複数の位置情報符号化部5412は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、位置情報符号化部5412は、8分木等のN分木構造を用いて分割位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。例えば、複数の位置情報符号化部5412は、複数の分割位置情報を並列処理する。
 属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、位置情報又は属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
 複数の属性情報符号化部5413は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部5413は、複数の分割属性情報を並列処理する。
 付加情報符号化部5414は、点群データに含まれる付加情報と、分割部5411で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
 多重化部5415は、複数フレームの、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
 図43は、分割部5411のブロック図である。分割部5411は、タイル分割部5421と、スライス分割部5422とを含む。
 タイル分割部5421は、複数フレームの位置情報(Position(Geometry))の各々をタイルに分割することで複数のタイル位置情報を生成する。また、タイル分割部5421は、複数フレームの属性情報(Attribute)の各々をタイルに分割することで複数のタイル属性情報を生成する。また、タイル分割部5421は、タイル分割に係る情報、及びタイル分割において生成された情報を含むタイル付加情報(Tile MetaData)を出力する。
 スライス分割部5422は、複数のタイル位置情報をスライスに分割することで複数の分割位置情報(複数のスライス位置情報)を生成する。また、スライス分割部5422は、複数のタイル属性情報をスライスに分割することで複数の分割属性情報(複数のスライス属性情報)を生成する。また、スライス分割部5422は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(Slice MetaData)を出力する。
 また、分割部5411は、分割処理において、原点座標及び属性情報等を示すために、フレーム番号(フレームインデックス)を用いる。
 図44は、位置情報符号化部5412のブロック図である。位置情報符号化部5412は、フレームインデックス生成部5431と、エントロピー符号化部5432とを含む。
 フレームインデックス生成部5431は、フレーム番号に基づきフレームインデックスの値を決定し、決定したフレームインデックスを位置情報に付加する。エントロピー符号化部5432は、フレームインデックスが付加された分割位置情報をエントロピー符号化することで符号化位置情報を生成する。
 図45は、属性情報符号化部5413のブロック図である。属性情報符号化部5413は、フレームインデックス生成部5441と、エントロピー符号化部5442とを含む。
 フレームインデックス生成部5441は、フレーム番号に基づきフレームインデックスの値を決定し、決定したフレームインデックスを属性情報に付加する。エントロピー符号化部5442は、フレームインデックスが付加された分割属性情報をエントロピー符号化することで符号化属性情報を生成する。
 次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図46は、本実施の形態に係る点群データの符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、使用する分割方法を決定する(S5441)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
 タイル分割が行われる場合(S5442でYes)、三次元データ符号化装置は、位置情報と属性情報とを分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する(S5443)。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。
 スライス分割が行われる場合(S5444でYes)、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報(又は位置情報及び属性情報)を分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S5445)。また、三次元データ符号化装置は、スライス分割に係るスライス付加情報を生成する。
 次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々をフレームインデックスと符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S5446)。また、三次元データ符号化装置は、依存関係情報を生成する。
 次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S5447)。また、三次元データ符号化装置は、生成した符号化データを送出する。
 図47は、符号化処理(S5446)のフローチャートである。まず、三次元データ符号化装置は、分割位置情報を符号化する(S5451)。次に、三次元データ符号化装置は、分割位置情報用のフレームインデックスを符号化する(S5452)。
 分割属性情報が存在する場合(S5453でYes)、三次元データ符号化装置は、分割属性情報を符号化し(S5454)、分割属性情報用のフレームインデックスを符号化する(S5455)。一方、分割属性情報が存在しない場合(S5453でNo)、三次元データ符号化装置は、分割属性情報の符号化、及び分割属性情報用のフレームインデックスの符号化を行わない。なお、フレームインデックスは分割位置情報と分割属性情報のいずれか一方または両方に格納されてもよい。
 なお、三次元データ符号化装置は、属性情報を、フレームインデックスを用いて符号化してもよいし、フレームインデックスを用いずに符号化してもよい。つまり、三次元データ符号化装置は、フレームインデックスを用いて、それぞれの点が属するフレームを識別し、フレーム毎に符号化してもよいし、フレームを識別せずに、全てのフレームに属する点を符号化してもよい。
 以下、本実施の形態に係る三次元データ復号装置の構成を説明する。図48は、復号部5450の構成を示すブロック図である。復号部5450は、点群データが符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この復号部5450は、逆多重化部5451と、複数の位置情報復号部5452と、複数の属性情報復号部5453と、付加情報復号部5454と、結合部5455とを含む。
 逆多重化部5451は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
 複数の位置情報復号部5452は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部5452は、複数の符号化位置情報を並列処理する。
 複数の属性情報復号部5453は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部5453は、複数の符号化属性情報を並列処理する。
 複数の付加情報復号部5454は、符号化付加情報を復号することで付加情報を生成する。
 結合部5455は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部5455は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。また、結合部5455は、フレームインデックスを用いて位置情報及び属性情報を複数フレームの位置情報及び複数フレームの属性情報に分割する。
 図49は、位置情報復号部5452のブロック図である。位置情報復号部5452は、エントロピー復号部5461と、フレームインデックス取得部5462とを含む。エントロピー復号部5461は、符号化位置情報をエントロピー復号することで分割位置情報を生成する。フレームインデックス取得部5462は、分割位置情報からフレームインデックを取得する。
 図50は、属性情報復号部5453のブロック図である。属性情報復号部5453は、エントロピー復号部5471と、フレームインデックス取得部5472とを含む。エントロピー復号部5471は、符号化属性情報をエントロピー復号することで分割属性情報を生成する。フレームインデックス取得部5472は、分割属性情報からフレームインデックを取得する。
 図51は、結合部5455の構成を示す図である。結合部5455は、複数の分割位置情報を結合することで位置情報を生成する。結合部5455は、複数の分割属性情報を結合することで属性情報を生成する。また、結合部5455は、フレームインデックスを用いて位置情報及び属性情報を複数フレームの位置情報及び複数フレームの属性情報に分割する。
 図52は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(スライス付加情報、及びタイル付加情報)を解析することで、分割方法を判定する(S5461)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
 次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S5462)。
 付加情報によりスライス分割が行われていることが示される場合(S5463でYes)、三次元データ復号装置は、スライス付加情報に基づき、複数の分割位置情報を結合することで複数のタイル位置情報を生成し、複数の分割属性情報を結合することで複数のタイル属性情報を生成する(S5464)。ここで、複数の分割位置情報、複数の分割属性情報、複数のタイル位置情報、及び複数のタイル属性情報は、フレームインデックスを含む。
 付加情報によりタイル分割が行われていることが示される場合(S5465でYes)、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報(複数の分割位置情報)を結合することで位置情報を生成し、複数のタイル属性情報(複数の分割属性情報)を結合することで属性情報を生成する(S5466)。ここで、複数のタイル位置情報、複数のタイル属性情報、位置情報及び属性情報は、フレームインデックスを含む。
 図53は、復号処理(S5464又はS5466)のフローチャートである。まず、三次元データ復号装置は、分割位置情報(スライス位置情報)を復号する(S5471)。次に、三次元データ復号装置は、分割位置情報用のフレームインデックスを復号する(S5472)。
 分割属性情報が存在する場合(S5473でYes)、三次元データ復号装置は、分割属性情報を復号し(S5474)、分割属性情報用のフレームインデックスを復号する(S5475)。一方、分割属性情報が存在しない場合(S5473でNo)、三次元データ復号装置は、分割属性情報の復号、及び分割属性情報用のフレームインデックスの復号を行わない。
 なお、三次元データ復号装置は、属性情報を、フレームインデックスを用いて復号してもよいし、フレームインデックスを用いずに復号してもよい。
 以下、フレーム結合における符号化単位について説明する。図54は、フレームの結合パターンの例を示す図である。同図の例は、例えば、PCCフレームが時系列であり、リアルタイムにデータの生成及び符号化が行われる場合の例である。
 図54の(a)は、固定的に4フレームを結合する場合を示している。三次元データ符号化装置は、4フレーム分のデータの生成を待ってから符号化データを生成する。
 図54の(b)は、適応的にフレーム数が変化する場合を示している。例えば、三次元データ符号化装置は、レート制御において符号化データの符号量を調整するために結合フレーム数を変化させる。
 なお、三次元データ符号化装置は、フレーム結合による効果がない可能性がある場合は、フレームを結合しなくてもよい。また、三次元データ符号化装置は、フレーム結合する場合とフレーム結合しない場合とを切り替えてもよい。
 図54の(c)は、結合する複数のフレームの一部が次に結合する複数のフレームの一部と重複する場合の例である。この例は、符号化できたものから順次送出するなど、リアルタイム性、又は低遅延が要求される場合に有用である。
 図55は、PCCフレームの構成例を示す図である。三次元データ符号化装置は、結合するフレームを、少なくとも単独で復号できるデータ単位を含むように構成してもよい。例えば、図55の(a)に示すように、PCCフレームが全てイントラ符号化されており、PCCフレームを単独で復号可能な場合には、上記のいずれのパターンも適用可能である。
 また、図55の(b)に示すように、インター予測が適用されている場合などにおいてGOF(グループオブフレーム)などのランダムアクセス単位が設定される場合は、三次元データ符号化装置は、そのGOF単位を最小単位として、データを結合してもよい。
 なお、三次元データ符号化装置は、共通情報と個別情報とを一括で符号化してもよいし、それぞれを別に符号化してもよい。また、三次元データ符号化装置は、共通情報と個別情報とに共通のデータ構造を用いてもよいし別のデータ構造を用いてもよい。
 また、三次元データ符号化装置は、フレーム毎にオキュパンシー符号を生成した後に、複数フレームのオキュパンシー符号を比較し、例えば、所定の基準で複数フレームのオキュパンシー符号間で共通部分が多いか否かを判定し、共通部分が多い場合に共通情報を生成してもよい。あるいは、三次元データ符号化装置は、共通部分が多いか否に基づき、フレーム結合するかどうか、どのフレームを結合するか、又は結合フレーム数を決定してもよい。
 次に、符号化位置情報の構成を説明する。図56は、符号化位置情報の構成を示す図である。符号化位置情報は、ヘッダとペイロードとを含む。
 図57は、符号化位置情報のヘッダ(Geometry_header)のシンタックス例を示す図である。符号化位置情報のヘッダは、GPSインデックス(gps_idx)と、オフセット情報(offset)と、その他の情報(other_geometry_information)と、フレーム結合フラグ(combine_frame_flag)と、結合フレーム数(number_of_combine_frame)とを含む。
 GPSインデックスは、符号化位置情報に対応するパラメータセット(GPS)の識別子(ID)を示す。GPSは、1フレーム又は複数のフレームの符号化位置情報のパラメータセットである。なお、1フレーム毎にパラメータセットが存在する場合は、複数のパラメータセットの識別子がヘッダに示されてもよい。
 オフセット情報は、結合データを取得するためのオフセット位置を示す。その他の情報は、位置情報に関するその他の情報(例えば、量子化パラメータの差分値(QPdelta)など)を示す。フレーム結合フラグは、符号化データがフレーム結合されているか否かを示すフラグである。結合フレーム数は、結合されているフレームの数を示す。
 なお、上記の情報の一部又は全てがSPS又はGPSに記載されてもよい。なお、SPSとは、シーケンス(複数フレーム)単位のパラメータセットであり、符号化位置情報と符号化属性情報とに共通に用いられるパラメータセットである。
 図58は、符号化位置情報のペイロード(Geometry_data)のシンタックス例を示す図である。符号化位置情報のペイロードは、共通情報と、リーフノード情報とを含む。
 共通情報は、1以上のフレーム結合したデータであり、オキュパンシー符号(occupancy_Code)等を含む。
 リーフノード情報(combine_information)は、各リーフノードの情報である。フレーム数のループとして、フレーム毎にリーフノード情報が示されてもよい。
 リーフノードに含まれる点のフレームインデックスを示す方法としては、方法1と方法2とのいずれかを用いることができる。図59は、方法1の場合のリーフノード情報の例を示す図である。図59に示すリーフノード情報は、ノードに含まれる点の数を示す三次元点数(NumberOfPoints)と、点ごとのフレームインデックス(FrameIndex)とを含む。
 図60は、方法2の場合のリーフノード情報の例を示す図である。図60に示す例では、リーフノード情報は、ビットマップにより複数の点のフレームインデックを示すビットマップ情報(bitmapIsFramePointsFlag)を含む。図61は、ビットマップ情報の例を示す図である。この例では、ビットマップにより、リーフノードがフレームインデックス1と3と5の三次元点を含むことが示される。
 なお、量子化の分解能が低い場合は、同一フレームに重複点が存在する場合がある。この場合、三次元点数(NumberOfPoints)を共有化し、各フレームの三次元点の数と複数フレームの合計の三次元点の数とが示されてもよい。
 また、不可逆圧縮が用いられる場合、三次元データ符号化装置は、重複点を削除し、情報量を削減してもよい。三次元データ符号化装置は、フレーム結合前に重複点を削除してもよいし、フレーム結合後に重複点を削除してもよい。
 次に、符号化属性情報の構成を説明する。図62は、符号化属性情報の構成を示す図である。符号化属性情報は、ヘッダとペイロードとを含む。
 図63は、符号化属性情報のヘッダ(Attribute_header)のシンタックス例を示す図である。符号化属性情報のヘッダは、APSインデックス(aps_idx)と、オフセット情報(offset)と、その他の情報(other_attribute_information)と、フレーム結合フラグ(combine_frame_flag)と、結合フレーム数(number_of_combine_frame)とを含む。
 APSインデックスは、符号化属性情報に対応するパラメータセット(APS)の識別子(ID)を示す。APSは、1フレーム又は複数のフレームの符号化属性情報のパラメータセットである。なお、1フレーム毎にパラメータセットが存在する場合は、複数のパラメータセットの識別子がヘッダに示されてもよい。
 オフセット情報は、結合データを取得するためのオフセット位置を示す。その他の情報は、属性情報に関するその他の情報(例えば、量子化パラメータの差分値(QPdelta)など)を示す。フレーム結合フラグは、符号化データがフレーム結合されているか否かを示すフラグである。結合フレーム数は、結合されているフレームの数を示す。
 なお、上記の情報の一部又は全てがSPS又はAPSに記載されてもよい。
 図64は、符号化属性情報のペイロード(Attribute_data)のシンタックス例を示す図である。符号化属性情報のペイロードは、リーフノード情報(combine_information)を含む。例えば、このリーフノード情報の構成は、符号化位置情報のペイロードに含まれるリーフノード情報と同様である。つまり、リーフノード情報(フレームインデックス)は、属性情報に含まれてもよい。
 また、リーフノード情報(フレームインデックス)は、符号化位置情報と符号化属性情報との一方に格納され、他方に格納されてなくてもよい。この場合、符号化位置情報と符号化属性情報との一方に格納されているリーフノード情報(フレームインデックス)が他方の情報の復号時に参照される。また、参照先を示す情報が符号化位置情報又は符号化属性情報に含まれてもよい。
 次に、符号化データの送出順及び復号順の例を説明する。図65は、符号化データの構成を示す図である。符号化データはヘッダとペイロードとを含む。
 図66~図68は、データの送出順と、データの参照関係を示す図である。同図において、G(1)等は、符号化位置情報を示し、GPS(1)等は、符号化位置情報のパラメータセットを示し、SPSは、シーケンス(複数フレーム)のパラメータセットを示す。また、()内の数字はフレームインデックスの値を示す。なお、三次元データ符号化装置は、データを復号順で送出してもよい。
 図66はフレームを結合しない場合の送出順の例を示す図である。図67はフレームを結合する場合であって、PCCフレーム毎にメタデータ(パラメータセット)が付加される場合の例を示す図である。図68はフレームを結合する場合であって、結合する単位でメタデータ(パラメータセット)が付加される場合の例を示す図である。
 フレーム結合されたデータのヘッダには、当該フレームのメタデータを得るために、参照先のメタデータの識別子が格納される。図68のように、複数フレーム毎のメタデータをまとめてもよい。フレーム結合された複数のフレームに共通のパラメータは一つにまとめてもよい。フレームに共通でないパラメータは各フレームに対する値を示す。
 フレーム毎の情報(フレームで共通でないパラメータ)とは、例えば、フレームデータの生成時刻、符号化時刻、又は復号時刻などを示すタイムスタンプである。また、フレーム毎の情報は、フレームデータを取得したセンサの情報(センサのスピード、加速度、位置情報、センサの向き、その他のセンサ情報など)を含んでもよい。
 図69は、図67に示す例において、一部のフレームを復号する例を示す図である。図69に示すように、フレーム結合データ内で、フレーム間に依存関係がなければ、三次元データ復号装置は、各データを独立に復号できる。
 点群データが属性情報を有する場合、三次元データ符号化装置は、属性情報をフレーム結合してもよい。属性情報は、位置情報を参照して符号化及び復号される。参照される位置情報は、フレーム結合する前の位置情報であってもよいし、フレーム結合した後の位置情報であってもよい。位置情報の結合フレーム数と属性情報の結合フレーム数とは共通(同じ)であってもよいし、独立していて(異なって)もよい。
 図70~図73は、データの送出順と、データの参照関係を示す図である。図70及び図71は、位置情報と属性情報とを共に4フレームで結合する例を示す。図70では、PCCフレーム毎にメタデータ(パラメータセット)が付加される。図71では、結合する単位でメタデータ(パラメータセット)が付加される。同図において、A(1)等は、符号化属性情報を示し、APS(1)等は、符号化属性情報のパラメータセットを示す。また、()内の数字はフレームインデックスの値を示す。
 図72は、位置情報を4フレームで結合し、属性情報を結合しない例を示す。図72に示すように位置情報をフレーム結合し、属性情報をフレーム結合しなくてもよい。
 図73は、フレーム結合とタイル分割とを組み合わせた例を示す。図73に示すようにタイル分割を行う場合には、各タイル位置情報のヘッダは、GPSインデックス(gps_idx)、及び結合フレーム数(number_of_combine_frame)等の情報を含む。また、各タイル位置情報のヘッダは、タイルを識別するためのタイルインデックス(tile_idx)を含む。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図74に示す処理を行う。まず、三次元データ符号化装置は、第1点群データと第2点群データとを結合することで第3点群データを生成する(S5481)。次に、三次元データ符号化装置は、第3点群データを符号化することで符号化データを生成する(S5482)。また、符号化データは、第3点群データに含まれる複数の三次元点の各々が第1点群データと第2点群データとのいずれに属するかを示す識別情報(例えばフレームインデックス)を含む。
 これによれば、三次元データ符号化装置は、複数の点群データをまとめて符号化することにより符号化効率を向上できる。
 例えば、第1点群データと第2点群データとは、異なる時刻の点群データ(例えばPCCフレーム)である。例えば、第1点群データと第2点群データとは、同一の対象物の異なる時刻の点群データ(例えばPCCフレーム)である。
 符号化データは、第3点群データに含まれる複数の三次元点の各々の位置情報と属性情報とを含み、識別情報は、属性情報に含まれる。
 例えば、符号化データは、第3点群データに含まれる複数の三次元点の各々の位置をN(Nは2以上の整数)分木を用いて表した位置情報(例えばオキュパンシー符号)を含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図75に示す処理を行う。まず、三次元データ復号装置は、符号化データを復号することで、第1点群データと第2点群データとが結合されることで生成された第3点群データと、第3点群データに含まれる複数の三次元点の各々が第1点群データと第2点群データとのいずれに属するかを示す識別情報とを取得する(S5491)。次に、三次元データ復号装置は、識別情報を用いて、第3点群データから第1点群データと第2点群データとを分離する(S5492)。
 これによれば、三次元データ復号装置は、複数の点群データをまとめて符号化することにより符号化効率を向上した符号化データを復号できる。
 例えば、第1点群データと第2点群データとは、異なる時刻の点群データ(例えばPCCフレーム)である。例えば、第1点群データと第2点群データとは、同一の対象物の異なる時刻の点群データ(例えばPCCフレーム)である。
 符号化データは、第3点群データに含まれる複数の三次元点の各々の位置情報と属性情報とを含み、識別情報は、属性情報に含まれる。
 例えば、符号化データは、第3点群データに含まれる複数の三次元点の各々の位置をN(Nは2以上の整数)分木を用いて表した位置情報(例えばオキュパンシー符号)を含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態6)
 三次元点群の情報は、位置情報(geometry)と属性情報(attribute)とを含む。位置情報は、ある点を基準とした座標(x座標、y座標、z座標)を含む。位置情報を符号化する場合は、各三次元点の座標を直接符号化する代わりに、各三次元点の位置を8分木表現で表現し、8分木の情報を符号化することで符号量を削減する方法が用いられる。
 一方、属性情報は、各三次元点の色情報(RGB、YUVなど)、反射率、及び法線ベクトルなどを示す情報を含む。例えば、三次元データ符号化装置は、属性情報を、位置情報とは別の符号化方法を用いて符号化することができる。
 本実施の形態では位置情報を複数のフレームの複数の点群データを結合して符号化する際の属性情報の符号化方法について説明する。なお、本実施の形態では属性情報の値として整数値を用いて説明する。例えば色情報RGB又はYUVの各色成分が8bit精度である場合、各色成分は0~255の整数値をとる。反射率の値が10bit精度である場合、反射率の値は0~1023の整数値をとる。なお、三次元データ符号化装置は、属性情報のビット精度が小数精度である場合、属性情報の値が整数値になるように、当該値にスケール値を乗じてから整数値に丸めてもよい。なお、三次元データ符号化装置は、このスケール値をビットストリームのヘッダ等に付加してもよい。
 三次元点群の各位置情報を複数のフレームの点群データを結合して符号化した際の属性情報の符号化方法として、例えば、結合後の位置情報を用いて各位置情報に対応する属性情報を符号化することが考えられる。ここで、結合後の位置情報は、三次元点群の位置情報とその三次元点群が属するframe_index(フレームインデックス)を含んでもよい。また、三次元点群のうちの第1三次元点の属性情報を符号化する際に、第1三次元点が属するフレーム内に含まれる三次元点群の位置情報または属性情報だけでなく、第1三次元点の属するフレームとは異なるフレーム内に含まれる三次元点群の位置情報または属性情報を用いるようにしてもよい。
 複数のフレームのそれぞれは、点群データを含む。複数のフレームのうちの第1フレームに属する第1点群データと、第2フレームに属する第2点群データとは、異なる時刻の点群データである。また、第1点群データと第2点群データとは、例えば、同一の対象物の異なる時刻の点群データである。第1点群データは、第1点群データに含まれる三次元点群が第1点群データに属することを示すフレームインデックスを含む。第2点群データは、第2点群データに含まれる三次元点群が第2点群データに属することを示すフレームインデックスを含む。フレームインデックスは、異なるフレームに属する複数の点群データが結合された結合点群データに含まれる三次元点群がいずれの点群データに属するかを示す識別情報である。なお、三次元点群は、複数の三次元点ともいう。
 三次元点の属性情報の符号化方法として、三次元点の属性情報の予測値を算出し、元の属性情報の値と予測値との差分(予測残差)を符号化することが考えられる。例えば、三次元点pの属性情報の値がApであり、予測値がPpである場合、三次元データ符号化装置は、その差分絶対値Diffp=|Ap-Pp|を符号化する。この場合、予測値Ppを高精度に生成することができれば、差分絶対値Diffpの値が小さくなる。よって、例えば、値が小さい程発生ビット数が小さくなる符号化テーブルを用いて差分絶対値Diffpをエントロピー符号化することで符号量を削減することができる。
 属性情報の予測値を生成する方法として、符号化対象の対象三次元点の周囲にある別の三次元点である参照三次元点の属性情報を用いることが考えられる。このように、三次元データ符号化装置は、周囲の三次元点の属性情報を用いて第1三次元点の属性情報を符号化してもよい。ここで、符号化対象の三次元点の周囲にある別の周囲三次元点は、符号化対象の対象三次元点が属するフレーム内に存在してもよいし、また、符号化対象の対象三次元点が属するフレームとは異なるフレーム内に存在してもよい。つまり、対象三次元点の属性情報は、当該対象三次元点が第1点群データに属することを示す第1フレームインデックスを含み、周囲三次元点の属性情報は、当該周囲三次元点が第2点群データに属することを示す第2フレームインデックスを含んでいてもよい。これにより、符号化対象の三次元点が属するフレーム以外の三次元点の属性情報も参照することで高精度な予測値Ppを生成することができ、符号化効率を向上できる。
 ここで参照三次元点とは、対象三次元点から予め定められた距離範囲内にある三次元点である。例えば、対象三次元点p=(x1,y1,z1)と三次元点q=(x2,y2,z2)とが存在する場合、三次元データ符号化装置は、(式H1)に示す三次元点pと三次元点qとのユークリッド距離d(p、q)を算出する。
Figure JPOXMLDOC01-appb-M000001
 三次元データ符号化装置は、ユークリッド距離d(p、q)が予め定められた閾値THdより小さい場合、三次元点qの位置が対象三次元点pの位置に近いと判定し、対象三次元点pの属性情報の予測値の生成に三次元点qの属性情報の値を利用すると判定する。なお、距離算出方法は別の方法でもよく、例えばマハラノビス距離等が用いられてもよい。また、三次元データ符号化装置は、対象三次元点から予め定められた距離範囲外の三次元点を予測処理に用いないと判定してもよい。例えば、三次元点rが存在し、対象三次元pと三次元点rとの距離d(p、r)が閾値THd以上である場合、三次元データ符号化装置は、三次元点rを予測に用いないと判定してもよい。なお、三次元データ符号化装置は、閾値THdを示す情報を、ビットストリームのヘッダ等に付加してもよい。なお、三次元データ符号化装置は、三次元点群の各位置情報を複数のフレームの点群データを結合して符号化した場合、結合後の三次元点群から各三次元点間の距離を算出してもよい。つまり、三次元データ符号化装置は、異なるフレームに属する2つの三次元点間の距離を算出してもよいし、同じフレームに属する2つの三次元点間の距離を算出してもよい。
 図76は、三次元点の例を示す図である。この例では、対象三次元点pと三次元点qとの距離d(p、q)が閾値THdより小さい。よって、三次元データ符号化装置は、三次元点qを対象三次元点pの参照三次元点と判定し、対象三次元pの属性情報Apの予測値Ppの生成に三次元点qの属性情報Aqの値を利用すると判定する。
 一方、対象三次元点pと三次元点rとの距離d(p、r)は、閾値THd以上である。よって、三次元データ符号化装置は、三次元点rを対象三次元点pの参照三次元点でないと判定し、対象三次元点pの属性情報Apの予測値Ppの生成に三次元点rの属性情報Arの値を利用しないと判定する。
 ここで、三次元点pは、フレームインデックス(frame_idx=0)で示されるフレームに属し、三次元点qは、フレームインデックス(frame_idx=1)で示されるフレームに属する、三次元点rは、フレームインデックス(frame_idx=0)で示されるフレームに属する。三次元符号化装置は、同じフレームに属することがフレームインデックスにより示されている三次元点pおよび三次元点rの間の距離を算出してもよいし、異なるフレームに属することがフレームインデックスにより示されている三次元点pおよび三次元点qの間の距離を算出してもよい。
 また、三次元データ符号化装置は、対象三次元点の属性情報を予測値を用いて符号化する場合、既に属性情報を符号化及び復号済みの三次元点を参照三次元点として利用する。同様に、三次元データ復号装置は、復号対象の対象三次元点の属性情報を予測値を用いて復号する場合、既に属性情報を復号済みの三次元点を参照三次元点として利用する。これにより、符号化時と復号時とで同一の予測値を生成することができるので、符号化で生成した三次元点のビットストリームを復号側で正しく復号することができる。
 なお、符号化対象の対象三次元点の周囲にある別の周囲三次元点は、符号化対象の対象三次元点が属するフレーム内に存在してもよいし、また、符号化対象の対象三次元点が属するフレームとは異なるフレーム内に存在してもよいとしたが、必ずしもこれに限らず、例えば、符号化対象の対象三次元点が属するフレームとは異なるフレーム内に存在する三次元点は、符号化対象の対象三次元点の周囲にないと判定し、予測値として用いないようにしても構わない。これにより、三次元データ符号化装置は、例えば、結合対象の複数のフレームの各三次元点の属性情報が大きく異なる場合は、位置情報をフレーム結合して符号化し、属性情報を同一フレーム内の他の周囲三次元点の属性情報を用いて予測符号化することで符号化効率を向上できる。なお、三次元データ符号化装置は、フレーム結合による符号化時に、同一フレームの周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化するか、または、同一フレームおよび同一フレーム以外の周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化するかを示す情報を符号化データのヘッダに付加し、切替えるようにしても構わない。これにより、三次元データ復号装置は、ヘッダを復号することで、フレーム結合による符号化データの復号時に、同一フレームまたは、同一フレームおよび同一フレーム以外の周囲三次元点の属性情報を用いて対象三次元点の属性情報を復号するか否かを判定し、いずれの復号にするかを切り替えることができるためビットストリームを適切に復号できる。
 また、複数のフレームを結合した後の三次元点の属性情報を符号化する場合に、同一フレームもしくは異なるフレームに属する三次元点の位置情報を用いて各三次元点を複数階層に分類してから符号化することが考えられる。ここで、分類した各階層をLoD(Level of Detail)と呼ぶ。LoDの生成方法について図77を用いて説明する。
 まず、三次元データ符号化装置は、結合後の三次元点群から初期点a0を選択し、LoD0に割当てる。次に、三次元データ符号化装置は、点a0からの距離がLoD0の閾値Thres_LoD[0]より大きい点a1を抽出しLoD0に割当てる。次に、三次元データ符号化装置は、点a1からの距離がLoD0の閾値Thres_LoD[0]より大きい点a2を抽出しLoD0に割当てる。このように、三次元データ符号化装置は、LoD0内の各点の間の距離が閾値Thres_LoD[0]より大きくなるようにLoD0を構成する。なお、三次元データ符号化装置は、2点の三次元点の距離を、それぞれが同一フレームもしくは異なるフレームに属するか否かに関わらず、同一の処理で算出してもよい。例えば、点a0と点a1とは、同じフレームに属していてもよいし、互いに異なるフレームに属していてもよい。このため、点a0と点a1との距離は、同じフレームに属していても、互いに異なるフレームに属していても同一の処理で算出される。
 次に、三次元データ符号化装置は、まだLoDが未割当ての点b0を選択し、LoD1に割当てる。次に、三次元データ符号化装置は、点b0からの距離がLoD1の閾値Thres_LoD[1]より大きく、LoDが未割当ての点b1を抽出しLoD1に割当てる。次に、三次元データ符号化装置は、点b1からの距離がLoD1の閾値Thres_LoD[1]より大きく、LoDが未割当ての点b2を抽出しLoD1に割当てる。このように、三次元データ符号化装置は、LoD1内の各点の間の距離が閾値Thres_LoD[1]より大きくなるようにLoD1を構成する。
 次に、三次元データ符号化装置は、まだLoDが未割当ての点c0を選択し、LoD2に割当てる。次に、三次元データ符号化装置は、点c0からの距離がLoD2の閾値Thres_LoD[2]より大きく、LoDが未割当ての点c1を抽出しLoD2に割当てる。次に、三次元データ符号化装置は、点c1からの距離がLoD2の閾値Thres_LoD[2]より大きく、LoDが未割当ての点c2を抽出しLoD2に割当てる。このように、三次元データ符号化装置は、LoD2内の各点の間の距離が閾値Thres_LoD[2]より大きくなるようにLoD2を構成する。例えば、図78に示すように、各LoDの閾値Thres_LoD[0]、Thres_LoD[1]、及びThres_LoD[2]が設定される。
 また、三次元データ符号化装置は、各LoDの閾値を示す情報を、ビットストリームのヘッダ等に付加してもよい。例えば、図78に示す例の場合、三次元データ符号化装置は、閾値Thres_LoD[0]、Thres_LoD[1]、及びThres_LoD[2]をヘッダに付加してもよい。
 また、三次元データ符号化装置は、LoDの最下層にLoDが未割当ての三次元点全てを割当ててもよい。この場合、三次元データ符号化装置は、LoDの最下層の閾値をヘッダに付加しないことでヘッダの符号量を削減できる。例えば、図78に示す例の場合、三次元データ符号化装置は、閾値Thres_LoD[0]とThres_LoD[1]をヘッダに付加し、Thres_LoD[2]をヘッダに付加しない。この場合、三次元データ復号装置は、Thres_LoD[2]の値0と推定してもよい。また、三次元データ符号化装置は、LoDの階層数をヘッダに付加してもよい。これにより、三次元データ復号装置は、LoDの階層数を用いて最下層のLoDを判定できる。
 また、LoDの各層の閾値の値を図78に示すように上位層ほど大きく設定することで、上位層(LoD0に近い層)ほど三次元点間の距離が離れた疎点群(sparse)となり、下位層ほど三次元点間の距離が近い密点群(dense)となる。なお、図78に示す例では、LoD0が最上位層である。
 また、各LoDを設定する際の初期三次元点の選択方法は、位置情報符号化時の符号化順に依存してもよい。例えば、三次元データ符号化装置は、LoD0の初期点a0として、位置情報符号化時に最初に符号化された三次元点を選択し、初期点a0を基点に、点a1、点a2を選択してLoD0を構成する。そして、三次元データ符号化装置は、LoD1の初期点b0として、LoD0に属していない三次元点の中で、最も早く位置情報が符号化された三次元点を選択してもよい。つまり、三次元データ符号化装置は、LoDnの初期点n0として、LoDnの上層(LoD0~LoDn-1)に属していない三次元点の中で、最も早く位置情報が符号化された三次元点を選択してもよい。これにより、三次元データ復号装置は、復号時に同様の初期点選択方法を用いることで、符号化時と同一のLoDを構成できるので、ビットストリームを適切に復号できる。具体的には、三次元データ復号装置は、LoDnの初期点n0として、LoDnの上層に属していない三次元点の中で、最も早く位置情報が復号された三次元点を選択する。
 以下、三次元点の属性情報の予測値を、LoDの情報を用いて生成する手法について説明する。例えば、三次元データ符号化装置は、LoD0に含まれる三次元点から順に符号化する場合、LoD1に含まれる対象三次元点を、LoD0及びLoD1に含まれる符号化かつ復号済み(以下、単に「符号化済み」とも記す)の属性情報を用いて生成する。このように、三次元データ符号化装置は、LoDnに含まれる三次元点の属性情報の予測値を、LoDn’(n’<=n)に含まれる符号化済みの属性情報を用いて生成する。つまり、三次元データ符号化装置は、LoDnに含まれる三次元点の属性情報の予測値の算出に、LoDnの下層に含まれる三次元点の属性情報を用いない。
 例えば、三次元データ符号化装置は、三次元点の属性情報の予測値を、符号化対象の対象三次元点の周辺の符号化済みの三次元点のうち、N個以下の三次元点の属性値の平均を算出することで生成する。また、三次元データ符号化装置は、Nの値を、ビットストリームのヘッダ等に付加してもよい。なお、三次元データ符号化装置は、Nの値を三次元点毎に変更し、三次元点毎にNの値を付加してもよい。これにより、三次元点毎に適切なNを選択することができるので、予測値の精度を向上できる。よって、予測残差を小さくできる。また、三次元データ符号化装置は、Nの値をビットストリームのヘッダに付加し、ビットストリーム内でNの値を固定してもよい。これにより、三次元点毎にNの値を符号化、又は復号する必要がなくなるので、処理量を削減できる。また、三次元データ符号化装置は、LoD毎にNの値を別々に符号化してもよい。これによりLoD毎に適切なNを選択することで符号化効率を向上できる。
 または、三次元データ符号化装置は、三次元点の属性情報の予測値を、周囲の符号化済みのN個の三次元点の属性情報の重み付け平均値により算出してもよい。例えば、三次元データ符号化装置は、対象三次元点と周囲のN個の三次元点とのそれぞれの距離情報を用いて重みを算出する。
 三次元データ符号化装置は、LoD毎にNの値を別々に符号化する場合、例えばLoDの上位層ほどNの値を大きく設定し、下位層ほどNの値を小さく設定する。LoDの上位層では属する三次元点間の距離が離れるため、Nの値を大きく設定して複数の周囲の三次元点を選択して平均化することで予測精度を向上できる可能性がある。また、LoDの下位層では属する三次元点間の距離が近いため、Nの値を小さく設定して平均化の処理量を抑えつつ、効率的な予測を行うことが可能となる。
 図79は、予測値に用いる属性情報の例を示す図である。上述したように、LoDNに含まれる点Pの予測値は、LoDN’(N’<=N)に含まれる符号化済みの周囲点P’を用いて生成される。ここで、周囲点P’は、点Pとの距離に基づき選択される。例えば、図79に示す点b2の属性情報の予測値は、点a0、a1、a2、b0、b1の属性情報を用いて生成される。
 上述したNの値に応じて、選択される周囲点は変化する。例えばN=5の場合は点b2の周囲点としてa0、a1、a2、b0、b1が選択される。N=4の場合は距離情報を元に点a0、a1、a2、b1を選択される。
 予測値は、距離依存の重み付け平均により算出される。例えば、図79に示す例では、点a2の予測値a2pは、(式H2)及び(式H3)に示すように、点a0及び点a1の属性情報の重み付け平均により算出される。なお、Aは点aiの属性情報の値である。
Figure JPOXMLDOC01-appb-M000002
 また、点b2の予測値b2pは、(式H4)~(式H6)に示すように、点a0、a1、a2、b0、b1の属性情報の重み付け平均により算出される。なお、Bは点biの属性情報の値である。
Figure JPOXMLDOC01-appb-M000003
 また、三次元データ符号化装置は、三次元点の属性情報の値と、周囲点から生成した予測値との差分値(予測残差)を算出し、算出した予測残差を量子化してもよい。例えば、三次元データ符号化装置は、予測残差を量子化スケール(量子化ステップとも呼ぶ)で除算することで量子化を行う。この場合、量子化スケールが小さいほど量子化によって発生しうる誤差(量子化誤差)が小さくなる。逆に量子化スケールが大きいほど量子化誤差は大きくなる。
 なお、三次元データ符号化装置は、使用する量子化スケールをLoD毎に変えてもよい。例えば、三次元データ符号化装置は、上位層ほど量子化スケールを小さくし、下位層ほど量子化スケールを大きくする。上位層に属する三次元点の属性情報の値は、下位層に属する三次元点の属性情報の予測値として使用される可能性があるため、上位層の量子化スケールを小さくして上位層で発生しうる量子化誤差を抑え、予測値の精度を高めることで符号化効率を向上できる。なお、三次元データ符号化装置は、LoD毎に使用する量子化スケールをヘッダ等に付加してもよい。これにより、三次元データ復号装置は、正しく量子化スケールを復号できるので、ビットストリームを適切に復号できる。
 また、三次元データ符号化装置は、量子化後の予測残差である符号付整数値(符号付量子化値)を符号なし整数値(符号なし量子化値)に変換してもよい。これにより予測残差をエントロピー符号化する場合に、負の整数の発生を考慮する必要がなくなる。なお、三次元データ符号化装置は、必ずしも符号付整数値を符号なし整数値に変換する必要はなく、例えば符号ビットを別途エントロピー符号化してもよい。
 予測残差は、元の値から予測値を減算することにより算出される。例えば、点a2の予測残差a2rは、(式H7)に示すように、点a2の属性情報の値Aから、点a2の予測値a2pを減算することで算出される。点b2の予測残差b2rは、(式H8)に示すように、点b2の属性情報の値Bから、点b2の予測値b2pを減算することで算出される。
 a2r=A-a2p ・・・(式H7)
 b2r=B-b2p ・・・(式H8)
 また、予測残差は、QS(量子化ステップ(Quantization Step))で除算されることで量子化される。例えば、点a2の量子化値a2qは、(式H9)により算出される。点b2の量子化値b2qは、(式H10)により算出される。ここで、QS_LoD0は、LoD0用のQSであり、QS_LoD1は、LoD1用のQSである。つまり、LoDに応じてQSが変更されてもよい。
 a2q=a2r/QS_LoD0 ・・・(式H9)
 b2q=b2r/QS_LoD1 ・・・(式H10)
 また、三次元データ符号化装置は、以下のように、上記量子化値である符号付整数値を符号なし整数値に変換する。三次元データ符号化装置は、符号付整数値a2qが0より小さい場合、符号なし整数値a2uを-1-(2×a2q)に設定する。三次元データ符号化装置は、符号付整数値a2qが0以上の場合、符号なし整数値a2uを2×a2qに設定する。
 同様に、三次元データ符号化装置は、符号付整数値b2qが0より小さい場合、符号なし整数値b2uを-1-(2×b2q)に設定する。三次元データ符号化装置は、符号付整数値b2qが0以上の場合、符号なし整数値b2uを2×b2qに設定する。
 また、三次元データ符号化装置は、量子化後の予測残差(符号なし整数値)を、エントロピー符号化によって符号化してもよい。例えば符号なし整数値を二値化したうえで、二値の算術符号化を適用してもよい。
 なお、この場合、三次元データ符号化装置は、予測残差の値に応じて二値化方法を切替えてもよい。例えば、三次元データ符号化装置は、予測残差puが閾値R_THより小さい場合は、閾値R_THを表現するために必要な固定ビット数で予測残差puを二値化する。また、三次元データ符号化装置は、予測残差puが閾値R_TH以上の場合は、閾値R_THの二値化データと(pu-R_TH)の値を指数ゴロム(Exponential-Golomb)等を用いて二値化する。
 例えば、三次元データ符号化装置は、閾値R_THが63であり、予測残差puが63より小さい場合は、予測残差puを6bitで二値化する。また、三次元データ符号化装置は、予測残差puが63以上である場合は、閾値R_THの二値データ(111111)と(pu-63)とを指数ゴロムを用いて二値化することで算術符号化を行う。
 より具体的な例では、三次元データ符号化装置は、予測残差puが32である場合、6bitの二値データ(100000)を生成し、このビット列を算術符号化する。また、三次元データ符号化装置は、予測残差puが66の場合、閾値R_THの二値データ(111111)と値3(66-63)を指数ゴロムで表したビット列(00100)とを生成し、このビット列(111111+00100)を算術符号化する。
 このように、三次元データ符号化装置は、予測残差の大きさに応じて二値化の方法を切替えることで、予測残差が大きくなった場合の二値化ビット数の急激な増加を抑えながら符号化することが可能となる。なお、三次元データ符号化装置は、閾値R_THをビットストリームのヘッダ等に付加してもよい。
 例えば、高ビットレートで符号化が行われる場合、つまり、量子化スケールが小さい場合、量子化誤差が小さく予測精度が高くなり、結果として予測残差が大きくならない可能性がある。よって、この場合には、三次元データ符号化装置は、閾値R_THを大きく設定する。これにより、閾値R_THの二値化データを符号化する可能性が低くなり、符号化効率が向上する。逆に、低ビットレートで符号化が行われる場合、つまり、量子化スケールが大きい場合、量子化誤差が大きく予測精度が悪くなり、結果として予測残差が大きくなる可能性がある。よって、この場合には、三次元データ符号化装置は、閾値R_THを小さく設定する。これにより、二値化データの急激なビット長増加を防ぐことができる。
 また、三次元データ符号化装置は、LoD毎に閾値R_THを切り替え、LoD毎の閾値R_THをヘッダ等に付加してもよい。つまり、三次元データ符号化装置は、LoD毎に二値化の方法を切替えてもよい。例えば、上位層では三次元点間の距離が遠いため、予測精度が悪く結果として予測残差が大きくなる可能性がある。よって、三次元データ符号化装置は、上位層に対しては閾値R_THを小さく設定することで二値化データの急激なビット長増加を防ぐ。また、下位層では三次元点間の距離が近いため、予測精度が高く結果として予測残差が小さくなる可能性がある。よって、三次元データ符号化装置は、階層に対しては閾値R_THを大きく設定することで符号化効率を向上する。
 図80は、指数ゴロム符号の一例を示す図であって、二値化前の値(多値)と、二値化後のビット(符号)との関係を示す図である。なお、図80に示す0と1とを反転させてもよい。
 また、三次元データ符号化装置は、予測残差の二値化データに算術符号化を適用する。これにより、符号化効率を向上できる。なお、算術符号化の適用時に、二値化データのうち、nビットで二値化した部分であるnビット符号(n-bit code)と、指数ゴロムを用いて二値化した部分である残り符号(remaining code)とで、各ビットの0と1の出現確率の傾向は異なる可能性がある。よって、三次元データ符号化装置は、nビット符号と残り符号とで、算術符号化の適用方法を切替えてもよい。
 例えば、三次元データ符号化装置は、nビット符号に対しては、ビット毎に異なる符号化テーブル(確率テーブル)を用いて算術符号化を行う。この際、三次元データ符号化装置は、ビット毎に使用する符号化テーブルの数を変えてもよい。例えば、三次元データ符号化装置は、nビット符号の先頭ビットb0には1個の符号化テーブルを用いて算術符号化を行う。また、三次元データ符号化装置は、次のビットb1に対しては2個の符号化テーブルを用いる。また、三次元データ符号化装置は、b0の値(0又は1)に応じてビットb1の算術符号化に用いる符号化テーブルを切替える。同様に、三次元データ符号化装置は、更に次のビットb2に対しては4個の符号化テーブルを用いる。また、三次元データ符号化装置は、b0及びb1の値(0~3)に応じて、ビットb2の算術符号化に用いる符号化テーブルを切替える。
 このように、三次元データ符号化装置は、nビット符号の各ビットbn-1を算術符号化する際に、2n-1個の符号化テーブルを用いる。また、三次元データ符号化装置は、bn-1より前のビットの値(発生パターン)に応じて、使用する符号化テーブルを切替える。これにより、三次元データ符号化装置は、ビット毎に適切な符号化テーブルを使用できるので、符号化効率を向上できる。
 なお、三次元データ符号化装置は、各ビットで使用する符号化テーブルの数を削減してもよい。例えば、三次元データ符号化装置は、各ビットbn-1を算術符号化する際に、bn-1より前のmビット(m<n-1)の値(発生パターン)に応じて2個の符号化テーブルを切替えてもよい。これにより各ビットで使用する符号化テーブルの数を抑えつつ、符号化効率を向上できる。なお、三次元データ符号化装置は、各符号化テーブルにおける0と1の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。また、三次元データ符号化装置は、一部のビットの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。
 例えば、nビット符号がb0b1b2…bn-1である場合、b0用の符号化テーブルは1個(CTb0)である。b1用の符号化テーブルは2個(CTb10、CTb11)である。また、b0の値(0~1)に応じて使用する符号化テーブルが切替えられる。b2用の符号化テーブルは、4個(CTb20、CTb21、CTb22、CTb23)である。また、b0及びb1の値(0~3)に応じて使用する符号化テーブルが切替えられる。bn-1用の符号化テーブルは2n-1個(CTbn0、CTbn1、…、CTbn(2n-1-1))である。また、b0b1…bn-2の値(0~2n-1-1)に応じて使用する符号化テーブルを切替えられる。
 なお、三次元データ符号化装置は、nビット符号に対しては、二値化せずに0~2-1の値を設定するm-aryによる算術符号化(m=2)を適用してもよい。また、三次元データ符号化装置が、nビット符号をm-aryで算術符号化する場合は、三次元データ復号装置もm-aryの算術復号によりnビット符号を復元してもよい。
 図81は、例えば、残り符号が指数ゴロム符号の場合の処理を説明するための図である。指数ゴロムを用いて二値化した部分である残り符号は、図81に示すようにprefix部とsuffix部とを含む。例えば、三次元データ符号化装置は、prefix部とsuffix部とで符号化テーブルを切替える。つまり、三次元データ符号化装置は、prefix部に含まれる各ビットを、prefix用の符号化テーブルを用いて算術符号化し、suffix部に含まれる各ビットを、suffix用の符号化テーブルを用いて算術符号化する。
 なお、三次元データ符号化装置は、各符号化テーブルにおける0と1の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。または、三次元データ符号化装置は、どちらかの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ符号化装置は、prefix部に対して発生確率を更新し、suffix部に対して発生確率を固定化してもよい。
 また、三次元データ符号化装置は、量子化後の予測残差を、逆量子化及び再構成することで復号し、復号した予測残差である復号値を符号化対象の三次元点以降の予測に利用する。具体的には、三次元データ符号化装置は、量子化後の予測残差(量子化値)に量子化スケールを乗算することで逆量子化値を算出し、逆量子化値と予測値とを加算して復号値(再構成値)を得る。
 例えば、点a2の逆量子化値a2iqは、点a2の量子化値a2qを用いて(式H11)により算出される。点b2の逆量子化値b2iqは、点b2の量子化値b2qを用いて(式H12)により算出される。ここで、QS_LoD0は、LoD0用のQSであり、QS_LoD1は、LoD1用のQSである。つまり、LoDに応じてQSが変更されてもよい。
 a2iq=a2q×QS_LoD0 ・・・(式H11)
 b2iq=b2q×QS_LoD1 ・・・(式H12)
 例えば、点a2の復号値a2recは、(式H13)に示すように、点a2の逆量子化値a2iqに、点a2の予測値a2pを加算することで算出される。点b2の復号値b2recは、(式H14)に示すように、点b2の逆量子化値b2iqに、点b2の予測値b2pを加算することで算出される。
 a2rec=a2iq+a2p ・・・(式H13)
 b2rec=b2iq+b2p ・・・(式H14)
 以下、本実施の形態に係るビットストリームのシンタックス例を説明する。図82は、本実施の形態に係る属性ヘッダ(attribute_header)のシンタックス例を示す図である。属性ヘッダは、属性情報のヘッダ情報である。図82に示すように、属性ヘッダは、階層数情報(NumLoD)と、三次元点数情報(NumOfPoint[i])と、階層閾値(Thres_Lod[i])と、周囲点数情報(NumNeighborPoint[i])と、予測閾値(THd[i])と、量子化スケール(QS[i])と、二値化閾値(R_TH[i])とを含む。
 階層数情報(NumLoD)は、用いられるLoDの階層数を示す。
 三次元点数情報(NumOfPoint[i])は、階層iに属する三次元点の数を示す。なお、三次元データ符号化装置は、三次元点の総数を示す三次元点総数情報(AllNumOfPoint)を別のヘッダに付加してもよい。この場合、三次元データ符号化装置は、最下層に属する三次元点の数を示すNumOfPoint[NumLoD-1]をヘッダに付加しなくてもよい。この場合、三次元データ復号装置は、(式H15)によりNumOfPoint[NumLoD-1]を算出できる。これにより、ヘッダの符号量を削減できる。
Figure JPOXMLDOC01-appb-M000004
 階層閾値(Thres_Lod[i])は、階層iの設定に用いられる閾値である。三次元データ符号化装置及び三次元データ復号装置は、LoDi内の各点の間の距離が閾値Thres_LoD[i]より大きくなるようにLoDiを構成する。また、三次元データ符号化装置は、Thres_Lod[NumLoD-1](最下層)の値をヘッダに付加しなくてもよい。この場合、三次元データ復号装置は、Thres_Lod[NumLoD-1]の値を0と推定する。これによりヘッダの符号量を削減できる。
 周囲点数情報(NumNeighorPoint[i])は、階層iに属する三次元点の予測値の生成に用いる周囲の点数の上限値を示す。三次元データ符号化装置は、周囲の点数MがNumNeighorPoint[i]に満たない場合(M<NumNeighorPoint[i])は、M個の周囲の点数を用いて予測値を算出してもよい。また、三次元データ符号化装置は、各LoDでNumNeighorPoint[i]の値を分ける必要がない場合は、全てのLoDで使用される1個の周囲点数情報(NumNeighorPoint)をヘッダに付加してもよい。
 予測閾値(THd[i])は、階層iにて符号化又は復号対象の対象三次元点の予測に用いる周囲の三次元点と対象三次元点との距離の上限値を示す。三次元データ符号化装置及び三次元データ復号装置は、対象三次元点からの距離がTHd[i]より離れている三次元点を予測に用いない。なお、三次元データ符号化装置は、各LoDでTHd[i]の値を分ける必要がない場合は、全てのLoDで使用される1個の予測閾値(THd)をヘッダに付加してもよい。
 量子化スケール(QS[i])は、階層iの量子化及び逆量子化で用いられる量子化スケールを示す。
 二値化閾値(R_TH[i])は、階層iに属する三次元点の予測残差の二値化方法を切替えるための閾値である。例えば、三次元データ符号化装置は、予測残差が閾値R_THより小さい場合は、固定ビット数で予測残差puを二値化し、予測残差が閾値R_TH以上の場合は、閾値R_THの二値化データと(pu-R_TH)の値を、指数ゴロムを用いて二値化する。なお、各LoDでR_TH[i]の値を切替える必要がない場合は、三次元データ符号化装置は、全てのLoDで使用される1個の二値化閾値(R_TH)をヘッダに付加してもよい。
 なお、R_TH[i]はnbitで表せる最大値であってもよい。例えば6bitではR_THは63であり、8bitではR_THは255である。また、三次元データ符号化装置は、二値化閾値としてnbitで表せる最大値を符号化する代わりに、ビット数を符号化してもよい。例えば、三次元データ符号化装置は、R_TH[i]=63の場合は値6を、R_TH[i]=255の場合は値8をヘッダに付加してもよい。また、三次元データ符号化装置は、R_TH[i]を表すビット数の最小値(最小ビット数)を定義し、最小値からの相対ビット数をヘッダに付加してもよい。例えば、三次元データ符号化装置は、R_TH[i]=63で最小ビット数が6の場合は値0をヘッダに付加し、R_TH[i]=255で最小ビット数が6の場合は値2をヘッダに付加してもよい。
 また、三次元データ符号化装置は、NumLoD、Thres_Lod[i]、NumNeighborPoint[i]、THd[i]、QS[i]及びR_TH[i]の少なくとも一つをエントロピー符号化してヘッダに付加してもよい。例えば、三次元データ符号化装置は、各値を二値化して算術符号化してもよい。また、三次元データ符号化装置は、処理量を抑えるために各値を固定長で符号化してもよい。
 また、三次元データ符号化装置は、NumLoD、Thres_Lod[i]、NumNeighborPoint[i]、THd[i]、QS[i]、及びR_TH[i]の少なくとも一つをヘッダに付加しなくてもよい。例えば、これらのうちの少なくとも一つの値が、規格等のprofile又はlevel等で規定されてもよい。これによりヘッダのビット量を削減することができる。
 図83は、本実施の形態に係る属性データ(attribute_data)のシンタックス例を示す図である。この属性データは、複数の三次元点の属性情報の符号化データを含む。図83に示すように属性データは、nビット符号(n-bit code)と、残り符号(remaining code)とを含む。
 nビット符号は(n-bit code)は、属性情報の値の予測残差の符号化データ又はその一部である。nビット符号のビット長はR_TH[i]の値に依存する。例えばR_TH[i]の示す値が63の場合、nビット符号は6bitであり、R_TH[i]の示す値が255の場合、nビット符号は8bitである。
 残り符号(remaining code)は、属性情報の値の予測残差の符号化データのうち、指数ゴロムで符号化された符号化データである。この残り符号は、nビット符号がR_TH[i]と同じ場合に符号化又は復号される。また、三次元データ復号装置は、nビット符号の値と残り符号の値を加算して予測残差を復号する。なお、nビット符号がR_TH[i]と同じ値でない場合は、残り符号は符号化又は復号されなくてもよい。
 以下、三次元データ符号化装置における処理の流れを説明する。図84は、三次元データ符号化装置による三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、複数のフレームを結合する(S5601)。例えば、三次元データ符号化装置は、入力された複数のフレームに属する複数の三次元点群を1つの三次元点群に結合する。なお、三次元データ符号化装置は、結合時に、各三次元点群に、各三次元点群が属するフレームを示すフレームインデックスを付加する。
 次に、三次元データ符号化装置は、フレーム結合後の位置情報(geometry)を符号化する(S5602)。例えば、三次元データ符号化は、8分木表現を用いて符号化を行う。
 三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割り当てする(S5603)。例えば、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間することで再割り当てを行う。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をN個検出し、N個の三次元点の属性情報の値を重み付け平均する。例えば、三次元データ符号化装置は、重み付け平均において、変化後の三次元位置から各N個の三次元までの距離に基づいて重みを決定する。そして、三次元データ符号化装置は、重み付け平均により得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって2個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の三次元点の属性情報の値として、変化前の2個以上の三次元点の属性情報の平均値を割当ててもよい。
 次に、三次元データ符号化装置は、再割り当て後の属性情報(Attribute)を符号化する(S5604)。ここで、三次元データ符号化装置は、複数の三次元点のそれぞれについて、当該三次元点のフレームインデックスを当該三次元点の属性情報として符号化する。また、例えば、三次元データ符号化装置は、複数種類の属性情報を符号化する場合は、複数種類の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率とフレームインデックスとを符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加し、かつ、反射率の符号化結果の後にフレームインデックスの符号化結果を付加したビットストリームを生成してもよい。なお、ビットストリームに付加される属性情報の複数の符号化結果の順番は、この順に限らず、どのような順番でもよい。また、三次元データ符号化装置は、フレームインデックスを、色または反射率のような、フレームインデックスと異なる他の属性情報と同じデータ形式で、属性情報として符号化する。このため、符号化データは、フレームインデックスを、フレームインデックスと異なる他の属性情報と同じデータ形式で含む。
 また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数種類の属性情報を並列に符号化し、符号化結果を1つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数種類の属性情報を符号化できる。
 図85は、属性情報符号化処理(S5604)のフローチャートである。まず、三次元データ符号化装置は、LoDを設定する(S5611)。つまり、三次元データ符号化装置は、各三次元点を複数のLoDのいずれかに割り当てる。
 次に、三次元データ符号化装置は、LoD単位のループを開始する(S5612)。つまり、三次元データ符号化装置は、LoD毎にステップS5613~S5621の処理を繰り返し行う。
 次に、三次元データ符号化装置は、三次元点単位のループを開始する(S5613)。つまり、三次元データ符号化装置は、三次元点毎にステップS5614~S5620の処理を繰り返し行う。
 まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S5614)。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S5615)。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する(S5616)。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する(S5617)。次に、三次元データ符号化装置は、量子化値を算術符号化する(S5618)。
 また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する(S5619)。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する(S5620)。次に、三次元データ符号化装置は、三次元点単位のループを終了する(S5621)。また、三次元データ符号化装置は、LoD単位のループを終了する(S5622)。
 以下、上記の三次元データ符号化装置により生成されたビットストリームを復号する三次元データ復号装置における三次元データ復号処理について説明する。
 三次元データ復号装置は、三次元データ符号化装置によって生成されたビットストリーム内の属性情報の二値化データを、三次元データ符号化装置と同様の方法で算術復号することで、復号された二値化データを生成する。なお、三次元データ符号化装置において、nビットで二値化した部分(nビット符号)と、指数ゴロムを用いて二値化した部分(残り符号)とで算術符号化の適用方法を切替えた場合は、三次元データ復号装置は、算術復号適用時に、それに合わせて復号を行う。
 例えば、三次元データ復号装置は、nビット符号の算術復号方法において、ビット毎に異なる符号化テーブル(復号テーブル)を用いて算術復号を行う。この際、三次元データ復号装置は、ビット毎に使用する符号化テーブルの数を変えてもよい。例えば、nビット符号の先頭ビットb0には1個の符号化テーブルを用いて算術復号を行う。また、三次元データ復号装置は、次のビットb1に対しては2個の符号化テーブルを用いる。また、三次元データ復号装置は、b0の値(0又は1)に応じてビットb1の算術復号に用いる符号化テーブルを切替える。同様に、三次元データ復号装置は、更に次のビットb2に対しては4個の符号化テーブルを用いる。また、三次元データ復号装置は、b0及びb1の値(0~3)に応じて、ビットb2の算術復号に用いる符号化テーブルを切替える。
 このように、三次元データ復号装置は、nビット符号の各ビットbn-1を算術復号する際に、2n-1個の符号化テーブルを用いる。また、三次元データ復号装置は、bn-1より前のビットの値(発生パターン)に応じて、使用する符号化テーブルを切替える。これにより、三次元データ復号装置は、ビット毎に適切な符号化テーブルを使用して符号化効率を向上したビットストリームを適切に復号できる。
 なお、三次元データ復号装置は、各ビットで使用する符号化テーブルの数を削減してもよい。例えば、三次元データ復号装置は、各ビットbn-1を算術復号する際に、bn-1より前のmビット(m<n-1)の値(発生パターン)に応じて2個の符号化テーブルを切替えてもよい。これにより、三次元データ復号装置は、各ビットで使用する符号化テーブルの数を抑えつつ、符号化効率を向上したビットストリームを適切に復号できる。なお、三次元データ復号装置は、各符号化テーブルにおける0と1の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。また、三次元データ復号装置は、一部のビットの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。
 例えば、nビット符号がb0b1b2…bn-1である場合、b0用の符号化テーブルは1個(CTb0)である。b1用の符号化テーブルは2個(CTb10、CTb11)である。また、b0の値(0~1)に応じて符号化テーブルが切替えられる。b2用の符号化テーブルは4個(CTb20、CTb21、CTb22、CTb23)である。また、b0及びb1の値(0~3)に応じて符号化テーブルが切替えられる。bn-1用の符号化テーブルは、2n-1個(CTbn0、CTbn1、…、CTbn(2n-1-1))である。また、b0b1…bn-2の値(0~2n-1-1)に応じて符号化テーブルが切替えられる。
 図86は、例えば、残り符号が指数ゴロム符号である場合の処理を説明するための図である。三次元データ符号化装置が指数ゴロムを用いて二値化して符号化した部分(残り符号)は、図86に示すようにprefix部とsuffix部とを含む。例えば、三次元データ復号装置は、prefix部とsuffix部とで符号化テーブルを切替える。つまり、三次元データ復号装置は、prefix部に含まれる各ビットを、prefix用の符号化テーブルを用いて算術復号し、suffix部に含まれる各ビットを、suffix用の符号化テーブルを用いて算術復号する。
 なお、三次元データ復号装置は、各符号化テーブルにおける0と1の発生確率を、復号時に発生した二値化データの値に応じて更新してもよい。または、三次元データ復号装置は、どちらかの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ復号装置は、prefix部に対して発生確率を更新し、suffix部に対して発生確率を固定化してもよい。
 また、三次元データ復号装置は、算術復号した予測残差の二値化データを、三次元データ符号化装置で用いられた符号化方法に合わせて多値化することで量子化後の予測残差(符号なし整数値)を復号する。三次元データ復号装置は、まずnビット符号の二値化データを算術復号することで復号したnビット符号の値を算出する。次に、三次元データ復号装置は、nビット符号の値とR_THの値とを比較する。
 三次元データ復号装置は、nビット符号の値とR_THの値とが一致した場合、指数ゴロムで符号化されたビットが次に存在すると判定し、指数ゴロムで符号化された二値化データである残り符号を算術復号する。そして、三次元データ復号装置は、復号した残り符号から、残り符号とその値との関係を示す逆引きテーブルを用いて残り符号の値を算出する。図87は、残り符号とその値との関係を示す逆引きテーブルの例を示す図である。次に、三次元データ復号装置は、得られた残り符号の値をR_THに加算することで多値化された量子化後の予測残差を得る。
 一方、三次元データ復号装置は、nビット符号の値とR_THの値とが一致しない(R_THより値が小さい)場合、nビット符号の値をそのまま、多値化された量子化後の予測残差に決定する。これにより、三次元データ復号装置は、三次元データ符号化装置で予測残差の値に応じて二値化方法を切替えて生成したビットストリームを適切に復号できる。
 なお、三次元データ復号装置は、閾値R_THがビットストリームのヘッダ等に付加されている場合は、閾値R_THの値をヘッダから復号し、復号した閾値R_THの値を用いて復号方法を切替えてもよい。また、三次元データ復号装置は、LoD毎に閾値R_THがヘッダ等に付加されている場合、LoD毎に復号した閾値R_THを用いて復号方法を切替える。
 例えば、閾値R_THが63であり、復号したnビット符号の値が63である場合、三次元データ復号装置は、残り符号を指数ゴロムにより復号することで残り符号の値を得る。例えば、図87に示す例では、残り符号が00100であり、残り符号の値として3が得られる。次に、三次元データ復号装置は、閾値R_THの値63と、残り符号の値3とを加算することで予測残差の値66を得る。
 また、復号したnビット符号の値が32である場合、三次元データ復号装置は、nビット符号の値32を予測残差の値に設定する。
 また、三次元データ復号装置は、復号した量子化後の予測残差を、例えば、三次元データ符号化装置における処理と逆の処理により、符号なし整数値から符号付整数値に変換する。これにより、三次元データ復号装置は、予測残差をエントロピー符号化する場合に、負の整数の発生を考慮せずに生成したビットストリームを適切に復号できる。なお、三次元データ復号装置は、必ずしも符号なし整数値を符号付整数値に変換する必要はなく、例えば符号ビットを別途エントロピー符号化して生成されたビットストリームを復号する場合は、符号ビットを復号してもよい。
 三次元データ復号装置は、符号付整数値に変換した量子化後の予測残差を、逆量子化及び再構成によって復号することで復号値を生成する。また、三次元データ復号装置は、生成した復号値を、復号対象の三次元点以降の予測に利用する。具体的には、三次元データ復号装置は、量子化後の予測残差に、復号した量子化スケールを乗算することで逆量子化値を算出し、逆量子化値と予測値とを加算して復号値を得る。
 復号された符号なし整数値(符号なし量子化値)は、以下の処理により符号付整数値に変換される。三次元データ復号装置は、復号された符号なし整数値a2uのLSB(least significant bit)が1である場合、符号付整数値a2qを-((a2u+1)>>1)に設定する。三次元データ復号装置は、符号なし整数値a2uのLSBが1でない場合、符号付整数値a2qを(a2u>>1)に設定する。
 同様に、三次元データ復号装置は、復号された符号なし整数値b2uのLSBが1である場合、符号付整数値b2qを-((b2u+1)>>1)に設定する。三次元データ復号装置は、符号なし整数値n2uのLSBが1でない場合、符号付整数値b2qを(b2u>>1)に設定する。
 また、三次元データ復号装置による逆量子化及び再構成処理の詳細は、三次元データ符号化装置における逆量子化及び再構成処理と同様である。
 以下、三次元データ復号装置における処理の流れを説明する。図88は、三次元データ復号装置による三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報(geometry)を復号する(S5631)。例えば、三次元データ復号装置は、8分木表現を用いて復号を行う。
 次に、三次元データ復号装置は、ビットストリームから属性情報(Attribute)を復号する(S5632)。例えば、三次元データ復号装置は、複数種類の属性情報を復号する場合は、複数種類の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として色と反射率とフレームインデックスとを復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果と反射率の符号化結果とフレームインデックスの符号化結果とを復号する。例えば、ビットストリームにおいて、色の符号化結果の後に反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。また、ビットストリームにおいて、反射率の符号化結果の後にフレームインデックスの符号化結果が付加されている場合、三次元データ復号装置は、反射率の符号化結果の復号の後のフレームインデックスの符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
 また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報を、ヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数種類の属性情報を並列に復号し、復号結果を1つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数種類の属性情報を復号できる。
 次に、三次元データ復号装置は、復号した三次元点群を各三次元点の位置情報と共に復号されたフレームインデックスの値を元に複数のフレームに分割する(S5633)。三次元データ復号装置は、例えば復号した三次元点aのフレームインデックスが0の場合は、フレーム0に三次元点aの位置情報および属性情報を加え、復号した三次元点bのフレームインデックスが1の場合は、フレーム1に三次元点bの位置情報および属性情報を加えることで、復号により得られた三次元点群を異なる複数のフレームにそれぞれ属する複数の三次元点群に分割する。
 図89は、属性情報復号処理(S5632)のフローチャートである。まず、三次元データ復号装置は、LoDを設定する(S5641)。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のLoDのいずれかに割り当てる。例えば、この割り当て方法は、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
 次に、三次元データ復号装置は、LoD単位のループを開始する(S5642)。つまり、三次元データ復号装置は、LoD毎にステップS5643~S5649の処理を繰り返し行う。
 次に、三次元データ復号装置は、三次元点単位のループを開始する(S5643)。つまり、三次元データ復号装置は、三次元点毎にステップS5644~S5648の処理を繰り返し行う。
 まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S5644)。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S5645)。なお、これらの処理は三次元データ符号化装置における処理と同様である。
 次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する(S5646)。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する(S5647)。次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する(S5648)。次に、三次元データ復号装置は、三次元点単位のループを終了する(S5649)。また、三次元データ復号装置は、LoD単位のループを終了する(S5650)。
 次に、本実施の形態に係る三次元データ符号化装置及び三次元データ復号装置の構成を説明する。図90は、本実施の形態に係る三次元データ符号化装置5600の構成を示すブロック図である。この三次元データ符号化装置5600は、フレーム結合部5601と、位置情報符号化部5602と、属性情報再割り当て部5603と、属性情報符号化部5604とを備える。
 フレーム結合部5601は、複数のフレームを結合する。位置情報符号化部5602は、入力点群に含まれる複数の三次元点の位置情報(geometry)を符号化する。属性情報再割り当て部5603は、入力点群に含まれる複数の三次元点の属性情報の値を、位置情報の符号化及び復号結果を用いて再割り当てする。属性情報符号化部5604は、再割り当てされた属性情報(attribute)を符号化する。また、三次元データ符号化装置5600は、符号化された位置情報及び符号化された属性情報を含むビットストリームを生成する。
 図91は、本実施の形態に係る三次元データ復号装置5610の構成を示すブロック図である。この三次元データ復号装置5610は、位置情報復号部5611と、属性情報復号部5612と、フレーム分割部5613とを含む。
 位置情報復号部5611は、ビットストリームから複数の三次元点の位置情報(geometry)を復号する。属性情報復号部5612は、ビットストリームから複数の三次元点の属性情報(attribute)を復号する。フレーム分割部5613は、復号した三次元点群を各三次元点の位置情報と共に復号されたフレームインデックスの値を元に複数のフレームに分割する。また、三次元データ復号装置5610は、復号した位置情報と復号した属性情報とを結合することで出力点群を生成する。
 図92は、属性情報の構成を示す図である。図92の(a)は、圧縮された属性情報の構成を示す図であり、図92の(b)は、属性情報のヘッダのシンタックスの一例を示す図であり、図92の(c)は、属性情報のペイロード(データ)のシンタックスの一例を示す図である。
 図92の(b)に示すように、属性情報のヘッダのシンタックスについて説明する。apx_idxは、対応するパラメータセットのIDを示す。apx_idxでは、フレーム毎にパラメータセットがある場合、複数のIDが示されてもよい。offsetは、結合データを取得するためのオフセット位置を示す。other_attribute_informationは、例えば量子化パラメータの差分値を示すQPデルタなどのように、その他の属性データを示す。combine_frame_flagは、符号化データがフレーム結合されているか否かを示すフラグである。number_of _combine_frameは、結合されたフレームの数Nを示す。number_of _combine_frameは、SPSまたはAPSに含まれていてもよい。
 refer_different_frameは、符号化/復号対象の対象三次元点の属性情報を、同一フレーム、または、同一フレームおよび同一フレーム以外に属する周囲三次元点の属性情報を用いて符号化/復号するかを示すフラグである。例えば、下記のような値の割り当てが考えられる。refer_different_frameが0の場合、三次元データ符号化装置または三次元データ復号装置は、対象三次元点と同一フレーム内の周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化/復号する。この場合、三次元データ符号化装置または三次元データ復号装置は、対象三次元点と異なるフレーム内の周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化/復号しない。
 一方、refer_different_frameが1の場合、三次元データ符号化装置または三次元データ復号装置は、対象三次元点が属するフレームと同一フレームおよび同一フレーム以外の周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化/復号する。つまり、三次元データ符号化装置または三次元データ復号装置は、対象三次元点が属するフレームと同一フレームに属するか否かに関わらず、周囲三次元点の属性情報を用いて対象三次元点の属性情報を符号化/復号する。
 対象三次元点の属性情報として、色情報または反射率情報を周囲三次元点の属性情報を用いて符号化する例を示したが、対象三次元点のフレームインデックスを周囲三次元点のフレームインデックスを用いて符号化してもよい。三次元データ符号化装置は、例えば、複数フレームを結合した際に各三次元点に付加したフレームインデックスを各三次元点の属性情報とし、本開示で説明した予測符号化方法を用いて符号化しても構わない。例えば、三次元データ符号化装置は、三次元点Aのフレームインデックスの予測値を、三次元点Aの周囲三次元点B,C,Dのフレームインデックスの値から算出し、予測残差を符号化しても構わない。これにより、三次元データ符号化装置は、フレームインデックスを符号化するためのビット量を削減することができ、符号化効率を向上することができる。
 図93は、符号化データについて説明するための図である。
 点群データが属性情報を含む場合、属性情報がフレーム結合されてもよい。属性情報は、位置情報を参照して符号化または復号される。参照される位置情報は、フレーム結合する前の位置情報であってもよいし、フレーム結合した後の位置情報であってもよい。位置情報の結合フレームの数と属性情報の結合フレームの数とは、同じであってもよいし、独立しており、異なっていてもよい。
 図93における括弧内の数値は、フレームを示しており、例えば1の場合、フレーム1の情報であることを示し、1-4の場合、結合されたフレーム1~4の情報であることを示す。また、Gは、位置情報を示し、Aは、属性情報を示す。Frame_idx1は、フレーム1のフレームインデックスである。
 図93の(a)は、refer_different_frameが1の場合の例を示す。refer_different_frameが1の場合、三次元データ符号化装置または三次元データ復号装置は、G(1-4)の情報を元にA(1-4)を符号化または復号する。三次元データ復号装置は、復号時に、G(1-4)とともに復号されたFrame_idx1-4を用いてG(1-4)とA(1-4)とをFrame1-4に分割する。なお、A(1-4)を符号化または復号する場合、三次元データ符号化装置または三次元データ復号装置は、A(1-4)の他の属性情報を参照してもよい。つまり、三次元データ符号化装置または三次元データ復号装置は、A(1)を符号化または復号する場合、他のA(1)を参照してもよいし、A(2-4)を参照してもよい。また、矢印は、情報の参照元と参照先とを示し、矢印の元は参照元を示し、矢印の先は参照先を示す。
 図93の(b)は、refer_different_frameが0の場合の例を示す。refer_different_frameが0の場合、refer_different_frameが1の場合とは異なり、三次元データ符号化装置または三次元データ復号装置は、異なるフレームの属性情報を参照しない。つまり、三次元データ符号化装置または三次元データ復号装置は、A(1)を符号化または復号する場合、他のA(1)を参照し、A(2-4)を参照しない。
 図93の(c)は、refer_different_frameが0の場合の別の例を示す。この場合では、位置情報は、結合されたフレームで符号化されているが、属性情報は、フレーム毎に符号化されている。このため、三次元データ符号化装置または三次元データ復号装置は、A(1)を符号化または復号する場合、他のA(1)を参照する。同様に、属性情報を符号化または復号する場合、同じフレームに属する他の属性情報を参照する。なお、A(1-4)は、それぞれのAPSをヘッダに付加してもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図94に示す処理を行う。三次元データ符号化装置は、第1点群データと第2点群データとが結合された第3点群データであって、第3点群データに含まれる複数の三次元点のそれぞれの位置情報と、複数の三次元点のそれぞれが第1点群データと第2点群データとのいずれに属するかを示す識別情報とを含む第3点群データを取得する(S5661)。次に、三次元データ符号化装置は、取得された第3点群データを符号化することで符号化データを生成する(S5662)。三次元データ符号化装置は、符号化データの生成において、複数の三次元点のそれぞれについて、当該三次元点の識別情報を当該三次元点の属性情報として符号化する。
 これによれば、当該三次元データ符号化方法は、複数の点群データをまとめて符号化することにより符号化効率を向上することができる。
 例えば、符号化データの生成(S5662)では、複数の三次元点のうちの第1三次元点の周囲の第2三次元点の属性情報を用いて、第1三次元点の属性情報を符号化する。
 例えば、第1三次元点の属性情報は、第1三次元点が第1点群データに属することを示す第1識別情報を含む。また、第2三次元点の属性情報は、第2三次元点が第2点群データに属することを示す第2識別情報を含む。
 例えば、符号化データの生成(S5662)では、第1三次元点の属性情報の予測値を第2三次元点の属性情報を用いて算出し、第1三次元点の属性情報と、予測値との差分である予測残差を算出し、予測残差を含む符号化データを生成する。
 例えば、取得(S5661)では、第1点群データと第2点群データとを結合することで第3点群データを生成することで、第3点群データを取得する。
 例えば、符号化データは、識別情報を、識別情報と異なる他の属性情報と同じデータ形式で含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図95に示す処理を行う。三次元データ復号装置は、符号化データを取得する(S5671)。次に、三次元データ復号装置は、符号化データを復号することで、第1点群データと第2点群データとが結合された第3点群データに含まれる複数の三次元点のそれぞれの位置情報および属性情報とを取得する(S5672)。なお、属性情報は、属性情報に対応する三次元点が第1点群データと第2点群データとのいずれに属するかを示す識別情報を含む。
 これによれば、三次元データ復号装置は、複数の点群データをまとめて符号化することにより符号化効率を向上した符号化データを復号することができる。
 例えば、取得(S5671)では、複数の三次元点のうちの第1三次元点の周囲の第2三次元点の属性情報を用いて、第1三次元点の属性情報を復号する。
 例えば、第1三次元点の属性情報は、第1三次元点が第1点群データに属することを示す第1識別情報を含む。また、第2三次元点の属性情報は、第2三次元点が第2点群データに属することを示す第2識別情報を含む。
 例えば、符号化データは、予測残差を含む。そして、符号化データの復号(S5672)では、第1三次元点の属性情報の予測値を第2三次元点の属性情報を用いて算出し、予測値と予測残差とを加算することで、第1三次元点の属性情報を算出する。
 例えば、三次元データ復号装置は、さらに、識別情報を用いて、第3三次元点群データと、第1点群データと第2点群データとに分割する。
 例えば、符号化データは、識別情報を、識別情報と異なる他の属性情報と同じデータ形式で含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態7)
 上述したように、複数フレームを結合した際に各三次元点に付加するフレームインデックス(frame_idx)を、各三次元点の位置情報でなく、新たな属性情報として格納する場合において、本開示で説明した予測符号化方法を用いて符号化を行う方法の具体例を説明する。
 図96は、本実施の形態に係る符号化データ(ビットストリーム)の例を示す図である。例えば、三次元データ符号化装置は、図96に示すように、点群データが位置情報G(Geometry)と第1の属性情報A1(Attribute)(例えば色)を持つ場合においてフレーム結合を適用する場合、フレームインデックスを第2の属性情報A2として符号化する。また、三次元データ符号化装置は、SPS(シーケンスパラメータセット)に当該属性情報のタイプがフレームインデックスであることを示す識別情報を格納する。つまり、識別情報は、複数の属性情報のうち、フレームインデックスが含まれる(フレームインデックスを示す)属性情報を示す。言い換えると、識別情報は、複数の属性情報の各々が、フレームインデックスが含まれる属性情報であるか否かを示す。
 SPSは、複数フレーム(複数の結合フレーム)に共通のパラメータセットであり、位置情報と属性情報とに共通のパラメータセットである。なお、識別情報は、SPS以外の制御情報(メタデータ)に含まれてもよい。例えば、識別情報はAPS等に含まれてもよい。
 なお、図96は、フレーム1~4の4つのフレームを結合した結合フレームを符号化した符号化データの例を示す。同図のG(1-4)は、結合フレームの位置情報である。A1(1-4)は、結合フレームの第1の属性情報であり、例えば色情報である。A2(1-4)は、第2の属性情報であり、フレーム1~4に係るフレームインデックスを示す。
 また、GPS(1-4)は、G(1-4)のパラメータセットであり、APS1(1-4)は、A1(1-4)のパラメータセットであり、APS2(1-4)は、A2(1-4)のパラメータセットである。
 例えば、G(1-4)の情報を用いてA1(1-4)が符号化又は復号される。なお、A1(1-4)は互いに参照されてもよい。また、復号時には、G(1-4)と共に復号されたフレームインデックス1~4を用いてG(1-4)とA(1-4)がフレーム1~4に分割される。
 なお、フレームインデックスを属性情報として送出する際には、必ず可逆の符号化方法を用いると定めてもよい。例えば、可逆の符号化方法とは量子化を行わない符号化方法である。また、フレームインデックスが属性情報である場合は、可逆の符号化となるように量子化パラメータに制約を与えてもよい。なお、三次元データ符号化装置は、使用した符号化方法又は量子化パラメータを示す情報をビットストリームに格納してもよい。
 なお、三次元データ符号化装置は、位置情報、及びフレームインデックス以外の属性情報の一部又は全てに対しては、可逆の符号化方法を用いてもよいし、不可逆の符号化方法を用いてもよい。
 なお、三次元データ符号化装置は、フレームインデックス以外にも、フレーム毎の情報を第2の属性情報として送出してもよい。例えば、フレーム毎の情報とは、フレームデータの生成時間、符号化時間、或いは復号時間などを示すタイムスタンプである。または、フレーム毎の情報とは、フレームデータを取得した際のセンサ情報である。センサ情報とは、センサのスピード、加速度、位置情報、又は向き等を含む。
 次に、色又は反射率などの属性情報をもたない三次元点群を圧縮する例を説明する。図97は、この場合の符号化データの例を示す図である。
 三次元データ符号化装置は、フレーム結合を行う際には、属性情報A1を生成し、生成した属性情報A1を含む符号化データを送出する。ここで、属性情報A1は、フレームインデックスを示す。
 なお、三次元データ符号化装置は、結合フレームの数が可変である場合において、結合フレーム数が1である場合には、フレームインデックスを生成しなくてもよい。この場合、三次元データ復号装置は、フレームインデックスを示す属性情報は存在しない場合には、結合フレーム数が1であると判断してもよい。
 以下、動き補償を行う三次元データ符号化装置について説明する。例えば、移動体が有するライダー(LiDAR)などを用いて時間的に異なる1以上の点群データが取得される場合、第1の点群を構成するオブジェクトと第2の点群を構成するオブジェクトが移動する場合がある。このような異なるPCC点群又は点群フレームを結合する場合、点群内の対象物の動きが遅い場合には、8分木(Octree)を共有できる可能性が高く、対象物の動きが早い場合には、8分木を共有できない可能性が高い。
 そこで、三次元データ符号化装置は、異なるフレーム間の動きを予測し、動きに基づき点群を補正した後に点群を結合する。図98は、この場合の三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、動き予測によりフレーム間の動きを予測することでフレーム間の動きを示す動きベクトル(動き情報)を算出する(S5801)。例えば、三次元データ符号化装置は、現在のフレームの点群と過去のフレームの点群とを比較することで動きベクトルを生成する。具体的には、三次元データ符号化装置は、2つのフレームに含まれる同一のオブジェクトの位置を検出し、検出した位置の差に基づく動きを判定する。なお、三次元データ符号化装置は、点群の比較において、フレームに含まれる点群のうち一部の点群を用いてもよいし、全ての点群を用いてもよい。また、三次元データ符号化装置は、位置情報又は属性情報を用いて特徴点を抽出し、特徴点の動きを予測してもよい。
 次に、三次元データ符号化装置は、算出された動きベクトルを用いて動き補償を行う(S5802)。図99は、この動き補償及びフレーム結合の例を示す図である。同図の(a)は、動き補償を行わない場合の例であり、同図の(b)は動き補償を行う場合の例である。例えば、同図の(b)に示すように、三次元データ符号化装置は、フレーム1からフレーム2の点群の動きを予測し、フレーム2の点群の位置を動きの分だけ移動させることで、フレーム2の点群の位置を補正する。
 次に、三次元データ符号化装置は、フレーム1と補正後のフレーム2を結合することで結合フレームを生成する(S5803)。次に、三次元データ符号化装置は、結合フレームの位置情報を符号化する(S5804)。
 次に、三次元データ符号化装置は、属性情報を変換し(S5805)、変換後の属性情報を符号化する(S5806)。なお、属性情報の変換では、例えば、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする処理等が行われる。
 次に、動き補償を行う三次元データ復号装置について説明する。図100は、三次元データ符号化装置5800から三次元データ復号装置5810への動きベクトルの送信の例を示す図である。図101は、符号化データ(ビットストリーム)の例を示す図である。
 三次元データ符号化装置5800は、動きベクトルをGPSなどのフレームごとの制御情報(メタデータ)に格納して送出する。なお、三次元データ符号化装置5800は、動きベクトルを、位置情報のヘッダに格納してもよいし、位置情報のペイロード内に格納してもよい。または、三次元データ符号化装置5800は、動きベクトルを、SPS又はAPSなどの他の制御情報に格納してもよい。例えば、三次元データ符号化装置5800は、図101に示すように、GPS内に、結合するフレーム毎の動きベクトルを格納する。
 図102は、本実施の形態に係る三次元データ復号装置5810の構成を示すブロック図である。三次元データ復号装置5810は、位置情報復号部5811と、属性情報復号部5812と、フレーム分割部5813と、動き補正部5814とを備える。
 位置情報復号部5811は、ビットストリームから位置情報を復号する。属性情報復号部5812は、ビットストリームから属性情報を復号する。フレーム分割部5813は、復号された結合フレーム(位置情報及び属性情報)を複数フレームに分割する。動き補正部5814は、分割後の複数フレームを、動きベクトルを用いて補正することで、複数のフレームの点群データを生成する。つまり、動き補正部5814は、動きベクトルを用いて、三次元データ符号化装置においてシフトした点の位置を元の位置に戻す処理を行う。
 次に、動きベクトルの算出方法の例を説明する。図103は、動きベクトルの算出方法の例を示す図である。図103の点線枠は、フレーム結合するフレーム群を示す。
 例えば、同図の(a)に示すように、三次元データ符号化装置は、現在のフレームと、現在のフレームの一つ前のフレームとを比較して動きベクトルを導出及び送出してもよい。この場合、例えば、三次元データ符号化装置は、先頭のフレームに対しては動きベクトルを導出及び送出を行わない。または、同図の(c)に示すように、三次元データ符号化装置は、先頭フレームに対しても前のフレームと比較して動きベクトルを導出及び送出してもよい。また、三次元データ符号化装置は、同図の(b)のように、現在のフレームと、結合するフレーム群の先頭フレームとを比較して動きベクトルを導出及び送出してもよい。
 図104は、インター予測が適用される場合の動きベクトルの算出方法の例を示す図である。インター予測が適用される場合は、三次元データ符号化装置は、例えば、現在のフレームとGOF先頭のフレームとを比較し動きベクトルを導出してもよい。また、三次元データ符号化装置は、GOF先頭間の動きベクトルを導出してもよい。ここでGOFとは複数フレームを含む処理単位であり、例えば、Iフレームを含むランダムアクセス単位である。
 なお、三次元データ符号化装置は、動きベクトルを、点群の情報から生成してもよいし、点群を取得した際のセンサの位置情報、速度及び加速度などのいずれかの情報又は複数の情報に基づいて算出してもよい。
 次に、タイル分割を用いる場合について説明する。大規模点群をタイルに分割する場合、タイルごとに、フレーム間の動きベクトルの大きさが異なる場合がある。
 よって、三次元データ符号化装置は、タイルごとに動きベクトルを適用するか否かを決定してもよい。三次元データ符号化装置は、動きベクトルの導出方法、又は補償方法をタイルごとに変えてもよい。例えば、三次元データ符号化装置は、タイルごとに動きベクトルを導出することにより、動きベクトルの大きいタイルと動きベクトルの小さいタイルが存在する場合でも適切な動き補償を適用できる。
 また、三次元データ符号化装置は、各タイルに対し、動きベクトルを適用したか否か、動きベクトルの導出方法又は補償方法などを示す信号をビットストリームに格納してもよい。
 なお、動き補償を行った際に、位置のオフセットにより、点群の集合の領域が大きくなる可能性がある。その場合は、三次元データ符号化装置は、バウンディングボックスを拡張してもよいし、バウンディングボックスを拡張せずに、既存のバウンディングボックス内の位置に点群の位置を変換してもよい。
 図105は、この場合の符号化データの例を示す図である。図105に示すように、例えば、各タイルの動きベクトルがGPS等に格納されてもよい。
 図106は、動き補償を適用するタイルの例を示す図である。図106に示すように、例えば、三次元データ符号化装置は、車両等の移動体に近いタイルに対しては動き補償を適用せず、移動体から離れたタイルに対して動き補償を適用する。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図107に示す処理を行う。まず、三次元データ符号化装置は、第1点群データと第2点群データとが結合された第3点群データを符号化することで符号化データを生成する(S5811)。三次元データ符号化装置は、符号化データと制御情報とを含むビットストリームを生成する(S5812)。符号化データは、第3点群データに含まれる複数の三次元点の各々の位置情報と複数の属性情報とを含む。複数の属性情報の一つは、対応する三次元点が第1点群データと第2点群データとのいずれに属するかを示す第1情報(例えばフレームインデックス)を含む。制御情報は、複数の属性情報のうち、第1情報が含まれる属性情報を示す第2情報(例えば識別情報)を含む。
 これによれば、三次元データ符号化装置により生成されたビットストリームを復号する三次元データ復号装置は、複数の属性情報のいずれかに第1情報が含まれる場合において、制御情報に含まれる第2情報を用いて、第1情報が含まれる属性情報を容易に判定できる。よって、三次元データ符号化装置は、三次元データ復号装置の処理量を低減できる。
 例えば、制御情報は、複数フレームに共通の制御情報(例えばSPS)である。例えば、第3点群データは複数時刻の複数の点群データであり、制御情報は、当該複数の点群データに共通の制御情報である。
 例えば、三次元データ符号化装置は、第1情報が含まれる属性情報を、可逆の符号化方法を用いて符号化する。例えば、三次元データ符号化装置は、可逆の符号化方法が用いられるように量子化パラメータを設定する。例えば、三次元データ符号化装置は、設定した量子化パラメータを示す情報をビットストリームに格納する。
 例えば、三次元データ符号化装置は、第1点群データと第2点群データとの間の動きを示す動き情報(例えば動きベクトル)を用いて、第2点群データに含まれる点群の位置を補正し、第1点群データと、補正後の第2点群データとを統合することで第3点群データを生成し、符号化データは、動き情報を含む。
 これによれば、三次元データ符号化装置は、結合する点群の位置を近づけることができるので符号化効率を向上できる。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図108に示す処理を行う。まず、三次元データ復号装置は、ビットストリームから、第1点群データと第2点群データとが結合された第3点群データに含まれる複数の三次元点の各々の位置情報と複数の属性情報とを含む符号化データを取得する(S5821)。三次元データ復号装置は、ビットストリームに含まれる制御情報から、複数の属性情報のうち、対応する三次元点が第1点群データと第2点群データとのいずれに属するかを示す第1情報(例えばフレームインデックス)を含む属性情報を示す第2情報(例えば識別情報)を取得する(S5822)。三次元データ復号装置は、第2情報を用いて第1情報を取得する(S5823)。例えば、三次元データ復号装置は、第2情報を用いて第1情報を含む属性情報を特定し、特定した属性情報から第1情報を取得する。
 これによれば、三次元データ復号装置は、複数の属性情報のいずれかに第1情報が含まれる場合において、制御情報に含まれる第2情報を用いて、第1情報が含まれる属性情報を容易に判定できる。よって、三次元データ復号装置は、処理量を低減できる。
 例えば、制御情報は、複数フレームに共通の制御情報(例えばSPS)である。
 例えば、第1情報が含まれる属性情報は、可逆の符号化方法を用いて符号化されている。例えば、三次元データ復号装置は、可逆の符号化方法用いて符号化された属性情報を、当該可逆の符号化方法に対応する復号方法を用いて復号する。
 例えば、可逆の符号化方法が用いられるように量子化パラメータが設定されている。例えば、三次元データ復号装置は、可逆の符号化方法が用いられるように設定された量子化パラメータを示す情報をビットストリームから取得し、当該量子化パラメータを用いて上記復号方法を用いて属性情報を復号する。
 例えば、三次元データ復号装置は、第1情報を用いて、第3点群データから第1点群データと第2点群データとを分離する。
 例えば、三次元データ復号装置は、ビットストリームから、第1点群データと第2点群データとの間の動きを示す動き情報を取得し、動き情報を用いて、第2点群データに含まれる点群の位置を補正する。
 これによれば、三次元データ復号装置は、結合する点群の位置を近づけることで符号化効率が向上されたビットストリームを復号できる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態8)
 本実施の形態では、属性情報の構成が変化する場合の符号化方法について説明する。図109は、フレーム結合時におけるフレームインデックスの例を示す図である。
 複数のフレームを1つのフレームに結合し、結合したフレームを符号化するフレーム結合符号化方法では、例えば、結合後のフレームに含まれる各三次元点が結合前に属していたフレームを示すフレームインデックスが属性情報として各三次元点に付加される。また、図109に示すように、フレーム結合が行われるフレーム(#1~#4、#7~#8)と、フレーム結合が行われないフレーム(#5~#6)とが混在する場合が想定される。また、結合されるフレームの数が適応的に変更される場合が想定される。
 フレーム結合後の第2点群データは、点毎に点がどのフレームに属するかを示すフレームインデックス(FrameIndex)を含む。フレーム結合されていないフレーム(#5、#6)の第2点群データは、点が属するフレームが一意に決まるため、これらのフレームに対して、(1B)予め定められた固定値を示すフレームインデックスを各点に付加する方法(図109では「FrameIndex固定値」と表記)と、(2)フレームインデックスを付加しない方法(図109では「FrameIndex無」と表記)とが想定される。なお、予め定められた固定値(デフォルト値)は、例えば、0であってもよいし、その他の値であってもよい。
 つまり、(1A)特定の属性情報が、全てのフレームに対して存在する通常のケース(例えば、全てのフレームにフレーム結合が行われない、又は全てのフレームにフレーム結合が行わるケース)と、(1B)特定の属性情報として固定値でない通常の値が示されるフレームと、特定の属性情報として固定値が示されるフレームとが混在するケースと、(2)特定の属性情報が存在するフレームと、特定の属性情報が存在しないフレームとが混在するケースと、が想定される。
 なお、本実施の形態では、属性情報がフレームインデックスである例を説明するが、他の属性情報(色又は反射率など)についても同様である。つまり、属性情報は、フレームインデックスであってもよいし、他の属性情報(色又は反射率など)であってもよい。
 図110は、三次元データ符号化装置のブロック図である。図110に示すように三次元データ符号化装置は、前処理部10301と、符号化部10302とを備える。前処理部10301は、第1点群データに対して、フレーム結合、データ合成、量子化、及び変換処理(座標変換等)等の前処理を行うことで、第1点群データを様々なフォーマットの第2点群データに変換する。
 例えば、上記のように、時系列データをフレーム結合した後は、フレーム間でフォーマットが異なる場合もある。あるいは、異なるデータを合成した場合、ある点は特定の属性データを持ち、ある点は特定の属性データを持たないなど、データ内部で、フォーマットが異なる可能性がある。
 符号化部10302における符号化方法又は符号化ツールとして、(2)のフレーム毎に特定の属性情報が存在する/しないが混在する点群に対応する場合(ケースA)と対応しない場合(ケースB)とが考えられる。図111は、これらのケースを示す図である。
 対応しない場合(ケースB)とは、例えば、符号化装置及び復号装置における処理又は規定されるデータ構造が(2)の点群データをサポートしておらず点群データを正しく符号化又は復号できない場合である。または、符号化装置及び復号装置は、(2)の点群データをサポートしているが、アプリケーション又はシステムフォーマットなどの周辺処理が対応していない場合などに符号化装置で処理を制約する場合である。
 以降では、様々な入力フォーマットの点群データを、ケースA及びケースBで符号化及び復号する方法を説明する。
 点群データがケースAの符号化部10302に入力される場合には、(1A)、(1B)及び(2)の点群データは、全て、そのまま符号化部10302へ入力される。符号化部10302は、通常の符号化処理を実施できる。
 一方、ケースBの符号化部10302に点群データが入力される場合には、前処理部10301において、元の第1点群データを第2点群データに変換することで、点群データ内のフォーマットを統一する。
 図112は、属性情報を持たないフレームの点群データの例を示す図である。図113はフォーマット変更後の点群データの例を示す図である。例えば、前処理部10301は、図112及び図113に示すように、位置情報を持ち属性情報を持たないフレームに対しては、属性情報として0などの固定値を付与することで属性情報を持つフレームを生成する。なお、前処理部10301は、属性情報として特定の無効な値を記載するなどの値のパディング処理を実施してもよい。
 符号化部10302は、ケースAとケースBとの両方のケースに対応してもよいし、いずれか一方のケースに対応してもよい。例えば、符号化部10302がケースBに対応しケースAに対応しない場合は、前処理部10301におけるフォーマット変換が必要となる。
 符号化部10302は、点群データが、(1A)、(1B)、(2)のいずれかであるか、あるいは、(2)のデータがある可能性があるか否か、あるいは、既に(1A)又は(1B)にフォーマットが統一されているか否かを示す識別子又は制約情報を、符号化ビットストリーム内のSPS(シーケンスパラメータセット)などのメタデータに格納してもよい。これにより、三次元データ復号装置又はアプリケーションは、入力された点群データの種別を識別できる。
 次に、符号化部10302へ入力される点群データの構成が全てのフレームで同一であると規定される場合(ケースB)について説明する。(2)の点群データを符号化する場合は、前処理部10301は、全てのフレームの点群データの構成が同じになるように、パディング等の処理を実施することで、(2)の点群データを(1B)の点群データに変換する。
 以下、(1B)の点群データを符号化する第1の方法について説明する。符号化部10302は、入力された第2点群データを通常の符号化方法を用いて符号化する場合、元の第1点群データの時点から属性情報を含むフレームと、パディングされた属性情報を含むフレームとを、区別なく符号化し、SPS及びAPS(属性情報パラメータセット)などのパラメータセットと、属性スライスデータ(符号化属性データ)とを生成する。
 この方法を用いることにより、SPSに格納する属性情報のリストを、シーケンス内で同一にすることが可能となり、フレーム毎にSPSの構造を変化させる処理が不要となる。また、第1の方法を用いる場合、パディングされた属性情報を通常の属性情報と区別なく処理することで、従来の処理を変更することなく、対応可能になるという特徴がある。
 なお、符号化部10302へ入力される点群データの構成は、特定の属性情報が存在する/しないが変化してもよいと規定される場合(ケースA)、符号化部10302の内部で、上述したパディング処理を行ってもよい。
 次に、(1B)の点群データを符号化する第2の方法を説明する。符号化部10302は、入力された点群データが、元の第1点群データから属性情報を含むフレームであるか、パディングされた属性情報を含むフレームであるかに基づき、異なる符号化処理、又は異なるデータ構成を用いる。
 第2の方法における属性情報の符号化方法について説明する。図114は、符号化部10302に含まれる属性情報符号化部10310のブロック図である。属性情報符号化部10310は、第2点群データに含まれる属性情報を符号化することで符号化属性情報を生成する。この属性情報符号化部10310は、判定部10311と、変換部10312と、量子化部10313と、エントロピー符号化部10314とを含む。
 判定部10311は、入力された属性情報が、パディングされた属性情報であるか否か、又は、無効なデータ或いは固定値で構成される属性情報であるか否かを判定する。入力された属性情報がパディングされた属性情報でない、又は無効なデータ或いは固定値で構成される属性情報でない場合、変換部10312は、属性情報に変換処理を行うことで変換係数を生成する。量子化部10313は、変換係数を量子化する。エントロピー符号化部10314は、量子化された変換係数をエントロピー符号化することで符号化属性情報を生成する。ここで、変換処理とは、三次元点の位置情報を用いた変換処理である。例えば、変換処理は、Predicting、Lifting又はRAHT(Region Adaptive Hierarchical Transform)である。ここで、Predicting及びLiftingは、LoD(Level of Detail)を用いた変換方法の一つであり、予測残差を算出する方法である。
 一方、入力された属性情報がパディングされた属性情報である、又は無効なデータ或いは固定値で構成される属性情報である場合は、属性情報符号化部10310は、変換処理、量子化及びエントロピー符号化を行わない。つまり、属性情報符号化部10310は、属性情報を符号化しない。例えば、属性情報符号化部10310は、符号化属性情報を出力しなくてもよい。または、属性情報符号化部10310は、属性情報が固定値で構成される場合は、1つの固定値を符号化してもよい。または、属性情報符号化部10310は、入力された属性情報をそのまま符号化属性情報として出力してもよい。
 なお、属性情報符号化部10310は、入力された属性情報がパディングされた属性情報である、又は無効なデータ或いは固定値で構成される属性情報である場合、変換処理を行わず、属性情報に量子化及びエントロピー符号化の少なくとも一方を行ってもよい。
 次に属性情報の付加情報(メタデータ)の生成方法について説明する。図115は、符号化部10302に含まれる付加情報符号化部10320のブロック図である。付加情報符号化部10320は、付加情報を符号化することで符号化付加情報を生成する。この付加情報符号化部10320は、判定部10321と、ヘッダ圧縮部10322と、符号化部10323とを含む。
 判定部10321は、入力された属性情報が、パディングされた属性情報であるか否か、又は、無効なデータ或いは固定値で構成される属性情報であるか否かを判定する。入力された属性情報がパディングされた属性情報でない、又は無効なデータ或いは固定値で構成される属性情報でない場合には、符号化部10323は、所定のパラメータセット又はヘッダのシンタックスを用いて付加情報(メタデータ)を符号化することで符号化付加情報を生成する。
 一方、入力された属性情報がパディングされた属性情報である、又は無効なデータ或いは固定値で構成される属性情報である場合は、ヘッダ圧縮部10322は、不要なヘッダを削除したり、所定の圧縮方法を用いることにより、ヘッダ領域を削減する。符号化部10323は、不要なヘッダが削除されたヘッダ、又は圧縮されたヘッダを符号化することで符号化付加情報を生成する。あるいは、付加情報符号化部10320は、所定のメタデータを送らなくてもよい。また、付加情報符号化部10320は、不要なヘッダを削除するのではなく、不要なヘッダが削除された付加情報を生成してもよい。
 または、付加情報符号化部10320は、属性情報の符号化処理(変換処理、量子化及びエントロピー符号化)をバイパスしたか否かに応じて、バイパスした場合は、バイパスされた処理に関わる付加情報を削除してもよい。
 ここで、付加情報(メタデータ)とは、SPS及びAPSなどのパラメータセット、又は属性情報のデータヘッダなどに含まれる情報である。
 なお、ここでは、属性情報符号化部10310が判定部10311を備え、付加情報符号化部10320が判定部10321を備える例を述べたが、これらは共用されてもよい。また、上記の属性情報に対する処理と、付加情報に対する処理とのいずれか一方が用いられてもよいし、両方が用いられてもよい。
 第2の方法を用いることにより、パディングされた固定値に対する冗長な処理を削減できる。また、冗長なデータを削減することができるので符号化効率が向上する。
 以下、付加情報のシンタックス例を説明する。図116は、属性情報のパラメータセットであるAPS(属性情報パラメータセット:Attribute Parameter Set)のシンタックス例を示す図である。例えば、APSは、属性情報の符号化(例えば変換処理)をバイパスするか否かを示すフラグ(attribute_transform_bypass_flag)を含む。なお、このフラグは、入力された点群データが、元データに属性情報を含むフレームであるか、パディングされた属性情報を含むフレームであるかを示してもよい。また、これらの情報は、フラグに限らず、符号化ビットストリームに含まれる任意の形態の情報であってもよい。
 図117は、属性スライスヘッダ(AttributeSliceHeader)のシンタックス例を示す図である。図116及び図117に示すように、三次元データ符号化装置は、符号化をバイパスするか否かに基づき、符号化をバイパスする場合には、符号化に必要なメタデータをAPS及び属性スライスヘッダに格納しなくてもよい。例えば、属性情報の符号化(変換処理)がバイパスされる場合には、APS及び属性スライスヘッダは、変換処理(transform)に関わるメタデータを含まず、変換処理に関わらない(変換処理以外の処理に関わる)メタデータを含む。また、属性情報の符号化(変換処理)がバイパスされない場合には、APS及び属性スライスヘッダは、変換処理に関わるメタデータと、変換処理に関わらないメタデータとの両方を含む。
 また、属性スライスデータ(符号化属性情報)は、フラグ(attribute_transform_bypass_flag)に応じて、データの構造を変えてもよい。図118は、属性スライスデータ(AttributeSliceData)のシンタックス例を示す図である。図118に示すように、例えば、属性情報の符号化がバイパスされない場合には、属性スライスデータは、通常のデータを含む。ここで、通常のデータとは、属性情報が符号化(変換、量子化及びエントロピー符号化)されたデータであり、複数の属性情報の各々の値を示す複数の情報を含む。一方、属性情報の符号化がバイパスされる場合には、属性スライスデータはvalueを含む。
 valueは、例えば、属性情報をパディングした固定値(0又はその他の値)を示す。なお、属性情報の符号化がバイパスされる場合(属性情報がパディングされている場合)には、属性情報のデータを格納しなくてもよい。この場合においても、三次元データ復号装置(受信装置)は、上記フラグを参照して、点群が属性情報を有さないデータ(具体的には、データ欠損等、もしくは元データがそもそも属性情報を含まない場合)であるか、パディングにより付与された固定値(0又はその他の値)が省略されたデータであるかを識別できる。
 なお、ここでは、上記フラグがAPSに格納され、APS、属性スライスヘッダ及び属性スライスデータに対して共通のフラグが用いられる例を示したが、スライス毎に個別のフラグが設けられ、スライス毎に独立に動作が制御されてもよい。例えば、上記フラグは、スライスヘッダ又は属性スライスヘッダに格納されてもよい。
 図119は、通常のパディングされていない属性情報の符号化ビットストリームの構成例を示す図である。図120は、パディングされた属性情報の符号化ビットストリームの構成例を示す図である。図120に示すようにパディングされた属性情報に対しては、データ削減されたAPS、属性スライスヘッダ(同図のASH)及び属性スライスデータ(同図のA)が使用される。また、符号化ビットストリームは、位置スライスヘッダ(GSH)及び位置スライスデータ(G)を含む。
 図121は、三次元データ復号装置が備える属性情報復号部10330のブロック図である。属性情報復号部10330は、符号化ビットストリームに含まれる符号化属性情報を復号することで属性情報を生成する。この属性情報復号部10330は、解析部10331と、エントロピー復号部10332と、逆量子化部10333と、逆変換部10334とを含む。
 解析部10331は、符号化ビットストリームに含まれる情報に基づき、通常の処理を実施するか、パディングされた属性情報用の処理をするかを判定する。この情報とは、例えば、付加情報(メタデータ)に含まれる上記フラグである。
 つまり、解析部10331は、符号化属性情報が、パディングされた属性情報の符号化データであるか否か、又は、無効なデータ或いは固定値で構成される属性情報の符号化データであるか否かを判定する。符号化属性情報がパディングされた属性情報の符号化データでない、又は無効なデータ或いは固定値で構成される属性情報の符号化データでない場合、エントロピー復号部10332は、符号化属性情報をエントロピー復号することで量子化された変換係数を生成する。逆量子化部10333は、量子化された変換係数を逆量子化することで変換係数を生成する。逆変換部10334は、変換係数に逆変換処理を行うことで属性情報を生成する。ここで、逆変換処理とは、三次元点の位置情報を用いた逆変換処理である。例えば、逆変換処理は、Predicting、Lifting又はRAHTの逆変換である。
 一方、符号化属性情報がパディングされた属性情報の符号化データである、又は無効なデータ或いは固定値で構成される属性情報の符号化データである場合は、属性情報復号部10330は、エントロピー復号、逆量子化及び逆変換処理を行わない。つまり、属性情報復号部10330は、属性情報を復号しない。例えば、属性情報復号部10330は、属性情報の値として、上述したvalueの値又は予め定められた値(デフォルト値)を出力する。または、属性情報復号部10330は、入力された属性情報をそのまま符号化属性情報として出力してもよい。
 なお、属性情報復号部10330は、符号化属性情報がパディングされた属性情報の符号化データである、又は無効なデータ或いは固定値で構成される属性情報の符号化データである場合、逆変換処理を行わず、属性情報にエントロピー復号及び逆量子化の少なくとも一方を行ってもよい。
 図122は、三次元データ符号化装置による三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、処理対象のフレームに含まれる複数の三次元点の複数の属性情報を解析することで、処理対象のフレームの複数の属性情報がパディングされた属性情報であるか否かを判定する(S10301、S10302)。なお、この判定は、例えば、複数の属性情報の値が全て同じであるか否かに基づき、行われる。つまり、三次元データ符号化装置は、処理対象のフレームの複数の属性情報の値が全て同じである場合には、複数の属性情報がパディングされた属性情報であると判定し、処理対象のフレームの複数の属性情報の値の少なくとも一部が異なる場合には、複数の属性情報がパディングされた属性情報ではないと判定する。なお、例えば、前処理部10301においてパディングが行われたか否かを示す情報が生成され、当該情報に基づき当該判定が行われてもよい。
 属性情報がパディングされた属性情報でない場合(S10302でNo)、三次元データ符号化装置は、通常の符号化方法を用いて属性情報を符号化する。また、三次元データ符号化装置は、通常の符号化方法を用いたことをシグナリングする(S10303)。つまり、三次元データ符号化装置は、通常の符号化方法を用いたことを示す情報をビットストリームに付加する。
 一方、属性情報がパディングされた属性情報である場合(S10302でYes)、三次元データ符号化装置は、上述した第2の方法(バイパス)を用いて属性情報を符号化し、当該符号化を用いたことをシグナリングする(S10304)。つまり、三次元データ符号化装置は、第2の方法(バイパス)を用いたことを示す情報をビットストリームに付加する。
 図123は、三次元データ復号装置による三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームに含まれる付加情報から、符号化に第2の方法を用いているか否かを示す情報を取得する(S10311)。第2の方法が用いられていない場合(S10312でNo)、三次元データ復号装置は、通常の復号方法を用いて符号化属性情報を復号する(S10313)。
 一方、第2の方法が用いられている場合(S10312でYes)、三次元データ復号装置は、第2の復号方法(バイパス)を用いて符号化属性情報を復号する(S10314)。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図124に示す処理を行う。三次元データ符号化装置は、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合(S10321でNo)、複数の属性情報の複数の値の各々を示す複数の第1情報(例えば図118の通常データ)を含むビットストリームを生成する(S10322)。三次元データ符号化装置は、複数の属性情報の複数の値が全て同じ値である場合(S10321でYes)、複数の属性情報に共通の同じ値を示す第2情報(図118のvalue)を含み、複数の第1情報を含まないビットストリームを生成する(S10323)。
 これによれば、三次元データ符号化装置は、ビットストリームのデータ量を削減できるので、符号化効率を向上できる。
 例えば、三次元データ符号化装置は、複数の属性情報の複数の値が全て同じ値である場合、複数の属性情報の複数の値が全て同じ値であることを示す第3情報(例えばattribute_transform_bypass_flag)を、ビットストリームに付加する。
 例えば、三次元データ符号化装置は、複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合(S10321でNo)、複数の属性情報に対して、複数の三次元点の複数の位置情報を用いた変換処理を行うことで複数の第1情報を生成し、変換処理に関する第4情報(例えば図116又は図117のtransformに関わるメタデータ)をビットストリームに付加する。三次元データ符号化装置は、複数の属性情報の複数の値が全て同じ値である場合(S10321でYes)、第4情報をビットストリームに付加しない。
 これによれば、三次元データ符号化装置は、ビットストリームのデータ量を削減できるので、符号化効率を向上できる。
 例えば、三次元データ符号化装置は、フレームに含まれる複数の三次元点の属性情報が存在しない場合、複数の三次元点の複数の属性情報として予め定められた値を設定し、ビットストリームは、同じ値として当該予め定められた値を示す第2情報を含む。
 例えば、複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示す。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図125に示す処理を行う。三次元データ復号装置は、ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報(例えば図118の通常データ)が含まれる場合(S10331でNo)、複数の第1情報から複数の属性情報を生成する(S10332)。三次元データ復号装置は、ビットストリームに、複数の属性情報に共通の値を示す第2情報(図118のvalue)が含まれる場合(S10331でYes)、複数の属性情報の各々の値として、第2情報で示される共通の値を出力する(S10333)。
 これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを復号できる。
 例えば、三次元データ復号装置は、ビットストリームに、複数の属性情報の複数の値が全て同じ値であることを示す第3情報(例えばattribute_transform_bypass_flag)が含まれる場合、複数の属性情報の各々の値として、第2情報で示される共通の値を出力する。
 例えば、三次元データ符号化装置は、ビットストリームに複数の第1情報が含まれる場合(S10331でNo)、複数の三次元点の複数の位置情報を用いた逆変換処理に関する第4情報(例えば図116又は図117のtransformに関わるメタデータ)をビットストリームから取得し、第4情報を用いて、複数の第1情報に対して逆変換処理を行うことで、複数の属性情報を生成する。三次元データ復号装置は、ビットストリームに第2情報が含まれる場合(S10331でYes)、第4情報をビットストリームから取得しない。
 これによれば、三次元データ復号装置は、符号化効率が向上されたビットストリームを復号できる。
 例えば、複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示す。
 例えば、複数のフレームが結合されていないフレームの複数の属性情報は、予め定められた値を示し、第2情報は、共通の値として当該予め定められた値を示す。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
 本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
 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 属性情報生成部
 4801 符号化部
 4802 多重化部
 4910 第1の符号化部
 4911 分割部
 4912 位置情報符号化部
 4913 属性情報符号化部
 4914 付加情報符号化部
 4915 多重化部
 4920 第1の復号部
 4921 逆多重化部
 4922 位置情報復号部
 4923 属性情報復号部
 4924 付加情報復号部
 4925 結合部
 4931 スライス分割部
 4932 位置情報タイル分割部
 4933 属性情報タイル分割部
 4941 位置情報タイル結合部
 4942 属性情報タイル結合部
 4943 スライス結合部
 5410 符号化部
 5411 分割部
 5412 位置情報符号化部
 5413 属性情報符号化部
 5414 付加情報符号化部
 5415 多重化部
 5421 タイル分割部
 5422 スライス分割部
 5431、5441 フレームインデックス生成部
 5432、5442 エントロピー符号化部
 5450 復号部
 5451 逆多重化部
 5452 位置情報復号部
 5453 属性情報復号部
 5454 付加情報復号部
 5455 結合部
 5461、5471 エントロピー復号部
 5462、5472 フレームインデックス取得部
 5600 三次元データ符号化装置
 5601 フレーム結合部
 5602 位置情報符号化部
 5603 属性情報再割り当て部
 5604 属性情報符号化部
 5610 三次元データ復号装置
 5611 位置情報復号部
 5612 属性情報復号部
 5613 フレーム分割部
 5800 三次元データ符号化装置
 5810 三次元データ復号装置
 5811 位置情報復号部
 5812 属性情報復号部
 5813 フレーム分割部
 5814 動き補正部
 10301 前処理部
 10302 符号化部
 10310 属性情報符号化部
 10311 判定部
 10312 変換部
 10313 量子化部
 10314 エントロピー符号化部
 10320 付加情報符号化部
 10321 判定部
 10322 ヘッダ圧縮部
 10323 符号化部
 10330 属性情報復号部
 10331 解析部
 10332 エントロピー復号部
 10333 逆量子化部
 10334 逆変換部

Claims (12)

  1.  複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し、
     前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報に共通の前記同じ値を示す第2情報を含み、前記複数の第1情報を含まないビットストリームを生成する
     三次元データ符号化方法。
  2.  前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報の前記複数の値が全て同じ値であることを示す第3情報を、前記ビットストリームに付加する
     請求項1記載の三次元データ符号化方法。
  3.  前記複数の属性情報の少なくとも一部の値が異なる場合、
      前記複数の属性情報に対して、前記複数の三次元点の複数の位置情報を用いた変換処理を行うことで前記複数の第1情報を生成し、
      前記変換処理に関する第4情報を前記ビットストリームに付加し、
     前記複数の属性情報の前記複数の値が全て同じ値である場合、前記第4情報を前記ビットストリームに付加しない
     請求項1又は2記載の三次元データ符号化方法。
  4.  フレームに含まれる前記複数の三次元点の属性情報が存在しない場合、前記複数の三次元点の前記複数の属性情報として予め定められた値を設定し、前記ビットストリームは、前記同じ値として前記予め定められた値を示す前記第2情報を含む
     請求項1~3のいずれか1項に記載の三次元データ符号化方法。
  5.  前記複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示す
     請求項4記載の三次元データ符号化方法。
  6.  ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報が含まれる場合、前記複数の第1情報から前記複数の属性情報を生成し、
     前記ビットストリームに、前記複数の属性情報に共通の値を示す第2情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する
     三次元データ復号方法。
  7.  前記ビットストリームに、前記複数の属性情報の前記複数の値が全て同じ値であることを示す第3情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する
     請求項6記載の三次元データ復号方法。
  8.  前記ビットストリームに前記複数の第1情報が含まれる場合、
      前記複数の三次元点の複数の位置情報を用いた逆変換処理に関する第4情報を前記ビットストリームから取得し、
      前記第4情報を用いて、前記複数の第1情報に対して前記逆変換処理を行うことで、前記複数の属性情報を生成し、
     前記ビットストリームに前記第2情報が含まれる場合、前記第4情報を前記ビットストリームから取得しない
     請求項6又は7記載の三次元データ復号方法。
  9.  前記複数の属性情報の各々は、複数のフレームが結合されることで生成されたフレームにおいて、当該属性情報を有する三次元点が結合前に属していたフレームを示す
     請求項6~8のいずれか1項に記載の三次元データ復号方法。
  10.  複数のフレームが結合されていないフレームの前記複数の属性情報は、予め定められた値を示し、前記第2情報は、前記共通の値として前記予め定められた値を示す
     請求項9記載の三次元データ復号方法。
  11.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     複数の三次元点の複数の属性情報の少なくとも一部の値が異なる場合、前記複数の属性情報の複数の値の各々を示す複数の第1情報を含むビットストリームを生成し、
     前記複数の属性情報の前記複数の値が全て同じ値である場合、前記複数の属性情報に共通の前記同じ値を示す第2情報を含み、前記複数の第1情報を含まないビットストリームを生成する
     三次元データ符号化装置。
  12.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに、複数の三次元点の複数の属性情報の複数の値の各々を示す複数の第1情報が含まれる場合、前記複数の第1情報から前記複数の属性情報を生成し、
     前記ビットストリームに、前記複数の属性情報に共通の値を示す第2情報が含まれる場合、前記複数の属性情報の各々の値として、前記第2情報で示される前記共通の値を出力する
     三次元データ復号装置。
PCT/JP2021/000407 2020-01-09 2021-01-07 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 WO2021141094A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180008519.2A CN115023741A (zh) 2020-01-09 2021-01-07 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US17/857,538 US20220343551A1 (en) 2020-01-09 2022-07-05 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
US202062958970P 2020-01-09 2020-01-09
US62/958,970 2020-01-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/857,538 Continuation US20220343551A1 (en) 2020-01-09 2022-07-05 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
WO2021141094A1 true WO2021141094A1 (ja) 2021-07-15

Family

ID=76788671

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/000407 WO2021141094A1 (ja) 2020-01-09 2021-01-07 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Country Status (3)

Country Link
US (1) US20220343551A1 (ja)
CN (1) CN115023741A (ja)
WO (1) WO2021141094A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262019A1 (ja) * 2019-06-25 2020-12-30 ソニー株式会社 情報処理装置および方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2019240286A1 (ja) * 2018-06-15 2019-12-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2019240286A1 (ja) * 2018-06-15 2019-12-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Also Published As

Publication number Publication date
CN115023741A (zh) 2022-09-06
US20220343551A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
JP7323545B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11470352B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11423581B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020116563A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020075780A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7358376B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JPWO2020059826A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JPWO2020138463A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020032248A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11936919B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20220343551A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 25.10.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 21738044

Country of ref document: EP

Kind code of ref document: A1