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

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

Info

Publication number
WO2020218593A1
WO2020218593A1 PCT/JP2020/017861 JP2020017861W WO2020218593A1 WO 2020218593 A1 WO2020218593 A1 WO 2020218593A1 JP 2020017861 W JP2020017861 W JP 2020017861W WO 2020218593 A1 WO2020218593 A1 WO 2020218593A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimensional
quantization
dimensional data
information
coding
Prior art date
Application number
PCT/JP2020/017861
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 CN202080030034.9A priority Critical patent/CN113728648A/zh
Priority to JP2021516314A priority patent/JPWO2020218593A1/ja
Publication of WO2020218593A1 publication Critical patent/WO2020218593A1/ja
Priority to US17/504,809 priority patent/US20220036595A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain

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.
  • a point cloud that expresses the shape of a three-dimensional structure by a point cloud in a three-dimensional space.
  • 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.
  • 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 there is known a technique for searching and displaying facilities located around a vehicle using three-dimensional map data (see, for example, Patent Document 1).
  • 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 appropriately encoding.
  • a plurality of coefficient values are calculated from a plurality of attribute information of a plurality of three-dimensional points included in the point group data, and each of the plurality of coefficient values is quantized.
  • a plurality of quantization values are generated, a bit stream containing the plurality of quantization values is generated, and the plurality of coefficient values belong to any of the plurality of layers and are predetermined in the plurality of layers.
  • Quantization parameters for the hierarchy are assigned to each of the multiple hierarchies. In the quantization, each of the plurality of coefficient values is assigned to (i) the hierarchy to which the coefficient value belongs. If it is assigned, it is quantized using the quantization parameter, and (ii) if the quantization parameter is not assigned to the hierarchy to which the coefficient value belongs, one of the predetermined number of hierarchies. Quantize using the quantization parameters assigned to the hierarchy.
  • a plurality of coefficient values are calculated from a plurality of attribute information of a plurality of three-dimensional points included in the point group data, and the plurality of coefficient values are calculated.
  • a plurality of quantization values are generated, a bit stream containing the plurality of quantization values is generated, and each of the plurality of coefficient values is the coefficient value in the plurality of three-dimensional spaces. It belongs to any of a plurality of groups by being classified by the three-dimensional space to which the three-dimensional point including the attribute information on which the calculation is based belongs, and in the quantization, each of the plurality of coefficient values is determined. Quantize using the quantization parameter for the group to which the coefficient value belongs.
  • a plurality of coefficient values are generated by dequantizing each of a plurality of quantization values included in the bit stream, and a point group is obtained from the plurality of coefficient values.
  • a plurality of attribute information of a plurality of three-dimensional points included in the data is calculated, and the plurality of quantization values belong to any of the plurality of layers, and each of the predetermined number of layers in the plurality of layers is used. Is assigned a quantization parameter for the layer, and in the inverse quantization, each of the plurality of quantization values is assigned to (i) the layer to which the quantization value belongs.
  • dequantization is performed using the quantization parameter, and (ii) if the quantization parameter is not assigned to the layer to which the quantization value belongs, it is assigned to one of the predetermined number of layers. Inverse quantization using the assigned quantization parameters.
  • the three-dimensional data decoding method generates a plurality of coefficient values by dequantizing each of the plurality of quantization values included in the bit stream, and the plurality of coefficient values. From, a plurality of attribute information of a plurality of three-dimensional points included in the point group data is calculated, and the plurality of quantization values are the attributes on which the calculation of the quantization value is based in the plurality of three-dimensional spaces. By being classified by the three-dimensional space to which the three-dimensional point containing information belongs, it belongs to one of a plurality of groups, and each of the predetermined number of layers in the plurality of layers is a quantum for the layer. A conversion parameter is assigned, and in the inverse quantization, each of the plurality of quantization values is inverse-quantized using the quantization parameter for the hierarchy to which the quantization value belongs.
  • 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 appropriately encode.
  • FIG. 1 is a diagram showing a configuration of coded three-dimensional data according to the first embodiment.
  • FIG. 2 is a diagram showing an example of a prediction structure between SPCs belonging to the lowest layer of GOS according to the first embodiment.
  • FIG. 3 is a diagram showing an example of a prediction structure between layers according to the first embodiment.
  • FIG. 4 is a diagram showing an example of the coding order of GOS according to the first embodiment.
  • FIG. 5 is a diagram showing an example of the coding order of GOS according to the first embodiment.
  • FIG. 6 is a diagram showing an example of meta information according to the first embodiment.
  • FIG. 7 is a schematic view showing a state of transmission / reception of three-dimensional data between vehicles according to the second embodiment.
  • FIG. 8 is a diagram showing an example of three-dimensional data transmitted between vehicles according to the second embodiment.
  • FIG. 9 is a diagram for explaining a three-dimensional data transmission process according to the third embodiment.
  • FIG. 10 is a diagram showing a configuration of the system according to the fourth embodiment.
  • FIG. 11 is a block diagram of the client device according to the fourth embodiment.
  • FIG. 12 is a block diagram of the server according to the fourth embodiment.
  • FIG. 13 is a flowchart of the three-dimensional data creation process by the client device according to the fourth embodiment.
  • FIG. 14 is a flowchart of the sensor information transmission process by the client device according to the fourth embodiment.
  • FIG. 15 is a flowchart of the three-dimensional data creation process by the server according to the fourth embodiment.
  • FIG. 16 is a flowchart of the three-dimensional map transmission process by the server according to the fourth embodiment.
  • FIG. 17 is a diagram showing a configuration of a modified example of the system according to the fourth embodiment.
  • FIG. 18 is a diagram showing a configuration of a server and a client device according to the fourth embodiment.
  • FIG. 19 is a diagram showing a configuration of a server and a client device according to the fifth embodiment.
  • FIG. 20 is a flowchart of processing by the client device according to the fifth embodiment.
  • FIG. 21 is a diagram showing a configuration of a sensor information collection system according to the fifth embodiment.
  • FIG. 22 is a diagram showing an example of the volume according to the sixth embodiment.
  • FIG. 23 is a diagram showing an example of an ocree representation of the volume according to the sixth embodiment.
  • FIG. 24 is a diagram showing an example of a bit string of the volume according to the sixth embodiment.
  • FIG. 25 is a diagram showing an example of an ocree representation of the volume according to the sixth embodiment.
  • FIG. 26 is a diagram showing an example of the volume according to the sixth embodiment.
  • FIG. 27 is a diagram showing an example of three-dimensional points according to the seventh embodiment.
  • FIG. 28 is a diagram showing a setting example of LoD according to the seventh embodiment.
  • FIG. 29 is a diagram showing an example of a threshold value used for setting LoD according to the seventh embodiment.
  • FIG. 30 is a diagram showing an example of attribute information used for the predicted value according to the seventh embodiment.
  • FIG. 31 is a diagram showing an example of the exponential Golomb code according to the seventh embodiment.
  • FIG. 32 is a diagram showing processing for the exponential Golomb code according to the seventh embodiment.
  • FIG. 33 is a diagram showing an example of syntax of the attribute header according to the seventh embodiment.
  • FIG. 34 is a diagram showing an example of syntax of attribute data according to the seventh embodiment.
  • FIG. 35 is a flowchart of the three-dimensional data coding process according to the seventh embodiment.
  • FIG. 36 is a flowchart of the attribute information coding process according to the seventh embodiment.
  • FIG. 37 is a diagram showing processing for the exponential Golomb code according to the seventh embodiment.
  • FIG. 38 is a diagram showing an example of a reverse lookup table showing the relationship between the remaining code and the value according to the seventh embodiment.
  • FIG. 39 is a flowchart of the three-dimensional data decoding process according to the seventh embodiment.
  • FIG. 39 is a flowchart of the three-dimensional data decoding process according to the seventh embodiment.
  • FIG. 40 is a flowchart of the attribute information decoding process according to the seventh embodiment.
  • FIG. 41 is a block diagram of the three-dimensional data encoding device according to the seventh embodiment.
  • FIG. 42 is a block diagram of the three-dimensional data encoding device according to the seventh embodiment.
  • FIG. 43 is a diagram for explaining the coding of attribute information using RAHT according to the eighth embodiment.
  • FIG. 44 is a diagram showing an example of setting the quantization scale for each layer according to the eighth embodiment.
  • FIG. 45 is a diagram showing an example of a first code string and a second code string according to the eighth embodiment.
  • FIG. 46 is a diagram showing an example of a truncet unity code according to the eighth embodiment.
  • FIG. 47 is a diagram for explaining the inverse Har transformation according to the eighth embodiment.
  • FIG. 48 is a diagram showing an example of syntax of attribute information according to the eighth embodiment.
  • FIG. 49 is a diagram showing an example of the coding coefficient and ZeroCnt according to the eighth embodiment.
  • FIG. 50 is a flowchart of the three-dimensional data coding process according to the eighth embodiment.
  • FIG. 51 is a flowchart of the attribute information coding process according to the eighth embodiment.
  • FIG. 52 is a flowchart of the coding coefficient coding process according to the eighth embodiment.
  • FIG. 53 is a flowchart of the three-dimensional data decoding process according to the eighth embodiment.
  • FIG. 54 is a flowchart of the attribute information decoding process according to the eighth embodiment.
  • FIG. 55 is a flowchart of the coding coefficient decoding process according to the eighth embodiment.
  • FIG. 56 is a block diagram of the attribute information coding unit according to the eighth embodiment.
  • FIG. 57 is a block diagram of the attribute information decoding unit according to the eighth embodiment.
  • FIG. 58 is a diagram showing an example of a first code string and a second code string according to the modified example of the eighth embodiment.
  • FIG. 59 is a diagram showing a syntax example of attribute information according to a modified example of the eighth embodiment.
  • FIG. 60 is a diagram showing examples of coding coefficients, ZeroCnt and TotalZeroCnt according to the modified example of the eighth embodiment.
  • FIG. 61 is a flowchart of the coding coefficient coding process according to the modified example of the eighth embodiment.
  • FIG. 62 is a flowchart of the coding coefficient decoding process according to the modified example of the eighth embodiment.
  • FIG. 63 is a diagram showing a syntax example of attribute information according to a modified example of the eighth embodiment.
  • FIG. 64 is a block diagram showing the configuration of the three-dimensional data coding apparatus according to the ninth embodiment.
  • FIG. 65 is a block diagram showing the configuration of the three-dimensional data decoding device according to the ninth embodiment.
  • FIG. 66 is a diagram showing a setting example of LoD according to the ninth embodiment.
  • FIG. 67 is a diagram showing an example of the hierarchical structure of RAHT according to the ninth embodiment.
  • FIG. 68 is a block diagram of the three-dimensional data encoding device according to the ninth embodiment.
  • FIG. 69 is a block diagram of the divided portion according to the ninth embodiment.
  • FIG. 70 is a block diagram of the attribute information coding unit according to the ninth embodiment.
  • FIG. 71 is a block diagram of the three-dimensional data decoding device according to the ninth embodiment.
  • FIG. 72 is a block diagram of the attribute information decoding unit according to the ninth embodiment.
  • FIG. 73 is a diagram showing an example of setting the quantization parameter in the tile and slice division according to the ninth embodiment.
  • FIG. 74 is a diagram showing a setting example of the quantization parameter according to the ninth embodiment.
  • FIG. 75 is a diagram showing a setting example of the quantization parameter according to the ninth embodiment.
  • FIG. 76 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 77 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 78 is a diagram showing a setting example of the quantization parameter according to the ninth embodiment.
  • FIG. 79 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 80 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 81 is a flowchart of the three-dimensional data coding process according to the ninth embodiment.
  • FIG. 82 is a flowchart of the attribute information coding process according to the ninth embodiment.
  • FIG. 83 is a flowchart of the ⁇ QP determination process according to the ninth embodiment.
  • FIG. 84 is a flowchart of the three-dimensional data decoding process according to the ninth embodiment.
  • FIG. 85 is a flowchart of the attribute information decoding process according to the ninth embodiment.
  • FIG. 86 is a block diagram of the attribute information coding unit according to the ninth embodiment.
  • FIG. 87 is a block diagram of the attribute information decoding unit according to the ninth embodiment.
  • FIG. 88 is a diagram showing a setting example of the quantization parameter according to the ninth embodiment.
  • FIG. 89 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 90 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 91 is a flowchart of the three-dimensional data coding process according to the ninth embodiment.
  • FIG. 92 is a flowchart of the attribute information coding process according to the ninth embodiment.
  • FIG. 93 is a flowchart of the three-dimensional data decoding process according to the ninth embodiment.
  • FIG. 94 is a flowchart of the attribute information decoding process according to the ninth embodiment.
  • FIG. 95 is a block diagram of the attribute information coding unit according to the ninth embodiment.
  • FIG. 96 is a block diagram of the attribute information decoding unit according to the ninth embodiment.
  • FIG. 97 is a diagram showing a syntax example of the attribute information header according to the ninth embodiment.
  • FIG. 98 is a graph showing the relationship between the bit rate and time of encoding the bit stream according to the tenth embodiment.
  • FIG. 99 is a diagram showing the hierarchical structure of the three-dimensional point cloud according to the tenth embodiment and the number of three-dimensional points belonging to each layer.
  • FIG. 100 is a diagram showing a first example of classifying a one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers according to a designated three-dimensional point cloud.
  • FIG. 101 is a diagram showing a second example of classifying a one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers with a constant three-dimensional number of points.
  • FIG. 102 shows an example of the syntax of the attribute information header in the second example according to the tenth embodiment.
  • FIG. 103 shows another example of the syntax of attribute information in the second example according to the tenth embodiment.
  • FIG. 104 is a diagram showing a third example of classifying the one-layer three-dimensional point cloud according to the tenth embodiment into a number of sub-layers different from the planned number.
  • FIG. 105 shows an example of the syntax of the attribute information header in the third example according to the tenth embodiment.
  • FIG. 106 shows another example of the syntax of the attribute information header in the third example according to the tenth embodiment.
  • FIG. 107 is a diagram showing a fourth example of classifying a three-dimensional point cloud of one layer according to the tenth embodiment into sub-layers by a number of three-dimensional points specified by a ratio (percentage).
  • FIG. 108 shows an example of the syntax of the attribute information header in the fourth example according to the tenth embodiment.
  • FIG. 105 shows an example of the syntax of the attribute information header in the third example according to the tenth embodiment.
  • FIG. 106 shows another example of the syntax of the attribute information header in the third example according to the tenth embodiment.
  • FIG. 109 is a diagram showing a fifth example of classifying a one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers by Morton index.
  • FIG. 110 shows an example of the syntax of the attribute information header in the fifth example according to the tenth embodiment.
  • FIG. 111 is a diagram showing a sixth example of classifying the one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers by the Morton index.
  • FIG. 112 is a diagram showing a sixth example of classifying the one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers by the Morton index.
  • FIG. 110 shows an example of the syntax of the attribute information header in the fifth example according to the tenth embodiment.
  • FIG. 111 is a diagram showing a sixth example of classifying the one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers by the Morton index.
  • FIG. 112 is a diagram showing a sixth example of classifying the one
  • FIG. 113 is a diagram showing a seventh example of classifying a one-layer three-dimensional point cloud according to the tenth embodiment into sub-layers using a residual or a Delta value.
  • FIG. 114 is a diagram showing an array of three-dimensional points when arranged in the two-dimensional Morton order according to the tenth embodiment.
  • FIG. 115 shows an example of the syntax of the attribute information header in the seventh example according to the tenth embodiment.
  • FIG. 116 shows an example of the residual bitstream syntax according to the tenth embodiment.
  • FIG. 117 shows an equation for calculating the encoding cost (Encoding cost) according to the tenth embodiment.
  • FIG. 118 is a graph showing the relationship between BPP (bits per point) and time according to the tenth embodiment.
  • FIG. 119 is a diagram showing that the QP value applied to the encoding of the attribute information according to the tenth embodiment is set for each sub-layer.
  • FIG. 120 is a diagram showing an eighth example in which the three-dimensional point cloud according to the tenth embodiment is classified into sub-layers using a Morton code.
  • FIG. 121 shows an example of the syntax of the attribute information header in the eighth example according to the tenth embodiment.
  • FIG. 122 is a flowchart of the three-dimensional data coding process according to the tenth embodiment.
  • FIG. 123 is a flowchart of the three-dimensional data decoding process according to the tenth embodiment.
  • a plurality of coefficient values are calculated from a plurality of attribute information of a plurality of three-dimensional points included in the point group data, and each of the plurality of coefficient values is quantized.
  • a plurality of quantization values are generated, a bit stream containing the plurality of quantization values is generated, and the plurality of coefficient values belong to any of the plurality of layers and are predetermined in the plurality of layers.
  • Quantization parameters for the hierarchy are assigned to each of the multiple hierarchies. In the quantization, each of the plurality of coefficient values is assigned to (i) the hierarchy to which the coefficient value belongs. If it is assigned, it is quantized using the quantization parameter, and (ii) if the quantization parameter is not assigned to the hierarchy to which the coefficient value belongs, one of the predetermined number of hierarchies. Quantize using the quantization parameters assigned to the hierarchy.
  • the three-dimensional data coding method can switch the quantization parameter for each layer, so that coding can be performed appropriately.
  • the one layer may be the last layer of the predetermined number of layers.
  • the quantization parameters assigned to the predetermined number of layers that do not correspond to the plurality of layers are It does not have to be used.
  • the bitstream may include first information indicating a reference quantization parameter and a plurality of second information for calculating a plurality of quantization parameters for the plurality of layers from the reference quantization parameter. ..
  • the three-dimensional data coding method encodes the first information indicating the reference quantization parameter and the plurality of second information for calculating a plurality of quantization parameters from the reference quantization parameter. Quantization efficiency can be improved.
  • a plurality of coefficient values are calculated from a plurality of attribute information of a plurality of three-dimensional points included in the point group data, and the plurality of coefficient values are calculated.
  • a plurality of quantization values are generated, a bit stream containing the plurality of quantization values is generated, and each of the plurality of coefficient values is the coefficient value in the plurality of three-dimensional spaces. It belongs to any of a plurality of groups by being classified by the three-dimensional space to which the three-dimensional point including the attribute information on which the calculation is based belongs, and in the quantization, each of the plurality of coefficient values is determined. Quantize using the quantization parameter for the group to which the coefficient value belongs.
  • the three-dimensional data coding method can switch the quantization parameter for each layer, so that coding can be performed appropriately.
  • a plurality of coefficient values are generated by dequantizing each of a plurality of quantization values included in the bit stream, and a point group is obtained from the plurality of coefficient values.
  • a plurality of attribute information of a plurality of three-dimensional points included in the data is calculated, and the plurality of quantization values belong to any of the plurality of layers, and each of the predetermined number of layers in the plurality of layers is used. Is assigned a quantization parameter for the layer, and in the inverse quantization, each of the plurality of quantization values is assigned to (i) the layer to which the quantization value belongs.
  • dequantization is performed using the quantization parameter, and (ii) if the quantization parameter is not assigned to the layer to which the quantization value belongs, it is assigned to one of the predetermined number of layers. Inverse quantization using the assigned quantization parameters.
  • the three-dimensional data decoding method can switch the quantization parameter for each layer, so that decoding can be performed appropriately.
  • the one layer may be the last layer of the predetermined number of layers.
  • the quantization parameters assigned to the predetermined number of layers that do not correspond to the plurality of layers May not be used.
  • the bitstream may include first information indicating a reference quantization parameter and a plurality of second information for calculating a plurality of quantization parameters for the plurality of layers from the reference quantization parameter. ..
  • the three-dimensional data decoding method uses first information indicating a reference quantization parameter and a plurality of second information for calculating a plurality of quantization parameters from the reference quantization parameter, thereby achieving coding efficiency. Can properly decode the improved bit stream.
  • the three-dimensional data decoding method generates a plurality of coefficient values by dequantizing each of the plurality of quantization values included in the bit stream, and the plurality of coefficient values. From, a plurality of attribute information of a plurality of three-dimensional points included in the point group data is calculated, and the plurality of quantization values are the attributes on which the calculation of the quantization value is based in the plurality of three-dimensional spaces. By being classified by the three-dimensional space to which the three-dimensional point containing information belongs, it belongs to one of a plurality of groups, and each of the predetermined number of layers in the plurality of layers is a quantum for the layer. A conversion parameter is assigned, and in the inverse quantization, each of the plurality of quantization values is inverse-quantized using the quantization parameter for the hierarchy to which the quantization value belongs.
  • the three-dimensional data decoding method can switch the quantization parameter for each layer, so that decoding can be performed appropriately.
  • a recording medium such as a system, method, integrated circuit, computer program or computer readable CD-ROM, system, method, integrated circuit, computer program. And any combination of recording media may be realized.
  • FIG. 1 is a diagram showing a configuration of coded three-dimensional data according to the present embodiment.
  • the three-dimensional space is divided into a space (SPC) corresponding to a picture in coding a moving image, and three-dimensional data is encoded in units of spaces.
  • the space is further divided into volumes (VLM) corresponding to macroblocks and the like in moving image coding, and prediction and conversion are performed in units of VLM.
  • the volume includes a plurality of voxels (VXL) which are the smallest units to which the position coordinates are associated.
  • VXL voxels
  • the prediction is the same as the prediction performed by the two-dimensional image, referring to other processing units, generating the prediction three-dimensional data similar to the processing unit of the processing target, and the prediction three-dimensional data and the processing target. It is to encode the difference from the processing unit.
  • this prediction includes not only spatial prediction that refers to other prediction units at the same time, but also time prediction that refers to prediction units at different times.
  • a three-dimensional data coding device when encoding a three-dimensional space represented by point cloud data such as a point cloud, is a point cloud according to the size of a voxel.
  • a voxel Each point of the above, or a plurality of points contained in the voxel are collectively encoded. If the voxel is subdivided, the three-dimensional shape of the point cloud can be expressed with high accuracy, and if the size of the voxel is increased, the three-dimensional shape of the point cloud can be roughly expressed.
  • the 3D data is a point cloud
  • the 3D data is not limited to the point cloud and may be 3D data in any format.
  • a hierarchical voxel may be used.
  • the nth-order layer it may be indicated in order whether or not the sample points exist in the n-1th-order or lower layer (the lower layer of the nth-order layer).
  • the sample point can be regarded as existing in the center of the voxel in the nth-order layer and can be decoded.
  • the coding device acquires point cloud data using a distance sensor, a stereo camera, a monocular camera, a gyro, an inertial sensor, or the like.
  • the intra space that can be decoded independently
  • the predictive space that can be referred only in one direction
  • the bidirectional reference are possible as in the coding of the moving image. It falls into one of at least three predictive structures, including bidirectional spaces (B-SPCs).
  • the space has two types of time information, a decoding time and a display time.
  • GOS Group Of Space
  • WLD world
  • the spatial area occupied by the world is associated with the absolute position on the earth by GPS or latitude and longitude information. This location information is stored as meta information.
  • the meta information may be included in the coded data or may be transmitted separately from the coded data.
  • all SPCs may be three-dimensionally adjacent to each other, or there may be SPCs that are not three-dimensionally adjacent to other SPCs.
  • processing such as encoding, decoding or reference of three-dimensional data included in a processing unit such as GOS, SPC or VLM is also described simply as encoding, decoding or referencing the processing unit.
  • the three-dimensional data included in the processing unit includes, for example, at least one set of a spatial position such as three-dimensional coordinates and a characteristic value such as color information.
  • a plurality of SPCs in the same GOS or a plurality of VLMs in the same SPC occupy different spaces from each other, but have the same time information (decoding time and display time).
  • the SPC that is the first in the decoding order in GOS is I-SPC.
  • GOS there are two types of GOS, closed GOS and open GOS.
  • the closed GOS is a GOS capable of decoding all the SPCs in the GOS when the decoding is started from the head I-SPC.
  • the open GOS some SPCs whose display time is earlier than the first I-SPC in the GOS refer to a different GOS, and decoding cannot be performed only by the GOS.
  • WLD may be decoded from the direction opposite to the coding order, and if there is a dependency between GOS, it is difficult to reproduce in the reverse direction. Therefore, in such a case, closed GOS is basically used.
  • GOS has a layer structure in the height direction, and encoding or decoding is performed in order from the SPC of the lower layer.
  • FIG. 2 is a diagram showing an example of a prediction structure between SPCs belonging to the lowest layer of GOS.
  • FIG. 3 is a diagram showing an example of a prediction structure between layers.
  • ISPCs there is one or more ISPCs in GOS.
  • objects such as humans, animals, cars, bicycles, traffic lights, and landmark buildings in the three-dimensional space, but it is effective to encode the objects with a particularly small size as ISPC.
  • a three-dimensional data decoding device (hereinafter, also referred to as a decoding device) decodes only the I-SPC in the GOS when decoding the GOS with a low processing amount or a high speed.
  • the coding device may switch the coding interval or appearance frequency of the I-SPC according to the density of the objects in the WLD.
  • the coding device or the decoding device encodes or decodes a plurality of layers in order from the lower layer (layer 1). As a result, it is possible to raise the priority of data near the ground, which has a larger amount of information for, for example, an autonomous vehicle.
  • the encoded data used in a drone or the like may be encoded or decoded in order from the SPC of the upper layer in the height direction in the GOS.
  • the encoding device or the decoding device may encode or decode a plurality of layers so that the decoding device can roughly grasp the GOS and gradually increase the resolution.
  • the encoding device or decoding device may encode or decode in the order of layers 3, 8, 1, 9 ...
  • static objects or scenes such as buildings or roads
  • dynamic objects such as cars or humans
  • Object detection is performed separately by extracting feature points from point cloud data or camera images such as stereo cameras.
  • the first method is a method of encoding a static object and a dynamic object without distinguishing them.
  • the second method is a method of distinguishing between a static object and a dynamic object by identification information.
  • GOS is used as an identification unit.
  • the GOS including the SPC constituting the static object and the GOS including the SPC constituting the dynamic object are distinguished by the identification information stored in the coded data or separately from the coded data.
  • SPC may be used as an identification unit.
  • the SPC including the VLM constituting the static object and the SPC including the VLM constituting the dynamic object are distinguished by the above identification information.
  • VLM or VXL may be used as the identification unit.
  • VLM or VXL including a static object and VLM or VXL including a dynamic object are distinguished by the above identification information.
  • the encoding device may encode the dynamic object as one or more VLMs or SPCs, and encode the VLM or SPC including the static object and the SPC including the dynamic object as different GOSs. Further, when the size of the GOS is variable according to the size of the dynamic object, the encoding device separately stores the size of the GOS as meta information.
  • the coding device may encode the static object and the dynamic object independently of each other, and superimpose the dynamic object on the world composed of the static objects.
  • the dynamic object is composed of one or more SPCs, and each SPC is associated with one or more SPCs constituting the static object on which the SPC is superimposed.
  • the dynamic object may be represented by one or more VLMs or VXLs instead of SPCs.
  • the encoding device may encode the static object and the dynamic object as different streams.
  • the encoding device may generate a GOS including one or more SPCs constituting a dynamic object. Further, the encoding device may set the GOS including the dynamic object (GOS_M) and the GOS of the static object corresponding to the spatial area of GOS_M to the same size (occupy the same spatial area). As a result, the superimposition processing can be performed in units of GOS.
  • GOS_M dynamic object
  • GOS_M static object
  • the P-SPC or B-SPC constituting the dynamic object may refer to the SPC included in a different encoded GOS.
  • a reference across the GOS is effective from the viewpoint of compression ratio.
  • the above-mentioned first method and the second method may be switched depending on the use of the coded data. For example, when the coded three-dimensional data is used as a map, it is desirable that the dynamic objects can be separated, so the coding device uses the second method. On the other hand, the coding device uses the first method when it is not necessary to separate dynamic objects when coding three-dimensional data of an event such as a concert or a sport.
  • the decoding time and display time of GOS or SPC can be stored in the encoded data or as meta information. Moreover, the time information of all static objects may be the same. At this time, the actual decoding time and the display time may be determined by the decoding device. Alternatively, a different value may be assigned to each GOS or SPC as the decoding time, and the same value may be assigned as the display time. Further, like a decoder model in moving image coding such as HEVC's HRD (Hypothetical Reference Decorder), if the decoder has a buffer of a predetermined size and reads a bit stream at a predetermined bit rate according to the decoding time, it can be decoded without failure. A model that guarantees may be introduced.
  • HEVC's HRD Hypothetical Reference Decorder
  • the coordinates of the three-dimensional space in the world are represented by three coordinate axes (x-axis, y-axis, and z-axis) that are orthogonal to each other.
  • coding can be performed so that spatially adjacent GOSs are continuous in the coded data.
  • the GOS in the xz plane is continuously encoded.
  • the y-axis value is updated after the coding of all GOS in a certain xz plane is completed. That is, as the coding progresses, the world extends in the y-axis direction.
  • the GOS index numbers are set in the order of coding.
  • the three-dimensional space of the world is associated with GPS or geographical absolute coordinates such as latitude and longitude on a one-to-one basis.
  • the three-dimensional space may be represented by a relative position from a preset reference position.
  • the x-axis, y-axis, and z-axis directions of the three-dimensional space are expressed as direction vectors determined based on latitude, longitude, and the like, and the direction vectors are stored together with encoded data as meta information.
  • the size of GOS is fixed, and the encoding device stores the size as meta information. Further, the size of the GOS may be switched depending on, for example, whether it is an urban area or indoors or outdoors. That is, the size of the GOS may be switched depending on the amount or nature of the objects that are valuable as information.
  • the encoding device may adaptively switch the size of the GOS or the interval of the I-SPC in the GOS according to the density of objects and the like in the same world. For example, the encoding device reduces the size of the GOS and shortens the interval between ISPCs in the GOS as the density of objects increases.
  • the GOS is subdivided in order to realize random access with fine granularity.
  • the 7th to 10th GOSs are located behind the 3rd to 6th GOSs, respectively.
  • FIG. 7 is a schematic diagram showing a state of transmission / reception of three-dimensional data 607 between the own vehicle 600 and the peripheral vehicle 601.
  • a sensor mounted on the own vehicle 600 a distance sensor such as a range finder, a stereo camera, or a combination of a plurality of monocular cameras
  • the sensor of the own vehicle 600 due to an obstacle such as a peripheral vehicle 601
  • An area within the detection range 602 but where three-dimensional data cannot be created hereinafter, this is referred to as an occlusion area 604.
  • the accuracy of autonomous operation increases as the space for acquiring three-dimensional data increases, but the sensor detection range of the own vehicle 600 alone is finite.
  • the sensor detection range 602 of the own vehicle 600 includes an area 603 in which three-dimensional data can be acquired and an occlusion area 604.
  • the range in which the own vehicle 600 wants to acquire three-dimensional data includes the sensor detection range 602 of the own vehicle 600 and other areas.
  • the sensor detection range 605 of the peripheral vehicle 601 includes an occlusion area 604 and a region 606 not included in the sensor detection range 602 of the own vehicle 600.
  • the peripheral vehicle 601 transmits the information detected by the peripheral vehicle 601 to the own vehicle 600.
  • the own vehicle 600 acquires the three-dimensional data 607 of the occlusion area 604 and the area 606 other than the sensor detection range 602 of the own vehicle 600 by acquiring the information detected by the peripheral vehicle 601 such as the vehicle in front. Is possible.
  • the own vehicle 600 complements the three-dimensional data of the occlusion area 604 and the area 606 outside the sensor detection range by using the information acquired by the peripheral vehicle 601.
  • 3D data in the autonomous operation of a vehicle or robot is self-position estimation, detection of surrounding conditions, or both.
  • self-position estimation three-dimensional data generated by the own vehicle 600 based on the sensor information of the own vehicle 600 is used.
  • the three-dimensional data acquired from the peripheral vehicle 601 is also used to detect the surrounding situation.
  • the peripheral vehicle 601 that transmits the three-dimensional data 607 to the own vehicle 600 may be determined according to the state of the own vehicle 600.
  • the peripheral vehicle 601 is a front-running vehicle when the own vehicle 600 goes straight, an oncoming vehicle when the own vehicle 600 turns right, and a rear vehicle when the own vehicle 600 reverses.
  • the driver of the own vehicle 600 may directly specify the peripheral vehicle 601 for transmitting the three-dimensional data 607 to the own vehicle 600.
  • the own vehicle 600 may search for a peripheral vehicle 601 that possesses three-dimensional data in an area that cannot be acquired by the own vehicle 600, which is included in the space in which the three-dimensional data 607 is desired to be acquired.
  • the area that cannot be acquired by the own vehicle 600 is an occlusion area 604, an area 606 outside the sensor detection range 602, and the like.
  • the own vehicle 600 may specify the occlusion area 604 based on the sensor information of the own vehicle 600. For example, the own vehicle 600 identifies an area within the sensor detection range 602 of the own vehicle 600 where three-dimensional data cannot be created as an occlusion area 604.
  • FIG. 8 is a diagram showing an example of three-dimensional data to be transmitted in this case.
  • the three-dimensional data 607 transmitted from the vehicle in front is, for example, a point cloud sparse world (SWLD). That is, the preceding vehicle creates WLD three-dimensional data (point cloud) from the information detected by the sensor of the preceding vehicle, and extracts data having a feature amount equal to or greater than the threshold value from the WLD three-dimensional data to SWLD. Create 3D data (point cloud) of. Then, the preceding vehicle transmits the created three-dimensional data of SWLD to the own vehicle 600.
  • SWLD point cloud sparse world
  • the own vehicle 600 receives the SWLD and merges the received SWLD with the point cloud created by the own vehicle 600.
  • the transmitted SWLD has information on absolute coordinates (the position of the SWLD in the coordinate system of the three-dimensional map).
  • the own vehicle 600 can realize the merge process by overwriting the point cloud generated by the own vehicle 600 based on the absolute coordinates.
  • the SWLD transmitted from the peripheral vehicle 601 is the SWLD of the area 606 outside the sensor detection range 602 of the own vehicle 600 and within the sensor detection range 605 of the peripheral vehicle 601 or the SWLD of the occlusion area 604 for the own vehicle 600. Both SWLDs may be used. Further, the SWLD to be transmitted may be a SWLD in a region of the above SWLDs used by the peripheral vehicle 601 to detect the peripheral situation.
  • the peripheral vehicle 601 may change the density of the point cloud to be transmitted according to the communicable time based on the speed difference between the own vehicle 600 and the peripheral vehicle 601. For example, when the speed difference is large and the communicable time is short, the peripheral vehicle 601 can reduce the density (data amount) of the point cloud by extracting three-dimensional points having a large feature amount from the SWLD. Good.
  • the detection of the surrounding situation is to determine the presence or absence of people, vehicles, equipment for road construction, etc., identify the type, and detect the position, moving direction, moving speed, and the like. ..
  • the own vehicle 600 may acquire the braking information of the peripheral vehicle 601 instead of the three-dimensional data 607 generated by the peripheral vehicle 601 or in addition to the three-dimensional data 607.
  • the braking information of the peripheral vehicle 601 is, for example, information indicating that the accelerator or brake of the peripheral vehicle 601 has been stepped on, or the degree thereof.
  • the three-dimensional space is subdivided into random access units in consideration of low-delay communication between vehicles.
  • the three-dimensional map or the like which is the map data downloaded from the server, the three-dimensional space is divided into large random access units as compared with the case of inter-vehicle communication.
  • Data in the area that tends to be an occlusion area is divided into fine random access units as low-delay data.
  • each vehicle Because the front is more important when driving at high speed, each vehicle creates a SWLD with a narrow viewing angle in small random access units when driving at high speed.
  • the preceding vehicle can reduce the transmission amount by removing the point cloud in that area. Good.
  • FIG. 9 is a diagram showing an example of a target space of three-dimensional data transmitted to a following vehicle or the like.
  • the vehicle 801 uses three-dimensional data such as a point cloud (point cloud) included in a rectangular parallelepiped space 802 having a width W, a height H, and a depth D at a distance L from the vehicle 801 in front of the vehicle 801 for a time of ⁇ t. At intervals, it is sent to the traffic monitoring cloud that monitors the road conditions or to the following vehicle.
  • a point cloud point cloud
  • the vehicle 801 changes the three-dimensional data included in the space 802 that has been transmitted in the past due to a vehicle or a person entering the space 802 from the outside, the three-dimensional data of the changed space Also send.
  • FIG. 9 shows an example in which the shape of the space 802 is a rectangular parallelepiped
  • the space 802 may include a space on the front road which is a blind spot from the following vehicle, and does not necessarily have to be a rectangular parallelepiped. ..
  • the distance L be set to a distance at which the following vehicle that has received the three-dimensional data can safely stop.
  • the width W is set to a value larger than at least the width of the lane in which the vehicle 801 is traveling. More preferably, the width W is set to a size that includes adjacent spaces such as left and right lanes or roadside zones.
  • the capacity of the three-dimensional data transmitted can be effectively reduced, and communication delay and cost can be reduced. it can.
  • FIG. 10 is a diagram showing a configuration of a three-dimensional map and a sensor information transmission / reception system according to the present embodiment.
  • the system includes a server 901 and client devices 902A and 902B.
  • client devices 902A and 902B are not particularly distinguished, they are also referred to as the client devices 902.
  • the client device 902 is, for example, an in-vehicle device mounted on a moving body such as a vehicle.
  • the server 901 is, for example, a traffic monitoring cloud or the like, and can communicate with a plurality of client devices 902.
  • the server 901 transmits a three-dimensional map composed of a point cloud to the client device 902.
  • the configuration of the three-dimensional map is not limited to the point cloud, and may represent other three-dimensional data such as a mesh structure.
  • the client device 902 transmits the sensor information acquired by the client device 902 to the server 901.
  • the sensor information includes, for example, at least one of LiDAR acquisition information, visible light image, infrared image, depth image, sensor position information, and speed information.
  • the data sent and received between the server 901 and the client device 902 may be compressed to reduce the data, or may remain uncompressed to maintain the accuracy of the data.
  • a three-dimensional compression method based on an octa-tree structure can be used for the point cloud.
  • a two-dimensional image compression method can be used for visible light images, infrared images, and depth images.
  • the two-dimensional image compression method is, for example, MPEG-4 AVC or HEVC standardized by MPEG.
  • the server 901 transmits the three-dimensional map managed by the server 901 to the client device 902 in response to the transmission request of the three-dimensional map from the client device 902.
  • the server 901 may transmit the three-dimensional map without waiting for the three-dimensional map transmission request from the client device 902.
  • the server 901 may broadcast a three-dimensional map to one or more client devices 902 in a predetermined space.
  • the server 901 may transmit a three-dimensional map suitable for the position of the client device 902 to the client device 902 that has received the transmission request once at regular intervals.
  • the server 901 may transmit the three-dimensional map to the client device 902 every time the three-dimensional map managed by the server 901 is updated.
  • the client device 902 issues a three-dimensional map transmission request to the server 901. For example, when the client device 902 wants to perform self-position estimation during traveling, the client device 902 transmits a transmission request for a three-dimensional map to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 may issue a transmission request for the three-dimensional map to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901 before a certain time when the client device 902 goes out. For example, when the client device 902 exists within a predetermined distance from the boundary of the space indicated by the three-dimensional map held by the client device 902, the client device 902 issues a three-dimensional map transmission request to the server 901. You may. If the movement route and movement speed of the client device 902 are known, the time when the client device 902 goes out is predicted from the space indicated by the three-dimensional map held by the client device 902. You may.
  • the client device 902 may issue a three-dimensional map transmission request to the server 901.
  • the client device 902 transmits the sensor information to the server 901 in response to the sensor information transmission request transmitted from the server 901.
  • the client device 902 may send the sensor information to the server 901 without waiting for the sensor information transmission request from the server 901. For example, once the client device 902 receives a request for transmitting sensor information from the server 901, the client device 902 may periodically transmit the sensor information to the server 901 for a certain period of time. Further, when the error at the time of alignment between the three-dimensional data created by the client device 902 based on the sensor information and the three-dimensional map obtained from the server 901 is equal to or more than a certain value, the client device 902 is located around the client device 902. It may be determined that the three-dimensional map may have changed, and that fact and the sensor information may be transmitted to the server 901.
  • the server 901 issues a sensor information transmission request to the client device 902.
  • the server 901 receives the position information of the client device 902 such as GPS from the client device 902.
  • the server 901 determines that the client device 902 is approaching a space with little information in the three-dimensional map managed by the server 901 based on the position information of the client device 902
  • the server 901 determines that the client device 902 is approaching a space with little information, and the client 901 generates a new three-dimensional map.
  • a request for transmitting sensor information is sent to the device 902.
  • the server 901 issues a sensor information transmission request when it wants to update the three-dimensional map, when it wants to check the road condition at the time of snowfall or disaster, when it wants to check the traffic jam situation, or when it wants to check the incident accident situation. May be good.
  • the client device 902 may set the data amount of the sensor information to be transmitted to the server 901 according to the communication state or the band at the time of receiving the transmission request of the sensor information received from the server 901.
  • Setting the amount of sensor information data to be transmitted to the server 901 means, for example, increasing or decreasing the data itself, or appropriately selecting a compression method.
  • FIG. 11 is a block diagram showing a configuration example of the client device 902.
  • the client device 902 receives a three-dimensional map composed of a point cloud or the like from the server 901, and estimates the self-position of the client device 902 from the three-dimensional data created based on the sensor information of the client device 902. Further, the client device 902 transmits the acquired sensor information to the server 901.
  • the client device 902 includes a data reception unit 1011, a communication unit 1012, a reception control unit 1013, a format conversion unit 1014, a plurality of sensors 1015, a three-dimensional data creation unit 1016, and a three-dimensional image processing unit 1017. It includes a three-dimensional data storage unit 1018, a format conversion unit 1019, a communication unit 1020, a transmission control unit 1021, and a data transmission unit 1022.
  • the data receiving unit 1011 receives the three-dimensional map 1031 from the server 901.
  • the three-dimensional map 1031 is data including a point cloud such as WLD or SWLD.
  • the three-dimensional map 1031 may include either compressed data or uncompressed data.
  • the communication unit 1012 communicates with the server 901 and transmits a data transmission request (for example, a three-dimensional map transmission request) or the like to the server 901.
  • a data transmission request for example, a three-dimensional map transmission request
  • the reception control unit 1013 exchanges information such as the corresponding format with the communication destination via the communication unit 1012, and establishes communication with the communication destination.
  • the format conversion unit 1014 generates the three-dimensional map 1032 by performing format conversion or the like on the three-dimensional map 1031 received by the data receiving unit 1011. Further, the format conversion unit 1014 performs decompression or decoding processing when the three-dimensional map 1031 is compressed or encoded. If the three-dimensional map 1031 is uncompressed data, the format conversion unit 1014 does not perform decompression or decoding processing.
  • the plurality of sensors 1015 are a group of sensors that acquire information outside the vehicle on which the client device 902 is mounted, such as a LiDAR, a visible light camera, an infrared camera, or a depth sensor, and generate sensor information 1033.
  • the sensor information 1033 is three-dimensional data such as a point cloud (point cloud data) when the sensor 1015 is a laser sensor such as LiDAR.
  • the number of sensors 1015 does not have to be plural.
  • the three-dimensional data creation unit 1016 creates three-dimensional data 1034 around the own vehicle based on the sensor information 1033. For example, the three-dimensional data creation unit 1016 creates point cloud data with color information around the own vehicle by using the information acquired by LiDAR and the visible light image obtained by the visible light camera.
  • the three-dimensional image processing unit 1017 performs self-position estimation processing and the like of the own vehicle by using the received three-dimensional map 1032 such as a point cloud and the three-dimensional data 1034 around the own vehicle generated from the sensor information 1033. ..
  • the three-dimensional image processing unit 1017 creates three-dimensional data 1035 around the own vehicle by synthesizing the three-dimensional map 1032 and the three-dimensional data 1034, and estimates the self-position using the created three-dimensional data 1035. Processing may be performed.
  • the three-dimensional data storage unit 1018 stores the three-dimensional map 1032, the three-dimensional data 1034, the three-dimensional data 1035, and the like.
  • the format conversion unit 1019 generates the sensor information 1037 by converting the sensor information 1033 into a format supported by the receiving side.
  • the format conversion unit 1019 may reduce the amount of data by compressing or encoding the sensor information 1037. Further, the format conversion unit 1019 may omit the process when it is not necessary to perform the format conversion. Further, the format conversion unit 1019 may control the amount of data to be transmitted according to the designation of the transmission range.
  • the communication unit 1020 communicates with the server 901 and receives a data transmission request (sensor information transmission request) and the like from the server 901.
  • the transmission control unit 1021 exchanges information such as compatible formats with the communication destination via the communication unit 1020 to establish communication.
  • the data transmission unit 1022 transmits the sensor information 1037 to the server 901.
  • the sensor information 1037 includes a plurality of sensors such as information acquired by LiDAR, a brightness image acquired by a visible light camera, an infrared image acquired by an infrared camera, a depth image acquired by a depth sensor, sensor position information, and speed information. Includes information acquired by 1015.
  • FIG. 12 is a block diagram showing a configuration example of the server 901.
  • the server 901 receives the sensor information transmitted from the client device 902, and creates three-dimensional data based on the received sensor information.
  • the server 901 updates the three-dimensional map managed by the server 901 by using the created three-dimensional data. Further, the server 901 transmits the updated three-dimensional map to the client device 902 in response to the transmission request of the three-dimensional map from the client device 902.
  • the server 901 includes a data reception unit 1111, a communication unit 1112, a reception control unit 1113, a format conversion unit 1114, a three-dimensional data creation unit 1116, a three-dimensional data synthesis unit 1117, and a three-dimensional data storage unit 1118. , A format conversion unit 1119, a communication unit 1120, a transmission control unit 1121, and a data transmission unit 1122.
  • the data receiving unit 1111 receives the sensor information 1037 from the client device 902.
  • the sensor information 1037 includes, for example, information acquired by LiDAR, a brightness image acquired by a visible light camera, an infrared image acquired by an infrared camera, a depth image acquired by a depth sensor, sensor position information, speed information, and the like.
  • the communication unit 1112 communicates with the client device 902 and transmits a data transmission request (for example, a sensor information transmission request) or the like to the client device 902.
  • a data transmission request for example, a sensor information transmission request
  • the reception control unit 1113 exchanges information such as the corresponding format with the communication destination via the communication unit 1112 to establish communication.
  • the format conversion unit 1114 When the received sensor information 1037 is compressed or encoded, the format conversion unit 1114 generates the sensor information 1132 by performing decompression or decoding processing. If the sensor information 1037 is uncompressed data, the format conversion unit 1114 does not perform decompression or decoding processing.
  • the three-dimensional data creation unit 1116 creates three-dimensional data 1134 around the client device 902 based on the sensor information 1132. For example, the three-dimensional data creation unit 1116 creates point cloud data with color information around the client device 902 using the information acquired by LiDAR and the visible light image obtained by the visible light camera.
  • the 3D data synthesis unit 1117 updates the 3D map 1135 by synthesizing the 3D data 1134 created based on the sensor information 1132 with the 3D map 1135 managed by the server 901.
  • the three-dimensional data storage unit 1118 stores the three-dimensional map 1135 and the like.
  • the format conversion unit 1119 generates the 3D map 1031 by converting the 3D map 1135 into a format supported by the receiving side.
  • the format conversion unit 1119 may reduce the amount of data by compressing or encoding the three-dimensional map 1135. Further, the format conversion unit 1119 may omit the process when it is not necessary to perform the format conversion. Further, the format conversion unit 1119 may control the amount of data to be transmitted according to the designation of the transmission range.
  • the communication unit 1120 communicates with the client device 902 and receives a data transmission request (three-dimensional map transmission request) or the like from the client device 902.
  • the transmission control unit 1121 exchanges information such as the corresponding format with the communication destination via the communication unit 1120 to establish communication.
  • the data transmission unit 1122 transmits the three-dimensional map 1031 to the client device 902.
  • the three-dimensional map 1031 is data including a point cloud such as WLD or SWLD.
  • the three-dimensional map 1031 may include either compressed data or uncompressed data.
  • FIG. 13 is a flowchart showing an operation when the client device 902 acquires a three-dimensional map.
  • the client device 902 requests the server 901 to transmit a three-dimensional map (point cloud, etc.) (S1001). At this time, the client device 902 may request the server 901 to transmit a three-dimensional map related to the position information by transmitting the position information of the client device 902 obtained by GPS or the like together.
  • a three-dimensional map point cloud, etc.
  • the client device 902 receives the three-dimensional map from the server 901 (S1002). If the received 3D map is compressed data, the client device 902 decodes the received 3D map to generate an uncompressed 3D map (S1003).
  • the client device 902 creates three-dimensional data 1034 around the client device 902 from the sensor information 1033 obtained by the plurality of sensors 1015 (S1004).
  • the client device 902 estimates the self-position of the client device 902 using the three-dimensional map 1032 received from the server 901 and the three-dimensional data 1034 created from the sensor information 1033 (S1005).
  • FIG. 14 is a flowchart showing an operation at the time of transmission of sensor information by the client device 902.
  • the client device 902 receives the sensor information transmission request from the server 901 (S1011).
  • the client device 902 transmits the sensor information 1037 to the server 901 (S1012).
  • the sensor information 1033 includes a plurality of information obtained by the plurality of sensors 1015
  • the client device 902 may generate the sensor information 1037 by compressing each information by a compression method suitable for each information. Good.
  • FIG. 15 is a flowchart showing an operation when the server 901 acquires sensor information.
  • the server 901 requests the client device 902 to transmit the sensor information (S1021).
  • the server 901 receives the sensor information 1037 transmitted from the client device 902 in response to the request (S1022).
  • the server 901 creates three-dimensional data 1134 using the received sensor information 1037 (S1023).
  • the server 901 reflects the created three-dimensional data 1134 on the three-dimensional map 1135 (S1024).
  • FIG. 16 is a flowchart showing the operation when the server 901 transmits the three-dimensional map.
  • the server 901 receives a three-dimensional map transmission request from the client device 902 (S1031).
  • the server 901 that has received the three-dimensional map transmission request transmits the three-dimensional map 1031 to the client device 902 (S1032).
  • the server 901 may extract a three-dimensional map in the vicinity thereof according to the position information of the client device 902 and transmit the extracted three-dimensional map.
  • the server 901 may compress the three-dimensional map composed of the point cloud by using, for example, a compression method based on an octa-tree structure, and transmit the compressed three-dimensional map.
  • the server 901 creates three-dimensional data 1134 near the position of the client device 902 using the sensor information 1037 received from the client device 902. Next, the server 901 calculates the difference between the three-dimensional data 1134 and the three-dimensional map 1135 by matching the created three-dimensional data 1134 with the three-dimensional map 1135 of the same area managed by the server 901. .. When the difference is equal to or greater than a predetermined threshold value, the server 901 determines that some abnormality has occurred in the vicinity of the client device 902. For example, when land subsidence occurs due to a natural disaster such as an earthquake, a large difference occurs between the 3D map 1135 managed by the server 901 and the 3D data 1134 created based on the sensor information 1037. Can be considered.
  • the sensor information 1037 may include information indicating at least one of the sensor type, the sensor performance, and the sensor model number. Further, a class ID or the like corresponding to the performance of the sensor may be added to the sensor information 1037. For example, when the sensor information 1037 is the information acquired by LiDAR, the sensor capable of acquiring information with an accuracy of several mm is class 1, the sensor capable of acquiring information with an accuracy of several cm is class 2, and the sensor is united with several meters. As in class 3, it is conceivable to assign an identifier to the performance of the sensor that can acquire information with accuracy. Further, the server 901 may estimate the performance information of the sensor and the like from the model number of the client device 902.
  • the server 901 may determine the sensor spec information from the vehicle model of the vehicle. In this case, the server 901 may acquire the vehicle type information of the vehicle in advance, or the sensor information may include the information. Further, the server 901 may switch the degree of correction for the three-dimensional data 1134 created by using the sensor information 1037 by using the acquired sensor information 1037. For example, if the sensor performance is high accuracy (class 1), the server 901 does not make corrections to the 3D data 1134. When the sensor performance is low accuracy (class 3), the server 901 applies a correction to the three-dimensional data 1134 according to the accuracy of the sensor. For example, in the server 901, the lower the accuracy of the sensor, the stronger the degree (strength) of the correction.
  • the server 901 may simultaneously issue a transmission request for sensor information to a plurality of client devices 902 in a certain space.
  • the server 901 receives a plurality of sensor information from the plurality of client devices 902, it is not necessary to use all the sensor information for creating the three-dimensional data 1134.
  • the sensor to be used depends on the performance of the sensor. Information may be selected.
  • the server 901 selects highly accurate sensor information (class 1) from a plurality of received sensor information, and creates 3D data 1134 using the selected sensor information. You may.
  • the server 901 is not limited to a server such as a traffic monitoring cloud, and may be another client device (vehicle-mounted).
  • FIG. 17 is a diagram showing a system configuration in this case.
  • the client device 902C issues a sensor information transmission request to the nearby client device 902A, and acquires the sensor information from the client device 902A. Then, the client device 902C creates three-dimensional data using the acquired sensor information of the client device 902A, and updates the three-dimensional map of the client device 902C. As a result, the client device 902C can generate a three-dimensional map of the space that can be acquired from the client device 902A by utilizing the performance of the client device 902C. For example, it is considered that such a case occurs when the performance of the client device 902C is high.
  • the client device 902A that provided the sensor information is given the right to acquire the highly accurate three-dimensional map generated by the client device 902C.
  • the client device 902A receives a highly accurate 3D map from the client device 902C in accordance with its rights.
  • the client device 902C may issue a request for transmitting sensor information to a plurality of nearby client devices 902 (client device 902A and client device 902B).
  • client device 902A and client device 902B client devices 902
  • the client device 902C can create three-dimensional data using the sensor information obtained by this high-performance sensor.
  • FIG. 18 is a block diagram showing the functional configurations of the server 901 and the client device 902.
  • the server 901 includes, for example, a three-dimensional map compression / decoding processing unit 1201 that compresses and decodes a three-dimensional map, and a sensor information compression / decoding processing unit 1202 that compresses and decodes sensor information.
  • the client device 902 includes a three-dimensional map decoding processing unit 1211 and a sensor information compression processing unit 1212.
  • the three-dimensional map decoding processing unit 1211 receives the encoded data of the compressed three-dimensional map, decodes the encoded data, and acquires the three-dimensional map.
  • the sensor information compression processing unit 1212 compresses the sensor information itself instead of the three-dimensional data created from the acquired sensor information, and transmits the compressed sensor information encoded data to the server 901.
  • the client device 902 may internally hold a processing unit (device or LSI) that performs a process of decoding a three-dimensional map (point cloud, etc.), and the three-dimensional data of the three-dimensional map (point cloud, etc.). It is not necessary to hold a processing unit that performs processing for compressing. As a result, the cost and power consumption of the client device 902 can be suppressed.
  • the client device 902 is mounted on the moving body, and is obtained from the sensor information 1033 indicating the surrounding condition of the moving body, which is obtained by the sensor 1015 mounted on the moving body. Create peripheral three-dimensional data 1034.
  • the client device 902 estimates the self-position of the moving body using the created three-dimensional data 1034.
  • the client device 902 transmits the acquired sensor information 1033 to the server 901 or another mobile body 902.
  • the client device 902 transmits the sensor information 1033 to the server 901 and the like.
  • the amount of transmitted data can be reduced as compared with the case of transmitting three-dimensional data.
  • the processing amount of the client device 902 can be reduced. Therefore, the client device 902 can reduce the amount of data to be transmitted or simplify the configuration of the device.
  • the client device 902 further transmits a three-dimensional map transmission request to the server 901, and receives the three-dimensional map 1031 from the server 901. In estimating the self-position, the client device 902 estimates the self-position using the three-dimensional data 1034 and the three-dimensional map 1032.
  • the sensor information 1033 includes at least one of the information obtained by the laser sensor, the luminance image, the infrared image, the depth image, the position information of the sensor, and the speed information of the sensor.
  • the sensor information 1033 includes information indicating the performance of the sensor.
  • the client device 902 encodes or compresses the sensor information 1033, and in transmitting the sensor information, transmits the encoded or compressed sensor information 1037 to the server 901 or another moving body 902. According to this, the client device 902 can reduce the amount of data to be transmitted.
  • the client device 902 includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the server 901 can communicate with the client device 902 mounted on the mobile body, and the sensor information 1037 indicating the surrounding situation of the mobile body obtained by the sensor 1015 mounted on the mobile body is obtained. Is received from the client device 902. The server 901 creates three-dimensional data 1134 around the moving body from the received sensor information 1037.
  • the server 901 creates the three-dimensional data 1134 using the sensor information 1037 transmitted from the client device 902. As a result, there is a possibility that the amount of data to be transmitted can be reduced as compared with the case where the client device 902 transmits three-dimensional data. Further, since it is not necessary for the client device 902 to perform processing such as compression or coding of three-dimensional data, the processing amount of the client device 902 can be reduced. Therefore, the server 901 can reduce the amount of data to be transmitted or simplify the configuration of the device.
  • the server 901 further transmits a transmission request for sensor information to the client device 902.
  • the server 901 updates the three-dimensional map 1135 using the created three-dimensional data 1134, and sends the three-dimensional map 1135 to the client device 902 in response to the transmission request of the three-dimensional map 1135 from the client device 902. Send.
  • the sensor information 1037 includes at least one of the information obtained by the laser sensor, the luminance image, the infrared image, the depth image, the position information of the sensor, and the speed information of the sensor.
  • the sensor information 1037 includes information indicating the performance of the sensor.
  • the server 901 further corrects the three-dimensional data according to the performance of the sensor. According to this, the three-dimensional data creation method can improve the quality of the three-dimensional data.
  • the server 901 receives a plurality of sensor information 1037 from the plurality of client devices 902, and based on a plurality of information indicating the performance of the sensor included in the plurality of sensor information 1037, the server 901 receives three-dimensional data 1134.
  • the sensor information 1037 used for creating the above is selected. According to this, the server 901 can improve the quality of the three-dimensional data 1134.
  • the server 901 decodes or decompresses the received sensor information 1037, and creates three-dimensional data 1134 from the decoded or decompressed sensor information 1132. According to this, the server 901 can reduce the amount of data to be transmitted.
  • the server 901 includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • FIG. 19 is a diagram showing a configuration of a system according to the present embodiment.
  • the system shown in FIG. 19 includes a server 2001, a client device 2002A, and a client device 2002B.
  • the client device 2002A and the client device 2002B are mounted on a moving body such as a vehicle, and transmit sensor information to the server 2001.
  • the server 2001 transmits a three-dimensional map (point cloud) to the client device 2002A and the client device 2002B.
  • the client device 2002A includes a sensor information acquisition unit 2011, a storage unit 2012, and a data transmission availability determination unit 2013.
  • the configuration of the client device 2002B is also the same. Further, in the following, when the client device 2002A and the client device 2002B are not particularly distinguished, they are also described as the client device 2002.
  • FIG. 20 is a flowchart showing the operation of the client device 2002 according to the present embodiment.
  • the sensor information acquisition unit 2011 acquires various sensor information using a sensor (sensor group) mounted on the moving body. That is, the sensor information acquisition unit 2011 acquires sensor information indicating the surrounding condition of the moving body, which is obtained by the sensor (sensor group) mounted on the moving body. Further, the sensor information acquisition unit 2011 stores the acquired sensor information in the storage unit 2012.
  • This sensor information includes at least one of LiDAR acquisition information, visible light image, infrared image and depth image. Further, the sensor information may include at least one of sensor position information, speed information, acquisition time information, and acquisition location information.
  • the sensor position information indicates the position of the sensor from which the sensor information has been acquired.
  • the velocity information indicates the velocity of the moving object when the sensor acquires the sensor information.
  • the acquisition time information indicates the time when the sensor information is acquired by the sensor.
  • the acquisition location information indicates the position of the moving body or the sensor when the sensor information is acquired by the sensor.
  • the data transmission availability determination unit 2013 determines whether the mobile body (client device 2002) exists in an environment in which sensor information can be transmitted to the server 2001 (S2002). For example, the data transmission availability determination unit 2013 may specify the location and time of the client device 2002 by using information such as GPS, and determine whether or not the data can be transmitted. In addition, the data transmission availability determination unit 2013 may determine whether or not data can be transmitted depending on whether or not it can be connected to a specific access point.
  • the client device 2002 determines that the moving body exists in an environment in which the sensor information can be transmitted to the server 2001 (Yes in S2002), the client device 2002 transmits the sensor information to the server 2001 (S2003). That is, when the client device 2002 is in a situation where the sensor information can be transmitted to the server 2001, the client device 2002 transmits the held sensor information to the server 2001.
  • a millimeter-wave access point capable of high-speed communication is installed at an intersection or the like.
  • the sensor information held by the client device 2002 is transmitted to the server 2001 at high speed by using millimeter wave communication.
  • the client device 2002 deletes the sensor information transmitted to the server 2001 from the storage unit 2012 (S2004).
  • the client device 2002 may delete the sensor information when the sensor information not transmitted to the server 2001 satisfies a predetermined condition.
  • the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition time of the sensor information to be held is older than a certain time before the current time. That is, the client device 2002 may delete the sensor information from the storage unit 2012 when the difference between the time when the sensor information is acquired by the sensor and the current time exceeds a predetermined time. Further, the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition location of the sensor information to be held is more than a certain distance from the current position.
  • the sensor information May be deleted from the storage unit 2012.
  • the capacity of the storage unit 2012 of the client device 2002 can be suppressed.
  • the client device 2002 performs the processing after step S2001 again. Further, when the acquisition of the sensor information by the client device 2002 is completed (Yes in S2005), the client device 2002 ends the process.
  • the client device 2002 may select the sensor information to be transmitted to the server 2001 according to the communication status. For example, when high-speed communication is possible, the client device 2002 preferentially transmits sensor information (for example, LiDAR acquisition information) having a large size held in the storage unit 2012. Further, when high-speed communication is difficult, the client device 2002 transmits sensor information (for example, a visible light image) having a small size and a high priority held in the storage unit 2012. As a result, the client device 2002 can efficiently transmit the sensor information held in the storage unit 2012 to the server 2001 according to the network conditions.
  • sensor information for example, LiDAR acquisition information
  • sensor information for example, a visible light image
  • the client device 2002 may acquire the time information indicating the current time and the location information indicating the current location from the server 2001. Further, the client device 2002 may determine the acquisition time and acquisition location of the sensor information based on the acquired time information and location information. That is, the client device 2002 may acquire the time information from the server 2001 and generate the acquisition time information using the acquired time information. Further, the client device 2002 may acquire the location information from the server 2001 and generate the acquisition location information using the acquired location information.
  • the server 2001 and the client device 2002 synchronize the time by using a mechanism such as NTP (Network Time Protocol) or PTP (Precision Time Protocol).
  • NTP Network Time Protocol
  • PTP Precision Time Protocol
  • the client device 2002 can acquire accurate time information.
  • the server 2001 can handle the sensor information indicating the synchronized time.
  • the time synchronization mechanism may be any method other than NTP or PTP.
  • GPS information may be used as the time information and location information.
  • the server 2001 may acquire sensor information from a plurality of client devices 2002 by designating a time or place. For example, in the event of an accident, the server 2001 broadcasts a sensor information transmission request to a plurality of client devices 2002 by designating the time and place of the accident in order to search for a client in the vicinity thereof. Then, the client device 2002 having the sensor information of the corresponding time and place transmits the sensor information to the server 2001. That is, the client device 2002 receives the sensor information transmission request including the designated information for designating the place and time from the server 2001. The client device 2002 determines that the storage unit 2012 stores the sensor information obtained at the place and time indicated by the designated information, and that the moving body exists in an environment in which the sensor information can be transmitted to the server 2001.
  • the sensor information obtained at the place and time indicated by the designated information is transmitted to the server 2001.
  • the server 2001 can acquire sensor information related to the occurrence of an accident from a plurality of client devices 2002 and use it for accident analysis and the like.
  • the client device 2002 may refuse to transmit the sensor information when it receives the sensor information transmission request from the server 2001. Further, the client device 2002 may set in advance which sensor information among the plurality of sensor information can be transmitted. Alternatively, the server 2001 may inquire of the client device 2002 whether or not the sensor information can be transmitted each time.
  • points may be given to the client device 2002 that has transmitted the sensor information to the server 2001. This point can be used for payment of, for example, gasoline purchase cost, EV (Electric Vehicle) charging cost, highway toll, or rental car cost.
  • the server 2001 may delete the information for identifying the client device 2002, which is the source of the sensor information, after acquiring the sensor information. For example, this information is information such as the network address of the client device 2002.
  • the sensor information can be anonymized, so that the user of the client device 2002 can safely transmit the sensor information from the client device 2002 to the server 2001.
  • the server 2001 may be composed of a plurality of servers. For example, by sharing sensor information among a plurality of servers, even if one server fails, another server can communicate with the client device 2002. As a result, it is possible to avoid stopping the service due to a server failure.
  • the designated location specified in the sensor information transmission request indicates the position where the accident occurred, and may differ from the position of the client device 2002 at the designated time specified in the sensor information transmission request. Therefore, the server 2001 can request the client device 2002 existing in the range to acquire information by designating a range such as within XXm around the designated place. Similarly, with respect to the designated time, the server 2001 may specify a range such as within N seconds before and after a certain time. As a result, the server 2001 can acquire the sensor information from the client device 2002 that exists at "time: t-N to t + N, location: within XXm from the absolute position S". When transmitting three-dimensional data such as LiDAR, the client device 2002 may transmit the data generated immediately after the time t.
  • three-dimensional data such as LiDAR
  • the server 2001 may separately specify, as the designated location, the information indicating the location of the client device 2002 for which the sensor information is to be acquired and the location where the sensor information is desired. For example, the server 2001 specifies that the sensor information including at least the range from the absolute position S to YYm is acquired from the client device 2002 existing within XXm from the absolute position S.
  • the client device 2002 selects the 3D data of one or more randomly accessible units so as to include at least the sensor information in the specified range.
  • the client device 2002 may transmit a plurality of time-consecutive image data including at least a frame immediately before or after the time t.
  • the client device 2002 uses a network to be used according to the priority notified from the server 2001. You may choose. Alternatively, the client device 2002 itself may select a network that can secure an appropriate bandwidth based on the size of the transmitted data. Alternatively, the client device 2002 may select a network to be used based on the cost for data transmission and the like. Further, the transmission request from the server 2001 may include information indicating a transmission deadline, such as transmission when the client device 2002 can start transmission by time T. The server 2001 may issue a transmission request again if sufficient sensor information cannot be acquired within the deadline.
  • a transmission deadline such as transmission when the client device 2002 can start transmission by time T.
  • the sensor information may include header information indicating the characteristics of the sensor data together with the compressed or uncompressed sensor data.
  • the client device 2002 may transmit the header information to the server 2001 via a physical network or communication protocol different from the sensor data. For example, the client device 2002 transmits the header information to the server 2001 prior to the transmission of the sensor data.
  • the server 2001 determines whether or not to acquire the sensor data of the client device 2002 based on the analysis result of the header information.
  • the header information may include information indicating the point cloud acquisition density, elevation angle, or frame rate of LiDAR, or the resolution, SN ratio, or frame rate of the visible light image. As a result, the server 2001 can acquire the sensor information from the client device 2002 having the sensor data of the determined quality.
  • the client device 2002 is mounted on the moving body, acquires the sensor information indicating the surrounding situation of the moving body obtained by the sensor mounted on the moving body, and stores the sensor information in the storage unit 2012. ..
  • the client device 2002 determines whether the moving body exists in an environment capable of transmitting sensor information to the server 2001, and if it determines that the moving body exists in an environment capable of transmitting sensor information to the server, the client device 2002 transmits the sensor information to the server 2001. Send to.
  • the client device 2002 further creates three-dimensional data around the moving body from the sensor information, and estimates the self-position of the moving body using the created three-dimensional data.
  • the client device 2002 further transmits a three-dimensional map transmission request to the server 2001, and receives the three-dimensional map from the server 2001.
  • the client device 2002 estimates the self-position by using the three-dimensional data and the three-dimensional map.
  • processing by the client device 2002 may be realized as an information transmission method in the client device 2002.
  • the client device 2002 includes a processor and a memory, and the processor may perform the above processing using the memory.
  • FIG. 21 is a diagram showing a configuration of a sensor information collection system according to the present embodiment.
  • the sensor information collection system according to the present embodiment includes terminal 2021A, terminal 2021B, communication device 2022A, communication device 2022B, network 2023, data collection server 2024, and map server 2025. , The client device 2026 and the like.
  • terminal 2021A and the terminal 2021B are not particularly distinguished, they are also described as the terminal 2021.
  • the communication device 2022A and the communication device 2022B are not particularly distinguished, they are also described as the communication device 2022.
  • the data collection server 2024 collects data such as sensor data obtained by the sensor included in the terminal 2021 as position-related data associated with the position in the three-dimensional space.
  • the sensor data is, for example, data acquired by using a sensor included in the terminal 2021 such as a state around the terminal 2021 or an internal state of the terminal 2021.
  • the terminal 2021 sends sensor data collected from one or more sensor devices at a position capable of directly communicating with the terminal 2021 or relaying one or a plurality of relay devices by the same communication method to the data collection server 2024. Send.
  • the data included in the position-related data may include, for example, information indicating the operation status of the terminal itself or the device included in the terminal, the operation log, the usage status of the service, and the like. Further, the data included in the position-related data may include information in which the identifier of the terminal 2021 is associated with the position or movement route of the terminal 2021.
  • the position-indicating information included in the position-related data is associated with the position-indicating information in three-dimensional data such as three-dimensional map data.
  • the details of the information indicating the position will be described later.
  • the position-related data includes the above-mentioned time information and the attributes of the data included in the position-related data, or information indicating the type of sensor (for example, model number) that generated the data, in addition to the position information which is the information indicating the position. It may contain at least one of.
  • the position information and the time information may be stored in the header area of the position-related data or the header area of the frame for storing the position-related data. Further, the position information and the time information may be transmitted and / or stored separately from the position-related data as metadata associated with the position-related data.
  • the map server 2025 is connected to the network 2023, for example, and transmits three-dimensional data such as three-dimensional map data in response to a request from another device such as the terminal 2021. Further, as described in each of the above-described embodiments, the map server 2025 may have a function of updating the three-dimensional data by using the sensor information transmitted from the terminal 2021.
  • the data collection server 2024 is connected to the network 2023, for example, collects position-related data from another device such as the terminal 2021, and stores the collected position-related data in a storage device inside or in another server. Further, the data collection server 2024 transmits the collected position-related data or the metadata of the three-dimensional map data generated based on the position-related data to the terminal 2021 in response to the request from the terminal 2021.
  • Network 2023 is a communication network such as the Internet.
  • the terminal 2021 is connected to the network 2023 via the communication device 2022.
  • the communication device 2022 communicates with the terminal 2021 while switching between one communication method or a plurality of communication methods.
  • the communication device 2022 is, for example, (1) a base station such as LTE (Long Term Evolution), (2) an access point (AP) such as WiFi or millimeter wave communication, and (3) LPWA such as SIGFOX, LoRaWAN or Wi-SUN. (Low Power Wide Area)
  • a communication satellite that communicates using a Gateway of Network or (4) a satellite communication method such as DVB-S2.
  • the base station may communicate with the terminal 2021 by a method classified into LPWA such as NB-IoT (Narrow Band-IoT) or LTE-M, or may switch between these methods and the terminal 2021. Communication may be performed.
  • LPWA Low Band-IoT
  • LTE-M Long Term Evolution
  • Communication may be performed.
  • the terminal 2021 has a function of communicating with a communication device 2022 that uses two types of communication methods, and a communication device that uses any of these communication methods, or is a plurality of these communication methods and a direct communication partner.
  • a communication device 2022 that uses two types of communication methods
  • a communication device that uses any of these communication methods, or is a plurality of these communication methods and a direct communication partner.
  • An example is given in which communication is performed with the map server 2025 or the data collection server 2024 while switching 2022, but the configuration of the sensor information collection system and the terminal 2021 is not limited to this.
  • the terminal 2021 may not have a communication function in a plurality of communication methods, but may have a function of communicating in any one communication method.
  • the terminal 2021 may support three or more communication methods. Further, the corresponding communication method may be different for each terminal 2021.
  • the terminal 2021 includes, for example, the configuration of the client device 902 shown in FIG.
  • the terminal 2021 estimates the position such as its own position using the received three-dimensional data. Further, the terminal 2021 generates position-related data by associating the sensor data acquired from the sensor with the position information obtained by the position estimation process.
  • the position information added to the position-related data indicates, for example, the position in the coordinate system used in the three-dimensional data.
  • the position information is a coordinate value represented by a value of latitude and longitude.
  • the terminal 2021 may include the coordinate value as well as the information indicating the coordinate system that is the reference of the coordinate value and the three-dimensional data used for the position estimation in the position information.
  • the coordinate values may include altitude information.
  • the position information may be associated with a unit of data or a unit of space that can be used for encoding the above-mentioned three-dimensional data.
  • This unit is, for example, WLD, GOS, SPC, VLM, VXL, or the like.
  • the position information is represented by an identifier for specifying a data unit such as an SPC corresponding to the position-related data.
  • the position information is information indicating three-dimensional data in which the three-dimensional space including the data unit such as SPC is encoded, or details in the SPC. It may include information indicating a different position.
  • the information indicating the three-dimensional data is, for example, a file name of the three-dimensional data.
  • the system generates the position-related data associated with the position information based on the position estimation using the three-dimensional data, so that the self-position of the client device (terminal 2021) acquired by GPS can be used. It is possible to add position information to the sensor information with higher accuracy than when the based position information is added to the sensor information. As a result, even when the position-related data is used by another device in another service, the position corresponding to the position-related data can be more accurately specified in the real space by performing the position estimation based on the same three-dimensional data. There is a possibility that it can be done.
  • the data transmitted from the terminal 2021 is position-related data
  • the data transmitted from the terminal 2021 may be data not associated with the position information.
  • the transmission / reception of the three-dimensional data or the sensor data described in the other embodiment may be performed via the network 2023 described in the present embodiment.
  • the position information added to the position-related data may be information indicating a position relative to a feature point in the three-dimensional data.
  • the feature point that serves as a reference for the position information is, for example, a feature point encoded as SWLD and notified to the terminal 2021 as three-dimensional data.
  • the information indicating the relative position with respect to the feature point is represented by, for example, a vector from the feature point to the point indicated by the position information, and may be information indicating the direction and distance from the feature point to the point indicated by the position information.
  • the information indicating the relative position with respect to the feature point may be information indicating the amount of displacement of each of the X-axis, Y-axis, and Z-axis from the feature point to the point indicated by the position information.
  • the information indicating the relative position with respect to the feature point may be information indicating the distance from each of the three or more feature points to the point indicated by the position information.
  • the relative position may not be the relative position of the point indicated by the position information expressed with respect to each feature point, but may be the relative position of each feature point expressed with reference to the point indicated by the position information.
  • An example of position information based on a position relative to a feature point includes information for specifying a reference feature point and information indicating the relative position of the point indicated by the position information with respect to the feature point.
  • the information indicating the relative position with respect to the feature point includes the coordinate axes used for deriving the relative position and the information indicating the type of the three-dimensional data. Alternatively, it may include information indicating the magnitude (scale, etc.) of the value of the information indicating the relative position per unit amount.
  • the position information may include information indicating a relative position with respect to each feature point for a plurality of feature points.
  • the terminal 2021 that tries to specify the position indicated by the position information in the real space has the position information from the position of the feature point estimated from the sensor data for each feature point.
  • the candidate points of the positions indicated by may be calculated, and the points obtained by averaging the calculated plurality of candidate points may be determined to be the points indicated by the position information. According to this configuration, the influence of an error when estimating the position of a feature point from the sensor data can be reduced, so that the estimation accuracy of the point indicated by the position information in the real space can be improved.
  • the position information includes information indicating a position relative to a plurality of feature points, even if there is a feature point that cannot be detected due to restrictions such as the type or performance of the sensor included in the terminal 2021, any of the plurality of feature points. If even one of them can be detected, the value of the point indicated by the position information can be estimated.
  • a point that can be identified from the sensor data can be used.
  • the points that can be identified from the sensor data are, for example, points within a region or points that satisfy predetermined conditions for feature point detection, such as the above-mentioned three-dimensional feature amount or feature amount of visible light data being equal to or greater than a threshold value.
  • markers installed in the real space may be used as feature points.
  • the marker may be detected and its position can be specified from the data acquired by using a sensor such as LiDER or a camera.
  • the marker is represented by a change in color or brightness value (reflectance), or a three-dimensional shape (unevenness, etc.).
  • a coordinate value indicating the position of the marker, a two-dimensional code or a bar code generated from the identifier of the marker, or the like may be used.
  • a light source that transmits an optical signal may be used as a marker.
  • a light source of an optical signal When a light source of an optical signal is used as a marker, not only information for acquiring a position such as a coordinate value or an identifier but also other data may be transmitted by the optical signal.
  • the optical signal connects to the wireless communication device with the content of the service according to the position of the marker, the address such as url for acquiring the content, or the identifier of the wireless communication device for receiving the provision of the service. It may include information indicating a wireless communication method for the purpose.
  • the terminal 2021 grasps the correspondence relationship of feature points between different data by using, for example, an identifier commonly used between data, or information or a table indicating the correspondence relationship of feature points between data. Further, when there is no information indicating the correspondence between the feature points, the terminal 2021 is the feature at the closest distance when the coordinates of the feature points in one three-dimensional data are converted to the positions in the other three-dimensional data space. A point may be determined to be a corresponding feature point.
  • the position information based on the relative position described above is used, even between terminals 2021 or services that use different 3D data, they are included in each 3D data or associated with each 3D data.
  • the position indicated by the position information can be specified or estimated based on a common feature point. As a result, it becomes possible to identify or estimate the same position with higher accuracy between terminals 2021 or services that use different three-dimensional data.
  • the data collection server 2024 may transfer the received position-related data to another data server.
  • the data collection server 2024 determines to which data server the received position-related data is to be transferred, and transfers the position-related data to the data server determined as the transfer destination.
  • the data collection server 2024 determines the transfer destination based on, for example, the determination rule of the transfer destination server preset in the data collection server 2024.
  • the determination rule of the transfer destination server is set, for example, in a transfer destination table in which the identifier associated with each terminal 2021 and the data server of the transfer destination are associated with each other.
  • the terminal 2021 adds an identifier associated with the terminal 2021 to the position-related data to be transmitted and transmits the data to the data collection server 2024.
  • the data collection server 2024 specifies the data server of the transfer destination corresponding to the identifier attached to the position-related data based on the determination rule of the transfer destination server using the transfer destination table or the like, and the position-related data is specified. Send to the data server. Further, the determination rule of the transfer destination server may be specified by the determination condition using the time or place where the position-related data is acquired.
  • the identifier associated with the transmission source terminal 2021 described above is, for example, an identifier unique to each terminal 2021, or an identifier indicating a group to which the terminal 2021 belongs.
  • the transfer destination table does not have to be a direct association between the identifier associated with the source terminal and the transfer destination data server.
  • the data collection server 2024 holds a management table that stores tag information assigned to each terminal 2021 and a transfer destination table that associates the tag information with the transfer destination data server.
  • the data collection server 2024 may determine the data server of the transfer destination based on the tag information by using the management table and the transfer destination table.
  • the tag information is, for example, control information for management or control information for service provision given to the type, model number, owner, group to which the terminal 2021 corresponds to the identifier, or other identifier.
  • an identifier unique to each sensor may be used instead of the identifier associated with the transmission source terminal 2021.
  • the determination rule of the transfer destination server may be set from the client device 2026.
  • the data collection server 2024 may determine a plurality of data servers as transfer destinations and transfer the received position-related data to the plurality of data servers. According to this configuration, for example, when backing up location-related data automatically, or in order to share location-related data with different services, location-related data is sent to a data server for providing each service. When it is necessary to do so, the data can be transferred as intended by changing the setting for the data collection server 2024. As a result, the man-hours required for constructing and changing the system can be reduced as compared with the case where the transmission destination of the position-related data is set in the individual terminals 2021.
  • the data collection server 2024 registers the data server specified by the transfer request signal as a new transfer destination in response to the transfer request signal received from the data server, and transfers the position-related data received thereafter to the data server. You may.
  • the data collection server 2024 stores the position-related data received from the terminal 2021 in the recording device, and requests the position-related data specified in the transmission request signal according to the transmission request signal received from the terminal 2021 or the data server. It may be transmitted to the terminal 2021 or the data server of.
  • the data collection server 2024 determines whether or not the location-related data can be provided to the requesting data server or terminal 2021, and if it is determined that the location-related data can be provided, the data collection server 2024 transfers or transmits the location-related data to the requesting data server or terminal 2021. May be done.
  • the data collection server 2024 When the request for the current position-related data is received from the client device 2026, the data collection server 2024 requests the terminal 2021 to transmit the position-related data even if the terminal 2021 does not transmit the position-related data. 2021 may transmit position-related data in response to the transmission request.
  • the terminal 2021 transmits the position information data to the data collection server 2024, but the data collection server 2024 collects the position-related data from the terminal 2021, such as the function of managing the terminal 2021. It may be provided with a function necessary for the above or a function used when collecting position-related data from the terminal 2021.
  • the data collection server 2024 may have a function of transmitting a data request signal requesting the transmission of position information data to the terminal 2021 and collecting position-related data.
  • Management information such as an address for communicating with the terminal 2021 to be collected data or an identifier unique to the terminal 2021 is registered in the data collection server 2024 in advance.
  • the data collection server 2024 collects position-related data from the terminal 2021 based on the registered management information.
  • the management information may include information such as the type of sensor included in the terminal 2021, the number of sensors included in the terminal 2021, and the communication method supported by the terminal 2021.
  • the data collection server 2024 may collect information such as the operating status or the current position of the terminal 2021 from the terminal 2021.
  • the registration of the management information may be performed from the client device 2026, or the process for registration may be started by the terminal 2021 transmitting the registration request to the data collection server 2024.
  • the data collection server 2024 may have a function of controlling communication with the terminal 2021.
  • Communication between the data collection server 2024 and the terminal 2021 is performed by a dedicated line provided by a service provider such as an MNO (Mobile Network Operator) or a MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network) configured Network. It may be a virtual dedicated line or the like. According to this configuration, communication between the terminal 2021 and the data collection server 2024 can be performed safely.
  • a service provider such as an MNO (Mobile Network Operator) or a MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network) configured Network. It may be a virtual dedicated line or the like. According to this configuration, communication between the terminal 2021 and the data collection server 2024 can be performed safely.
  • the data collection server 2024 may have a function of authenticating the terminal 2021 or a function of encrypting data transmitted to and received from the terminal 2021.
  • the authentication process of the terminal 2021 or the data encryption process is a terminal group including an identifier unique to the terminal 2021 or a plurality of terminals 2021 shared in advance between the data collection server 2024 and the terminal 2021. This is done using a unique identifier or the like.
  • This identifier is, for example, an IMSI (International Mobile Subsiver Identity), which is a unique number stored in a SIM (Subscriber Identity Module) card.
  • IMSI International Mobile Subsiver Identity
  • SIM Subscriber Identity Module
  • the process of authentication or data encryption between the data collection server 2024 and the terminal 2021 can be provided as long as both the data collection server 2024 and the terminal 2021 have a function to perform the process, and relays the data. It does not depend on the communication method used by the communication device 2022. Therefore, since the common authentication or encryption process can be used without considering whether the terminal 2021 uses the communication method, the convenience of the user's system construction is improved. However, the fact that it does not depend on the communication method used by the communication device 2022 that performs relay means that it is not essential to change the communication method according to the communication method. That is, for the purpose of improving the transmission efficiency or ensuring the safety, the authentication or data encryption process between the data collection server 2024 and the terminal 2021 may be switched according to the communication method used by the relay device.
  • the data collection server 2024 may provide the client device 2026 with a UI that manages data collection rules such as the type of location-related data collected from the terminal 2021 and the data collection schedule. As a result, the user can specify the terminal 2021 for collecting data using the client device 2026, the data collection time and frequency, and the like. Further, the data collection server 2024 may specify an area on the map on which data is to be collected and collect position-related data from the terminal 2021 included in the area.
  • the client device 2026 When the data collection rule is managed in units of terminals 2021, the client device 2026 presents, for example, a list of terminals 2021 or sensors to be managed on the screen. The user sets the necessity of data collection or the collection schedule for each item in the list.
  • the client device 2026 When designating an area on a map for which data is to be collected, the client device 2026 presents, for example, a two-dimensional or three-dimensional map of the area to be managed on the screen. The user selects an area on the displayed map to collect data.
  • the area selected on the map may be a circular or rectangular area centered on a point specified on the map, or may be a circular or rectangular area that can be specified by a drag operation.
  • the client device 2026 may also select areas in preset units such as cities, areas within cities, blocks, or major roads. Further, instead of specifying the area using a map, the area may be set by inputting the numerical values of latitude and longitude, or the area is selected from the list of candidate areas derived based on the input text information. May be done. Textual information may be, for example, the name of a region, city, or landmark.
  • an area on the map may be designated based on the position of the client device 2026 in the real space obtained from the sensor data. For example, the client device 2026 estimates its own position using sensor data, and data a region within a predetermined distance from a point on the map corresponding to the estimated position or a distance specified by the user. May be specified as the area to collect. Further, the client device 2026 may designate the sensing area of the sensor, that is, the area corresponding to the acquired sensor data as the area for collecting the data. Alternatively, the client device 2026 may designate an area based on the position corresponding to the sensor data specified by the user as an area for collecting data. The area or position on the map corresponding to the sensor data may be estimated by the client device 2026 or the data collection server 2024.
  • the data collection server 2024 When specifying in the area on the map, the data collection server 2024 identifies the terminal 2021 in the specified area by collecting the current position information of each terminal 2021, and positions the terminal 2021 with respect to the specified terminal 2021. You may request the transmission of relevant data. Further, the data collection server 2024 does not specify the terminal 2021 in the area, but the data collection server 2024 transmits information indicating the designated area to the terminal 2021, and the terminal 2021 itself is in the designated area. It may be determined whether or not it is, and if it is determined that it is within the specified area, the position-related data may be transmitted.
  • the data collection server 2024 transmits data such as a list or a map for providing the above-mentioned UI (User Interface) in the application executed by the client device 2026 to the client device 2026.
  • the data collection server 2024 may transmit not only data such as a list or a map but also an application program to the client device 2026.
  • the above-mentioned UI may be provided as content created by HTML or the like that can be displayed by a browser. Note that some data such as map data may be provided by a server other than the data collection server 2024 such as the map server 2025.
  • the client device 2026 transmits the input information to the data collection server 2024 as setting information when an input for notifying that the input is completed is performed, such as pressing a setting button by the user.
  • the data collection server 2024 transmits a signal for notifying the position-related data request or the position-related data collection rule to each terminal 2021 based on the setting information received from the client device 2026, and collects the position-related data. Do.
  • object information indicating the position of a power feeding unit such as a wireless power feeding antenna or a power feeding coil embedded in a road or a parking lot is included in the three-dimensional data or associated with the three-dimensional data.
  • a power feeding unit such as a wireless power feeding antenna or a power feeding coil embedded in a road or a parking lot is included in the three-dimensional data or associated with the three-dimensional data.
  • terminal 2021 such as a car or drone.
  • the vehicle or drone that has acquired the object information for charging automatically drives itself so that the position of the charging part such as the charging antenna or charging coil of the vehicle faces the area indicated by the object information. Move the position of and start charging.
  • the direction to move or the operation to be performed is presented to the driver or operator using the image or sound displayed on the screen.
  • the operation or maneuvering is stopped.
  • the image or sound presented to is switched, and charging is started.
  • the object information may not be information indicating the position of the power feeding unit, but may be information indicating an area where charging efficiency equal to or higher than a predetermined threshold value can be obtained by arranging the charging unit in the area.
  • the position of the object information may be represented by a point at the center of the region indicated by the object information, a region or line in a two-dimensional plane, or a region, line or plane in a three-dimensional space. Good.
  • the antenna for wireless charging provided in the terminal 2021 such as a car and the wireless embedded in the road or the like can be grasped.
  • the alignment with the feeding antenna can be performed with higher accuracy. As a result, the charging speed during wireless charging can be shortened and the charging efficiency can be improved.
  • the object information may be an object other than the feeding antenna.
  • the three-dimensional data includes the position of the AP of millimeter-wave wireless communication as object information.
  • the terminal 2021 can grasp the position of the AP in advance, so that the directivity of the beam can be directed in the direction of the object information and communication can be started.
  • it is possible to improve the communication quality such as improving the transmission speed, shortening the time until the start of communication, and extending the communicable period.
  • the object information may include information indicating the type of the object corresponding to the object information. Further, the object information should be executed by the terminal 2021 when the terminal 2021 is included in the area in the real space corresponding to the position of the object information on the three-dimensional data or within a range of a predetermined distance from the area. Information indicating the process may be included.
  • the object information may be provided by a server different from the server that provides the three-dimensional data.
  • the object group in which the object information used in the same service is stored may be provided as different data depending on the type of the target service or the target device. ..
  • the three-dimensional data used in combination with the object information may be WLD point cloud data or SWLD feature point data.
  • FIG. 22 is a diagram showing a structural example of a volume including a plurality of voxels.
  • FIG. 23 is a diagram showing an example in which the volume shown in FIG. 22 is converted into an ocree tree structure.
  • the leaves 1, 2 and 3 represent the voxels VXL1, VXL2 and VXL3 shown in FIG. 22, respectively, and represent the VXL including the point cloud (hereinafter, effective VXL).
  • the ocree is represented by, for example, a binary sequence of 0 and 1.
  • the binary sequence shown in FIG. 23 is assigned to each node and leaf.
  • this binary string is scanned according to the breadth-first or depth-first scan order. For example, when breadth-first scan is performed, the binary sequence shown in A in FIG. 24 is obtained. When scanning with priority on depth, the binary sequence shown in B of FIG. 24 is obtained.
  • the binary sequence obtained by this scan is encoded by entropy coding to reduce the amount of information.
  • the depth in the ocree representation is used to control the granularity of the point cloud information contained in the volume. If the depth is set large, the point cloud information can be reproduced to a finer level, but the amount of data for expressing the node and leaf increases. Conversely, if the depth is set small, the amount of data will decrease, but since multiple point cloud information with different positions and colors are considered to be at the same position and with the same color, the information that the original point cloud information has will be lost. become.
  • FIG. 25 is a diagram showing an example in which the ocree with a depth of 2 shown in FIG. 23 is represented by an ocree with a depth of 1.
  • the ocree shown in FIG. 25 has a smaller amount of data than the ocree shown in FIG. 23. That is, the ocree shown in FIG. 25 has a smaller number of bits after binarization than the ocree shown in FIG.
  • the leaf 1 and the leaf 2 shown in FIG. 23 are represented by the leaf 1 shown in FIG. 24. That is, the information that the leaf 1 and the leaf 2 shown in FIG. 23 are at different positions is lost.
  • FIG. 26 is a diagram showing a volume corresponding to the ocree shown in FIG. 25.
  • VXL1 and VXL2 shown in FIG. 22 correspond to VXL12 shown in FIG. 26.
  • the three-dimensional data encoding device generates the color information of VXL12 shown in FIG. 26 from the color information of VXL1 and VXL2 shown in FIG.
  • the three-dimensional data encoding device calculates the average value, the intermediate value, the weight average value, and the like of the color information of VXL1 and VXL2 as the color information of VXL12.
  • the three-dimensional data encoding device may control the reduction of the amount of data by changing the depth of the ocree.
  • the three-dimensional data encoding device may set the depth information of the octave tree in any unit of world unit, space unit, and volume unit. At that time, the three-dimensional data encoding device may add depth information to the world header information, the space header information, or the volume header information. In addition, the same value may be used for depth information for all worlds, spaces, and volumes at different times. In this case, the three-dimensional data encoding device may add depth information to the header information that manages the world for the entire time.
  • 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 apparatus 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 encoding device may add this scale value to the header of the bit stream or the like.
  • 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 reference three-dimensional point is a three-dimensional point within a predetermined distance range from the target three-dimensional point.
  • 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.
  • FIG. 27 is a diagram showing an example of three-dimensional points.
  • 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 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.
  • each classified layer is referred to as LoD (Level of Detail).
  • LoD Level of Detail
  • the three-dimensional data encoding device selects the initial point a0 and assigns it to LoD0.
  • the three-dimensional data encoding device extracts a 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 encoding 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 encoding device selects the point b0 to which LoD has not yet been assigned and assigns it to LoD1.
  • the three-dimensional data encoding 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 encoding 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.
  • the three-dimensional data encoding 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 encoding device selects the point c0 to which LoD has not yet been assigned and assigns it to LoD2.
  • the three-dimensional data encoding 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 encoding 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 encoding 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 encoding 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. 29, the three-dimensional data encoding device may add thresholds Thres_LoD [0], Thres_LoD [1], and Thres_LoD [2] to the header.
  • the three-dimensional data encoding 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 encoding device 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 encoding 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 by 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 encoding 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 encoding device 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 encoding 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 encoding 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 has been decoded earliest among the three-dimensional points that do not belong to the upper layer of LoDn.
  • the method of generating the predicted value of the attribute information of the three-dimensional point by using the LoD information will be described below.
  • 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 coded 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 encoding device may add a value of N to the header of the bit stream or the like. The three-dimensional data encoding device 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. As a result, it is not necessary 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 encoding device 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 encoding 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 LoD belongs 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 set a small value of N to suppress the amount of averaging processing and to perform efficient prediction.
  • FIG. 30 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. 30 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 A2) and (Equation A3).
  • 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 A4) to (Equation A6).
  • 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 quantizes the calculated predicted residual.
  • a three-dimensional data coding device performs quantization by dividing a predicted residual 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 encoding device may change the quantization scale used for each LoD. For example, in a three-dimensional data encoding device, 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 encoding 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 device 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 A7), 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 A7)
  • b2r B 2 -b2p ⁇ (formula A8)
  • the predicted residual is quantized by dividing by QS (quantization step).
  • the quantized value a2q at point a2 is calculated by (Equation A9).
  • the quantized value b2q at point b2 is calculated by (Equation A10).
  • 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 encoding device may encode the predicted residual (unsigned integer value) after quantization by entropy coding.
  • an unsigned integer value may be binarized and then binary arithmetic coding may be applied.
  • the three-dimensional data encoding 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 coding apparatus 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. Value it.
  • 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 by using the exponential Golomb. Arithmetic coding is performed.
  • the three-dimensional data encoding device generates 6-bit binary data (100000) 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 it.
  • the three-dimensional data encoding device may add the threshold value R_TH to the header of the bit stream or the like.
  • the three-dimensional data encoding 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 encoding 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 encoding 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 encoding device 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 encoding 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. 31 is a diagram showing an example of the exponential Golomb code, and is a diagram showing the relationship between the value before binarization (multi-value) and the bit (code) after binarization. Note that 0 and 1 shown in FIG. 31 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 apparatus 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 actually generated binarized data. 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 updates of the occurrence probability can be suppressed, so that the processing amount 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. 32 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.
  • 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 coding table for prefix, and uses the coding table for suffix for each bit contained 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 actually generated binarized data.
  • the three-dimensional data coding device may fix the probability of occurrence of 0 and 1 in either coding table.
  • the number of updates of the occurrence probability can be suppressed, so that the processing amount can be reduced.
  • the three-dimensional data encoding device 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 A11) using the quantization value a2q of the point a2.
  • the inverse quantization value b2iq of the point b2 is calculated by (Equation A12) 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 A13).
  • 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 as shown in (Equation A14).
  • FIG. 33 is a diagram showing a syntax example of the attribute header (attribute_header) according to the present embodiment.
  • the attribute header is header information of 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 (NumNeighorPoint [i]).
  • QS [i] quantization scale
  • R_TH [i] binarization threshold
  • 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 encoding device may add three-dimensional point total number information (AllNumOfPoint) indicating the total number of three-dimensional points to another header.
  • the three-dimensional data encoding device does not have to add NuMofPoint [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 A15). 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 encoding 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 encoding device does not have to add the value of Thres_Rod [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.
  • 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 a predicted value using the points around M when the peripheral points M are less than the number of surrounding points [i] (M ⁇ NumNeigorPoint [i]). Further, when the three-dimensional data encoding 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 value (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 value of THd [i] in each LoD, the three-dimensional data encoding 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. For example, a 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 greater than or equal to the threshold R_TH, the binary value of the threshold R_TH. The conversion data and the value of (pu-R_TH) are binarized using the exponential gorom. When it is not necessary to switch the value of R_TH [i] in each LoD, 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 encoding 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 encoding 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. 34 is a diagram showing an example of syntax of attribute data (attribute_data) according to the present embodiment.
  • This attribute data includes encoded data of attribute information of a plurality of three-dimensional points.
  • the attribute data includes an n-bit code (n-bit code) and a remaining code (remining 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. 35 is a flowchart of the three-dimensional data coding process by the three-dimensional data coding apparatus.
  • the three-dimensional data encoding device encodes the position information (geometry) (S3001).
  • position information geometry
  • three-dimensional data coding uses an ocree representation for coding.
  • the 3D data coding device When the position of the 3D point changes due to quantization or the like after the position information is encoded, the 3D data coding device reassigns the attribute information of the original 3D point to the changed 3D point ( S3002). 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 encoding 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. Further, in the three-dimensional data encoding device, when two or more three-dimensional points change to the same three-dimensional position due to quantization or the like, the value of the attribute information of the three-dimensional points after the change is used 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 encoding device encodes the attribute information (Attribute) after reassignment (S3003).
  • the three-dimensional data encoding device may encode the plurality of types of attribute information in order.
  • the three-dimensional data encoding device may generate a bit stream in which the reflectance coding result is added after the color coding result. ..
  • 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 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 encoding device can encode a plurality of types of attribute information at high speed.
  • FIG. 36 is a flowchart of the attribute information coding process (S3003).
  • the three-dimensional data encoding device sets LoD (S3011). That is, the 3D data encoding device assigns each 3D point to any of the plurality of LoDs.
  • the three-dimensional data encoding device starts a loop in units of LoD (S3012). That is, the three-dimensional data encoding device repeats the processes of steps S3013 to S3021 for each LoD.
  • the three-dimensional data encoding device starts a loop in units of three-dimensional points (S3013). That is, the three-dimensional data coding apparatus repeats the processes of steps S3014 to S3020 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, which are used to calculate the predicted value of the target three-dimensional point to be processed (S3014).
  • 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 (S3015).
  • 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 (S3016).
  • the three-dimensional data coding device calculates the quantized value by quantizing the predicted residual (S3017).
  • the three-dimensional data encoding device arithmetically encodes the quantized value (S3018).
  • the three-dimensional data coding device calculates the inverse quantization value by inversely quantizing the quantization value (S3019). Next, the three-dimensional data encoding device generates a decoded value by adding the predicted value to the inverse quantization value (S3020). Next, the three-dimensional data encoding device ends the loop in units of three-dimensional points (S3021). Further, the three-dimensional data encoding device ends the loop in units of LoD (S3022).
  • 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 was switched between the n-bit binarized part (n-bit code) and the binarized part 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 actually generated binarized data. Further, the three-dimensional data decoding device may fix the probability of occurrence of 0 and 1 in the coding table of some bits. As a result, the number of updates of the occurrence probability can be suppressed, so that the processing amount 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 values of b0b1 ... bn-2 (0 to 2 n-1 -1).
  • FIG. 37 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 coding apparatus using the exponential Golomb includes a prefix portion and a suffix portion as shown in FIG. 37.
  • 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 part using the encoding table for the prefix, and arithmetically decodes each bit included in the suffix part using the coding table for the suffix. 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 updates of the occurrence probability can be suppressed, so that the processing amount can be reduced.
  • the three-dimensional data decoding device 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 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 decoded n-bit code 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. 38 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 quantized. 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. 38, the remaining code is 00100, and 3 is obtained as the value of the remaining code.
  • the three-dimensional data decoding apparatus obtains the predicted residual value 66 by adding the threshold value R_TH value 63 and the remaining code value 3.
  • 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 decoding 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 into a signed integer value by the following processing.
  • the three-dimensional data decoding device sets the signed integer value a2q to ⁇ ((a2u + 1) >> 1) when the LSB (least significant bit) of the decoded unsigned integer value a2u is 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. 39 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 (S3031). 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 (S3032). 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 decoding a color and a reflectance as attribute information, the three-dimensional data decoding apparatus decodes the color coding result and the reflectance coding result in the order of being added to the bit stream. For example, in a bitstream, if the reflectance coding result is added after the color coding result, the three-dimensional data decoding device decodes the color coding result, and then the reflectance coding result. To decrypt. 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.
  • FIG. 40 is a flowchart of the attribute information decoding process (S3032).
  • the three-dimensional data decoding device sets LoD (S3041). 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 encoding device.
  • the three-dimensional data decoding device starts a loop in units of LoD (S3042). That is, the three-dimensional data decoding apparatus repeats the processes of steps S3043 to S3049 for each LoD.
  • the three-dimensional data decoding device starts a loop in units of three-dimensional points (S3043). That is, the three-dimensional data decoding device repeats the processes of steps S3044 to S3048 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 (S3044).
  • 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 (S3045). Note that these processes are the same as the processes in the three-dimensional data coding apparatus.
  • the three-dimensional data decoding device arithmetically decodes the quantized value from the bit stream (S3046). Further, the three-dimensional data decoding apparatus calculates the dequantized value by dequantizing the decoded quantization value (S3047). Next, the three-dimensional data decoding device generates a decoded value by adding the predicted value to the inverse quantization value (S3048). Next, the three-dimensional data decoding device ends the loop in units of three-dimensional points (S3049). Further, the three-dimensional data decoding device ends the loop in units of LoD (S3050).
  • FIG. 41 is a block diagram showing the configuration of the three-dimensional data encoding device 3000 according to the present embodiment.
  • the three-dimensional data coding device 3000 includes a position information coding unit 3001, an attribute information reassignment unit 3002, and an attribute information coding unit 3003.
  • the attribute information coding unit 3003 encodes the position information (geometry) of a plurality of three-dimensional points included in the input point group.
  • the attribute information reallocation unit 3002 reassigns the value 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 3003 encodes the reassigned attribute information (attribute). Further, the three-dimensional data encoding device 3000 generates a bit stream including the coded position information and the coded attribute information.
  • FIG. 42 is a block diagram showing the configuration of the three-dimensional data decoding device 3010 according to the present embodiment.
  • the three-dimensional data decoding device 3010 includes a position information decoding unit 3011 and an attribute information decoding unit 3012.
  • the position information decoding unit 3011 decodes the position information (geometry) of a plurality of three-dimensional points from the bit stream.
  • the attribute information decoding unit 3012 decodes the attribute information (attribute) of a plurality of three-dimensional points from the bit stream. Further, the three-dimensional data decoding device 3010 generates an output point group by combining the decoded position information and the decoded attribute information.
  • FIG. 43 is a diagram for explaining the coding of attribute information using RAHT.
  • the three-dimensional data encoding device generates a Morton code based on the position information of the three-dimensional points, and sorts the attribute information of the three-dimensional points in the order of the Morton codes. For example, the three-dimensional data encoding device may sort in ascending order of Morton code. The sort order is not limited to the Morton code order, and other orders may be used.
  • the three-dimensional data encoding device generates a high-frequency component and a low-frequency component of the layer L by applying the Har transformation to the attribute information of two adjacent three-dimensional points in the Morton code order.
  • the three-dimensional data encoding device may use the Har transformation of a 2 ⁇ 2 matrix.
  • the generated high frequency component is included in the coding coefficient as the high frequency component of the layer L, and the generated low frequency component is used as an input value of the upper layer L + 1 of the layer L.
  • the three-dimensional data encoding device generates the high frequency component of the layer L using the attribute information of the layer L, and then continues to process the layer L + 1.
  • the three-dimensional data encoding device In the processing of the layer L + 1, the three-dimensional data encoding device generates the high frequency component and the low frequency component of the layer L + 1 by applying the Haar conversion to the two low frequency components obtained by the Haar conversion of the attribute information of the layer L. To do.
  • the generated high frequency component is included in the coding coefficient as the high frequency component of the layer L + 1, and the generated low frequency component is used as the input value of the upper layer L + 2 of the layer L + 1.
  • the three-dimensional data encoding device repeats such hierarchical processing, and determines that the highest layer Lmax has been reached when the number of low-frequency components input to the layer becomes one.
  • the three-dimensional data coding apparatus includes the low frequency component of the layer Lmax-1 input to the layer Lmax in the coding coefficient. Then, the value of the low frequency component or the high frequency component included in the coding coefficient is quantized and encoded by using entropy coding or the like.
  • the value of the attribute information of the existing 3D point is set in the upper layer. It may be used as an input value.
  • the three-dimensional data encoding device hierarchically applies the Har transformation to the input attribute information, generates high-frequency components and low-frequency components of the attribute information, and applies quantization and the like described later. And encode. Thereby, the coding efficiency can be improved.
  • the three-dimensional data coding device may independently apply the Har conversion for each dimension and calculate each coding coefficient. For example, when the attribute information is color information (RGB, YUV, etc.), the three-dimensional data coding device applies a Har conversion for each component and calculates each coding coefficient.
  • the three-dimensional data encoding device may apply the Har conversion in the order of layer L, L + 1, ..., Layer Lmax. The closer to the layer Lmax, the more the coding coefficient including the low frequency component of the input attribute information is generated.
  • W0 and w1 shown in FIG. 43 are weights assigned to each three-dimensional point.
  • the three-dimensional data encoding device may calculate the weight based on the distance information between two adjacent three-dimensional points to which the Har transformation is applied.
  • the three-dimensional data coding apparatus may improve the coding efficiency by increasing the weight as the distance becomes shorter.
  • the three-dimensional data coding apparatus may calculate this weight by another method, or may not use the weight.
  • the input attribute information is a0, a1, a2, a3, a4 and a5. Further, among the coding coefficients after the Har conversion, Ta1, Ta5, Tb1, Tb3, Tc1 and d0 are coded. Other coding coefficients (b0, b2, c0, etc.) are intermediate values and are not coded.
  • the high frequency component Ta1 and the low frequency component b0 are generated by performing the Har conversion between a0 and a1.
  • the low frequency component b0 is the average value of a0 and a1
  • the high frequency component Ta1 is the difference between a0 and a1.
  • a2 Since there is no paired attribute information in a2, a2 is used as it is as b1. Similarly, since there is no paired attribute information in a3, a3 is used as it is as b2. Further, by performing the Har conversion between a4 and a5, a high frequency component Ta5 and a low frequency component b3 are generated.
  • the high frequency component Tb1 and the low frequency component c0 are generated by performing the Har conversion between b0 and b1.
  • the high frequency component Tb3 and the low frequency component c1 are generated by performing the Har conversion between b2 and b3.
  • the high frequency component Tc1 and the low frequency component d0 are generated by performing the Har conversion between c0 and c1.
  • the three-dimensional data coding apparatus may encode after quantizing the coding coefficient after applying the Har conversion.
  • a three-dimensional data coding apparatus performs quantization by dividing a coding coefficient by a quantization scale (also referred to as a quantization step (QS (Quantization Step))).
  • QS 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.
  • FIG. 44 is a diagram showing an example in which the quantization scale is set for each layer.
  • the higher layer has a smaller quantization scale
  • the lower layer has a larger quantization scale. Since the coding coefficient of the three-dimensional point belonging to the upper layer contains more low-frequency components than the lower layer, it is highly possible that it is an important component in human visual characteristics and the like. Therefore, by reducing the quantization scale of the upper layer and suppressing the quantization error that may occur in the upper layer, visual deterioration can be suppressed and the coding efficiency can be improved.
  • the three-dimensional data encoding device may add a quantization scale for each layer to the header or the like.
  • the three-dimensional data decoding device can correctly decode the quantization scale and appropriately decode the bit stream.
  • the three-dimensional data encoding device may adaptively switch the value of the quantization scale according to the importance of the target three-dimensional point to be encoded. For example, a 3D data encoder uses a small quantization scale for 3D points of high importance and a large quantization scale for 3D points of low importance. For example, the three-dimensional data encoding device may calculate the importance from the weight at the time of Har conversion or the like. For example, the three-dimensional data encoding device may calculate the quantization scale using the added value of w0 and w1. By reducing the quantization scale of the three-dimensional points, which are of high importance in this way, the quantization error can be reduced and the coding efficiency can be improved.
  • the higher the layer the smaller the QS value may be.
  • the QW value becomes larger in the upper layer, and the prediction efficiency can be improved by suppressing the quantization error of the three-dimensional point.
  • the coding coefficient Ta1q after the quantization of the coding coefficient Ta1 of the attribute information a1 is represented by Ta1 / QS_L.
  • the QS may have the same value in all layers or some layers.
  • QW Quality Weight
  • the QW is a value indicating the importance of a three-dimensional point to be encoded.
  • the QW the above-mentioned added value of w0 and w1 may be used.
  • the QW value becomes larger in the upper layer, and the prediction efficiency can be improved by suppressing the quantization error of the three-dimensional point.
  • the 3D data encoding device may first initialize the QW values of all 3D points with 1, and update the QW of each 3D point using the w0 and w1 values at the time of Har conversion. Good.
  • the three-dimensional data encoding device may change the initial values according to the hierarchy without initializing the QWs of all the three-dimensional points with the value 1. For example, by setting a larger initial value of QW in the upper layer, the quantization scale of the upper layer becomes smaller. As a result, the prediction error of the upper layer can be suppressed, so that the prediction accuracy of the lower layer can be improved and the coding efficiency can be improved.
  • the three-dimensional data encoding device does not necessarily have to use QW.
  • the three-dimensional data coding device scans and encodes the coding coefficient (unsigned integer value) after quantization in a certain order.
  • the three-dimensional data encoding device encodes a plurality of three-dimensional points in order from the three-dimensional points included in the upper layer toward the lower layer.
  • the three-dimensional data coding apparatus encodes a plurality of three-dimensional points in the order of tc1q, Tb1q, Tb3q, Ta1q, and Ta5q included in the upper layer Lmax.
  • the lower layer L tends to have a coding coefficient of 0 after quantization. The reasons for this include the following.
  • the coding coefficient of the lower layer L shows a higher frequency component than that of the upper layer, it tends to be 0 depending on the target three-dimensional point. Further, by switching the quantization scale according to the importance and the like described above, the quantization scale becomes larger in the lower layer, and the coding coefficient after quantization tends to be 0.
  • FIG. 45 is a diagram showing an example of a first code string and a second code string.
  • the three-dimensional data encoding device counts the number of times the value 0 occurs in the first code string, and encodes the number of times the value 0 occurs consecutively instead of the continuous value 0. That is, the three-dimensional data coding apparatus generates the second code string by replacing the coding coefficient of the continuous value 0 in the first code string with the number of consecutive times of 0 (ZeroCnt).
  • ZeroCnt the number of consecutive times of 0
  • the three-dimensional data encoding device may entropy encode the value of ZeroCnt. For example, a three-dimensional data coding device binarizes the ZeroCnt value with a truncated unary code of the total number T of the coded three-dimensional points, and arithmetically encodes each bit after binarization. ..
  • FIG. 46 is a diagram showing an example of a truncet unity code when the total number of coded three-dimensional points is T. At this time, the three-dimensional data coding apparatus may improve the coding efficiency by using a different coding table for each bit.
  • the three-dimensional data encoding device uses the coding table 1 for the first bit, the coding table 2 for the second bit, and the coding table 3 for the subsequent bits.
  • the three-dimensional data coding apparatus can improve the coding efficiency by switching the coding table for each bit.
  • the three-dimensional data encoding device may perform arithmetic coding after binarizing ZeroCnt with an exponental-Golomb (Exponential-Golomb).
  • the three-dimensional data encoding device may add a flag to the header to switch between using the truncet unity code and using the exponential Golomb code.
  • the three-dimensional data coding apparatus can improve the coding efficiency by selecting the optimum binarization method.
  • the three-dimensional data decoding device can correctly decode the bit stream by switching the binarization method with reference to the flag included in the header.
  • the 3D data decoding device may convert the decoded quantization coefficient from the unsigned integer value to the signed integer value by the method opposite to the method performed by the 3D data coding device. This allows the 3D data decoder to adequately decode the generated bitstream without considering the occurrence of negative integers when the coding coefficients are entropy encoded.
  • the three-dimensional data decoding device does not necessarily have to convert the coding coefficient from an unsigned integer value to a signed integer value. For example, when the three-dimensional data decoding device decodes a bit stream including a separately entropy-encoded coded bit, the code bit may be decoded.
  • the three-dimensional data decoding device decodes the coded coefficient after quantization converted into a signed integer value by inverse quantization and inverse Har conversion. Further, the three-dimensional data decoding device uses the decoding coefficient after decoding 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 quantization coefficient after quantization by the decoded quantization scale. Next, the three-dimensional data decoding device obtains the decoded value by applying the inverse Haar transformation described later to the inverse quantized value.
  • the three-dimensional data decoding device converts the decoded unsigned integer value into a signed integer value by the following method.
  • the signed integer value Ta1q is set to ⁇ ((a2u + 1) >> 1).
  • the signed integer value Ta1q is set to (a2u >> 1).
  • Ta1q is a quantized value of Ta1.
  • QS_L is a quantization step of the layer L.
  • the QS may have the same value in all layers or some layers.
  • the three-dimensional data encoding device may add information indicating QS to the header or the like. As a result, the three-dimensional data decoding device can correctly perform inverse quantization using the same QS as the QS used in the three-dimensional data coding device.
  • FIG. 47 is a diagram for explaining the inverse Har transformation.
  • the three-dimensional data decoding apparatus decodes the attribute value of the three-dimensional point by applying the inverse Haar transformation to the coding coefficient after the inverse quantization.
  • the three-dimensional data decoding device generates a Morton code based on the position information of the three-dimensional point, and sorts the three-dimensional points in the order of the Morton code. For example, the three-dimensional data decoding device may sort in ascending order of Morton code. The sort order is not limited to the Morton code order, and other orders may be used.
  • the three-dimensional data decoding device applies the inverse Har transformation to the coding coefficient including the low frequency component of the layer L + 1 and the coding coefficient including the high frequency component of the layer L, so that the three-dimensional data decoding device is adjacent in the Morton code order in the layer L.
  • the three-dimensional data decoding device may use an inverse Har transformation of a 2 ⁇ 2 matrix.
  • the restored attribute information of the layer L is used as an input value of the lower layer L-1.
  • the three-dimensional data decoding device repeats such hierarchical processing, and ends the processing when all the attribute information of the lowest layer is decoded.
  • the three-dimensional data decoding device has an attribute value of one existing three-dimensional point.
  • the value of the coding component of the layer L may be substituted for.
  • the three-dimensional data decoding device can correctly decode the bit stream with improved coding efficiency by applying the Har conversion to all the values of the input attribute information.
  • the three-dimensional data decoding device may independently apply the inverse Har conversion for each dimension and decode each coding coefficient. For example, when the attribute information is color information (RGB, YUV, etc.), the three-dimensional data decoding device applies an inverse Har conversion to the coding coefficient for each component and decodes each attribute value.
  • the attribute information is color information (RGB, YUV, etc.)
  • the three-dimensional data decoding device applies an inverse Har conversion to the coding coefficient for each component and decodes each attribute value.
  • the three-dimensional data decoding device may apply the inverse Har conversion in the order of layer Lmax, L + 1, ..., Layer L. Further, w0 and w1 shown in FIG. 47 are weights assigned to each three-dimensional point. For example, the three-dimensional data decoding device may calculate the weight based on the distance information between two adjacent three-dimensional points to which the inverse Haar transformation is applied. For example, the three-dimensional data coding apparatus may decode a bit stream whose coding efficiency is improved by increasing the weight as the distance becomes shorter.
  • the coding coefficients after dequantization are Ta1, Ta5, Tb1, Tb3, Tc1 and d0, and a0, a1, a2, a3, a4 and a5 are obtained as decoded values.
  • FIG. 48 is a diagram showing an example of syntax of attribute information (attribute_data).
  • the attribute information (attribute_data) includes a zero continuous number (ZeroCnt), an attribute dimension number (attribute_dimension), and a coding coefficient (value [j] [i]).
  • Zero continuous number indicates the number of consecutive values of 0 in the coding coefficient after quantization.
  • the three-dimensional data coding apparatus may perform arithmetic coding after binarizing ZeroCnt.
  • the three-dimensional data coding apparatus determines whether or not the layer L (layerL) to which the coding coefficient belongs is equal to or higher than a predetermined threshold value TH_layer, and adds the coding coefficient to the bit stream according to the determination result. You may switch the information. For example, the three-dimensional data encoding device adds all the coding coefficients of the attribute information to the bit stream if the determination result is true. Further, the three-dimensional data coding apparatus may add a part of the coding coefficient to the bit stream if the determination result is false.
  • the three-dimensional data coding device adds the coding result of the RGB or YUV three-dimensional information of the color information to the bit stream. If the determination result is false, the three-dimensional data encoding device does not need to add some information such as G or Y of the color information to the bitstream and add other components to the bitstream. Good. In this way, the three-dimensional data coding device does not add a part of the coding coefficient of the layer (layer smaller than TH_layer) including the coding coefficient indicating the high frequency component whose deterioration is less noticeable visually to the bit stream. , The coding efficiency can be improved.
  • the number of dimension dimensions of the attribute indicates the number of dimensions of the attribute information. For example, when the attribute information is the color information of a three-dimensional point (RGB, YUV, etc.), the number of attribute dimensions is set to the value 3 because the color information is three-dimensional. When the attribute information is reflectance, the number of attribute dimensions is set to the value 1 because the reflectance is one-dimensional. The number of attribute dimensions may be added to the header of the attribute information of the bitstream.
  • the coding coefficient indicates the coding coefficient after the quantization of the j-th dimension attribute information of the i-th three-dimensional point. For example, when the attribute information is color information, value [99] [1] indicates the coding coefficient of the second dimension (for example, G value) of the 100th three-dimensional point. When the attribute information is reflectance information, value [119] [0] indicates the coding coefficient of the first dimension (for example, reflectance) of the 120th three-dimensional point.
  • the three-dimensional data encoding device may subtract the value 1 from the value [j] [i] and entropy encode the obtained value.
  • the three-dimensional data decoding apparatus restores the coding coefficient by adding the value 1 to the value [j] [i] after the entropy decoding.
  • attribute_dimension 1, or (2) when attribute_dimension is 1 or more and the values of all dimensions are equal.
  • attribute_dimension 1, so the three-dimensional data coding device calculates the value by subtracting the value 1 from the coding coefficient, and encodes the calculated value.
  • the three-dimensional data decoding device adds the value 1 to the decoded value to calculate the coding coefficient.
  • the three-dimensional data coding apparatus encodes a value 9 obtained by subtracting the value 1 from the coding coefficient value 10.
  • the three-dimensional data decoding device adds the value 1 to the decoded value 9 to calculate the value 10 of the coding coefficient.
  • attribute_dimension 3 so that the three-dimensional data encoding device can be used for each coding, for example, when the coding coefficients after the quantization of each component of R, G, and B are the same.
  • the value 1 is subtracted from the coefficient and the resulting value is encoded.
  • the three-dimensional data decoding device adds 1 to each component of (0, 0, 0) to calculate (1, 1, 1).
  • the three-dimensional data coding device encodes (2, 1, 2) as it is.
  • the three-dimensional data decoding device uses the decoded (2, 1, 2) as it is as the coding coefficient.
  • value [0] [i] shown in FIG. 48 indicates the coding coefficient after the quantization of the first-dimensional attribute information of the i-th three-dimensional point.
  • the layer L (layerL) to which the coding coefficient belongs is smaller than the threshold TH_layer, the attribute information of the first dimension is added to the bitstream (the attribute information of the second and subsequent dimensions is not added to the bitstream).
  • the code amount may be reduced with.
  • the three-dimensional data encoding device may switch the calculation method of the ZeroCnt value according to the value of tribute_dimension.
  • FIG. 49 is a diagram showing an example of the coding coefficient and ZeroCnt in this case.
  • the three-dimensional data encoding device counts the number of consecutive coding coefficients in which the R, G, and B components are all 0, and converts the counted number into a bitstream as ZeroCnt. Add.
  • the three-dimensional data encoding device may calculate ZeroCnt for each dimension even when the tribute_dimension is 2 or more, and add the calculated ZeroCnt to the bit stream.
  • FIG. 50 is a flowchart of the three-dimensional data coding process according to the present embodiment.
  • the three-dimensional data encoding device encodes the position information (geometry) (S6601).
  • a three-dimensional data encoding device encodes using an ocree representation.
  • the three-dimensional data encoding device converts the attribute information (S6602). For example, a three-dimensional data encoding device reassigns the attribute information of the original three-dimensional point to the changed three-dimensional point when the position of the three-dimensional point changes due to quantization or the like after the position information is encoded. To do.
  • the three-dimensional data coding apparatus may interpolate and reassign 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 obtains the attribute information values of the N three-dimensional points from the three-dimensional position after the change.
  • Weighted averaging is performed based on the distances to each N 3Ds, and the obtained values are set as the values of the attribute information of the changed 3D points. Further, in the three-dimensional data encoding device, when two or more three-dimensional points are changed to the same three-dimensional position due to quantization or the like, the value of the attribute information after the change is two or more before the change. The average value of the attribute information at the three-dimensional point may be assigned.
  • the three-dimensional data encoding device encodes the attribute information (S6603). For example, when encoding a plurality of attribute information, the three-dimensional data encoding device may encode the plurality of attribute information in order. For example, when the color and the reflectance are encoded, the three-dimensional data encoding device generates a bit stream in which the reflectance coding result is added after the color coding result. The plurality of coding results of the attribute information added to the bit stream may be in any order.
  • the three-dimensional data encoding device may add information indicating the start location of the encoded data 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 attribute information in parallel and integrate the coding result into one bit stream. As a result, the three-dimensional data encoding device can encode a plurality of attribute information at high speed.
  • FIG. 51 is a flowchart of the attribute information coding process (S6603).
  • the three-dimensional data coding apparatus generates a coding coefficient from the attribute information by Har conversion (S6611).
  • the three-dimensional data encoding device applies quantization to the coding coefficient (S6612).
  • the three-dimensional data coding apparatus generates coding attribute information (bit stream) by coding the coding coefficient after quantization (S6613).
  • the three-dimensional data coding device applies inverse quantization to the coding coefficient after quantization (S6614).
  • the three-dimensional data decoding apparatus decodes the attribute information by applying the inverse Haar transformation to the coding coefficient after the inverse quantization (S6615). For example, the decoded attribute information is referenced in subsequent coding.
  • FIG. 52 is a flowchart of the coding coefficient coding process (S6613).
  • the three-dimensional data coding apparatus converts the coding coefficient from a signed integer value to an unsigned integer value (S6621).
  • a three-dimensional data encoding device converts a signed integer value into an unsigned integer value as follows. If the signed integer value Ta1q is less than 0, the unsigned integer value is set to -1- (2 x Ta1q). When the signed integer value Ta1q is 0 or more, the unsigned integer value is set to 2 ⁇ Ta1q. If the coding coefficient does not become a negative value, the three-dimensional data coding device may encode the coding coefficient as it is as an unsigned integer value.
  • the three-dimensional data coding device determines whether the value of the coding coefficient to be processed is zero (S6623). When the value of the coding coefficient to be processed is zero (Yes in S6623), the three-dimensional data coding device increments ZeroCnt by 1 (S6624) and returns to step S6622.
  • the three-dimensional data encoding device When the value of the coding coefficient to be processed is not zero (No in S6623), the three-dimensional data encoding device encodes ZeroCnt and resets ZeroCnt to 0 (S6625). Further, the three-dimensional data coding apparatus arithmetically encodes the coding coefficient to be processed (S6626), and returns to step S6622. For example, a three-dimensional data encoding device performs binary arithmetic coding. Further, the three-dimensional data coding apparatus may subtract the value 1 from the coding coefficient and encode the obtained value.
  • steps S6623 to S6626 are repeated for each coding coefficient. Further, when all the coding coefficients have been processed (Yes in S6622), the three-dimensional data coding apparatus ends the processing.
  • FIG. 53 is a flowchart of the three-dimensional data decoding process according to the present embodiment.
  • the three-dimensional data decoding device decodes the position information (geometry) from the bit stream (S6631). For example, a three-dimensional data decoding device decodes using an ocree representation.
  • the three-dimensional data decoding device decodes the attribute information from the bit stream (S6632). For example, when decoding a plurality of attribute information, the three-dimensional data decoding device may decode the plurality of attribute information in order. For example, when decoding a color and a reflectance as attribute information, the three-dimensional data decoding apparatus decodes the color coding result and the reflectance coding result in the order of being added to the bit stream. For example, in a bitstream, if the color coding result is followed by the reflectance coding result, the three-dimensional data decoder decodes the color coding result and then the reflectance coding. 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 start location of the encoded data of each attribute information in the bit stream by decoding 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 decoding device may decode a plurality 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 attribute information at high speed.
  • FIG. 54 is a flowchart of the attribute information decoding process (S6632).
  • the three-dimensional data decoding device decodes the coding coefficient from the bit stream (S6641).
  • the three-dimensional data decoding device applies inverse quantization to the coding coefficient (S6642).
  • the three-dimensional data decoding apparatus decodes the attribute information by applying the inverse Har transformation to the coding coefficient after the inverse quantization (S6643).
  • FIG. 55 is a flowchart of the coding coefficient decoding process (S6641).
  • the three-dimensional data decoding device decodes ZeroCnt from the bit stream (S6651). If all the coding coefficients have not been processed (No in S6652), the 3D data decoding device determines whether ZeroCnt is greater than 0 (S6653).
  • the three-dimensional data decoding device sets the coding coefficient of the processing target to 0 (S6654). Next, the three-dimensional data decoding device subtracts 1 from ZeroCnt (S6655) and returns to step S6652.
  • the three-dimensional data decoding device decodes the coding coefficient of the processing target (S6656). For example, a three-dimensional data decoding device uses binary arithmetic decoding. Further, the three-dimensional data decoding device may add a value 1 to the decoded coding coefficient.
  • the three-dimensional data decoding device decodes ZeroCnt, sets the obtained value in ZeroCnt (S6657), and returns to step S6652.
  • the processes of steps S6653 to S6657 are repeated for each coding coefficient. Further, when all the coding coefficients have been processed (Yes in S6652), the three-dimensional data coding apparatus converts the plurality of decoded coding coefficients from an unsigned integer value to a signed integer value (S6658). ..
  • the three-dimensional data decoding apparatus may convert the decoded coding coefficient from an unsigned integer value to a signed integer value as described below.
  • the LSB least significant bit
  • the signed integer value Ta1q is set to ⁇ ((Ta1u + 1) >> 1).
  • the three-dimensional data decoding device may use the decoded coding coefficient as it is as a signed integer value.
  • FIG. 56 is a block diagram of the attribute information coding unit 6600 included in the three-dimensional data coding device.
  • the attribute information coding unit 6600 includes a sorting unit 6601, a Har conversion unit 6602, a quantization unit 6603, an inverse quantization unit 6604, an inverse Haar conversion unit 6605, a memory 6606, and an arithmetic coding unit 6607. Be prepared.
  • the sort unit 6601 generates a Morton code using the position information of the three-dimensional points, and sorts a plurality of three-dimensional points in the Morton code order.
  • the Har conversion unit 6602 generates a coding coefficient by applying the Har conversion to the attribute information.
  • the quantization unit 6603 quantizes the coding coefficient of the attribute information.
  • the dequantization unit 6604 dequantizes the coding coefficient after quantization.
  • the inverse Har conversion unit 6605 applies the inverse Har conversion to the coding coefficient.
  • the memory 6606 stores the values of the attribute information of the plurality of decoded three-dimensional points. For example, the attribute information of the decoded three-dimensional point stored in the memory 6606 may be used for predicting an unencoded three-dimensional point.
  • the arithmetic coding unit 6607 calculates ZeroCnt from the coding coefficient after quantization, and arithmetically encodes ZeroCnt. In addition, the arithmetic coding unit 6607 arithmetically encodes the non-zero coding coefficient after quantization. The arithmetic coding unit 6607 may binarize the coding coefficient before arithmetic coding. Further, the arithmetic coding unit 6607 may generate and encode various header information.
  • FIG. 57 is a block diagram of the attribute information decoding unit 6610 included in the three-dimensional data decoding device.
  • the attribute information decoding unit 6610 includes an arithmetic decoding unit 6611, an inverse quantization unit 6612, an inverse Har conversion unit 6613, and a memory 6614.
  • the arithmetic decoding unit 6611 arithmetically decodes ZeroCnt and the coding coefficient included in the bit stream.
  • the arithmetic decoding unit 6611 may decode various header information.
  • the dequantization unit 6612 dequantizes the arithmetically decoded coding coefficient.
  • the inverse Haar transformation unit 6613 applies the inverse Har transformation to the coding coefficient after the inverse quantization.
  • the memory 6614 stores the values of the attribute information of the plurality of decoded three-dimensional points. For example, the attribute information of the decoded three-dimensional point stored in the memory 6614 may be used for predicting the undecoded three-dimensional point.
  • the coding order is not necessarily limited to this.
  • a method of scanning the coding coefficient after the Har conversion from the upper layer to the lower layer may be used.
  • the three-dimensional data encoding device may encode the number of consecutive values of 0 as ZeroCnt.
  • the three-dimensional data coding apparatus may switch whether or not to use the coding method using ZeroCnt described in the present embodiment for each WLD, SPC, or volume.
  • the three-dimensional data coding apparatus may add information indicating whether or not the coding method using ZeroCnt is applied to the header information.
  • the three-dimensional data decoding device can appropriately perform decoding.
  • a three-dimensional data coding device counts the number of occurrences of a coding coefficient having a value of 0 for one volume.
  • the three-dimensional data encoding device applies the method using ZeroCnt to the next volume when the count value exceeds a predetermined threshold value, and uses ZeroCnt to the next volume when the count value is equal to or less than the threshold value. Do not apply the method that was used.
  • the three-dimensional data coding apparatus can appropriately switch whether or not to apply the coding method using ZeroCnt according to the characteristics of the three-dimensional point to be coded, thus improving the coding efficiency. it can.
  • the three-dimensional data coding apparatus scans and encodes the quantization coefficient (unsigned integer value) in a certain order.
  • the three-dimensional data encoding device encodes a plurality of three-dimensional points in order from the three-dimensional points included in the lower layer toward the upper layer.
  • FIG. 58 is a diagram showing an example of a first code string and a second code string when this method is used for the attribute information shown in FIG. 43.
  • the three-dimensional data coding apparatus encodes a plurality of coding coefficients in the order of Ta1q to Ta5q, Tb1q, Tb3q, Tc1q, d0q included in the lower layer L.
  • the lower layer tends to have a coding coefficient of 0 after quantization. The reasons for this include the following.
  • the coding coefficient of the lower layer L shows a higher frequency component than that of the upper layer, it tends to be 0 depending on the three-dimensional point to be coded. Further, by switching the quantization scale according to the importance and the like described above, the quantization scale becomes larger in the lower layer, and the coding coefficient after quantization tends to be 0.
  • the three-dimensional data coding apparatus counts the number of times the value 0 occurs in the first code string, and encodes the number of times the value 0 occurs consecutively (ZeroCnt) instead of the continuous value 0.
  • ZeroCnt the number of times the value 0 occurs consecutively
  • the three-dimensional data encoding device may encode information indicating the total number of occurrences of the value 0. As a result, the overhead of encoding ZeroCnt can be reduced, and the coding efficiency can be improved.
  • the three-dimensional data coding device encodes the total number of coding coefficients having a value of 0 as TotalZeroCnt.
  • the three-dimensional data encoding device may entropy-encode TotalZeroCnt. For example, the three-dimensional data encoding device binarizes the value of TotalZeroCnt with a truncet unity code of the total number T of the coded three-dimensional points, and arithmetically encodes each bit after binarization.
  • the three-dimensional data coding apparatus may improve the coding efficiency by using a different coding table for each bit. For example, the three-dimensional data encoding device uses the coding table 1 for the first bit, the coding table 2 for the second bit, and the coding table 3 for the subsequent bits. In this way, the three-dimensional data coding apparatus can improve the coding efficiency by switching the coding table for each bit.
  • the three-dimensional data encoding device may perform arithmetic coding after binarizing TotalZeroCnt with an exponential Golomb.
  • the three-dimensional data encoding device may add a flag to the header to switch between using the truncet unity code and using the exponential Golomb code.
  • the three-dimensional data coding apparatus can improve the coding efficiency by selecting the optimum binarization method.
  • the three-dimensional data decoding device can correctly decode the bit stream by switching the binarization method with reference to the flag included in the header.
  • FIG. 59 is a diagram showing a syntax example of attribute information (attribute_data) in this modified example.
  • the attribute information (attribute_data) shown in FIG. 59 further includes a total number of zeros (TotalZeroCnt) with respect to the attribute information shown in FIG. 48.
  • TotalZeroCnt a total number of zeros
  • Other information is the same as in FIG. 48.
  • the total number of zeros (TotalZeroCnt) indicates the total number of coding coefficients with a value of 0 after quantization.
  • the three-dimensional data encoding device may switch the calculation method of the values of TotalZereCnt and ZeroCnt depending on the value of tribute_dimension.
  • FIG. 60 is a diagram showing an example of the coding coefficient, ZeroCnt and TotalZeroCnt in this case.
  • the three-dimensional data coding apparatus counts the number of consecutive coding coefficients in which the R, G, and B components are all 0, and the counted numbers are bit as TotalZeroCnt and ZeroCnt. Add to the stream.
  • the three-dimensional data encoding device may calculate TotalZeoCnt and ZeroCnt for each dimension even when attribute_dimension is 2 or more, and add the calculated TotalZeoCnt and ZeroCnt to the bit stream.
  • FIG. 61 is a flowchart of the coding coefficient coding process (S6613) in this modification.
  • the three-dimensional data coding apparatus converts the coding coefficient from a signed integer value to an unsigned integer value (S6661).
  • the three-dimensional data encoding device encodes TotalZeroCnt (S6662).
  • the three-dimensional data coding apparatus determines whether the value of the coding coefficient to be processed is zero (S6664). When the value of the coding coefficient to be processed is zero (Yes in S6664), the three-dimensional data coding device increments ZeroCnt by 1 (S6665) and returns to step S6663.
  • the three-dimensional data coding device determines whether TotalZeroCnt is larger than 0 (S6666). If TotalZeroCnt is greater than 0 (Yes in S6666), the 3D data encoder encodes ZeroCnt and sets TotalZeroCnt to TotalZeroCnt-ZeroCnt (S6667).
  • step S6667 or when TotalZeroCnt is 0 (No in S6666), the 3D data encoding device encodes the coding coefficient, resets ZeroCnt to 0 (S6666), and returns to step S6663.
  • a three-dimensional data encoding device performs binary arithmetic coding. Further, the three-dimensional data coding apparatus may subtract the value 1 from the coding coefficient and encode the obtained value.
  • steps S6664 to S6668 are repeated for each coding coefficient.
  • the three-dimensional data coding apparatus ends the processing.
  • FIG. 62 is a flowchart of the coding coefficient decoding process (S6641) in this modification.
  • the three-dimensional data decoding device decodes TotalZeroCnt from the bit stream (S6671).
  • the three-dimensional data decoding device decodes ZeroCnt from the bit stream and sets TotalZeroCnt to TotalZeroCnt-ZeroCnt (S6672).
  • the three-dimensional data coding device determines whether ZeroCnt is greater than 0 (S6674).
  • the three-dimensional data decoding device sets the coding coefficient of the processing target to 0 (S6675). Next, the three-dimensional data decoding device subtracts 1 from ZeroCnt (S6676) and returns to step S6673.
  • the three-dimensional data decoding apparatus decodes the coding coefficient of the processing target (S6677). For example, a three-dimensional data decoding device uses binary arithmetic decoding. Further, the three-dimensional data decoding device may add a value 1 to the decoded coding coefficient.
  • the three-dimensional data decoding device determines whether TotalZeroCnt is greater than 0 (S6678). If TotalZeroCnt is greater than 0 (Yes in S6678), the 3D data decoder decodes ZeroCnt, sets the resulting value to ZeroCnt, sets TotalZeroCnt to TotalZeroCnt-ZeroCnt (S6679), and returns to step S6673. .. If TotalZeroCnt is 0 (No in S6678), the three-dimensional data decoding device returns to step S6673.
  • steps S6674 to S6679 are repeated for each coding coefficient. Further, when all the coding coefficients have been processed (Yes in S6673), the three-dimensional data coding apparatus converts the decoded coding coefficients from the unsigned integer value to the signed integer value (S6680).
  • FIG. 63 is a diagram showing another syntax example of the attribute information (attribute_data).
  • the attribute information (attribute_data) shown in FIG. 63 includes value [j] [i] _creater_zero_flag and value [j] [i] _greator_one_flag instead of the coding coefficients (value [j] [i]) shown in FIG. 48. , Value [j] [i] and the like. Other information is the same as in FIG. 48.
  • Value [j] [i] _greeter_zero_flag indicates whether or not the value of the coding coefficient (value [j] [i]) is greater than 0 (or 1 or more). In other words, value [j] [i] _greator_zero_flag indicates whether or not the value of the coding coefficient (value [j] [i]) is 0.
  • the value of the coding coefficient is greater than 0, the value [j] [i] _greator_zero_flag is set to the value 1, and if the value of the coding coefficient is 0, the value [j] [i] _creater_zero_flag is set to the value 0.
  • the three-dimensional data encoding device does not have to add value [j] [i] to the bit stream. In this case, the three-dimensional data decoding device may determine that the values of value [j] and [i] are 0. As a result, the amount of code can be reduced.
  • Value [j] [i] _greeter_one_flag indicates whether or not the value of the coding coefficient (value [j] [i]) is greater than 1 (or 2 or more). In other words, value [j] [i] _greeter_one_flag indicates whether or not the value of the coding coefficient (value [j] [i]) is 1.
  • value [j] [i] _greeter_one_flag is set to the value 1. Otherwise (when the value of the coding factor is 1 or less), value [j] [i] _creater_one_flag is set to a value of 0.
  • the three-dimensional data encoding device does not have to add value [j] [i] to the bit stream. In this case, the three-dimensional data decoding device may determine that the three-dimensional data coding device has a value of value [j] [i] of 1.
  • Value [j] [i] indicates the coding coefficient after the quantization of the j-th dimension attribute information of the i-th three-dimensional point.
  • value [99] [1] indicates the coding coefficient of the second dimension (for example, G value) of the 100th three-dimensional point.
  • value [119] [0] indicates the coding coefficient of the first dimension (for example, reflectance) of the 120th three-dimensional point.
  • the three-dimensional data encoding device may entropy encode the value [j] [i] _greator_zero_flag and the value [j] [i] _greeter_one_flag.
  • binary arithmetic coding and binary arithmetic decoding may be used. As a result, the coding efficiency can be improved.
  • the attribute information contained in the PCC (Point Cloud Compression) data is converted by using a plurality of methods such as Lifting, RAHT (Region Adaptive Thermal Transfer) or other conversion methods.
  • Lifting is one of the conversion methods using LoD (Level of Detail).
  • the amount of code can be reduced by quantizing the high frequency component. That is, the conversion process has strong energy compression characteristics. In addition, the accuracy is lost due to the quantization depending on the magnitude of the quantization parameter.
  • FIG. 64 is a block diagram showing a configuration of a three-dimensional data encoding device according to the present embodiment.
  • This three-dimensional data coding device includes a subtraction unit 7001, a conversion unit 7002, a transformation matrix holding unit 7003, a quantization unit 7004, a quantization control unit 7005, and an entropy coding unit 7006.
  • the subtraction unit 7001 calculates a coefficient value which is the difference between the input data and the reference data.
  • the input data is the attribute information included in the point cloud data, and is the predicted value of the attribute information with the reference data.
  • the conversion unit 7002 performs conversion processing into a coefficient value.
  • this conversion process is a process of classifying a plurality of attribute information into LoD.
  • this conversion process may be Har conversion or the like.
  • the transformation matrix holding unit 7003 holds a transformation matrix used for the conversion process by the conversion unit 7002.
  • this transformation matrix is a Har transformation matrix.
  • the three-dimensional data coding apparatus has a function of performing both a conversion process using LoD and a conversion process such as a Har conversion, but even if it has either function. Good.
  • the three-dimensional data coding apparatus may selectively use these two types of conversion processes.
  • the three-dimensional data coding apparatus may switch the conversion process to be used for each predetermined processing unit.
  • the quantization unit 7004 generates a quantization value by quantizing the coefficient value.
  • the quantization control unit 7005 controls the quantization parameters used by the quantization unit 7004 for quantization.
  • the quantization control unit 7005 may switch the quantization parameter (or the quantization step) according to the hierarchical structure of coding.
  • the amount of generated code can be controlled for each layer by selecting an appropriate quantization parameter for each layer structure.
  • the quantization control unit 7005 sets the quantization parameter of a certain layer or lower including the frequency component having little influence on the subjective image quality to the maximum value, and sets the quantization coefficient of the layer or lower to 0.
  • the quantization control unit 7005 can control the subjective image quality and the generated code amount more finely.
  • the hierarchy is a hierarchy (depth in a tree structure) in LoD or RAHT (Haar transformation).
  • the entropy coding unit 7006 generates a bit stream by entropy coding (for example, arithmetic coding) the quantization coefficient. Further, the entropy coding unit 7006 encodes the quantization parameter for each layer set by the quantization control unit 7005.
  • FIG. 65 is a block diagram showing the configuration of the three-dimensional data decoding device according to the present embodiment.
  • This three-dimensional data decoding device includes an entropy decoding unit 7011, an inverse quantization unit 7012, a quantization control unit 7013, an inverse conversion unit 7014, a transformation matrix holding unit 7015, and an addition unit 7016.
  • the entropy decoding unit 7011 decodes the quantization coefficient and the quantization parameter for each layer from the bit stream.
  • the dequantization unit 7012 generates a coefficient value by dequantizing the quantization coefficient.
  • the quantization control unit 7013 controls the quantization parameter used by the inverse quantization unit 7012 for the inverse quantization based on the quantization parameter of the hierarchy number obtained by the entropy decoding unit 7011.
  • the inverse conversion unit 7014 reversely converts the coefficient value.
  • the inverse conversion unit 7014 performs inverse Har conversion of the coefficient value.
  • the transformation matrix holding unit 7015 holds a transformation matrix used for the inverse transformation processing by the inverse transformation unit 7014.
  • this transformation matrix is an inverse Haar transformation matrix.
  • the addition unit 7016 generates output data by adding reference data to the coefficient value.
  • the output data is the attribute information included in the point cloud data, and is the predicted value of the attribute information with the reference data.
  • the quantization parameter of the low layer is reduced to improve the accuracy of the low layer.
  • the prediction accuracy of the high-rise layer can be improved.
  • the amount of data can be reduced by increasing the quantization parameter for high-rise buildings.
  • the quantization tree value (Qt) can be set individually for each LoD according to the usage policy of the user.
  • the quantization tree value is, for example, a quantization parameter.
  • FIG. 66 is a diagram showing a setting example of LoD. For example, as shown in FIG. 66, Qt0 to Qt2 independent of LoD0 to LoD2 are set.
  • the quantization parameter of the low layer is reduced to improve the accuracy of the low layer.
  • the prediction accuracy of the high-rise layer can be improved.
  • the amount of data can be reduced by increasing the quantization parameter for high-rise buildings. In this way, the quantization tree value (Qt) can be set individually for each depth of the tree structure according to the usage policy of the user.
  • FIG. 67 is a diagram showing an example of a hierarchical structure (tree structure) of RAHT. For example, as shown in FIG. 67, independent Qt0 to Qt2 are set for each depth of the tree structure.
  • FIG. 68 is a block diagram showing the configuration of the three-dimensional data encoding device 7020 according to the present embodiment.
  • the three-dimensional data encoding device 7020 generates encoded data (encoded stream) by encoding point cloud data (point cloud).
  • the three-dimensional data coding device 7020 includes a dividing unit 7021, a plurality of position information coding units 7022, a plurality of attribute information coding units 7023, an additional information coding unit 7024, and a multiplexing unit 7025. ..
  • the division unit 7021 generates a plurality of division data by dividing the point cloud data. Specifically, the division unit 7021 generates a plurality of division data by dividing the space of the point cloud data into a plurality of subspaces. Here, the subspace is one of tiles and slices, or a combination of tiles and slices. More specifically, the point cloud data includes position information, attribute information (color or reflectance, etc.), and additional information. The division unit 7021 generates a plurality of division position information by dividing the position information, and generates a plurality of division attribute information by dividing the attribute information. In addition, the division unit 7021 generates additional information regarding the division.
  • the division unit 7021 first divides the point cloud into tiles. Next, the dividing unit 7021 further divides the obtained tile into slices.
  • the plurality of position information coding units 7022 generates a plurality of coded position information by encoding the plurality of divided position information.
  • the position information coding unit 7022 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 7022 process a plurality of divided position information in parallel.
  • the attribute information coding unit 7023 generates coded attribute information which is coded data by encoding the attribute information using the configuration information generated by the position information coding unit 7022. For example, the attribute information coding unit 7023 determines a reference point (reference node) to be referred to in coding the target point (target node) to be processed based on the ocree tree structure generated by the position information coding unit 7022. To do. For example, the attribute information coding unit 7023 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 additional information coding unit 7024 generates encoded additional information by encoding the additional information included in the point cloud data and the additional information related to the data division generated at the time of division by the division unit 7021.
  • the multiplexing unit 7025 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.
  • FIG. 69 is a block diagram of the division portion 7021.
  • the division portion 7021 includes a tile division portion 7031 and a slice division portion 7032.
  • the tile division unit 7031 generates a plurality of tile position information by dividing the position information (Position (Geometry)) into tiles. Further, the tile dividing unit 7031 generates a plurality of tile attribute information by dividing the attribute information (Attribute) into tiles. Further, the tile division unit 7031 outputs tile addition information (Tile Metadata Data) including information related to tile division and information generated in tile division.
  • the slice division unit 7032 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 7032 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 7032 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 tile division unit 7031 and the slice division unit 7032 determine the quantization tree value (quantization parameter) based on the generated additional information.
  • FIG. 70 is a block diagram of the attribute information coding unit 7023.
  • the attribute information coding unit 7023 includes a conversion unit 7035, a quantization unit 7036, and an entropy coding unit 7037.
  • the conversion unit 7035 classifies the division attribute information into a hierarchy such as LoD, and generates a coefficient value (difference value) by calculating the difference between the division attribute information and the predicted value.
  • the conversion unit 7035 may generate a coefficient value by performing a Har conversion on the division attribute information.
  • the quantization unit 7036 generates a quantization value by quantizing the coefficient value. Specifically, the quantization unit 7036 divides the coefficient in the quantization step based on the quantization parameter.
  • the entropy coding unit 7037 generates coding attribute information by entropy-coding the quantization value.
  • FIG. 71 is a block diagram showing the configuration of the three-dimensional data decoding device 7040.
  • the three-dimensional data decoding device 7040 restores the point cloud data by decoding the coded data (encoded stream) generated by encoding the point cloud data.
  • the three-dimensional data decoding device 7040 includes a demultiplexing unit 7041, a plurality of position information decoding units 7042, a plurality of attribute information decoding units 7043, an additional information decoding unit 7044, and a coupling unit 7045.
  • the demultiplexing unit 7041 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 7042 generate a plurality of divided position information by decoding the plurality of coded position information. For example, the plurality of position information decoding units 7042 process a plurality of coded position information in parallel.
  • the plurality of attribute information decoding units 7043 generates a plurality of divided attribute information by decoding the plurality of coded attribute information. For example, the plurality of attribute information decoding units 7043 processes a plurality of coded attribute information in parallel.
  • the plurality of additional information decoding units 7044 generate additional information by decoding the coded additional information.
  • the connecting unit 7045 generates position information by combining a plurality of divided position information using additional information.
  • the coupling unit 7045 generates attribute information by combining a plurality of division attribute information using additional information.
  • FIG. 72 is a block diagram of the attribute information decoding unit 7043.
  • the attribute information decoding unit 7043 includes an entropy decoding unit 7051, an inverse quantization unit 7052, and an inverse conversion unit 7053.
  • the entropy decoding unit 7051 generates a quantized value by entropy decoding the coding attribute information.
  • the dequantization unit 7052 generates a coefficient value by dequantizing the quantization value. Specifically, the quantization step based on the quantization tree value (quantization parameter) obtained from the bit stream is multiplied by the coefficient value.
  • the inverse conversion unit 7053 generates the division attribute information by inversely converting the coefficient value.
  • the inverse conversion is, for example, a process of adding a predicted value to a coefficient value.
  • the inverse transformation is an inverse Har transformation.
  • FIG. 73 is a diagram showing an example of setting quantization parameters in tile and slice division.
  • the value of the quantization parameter is small, the original information can be easily maintained.
  • the default value of the quantization parameter is 1.
  • the quantization parameter of the tiles of the main road is set to a small value in order to maintain the data quality.
  • the quantization parameter of the tile in the surrounding area is set to a large value. As a result, the data quality in the peripheral region is lowered, but the coding efficiency can be improved.
  • the three-dimensional data coding device uses a value of ⁇ QP in order to reduce the quantization parameter in coding three-dimensional points belonging to an important area such as a main road. May be set to a negative value to reduce the quantization error.
  • the attribute value after decoding of the three-dimensional point belonging to the important area can be brought close to the value before encoding.
  • the 3D data encoding device reduces the amount of information by setting a positive value for the ⁇ QP value in order to increase the quantization parameter when coding 3D points belonging to unimportant areas such as peripheral areas. You may. As a result, the total code amount can be reduced while keeping the amount of information in the important area.
  • a mechanism for controlling the quantization parameter in a finer unit is introduced in addition to the quantization parameter QPbase for frames, slices, tiles, and the like.
  • a three-dimensional data encoding device provides Delta_Layer for each LoD, and adds Delta_Layer to the QPbase value for each LoD while changing the value of the quantization parameter. Encode. Further, the three-dimensional data encoding device adds the Delta_Layer used for coding to the header of the bit stream or the like.
  • the three-dimensional data coding device can encode the attribute information of the three-dimensional point while changing the quantization parameter for each LoD according to, for example, the target code amount and the generated code amount, so that the target code amount is finally obtained. It is possible to generate a bit stream with a code amount close to. Further, the 3D data decoding device can appropriately decode the bit stream by decoding the QPbase and Delta_Layer included in the header to generate the quantization parameters used by the 3D data coding device.
  • FIG. 74 is a diagram showing an example in which the attribute information of all three-dimensional points is encoded using the quantization parameter QPbase.
  • FIG. 75 is a diagram showing an example in which the quantization parameter is switched for each LoD layer to perform coding.
  • the quantization parameter of the leading LoD is calculated by adding the Delta_Layer of the leading LoD to the QPbase.
  • the quantization parameter of the LoD to be processed is calculated by adding the Delta_Layer of the LoD to be processed to the quantization parameter of the immediately preceding LoD.
  • FIG. 76 is a diagram showing an example of syntax of the attribute information header (Attribut header information).
  • the attribute information header is, for example, a header for each frame, slice, or tile, and is a header for attribute information.
  • the attribute information header includes a QPbase (reference quantization parameter), a NumLayer (number of layers), and a Delta_Layer [i] (difference quantization parameter).
  • QPbase indicates the value of the reference quantization parameter in the frame, slice, tile, etc.
  • NuMLayer indicates the number of layers of LoD or RAHT.
  • NumLayer indicates the number of Delta_Layer [i] contained in the attribute information header.
  • Delta_Layer [i] indicates the value of ⁇ QP in the layer i.
  • ⁇ QP is a value obtained by subtracting the quantization parameter of the layer i from the quantization parameter of the layer i-1.
  • ⁇ QP may be a value obtained by subtracting the quantization parameter of layer i from QPbase.
  • ⁇ QP can take a positive or negative value. It is not necessary to add Delta_Layer [0] to the header. In this case, the quantization parameter of layer 0 is equal to QPbase. As a result, the amount of header code can be reduced.
  • FIG. 77 is a diagram showing another syntax example of the attribute information header (Attributable header information).
  • the attribute information header shown in FIG. 77 further includes delta_Layer_present_flag with respect to the attribute information header shown in FIG. 76.
  • Delta_Layer_present_flag is a flag indicating whether or not Delta_Layer is included in the bitstream. For example, a value of 1 indicates that Delta_Layer is included in the bitstream, and a value of 0 indicates that Delta_Layer is not included in the bitstream.
  • delta_Layer_present_flag is 0, the three-dimensional data decoding apparatus sets, for example, Delta_Layer to 0 and performs the subsequent decoding process.
  • the quantization step may be indicated by QPbase and Delta_Layer.
  • the quantization step is calculated from the quantization parameters using a predetermined formula, table, or the like.
  • the three-dimensional data coding device divides the coefficient value in the quantization step in the quantization process.
  • the three-dimensional data decoding device restores the coefficient value by multiplying the quantization value by the quantization step in the inverse quantization process.
  • FIG. 78 is a diagram showing an example of controlling the quantization parameter in units finer than LoD.
  • the three-dimensional data encoding device defines ADelta_QP and NuPointADelta representing the position information of the three-dimensional point to which ADelta_QP is added, in addition to Delta_Layer for each LoD layer. ..
  • the three-dimensional data coding apparatus performs coding while changing the values of the quantization parameters based on Delta_Layer, ADelta_QP, and NuPointADelta.
  • the three-dimensional data encoding device may add Adelta and NumPointADelta used for encoding to the header of the bit stream or the like.
  • the three-dimensional data coding apparatus can encode the attribute information of a plurality of three-dimensional points while changing the quantization parameter for each three-dimensional point according to, for example, the target code amount and the generated code amount.
  • the three-dimensional data encoding device can finally generate a bit stream having a code amount close to the target code amount.
  • the 3D data decoding device can appropriately decode the bit stream by decoding the QPbase, Delta_Layer, and ADelta included in the header to generate the quantization parameters used by the 3D data coding device.
  • coding / decoding order opposite to the coding / decoding order shown in FIG. 78 may be used.
  • coding / decoding may be performed in the order of LoD3, LoD2, LoD1, and LoD0.
  • FIG. 79 is a diagram showing a syntax example of an attribute information header (Attributable header information) when the example shown in FIG. 78 is used.
  • the attribute information header shown in FIG. 79 further includes NumADelta, NumPointADelta [i], and ADelta_QP [i] with respect to the attribute information header shown in FIG. 76.
  • NuADelta indicates the number of ADelta_QP contained in the bitstream.
  • NumPointADelta [i] indicates the identification number of the three-dimensional point A to which ADelta_QP [i] is applied.
  • NuPointADelta [i] indicates the number of 3D points from the first 3D point to the 3D point A in the coding / decoding order.
  • NuPointADelta [i] may indicate the number of three-dimensional points from the first three-dimensional point to the three-dimensional point A in LoD to which the three-dimensional point A belongs.
  • NumPointADelta [i] may indicate a difference value between the identification number of the three-dimensional point indicated by NumPointADelta [i-1] and the identification number of the three-dimensional point A.
  • the value of NuMPointADelta [i] can be reduced, so that the amount of code can be reduced.
  • ADelta_QP [i] indicates the value of ⁇ QP of the three-dimensional point indicated by NumPointADelta [i]. That is, ADelta_QP [i] indicates the difference between the quantization parameter of the three-dimensional point indicated by NumPointADelta [i] and the quantization parameter of the three-dimensional point immediately before the three-dimensional point.
  • FIG. 80 is a diagram showing another syntax example of the attribute information header (Attribute header information) when the example shown in FIG. 78 is used.
  • the attribute information header shown in FIG. 80 further includes delta_Layer_present_flag and additional_delta_QP_present_flag with respect to the attribute information header shown in FIG. 79, and includes NumADelta_minus1 instead of NumADelta.
  • the delta_Layer_present_flag is the same as that already described with reference to FIG. 77.
  • Additional_delta_QP_present_flag is a flag indicating whether or not ADelta_QP is included in the bitstream. For example, a value of 1 indicates that ADelta_QP is included in the bitstream, and a value of 0 indicates that ADelta_QP is not included in the bitstream.
  • additional_delta_QP_present_flag is 0, the three-dimensional data decoding apparatus sets, for example, ADelta_QP to 0 and performs the subsequent decoding process.
  • ADelta_QP [i] indicates the value of the i-th ADelta_QP. Note that ADelta_QP [i] may be set to a negative value as well as a positive value.
  • FIG. 81 is a flowchart of the three-dimensional data coding process according to the present embodiment.
  • the three-dimensional data encoding device encodes the position information (geometry) (S7001).
  • a three-dimensional data encoding device encodes using an ocree representation.
  • the three-dimensional data encoding device converts the attribute information (S7002). For example, a three-dimensional data encoding device reassigns the attribute information of the original three-dimensional point to the changed three-dimensional point when the position of the three-dimensional point changes due to quantization or the like after the position information is encoded. To do.
  • the three-dimensional data coding apparatus may interpolate and reassign 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 obtains the attribute information values of the N three-dimensional points from the three-dimensional position after the change.
  • Weighted averaging is performed based on the distances to each of N three dimensions, and the obtained value is determined as the value of the attribute information of the three-dimensional points after the change. Further, in the three-dimensional data encoding device, when two or more three-dimensional points are changed to the same three-dimensional position due to quantization or the like, the value of the attribute information after the change is two or more before the change. The average value of the attribute information at the three-dimensional point may be assigned.
  • the three-dimensional data encoding device encodes the attribute information (S7003). For example, when encoding a plurality of attribute information, the three-dimensional data encoding device may encode the plurality of attribute information in order. For example, when the color and the reflectance are encoded, the three-dimensional data encoding device generates a bit stream in which the reflectance coding result is added after the color coding result. The plurality of coding results of the attribute information added to the bit stream may be in any order.
  • the three-dimensional data encoding device may add information indicating the start location of the encoded data 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 attribute information in parallel and integrate the coding result into one bit stream. As a result, the three-dimensional data encoding device can encode a plurality of attribute information at high speed.
  • FIG. 82 is a flowchart of the attribute information coding process (S7003).
  • the three-dimensional data encoding device sets LoD (S7011). That is, the 3D data encoding device assigns each 3D point to any of the plurality of LoDs.
  • the three-dimensional data encoding device starts a loop in units of LoD (S7012). That is, the three-dimensional data encoding device repeats the processes of steps S7013 to S7021 for each LoD.
  • the three-dimensional data encoding device starts a loop in units of three-dimensional points (S7013). That is, the three-dimensional data coding apparatus repeats the processes of steps S7014 to S7020 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 (S7014).
  • 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 (S7015).
  • 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 (S7016).
  • the three-dimensional data coding device calculates the quantized value by quantizing the predicted residual (S7017).
  • the three-dimensional data encoding device arithmetically encodes the quantized value (S7018).
  • the three-dimensional data encoding device determines ⁇ QP (S7019).
  • the ⁇ QP determined here is used to determine the quantization parameters used for the subsequent quantization of the predicted residuals.
  • the three-dimensional data coding device calculates the dequantized value by dequantizing the quantization value (S7020). Next, the three-dimensional data encoding device generates a decoded value by adding the predicted value to the inverse quantization value (S7021). Next, the three-dimensional data encoding device ends the loop in units of three-dimensional points (S7022). Further, the three-dimensional data encoding device ends the loop in units of LoD (S7023).
  • FIG. 83 is a flowchart of the ⁇ QP determination process (S7019).
  • the three-dimensional data coding apparatus calculates the layer i to which the next target three-dimensional point A to be coded belongs and the coding order N (S7031).
  • the layer i represents, for example, a LoD layer or a RAHT layer.
  • the three-dimensional data encoding device adds the generated code amount to the cumulative code amount (S7032).
  • the cumulative code amount is the cumulative code amount for one frame, one slice, or one tile of the target three-dimensional point.
  • the cumulative code amount may be a cumulative code amount obtained by adding the code amounts of a plurality of frames, a plurality of slices, or a plurality of tiles.
  • the cumulative code amount of the attribute information may be used, or the cumulative code amount obtained by adding both the position information and the attribute information may be used.
  • the three-dimensional data encoding device determines whether or not the cumulative code amount is larger than the target code amount ⁇ TH1 (S7033).
  • the target code amount is the target code amount for one frame, one slice, or one tile of the target three-dimensional point.
  • the target code amount may be a target code amount obtained by adding a plurality of frames, a plurality of slices, or a plurality of tiles.
  • the target code amount of the attribute information may be used, or the target code amount obtained by adding both the position information and the attribute information may be used.
  • the three-dimensional data coding device determines whether or not the cumulative code amount is larger than the target code amount ⁇ TH2 (S7036).
  • the threshold values TH1 and TH2 for example, values from 0.0 to 1.0 are set. Also, TH1> TH2. For example, when the cumulative code amount exceeds the value of the target code amount ⁇ TH1 (Yes in S7033), the three-dimensional data coding device determines that the code amount needs to be suppressed immediately, and determines that the next three-dimensional point. Adelta_QP is set to the value ⁇ in order to increase the quantization parameter of N. Further, the three-dimensional data encoding device sets NuPointADelta to the value N and increments j by 1 (S7034).
  • the value ⁇ may be a fixed value or a variable value.
  • the three-dimensional data coding apparatus may determine the value of ⁇ by the magnitude of the difference between the cumulative code amount and the target code amount ⁇ TH1.
  • the larger the difference between the cumulative code amount and the target code amount ⁇ TH1 the larger the value of ⁇ is set.
  • the three-dimensional data encoding device can control the quantization parameter so that the cumulative code amount does not exceed the target code amount.
  • the three-dimensional data coding apparatus sets the quantization parameter of the layer i to which the target three-dimensional point A belongs or the next layer i + 1.
  • Delta_Layer is set to the value ⁇ in order to increase (S7037). For example, in the three-dimensional data encoding device, if the target three-dimensional point A is the head of the layer i, the Delta_Layer [i] of the layer i is set to the value ⁇ , and the target three-dimensional point A is other than the head of the layer i. If there is, the Delta_Layer [i + 1] of the layer i + 1 is set to the value ⁇ .
  • the value ⁇ may be a fixed value or a variable value.
  • the three-dimensional data coding apparatus may determine the value of ⁇ by the magnitude of the difference between the cumulative code amount and the target code amount ⁇ TH2.
  • the larger the difference between the cumulative code amount and the target code amount ⁇ TH2 the larger the value of ⁇ is set.
  • the three-dimensional data encoding device can control the quantization parameter so that the cumulative code amount does not exceed the target code amount.
  • the three-dimensional data encoding device sets ADELta_QP so that the quantization parameter becomes the maximum value supported by the standard or the like when the cumulative code amount exceeds or is likely to exceed the target code amount.
  • the value of Delta_Layer may be set.
  • the three-dimensional data coding device may lower the quantization parameter so that the generated code amount increases.
  • the three-dimensional data coding apparatus may lower the quantization parameter by setting the value of Delta_Layer or Adelta_QP to a negative value according to the difference between the cumulative code amount and the target code amount.
  • the three-dimensional data encoding device can generate a bit stream close to the target code amount.
  • FIG. 84 is a flowchart of the three-dimensional data decoding process according to the present embodiment.
  • the three-dimensional data decoding device decodes the position information (geometry) from the bit stream (S7005).
  • a three-dimensional data decoding device decodes using an ocree representation.
  • the three-dimensional data decoding device decodes the attribute information from the bit stream (S7006). For example, when decoding a plurality of attribute information, the three-dimensional data decoding device may decode the plurality of attribute information in order. For example, when decoding a color and a reflectance as attribute information, the three-dimensional data decoding apparatus decodes the color coding result and the reflectance coding result in the order of being added to the bit stream. For example, in a bitstream, if the color coding result is followed by the reflectance coding result, the three-dimensional data decoder decodes the color coding result and then the reflectance coding. 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 start location of the encoded data of each attribute information in the bit stream by decoding 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 decoding device may decode a plurality 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 attribute information at high speed.
  • FIG. 85 is a flowchart of the attribute information decoding process (S7006).
  • the three-dimensional data decoding device sets LoD (S7041). 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 encoding device.
  • the three-dimensional data decoding device decodes ⁇ QP from the bit stream (S7042). Specifically, the three-dimensional data encoding device decodes Delta_Layer, ADelta_QP, and NumPointADelta from the header of the bitstream.
  • the three-dimensional data decoding device starts a loop in units of LoD (S7043). That is, the three-dimensional data decoding device repeats the processes of steps S7044 to S7050 for each LoD.
  • the three-dimensional data decoding device starts a loop in units of three-dimensional points (S7044). That is, the three-dimensional data decoding apparatus repeats the processes of steps S7045 to S7049 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, which are used to calculate the predicted value of the target three-dimensional point to be processed (S7045).
  • 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 (S7046). Note that these processes are the same as the processes in the three-dimensional data coding apparatus.
  • the three-dimensional data decoding device arithmetically decodes the quantized value from the bit stream (S7047). Further, the three-dimensional data decoding device calculates the dequantized value by dequantizing the decoded quantization value (S7048). In this inverse quantization, the quantization parameter calculated by using the ⁇ QP obtained in step S7042 is used.
  • the three-dimensional data decoding device generates a decoded value by adding the predicted value to the inverse quantization value (S7049).
  • the three-dimensional data decoding device ends the loop in units of three-dimensional points (S7050). Further, the three-dimensional data decoding device ends the loop in units of LoD (S7051).
  • FIG. 86 is a block diagram of the attribute information coding unit 7023.
  • the attribute information coding unit 7023 includes a LoD setting unit 7061, a search unit 7062, a prediction unit 7063, a subtraction unit 7064, a quantization unit 7065, an inverse quantization unit 7066, a reconstruction unit 7067, and a memory 7068. And the ⁇ QP calculation unit 7070.
  • LoD setting unit 7061 generates LoD using the position information of the three-dimensional point.
  • the search unit 7062 searches for neighboring 3D points of each 3D point using the LoD generation result and the distance information between the 3D points.
  • the prediction unit 7063 generates a prediction value of the attribute information of the target three-dimensional point. Further, the prediction unit 7063 assigns prediction values to a plurality of prediction modes 0 to M-1 and selects a prediction mode to be used from the plurality of prediction modes.
  • the subtraction unit 7064 generates a prediction residual by subtracting the prediction value from the attribute information.
  • the quantization unit 7065 quantizes the predicted residual of the attribute information.
  • the dequantization unit 7066 dequantizes the predicted residual after quantization.
  • the reconstruction unit 7067 generates a decoded value by adding the predicted value and the predicted residual after dequantization.
  • the memory 7068 stores the value (decoded value) of the attribute information of each decoded three-dimensional point.
  • the attribute information of the decoded three-dimensional point stored in the memory 7068 is used for the prediction of the unencoded three-dimensional point by the prediction unit 7063.
  • the arithmetic coding unit 7069 calculates ZeroCnt from the predicted residual after quantization, and arithmetically encodes ZeroCnt. In addition, the arithmetic coding unit 7069 arithmetically encodes the non-zero predicted residual after quantization. Arithmetic coding unit 7069 may binarize the predicted residuals prior to arithmetic coding. Further, the arithmetic coding unit 7069 may generate and encode various header information. Further, the arithmetic coding unit 7069 may arithmetically encode the prediction mode information (PredMode) indicating the prediction mode used by the prediction unit 7063 for coding and add it to the bit stream.
  • PredMode prediction mode information
  • the ⁇ QP calculation unit 7070 determines the values of Delta_Layer, ADelta_QP, and NuPointADelta from the generated code amount obtained by the arithmetic coding unit 7069 and the predetermined target code amount. Quantization by the quantization unit 7065 is performed using the quantization parameters based on the determined Delta_Layer, ADelta_QP and NumPointADelta. In addition, the arithmetic coding unit 7069 arithmetically encodes Delta_Layer, ADelta_QP, and NumPointADelta and adds them to the bit stream.
  • FIG. 87 is a block diagram of the attribute information decoding unit 7043.
  • the attribute information decoding unit 7043 includes an arithmetic decoding unit 7071, a LoD setting unit 7072, a search unit 7073, a prediction unit 7074, an inverse quantization unit 7075, a reconstruction unit 7076, and a memory 7077.
  • the arithmetic decoding unit 7071 arithmetically decodes ZeroCnt and the predicted residual included in the bit stream. In addition, the arithmetic decoding unit 7071 decodes various header information. Further, the arithmetic decoding unit 7071 arithmetically decodes the prediction mode information (PredMode) from the bit stream, and outputs the obtained prediction mode information to the prediction unit 7074. In addition, the arithmetic decoding unit 7071 decodes Delta_Layer, ADelta_QP, and NumPointADelta from the header of the bitstream.
  • PredMode prediction mode information
  • the LoD setting unit 7072 generates LoDs using the position information of the decoded three-dimensional points.
  • the search unit 7073 searches for neighboring three-dimensional points of each three-dimensional point by using the LoD generation result and the distance information between the three-dimensional points.
  • the prediction unit 7074 generates a predicted value of attribute information of the target three-dimensional point to be decoded.
  • the dequantization unit 7075 dequantizes the arithmetically decoded predicted residuals. Specifically, the inverse quantization unit 7075 performs inverse quantization using the quantization parameters based on the decoded Delta_Layer, ADelta_QP and NumPointADelta.
  • the reconstruction unit 7076 generates a decoded value by adding the predicted value and the predicted residual after dequantization.
  • the memory 7077 stores the value (decoded value) of the attribute information of each of the decoded three-dimensional points.
  • the attribute information of the decoded three-dimensional point stored in the memory 7077 is used for the prediction of the undecoded three-dimensional point by the prediction unit 7074.
  • FIG. 88 is a diagram showing an example in which the quantization parameter is controlled in finer units when the attribute information is encoded using RAHT.
  • the three-dimensional data encoding device defines ADelta_QP and NumPointADelta representing the position information of the three-dimensional point to which ADelta_QP is added in addition to Delta_Layer for each layer of RAHT. To do.
  • the three-dimensional data coding apparatus performs coding while changing the values of the quantization parameters based on Delta_Layer, ADelta_QP, and NuPointADelta.
  • the three-dimensional data encoding device may add Adelta and NumPointADelta used for encoding to the header of the bit stream or the like.
  • the three-dimensional data coding apparatus can encode the attribute information of the three-dimensional points while changing the quantization parameter for each three-dimensional point according to, for example, the target code amount and the generated code amount.
  • the three-dimensional data encoding device can finally generate a bit stream having a code amount close to the target code amount.
  • the 3D data decoding device can appropriately decode the bit stream by decoding the QPbase, Delta_Layer and ADelta included in the header to generate the quantization parameters used by the 3D data coding device.
  • FIG. 89 is a diagram showing a syntax example of an attribute information header (Attributable header information) when the example shown in FIG. 88 is used.
  • the attribute information header shown in FIG. 89 is basically the same as the attribute information header shown in FIG. 79, except that the LoD hierarchy is changed to the RAHT hierarchy.
  • NuADelta indicates the number of ADelta_QP contained in the bitstream.
  • NumPointADelta [i] indicates the identification number of the three-dimensional point A to which ADelta_QP [i] is applied.
  • NuPointADelta [i] indicates the number of 3D points from the first 3D point to the 3D point A in the coding / decoding order.
  • NuPointADelta [i] may indicate the number of three-dimensional points from the first three-dimensional point to the three-dimensional point A in the hierarchy to which the three-dimensional point A belongs.
  • NumPointADelta [i] may indicate a difference value between the identification number of the three-dimensional point indicated by NumPointADelta [i-1] and the identification number of the three-dimensional point A.
  • the value of NuPointADelta [i] can be set small, so that the amount of code can be reduced.
  • FIG. 90 is a diagram showing another syntax example of the attribute information header (Attribute header information) when the example shown in FIG. 88 is used.
  • the attribute information header shown in FIG. 90 is basically the same as the attribute information header shown in FIG. 80, except that the LoD hierarchy is changed to the RAHT hierarchy.
  • Additional_delta_QP_present_flag is a flag indicating whether or not ADelta_QP is included in the bitstream. For example, a value of 1 indicates that ADelta_QP is included in the bitstream, and a value of 0 indicates that ADelta_QP is not included in the bitstream.
  • additional_delta_QP_present_flag is 0, the three-dimensional data decoding apparatus sets, for example, ADelta_QP to 0 and performs the subsequent decoding process.
  • ADelta_QP [i] indicates the value of the i-th ADelta_QP. Note that ADelta_QP [i] may be set to a negative value as well as a positive value.
  • FIG. 91 is a flowchart of three-dimensional data coding processing when RAHT is used.
  • the three-dimensional data encoding device encodes the position information (geometry) (S7061).
  • a three-dimensional data encoding device encodes using an ocree representation.
  • the three-dimensional data encoding device converts the attribute information (S7062). For example, a three-dimensional data encoding device reassigns the attribute information of the original three-dimensional point to the changed three-dimensional point when the position of the three-dimensional point changes due to quantization or the like after the position information is encoded. To do.
  • the three-dimensional data coding apparatus may interpolate and reassign 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 obtains the attribute information values of the N three-dimensional points from the three-dimensional position after the change.
  • Weighted averaging is performed based on the distances to each N 3Ds, and the obtained values are set as the values of the attribute information of the changed 3D points. Further, in the three-dimensional data encoding device, when two or more three-dimensional points are changed to the same three-dimensional position due to quantization or the like, the value of the attribute information after the change is two or more before the change. The average value of the attribute information at the three-dimensional point may be assigned.
  • the three-dimensional data encoding device encodes the attribute information (S7063). For example, when encoding a plurality of attribute information, the three-dimensional data encoding device may encode the plurality of attribute information in order. For example, when the color and the reflectance are encoded, the three-dimensional data encoding device generates a bit stream in which the reflectance coding result is added after the color coding result. The plurality of coding results of the attribute information added to the bit stream may be in any order.
  • the three-dimensional data encoding device may add information indicating the start location of the encoded data 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 attribute information in parallel and integrate the coding result into one bit stream. As a result, the three-dimensional data encoding device can encode a plurality of attribute information at high speed.
  • FIG. 92 is a flowchart of the attribute information coding process (S7063).
  • the three-dimensional data coding apparatus generates a coding coefficient from the attribute information by Har conversion (S7071).
  • the three-dimensional data encoding device applies quantization to the coding coefficient (S7072).
  • the three-dimensional data coding apparatus generates coding attribute information (bit stream) by coding the coding coefficient after quantization (S7073).
  • the three-dimensional data decoding device determines ⁇ QP (S7074).
  • the method for determining ⁇ QP is the same as in step S7019 when the LoD hierarchy is used. Further, the determined ⁇ QP is used to determine the quantization parameter used for the subsequent quantization of the coding coefficient.
  • the three-dimensional data coding apparatus applies inverse quantization to the coding coefficient after quantization (S7075).
  • the three-dimensional data decoding apparatus decodes the attribute information by applying the inverse Har transformation to the coding coefficient after the inverse quantization (S7076). For example, the decoded attribute information is referenced in subsequent coding.
  • FIG. 93 is a flowchart of the three-dimensional data decoding process when RAHT is used.
  • the three-dimensional data decoding device decodes the position information (geometry) from the bit stream (S7065). For example, a three-dimensional data decoding device decodes using an ocree representation.
  • the three-dimensional data decoding device decodes the attribute information from the bit stream (S7066). For example, when decoding a plurality of attribute information, the three-dimensional data decoding device may decode the plurality of attribute information in order. For example, when decoding a color and a reflectance as attribute information, the three-dimensional data decoding apparatus decodes the color coding result and the reflectance coding result in the order of being added to the bit stream. For example, in a bitstream, if the color coding result is followed by the reflectance coding result, the three-dimensional data decoder decodes the color coding result and then the reflectance coding. 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 start location of the encoded data of each attribute information in the bit stream by decoding 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 decoding device may decode a plurality 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 attribute information at high speed.
  • FIG. 94 is a flowchart of the attribute information decoding process (S7066).
  • the three-dimensional data decoding device decodes the coding coefficient from the bit stream (S7081).
  • the three-dimensional data decoding device decodes ⁇ QP from the bit stream (S7082).
  • the three-dimensional data encoding device decodes Delta_Layer, ADelta_QP, and NumPointADelta from the header of the bitstream.
  • the three-dimensional data decoding device applies inverse quantization to the coding coefficient (S7083).
  • the quantization parameter calculated by using the ⁇ QP obtained in step S7082 is used.
  • the three-dimensional data decoding apparatus decodes the attribute information by applying the inverse Har transformation to the coding coefficient after the inverse quantization (S7084).
  • FIG. 95 is a block diagram of the attribute information coding unit 7023 when RAHT is used.
  • the attribute information coding unit 7023 includes a sorting unit 7081, a Har conversion unit 7082, a quantization unit 7083, an inverse quantization unit 7084, an inverse Haar conversion unit 7085, a memory 7086, an arithmetic coding unit 7087, and the like. It is provided with a ⁇ QP calculation unit 7088.
  • the sort unit 7081 generates a Morton code using the position information of the three-dimensional points, and sorts a plurality of three-dimensional points in the Morton code order.
  • the Har conversion unit 7082 generates a coding coefficient by applying the Har conversion to the attribute information.
  • the quantization unit 7083 quantizes the coding coefficient of the attribute information.
  • the dequantization unit 7084 dequantizes the coding coefficient after quantization.
  • the inverse Har conversion unit 7085 applies the inverse Har conversion to the coding coefficient.
  • the memory 7086 stores the values of the attribute information of the plurality of decoded three-dimensional points. For example, the attribute information of the decoded three-dimensional point stored in the memory 7086 may be used for predicting an unencoded three-dimensional point or the like.
  • the arithmetic coding unit 7087 calculates ZeroCnt from the coding coefficient after quantization, and arithmetically encodes ZeroCnt. In addition, the arithmetic coding unit 7087 arithmetically codes the non-zero coding coefficient after quantization. Arithmetic coding unit 7087 may binarize the coding coefficients before arithmetic coding. Further, the arithmetic coding unit 7087 may generate and encode various header information.
  • the ⁇ QP calculation unit 7088 determines the values of Delta_Layer, ADelta_QP, and NuPointADelta from the generated code amount obtained by the arithmetic coding unit 7087 and the predetermined target code amount. Quantization is performed by the quantization unit 7083 using the quantization parameters based on the determined Delta_Layer, ADelta_QP and NumPointADelta. In addition, the arithmetic coding unit 7087 arithmetically encodes Delta_Layer, ADelta_QP, and NumPointADelta and adds them to the bit stream.
  • FIG. 96 is a block diagram of the attribute information decoding unit 7043 when RAHT is used.
  • the attribute information decoding unit 7043 includes an arithmetic decoding unit 7091, an inverse quantization unit 7092, an inverse Har conversion unit 7093, and a memory 7094.
  • the arithmetic decoding unit 7091 arithmetically decodes ZeroCnt and the coding coefficient included in the bit stream.
  • the arithmetic decoding unit 7091 may decode various header information.
  • the arithmetic decoding unit 7091 decodes Delta_Layer, ADelta_QP, and NumPointADelta from the header of the bitstream.
  • the dequantization unit 7092 dequantizes the arithmetically decoded coding coefficient. Specifically, the inverse quantization unit 7092 performs inverse quantization using the quantization parameters based on the decoded Delta_Layer, ADelta_QP and NumPointADelta.
  • the inverse Haar conversion unit 7093 applies the inverse Haar transformation to the coding coefficient after the inverse quantization.
  • the memory 7094 stores the values of the attribute information of the plurality of decoded three-dimensional points.
  • the attribute information of the decoded three-dimensional point stored in the memory 7094 may be used for predicting the undecoded three-dimensional point.
  • the three-dimensional data coding apparatus may encode the quantization parameter of the attribute information of the three-dimensional point for each three-dimensional point as new attribute information.
  • the three-dimensional data coding apparatus encodes the attribute information A (for example, color) while calculating the quantization parameter according to the flow shown in FIG.
  • the three-dimensional data encoding device encodes the used quantization parameter as a new attribute value of each three-dimensional point.
  • the three-dimensional data coding apparatus may perform coding while changing the value of the quantization parameter for each three-dimensional point. For example, in the three-dimensional data coding apparatus, when the cumulative code amount exceeds the value of the target code amount ⁇ TH1, the value of the quantization parameter may be set large in order to suppress the generated code amount. Further, when the cumulative code amount is smaller than the value of the target code amount ⁇ TH3, the three-dimensional data coding apparatus may set the value of the quantization parameter small in order to increase the generated code amount.
  • the three-dimensional data coding device encodes the attribute information A, and then encodes the quantization parameter assigned to each three-dimensional point as new attribute information A'.
  • the three-dimensional data coding apparatus may apply lossless coding in order to prevent the loss of the amount of information of the quantization parameter.
  • the three-dimensional data encoding device may add information indicating that the coded attribute information is a quantization parameter to the header or the like. As a result, the 3D data decoding device can appropriately decode the quantization parameters used by the 3D data coding device.
  • the three-dimensional data decoding device decodes the attribute information A'of the attribute information in the bit stream, and acquires the quantization parameter used for decoding the attribute information A.
  • the three-dimensional data decoding device decodes the attribute information A using the decoded quantization parameters.
  • the three-dimensional data encoding device may encode ⁇ QP, which is the amount of change in the quantization parameter of each three-dimensional point, as new attribute information A'instead of the above-mentioned quantization parameter. Further, when ⁇ QP takes positive and negative values, the three-dimensional data encoding device may convert the signed ⁇ QP to a positive value as described below and then encode the coded ⁇ QP.
  • the signed ⁇ QP (deltaQP_s) is less than 0, the unsigned ⁇ QP (deltaQP_u) is set to -1- (2 ⁇ deltaQP_s).
  • the unsigned ⁇ QP (deltaQP_u) is set to 2 ⁇ deltaQP_s.
  • the three-dimensional data coding apparatus may encode the quantization parameter used for coding for each attribute information as the attribute information.
  • the three-dimensional data coding apparatus may encode the quantization parameter of the color attribute information A as the attribute information A'and the quantization parameter of the reflectance attribute information B as the attribute information B'.
  • the quantization parameter can be switched for each attribute information. For example, by setting the quantization parameter of high-priority attribute information small and setting the quantization parameter of low-priority attribute information large, the overall code amount is reduced while protecting the high-priority attribute information. it can.
  • the three-dimensional data encoding device when the predicted residual of the attribute information of the three-dimensional point is quantized and encoded, Delta_Layer and ADelta_QP are set in the header by delta_Layer_present_flag, additional_delta_QP_present_flag, etc.
  • QW Quality weight
  • the value of QW (Quantization weight) indicating the importance of points may not be applied. For example, when QW is applied, the larger the QW (higher importance), the smaller the quantization parameter is set. As a result, it is possible to switch between quantization according to the importance determined by internal processing such as prediction and quantization according to the value set by the user in the header, so that both can be performed according to the user's application. Can be used properly.
  • the three-dimensional data encoding device may add a flag to the header indicating whether or not to apply the value of QW (Quantization weight).
  • QW Quality weight
  • the Delta_Layer_Present_flag and the additional_delta_QP_present_flag are set to the Delta_Layer and ADelta_Flag.
  • the value of QW Quantization weight
  • the three-dimensional data encoding device may add a flag to the header indicating whether or not to apply the value of QW (Quantization weight).
  • QW Quality weight
  • FIG. 97 is a diagram showing an example of syntax of the attribute information header (Attribut header information) in this case.
  • the attribute information header shown in FIG. 97 further includes a default_delta_Layer_present_flag, a default_delta_Layer_index, and a default_additional_delta_QP_present_press_press_predent_flag with respect to the attribute information header shown in FIG. 80.
  • Default_delta_Layer_present_flag is a flag indicating whether or not to use the default value of Delta_Layer defined in the standard or the like. For example, a value of 1 indicates that the default Delta_Layer is used. A value of 0 indicates that the default Delta_Layer is not used. When the value is 0, the three-dimensional data decoding apparatus sets, for example, Delta_Layer to 0 and performs the subsequent decoding process.
  • Default_delta_Layer_index is information for identifying the Delta_Layer to be used from one or more default Delta_Layer defined in the standard or the like.
  • default_delta_Layer_index is defined as follows.
  • the quantization parameter can be changed without adding the Delta_Layer value to the header, so that the code amount of the header can be reduced.
  • Default_additional_delta_QP_present_flag is a flag indicating whether or not to use the default value of ADelta_QO defined in the standard or the like. For example, a value of 1 indicates that the default ADelta_QP is used. A value of 0 indicates that the default ADelta_QP is not used. When the value is 0, the three-dimensional data decoding apparatus sets ADelta_QP to 0 and performs the subsequent decoding process, for example.
  • Default_additional_delta_QP_index is information for identifying the ADelta_QP to be used from one or more default ADelta_QP defined in a standard or the like.
  • default_additional_delta_QP_index is defined as follows.
  • ADelta_QP is set to 1 for every N three-dimensional points. That is, the value of the quantization parameter is incremented by 1 each time N three-dimensional points are encoded or decoded.
  • the three-dimensional data encoding device may separately add information indicating N pieces to the header.
  • ADelta_QP is set to 2 for every N three-dimensional points. That is, the value of the quantization parameter increases by 2 each time N three-dimensional points are encoded or decoded.
  • the three-dimensional data encoding device may separately add information indicating N pieces to the header.
  • the quantization parameter can be changed without adding the value of ADelta_QP to the header, so that the code amount of the header can be reduced.
  • FIG. 98 is a graph showing the relationship between the bit rate of bitstream coding and time.
  • the threshold value TH1 is the maximum threshold value (upper limit value) in a predetermined range.
  • the threshold TH1 is specifically a hard limit that cannot be exceeded because the buffer or transmission bandwidth is limited.
  • the threshold value TH2 is the minimum threshold value (lower limit value) in a predetermined range.
  • the threshold TH2 is specifically a soft limit set to maintain consistency in bit rate and image quality.
  • the bit rate is increased or decreased by adjusting the QP value according to the number of three-dimensional points having the attribute value associated with the QP value and the complexity of the encoded attribute value.
  • Bitrate variability occurs in the early stages when the coding tool tries to adjust to the correct QP value setting, and once the coded stream is stable, the bitrate variability will eventually be small and the bitrate will be stable. ..
  • FIG. 99 is a diagram showing the hierarchical structure of the three-dimensional point cloud and the number of three-dimensional points belonging to each layer.
  • a plurality of three-dimensional points included in the three-dimensional point cloud are classified into four layers: layer 1, layer 2, layer 3, and layer 4.
  • the number of 3D points for each LoD layer or each depth layer may differ significantly as shown in FIG. 99.
  • the lowest layer 4 contains 75% of the three-dimensional points in the three-dimensional point cloud, and the other layers 1 to 3 contain the remaining 25% of the three-dimensional points. Therefore, changing the QP value in layer 4 has a greater effect on the size or bit rate of the bitstream than changing the QP value in any of layers 1 to 3.
  • This method can be applied not only to predictive transformation, lifting transformation, and RAHT, but also to other methods of encoding 3D point clouds using multiple layers. That is, this method is limited to applying to the 3D points for each layer illustrated above, provided that the original QP value (slice or layer) applied is applicable to the group of 3D point cloud data. Absent. Further, when one layer is further divided into a plurality of sub-layers (SubLayer) and a plurality of three-dimensional points included in the one layer are assigned (classified) to the divided sub-layers, each of the plurality of sub-layers is used. May be assigned ⁇ QP (DeltaQP). Here, one or more three-dimensional points may be assigned to one sub-layer.
  • the method of further dividing one layer into a plurality of sub-layers is not necessarily applied to the lowest layer. It may be applied to any of a plurality of layers.
  • FIG. 100 is a diagram showing a first example of classifying a one-layer three-dimensional point cloud into sub-layers according to a specified three-dimensional point cloud.
  • the number of three-dimensional points included in each of the plurality of sub-hierarchies is specified.
  • the layer 4 includes 100 three-dimensional points to be encoded, and the layer 4 has two sub-layers each containing 25 three-dimensional points and 50 tertiary points. It is divided into sub-hierarchies including the original point. For example, the number of sub-layers that divide the layer 4 and the number of three-dimensional points included in each sub-layer may be specified by input by the user.
  • numPointADelta [i] is used to store the three-dimensional point information of the sub-layer.
  • the size of the array is 3, or numPointADelta [i] is set to a value from 0 to 2 indicating the three sub-layers of layer 4.
  • i is a value indicating a hierarchy including sub-hierarchies.
  • numPointADelta [i] may indicate the size of each sub-layer, or may indicate the starting point of each sub-layer.
  • the size of the sub-layer is the number of 3D points included in the sub-layer.
  • the start point of a sub-layer is the most among the order of a plurality of 3D points included in each sub-layer when an order is assigned to each 3D point cloud of the 3D point cloud included in the layer to which the sub-layer belongs. Indicates the smallest order (order of the first three-dimensional points).
  • numPointADelta [i] indicates the size
  • the coded size has a smaller coverage in most cases, so that slightly smaller parameter values can be generated.
  • both the 3D data encoder and the 3D data decoder need to track the size of the sub-tier being processed.
  • numPointADelta [i] indicates a starting point
  • the coding position always requires the full range of the last element.
  • the 3D data encoding device and the 3D data decoding device can be processed more easily.
  • FIG. 101 is a diagram showing a second example of classifying a one-layer three-dimensional point cloud into sub-layers with a fixed number of three-dimensional points.
  • FIG. 102 shows an example of the syntax of the attribute information header in the second example.
  • FIG. 103 shows another example of the syntax of attribute information in the second example.
  • the number of common three-dimensional points is specified for the plurality of sub-layers. That is, in the second example, one common number is specified as the number of three-dimensional points classified into the sub-layer.
  • the const_NumPoint may be encoded as shown in FIG. 102, and ADelta_QP may be encoded for each sub-layer. Also, as shown in FIG. 103, the const_NumPoint may be generated for each sub-layer and modified based on each layer.
  • Additional_delta_QP_present_flag is implemented to indicate const_NumPoint, and ADelta_QP is available for each sub-tier. Note that additional_delta_QP_present_flag may be omitted if it is necessary to always encode const_NumPoint. Similarly, the TotalPoint of each sub-layer may be calculated internally during the encoding or decoding process, or it may be encoded for simplification and stored in the header.
  • Const_NumPoint indicates the number (constant) of three-dimensional points in each sub-layer.
  • Num_sublayer indicates the total number of 3D points in the corresponding sub-layer and the number of sub-layers that can be divided based on the const_NumPoint.
  • FIG. 104 is a diagram showing a third example of classifying a one-layer three-dimensional point cloud into a number of sub-layers different from the planned number.
  • FIG. 105 shows an example of the syntax of the attribute information header in the third example.
  • FIG. 106 shows another example of the syntax of the attribute information header in the third example.
  • a plurality of three-dimensional points are classified into a number different from the predetermined number of sub-layers, for example, a sub-layer having a larger number than the predetermined number.
  • This example is an example in which a sub-hierarchy to which the DeltaQP value is not assigned occurs because more sub-hierarchies than the planned number are generated.
  • a default value such as 0 or a predetermined value may be set as the DeltaQP value in the sub-layer to which the DeltaQP value is not assigned.
  • the DeltaQP value assigned to one of the sub-layers to which the DeltaQP value is assigned (for example, the last or lowest sub-layer) is assigned.
  • the DeltaQP value may be assigned as the DeltaQP value of the sub-layer to which the DeltaQP value is not assigned.
  • the last sub-layer is the n-1th layer of the n layers from layer 0 to layer n-1 determined by the three-dimensional coding device by a predetermined method.
  • the number of layers is added to the header.
  • the predetermined method for example, while the three-dimensional coding device encodes each layer while controlling the rate, it is not necessary to change the QP value of the sub-layer after determining that the target bit rate can be achieved. If it is determined that there is, it is a method of not transmitting the DeltaQP value for the subsequent layers. As a result, the amount of code in the header can be reduced.
  • syntax that identifies the number of ADeltaQPs to be encoded or decoded There are multiple examples of syntax that identifies the number of ADeltaQPs to be encoded or decoded.
  • the syntax shown in FIG. 105 has a specific stop_code that is a fixed value in the range of DeltaQP in the sub-layer. When the three-dimensional data decoding device acquires stop_code, it ends the loop. In a 3D data encoder, the range of DeltaQP needs to be encoded or can be defined in the standard so that both the 3D data encoder and the 3D data decoder are recognized. ..
  • the syntax shown in FIG. 106 is a method of directly encoding a num_sublayer to indicate the number of ADeltaQP values that can be decoded.
  • the extra AdeltaQP value may be discarded without being used.
  • FIG. 107 is a diagram showing a fourth example of classifying a three-dimensional point cloud of one layer into sub-layers by the number of three-dimensional points specified by a percentage (percentage).
  • FIG. 108 shows an example of the syntax of the attribute information header in the fourth example.
  • the ratio for classifying into the sub-layers is specified as the three-dimensional score for classifying into each sub-layer.
  • the number of 3D point clouds in the sub-layer is specified as a ratio to the number of 3D points included in the layer including the sub-layer.
  • each of the four sub-hierarchies is 25% of the total number of three-dimensional points included in the hierarchy including the sub-hierarchy, 30% of the total number, 30% of the total number, and the said. It has been shown to contain 15% of the total number of 3D points.
  • the number of three-dimensional points included in each of the plurality of sub-hierarchies to be divided is the sub-hierarchy with respect to the total number of three-dimensional points included in the hierarchy.
  • both the 3D data encoder and the 3D data decoder track and process the number of 3D points encoded.
  • the ratio may be calculated for all three-dimensional point clouds, or may be calculated as a ratio of a specific layer, depending on the mounting method.
  • num_sublayer indicates the number of sub-layers divided by the ratio of the three-dimensional point cloud. Further, percentile indicates the ratio of the total number of three-dimensional point clouds included in the corresponding sub-layer to the total number of three-dimensional point clouds included in the layer to which the sub-layer belongs.
  • the remaining 3D points are used in the 3D data encoding device and the 3D data decoding device.
  • it may be classified into a new sub-hierarchy, or it may be classified into the previous sub-hierarchy.
  • the value of the ratio exceeds 100%, which is an allowable value, due to the occurrence of an error, the division into the sub-layer ends at the last three-dimensional point.
  • the ratio is always fixed at 100%, the last ratio among the plurality of ratios specified for classifying the plurality of three-dimensional points included in one layer into a plurality of sub-layers is excluded. You may.
  • the number of elements of the ratio means that it is one less than the number of elements of Adelta_QP.
  • FIG. 109 is a diagram showing a fifth example of classifying a one-layer three-dimensional point cloud into sub-layers by Morton index.
  • FIG. 110 shows an example of the syntax of the attribute information header in the fifth example.
  • the Morton index in the Morton code of the three-dimensional point cloud is specified in the plurality of sub-hierarchies. That is, in the fifth example, the three-dimensional point cloud included in the first layer is classified into sub-layers using the Morton code. For example, a plurality of three-dimensional points having a common Morton index may be classified into the same sub-hierarchy. As a result, the three-dimensional point group is grouped by three-dimensional points having a close spatial distance, for example, a distance closer than a predetermined distance. Therefore, for example, the three-dimensional point group included in each sub-layer is a mass.
  • the three-dimensional space included in the three-dimensional space and corresponding to one sub-layer among the plurality of sub-layers does not overlap with the three-dimensional space corresponding to the other sub-layers.
  • the three-dimensional point cloud since a three-dimensional point cloud having a short spatial distance is assigned to one sub-layer, the three-dimensional point cloud is likely to have similar characteristics or attributes. Therefore, since the common QP value is used and coded for the three-dimensional points included in the same sub-layer, the coding efficiency can be improved.
  • the 3D point cloud When the 3D point cloud is arranged in Morton order for each layer, the 3D point cloud does not have to be sorted. Even if the three-dimensional data encoding device determines in advance which plurality of three-dimensional points are classified into the same sub-layer and sets the number of three-dimensional points classified into each sub-layer using the above method. Good.
  • Number_morton_sublayer indicates the number of sub-hierarchies divided by grouping using the Morton order.
  • Index indicates the Morton index. In Index, for example, when the Morton index A in FIG. 109 is selected, the child nodes of the node of the Morton index A are set in the sub-hierarchy.
  • Morton codes may also be used to indicate the start or end points of the corresponding subhierarchies.
  • the Morton index is not limited to the acquisition from the three-dimensional points of the lowest layer, and may be acquired from the three-dimensional points of the upper layer. Depending on the settings of both the 3D data encoding device and the 3D data decoding device, a start point or an end point for classifying the 3D points into each sub-layer may be determined.
  • FIGS. 111 and 112 are diagrams showing a sixth example of classifying a one-layer three-dimensional point cloud into sub-layers by Morton index.
  • the sixth example is an example in which a three-dimensional point cloud is classified by the hierarchical structure of RAHT.
  • the Morton index of the three-dimensional points is used to identify the sub-hierarchies A to C as a group of the three-dimensional point clouds to be classified.
  • the three-dimensional points having the common Morton index are classified into the same sub-layer.
  • the 3D point cloud can be classified by the Morton index of the 3D point cloud according to the 3D data encoding device and the 3D data decoding device.
  • the sub-layer settings can be applied to any layer. Three-dimensional points located above the specified Morton index may be classified into the next sub-layer or may be treated as outliers.
  • FIG. 112 shows the last three-dimensional point in the sub-hierarchy classified by the Morton index.
  • a sub-layer similar to that in FIG. 14 is shown in a one-dimensional array representation.
  • the classification into sub-hierarchies by using the Morton index is not limited to the classification in a specific hierarchy in predictive conversion, lifting, RAHT depth, etc., and may be applied to the classification into multiple hierarchies / depths.
  • the sub-hierarchy is a sub-group.
  • FIG. 113 is a diagram showing a seventh example of classifying a one-layer three-dimensional point cloud into sub-layers using residuals or Delta values.
  • the Delta value is attribute information (attribute value) to be multiplied by the quantization weight function of the LoD hierarchy in predictive conversion or lifting.
  • the Delta value is the attribute information (attribute value) to be multiplied by the weight.
  • the Delta value may be a value encoded as attribute information and is a predicted value depending on the encoding process, regardless of whether it is converted by predictive conversion, lifting, RAHT or any other method. It may be.
  • the Delta value is indicated by Delta.
  • the Delta value When the value is small, the Delta value may be encoded with a slightly lower QP so that the details are maintained and not quantized. As a result, it is possible to suppress a decrease in resolution. However, when the Delta value is large, the difference between the large Delta values is not easily quantized, so that a large QP value may be used.
  • the radius of the circle represents the magnitude of the Delta value. The larger the Delta value, the farther the three-dimensional point that refers to the center.
  • FIG. 114 is a diagram showing an array of three-dimensional points when arranged in a two-dimensional Morton order.
  • FIG. 115 shows an example of the syntax of the attribute information header in the seventh example.
  • the QP value of the sub-layer does not cover the entire continuous 3D point cloud. For example, as shown in FIG. 114, some 3D point clouds are classified into group A, other scattered 3D point clouds are classified into group B, and some of the other 3D point clouds. The three-dimensional point cloud is classified into group C.
  • the 3D point cloud is assigned to the group index value, and the index value is encoded together with the Delta value.
  • the coding at the lower level will be described later.
  • the index value may be encoded as additional attribute information or may be encoded as an SEI message.
  • the three-dimensional data encoding device may rearrange the three-dimensional points in a specific hierarchy after determining the index, and then encode the index and the index of the corresponding QP in ascending or descending order.
  • Num_Group indicates the number of groups or sub-hierarchies divided based on the Delta value.
  • FIG. 116 shows an example of the residual bitstream syntax.
  • FIG. 117 shows an equation for calculating the encoding cost (Encoding cost).
  • FIG. 118 is a graph showing the relationship between BPP (bits per point) and time.
  • index information is encoded for each point cloud while encoding the residual bitstream.
  • index indicates the index number of the sub-hierarchy or sub-group to which the three-dimensional point belongs.
  • values indicates a predicted residual (residual value).
  • the coding cost of each attribute information may be used, or the coding cost of the previously encoded 3D point may be used. You may.
  • the coding cost in this context is called the number of bits required to encode the attribute information of each 3D point cloud.
  • the coding cost is an objective value used to determine approximately by the equation or accurately by the previously encoded 3D points.
  • BPP bits per point frequency
  • BPP may be controlled by classifying (grouping) the three-dimensional points of the above using an index and applying different sub-layer QPs based on the coding cost. This method is suitable for controlling the bit rate of PCC coding.
  • the bit rate or buffer status plays a role in the classification into sub-layers.
  • the buffer is close to the threshold, it is preferable to classify (group) by a high DeltaQP value in addition to the coding cost of the three-dimensional points.
  • the number of sub-hierarchies (number of groups) needs to be defined by the corresponding DeltaQP value.
  • the number of sub-hierarchies is defined in the attribute information header or SPS.
  • FIG. 119 is a diagram showing that the QP value applied to the coding of the attribute information is set for each sub-layer.
  • FIG. 119 (a) shows a case where the method of setting the QP value for each sub-layer is applied to the layer structure of RAHT, and
  • FIG. 119 shows a case where the method is applied to the layer structure of LoD.
  • the method using the index described in the seventh example can also be used in combination with the rate-distortion optimized quantization (RDQ) method of PCC, and is based on the optimum combination of distortion and bit cost.
  • RDQ rate-distortion optimized quantization
  • RDOQ can be recursively implemented in the attribute information of each 3D point cloud using various DeltaQP settings in the sub-layer.
  • the DeltaQP set in each sub-layer can be set first (in advance) in the header of the attribute information or the SPS in order to shorten the processing time. When set to SPS, it is common to all.
  • RDOQ is efficiently encoded by simply executing these DeltaQP sets recursively and using the index of a particular sub-layer in the syntax of the residual bitstream.
  • FIG. 120 is a diagram showing an eighth example of classifying a three-dimensional point cloud into sub-layers using a Morton code.
  • FIG. 121 shows an example of the syntax of the attribute information header in the eighth example.
  • the three-dimensional point cloud is grouped into a plurality of sub-hierarchies (groups) using the Morton code of the three-dimensional points, and each sub-hierarchy (each group)
  • a method for setting Adelta_QP has been described, but the method is not necessarily limited to this.
  • the position information (x, y, z) of the three-dimensional points may be used to group the three-dimensional point clouds, and Integer_QP may be set for each group.
  • the center coordinates cA, the radius rA and the ADelta_QP_A are defined for the group A
  • the center coordinates cB, the radius rB and the ADelta_QP_B are defined for the group B.
  • the center coordinates, radius and ADelta_QP are defined for each group. Then, the center coordinates, the radius, the Adelta_QP, and the total number of groups defined in each group are added to the header of the attribute information.
  • the three-dimensional data encoding device applies ADelta_QP_A to group B (center cB and).
  • ADelta_QP_B may be applied if it is included in a sphere with radius rB).
  • the 3D data encoding device determines the distance between the 3D point to be processed and the center coordinates cA and cB of each group. You may calculate and apply ADelta_QP which is closer.
  • ADelta_QP having a close value can be applied to a three-dimensional point having a short distance in the three-dimensional space, so that the subjective image quality of the three-dimensional point after coding or decoding can be controlled according to the region. It becomes.
  • the center coordinates of the three-dimensional points constituting the object are set to the center coordinates of the group 101, and half the size of the object is set to the radius.
  • ADelta_QP of group 101 may be set to a negative value, for example.
  • Group 101 includes a three-dimensional point 121 included in the space of a sphere having a radius R1 from the center point O1.
  • Group 102 includes a three-dimensional point 122 included in the space of a sphere having a radius R2 from the center point O2.
  • Adelta_QP_O set in group 101 is applied to the coding of the three-dimensional points belonging to group 101.
  • Adelta_QP_P set in group 102 is applied to the coding of the three-dimensional points belonging to group 102.
  • the center point O1 and the center point O2, which are the reference points for defining each group, are represented by using the coordinate values of the three axes, respectively.
  • the three-dimensional point 123 included in both the group 101 and the group 102 may exist.
  • An added value or an average value of ADelta_QP_O set in the group 101 and ADelta_QP_P set in the group 102 may be applied to the coding of the three-dimensional point 123.
  • This enables finer control of the QP value.
  • each three-dimensional point may belong to a plurality of groups. In that case, the added value of ADelta_QP of all the groups to which the three-dimensional point to be processed belongs may be used as the ADelta_QP value of the three-dimensional point to be processed.
  • the QP value in a certain area of the three-dimensional space can be controlled more flexibly.
  • ADelta_QP_O of group 101 may be set to, for example, a negative value to lower the QP value. As a result, deterioration due to coding of the attribute information of the three-dimensional points belonging to the group 101 can be suppressed.
  • ADelta_QP_O of the group O may be set to a positive value, for example, and the QP value may be increased.
  • the code amount of the attribute information of the three-dimensional points belonging to the group 101 can be reduced.
  • a group is not necessarily limited to this, and a group may be defined using an ellipsoid or a cube. In this case, parameters that define each shape may be added to the header and control information.
  • num_group indicates the total number of groups.
  • center_x, center_y, and center_z indicate the center coordinates of each group.
  • radius indicates the radius of each group.
  • parameters for expressing them may be added to the header or the like.
  • parameters for expressing the coordinates of the reference point and the width, depth, and height from the reference point may be added to the header or the like.
  • a plurality of shapes such as a sphere or an ellipsoid are used as the shape of the three-dimensional space for defining the group, information indicating which shape the three-dimensional space is may be added to the header.
  • the three-dimensional data coding apparatus performs the processing shown in FIG. 122.
  • the three-dimensional data encoding device calculates a plurality of coefficient values from a plurality of attribute information of the plurality of three-dimensional points included in the point group data (S8501), and quantizes each of the plurality of coefficient values to obtain a plurality of coefficient values. (S8502), and a bit stream containing the plurality of quantization values is generated (S8503).
  • the plurality of coefficient values belong to any of the plurality of layers.
  • Quantization parameters for the layer are assigned to each of the predetermined number of layers in the plurality of layers.
  • each of the plurality of coefficient values is (i) quantized using the quantization parameter when the quantization parameter is assigned to the layer to which the coefficient value belongs, and (ii).
  • quantization is performed using the quantization parameter assigned to one of the predetermined number of layers. According to this, in the three-dimensional data coding method, since the quantization parameter can be switched for each layer, coding can be performed appropriately.
  • the one layer is the last layer among the predetermined number of layers.
  • the quantization when the number of the plurality of layers is smaller than the predetermined number, the quantum assigned to the predetermined number of layers that does not correspond to the plurality of layers. Quantization parameters are not used.
  • the bitstream includes first information indicating a reference quantization parameter and a plurality of second information for calculating a plurality of quantization parameters for the plurality of layers from the reference quantization parameter. Therefore, the coding efficiency can be improved.
  • steps S8501, S8502, and S8503 correspond to each process of the ninth embodiment, respectively.
  • 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 method performs the process shown in FIG. 123.
  • the three-dimensional data decoding device generates a plurality of coefficient values by dequantizing each of the plurality of quantization values included in the bit stream (S8511), and is included in the point cloud data from the plurality of coefficient values.
  • a plurality of attribute information of a plurality of three-dimensional points is calculated (S8512).
  • the plurality of quantization values belong to any of the plurality of layers.
  • Quantization parameters for the layer are assigned to each of the predetermined number of layers in the plurality of layers.
  • each of the plurality of quantization values is inversely quantized using (i) when the quantization parameter is assigned to the hierarchy to which the quantization value belongs. , (Ii) When the quantization parameter is not assigned to the layer to which the quantization value belongs, inverse quantization is performed using the quantization parameter assigned to one of the predetermined number of layers. To do. According to this, in the three-dimensional data decoding method, the quantization parameter can be switched for each layer, so that decoding can be performed appropriately.
  • the one layer is the last layer among the predetermined number of layers.
  • the quantization parameters assigned to the predetermined number of layers that do not correspond to the plurality of layers are not used.
  • the bitstream includes first information indicating a reference quantization parameter and a plurality of second information for calculating a plurality of quantization parameters for the plurality of layers from the reference quantization parameter. Therefore, a bit stream with improved coding efficiency can be appropriately decoded.
  • steps S8511 and S8512 correspond to each process of the ninth embodiment, respectively.
  • 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 method according to another aspect of the present disclosure may be processed as follows with respect to steps S8501, S8502, and S8503 described with reference to FIG. 122.
  • a plurality of coefficient values are calculated from a plurality of attribute information of the plurality of three-dimensional points included in the point group data (S8501), and each of the plurality of coefficient values is obtained.
  • S8502 a plurality of quantization values are generated (S8502), and a bit stream including the plurality of quantization values is generated (S8503).
  • Each of the plurality of coefficient values is classified into a plurality of groups in the plurality of three-dimensional spaces to which the three-dimensional point including the attribute information on which the calculation of the coefficient value is based belongs. It belongs to any of.
  • the quantization S8502
  • each of the plurality of coefficient values is quantized using the quantization parameter for the group to which the coefficient value belongs. According to this, in the three-dimensional data coding method, the quantization parameter can be switched for each group, so that the coding can be performed appropriately.
  • the bitstream includes spatial information indicating, for each of the plurality of groups, a reference point of the three-dimensional space corresponding to the group and the size of the three-dimensional space corresponding to the group.
  • the bitstream includes a flag indicating whether or not the spatial information and the quantization parameter for the group of the three-dimensional space indicated by the spatial information are included.
  • 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 method may be processed as follows with respect to steps S8511 and S8512 described with reference to FIG. 123.
  • a plurality of coefficient values are generated by dequantizing each of the plurality of quantization values included in the bit stream (S8511), and from the plurality of coefficient values, a plurality of a plurality of three-dimensional points included in the point cloud data. Attribute information is calculated (S8512).
  • the plurality of quantization values are classified into a plurality of groups according to the three-dimensional space to which the three-dimensional point including the attribute information on which the calculation of the quantization value is based belongs, among the plurality of three-dimensional spaces. It belongs to any of.
  • Quantization parameters for the layer are assigned to each of the predetermined number of layers in the plurality of layers. In the inverse quantization, each of the plurality of quantization values is inverse-quantized using the quantization parameter for the hierarchy to which the quantization value belongs.
  • the bitstream includes spatial information indicating, for each of the plurality of groups, a reference point of the three-dimensional space corresponding to the group and the size of the three-dimensional space corresponding to the group.
  • the bitstream includes a flag indicating whether or not the spatial information and the quantization parameter for the group of the three-dimensional space indicated by the spatial information are included.
  • 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 device, the three-dimensional data decoding device, and the like according to the embodiment of the present disclosure have been described above, but 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 purpose 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 encoding device and a three-dimensional data decoding device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し(S8501)、複数の係数値の各々を量子化することで複数の量子化値を生成し(S8502)、複数の量子化値を含むビットストリームを生成し(S8503)、複数の係数値は、複数の階層のいずれかに属し、複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、量子化(S8502)では、複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に量子化パラメータが割り当てられていない場合、予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する。

Description

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
 本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 三次元データの符号化処理では、適切に符号化を行えることが望まれている。
 本開示は、適切に符号化を行える三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供することを目的とする。
 本開示の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値は、複数の階層のいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記量子化では、前記複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する。
 また、本開示の他の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値のそれぞれは、複数の三次元空間のうち、当該係数値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、前記量子化では、前記複数の係数値の各々を、当該係数値が属するグループ用の量子化パラメータを用いて量子化する。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、前記複数の量子化値は、複数の階層のいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記逆量子化では、前記複数の量子化値の各々を、(i)当該量子化値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて逆量子化し、(ii)当該量子化値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて逆量子化する。
 また、本開示の他の一態様に係る三次元データ復号方法は、ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、前記複数の量子化値は、複数の三次元空間のうち、当該量子化値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記逆量子化では、前記複数の量子化値の各々を、当該量子化値が属する階層用の量子化パラメータを用いて逆量子化する。
 本開示は、適切に符号化を行える三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。
図1は、実施の形態1に係る符号化三次元データの構成を示す図である。 図2は、実施の形態1に係るGOSの最下層レイヤに属するSPC間の予測構造の一例を示す図である。 図3は、実施の形態1に係るレイヤ間の予測構造の一例を示す図である。 図4は、実施の形態1に係るGOSの符号化順の一例を示す図である。 図5は、実施の形態1に係るGOSの符号化順の一例を示す図である。 図6は、実施の形態1に係るメタ情報の一例を示す図である。 図7は、実施の形態2に係る車両間の三次元データの送受信の様子を示す模式図である。 図8は、実施の形態2に係る車両間で伝送される三次元データの一例を示す図である。 図9は、実施の形態3に係る三次元データの送信処理を説明するための図である。 図10は、実施の形態4に係るシステムの構成を示す図である。 図11は、実施の形態4に係るクライアント装置のブロック図である。 図12は、実施の形態4に係るサーバのブロック図である。 図13は、実施の形態4に係るクライアント装置による三次元データ作成処理のフローチャートである。 図14は、実施の形態4に係るクライアント装置によるセンサ情報送信処理のフローチャートである。 図15は、実施の形態4に係るサーバによる三次元データ作成処理のフローチャートである。 図16は、実施の形態4に係るサーバによる三次元マップ送信処理のフローチャートである。 図17は、実施の形態4に係るシステムの変形例の構成を示す図である。 図18は、実施の形態4に係るサーバ及びクライアント装置の構成を示す図である。 図19は、実施の形態5に係るサーバ及びクライアント装置の構成を示す図である。 図20は、実施の形態5に係るクライアント装置による処理のフローチャートである。 図21は、実施の形態5に係るセンサ情報収集システムの構成を示す図である。 図22は、実施の形態6に係るボリュームの例を示す図である。 図23は、実施の形態6に係るボリュームの8分木表現の例を示す図である。 図24は、実施の形態6に係るボリュームのビット列の例を示す図である。 図25は、実施の形態6に係るボリュームの8分木表現の例を示す図である。 図26は、実施の形態6に係るボリュームの例を示す図である。 図27は、実施の形態7に係る三次元点の例を示す図である。 図28は、実施の形態7に係るLoDの設定例を示す図である。 図29は、実施の形態7に係るLoDの設定に用いる閾値の例を示す図である。 図30は、実施の形態7に係る予測値に用いる属性情報の例を示す図である。 図31は、実施の形態7に係る指数ゴロム符号の一例を示す図である。 図32は、実施の形態7に係る指数ゴロム符号に対する処理を示す図である。 図33は、実施の形態7に係る属性ヘッダのシンタックス例を示す図である。 図34は、実施の形態7に係る属性データのシンタックス例を示す図である。 図35は、実施の形態7に係る三次元データ符号化処理のフローチャートである。 図36は、実施の形態7に係る属性情報符号化処理のフローチャートである。 図37は、実施の形態7に係る指数ゴロム符号に対する処理を示す図である。 図38は、実施の形態7に係る残り符号とその値との関係を示す逆引きテーブルの例を示す図である。 図39は、実施の形態7に係る三次元データ復号処理のフローチャートである。 図40は、実施の形態7に係る属性情報復号処理のフローチャートである。 図41は、実施の形態7に係る三次元データ符号化装置のブロック図である。 図42は、実施の形態7に係る三次元データ符号化装置のブロック図である。 図43は、実施の形態8に係るRAHTを用いた属性情報の符号化を説明するための図である。 図44は、実施の形態8に係る、階層毎に量子化スケールを設定する例を示す図である。 図45は、実施の形態8に係る第1符号列及び第2符号列の例を示す図である。 図46は、実施の形態8に係るトランケットユーナリ符号の例を示す図である。 図47は、実施の形態8に係る逆Haar変換を説明するための図である。 図48は、実施の形態8に係る属性情報のシンタックス例を示す図である。 図49は、実施の形態8に係る符号化係数とZeroCntの例を示す図である。 図50は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図51は、実施の形態8に係る属性情報符号化処理のフローチャートである。 図52は、実施の形態8に係る符号化係数符号化処理のフローチャートである。 図53は、実施の形態8に係る三次元データ復号処理のフローチャートである。 図54は、実施の形態8に係る属性情報復号処理のフローチャートである。 図55は、実施の形態8に係る符号化係数復号処理のフローチャートである。 図56は、実施の形態8に係る属性情報符号化部のブロック図である。 図57は、実施の形態8に係る属性情報復号部のブロック図である。 図58は、実施の形態8の変形例に係る第1符号列及び第2符号列の例を示す図である。 図59は、実施の形態8の変形例に係る属性情報のシンタックス例を示す図である。 図60は、実施の形態8の変形例に係る符号化係数、ZeroCnt及びTotalZeroCntの例を示す図である。 図61は、実施の形態8の変形例に係る符号化係数符号化処理のフローチャートである。 図62は、実施の形態8の変形例に係る符号化係数復号処理のフローチャートである。 図63は、実施の形態8の変形例に係る属性情報のシンタックス例を示す図である。 図64は、実施の形態9に係る三次元データ符号化装置の構成を示すブロック図である。 図65は、実施の形態9に係る三次元データ復号装置の構成を示すブロック図である。 図66は、実施の形態9に係るLoDの設定例を示す図である。 図67は、実施の形態9に係るRAHTの階層構造の例を示す図である。 図68は、実施の形態9に係る三次元データ符号化装置のブロック図である。 図69は、実施の形態9に係る分割部のブロック図である。 図70は、実施の形態9に係る属性情報符号化部のブロック図である。 図71は、実施の形態9に係る三次元データ復号装置のブロック図である。 図72は、実施の形態9に係る属性情報復号部のブロック図である。 図73は、実施の形態9に係るタイル及びスライス分割における量子化パラメータの設定例を示す図である。 図74は、実施の形態9に係る量子化パラメータの設定例を示す図である。 図75は、実施の形態9に係る量子化パラメータの設定例を示す図である。 図76は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図77は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図78は、実施の形態9に係る量子化パラメータの設定例を示す図である。 図79は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図80は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図81は、実施の形態9に係る三次元データ符号化処理のフローチャートである。 図82は、実施の形態9に係る属性情報符号化処理のフローチャートである。 図83は、実施の形態9に係るΔQP決定処理のフローチャートである。 図84は、実施の形態9に係る三次元データ復号処理のフローチャートである。 図85は、実施の形態9に係る属性情報復号処理のフローチャートである。 図86は、実施の形態9に係る属性情報符号化部のブロック図である。 図87は、実施の形態9に係る属性情報復号部のブロック図である。 図88は、実施の形態9に係る量子化パラメータの設定例を示す図である。 図89は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図90は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図91は、実施の形態9に係る三次元データ符号化処理のフローチャートである。 図92は、実施の形態9に係る属性情報符号化処理のフローチャートである。 図93は、実施の形態9に係る三次元データ復号処理のフローチャートである。 図94は、実施の形態9に係る属性情報復号処理のフローチャートである。 図95は、実施の形態9に係る属性情報符号化部のブロック図である。 図96は、実施の形態9に係る属性情報復号部のブロック図である。 図97は、実施の形態9に係る属性情報ヘッダのシンタックス例を示す図である。 図98は、実施の形態10に係るビットストリームの符号化のビットレートと時間との関係を示すグラフである。 図99は、実施の形態10に係る三次元点群の階層構造と、各階層に属する三次元点の数とを示す図である。 図100は、実施の形態10に係る1階層の三次元点群を指定された三次元点数でサブ階層に分類する第1の例を示す図である。 図101は、実施の形態10に係る1階層の三次元点群を一定の三次元点数でサブ階層に分類する第2の例を示す図である。 図102は、実施の形態10に係る第2の例における属性情報のヘッダのシンタックスの例を示す。 図103は、実施の形態10に係る第2の例における属性情報のシンタックスの他の例を示す。 図104は、実施の形態10に係る1階層の三次元点群を予定の数とは異なる数のサブ階層に分類する第3の例を示す図である。 図105は、実施の形態10に係る第3の例における属性情報のヘッダのシンタックスの例を示す。 図106は、実施の形態10に係る第3の例における属性情報のヘッダのシンタックスの他の例を示す。 図107は、実施の形態10に係る1階層の三次元点群を割合(百分率)で指定された三次元点数でサブ階層に分類する第4の例を示す図である。 図108は、実施の形態10に係る第4の例における属性情報のヘッダのシンタックスの例を示す。 図109は、実施の形態10に係る1階層の三次元点群をモートンインデックスでサブ階層に分類する第5の例を示す図である。 図110は、実施の形態10に係る第5の例における属性情報のヘッダのシンタックスの例を示す。 図111は、実施の形態10に係る1階層の三次元点群をモートンインデックスでサブ階層に分類する第6の例を示す図である。 図112は、実施の形態10に係る1階層の三次元点群をモートンインデックスでサブ階層に分類する第6の例を示す図である。 図113は、実施の形態10に係る1階層の三次元点群を残差またはDelta値を用いてサブ階層に分類する第7の例を示す図である。 図114は、実施の形態10に係る二次元のモートンオーダで並べた場合の三次元点の配列を示す図である。 図115は、実施の形態10に係る第7の例における属性情報のヘッダのシンタックスの例を示す。 図116は、実施の形態10に係る残差のビットストリームのシンタックスの例を示す。 図117は、実施の形態10に係る符号化コスト(Encoding cost)を算出するための式を示す。 図118は、実施の形態10に係るBPP(bits per point)と時間との関係を示すグラフである。 図119は、実施の形態10に係る属性情報の符号化に適用されるQP値が、サブ階層毎に設定されていることを示す図である。 図120は、実施の形態10に係る三次元点群をモートンコードを用いてサブ階層に分類する第8の例を示す図である。 図121は、実施の形態10に係る第8の例における属性情報のヘッダのシンタックスの例を示す。 図122は、実施の形態10に係る三次元データ符号化処理のフローチャートである。 図123は、実施の形態10に係る三次元データ復号処理のフローチャートである。
 本開示の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値は、複数の階層のいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記量子化では、前記複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する。
 これによれば、当該三次元データ符号化方法は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。
 例えば、前記一の階層は、前記予め定められた数の階層のうちの最後の階層であってもよい。
 例えば、前記量子化では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられなくてもよい。
 例えば、前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含んでもよい。
 また、当該三次元データ符号化方法は、基準量子化パラメータを示す第1情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第2情報とを符号化することで符号化効率を向上できる。
 また、本開示の他の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、前記複数の係数値の各々を量子化することで複数の量子化値を生成し、前記複数の量子化値を含むビットストリームを生成し、前記複数の係数値のそれぞれは、複数の三次元空間のうち、当該係数値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、前記量子化では、前記複数の係数値の各々を、当該係数値が属するグループ用の量子化パラメータを用いて量子化する。
 これによれば、当該三次元データ符号化方法は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、前記複数の量子化値は、複数の階層のいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記逆量子化では、前記複数の量子化値の各々を、(i)当該量子化値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて逆量子化し、(ii)当該量子化値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて逆量子化する。
 これによれば、当該三次元データ復号方法は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。
 例えば、前記一の階層は、前記予め定められた数の階層のうちの最後の階層であってもよい。
 例えば、前記逆量子化では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられなくてもよい。
 例えば、前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含んでもよい。
 また、当該三次元データ復号方法は、基準量子化パラメータを示す第1情報と、基準量子化パラメータから複数の量子化パラメータを算出するための複数の第2情報とを用いられることで符号化効率が向上されたビットストリームを適切に復号できる。
 また、本開示の他の一態様に係る三次元データ復号方法は、ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、前記複数の量子化値は、複数の三次元空間のうち、当該量子化値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、前記逆量子化では、前記複数の量子化値の各々を、当該量子化値が属する階層用の量子化パラメータを用いて逆量子化する。
 これによれば、当該三次元データ復号方法は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 まず、本実施の形態に係る符号化三次元データ(以下、符号化データとも記す)のデータ構造について説明する。図1は、本実施の形態に係る符号化三次元データの構成を示す図である。
 本実施の形態では、三次元空間は、動画像の符号化におけるピクチャに相当するスペース(SPC)に分割され、スペースを単位として三次元データが符号化される。スペースは、さらに、動画像符号化におけるマクロブロックなどに相当するボリューム(VLM)に分割され、VLMを単位として予測及び変換が行われる。ボリュームは、位置座標が対応付けられる最小単位である複数のボクセル(VXL)を含む。なお、予測とは、二次元画像で行われる予測と同様に、他の処理単位を参照し、処理対象の処理単位と類似する予測三次元データを生成し、当該予測三次元データと処理対象の処理単位との差分を符号化することである。また、この予測は、同一時刻の他の予測単位を参照する空間予測のみならず、異なる時刻の予測単位を参照する時間予測を含む。
 例えば、三次元データ符号化装置(以下、符号化装置とも記す)は、ポイントクラウドなどの点群データにより表現される三次元空間を符号化する際には、ボクセルのサイズに応じて、点群の各点、又は、ボクセル内に含まれる複数点をまとめて符号化する。ボクセルを細分化すれば点群の三次元形状を高精度に表現でき、ボクセルのサイズを大きくすれば点群の三次元形状をおおまかに表現できる。
 なお、以下では、三次元データがポイントクラウドである場合を例に説明を行うが、三次元データはポイントクラウドに限定されず、任意の形式の三次元データでよい。
 また、階層構造のボクセルを用いてもよい。この場合、n次の階層では、n-1次以下の階層(n次の階層の下層)にサンプル点が存在するかどうかを順に示してもよい。例えば、n次の階層のみを復号する際において、n-1次以下の階層にサンプル点が存在する場合は、n次階層のボクセルの中心にサンプル点が存在するとみなして復号できる。
 また、符号化装置は、点群データを、距離センサ、ステレオカメラ、単眼カメラ、ジャイロ、又は慣性センサなどを用いて取得する。
 スペースは、動画像の符号化と同様に、単独で復号可能なイントラ・スペース(I-SPC)、単方向の参照のみ可能なプレディクティブ・スペース(P-SPC)、及び、双方向の参照が可能なバイディレクショナル・スペース(B-SPC)を含む少なくとも3つの予測構造のいずれかに分類される。また、スペースは復号時刻と表示時刻との2種類の時刻情報を有する。
 また、図1に示すように、複数のスペースを含む処理単位として、ランダムアクセス単位であるGOS(Group Of Space)が存在する。さらに、複数のGOSを含む処理単位としてワールド(WLD)が存在する。
 ワールドが占める空間領域は、GPS又は緯度及び経度情報などにより、地球上の絶対位置と対応付けられる。この位置情報はメタ情報として格納される。なお、メタ情報は、符号化データに含まれてもよいし、符号化データとは別に伝送されてもよい。
 また、GOS内では、全てのSPCが三次元的に隣接してもよいし、他のSPCと三次元的に隣接しないSPCが存在してもよい。
 なお、以下では、GOS、SPC又はVLM等の処理単位に含まれる三次元データに対する、符号化、復号又は参照等の処理を、単に、処理単位を符号化、復号又は参照する等とも記す。また、処理単位に含まれる三次元データは、例えば、三次元座標等の空間位置と、色情報等の特性値との少なくとも一つの組を含む。
 次に、GOSにおけるSPCの予測構造について説明する。同一GOS内の複数のSPC、又は、同一SPC内の複数のVLMは、互いに異なる空間を占めるが、同じ時刻情報(復号時刻及び表示時刻)を持つ。
 また、GOS内で復号順で先頭となるSPCはI-SPCである。また、GOSにはクローズドGOSとオープンGOSとの2種類が存在する。クローズドGOSは、先頭I-SPCから復号開始する際に、GOS内の全てのSPCを復号できるGOSである。オープンGOSでは、GOS内で先頭I-SPCよりも表示時刻が前となる一部のSPCは異なるGOSを参照しており、当該GOSのみで復号を行うことができない。
 なお、地図情報などの符号化データでは、WLDを符号化順とは逆方向から復号することがあり、GOS間に依存性があると逆方向再生が困難である。よって、このような場合には、基本的にはクローズドGOSが用いられる。
 また、GOSは、高さ方向にレイヤ構造を有し、下のレイヤのSPCから順に符号化又は復号が行われる。
 図2はGOSの最下層レイヤに属するSPC間の予測構造の一例を示す図である。図3はレイヤ間の予測構造の一例を示す図である。
 GOS内には1つ以上のI-SPCが存在する。三次元空間内には、ヒト、動物、車、自転車、信号、又はランドマークとなる建物などのオブジェクトが存在するが、特にサイズが小さいオブジェクトはI-SPCとして符号化すると有効である。例えば、三次元データ復号装置(以下、復号装置とも記す)は、GOSを低処理量又は高速に復号する際には、GOS内のI-SPCのみを復号する。
 また、符号化装置は、WLD内のオブジェクトの粗密さに応じてI-SPCの符号化間隔又は出現頻度を切替えてもよい。
 また、図3に示す構成において、符号化装置又は復号装置は、複数のレイヤを下層(レイヤ1)から順に符号化又は復号する。これにより、例えば自動走行車などにとってより情報量の多い地面付近のデータの優先度を上げることができる。
 なお、ドローンなどで用いられる符号化データでは、GOS内において高さ方向で上のレイヤのSPCから順に符号化又は復号してもよい。
 また、符号化装置又は復号装置は、復号装置が荒くGOSを把握でき、徐々に解像度を上げるようにできるように、複数のレイヤを符号化又は復号してもよい。例えば、符号化装置又は復号装置は、レイヤ3、8、1、9…の順に符号化又は復号してもよい。
 次に、静的オブジェクト及び動的オブジェクトの扱い方について説明する。
 三次元空間には、建物又は道路など静的なオブジェクト又はシーン(以降、まとめて静的オブジェクトと呼ぶ)と、車又はヒトなどの動的なオブジェクト(以降、動的オブジェクトと呼ぶ)とが存在する。オブジェクトの検出は、ポイントクラウドのデータ、又は、ステレオカメラなどのカメラ映像などから特徴点を抽出するなどして、別途行われる。ここでは、動的オブジェクトの符号化方法の例について説明する。
 第1方法は、静的オブジェクトと動的オブジェクトとを区別せずに符号化する方法である。第2方法は、静的オブジェクトと動的オブジェクトとを識別情報により区別する方法である。
 例えば、GOSが識別単位として用いられる。この場合、静的オブジェクトを構成するSPCを含むGOSと、動的オブジェクトを構成するSPCを含むGOSとが、符号化データ内、又は符号化データとは別途格納される識別情報により区別される。
 または、SPCが識別単位として用いられてもよい。この場合、静的オブジェクトを構成するVLMを含むSPCと、動的オブジェクトを構成するVLMを含むSPCとが、上記識別情報により区別される。
 または、VLM或いはVXLが識別単位として用いられてもよい。この場合、静的オブジェクトを含むVLM又はVXLと、動的オブジェクトを含むVLM又はVXLとが上記識別情報により区別される。
 また、符号化装置は、動的オブジェクトを1以上のVLM又はSPCとして符号化し、静的オブジェクトを含むVLM又はSPCと、動的オブジェクトを含むSPCとを、互いに異なるGOSとして符号化してもよい。また、符号化装置は、動的オブジェクトのサイズに応じてGOSのサイズが可変となる場合には、GOSのサイズをメタ情報として別途格納する。
 また、符号化装置は、静的オブジェクトと動的オブジェクトとを互いに独立に符号化し、静的オブジェクトから構成されるワールドに対して、動的オブジェクトを重畳してもよい。このとき、動的オブジェクトは1以上のSPCから構成され、各SPCは、当該SPCが重畳される静的オブジェクトを構成する1以上のSPCに対応付けられる。なお、動的オブジェクトをSPCではなく、1以上のVLM又はVXLにより表現してもよい。
 また、符号化装置は、静的オブジェクトと動的オブジェクトとを互いに異なるストリームとして符号化してもよい。
 また、符号化装置は、動的オブジェクトを構成する1以上のSPCを含むGOSを生成してもよい。さらに、符号化装置は、動的オブジェクトを含むGOS(GOS_M)と、GOS_Mの空間領域に対応する静的オブジェクトのGOSとを同一サイズ(同一の空間領域を占める)に設定してもよい。これにより、GOS単位で重畳処理を行うことができる。
 動的オブジェクトを構成するP-SPC又はB-SPCは、符号化済みの異なるGOSに含まれるSPCを参照してもよい。動的オブジェクトの位置が時間的に変化し、同一の動的オブジェクトが異なる時刻のGOSとして符号化されるケースでは、GOSを跨いだ参照が圧縮率の観点から有効となる。
 また、符号化データの用途に応じて、上記の第1方法と第2方法とを切替えてもよい。例えば、符号化三次元データを地図として用いる場合は、動的オブジェクトを分離できることが望ましいため、符号化装置は、第2方法を用いる。一方、符号化装置は、コンサート又はスポーツなどのイベントの三次元データを符号化する場合に、動的オブジェクトを分離する必要がなければ、第1方法を用いる。
 また、GOS又はSPCの復号時刻と表示時刻とは符号化データ内、又はメタ情報として格納できる。また、静的オブジェクトの時刻情報は全て同一としてもよい。このとき、実際の復号時刻と表示時刻は、復号装置が決定するものとしてもよい。あるいは、復号時刻として、GOS、あるいは、SPC毎に異なる値が付与され、表示時刻として全て同一の値が付与されてもよい。さらに、HEVCのHRD(Hypothetical Reference Decoder)など動画像符号化におけるデコーダモデルのように、デコーダが所定のサイズのバッファを有し、復号時刻に従って所定のビットレートでビットストリームを読み込めば破綻なく復号できることを保証するモデルを導入してもよい。
 次に、ワールド内におけるGOSの配置について説明する。ワールドにおける三次元空間の座標は、互いに直交する3本の座標軸(x軸、y軸、z軸)により表現される。GOSの符号化順に所定のルールを設けることで、空間的に隣接するGOSが符号化データ内で連続するように符号化を行える。例えば、図4に示す例では、xz平面内のGOSを連続的に符号化する。あるxz平面内の全てのGOSの符号化終了後にy軸の値を更新する。すなわち、符号化が進むにつれて、ワールドはy軸方向に伸びていく。また、GOSのインデックス番号は符号化順に設定される。
 ここで、ワールドの三次元空間は、GPS、或いは緯度及び経度などの地理的な絶対座標と1対1に対応付けておく。或いは、予め設定した基準位置からの相対位置により三次元空間が表現されてもよい。三次元空間のx軸、y軸、z軸の方向は、緯度及び経度などに基づいて決定される方向ベクトルとして表現され、当該方向ベクトルはメタ情報として符号化データと共に格納される。
 また、GOSのサイズは固定とし、符号化装置は、当該サイズをメタ情報として格納する。また、GOSのサイズは、例えば、都市部か否か、又は、室内か外かなどに応じて切替えられてもよい。つまり、GOSのサイズは、情報としての価値があるオブジェクトの量又は性質に応じて切替えられてもよい。あるいは、符号化装置は、同一ワールド内において、オブジェクトの密度などに応じて、GOSのサイズ、又は、GOS内のI-SPCの間隔を適応的に切替えてもよい。例えば、符号化装置は、オブジェクトの密度が高いほど、GOSのサイズを小さくし、GOS内のI-SPCの間隔を短くする。
 図5の例では、3番目から10番目のGOSの領域では、オブジェクトの密度が高いため、細かい粒度でのランダムアクセスを実現するために、GOSが細分化されている。なお、7番目から10番目のGOSは、それぞれ、3番目から6番目のGOSの裏側に存在する。
 (実施の形態2)
 本実施の形態では、車両間での三次元データを送受信する方法について説明する。
 図7は、自車両600と周辺車両601との間での三次元データ607の送受信の様子を示す模式図である。
 自車両600に搭載されたセンサ(レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組合せなど)により三次元データを取得する場合、周辺車両601などの障害物により自車両600のセンサ検知範囲602内であるものの三次元データを作成できない領域(以降、これをオクルージョン領域604という)が発生する。また、三次元データを取得する空間が大きくなると自律動作の精度が高まるが、自車両600のみのセンサ検知範囲は有限である。
 自車両600のセンサ検知範囲602は、三次元データを取得可能な領域603とオクルージョン領域604とを含む。自車両600が、三次元データを取得したい範囲は、自車両600のセンサ検知範囲602とそれ以外の領域とを含む。また、周辺車両601のセンサ検知範囲605は、オクルージョン領域604と、自車両600のセンサ検知範囲602に含まれない領域606とを含む。
 周辺車両601は、周辺車両601が検知した情報を自車両600に伝送する。自車両600は、前走車などの周辺車両601が検知した情報を取得することで、オクルージョン領域604、及び、自車両600のセンサ検知範囲602以外の領域606の三次元データ607を取得することが可能となる。自車両600は、周辺車両601が取得した情報を用いて、オクルージョン領域604及びセンサ検知範囲外の領域606の三次元データを補完する。
 車両、又はロボットの自律動作における三次元データの用途は、自己位置推定、周辺状況の検知、またはその両方である。例えば、自己位置推定には、自車両600のセンサ情報に基づき自車両600で生成した三次元データが使用される。周辺状況の検知には、自車両600で生成した三次元データに加え、周辺車両601から取得した三次元データも使用される。
 三次元データ607を自車両600に伝送する周辺車両601は、自車両600の状態に応じて決定されてもよい。例えば、この周辺車両601は、自車両600の直進時には前走車であり、自車両600の右折時には対向車であり、自車両600の後退時には後方車である。また、自車両600のドライバが、三次元データ607を自車両600に伝送する周辺車両601を直接指定してもよい。
 また、自車両600は、三次元データ607を取得したい空間内に含まれる、自車両600で取得できない領域の三次元データを所有している周辺車両601を探索してもよい。自車両600で取得できない領域とは、オクルージョン領域604又はセンサ検知範囲602外の領域606などである。
 また、自車両600は、オクルージョン領域604を自車両600のセンサ情報に基づいて特定してもよい。例えば、自車両600は、自車両600のセンサ検知範囲602内に含まれる、三次元データを作成できない領域をオクルージョン領域604であると特定する。
 以下、三次元データ607を伝送するのが前走車である場合の動作例を説明する。図8は、この場合の伝送される三次元データの一例を示す図である。
 図8に示すように、前走車から伝送される三次元データ607は、例えば、ポイントクラウドのスパースワールド(SWLD)である。つまり、前走車は、当該前走車のセンサで検知した情報からWLDの三次元データ(ポイントクラウド)を作成し、WLDの三次元データから特徴量が閾値以上のデータを抽出することでSWLDの三次元データ(ポイントクラウド)を作成する。そして、前走車は、作成したSWLDの三次元データを自車両600に伝送する。
 自車両600は、SWLDを受け取り、自車両600で作成したポイントクラウドに、受け取ったSWLDをマージする。
 伝送されるSWLDは絶対座標(三次元マップの座標系におけるSWLDの位置)の情報を持っている。自車両600は、この絶対座標に基づいて、自車両600で生成したポイントクラウドを上書きすることによりマージ処理を実現できる。
 周辺車両601から伝送されるSWLDは、自車両600のセンサ検知範囲602外かつ周辺車両601のセンサ検知範囲605内の領域606のSWLD、或いは、自車両600にとってのオクルージョン領域604のSWLD、又は、その両方のSWLDでもよい。また、伝送されるSWLDは、上記のSWLDのうち、周辺車両601が周辺状況の検知に使用している領域のSWLDでもよい。
 また、周辺車両601は、自車両600と周辺車両601との速度差に基づく通信可能時間に応じて、伝送されるポイントクラウドの密度を変化させてもよい。例えば、速度差が大きく通信可能時間が短い場合は、周辺車両601は、SWLDの中から、特徴量の大きな三次元点を抽出することで、ポイントクラウドの密度(データ量)を低くしてもよい。
 また、周辺状況の検知とは、人、車両、及び道路工事用の機材などの存在の有無を判定し、その種類を特定し、その位置、移動方向、及び移動速度などを検知することである。
 また、自車両600は、周辺車両601で生成された三次元データ607の代わりに、又は、三次元データ607に加え、周辺車両601の制動情報を取得してもよい。ここで、周辺車両601の制動情報とは、例えば、周辺車両601のアクセル或いはブレーキが踏まれたこと、又はその度合いを示す情報である。
 また、各車両で生成されるポイントクラウドでは、車両間の低遅延通信を考慮して、ランダムアクセス単位に三次元空間が細分化される。一方で、サーバからダウンロードされる地図データである三次元地図等は、三次元空間が、車両間通信の場合と比べて大きなランダムアクセス単位に分割される。
 前走車の前方の領域又は後走車の後方の領域などのオクルージョン領域になりやすい領域のデータは低遅延向けデータとして、細かいランダムアクセス単位に分割される。
 高速走行時には正面の重要性が高まるため、各車両は、高速走行時には、視野角を狭めた範囲のSWLDを細かいランダムアクセス単位で作成する。
 前走車が伝送用に作成したSWLD内に自車両600でポイントクラウドの取得が可能な領域が含まれる場合、前走車は、その領域のポイントクラウドを取り除くことにより伝送量を削減してもよい。
 (実施の形態3)
 本実施の形態では、後続車両への三次元データ送信方法等について説明する。図9は、後続車両等に送信する三次元データの対象空間の例を示す図である。
 車両801は、車両801の前方の車両801から距離Lにある幅W、高さH、深さDの直方体の空間802に含まれるポイントクラウド(点群)等の三次元データを、Δtの時間間隔で、道路状況を監視する交通監視クラウド又は後続車両へ送信する。
 車両801は、外部から空間802に車両又は人が進入するなどして過去に送信済みの空間802に含まれる三次元データに変化が生じた場合には、変化が生じた空間の三次元データについても送信する。
 なお、図9では、空間802の形状が直方体である例を示すが、空間802は、後続車両から死角となっている前方道路上の空間を含んでいればよく、必ずしも直方体でなくてもよい。
 距離Lは、三次元データを受信した後続車両が安全に停止できる距離に設定されることが望ましい。例えば、距離Lは、後続車両が、三次元データの受信に要する間に移動する距離と、後続車両が、受信したデータに応じて減速を開始するまでに移動する距離と、後続車両が原則を開始してから安全に停止するのに要する距離との和に設定される。これらの距離は速度に応じて変化するので、L=a×V+b(a、bは定数)のように、距離Lが車両の速度Vに応じて変化してもよい。
 幅Wは、少なくとも車両801が走行している車線の幅よりも大きな値に設定される。更に望ましくは、幅Wは、左右の車線或いは路側帯など、隣接する空間が含まれる大きさに設定される。
 深さDは固定値でも良いが、D=c×V+d(c、dは定数)のように、車両の速度Vに応じて変化してもよい。また、D>V×ΔtとなるようにDを設定することで、送信する空間を過去に送信済みの空間と重複させることができる。これにより、車両801は、より確実に走路上の空間を漏れなく後続車両等に送信することができる。
 このように、車両801が送信する三次元データを後続車両にとって有用な空間に限定することで、送信する三次元データの容量を効果的に削減でき、通信の低遅延化及び低コスト化を実現できる。
 (実施の形態4)
 実施の形態3において、車両等のクライアント装置が、他の車両又は交通監視クラウド等のサーバに三次元データを送信する例を説明した。本実施の形態では、クライアント装置は、サーバ又は他のクライアント装置にセンサで得られたセンサ情報を送信する。
 まず、本実施の形態に係るシステムの構成を説明する。図10は、本実施の形態に係る三次元マップ及びセンサ情報の送受信システムの構成を示す図である。このシステムは、サーバ901と、クライアント装置902A及び902Bを含む。なお、クライアント装置902A及び902Bを特に区別しない場合には、クライアント装置902とも記す。
 クライアント装置902は、例えば、車両等の移動体に搭載される車載機器である。サーバ901は、例えば、交通監視クラウド等であり、複数のクライアント装置902と通信可能である。
 サーバ901は、クライアント装置902に、ポイントクラウドから構成される三次元マップを送信する。なお、三次元マップの構成はポイントクラウドに限定されず、メッシュ構造等、他の三次元データを表すものであってもよい。
 クライアント装置902は、サーバ901に、クライアント装置902が取得したセンサ情報を送信する。センサ情報は、例えば、LiDAR取得情報、可視光画像、赤外画像、デプス画像、センサ位置情報及び速度情報のうち少なくとも一つを含む。
 サーバ901とクライアント装置902との間で送受信されるデータは、データ削減のために圧縮されてもよいし、データの精度を維持するために非圧縮のままでも構わない。データを圧縮する場合、ポイントクラウドには例えば8分木構造に基づく三次元圧縮方式を用いることができる。また、可視光画像、赤外画像、及びデプス画像には二次元の画像圧縮方式を用いることできる。二次元の画像圧縮方式とは、例えば、MPEGで規格化されたMPEG-4 AVC又はHEVC等である。
 また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じてサーバ901で管理する三次元マップをクライアント装置902に送信する。なお、サーバ901はクライアント装置902からの三次元マップの送信要求を待たずに三次元マップを送信してもよい。例えば、サーバ901は、予め定められた空間にいる1つ以上のクライアント装置902に三次元マップをブロードキャストしても構わない。また、サーバ901は、一度送信要求を受けたクライアント装置902に、一定時間毎にクライアント装置902の位置に適した三次元マップを送信してもよい。また、サーバ901は、サーバ901が管理する三次元マップが更新される度にクライアント装置902に三次元マップを送信してもよい。
 クライアント装置902は、サーバ901に三次元マップの送信要求を出す。例えば、クライアント装置902が、走行時に自己位置推定を行いたい場合に、クライアント装置902は、三次元マップの送信要求をサーバ901に送信する。
 なお、次のような場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。クライアント装置902の保持する三次元マップが古い場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が三次元マップを取得してから一定期間が経過した場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
 クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る一定時刻前に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。例えば、クライアント装置902が、クライアント装置902が保持する三次元マップで示される空間の境界から予め定められた距離以内に存在する場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。また、クライアント装置902の移動経路及び移動速度が把握できている場合には、これらに基づき、クライアント装置902が保持する三次元マップで示される空間から、クライアント装置902が外に出る時刻を予測してもよい。
 クライアント装置902がセンサ情報から作成した三次元データと三次元マップとの位置合せ時の誤差が一定以上の場合に、クライアント装置902はサーバ901に三次元マップの送信要求を出してもよい。
 クライアント装置902は、サーバ901から送信されたセンサ情報の送信要求に応じて、サーバ901にセンサ情報を送信する。なお、クライアント装置902はサーバ901からのセンサ情報の送信要求を待たずにセンサ情報をサーバ901に送ってもよい。例えば、クライアント装置902は、一度サーバ901からセンサ情報の送信要求を得た場合、一定期間の間、定期的にセンサ情報をサーバ901に送信してもよい。また、クライアント装置902は、クライアント装置902がセンサ情報を元に作成した三次元データと、サーバ901から得た三次元マップとの位置合せ時の誤差が一定以上の場合、クライアント装置902の周辺の三次元マップに変化が生じた可能性があると判断し、その旨とセンサ情報とをサーバ901に送信してもよい。
 サーバ901は、クライアント装置902にセンサ情報の送信要求を出す。例えば、サーバ901は、クライアント装置902から、GPS等のクライアント装置902の位置情報を受信する。サーバ901は、クライアント装置902の位置情報に基づき、サーバ901が管理する三次元マップにおいて情報が少ない空間にクライアント装置902が近づいていると判断した場合、新たな三次元マップを生成するためにクライアント装置902にセンサ情報の送信要求を出す。また、サーバ901は、三次元マップを更新したい場合、積雪時或いは災害時などの道路状況を確認したい場合、渋滞状況、或いは事件事故状況等を確認したい場合に、センサ情報の送信要求を出してもよい。
 また、クライアント装置902は、サーバ901から受け取るセンサ情報の送信要求の受信時における通信状態又は帯域に応じて、サーバ901に送信するセンサ情報のデータ量を設定してもよい。サーバ901に送信するセンサ情報のデータ量を設定するというのは、例えば、当該データそのものを増減させること、又は圧縮方式を適宜選択することである。
 図11は、クライアント装置902の構成例を示すブロック図である。クライアント装置902は、サーバ901からポイントクラウド等で構成される三次元マップを受信し、クライアント装置902のセンサ情報に基づいて作成した三次元データからクライアント装置902の自己位置を推定する。また、クライアント装置902は、取得したセンサ情報をサーバ901に送信する。
 クライアント装置902は、データ受信部1011と、通信部1012と、受信制御部1013と、フォーマット変換部1014と、複数のセンサ1015と、三次元データ作成部1016と、三次元画像処理部1017と、三次元データ蓄積部1018と、フォーマット変換部1019と、通信部1020と、送信制御部1021と、データ送信部1022とを備える。
 データ受信部1011は、サーバ901から三次元マップ1031を受信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
 通信部1012は、サーバ901と通信し、データ送信要求(例えば、三次元マップの送信要求)などをサーバ901に送信する。
 受信制御部1013は、通信部1012を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
 フォーマット変換部1014は、データ受信部1011が受信した三次元マップ1031にフォーマット変換等を行うことで三次元マップ1032を生成する。また、フォーマット変換部1014は、三次元マップ1031が圧縮又は符号化されている場合には、伸張又は復号処理を行う。なお、フォーマット変換部1014は、三次元マップ1031が非圧縮データであれば、伸張又は復号処理を行わない。
 複数のセンサ1015は、LiDAR、可視光カメラ、赤外線カメラ、又はデプスセンサなど、クライアント装置902が搭載されている車両の外部の情報を取得するセンサ群であり、センサ情報1033を生成する。例えば、センサ情報1033は、センサ1015がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ1015は複数でなくてもよい。
 三次元データ作成部1016は、センサ情報1033に基づいて自車両の周辺の三次元データ1034を作成する。例えば、三次元データ作成部1016は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いて自車両の周辺の色情報付きのポイントクラウドデータを作成する。
 三次元画像処理部1017は、受信したポイントクラウド等の三次元マップ1032と、センサ情報1033から生成した自車両の周辺の三次元データ1034とを用いて、自車両の自己位置推定処理等を行う。なお、三次元画像処理部1017は、三次元マップ1032と三次元データ1034とを合成することで自車両の周辺の三次元データ1035を作成し、作成した三次元データ1035を用いて自己位置推定処理を行ってもよい。
 三次元データ蓄積部1018は、三次元マップ1032、三次元データ1034及び三次元データ1035等を蓄積する。
 フォーマット変換部1019は、センサ情報1033を、受信側が対応しているフォーマットへ変換することでセンサ情報1037を生成する。なお、フォーマット変換部1019は、センサ情報1037を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1019は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1019は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
 通信部1020は、サーバ901と通信し、データ送信要求(センサ情報の送信要求)などをサーバ901から受信する。
 送信制御部1021は、通信部1020を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 データ送信部1022は、センサ情報1037をサーバ901に送信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報など、複数のセンサ1015によって取得した情報を含む。
 次に、サーバ901の構成を説明する。図12は、サーバ901の構成例を示すブロック図である。サーバ901は、クライアント装置902から送信されたセンサ情報を受信し、受信したセンサ情報に基づいて三次元データを作成する。サーバ901は、作成した三次元データを用いて、サーバ901が管理する三次元マップを更新する。また、サーバ901は、クライアント装置902からの三次元マップの送信要求に応じて、更新した三次元マップをクライアント装置902に送信する。
 サーバ901は、データ受信部1111と、通信部1112と、受信制御部1113と、フォーマット変換部1114と、三次元データ作成部1116と、三次元データ合成部1117と、三次元データ蓄積部1118と、フォーマット変換部1119と、通信部1120と、送信制御部1121と、データ送信部1122とを備える。
 データ受信部1111は、クライアント装置902からセンサ情報1037を受信する。センサ情報1037は、例えば、LiDARで取得した情報、可視光カメラで取得した輝度画像、赤外線カメラで取得した赤外画像、デプスセンサで取得したデプス画像、センサ位置情報、及び速度情報などを含む。
 通信部1112は、クライアント装置902と通信し、データ送信要求(例えば、センサ情報の送信要求)などをクライアント装置902に送信する。
 受信制御部1113は、通信部1112を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 フォーマット変換部1114は、受信したセンサ情報1037が圧縮又は符号化されている場合には、伸張又は復号処理を行うことでセンサ情報1132を生成する。なお、フォーマット変換部1114は、センサ情報1037が非圧縮データであれば、伸張又は復号処理を行わない。
 三次元データ作成部1116は、センサ情報1132に基づいてクライアント装置902の周辺の三次元データ1134を作成する。例えば、三次元データ作成部1116は、LiDARで取得した情報と、可視光カメラで得られた可視光映像とを用いてクライアント装置902の周辺の色情報付ポイントクラウドデータを作成する。
 三次元データ合成部1117は、センサ情報1132を元に作成した三次元データ1134を、サーバ901が管理する三次元マップ1135に合成することで三次元マップ1135を更新する。
 三次元データ蓄積部1118は、三次元マップ1135等を蓄積する。
 フォーマット変換部1119は、三次元マップ1135を、受信側が対応しているフォーマットへ変換することで三次元マップ1031を生成する。なお、フォーマット変換部1119は、三次元マップ1135を圧縮又は符号化することでデータ量を削減してもよい。また、フォーマット変換部1119は、フォーマット変換をする必要がない場合は処理を省略してもよい。また、フォーマット変換部1119は、送信範囲の指定に応じて送信するデータ量を制御してもよい。
 通信部1120は、クライアント装置902と通信し、データ送信要求(三次元マップの送信要求)などをクライアント装置902から受信する。
 送信制御部1121は、通信部1120を介して、対応フォーマット等の情報を通信先と交換し、通信を確立する。
 データ送信部1122は、三次元マップ1031をクライアント装置902に送信する。三次元マップ1031は、WLD又はSWLD等のポイントクラウドを含むデータである。三次元マップ1031には、圧縮データ、及び非圧縮データのどちらが含まれていてもよい。
 次に、クライアント装置902の動作フローについて説明する。図13は、クライアント装置902による三次元マップ取得時の動作を示すフローチャートである。
 まず、クライアント装置902は、サーバ901へ三次元マップ(ポイントクラウド等)の送信を要求する(S1001)。このとき、クライアント装置902は、GPS等で得られたクライアント装置902の位置情報を合わせて送信することで、その位置情報に関連する三次元マップの送信をサーバ901に要求してもよい。
 次に、クライアント装置902は、サーバ901から三次元マップを受信する(S1002)。受信した三次元マップが圧縮データであれば、クライアント装置902は、受信した三次元マップを復号して非圧縮の三次元マップを生成する(S1003)。
 次に、クライアント装置902は、複数のセンサ1015で得られたセンサ情報1033からクライアント装置902の周辺の三次元データ1034を作成する(S1004)。次に、クライアント装置902は、サーバ901から受信した三次元マップ1032と、センサ情報1033から作成した三次元データ1034とを用いてクライアント装置902の自己位置を推定する(S1005)。
 図14は、クライアント装置902によるセンサ情報の送信時の動作を示すフローチャートである。まず、クライアント装置902は、サーバ901からセンサ情報の送信要求を受信する(S1011)。送信要求を受信したクライアント装置902は、センサ情報1037をサーバ901に送信する(S1012)。なお、クライアント装置902は、センサ情報1033が複数のセンサ1015で得られた複数の情報を含む場合、各情報を、各情報に適した圧縮方式で圧縮することでセンサ情報1037を生成してもよい。
 次に、サーバ901の動作フローについて説明する。図15は、サーバ901によるセンサ情報の取得時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902へセンサ情報の送信を要求する(S1021)。次に、サーバ901は、当該要求に応じてクライアント装置902から送信されたセンサ情報1037を受信する(S1022)。次に、サーバ901は、受信したセンサ情報1037を用いて三次元データ1134を作成する(S1023)。次に、サーバ901は、作成した三次元データ1134を三次元マップ1135に反映する(S1024)。
 図16は、サーバ901による三次元マップの送信時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902から三次元マップの送信要求を受信する(S1031)。三次元マップの送信要求を受信したサーバ901は、クライアント装置902へ三次元マップ1031を送信する(S1032)。このとき、サーバ901は、クライアント装置902の位置情報に合わせてその付近の三次元マップを抽出し、抽出した三次元マップを送信してもよい。また、サーバ901は、ポイントクラウドで構成される三次元マップを、例えば8分木構造による圧縮方式等を用いて圧縮し、圧縮後の三次元マップを送信してもよい。
 以下、本実施の形態の変形例について説明する。
 サーバ901は、クライアント装置902から受信したセンサ情報1037を用いてクライアント装置902の位置付近の三次元データ1134を作成する。次に、サーバ901は、作成した三次元データ1134と、サーバ901が管理する同エリアの三次元マップ1135とのマッチングを行うことによって、三次元データ1134と三次元マップ1135との差分を算出する。サーバ901は、差分が予め定められた閾値以上の場合は、クライアント装置902の周辺で何らかの異常が発生したと判断する。例えば、地震等の自然災害によって地盤沈下等が発生した際などに、サーバ901が管理する三次元マップ1135と、センサ情報1037を基に作成した三次元データ1134との間に大きな差が発生することが考えられる。
 センサ情報1037は、センサの種類、センサの性能、及びセンサの型番のうち少なくとも一つを示す情報を含んでもよい。また、センサ情報1037に、センサの性能に応じたクラスID等が付加されてもよい。例えば、センサ情報1037がLiDARで取得された情報である場合、数mm単位の精度で情報を取得できるセンサをクラス1、数cm単位の精度で情報を取得できるセンサをクラス2、数m単位の精度で情報を取得できるセンサをクラス3のように、センサの性能に識別子を割り当てることが考えられる。また、サーバ901は、センサの性能情報等を、クライアント装置902の型番から推定してもよい。例えば、クライアント装置902が車両に搭載されている場合、サーバ901は、当該車両の車種からセンサのスペック情報を判断してもよい。この場合、サーバ901は、車両の車種の情報を事前に取得していてもよいし、センサ情報に、当該情報が含まれてもよい。また、サーバ901は取得したセンサ情報1037を用いて、センサ情報1037を用いて作成した三次元データ1134に対する補正の度合いを切り替えてもよい。例えば、センサ性能が高精度(クラス1)である場合、サーバ901は、三次元データ1134に対する補正を行わない。センサ性能が低精度(クラス3)である場合、サーバ901は、三次元データ1134に、センサの精度に応じた補正を適用する。例えば、サーバ901は、センサの精度が低いほど補正の度合い(強度)を強くする。
 サーバ901は、ある空間にいる複数のクライアント装置902に同時にセンサ情報の送信要求を出してもよい。サーバ901は、複数のクライアント装置902から複数のセンサ情報を受信した場合に、全てのセンサ情報を三次元データ1134の作成に利用する必要はなく、例えば、センサの性能に応じて、利用するセンサ情報を選択してもよい。例えば、サーバ901は、三次元マップ1135を更新する場合、受信した複数のセンサ情報の中から高精度なセンサ情報(クラス1)を選別し、選別したセンサ情報を用いて三次元データ1134を作成してもよい。
 サーバ901は、交通監視クラウド等のサーバのみに限定されず、他のクライアント装置(車載)であってもよい。図17は、この場合のシステム構成を示す図である。
 例えば、クライアント装置902Cが近くにいるクライアント装置902Aにセンサ情報の送信要求を出し、クライアント装置902Aからセンサ情報を取得する。そして、クライアント装置902Cは、取得したクライアント装置902Aのセンサ情報を用いて三次元データを作成し、クライアント装置902Cの三次元マップを更新する。これにより、クライアント装置902Cは、クライアント装置902Aから取得可能な空間の三次元マップを、クライアント装置902Cの性能を活かして生成できる。例えば、クライアント装置902Cの性能が高い場合に、このようなケースが発生すると考えられる。
 また、この場合、センサ情報を提供したクライアント装置902Aは、クライアント装置902Cが生成した高精度な三次元マップを取得する権利が与えられる。クライアント装置902Aは、その権利に従ってクライアント装置902Cから高精度な三次元マップを受信する。
 また、クライアント装置902Cは近くにいる複数のクライアント装置902(クライアント装置902A及びクライアント装置902B)にセンサ情報の送信要求を出してもよい。クライアント装置902A又はクライアント装置902Bのセンサが高性能である場合には、クライアント装置902Cは、この高性能なセンサで得られたセンサ情報を用いて三次元データを作成できる。
 図18は、サーバ901及びクライアント装置902の機能構成を示すブロック図である。サーバ901は、例えば、三次元マップを圧縮及び復号する三次元マップ圧縮/復号処理部1201と、センサ情報を圧縮及び復号するセンサ情報圧縮/復号処理部1202とを備える。
 クライアント装置902は、三次元マップ復号処理部1211と、センサ情報圧縮処理部1212とを備える。三次元マップ復号処理部1211は、圧縮された三次元マップの符号化データを受信し、符号化データを復号して三次元マップを取得する。センサ情報圧縮処理部1212は、取得したセンサ情報から作成した三次元データの代わりに、センサ情報そのものを圧縮し、圧縮したセンサ情報の符号化データをサーバ901へ送信する。この構成により、クライアント装置902は、三次元マップ(ポイントクラウド等)を復号する処理を行う処理部(装置又はLSI)を内部に保持すればよく、三次元マップ(ポイントクラウド等)の三次元データを圧縮する処理を行う処理部を内部に保持する必要がない。これにより、クライアント装置902のコスト及び消費電力等を抑えることができる。
 以上のように、本実施の形態に係るクライアント装置902は、移動体に搭載され、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1033から、移動体の周辺の三次元データ1034を作成する。クライアント装置902は、作成された三次元データ1034を用いて移動体の自己位置を推定する。クライアント装置902は、取得したセンサ情報1033をサーバ901又は他の移動体902に送信する。
 これによれば、クライアント装置902は、センサ情報1033をサーバ901等に送信する。これにより、三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、クライアント装置902は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
 また、クライアント装置902は、さらに、サーバ901に三次元マップの送信要求を送信し、サーバ901から三次元マップ1031を受信する。クライアント装置902は、自己位置の推定では、三次元データ1034と三次元マップ1032とを用いて、自己位置を推定する。
 また、センサ情報1033は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
 また、センサ情報1033は、センサの性能を示す情報を含む。
 また、クライアント装置902は、センサ情報1033を符号化又は圧縮し、センサ情報の送信では、符号化又は圧縮後のセンサ情報1037を、サーバ901又は他の移動体902に送信する。これによれば、クライアント装置902は、伝送されるデータ量を削減できる。
 例えば、クライアント装置902は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係るサーバ901は、移動体に搭載されるクライアント装置902と通信可能であり、移動体に搭載されたセンサ1015により得られた、移動体の周辺状況を示すセンサ情報1037をクライアント装置902から受信する。サーバ901は、受信したセンサ情報1037から、移動体の周辺の三次元データ1134を作成する。
 これによれば、サーバ901は、クライアント装置902から送信されたセンサ情報1037を用いて三次元データ1134を作成する。これにより、クライアント装置902が三次元データを送信する場合に比べて、送信データのデータ量を削減できる可能性がある。また、三次元データの圧縮又は符号化等の処理をクライアント装置902で行う必要がないので、クライアント装置902の処理量を削減できる。よって、サーバ901は、伝送されるデータ量の削減、又は、装置の構成の簡略化を実現できる。
 また、サーバ901は、さらに、クライアント装置902にセンサ情報の送信要求を送信する。
 また、サーバ901は、さらに、作成された三次元データ1134を用いて三次元マップ1135を更新し、クライアント装置902からの三次元マップ1135の送信要求に応じて三次元マップ1135をクライアント装置902に送信する。
 また、センサ情報1037は、レーザセンサで得られた情報、輝度画像、赤外画像、デプス画像、センサの位置情報、及びセンサの速度情報のうち少なくとも一つを含む。
 また、センサ情報1037は、センサの性能を示す情報を含む。
 また、サーバ901は、さらに、センサの性能に応じて、三次元データを補正する。これによれば、当該三次元データ作成方法は、三次元データの品質を向上できる。
 また、サーバ901は、センサ情報の受信では、複数のクライアント装置902から複数のセンサ情報1037を受信し、複数のセンサ情報1037に含まれるセンサの性能を示す複数の情報に基づき、三次元データ1134の作成に用いるセンサ情報1037を選択する。これによれば、サーバ901は、三次元データ1134の品質を向上できる。
 また、サーバ901は、受信したセンサ情報1037を復号又は伸張し、復号又は伸張後のセンサ情報1132から、三次元データ1134を作成する。これによれば、サーバ901は、伝送されるデータ量を削減できる。
 例えば、サーバ901は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態5)
 本実施の形態では、上記実施の形態4の変形例について説明する。図19は、本実施の形態に係るシステムの構成を示す図である。図19に示すシステムは、サーバ2001と、クライアント装置2002Aと、クライアント装置2002Bとを含む。
 クライアント装置2002A及びクライアント装置2002Bは、車両等の移動体に搭載され、センサ情報をサーバ2001に送信する。サーバ2001は、三次元マップ(ポイントクラウド)をクライアント装置2002A及びクライアント装置2002Bに送信する。
 クライアント装置2002Aは、センサ情報取得部2011と、記憶部2012と、データ送信可否判定部2013とを備える。なお、クライアント装置2002Bの構成も同様である。また、以下ではクライアント装置2002Aとクライアント装置2002Bとを特に区別しない場合には、クライアント装置2002とも記載する。
 図20は、本実施の形態に係るクライアント装置2002の動作を示すフローチャートである。
 センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)を用いて各種センサ情報を取得する。つまり、センサ情報取得部2011は、移動体に搭載されたセンサ(センサ群)により得られた、移動体の周辺状況を示すセンサ情報を取得する。また、センサ情報取得部2011は、取得したセンサ情報を記憶部2012に記憶する。このセンサ情報は、LiDAR取得情報、可視光画像、赤外画像及びデプス画像の少なくとも一つを含む。また、センサ情報は、センサ位置情報、速度情報、取得時刻情報、及び取得場所情報の少なくとも一つを含んでもよい。センサ位置情報は、センサ情報を取得したセンサの位置を示す。速度情報は、センサがセンサ情報を取得した際の移動体の速度を示す。取得時刻情報は、センサ情報がセンサにより取得された時刻を示す。取得場所情報は、センサ情報がセンサにより取得された際の移動体又はセンサの位置を示す。
 次に、データ送信可否判定部2013は、移動体(クライアント装置2002)がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定する(S2002)。例えば、データ送信可否判定部2013は、GPS等の情報を用いて、クライアント装置2002がいる場所及び時刻を特定し、データを送信可能かどうかを判定してもよい。また、データ送信可否判定部2013は、特定のアクセスポイントに接続できるかどうかで、データを送信可能かどうかを判定してもよい。
 クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合(S2002でYes)、センサ情報をサーバ2001に送信する(S2003)。つまり、クライアント装置2002がセンサ情報をサーバ2001に送信できるような状況になった時点で、クライアント装置2002は、保持しているセンサ情報をサーバ2001に送信する。例えば、交差点等に高速通信が可能なミリ波のアクセスポイントが設置される。クライアント装置2002は、交差点内に入った時点で、ミリ波通信を用いてクライアント装置2002が保持するセンサ情報を高速にサーバ2001に送信する。
 次に、クライアント装置2002は、サーバ2001に送信済みのセンサ情報を記憶部2012から削除する(S2004)。なお、クライアント装置2002は、サーバ2001に送信していないセンサ情報が所定の条件を満たした場合に、当該センサ情報を削除してもよい。例えば、クライアント装置2002は、保持するセンサ情報の取得時刻が現在時刻から一定時刻前より古くなった時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された時刻と、現在の時刻との差が、予め定められた時間を超えた場合にセンサ情報を記憶部2012から削除してもよい。また、クライアント装置2002は、保持するセンサ情報の取得場所が現在地点から一定距離より離れた時点でそのセンサ情報を記憶部2012から削除してもよい。つまり、クライアント装置2002は、センサ情報がセンサにより取得された際の移動体又はセンサの位置と、現在の移動体又はセンサの位置との差が、予め定められた距離を超えた場合にセンサ情報を記憶部2012から削除してもよい。これにより、クライアント装置2002の記憶部2012の容量を抑制することができる。
 クライアント装置2002によるセンサ情報の取得が終了していない場合(S2005でNo)、クライアント装置2002は、ステップS2001以降の処理を再度行う。また、クライアント装置2002によるセンサ情報の取得が終了した場合(S2005でYes)、クライアント装置2002は処理を終了する。
 また、クライアント装置2002はサーバ2001に送信するセンサ情報を通信状況に合わせて選択してもよい。例えば、クライアント装置2002は、高速通信が可能な場合は、記憶部2012に保持されるサイズが大きいセンサ情報(例えばLiDAR取得情報等)を優先して送信する。また、クライアント装置2002は、高速通信が難しい場合は、記憶部2012に保持されるサイズが小さく優先度の高いセンサ情報(例えば可視光画像)を送信する。これにより、クライアント装置2002は記憶部2012に保持したセンサ情報をネットワークの状況に応じて効率的にサーバ2001に送信できる。
 また、クライアント装置2002は、上記現在時刻を示す時刻情報、及び、現在地点を示す場所情報をサーバ2001から取得してもよい。また、クライアント装置2002は、取得した時刻情報及び場所情報に基づきセンサ情報の取得時刻及び取得場所を決定してもよい。つまり、クライアント装置2002は、サーバ2001から時刻情報を取得し、取得した時刻情報を用いて取得時刻情報を生成してもよい。また、クライアント装置2002は、サーバ2001から場所情報を取得し、取得した場所情報を用いて取得場所情報を生成してもよい。
 例えば時刻情報については、サーバ2001とクライアント装置2002とはNTP(Network Time Protocol)、又はPTP(Precision Time Protocol)等の仕組みを用いて時刻同期を行う。これにより、クライアント装置2002は正確な時刻情報を取得できる。また、サーバ2001と複数のクライアント装置との間で時刻を同期できるので、別々のクライアント装置2002が取得したセンサ情報内の時刻を同期できる。よって、サーバ2001は、同期された時刻を示すセンサ情報を取り扱える。なお、時刻同期の仕組みはNTP又はPTP以外のどのような方法でも構わない。また、上記時刻情報及び場所情報としてGPSの情報が用いられてもよい。
 サーバ2001は、時刻又は場所を指定して複数のクライアント装置2002からセンサ情報を取得しても構わない。例えば何らかの事故が発生した場合に、その付近にいたクライアントを探すため、サーバ2001は、事故発生時刻と場所を指定して複数のクライアント装置2002にセンサ情報送信要求をブロードキャスト送信する。そして、該当する時刻と場所のセンサ情報を持つクライアント装置2002は、サーバ2001にセンサ情報を送信する。つまり、クライアント装置2002は、サーバ2001から場所及び時刻を指定する指定情報を含むセンサ情報送信要求を受信する。クライアント装置2002は、記憶部2012に、指定情報で示される場所及び時刻において得られたセンサ情報が記憶されており、かつ、移動体がサーバ2001へセンサ情報を送信可能な環境に存在すると判定した場合、指定情報で示される場所及び時刻において得られたセンサ情報をサーバ2001に送信する。これにより、サーバ2001は、事故の発生に関連するセンサ情報を複数のクライアント装置2002から取得し、事故解析等に利用できる。
 なお、クライアント装置2002は、サーバ2001からのセンサ情報送信要求を受信した場合に、センサ情報の送信を拒否してもよい。また、複数のセンサ情報のうち、どのセンサ情報を送信可能かどうかを事前にクライアント装置2002が設定してもよい。または、サーバ2001は、センサ情報の送信の可否を都度クライアント装置2002に問い合わせてもよい。
 また、サーバ2001にセンサ情報を送信したクライアント装置2002にはポイントが付与されてもよい。このポイントは、例えば、ガソリン購入費、EV(Electric Vehicle)の充電費、高速道路の通行料、又はレンタカー費用などの支払いに使用できる。また、サーバ2001は、センサ情報を取得した後、センサ情報の送信元のクライアント装置2002を特定するための情報を削除してもよい。例えば、この情報は、クライアント装置2002のネットワークアドレスなどの情報である。これによりセンサ情報を匿名化することができるので、クライアント装置2002のユーザは安心して、クライアント装置2002からセンサ情報をサーバ2001に送信できる。また、サーバ2001は、複数のサーバから構成されてもよい。例えば複数のサーバでセンサ情報が共有化されることで、あるサーバが故障しても他のサーバがクライアント装置2002と通信できる。これにより、サーバ故障によるサービスの停止を回避できる。
 また、センサ情報送信要求で指定される指定場所は事故の発生位置などを示すものであり、センサ情報送信要求で指定される指定時刻におけるクライアント装置2002の位置とは異なることがある。よって、サーバ2001は、例えば、指定場所として周辺XXm以内などの範囲を指定することで、当該範囲内に存在するクライアント装置2002に対して情報取得を要求できる。指定時刻についても同様に、サーバ2001は、ある時刻から前後N秒以内など範囲を指定してもよい。これにより、サーバ2001は、「時刻:t-Nからt+Nにおいて、場所:絶対位置SからXXm以内」に存在していたクライアント装置2002からセンサ情報が取得できる。クライアント装置2002は、LiDARなどの三次元データを送信する際に、時刻tの直後に生成したデータを送信してもよい。
 また、サーバ2001は、指定場所として、センサ情報取得対象となるクライアント装置2002の場所を示す情報と、センサ情報が欲しい場所とをそれぞれ別に指定してもよい。例えば、サーバ2001は、絶対位置SからYYmの範囲を少なくとも含むセンサ情報を、絶対位置SからXXm以内に存在したクライアント装置2002から取得することを指定する。クライアント装置2002は、送信する三次元データを選択する際には、指定された範囲のセンサ情報を少なくとも含むように、1つ以上のランダムアクセス可能な単位の三次元データを選択する。また、クライアント装置2002は、可視光画像を送信する際は、少なくとも時刻tの直前又は直後のフレームを含む、時間的に連続した複数の画像データを送信してもよい。
 クライアント装置2002が5G或いはWiFi、又は、5Gにおける複数モードなど、複数の物理ネットワークをセンサ情報の送信に利用できる場合には、クライアント装置2002は、サーバ2001から通知された優先順位に従って利用するネットワークを選択してもよい。または、クライアント装置2002自身が送信データのサイズに基づいて適切な帯域を確保できるネットワークを選択してもよい。または、クライアント装置2002は、データ送信にかかる費用等に基づいて利用するネットワークを選択してもよい。また、サーバ2001からの送信要求には、クライアント装置2002が時刻Tまでに送信を開始可能な場合に送信を行う、など、送信期限を示す情報が含まれてもよい。サーバ2001は、期限内に十分なセンサ情報が取得できなければ再度送信要求を発行してもよい。
 センサ情報は、圧縮又は非圧縮のセンサデータと共に、センサデータの特性を示すヘッダ情報を含んでもよい。クライアント装置2002は、ヘッダ情報を、センサデータとは異なる物理ネットワーク又は通信プロトコルを介してサーバ2001に送信してもよい。例えば、クライアント装置2002は、センサデータの送信に先立ってヘッダ情報をサーバ2001に送信する。サーバ2001は、ヘッダ情報の解析結果に基づいてクライアント装置2002のセンサデータを取得するかどうかを判断する。例えば、ヘッダ情報は、LiDARの点群取得密度、仰角、或いはフレームレート、又は、可視光画像の解像度、SN比、或いはフレームレートなどを示す情報を含んでもよい。これにより、サーバ2001は、決定した品質のセンサデータを有するクライアント装置2002からセンサ情報を取得できる。
 以上のように、クライアント装置2002は、移動体に搭載され、移動体に搭載されたセンサにより得られた、移動体の周辺状況を示すセンサ情報を取得し、センサ情報を記憶部2012に記憶する。クライアント装置2002は、移動体がサーバ2001へセンサ情報を送信可能な環境に存在するかを判定し、移動体がサーバへセンサ情報を送信可能な環境に存在すると判定した場合、センサ情報をサーバ2001に送信する。
 また、クライアント装置2002は、さらに、センサ情報から、移動体の周辺の三次元データを作成し、作成された三次元データを用いて移動体の自己位置を推定する。
 また、クライアント装置2002は、さらに、サーバ2001に三次元マップの送信要求を送信し、サーバ2001から三次元マップを受信する。クライアント装置2002は、自己位置の推定では、三次元データと三次元マップとを用いて、自己位置を推定する。
 なお、上記クライアント装置2002による処理は、クライアント装置2002における情報送信方法として実現されてもよい。
 また、クライアント装置2002は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行ってもよい。
 次に、本実施の形態に係るセンサ情報収集システムについて説明する。図21は、本実施の形態に係るセンサ情報収集システムの構成を示す図である。図21に示すように本実施の形態に係るセンサ情報収集システムは、端末2021Aと、端末2021Bと、通信装置2022Aと、通信装置2022Bと、ネットワーク2023と、データ収集サーバ2024と、地図サーバ2025と、クライアント装置2026とを含む。なお、端末2021A及び端末2021Bを特に区別しない場合には端末2021とも記載する。通信装置2022A及び通信装置2022Bを特に区別しない場合には通信装置2022とも記載する。
 データ収集サーバ2024は、端末2021が備えるセンサで得られたセンサデータなどのデータを三次元空間中の位置と対応付けられた位置関連データとして収集する。
 センサデータとは、例えば、端末2021の周囲の状態または端末2021の内部の状態などを、端末2021が備えるセンサを用いて取得したデータである。端末2021は、端末2021と直接通信可能、又は同一の通信方式で一或いは複数の中継装置を中継して通信可能な位置にある一又は複数のセンサ機器から収集したセンサデータをデータ収集サーバ2024に送信する。
 位置関連データに含まれるデータは、例えば、端末自身又は端末が備える機器の動作状態、動作ログ、サービスの利用状況などを示す情報を含んでいてもよい。また、位置関連データに含まれるデータは、端末2021の識別子と端末2021の位置又は移動経路などとを対応付けた情報などを含んでもよい。
 位置関連データに含まれる、位置を示す情報は、例えば三次元地図データなどの三次元データにおける位置を示す情報と対応付けられている。位置を示す情報の詳細については後述する。
 位置関連データは、位置を示す情報である位置情報に加えて、前述した時刻情報と、位置関連データに含まれるデータの属性、又は当該データを生成したセンサの種類(例えば型番など)を示す情報とのうち少なくとも一つを含んでいてもよい。位置情報及び時刻情報は、位置関連データのヘッダ領域又は位置関連データを格納するフレームのヘッダ領域に格納されていてもよい。また、位置情報及び時刻情報は、位置関連データと対応付けられたメタデータとして位置関連データとは別に送信及び/又は格納されてもよい。
 地図サーバ2025は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置からの要求に応じて三次元地図データなどの三次元データを送信する。また、前述した各実施の形態で説明したように、地図サーバ2025は、端末2021から送信されたセンサ情報を用いて、三次元データを更新する機能などを備えていてもよい。
 データ収集サーバ2024は、例えば、ネットワーク2023に接続されており、端末2021などの他の装置から位置関連データを収集し、収集した位置関連データを内部又は他のサーバ内の記憶装置に格納する。また、データ収集サーバ2024は、収集した位置関連データ又は位置関連データに基づいて生成した三次元地図データのメタデータなどを、端末2021からの要求に応じて端末2021に対して送信する。
 ネットワーク2023は、例えばインターネットなどの通信ネットワークである。端末2021は、通信装置2022を介してネットワーク2023に接続されている。通信装置2022は、一つの通信方式、又は複数の通信方式を切り替えながら端末2021と通信を行う。通信装置2022は、例えば、(1)LTE(Long Term Evolution)などの基地局、(2)WiFi或いはミリ波通信などのアクセスポイント(AP)、(3)SIGFOX、LoRaWAN或いはWi-SUNなどのLPWA(Low Power Wide Area) Networkのゲートウェイ、又は、(4)DVB-S2などの衛星通信方式を用いて通信を行う通信衛星である。
 なお、基地局は、NB-IoT(Narrow Band-IoT)又はLTE-MなどのLPWAに分類される方式で端末2021との通信を行っていてもよいし、これらの方式を切り替えながら端末2021との通信を行っていてもよい。
 ここでは、端末2021が2種類の通信方式を用いる通信装置2022と通信する機能を備え、これらの通信方式のいずれかを用いて、またはこれらの複数の通信方式及び直接の通信相手となる通信装置2022を切り替えながら地図サーバ2025又はデータ収集サーバ2024と通信を行う場合を例に挙げるが、センサ情報収集システム及び端末2021の構成はこれに限らない。例えば、端末2021は、複数の通信方式での通信機能を有さず、いずれか一つの通信方式で通信を行う機能を備えてもよい。また、端末2021は、3つ以上の通信方式に対応していてもよい。また、端末2021ごとに対応する通信方式が異なっていてもよい。
 端末2021は、例えば図11に示したクライアント装置902の構成を備える。端末2021は、受信した三次元データを用いて自己位置などの位置推定を行う。また、端末2021は、センサから取得したセンサデータと位置推定の処理により得られた位置情報とを対応付けて位置関連データを生成する。
 位置関連データに付加される位置情報は、例えば、三次元データで用いられている座標系における位置を示す。例えば、位置情報は、緯度及び経度の値で表される座標値である。このとき、端末2021は、座標値と共に当該座標値の基準となる座標系、及び位置推定に用いた三次元データを示す情報を位置情報に含めてもよい。また、座標値は高度の情報を含んでいてもよい。
 また、位置情報は、前述した三次元データの符号化に用いることができるデータの単位又は空間の単位に対応付けられていてもよい。この単位とは、例えば、WLD、GOS、SPC、VLM、又はVXLなどである。このとき、位置情報は、例えば位置関連データに対応するSPCなどのデータ単位を特定するための識別子で表現される。なお、位置情報は、SPCなどのデータ単位を特定するための識別子に加えて、当該SPCなどのデータ単位を含む三次元空間を符号化した三次元データを示す情報、又は当該SPC内での詳細な位置を示す情報などを含んでいてもよい。三次元データを示す情報とは、例えば、当該三次元データのファイル名である。
 このように、当該システムは、三次元データを用いた位置推定に基づく位置情報と対応付けた位置関連データを生成することにより、GPSを用いて取得されたクライアント装置(端末2021)の自己位置に基づく位置情報をセンサ情報に付加する場合よりも精度の高い位置情報をセンサ情報に付与することができる。その結果、位置関連データを他の装置が他のサービスにおいて利用する場合においても、同じ三次元データに基づいて位置推定を行うことで、位置関連データに対応する位置を実空間でより正確に特定できる可能性がある。
 なお、本実施の形態では、端末2021から送信されるデータが位置関連データの場合を例に挙げて説明したが、端末2021から送信されるデータは位置情報と関連付けられていないデータであってもよい。すなわち、他の実施の形態で説明した三次元データ又はセンサデータの送受信が本実施の形態で説明したネットワーク2023を介して行われてもよい。
 次に、三次元又は二次元の実空間又は地図空間における位置を示す位置情報の異なる例について説明する。位置関連データに付加される位置情報は、三次元データ中の特徴点に対する相対位置を示す情報であってもよい。ここで、位置情報の基準となる特徴点は、例えばSWLDとして符号化され、三次元データとして端末2021に通知された特徴点である。
 特徴点に対する相対位置を示す情報は、例えば、特徴点から位置情報が示す点までのベクトルで表され、特徴点から位置情報が示す点までの方向と距離を示す情報であってもよい。または、特徴点に対する相対位置を示す情報は、特徴点から位置情報が示す点までのX軸、Y軸、Z軸のそれぞれの変位量を示す情報であってもよい。また、特徴点に対する相対位置を示す情報は、3以上の特徴点のそれぞれから位置情報が示す点までの距離を示す情報であってもよい。なお、相対位置は、各特徴点を基準として表現された位置情報が示す点の相対位置ではなく、位置情報が示す点を基準として表現された各特徴点の相対位置であってもよい。特徴点に対する相対位置に基づく位置情報の一例は、基準となる特徴点を特定するための情報と、当該特徴点に対する位置情報が示す点の相対位置を示す情報とを含む。また、特徴点に対する相対位置を示す情報が三次元データとは別に提供される場合、特徴点に対する相対位置を示す情報は、相対位置の導出に用いた座標軸、三次元データの種類を示す情報、又は/及び相対位置を示す情報の値の単位量あたりの大きさ(縮尺など)を示す情報などを含んでいてもよい。
 また、位置情報は、複数の特徴点について、各特徴点に対する相対位置を示す情報を含んでいてもよい。位置情報を複数の特徴点に対する相対位置で表した場合、実空間において当該位置情報が示す位置を特定しようとする端末2021は、特徴点ごとにセンサデータから推定した当該特徴点の位置から位置情報が示す位置の候補点を算出し、算出された複数の候補点を平均して求めた点を位置情報が示す点であると判定してもよい。この構成によると、センサデータから特徴点の位置を推定する際の誤差の影響を軽減できるため、実空間における位置情報が示す点の推定精度を向上できる。また、位置情報が複数の特徴点に対する相対位置を示す情報を含む場合、端末2021が備えるセンサの種類又は性能などの制約で検出できない特徴点がある場合であっても、複数の特徴点のいずれか一つでも検出することができれば位置情報が示す点の値を推定することが可能となる。
 特徴点として、センサデータから特定可能な点を用いことができる。センサデータから特定可能な点とは、例えば、前述した三次元特徴量又は可視光データの特徴量が閾値以上であるなど特徴点検出用の所定の条件を満たす点又は領域内の点である。
 また、実空間に設置されたマーカなどを特徴点として用いてもよい。この場合、マーカは、LiDER又はカメラなどのセンサを用いて取得されたデータから検出及び位置の特定が可能であればよい。例えば、マーカは、色或いは輝度値(反射率)の変化、又は、三次元形状(凹凸など)で表現される。また、当該マーカの位置を示す座標値、又は当該マーカの識別子から生成された二次元コード又はバーコードなどが用いられてもよい。
 また、光信号を送信する光源をマーカとして用いてもよい。光信号の光源をマーカとして用いる場合、座標値又は識別子などの位置を取得するための情報だけでなく、その他のデータが光信号により送信されてもよい。例えば、光信号は、当該マーカの位置に応じたサービスのコンテンツ、コンテンツを取得するためのurlなどのアドレス、又はサービスの提供を受けるための無線通信装置の識別子と、当該無線通信装置と接続するための無線通信方式などを示す情報を含んでもよい。光通信装置(光源)をマーカとして用いることで、位置を示す情報以外のデータの送信が容易になると共に、当該データを動的に切り替えることが可能となる。
 端末2021は、互いに異なるデータ間での特徴点の対応関係を、例えば、データ間で共通に用いられる識別子、又は、データ間の特徴点の対応関係を示す情報或いはテーブルを用いて把握する。また、特徴点間の対応関係を示す情報がない場合、端末2021は、一方の三次元データにおける特徴点の座標を他方の三次元データ空間上の位置に変換した場合に最も近い距離にある特徴点を対応する特徴点であると判定してもよい。
 以上で説明した相対位置に基づく位置情報を用いた場合、互いに異なる三次元データを用いる端末2021又はサービス間であっても、各三次元データに含まれる、又は各三次元データと対応付けられた共通の特徴点を基準に位置情報が示す位置を特定、又は推定することができる。その結果、互いに異なる三次元データを用いる端末2021又はサービス間で、同じ位置をより高い精度で特定又は推定することが可能となる。
 また、互いに異なる座標系を用いて表現された地図データ又は三次元データを用いる場合であっても、座標系の変換に伴う誤差の影響を低減できるため、より高精度な位置情報に基づくサービスの連携が可能となる。
 以下、データ収集サーバ2024が提供する機能の例について説明する。データ収集サーバ2024は、受信した位置関連データを他のデータサーバに転送してもよい。データサーバが複数ある場合、データ収集サーバ2024は、受信した位置関連データをどのデータサーバに転送するかを判定して、転送先として判定されたデータサーバ宛に位置関連データを転送する。
 データ収集サーバ2024は、転送先の判定を、例えば、データ収集サーバ2024に事前に設定された転送先サーバの判定ルールに基づいて行う。転送先サーバの判定ルールとは、例えば、各端末2021に対応付けられた識別子と転送先のデータサーバとを対応付けた転送先テーブルなどで設定される。
 端末2021は、送信する位置関連データに対して当該端末2021に対応付けられた識別子を付加してデータ収集サーバ2024に送信する。データ収集サーバ2024は、位置関連データに付加された識別子に対応する転送先のデータサーバを転送先テーブルなどを用いた転送先サーバの判定ルールに基づいて特定し、当該位置関連データを特定されたデータサーバに送信する。また、転送先サーバの判定ルールは、位置関連データが取得された時間又は場所などを用いた判定条件で指定されてもよい。ここで、上述した送信元の端末2021に対応付けられた識別子とは、例えば各端末2021に固有の識別子、又は端末2021が属するグループを示す識別子などである。
 また、転送先テーブルは、送信元の端末に対応付けられた識別子と転送先のデータサーバとを直接対応付けたものでなくてもよい。例えば、データ収集サーバ2024は、端末2021に固有の識別子毎に付与されたタグ情報を格納した管理テーブルと、当該タグ情報と転送先のデータサーバを対応付けた転送先テーブルとを保持する。データ収集サーバ2024は、管理テーブルと転送先テーブルとを用いてタグ情報に基づく転送先のデータサーバを判定してもよい。ここで、タグ情報は、例えば当該識別子に対応する端末2021の種類、型番、所有者、所属するグループ又はその他の識別子に付与された管理用の制御情報又はサービス提供用の制御情報である。また、転送先テーブルに、送信元の端末2021に対応付けられた識別子の代わりに、センサ毎に固有の識別子が用いられてもよい。また、転送先サーバの判定ルールは、クライアント装置2026から設定できてもよい。
 データ収集サーバ2024は、複数のデータサーバを転送先として判定し、受信した位置関連データを当該複数のデータサーバに転送してもよい。この構成によると、例えば、位置関連データを自動的にバックアップする場合、又は位置関連データを異なるサービスで共通に利用するために、各サービスを提供するためのデータサーバに対して位置関連データを送信する必要がある場合に、データ収集サーバ2024に対する設定を変更ことで意図通りのデータの転送を実現できる。その結果、個別の端末2021に位置関連データの送信先を設定する場合と比較して、システムの構築及び変更に要する工数を削減することができる。
 データ収集サーバ2024は、データサーバから受信した転送要求信号に応じて、転送要求信号で指定されたデータサーバを新たな転送先として登録し、以降に受信した位置関連データを当該データサーバに転送してもよい。
 データ収集サーバ2024は、端末2021から受信した位置関連データを記録装置に保存し、端末2021又はデータサーバから受信した送信要求信号に応じて、送信要求信号で指定された位置関連データを、要求元の端末2021又はデータサーバに送信してもよい。
 データ収集サーバ2024は、要求元のデータサーバ又は端末2021に対する位置関連データの提供の可否を判断し、提供可能と判断された場合に要求元のデータサーバ又は端末2021に位置関連データの転送又は送信を行ってもよい。
 クライアント装置2026から現在の位置関連データの要求を受け付けた場合、端末2021による位置関連データの送信タイミングでなくても、データ収集サーバ2024が端末2021に対して位置関連データの送信要求を行い、端末2021が当該送信要求に応じて位置関連データを送信してもよい。
 上記の説明では、端末2021がデータ収集サーバ2024に対して位置情報データを送信するとしたが、データ収集サーバ2024は、例えば、端末2021を管理する機能など、端末2021から位置関連データを収集するために必要な機能又は端末2021から位置関連データを収集する際に用いられる機能などを備えてもよい。
 データ収集サーバ2024は、端末2021に対して位置情報データの送信を要求するデータ要求信号を送信し、位置関連データを収集する機能を備えてもよい。
 データ収集サーバ2024には、データ収集の対象となる端末2021と通信を行うためのアドレス又は端末2021固有の識別子などの管理情報が事前に登録されている。データ収集サーバ2024は、登録されている管理情報に基づいて端末2021から位置関連データを収集する。管理情報は、端末2021が備えるセンサの種類、端末2021が備えるセンサの数、及び端末2021が対応する通信方式などの情報を含んでいてもよい。
 データ収集サーバ2024は、端末2021の稼働状態又は現在位置などの情報を端末2021から収集してもよい。
 管理情報の登録は、クライアント装置2026から行われてもよいし、端末2021が登録要求をデータ収集サーバ2024に送信することで、登録のための処理が開始されてもよい。データ収集サーバ2024は、端末2021との間の通信を制御する機能を備えてもよい。
 データ収集サーバ2024と端末2021とを結ぶ通信は、MNO(Mobile Network Operator)、或いはMVNO(Mobile Virtual Network Operator)などのサービス事業者が提供する専用回線、又は、VPN(Virtual Private Network)で構成された仮想の専用回線などであってもよい。この構成によると、端末2021とデータ収集サーバ2024との間の通信を安全に行うことができる。
 データ収集サーバ2024は、端末2021を認証する機能、又は端末2021との間で送受信されるデータを暗号化する機能を備えてもよい。ここで、端末2021の認証の処理又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との間で事前に共有された、端末2021に固有の識別子又は複数の端末2021を含む端末グループに固有の識別子などを用いて行われる。この識別子とは、例えば、SIM(Subscriber Identity Module)カードに格納された固有の番号であるIMSI(International Mobile Subscriber Identity)などである。認証処理に用いられる識別子とデータの暗号化処理に用いる識別子とは、同じであってもよいし、異なっていてもよい。
 データ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との両方が当該処理を実施する機能を備えていれば提供可能であり、中継を行う通信装置2022が用いる通信方式に依存しない。よって、端末2021が通信方式を用いるかを考慮することなく、共通の認証又は暗号化の処理を用いることができるので、ユーザのシステム構築の利便性が向上する。ただし、中継を行う通信装置2022が用いる通信方式に依存しないとは、通信方式に応じて変更することが必須ではないことを意味している。つまり、伝送効率の向上又は安全性の確保の目的で、中継装置が用いる通信方式に応じてデータ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理が切り替えられてもよい。
 データ収集サーバ2024は、端末2021から収集する位置関連データの種類及びデータ収集のスケジュールなどのデータ収集ルールを管理するUIをクライアント装置2026に提供してもよい。これにより、ユーザはクライアント装置2026を用いてデータを収集する端末2021、並びに、データの収集時間及び頻度などを指定できる。また、データ収集サーバ2024は、データを収集したい地図上の領域などを指定し、当該領域に含まれる端末2021から位置関連データを収集してもよい。
 データ収集ルールを端末2021単位で管理する場合、クライアント装置2026は、例えば、管理対象となる端末2021又はセンサのリストを画面に提示する。ユーザはリストの項目毎にデータの収集の要否又は収集スケジュールなどを設定する。
 データを収集したい地図上の領域などを指定する場合、クライアント装置2026は、例えば、管理対象となる地域の二次元又は三次元の地図を画面に提示する。ユーザは、表示された地図上でデータを収集する領域を選択する。地図上で選択される領域は、地図上で指定された点を中心とする円形又は矩形の領域であってもよいし、ドラッグ動作で特定可能な円形又は矩形の領域であってもよい。また、クライアント装置2026は、都市、都市内のエリア、ブロック、又は主要な道路など予め設定された単位で領域を選択してもよい。また、地図を用いて領域を指定するのではなく、緯度及び経度の数値を入力して領域が設定されてもよいし、入力されたテキスト情報に基づいて導出した候補領域のリストから領域が選択されてもよい。テキスト情報は、例えば、地域、都市、又はランドマークの名前などである。
 また、ユーザが一又は複数の端末2021を指定して、当該端末2021の周囲100メートルの範囲内などの条件を設定することで、指定領域を動的に変更しながらデータの収集が行われてもよい。
 また、クライアント装置2026がカメラなどのセンサを備える場合、センサデータから得られたクライアント装置2026の実空間での位置に基づいて地図上の領域が指定されてもよい。例えば、クライアント装置2026は、センサデータを用いて自己位置を推定し、推定された位置に対応する地図上の点から予め定められた距離、又はユーザが指定した距離の範囲内の領域を、データを収集する領域として指定してもよい。また、クライアント装置2026は、センサのセンシング領域、すなわち取得されたセンサデータに対応する領域を、データを収集する領域として指定してもよい。または、クライアント装置2026は、ユーザの指定したセンサデータに対応する位置に基づく領域を、データを収集する領域として指定してもよい。センサデータに対応する地図上の領域、又は位置の推定は、クライアント装置2026が行ってもよいし、データ収集サーバ2024が行ってもよい。
 地図上の領域で指定を行う場合、データ収集サーバ2024は、各端末2021の現在位置情報を収集することで、指定された領域内の端末2021を特定し、特定された端末2021に対して位置関連データの送信を要求してもよい。また、データ収集サーバ2024が領域内の端末2021を特定するのではなく、データ収集サーバ2024が指定された領域を示す情報を端末2021に送信し、端末2021が自身が指定された領域内にあるか否かを判定して、指定された領域内にあると判断された場合に位置関連データを送信してもよい。
 データ収集サーバ2024は、クライアント装置2026が実行するアプリケーションにおいて上述したUI(User Interface)を提供するためのリスト又は地図などのデータをクライアント装置2026に送信する。データ収集サーバ2024は、リスト又は地図などのデータだけでなく、アプリケーションのプログラムをクライアント装置2026に送信してもよい。また、上述したUIは、ブラウザで表示可能なHTMLなどで作成されたコンテンツとして提供されてもよい。なお、地図データなど一部のデータは地図サーバ2025などのデータ収集サーバ2024以外のサーバから提供されてもよい。
 クライアント装置2026は、ユーザによる設定ボタンの押下など、入力が完了したことを通知する入力が行われると、入力された情報を設定情報としてデータ収集サーバ2024に送信する。データ収集サーバ2024は、クライアント装置2026から受信した設定情報に基づいて各端末2021に対して、位置関連データの要求又は位置関連データの収集ルールを通知する信号を送信し、位置関連データの収集を行う。
 次に、三次元又は二次元の地図データに付加された付加情報に基づいて端末2021の動作を制御する例について説明する。
 本構成では、道路又は駐車場に埋設された無線給電の給電アンテナ又は給電コイルなどの給電部の位置を示すオブジェクト情報が、三次元データに含まれて、又は三次元データに対応付けられて、車又はドローンなどである端末2021に提供される。
 充電を行うために当該オブジェクト情報を取得した車両又はドローンは、車両が備える充電アンテナ又は充電コイルなどの充電部の位置が、当該オブジェクト情報が示す領域と対向する位置になるよう自動運転で車両自身の位置を移動させ、充電を開始する。なお、自動運転機能を備えていない車両又はドローンの場合は、画面上に表示された画像又は音声などを利用して、移動すべき方向又は行うべき操作を運転手又は操縦者に対して提示される。そして、推定された自己位置に基づいて算出した充電部の位置が、オブジェクト情報で示された領域又は当該領域から所定の距離の範囲内に入った判断されると、運転又は操縦を中止させる内容へと提示する画像又は音声が切り替えられ、充電が開始される。
 また、オブジェクト情報は給電部の位置を示す情報ではなく、当該領域内に充電部を配置すると所定の閾値以上の充電効率が得られる領域を示す情報であってもよい。オブジェクト情報の位置は、オブジェクト情報が示す領域の中心の点で表されてもよいし、二次元平面内の領域或いは線、又は、三次元空間内の領域、線或いは平面などで表されてもよい。
 この構成によると、LiDERのセンシングデータ又はカメラで撮影した映像では把握できない給電アンテナの位置を把握することができるので、車などの端末2021が備える無線充電用のアンテナと道路などに埋設された無線給電アンテナとの位置合わせをより高精度に行うことができる。その結果、無線充電時の充電速度を短くしたり、充電効率を向上させることができる。
 オブジェクト情報は、給電アンテナの以外の対象物であってもよい。例えば、三次元データは、ミリ波無線通信のAPの位置などをオブジェクト情報として含む。これにより、端末2021は、APの位置を事前に把握することができるので、当該オブジェクト情報の方向にビームの指向性を向けて通信を開始することができる。その結果、伝送速度の向上、通信開始までの時間の短縮、及び通信可能な期間を延ばすなどの通信品質の向上を実現できる。
 オブジェクト情報は、当該オブジェクト情報に対応する対象物のタイプを示す情報を含んでもよい。また、オブジェクト情報は、当該オブジェクト情報の三次元データ上の位置に対応する実空間上の領域内、又は領域から所定の距離の範囲内に端末2021が含まれる場合に、端末2021が実施すべき処理を示す情報を含んでもよい。
 オブジェクト情報は、三次元データを提供するサーバとは異なるサーバから提供されてもよい。オブジェクト情報を三次元データとは別に提供する場合、同一のサービスで使用されるオブジェクト情報が格納されたオブジェクトグループが、対象サービス又は対象機器の種類に応じてそれぞれ別のデータとして提供されてもよい。
 オブジェクト情報と組み合わせて用いられる三次元データは、WLDの点群データであってもよいし、SWLDの特徴点データであってもよい。
 (実施の形態6)
 以下、8分木表現とボクセルのスキャン順について説明する。ボリュームは8分木構造に変換(8分木化)された後、符号化される。8分木構造はノードとリーフとで構成される。各ノードは8つのノード又はリーフを持ち、各リーフはボクセル(VXL)情報を持つ。図22は、複数のボクセルを含むボリュームの構造例を示す図である。図23は、図22に示すボリュームを8分木構造に変換した例を示す図である。ここで、図23に示すリーフのうち、リーフ1、2、3はそれぞれ図22に示すボクセルVXL1、VXL2、VXL3を表し、点群を含むVXL(以下、有効VXL)を表現している。
 8分木は、例えば0、1の二値列で表現される。例えば、ノード又は有効VXLを値1、それ以外を値0とすると、各ノード及びリーフには図23に示す二値列が割当てられる。そして、幅優先又は深さ優先のスキャン順に応じて、この二値列がスキャンされる。例えば幅優先でスキャンされた場合、図24のAに示す二値列が得られる。深さ優先でスキャンした場合は図24のBに示す二値列が得られる。このスキャンにより得られた二値列はエントロピー符号化によって符号化され情報量が削減される。
 次に、8分木表現における深度情報について説明する。8分木表現における深度は、ボリューム内に含まれるポイントクラウド情報を、どの粒度まで保持するかをコントロールするために使用される。深度を大きく設定すると、より細かいレベルまでポイントクラウド情報を再現することができるが、ノード及びリーフを表現するためのデータ量が増える。逆に深度を小さく設定すると、データ量が減少するが、複数の異なる位置及び色の異なるポイントクラウド情報が同一位置かつ同一色であるとみなされるため、本来のポイントクラウド情報が持つ情報を失うことになる。
 例えば、図25は、図23に示す深度=2の8分木を、深度=1の8分木で表現した例を示す図である。図25に示す8分木は図23に示す8分木よりデータ量が少なくなる。つまり、図25に示す8分木は図25に示す8分木より二値列化後のビット数が少ない。ここで、図23に示すリーフ1とリーフ2が図24に示すリーフ1で表現されることになる。つまり、図23に示すリーフ1とリーフ2とが異なる位置であったという情報が失われる。
 図26は、図25に示す8分木に対応するボリュームを示す図である。図22に示すVXL1とVXL2が図26に示すVXL12に対応する。この場合、三次元データ符号化装置は、図26に示すVXL12の色情報を、図22に示すVXL1とVXL2との色情報から生成する。例えば、三次元データ符号化装置は、VXL1とVXL2との色情報の平均値、中間値、又は重み平均値などをVXL12の色情報として算出する。このように、三次元データ符号化装置は、8分木の深度を変えることで、データ量の削減を制御してもよい。
 三次元データ符号化装置は、8分木の深度情報を、ワールド単位、スペース単位、及びボリューム単位のいずれの単位で設定しても構わない。またその際、三次元データ符号化装置は、ワールドのヘッダ情報、スペースのヘッダ情報、又はボリュームのヘッダ情報に深度情報を付加してもよい。また、時間の異なる全てのワールド、スペース、及びボリュームで深度情報して同一の値を使用してもよい。この場合、三次元データ符号化装置は、全時間のワールドを管理するヘッダ情報に深度情報を付加してもよい。
 (実施の形態7)
 三次元点群の情報は、位置情報(geometry)と属性情報(attribute)とを含む。位置情報は、ある点を基準とした座標(x座標、y座標、z座標)を含む。位置情報を符号化する場合は、各三次元点の座標を直接符号化する代わりに、各三次元点の位置を8分木表現で表現し、8分木の情報を符号化することで符号量を削減する方法が用いられる。
 一方、属性情報は、各三次元点の色情報(RGB、YUVなど)、反射率、及び法線ベクトルなどを示す情報を含む。例えば、三次元データ符号化装置は、属性情報を、位置情報とは別の符号化方法を用いて符号化することができる。
 本実施の形態では属性情報の符号化方法について説明する。なお、本実施の形態では属性情報の値として整数値を用いて説明する。例えば色情報RGB又はYUVの各色成分が8bit精度である場合、各色成分は0~255の整数値をとる。反射率の値が10bit精度である場合、反射率の値は0~1023の整数値をとる。なお、三次元データ符号化装置は、属性情報のビット精度が小数精度である場合、属性情報の値が整数値になるように、当該値にスケール値を乗じてから整数値に丸めてもよい。なお、三次元データ符号化装置は、このスケール値をビットストリームのヘッダ等に付加してもよい。
 三次元点の属性情報の符号化方法として、三次元点の属性情報の予測値を算出し、元の属性情報の値と予測値との差分(予測残差)を符号化することが考えられる。例えば、三次元点pの属性情報の値がApであり、予測値がPpである場合、三次元データ符号化装置は、その差分絶対値Diffp=|Ap-Pp|を符号化する。この場合、予測値Ppを高精度に生成することができれば、差分絶対値Diffpの値が小さくなる。よって、例えば、値が小さい程発生ビット数が小さくなる符号化テーブルを用いて差分絶対値Diffpをエントロピー符号化することで符号量を削減することができる。
 属性情報の予測値を生成する方法として、符号化対象の対象三次元点の周囲にある別の三次元点である参照三次元点の属性情報を用いることが考えられる。ここで参照三次元点とは、対象三次元点から予め定められた距離範囲内にある三次元点である。例えば、対象三次元点p=(x1,y1,z1)と三次元点q=(x2,y2,z2)とが存在する場合、三次元データ符号化装置は、(式A1)に示す三次元点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を示す情報を、ビットストリームのヘッダ等に付加してもよい。
 図27は、三次元点の例を示す図である。この例では、対象三次元点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の値を利用しないと判定する。
 また、三次元データ符号化装置は、対象三次元点の属性情報を予測値を用いて符号化する場合、既に属性情報を符号化及び復号済みの三次元点を参照三次元点として利用する。同様に、三次元データ復号装置は、復号対象の対象三次元点の属性情報を予測値を用いて復号する場合、既に属性情報を復号済みの三次元点を参照三次元点として利用する。これにより、符号化時と復号時とで同一の予測値を生成することができるので、符号化で生成した三次元点のビットストリームを復号側で正しく復号することができる。
 また、三次元点の属性情報を符号化する場合に、三次元点の位置情報を用いて各三次元点を複数階層に分類してから符号化することが考えられる。ここで、分類した各階層をLoD(Level of Detail)と呼ぶ。LoDの生成方法について図28を用いて説明する。
 まず、三次元データ符号化装置は、初期点a0を選択し、LoD0に割当てる。次に、三次元データ符号化装置は、点a0からの距離がLoD0の閾値Thres_LoD[0]より大きい点a1を抽出しLoD0に割当てる。次に、三次元データ符号化装置は、点a1からの距離がLoD0の閾値Thres_LoD[0]より大きい点a2を抽出しLoD0に割当てる。このように、三次元データ符号化装置は、LoD0内の各点の間の距離が閾値Thres_LoD[0]より大きくなるようにLoD0を構成する。
 次に、三次元データ符号化装置は、まだ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を構成する。例えば、図29に示すように、各LoDの閾値Thres_LoD[0]、Thres_LoD[1]、及びThres_LoD[2]が設定される。
 また、三次元データ符号化装置は、各LoDの閾値を示す情報を、ビットストリームのヘッダ等に付加してもよい。例えば、図29に示す例の場合、三次元データ符号化装置は、閾値Thres_LoD[0]、Thres_LoD[1]、及びThres_LoD[2]をヘッダに付加してもよい。
 また、三次元データ符号化装置は、LoDの最下層にLoDが未割当ての三次元点全てを割当ててもよい。この場合、三次元データ符号化装置は、LoDの最下層の閾値をヘッダに付加しないことでヘッダの符号量を削減できる。例えば、図29に示す例の場合、三次元データ符号化装置は、閾値Thres_LoD[0]とThres_LoD[1]をヘッダに付加し、Thres_LoD[2]をヘッダに付加しない。この場合、三次元データ復号装置は、Thres_LoD[2]の値0と推定してもよい。また、三次元データ符号化装置は、LoDの階層数をヘッダに付加してもよい。これにより、三次元データ復号装置は、LoDの階層数を用いて最下層のLoDを判定できる。
 また、LoDの各層の閾値の値を図29に示すように上位層ほど大きく設定することで、上位層(LoD0に近い層)ほど三次元点間の距離が離れた疎点群(sparse)となり、下位層ほど三次元点間の距離が近い密点群(dense)となる。なお、図29に示す例では、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の値を小さく設定して平均化の処理量を抑えつつ、効率的な予測を行うことが可能となる。
 図30は、予測値に用いる属性情報の例を示す図である。上述したように、LoDNに含まれる点Pの予測値は、LoDN’(N’<=N)に含まれる符号化済みの周囲点P’を用いて生成される。ここで、周囲点P’は、点Pとの距離に基づき選択される。例えば、図30に示す点b2の属性情報の予測値は、点a0、a1、a2、b0、b1の属性情報を用いて生成される。
 上述したNの値に応じて、選択される周囲点は変化する。例えばN=5の場合は点b2の周囲点としてa0、a1、a2、b0、b1が選択される。N=4の場合は距離情報を元に点a0、a1、a2、b1を選択される。
 予測値は、距離依存の重み付け平均により算出される。例えば、図30に示す例では、点a2の予測値a2pは、(式A2)及び(式A3)に示すように、点a0及び点a1の属性情報の重み付け平均により算出される。なお、Aは点aiの属性情報の値である。
Figure JPOXMLDOC01-appb-M000002
 また、点b2の予測値b2pは、(式A4)~(式A6)に示すように、点a0、a1、a2、b0、b1の属性情報の重み付け平均により算出される。なお、Bは点biの属性情報の値である。
Figure JPOXMLDOC01-appb-M000003
 また、三次元データ符号化装置は、三次元点の属性情報の値と、周囲点から生成した予測値との差分値(予測残差)を算出し、算出した予測残差を量子化してもよい。例えば、三次元データ符号化装置は、予測残差を量子化スケール(量子化ステップとも呼ぶ)で除算することで量子化を行う。この場合、量子化スケールが小さいほど量子化によって発生しうる誤差(量子化誤差)が小さくなる。逆に量子化スケールが大きいほど量子化誤差は大きくなる。
 なお、三次元データ符号化装置は、使用する量子化スケールをLoD毎に変えてもよい。例えば、三次元データ符号化装置は、上位層ほど量子化スケールを小さくし、下位層ほど量子化スケールを大きくする。上位層に属する三次元点の属性情報の値は、下位層に属する三次元点の属性情報の予測値として使用される可能性があるため、上位層の量子化スケールを小さくして上位層で発生しうる量子化誤差を抑え、予測値の精度を高めることで符号化効率を向上できる。なお、三次元データ符号化装置は、LoD毎に使用する量子化スケールをヘッダ等に付加してもよい。これにより、三次元データ復号装置は、正しく量子化スケールを復号できるので、ビットストリームを適切に復号できる。
 また、三次元データ符号化装置は、量子化後の予測残差である符号付整数値(符号付量子化値)を符号なし整数値(符号なし量子化値)に変換してもよい。これにより予測残差をエントロピー符号化する場合に、負の整数の発生を考慮する必要がなくなる。なお、三次元データ符号化装置は、必ずしも符号付整数値を符号なし整数値に変換する必要はなく、例えば符号ビットを別途エントロピー符号化してもよい。
 予測残差は、元の値から予測値を減算することにより算出される。例えば、点a2の予測残差a2rは、(式A7)に示すように、点a2の属性情報の値Aから、点a2の予測値a2pを減算することで算出される。点b2の予測残差b2rは、(式A8)に示すように、点b2の属性情報の値Bから、点b2の予測値b2pを減算することで算出される。
 a2r=A-a2p ・・・(式A7)
 b2r=B-b2p ・・・(式A8)
 また、予測残差は、QS(量子化ステップ(Quantization Step))で除算されることで量子化される。例えば、点a2の量子化値a2qは、(式A9)により算出される。点b2の量子化値b2qは、(式A10)により算出される。ここで、QS_LoD0は、LoD0用のQSであり、QS_LoD1は、LoD1用のQSである。つまり、LoDに応じてQSが変更されてもよい。
 a2q=a2r/QS_LoD0 ・・・(式A9)
 b2q=b2r/QS_LoD1 ・・・(式A10)
 また、三次元データ符号化装置は、以下のように、上記量子化値である符号付整数値を符号なし整数値に変換する。三次元データ符号化装置は、符号付整数値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を大きく設定することで符号化効率を向上する。
 図31は、指数ゴロム符号の一例を示す図であって、二値化前の値(多値)と、二値化後のビット(符号)との関係を示す図である。なお、図31に示す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ビット符号を復元してもよい。
 図32は、例えば、残り符号が指数ゴロム符号の場合の処理を説明するための図である。指数ゴロムを用いて二値化した部分である残り符号は、図32に示すようにprefix部とsuffix部とを含む。例えば、三次元データ符号化装置は、prefix部とsuffix部とで符号化テーブルを切替える。つまり、三次元データ符号化装置は、prefix部に含まれる各ビットを、prefix用の符号化テーブルを用いて算術符号化し、suffix部に含まれる各ビットを、suffix用の符号化テーブルを用いて算術符号化する。
 なお、三次元データ符号化装置は、各符号化テーブルにおける0と1の発生確率を、実際に発生した二値化データの値に応じて更新してもよい。または、三次元データ符号化装置は、どちらかの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ符号化装置は、prefix部に対して発生確率を更新し、suffix部に対して発生確率を固定化してもよい。
 また、三次元データ符号化装置は、量子化後の予測残差を、逆量子化及び再構成することで復号し、復号した予測残差である復号値を符号化対象の三次元点以降の予測に利用する。具体的には、三次元データ符号化装置は、量子化後の予測残差(量子化値)に量子化スケールを乗算することで逆量子化値を算出し、逆量子化値と予測値とを加算して復号値(再構成値)を得る。
 例えば、点a2の逆量子化値a2iqは、点a2の量子化値a2qを用いて(式A11)により算出される。点b2の逆量子化値b2iqは、点b2の量子化値b2qを用いて(式A12)により算出される。ここで、QS_LoD0は、LoD0用のQSであり、QS_LoD1は、LoD1用のQSである。つまり、LoDに応じてQSが変更されてもよい。
 a2iq=a2q×QS_LoD0 ・・・(式A11)
 b2iq=b2q×QS_LoD1 ・・・(式A12)
 例えば、点a2の復号値a2recは、(式A13)に示すように、点a2の逆量子化値a2iqに、点a2の予測値a2pを加算することで算出される。点b2の復号値b2recは、(式A14)に示すように、点b2の逆量子化値b2iqに、点b2の予測値b2pを加算することで算出される。
 a2rec=a2iq+a2p ・・・(式A13)
 b2rec=b2iq+b2p ・・・(式A14)
 以下、本実施の形態に係るビットストリームのシンタックス例を説明する。図33は、本実施の形態に係る属性ヘッダ(attribute_header)のシンタックス例を示す図である。属性ヘッダは、属性情報のヘッダ情報である。図33に示すように、属性ヘッダは、階層数情報(NumLoD)と、三次元点数情報(NumOfPoint[i])と、階層閾値(Thres_Lod[i])と、周囲点数情報(NumNeighorPoint[i])と、予測閾値(THd[i])と、量子化スケール(QS[i])と、二値化閾値(R_TH[i])とを含む。
 階層数情報(NumLoD)は、用いられるLoDの階層数を示す。
 三次元点数情報(NumOfPoint[i])は、階層iに属する三次元点の数を示す。なお、三次元データ符号化装置は、三次元点の総数を示す三次元点総数情報(AllNumOfPoint)を別のヘッダに付加してもよい。この場合、三次元データ符号化装置は、最下層に属する三次元点の数を示すNumOfPoint[NumLoD-1]をヘッダに付加しなくてもよい。この場合、三次元データ復号装置は、(式A15)により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等で規定されてもよい。これによりヘッダのビット量を削減することができる。
 図34は、本実施の形態に係る属性データ(attribute_data)のシンタックス例を示す図である。この属性データは、複数の三次元点の属性情報の符号化データを含む。図34に示すように属性データは、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]と同じ値でない場合は、残り符号は符号化又は復号されなくてもよい。
 以下、三次元データ符号化装置における処理の流れを説明する。図35は、三次元データ符号化装置による三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、位置情報(geometry)を符号化する(S3001)。例えば、三次元データ符号化は、8分木表現を用いて符号化を行う。
 三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割り当てする(S3002)。例えば、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間することで再割り当てを行う。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をN個検出し、N個の三次元点の属性情報の値を重み付け平均する。例えば、三次元データ符号化装置は、重み付け平均において、変化後の三次元位置から各N個の三次元までの距離に基づいて重みを決定する。そして、三次元データ符号化装置は、重み付け平均により得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって2個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の三次元点の属性情報の値として、変化前の2個以上の三次元点の属性情報の平均値を割当ててもよい。
 次に、三次元データ符号化装置は、再割り当て後の属性情報(Attribute)を符号化する(S3003)。例えば、三次元データ符号化装置は、複数種類の属性情報を符号化する場合は、複数種類の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率とを符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成してもよい。なお、ビットストリームに付加される属性情報の複数の符号化結果の順番は、この順に限らず、どのような順番でもよい。
 また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数種類の属性情報を並列に符号化し、符号化結果を1つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数種類の属性情報を符号化できる。
 図36は、属性情報符号化処理(S3003)のフローチャートである。まず、三次元データ符号化装置は、LoDを設定する(S3011)。つまり、三次元データ符号化装置は、各三次元点を複数のLoDのいずれかに割り当てる。
 次に、三次元データ符号化装置は、LoD単位のループを開始する(S3012)。つまり、三次元データ符号化装置は、LoD毎にステップS3013~S3021の処理を繰り返し行う。
 次に、三次元データ符号化装置は、三次元点単位のループを開始する(S3013)。つまり、三次元データ符号化装置は、三次元点毎にステップS3014~S3020の処理を繰り返し行う。
 まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S3014)。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S3015)。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する(S3016)。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する(S3017)。次に、三次元データ符号化装置は、量子化値を算術符号化する(S3018)。
 また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する(S3019)。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する(S3020)。次に、三次元データ符号化装置は、三次元点単位のループを終了する(S3021)。また、三次元データ符号化装置は、LoD単位のループを終了する(S3022)。
 以下、上記の三次元データ符号化装置により生成されたビットストリームを復号する三次元データ復号装置における三次元データ復号処理について説明する。
 三次元データ復号装置は、三次元データ符号化装置によって生成されたビットストリーム内の属性情報の二値化データを、三次元データ符号化装置と同様の方法で算術復号することで、復号された二値化データを生成する。なお、三次元データ符号化装置において、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)に応じて符号化テーブルが切替えられる。
 図37は、例えば、残り符号が指数ゴロム符号である場合の処理を説明するための図である。三次元データ符号化装置が指数ゴロムを用いて二値化して符号化した部分(残り符号)は、図37に示すようにprefix部とsuffix部とを含む。例えば、三次元データ復号装置は、prefix部とsuffix部とで符号化テーブルを切替える。つまり、三次元データ復号装置は、prefix部に含まれる各ビットを、prefix用の符号化テーブルを用いて算術復号し、suffix部に含まれる各ビットを、suffix用の符号化テーブルを用いて算術復号する。
 なお、三次元データ復号装置は、各符号化テーブルにおける0と1の発生確率を、復号時に発生した二値化データの値に応じて更新してもよい。または、三次元データ復号装置は、どちらかの符号化テーブルにおける0と1の発生確率を固定化してもよい。これにより、発生確率の更新回数を抑制できるので処理量を削減できる。例えば、三次元データ復号装置は、prefix部に対して発生確率を更新し、suffix部に対して発生確率を固定化してもよい。
 また、三次元データ復号装置は、算術復号した予測残差の二値化データを、三次元データ符号化装置で用いられた符号化方法に合わせて多値化することで量子化後の予測残差(符号なし整数値)を復号する。三次元データ復号装置は、まずnビット符号の二値化データを算術復号することで復号したnビット符号の値を算出する。次に、三次元データ復号装置は、nビット符号の値とR_THの値とを比較する。
 三次元データ復号装置は、nビット符号の値とR_THの値とが一致した場合、指数ゴロムで符号化されたビットが次に存在すると判定し、指数ゴロムで符号化された二値化データである残り符号を算術復号する。そして、三次元データ復号装置は、復号した残り符号から、残り符号とその値との関係を示す逆引きテーブルを用いて残り符号の値を算出する。図38は、残り符号とその値との関係を示す逆引きテーブルの例を示す図である。次に、三次元データ復号装置は、得られた残り符号の値を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である場合、三次元データ復号装置は、残り符号を指数ゴロムにより復号することで残り符号の値を得る。例えば、図38に示す例では、残り符号が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)に設定する。
 また、三次元データ復号装置による逆量子化及び再構成処理の詳細は、三次元データ符号化装置における逆量子化及び再構成処理と同様である。
 以下、三次元データ復号装置における処理の流れを説明する。図39は、三次元データ復号装置による三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報(geometry)を復号する(S3031)。例えば、三次元データ復号装置は、8分木表現を用いて復号を行う。
 次に、三次元データ復号装置は、ビットストリームから属性情報(Attribute)を復号する(S3032)。例えば、三次元データ復号装置は、複数種類の属性情報を復号する場合は、複数種類の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として色と反射率とを復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果と反射率の符号化結果とを復号する。例えば、ビットストリームにおいて、色の符号化結果の後に反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
 また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データ開始場所を示す情報を、ヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数種類の属性情報を並列に復号し、復号結果を1つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数種類の属性情報を復号できる。
 図40は、属性情報復号処理(S3032)のフローチャートである。まず、三次元データ復号装置は、LoDを設定する(S3041)。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のLoDのいずれかに割り当てる。例えば、この割り当て方法は、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
 次に、三次元データ復号装置は、LoD単位のループを開始する(S3042)。つまり、三次元データ復号装置は、LoD毎にステップS3043~S3049の処理を繰り返し行う。
 次に、三次元データ復号装置は、三次元点単位のループを開始する(S3043)。つまり、三次元データ復号装置は、三次元点毎にステップS3044~S3048の処理を繰り返し行う。
 まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S3044)。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S3045)。なお、これらの処理は三次元データ符号化装置における処理と同様である。
 次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する(S3046)。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する(S3047)。次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する(S3048)。次に、三次元データ復号装置は、三次元点単位のループを終了する(S3049)。また、三次元データ復号装置は、LoD単位のループを終了する(S3050)。
 次に、本実施の形態に係る三次元データ符号化装置及び三次元データ復号装置の構成を説明する。図41は、本実施の形態に係る三次元データ符号化装置3000の構成を示すブロック図である。この三次元データ符号化装置3000は、位置情報符号化部3001と、属性情報再割り当て部3002と、属性情報符号化部3003とを備える。
 属性情報符号化部3003は、入力点群に含まれる複数の三次元点の位置情報(geometry)を符号化する。属性情報再割り当て部3002は、入力点群に含まれる複数の三次元点の属性情報の値を、位置情報の符号化及び復号結果を用いて再割り当てする。属性情報符号化部3003は、再割り当てされた属性情報(attribute)を符号化する。また、三次元データ符号化装置3000は、符号化された位置情報及び符号化された属性情報を含むビットストリームを生成する。
 図42は、本実施の形態に係る三次元データ復号装置3010の構成を示すブロック図である。この三次元データ復号装置3010は、位置情報復号部3011と、属性情報復号部3012とを含む。
 位置情報復号部3011は、ビットストリームから複数の三次元点の位置情報(geometry)を復号する。属性情報復号部3012は、ビットストリームから複数の三次元点の属性情報(attribute)を復号する。また、三次元データ復号装置3010は、復号した位置情報と復号した属性情報とを結合することで出力点群を生成する。
 (実施の形態8)
 以下、三次元点の属性情報を符号化する別の方法として、RAHT(Region Adaptive Hierarchical Transform)を用いた方法を説明する。図43は、RAHTを用いた属性情報の符号化を説明するための図である。
 まず、三次元データ符号化装置は、三次元点の位置情報に基づきモートン符号(Morton code)を生成し、モートン符号順に三次元点の属性情報をソートする。例えば、三次元データ符号化装置は、モートン符号の昇順にソートを行ってもよい。なお、ソート順はモートン符号順に限らず、他の順序が用いられてもよい。
 次に、三次元データ符号化装置は、モートン符号順で隣り合う2つの三次元点の属性情報に対し、Haar変換を適用することで、階層Lの高周波成分と低周波成分を生成する。例えば、三次元データ符号化装置は、2×2行列のHaar変換を用いてもよい。生成された高周波成分は階層Lの高周波成分として符号化係数に含められ、生成された低周波成分は階層Lの上位階層L+1の入力値として用いられる。
 三次元データ符号化装置は、階層Lの属性情報を用いて階層Lの高周波成分を生成後、引き続き階層L+1の処理を行う。階層L+1の処理では、三次元データ符号化装置は、階層Lの属性情報のHaar変換によって得られた2つの低周波成分にHaar変換を適用することで階層L+1の高周波成分と低周波成分を生成する。生成された高周波成分は階層L+1の高周波成分として符号化係数に含められ、生成された低周波成分は階層L+1の上位階層L+2の入力値として用いられる。
 三次元データ符号化装置は、このような階層処理を繰返し、階層に入力される低周波成分が1個になった時点で、最上位階層Lmaxに到達したと判定する。三次元データ符号化装置は、階層Lmaxに入力された階層Lmax-1の低周波成分を符号化係数に含める。そして、符号化係数に含まれる低周波成分又は高周波成分の値を量子化し、エントロピー符号化等を用いて符号化する。
 なお、三次元データ符号化装置は、Haar変換適用時に隣り合う2つの三次元点として1つの三次元点のみが存在する場合は、存在する1つの三次元点の属性情報の値を上位階層の入力値として用いてもよい。
 このように、三次元データ符号化装置は、入力された属性情報に対して階層的にHaar変換を適用し、属性情報の高周波成分と低周波成分を生成し、後述する量子化等を適用して符号化を行う。これにより、符号化効率を向上できる。
 属性情報がN次元である場合、三次元データ符号化装置は、次元毎に独立にHaar変換を適用し、それぞれの符号化係数を算出してもよい。例えば、属性情報が色情報(RGB又はYUV等)である場合、三次元データ符号化装置は、成分毎にHaar変換を適用し、それぞれの符号化係数を算出する。
 三次元データ符号化装置は、階層L、L+1、…、階層Lmaxの順にHaar変換を適用してもよい。階層Lmaxに近づくほど入力された属性情報の低周波成分を多く含む符号化係数が生成される。
 図43に示すw0及びw1は、各三次元点に割当てられる重みである。例えば、三次元データ符号化装置は、Haar変換を適用する隣り合う2つの三次元点間の距離情報等に基づき重みを算出してもよい。例えば、三次元データ符号化装置は、距離が近いほど重みを大きくすることで符号化効率を向上してもよい。なお、三次元データ符号化装置は、この重みを別の手法により算出してもよいし、重みを用いなくてもよい。
 図43に示す例では、入力属性情報は、a0、a1、a2、a3、a4及びa5である。また、Haar変換後の符号化係数のうち、Ta1、Ta5、Tb1、Tb3、Tc1、d0が符号化される。他の符号化係数(b0、b2、c0等)は中間値であり、符号化されない。
 具体的には、図43に示す例では、a0とa1とにHaar変換が行われることで、高周波成分Ta1と、低周波成分b0とが生成される。ここで、重みw0とw1とが等しい場合には、低周波成分b0は、a0とa1との平均値であり、高周波成分Ta1は、a0とa1との差分である。
 a2には対となる属性情報が存在しないため、a2がそのままb1として用いられる。同様に、a3には対となる属性情報が存在しないため、a3がそのままb2として用いられる。また、a4とa5とにHaar変換が行われることで、高周波成分Ta5と、低周波成分b3とが生成される。
 階層L+1では、b0とb1とにHaar変換が行われることで、高周波成分Tb1と、低周波成分c0とが生成される。同様に、b2とb3とにHaar変換が行われることで、高周波成分Tb3と、低周波成分c1とが生成される。
 階層Lmax-1では、c0とc1とにHaar変換が行われることで、高周波成分Tc1と、低周波成分d0とが生成される。
 三次元データ符号化装置は、Haar変換適用後の符号化係数を量子化したうえで符号化してもよい。例えば、三次元データ符号化装置は、符号化係数を量子化スケール(量子化ステップ(QS(Quantization Step))とも呼ぶ)で除算することで量子化を行う。この場合、量子化スケールが小さいほど量子化によって発生しうる誤差(量子化誤差)が小さくなる。逆に量子化スケールが大きいほど量子化誤差は大きくなる。
 なお、三次元データ符号化装置は、量子化スケールの値を階層毎に変えてもよい。図44は、階層毎に量子化スケールを設定する例を示す図である。例えば、三次元データ符号化装置は、上位層ほど量子化スケールを小さくし、下位層ほど量子化スケールを大きくする。上位層に属する三次元点の符号化係数は、下位層よりも低周波成分を多く含むため、人間の視覚特性等で重要な成分である可能性が高い。そのため、上位層の量子化スケールを小さくして上位層で発生しうる量子化誤差を抑えることで視覚的な劣化を抑え、符号化効率を向上できる。
 なお、三次元データ符号化装置は、階層毎の量子化スケールをヘッダ等に付加してもよい。これにより、三次元データ復号装置は、正しく量子化スケールを復号でき、ビットストリームを適切に復号できる。
 また、三次元データ符号化装置は、量子化スケールの値を、符号化対象の対象三次元点の重要度に応じて適応的に切替えてもよい。例えば、三次元データ符号化装置は、重要度が高い三次元点には小さい量子化スケールを用い、重要度が低い三次元点には大きい量子化スケールを用いる。例えば、三次元データ符号化装置は、Haar変換時の重み等から重要度を算出してもよい。例えば、三次元データ符号化装置は、w0とw1の加算値を用いて量子化スケールを算出してもよい。このように重要度が高い三次元点の量子化スケールを小さくすることで量子化誤差が小さくなり、符号化効率を改善できる。
 また、上位層ほどQSの値を小さくしてもよい。これにより、上位層ほどQWの値が大きくなり、その三次元点の量子化誤差を抑えることで予測効率を改善できる。
 ここで、属性情報a1の符号化係数Ta1の量子化後の符号化係数Ta1qは、Ta1/QS_Lで表される。なお、QSは全ての階層、又は一部の階層で同じ値であってもよい。
 QW(Quantization Weight)は、符号化対象の三次元点の重要度を表す値である。例えば、QWとして、上述したw0とw1の加算値が用いられてもよい。これにより、上位層ほどQWの値が大きくなり、その三次元点の量子化誤差を抑えることで予測効率を改善できる。
 例えば、三次元データ符号化装置は、最初に全ての三次元点のQWの値を1で初期化し、Haar変換時のw0及びw1の値を用いて各三次元点のQWを更新してもよい。または、三次元データ符号化装置は、全ての三次元点のQWを値1で初期化せずに、階層に応じて初期値を変更してもよい。例えば、上位層ほどQWの初期値を大きく設定することで上位層の量子化スケールが小さくなる。これにより、上位層の予測誤差を抑えることができるので、下位層の予測精度を高め、符号化効率を改善できる。なお、三次元データ符号化装置は、QWを必ずしも用いなくてもよい。
 QWを用いる場合、Ta1の量子化値Ta1qは、(式K1)及び(式K2)により算出される。
Figure JPOXMLDOC01-appb-M000005
 また、三次元データ符号化装置は、量子化後の符号化係数(符号なし整数値)を、ある順番でスキャンし、符号化する。例えば、三次元データ符号化装置は、上位層に含まれる三次元点から順に下位層に向かって複数の三次元点を符号化する。
 例えば、図43に示す例の場合、三次元データ符号化装置は、上位層Lmaxに含まれるd0qからTc1q、Tb1q、Tb3q、Ta1q、Ta5qの順で複数の三次元点を符号化する。ここで、下位層Lになるほど、量子化後の符号化係数が0になりやすい傾向がある。この要因として、以下のことなどが上げられる。
 下位層Lの符号化係数は、上位層より高い周波数成分を示すため、対象三次元点によっては0になりやすい傾向がある。また、上述した重要度等に応じた量子化スケールの切り替えにより、下位層ほど量子化スケールが大きくなり、量子化後の符号化係数が0になりやすい。
 このように、下位層になるほど、量子化後の符号化係数が0になりやすく、値0が連続して第1符号列に発生しやすい。図45は、第1符号列及び第2符号列の例を示す図である。
 三次元データ符号化装置は、第1符号列で値0が発生した回数をカウントし、連続した値0の代わりに、値0が連続して発生した回数を符号化する。つまり、三次元データ符号化装置は、第1符号列において連続する値0の符号化係数を0の連続回数(ZeroCnt)に置き換えることで第2符号列を生成する。これにより、量子化後の符号化係数の値0が連続した場合に、多数の0を符号化するよりも0の連続回数を符号化することで符号化効率を向上できる。
 また、三次元データ符号化装置は、ZeroCntの値をエントロピー符号化してもよい。例えば、三次元データ符号化装置は、符号化三次元点の総数Tのトランケットユーナリ符号(truncated unary code)でZeroCntの値を二値化し、二値化後の各ビットを算術符号化する。図46は、符号化三次元点の総数がTの場合のトランケットユーナリ符号の例を示す図である。この際、三次元データ符号化装置は、ビット毎に異なる符号化テーブルを用いることで符号化効率を向上してもよい。例えば、三次元データ符号化装置は、1ビット目には符号化テーブル1を用い、2ビット目には符号化テーブル2を用い、それ以降のビットには符号化テーブル3を用いる。このように、三次元データ符号化装置は、ビット毎に符号化テーブルを切り替えることで符号化効率を向上できる。
 また、三次元データ符号化装置は、ZeroCntを指数ゴロム(Exponential-Golomb)で二値化したうえで算術符号化してもよい。これにより、ZeroCntの値が大きくなりやすい場合に、トランケットユーナリ符号による二値化算術符号化よりも効率を向上できる。なお、三次元データ符号化装置は、トランケットユーナリ符号を用いるか指数ゴロムを用いるかを切り替えるためのフラグをヘッダに付加してもよい。これにより、三次元データ符号化装置は、最適な二値化方法を選択することで符号化効率を向上できる。また、三次元データ復号装置はヘッダに含まれるフラグを参照して二値化方法を切り替えて、ビットストリームを正しく復号できる。
 三次元データ復号装置は、復号した量子化後の符号化係数を、三次元データ符号化装置で行われた方法と逆の方法で符号なし整数値から符号付き整数値に変換してもよい。これにより符号化係数がエントロピー符号化される場合に、三次元データ復号装置は、負の整数の発生を考慮せずに生成されたビットストリームを適切に復号できる。なお、三次元データ復号装置は、符号化係数を必ずしも符号なし整数値から符号付き整数値に変換する必要はない。例えば、三次元データ復号装置は、別途エントロピー符号化された符号化ビットを含むビットストリームを復号する場合は、当該符号ビットを復号してもよい。
 三次元データ復号装置は、符号付き整数値に変換した量子化後の符号化係数を、逆量子化、及び逆Haar変換によって復号する。また、三次元データ復号装置は、復号後の符号化係数を、復号対象の三次元点以降の予測に利用する。具体的には、三次元データ復号装置は、量子化後の符号化係数に復号した量子化スケールを乗算することで逆量子化値を算出する。次に三次元データ復号装置は、逆量子化値に後述する逆Haar変換を適用することで復号値を得る。
 例えば、三次元データ復号装置は、復号された符号なし整数値を以下の方法で符号付き整数値に変換する。復号された符号なし整数値a2uのLSB(least significant bit)が1である場合、符号付き整数値Ta1qは、-((a2u+1)>>1)に設定される。復号された符号なし整数値a2uのLSBが1でない場合(0である場合)、符号付き整数値Ta1qは、(a2u>>1)に設定される。
 また、Ta1の逆量子化値は、Ta1q×QS_Lで表される。ここで、Ta1qは、Ta1の量子化値である。また、QS_Lは階層Lの量子化ステップである。
 また、QSは全ての階層、又は一部の階層で同じ値であってもよい。また、三次元データ符号化装置は、QSを示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、三次元データ符号化装置で用いられたQSと同じQSを用いて、正しく逆量子化を行える。
 次に、逆Haar変換について説明する。図47は、逆Haar変換を説明するための図である。三次元データ復号装置は、逆量子化後の符号化係数に、逆Haar変換を適用することで三次元点の属性値を復号する。
 まず、三次元データ復号装置は、三次元点の位置情報に基づきモートン符号を生成し、モートン符号順に三次元点をソートする。例えば、三次元データ復号装置は、モートン符号の昇順にソートを行ってよい。なお、ソート順はモートン符号順に限らず、他の順序が用いられてもよい。
 次に、三次元データ復号装置は、階層L+1の低周波成分を含む符号化係数と階層Lの高周波成分を含む符号化係数に逆Haar変換を適用することで、階層Lにおいてモートン符号順で隣り合う三次元点の属性情報を復元する。例えば、三次元データ復号装置は、2×2行列の逆Haar変換を用いてもよい。復元された階層Lの属性情報は下位階層L-1の入力値として用いられる。
 三次元データ復号装置は、このような階層処理を繰返し、最下層の属性情報が全て復号されたら処理を終了する。なお、逆Haar変換適用時に階層L-1にて隣り合う2つの三次元点として1つの三次元点のみが存在する場合は、三次元データ復号装置は、存在する1つの三次元点の属性値に階層Lの符号化成分の値を代入してもよい。これにより、三次元データ復号装置は、入力された属性情報の全ての値にHaar変換を適用し、符号化効率を向上したビットストリームを正しく復号できる。
 属性情報がN次元である場合、三次元データ復号装置は、次元毎に独立に逆Haar変換を適用し、それぞれの符号化係数を復号してもよい。例えば、属性情報が色情報(RGB又はYUV等)である場合、三次元データ復号装置は、成分毎の符号化係数に逆Haar変換を適用し、それぞれの属性値を復号する。
 三次元データ復号装置は、階層Lmax、L+1、…、階層Lの順に逆Haar変換を適用してもよい。また、図47に示すw0及びw1は、各三次元点に割当てられる重みである。例えば、三次元データ復号装置は、逆Haar変換を適用する隣り合う2つの三次元点間の距離情報等に基づき重みを算出してもよい。例えば、三次元データ符号化装置は、距離が近いほど重みを大きくすることで符号化効率を向上したビットストリームを復号してもよい。
 図47に示す例では、逆量子化後の符号化係数は、Ta1、Ta5、Tb1、Tb3、Tc1及びd0であり、復号値としてa0、a1、a2、a3、a4及びa5が得られる。
 図48は、属性情報(attribute_data)のシンタックス例を示す図である。属性情報(attribute_data)は、ゼロ連続数(ZeroCnt)と、属性次元数(attribute_dimension)と、符号化係数(value[j][i])とを含む。
 ゼロ連続数(ZeroCnt)は、量子化後の符号化係数において値0が連続する回数を示す。なお、三次元データ符号化装置は、ZeroCntを二値化したうえで算術符号化してもよい。
 また、図48に示すように、三次元データ符号化装置は、符号化係数が属する階層L(layerL)が、予め定められた閾値TH_layer以上かどうかを判定し、判定結果によってビットストリームに付加する情報を切り替えてもよい。例えば、三次元データ符号化装置は、判定結果が真であれば属性情報の全ての符号化係数をビットストリームに付加する。また、三次元データ符号化装置は、判定結果が偽であれば一部の符号化係数をビットストリームに付加してもよい。
 具体的には、三次元データ符号化装置は、判定結果が真であれば、色情報のRGB又はYUVの三次元情報の符号化結果をビットストリームに付加する。判定結果が偽であれば、三次元データ符号化装置は、色情報のうち、G又はYなどの一部の情報をビットストリームに付加し、それ以外の成分をビットストリームに付加しなくてもよい。このように、三次元データ符号化装置は、視覚的に劣化が目立ちにくい高周波成分を示す符号化係数を含む階層(TH_layerより小さい階層)の符号化係数の一部をビットストリームに付加しないことで、符号化効率を向上できる。
 属性次元数(attribute_dimension)は、属性情報の次元数を示す。例えば、属性情報が三次元点の色情報(RGB又はYUVなど)である場合、色情報は三次元であるため属性次元数は値3に設定される。属性情報が反射率である場合、反射率は一次元であるため属性次元数は値1に設定される。なお、属性次元数はビットストリームの属性情報のヘッダ等に付加されてもよい。
 符号化係数(value[j][i])は、i番目の三次元点のj次元番目の属性情報の量子化後の符号化係数を示す。例えば属性情報が色情報の場合、value[99][1]は100番目の三次元点の二次元番目(例えばG値)の符号化係数を示す。また、属性情報が反射率情報の場合、value[119][0]は120番目の三次元点の1次元番目(例えば反射率)の符号化係数を示す。
 なお、以下の条件を満たす場合、三次元データ符号化装置は、value[j][i]から値1を減算し、得られた値をエントロピー符号化してもよい。この場合、三次元データ復号装置は、エントロピー復号後のvalue[j][i]に値1を加算することで符号化係数を復元する。
 上記の条件は、(1)attribute_dimension=1の場合、又は、(2)attribute_dimensionが1以上で、かつ全ての次元の値が等しい場合である。例えば、属性情報が反射率の場合はattribute_dimension=1であるため、三次元データ符号化装置は符号化係数から値1を減算してvalueを算出し、算出したvalueを符号かする。三次元データ復号装置は復号後のvalueに値1を加算して符号化係数を算出する。
 より具体的には、例えば、反射率の符号化係数が10の場合、三次元データ符号化装置は、符号化係数の値10から値1を減算した値9を符号化する。三次元データ復号装置は、復号した値9に値1を加算して符号化係数の値10を算出する。
 また、属性情報が色の場合はattribute_dimension=3であるため、三次元データ符号化装置は、例えば、R、G、Bの各成分の量子化後の符号化係数が同じ場合は、各符号化係数から値1を減算し、得られた値を符号化する。三次元データ復号装置は、復号後の値に値1を加算する。より具体的には、例えば、R、G、Bの符号化係数=(1、1、1)の場合は、三次元データ符号化装置は、(0、0、0)を符号化する。三次元データ復号装置は、(0、0、0)の各成分に1を加算して(1、1、1)を算出する。また、R、G、Bの符号化係数=(2、1、2)の場合は、三次元データ符号化装置は、(2、1、2)をそのまま符号化する。三次元データ復号装置は、復号した(2、1、2)をそのまま符号化係数として用いる。
 このように、ZeroCntを設けることで、valueとして全ての次元が0であるパターンは生成されないので、valueの値から1を減じた値を符号化できる。よって、符号化効率を向上できる。
 また、図48に示すvalue[0][i]は、i番目の三次元点の一次元番目の属性情報の量子化後の符号化係数を示す。図48に示すように符号化係数の属する階層L(layerL)が閾値TH_layerより小さければ、一次元番目の属性情報をビットストリームに付加する(二次元番目以降の属性情報をビットストリーム付加しない)ことで符号量を削減してもよい。
 三次元データ符号化装置は、attribute_dimensionの値によってZeroCntの値の算出方法を切替えてもよい。例えば、三次元データ符号化装置は、attribute_dimension=3の場合は、全ての成分(次元)の符号化係数の値が0となる回数をカウントしてもよい。図49は、この場合の符号化係数とZeroCntの例を示す図である。例えば、図49に示す色情報の場合、三次元データ符号化装置は、R、G、B成分が全て0である符号化係数が連続する数をカウントし、カウントした数をZeroCntとしてビットストリームに付加する。これにより、成分毎にZeroCntを符号化する必要がなくなり、オーバヘッドを削減できる。よって、符号化効率を改善できる。なお、三次元データ符号化装置は、attribute_dimensionが2以上の場合でも次元毎にZeroCntを算出し、算出したZeroCntをビットストリームに付加してもよい。
 図50は、本実施の形態に係る三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報(geometry)を符号化する(S6601)。例えば、三次元データ符号化装置は、8分木表現を用いて符号化を行う。
 次に、三次元データ符号化装置は、属性情報を変換する(S6602)。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をN個検出し、N個の三次元点の属性情報の値を、変化後の三次元位置から各N個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に設定する。また、三次元データ符号化装置は、量子化等によって2個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の2個以上の三次元点における属性情報の平均値を割当ててもよい。
 次に、三次元データ符号化装置は、属性情報を符号化する(S6603)。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
 また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を1つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
 図51は、属性情報符号化処理(S6603)のフローチャートである。まず、三次元データ符号化装置は、Haar変換により属性情報から符号化係数を生成する(S6611)。次に、三次元データ符号化装置は、符号化係数に量子化を適用する(S6612)。次に、三次元データ符号化装置は、量子化後の符号化係数を符号化することで符号化属性情報(ビットストリーム)を生成する(S6613)。
 また、三次元データ符号化装置は、量子化後の符号化係数に逆量子化を適用する(S6614)。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Haar変換を適用することで属性情報を復号する(S6615)。例えば、復号された属性情報は、後続の符号化において参照される。
 図52は、符号化係数符号化処理(S6613)のフローチャートである。まず、三次元データ符号化装置は、符号化係数を符号付き整数値から符号なし整数値に変換する(S6621)。例えば、三次元データ符号化装置は、符号付き整数値を下記のように符号なし整数値に変換する。符号付き整数値Ta1qが0より小さい場合、符号なし整数値は、-1-(2×Ta1q)に設定される。符号付き整数値Ta1qが0以上である場合、符号なし整数値は、2×Ta1qに設定される。なお、符号化係数が負の値にならない場合には、三次元データ符号化装置は、符号化係数をそのまま符号なし整数値として符号化してもよい。
 全ての符号化係数を処理済みでない場合(S6622でNo)、三次元データ符号化装置は、処理対象の符号化係数の値がゼロであるかを判定する(S6623)。処理対象の符号化係数の値がゼロである場合(S6623でYes)、三次元データ符号化装置は、ZeroCntを1インクリメントし(S6624)、ステップS6622に戻る。
 処理対象の符号化係数の値がゼロでない場合(S6623でNo)、三次元データ符号化装置は、ZeroCntを符号化し、ZeroCntを0にリセットする(S6625)。また、三次元データ符号化装置は、処理対象の符号化係数を算術符号化し(S6626)、ステップS6622に戻る。例えば、三次元データ符号化装置は、二値算術符号化を行う。また、三次元データ符号化装置は、符号化係数から値1を減算し、得られた値を符号化してもよい。
 また、ステップS6623~S6626の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合(S6622でYes)、三次元データ符号化装置は、処理を終了する。
 図53は、本実施の形態に係る三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報(geometry)を復号する(S6631)。例えば、三次元データ復号装置は、8分木表現を用いて復号を行う。
 次に、三次元データ復号装置は、ビットストリームから属性情報を復号する(S6632)。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
 また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を1つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
 図54は、属性情報復号処理(S6632)のフローチャートである。まず、三次元データ復号装置は、ビットストリームから符号化係数を復号する(S6641)。次に、三次元データ復号装置は、符号化係数に逆量子化を適用する(S6642)。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Haar変換を適用することで属性情報を復号する(S6643)。
 図55は、符号化係数復号処理(S6641)のフローチャートである。まず、三次元データ復号装置は、ビットストリームからZeroCntを復号する(S6651)。全ての符号化係数を処理済みでない場合(S6652でNo)、三次元データ復号装置は、ZeroCntが0より大きいかを判定する(S6653)。
 ZeroCntがゼロより大きい場合(S6653でYes)、三次元データ復号装置は、処理対象の符号化係数を0に設定する(S6654)。次に、三次元データ復号装置は、ZeroCntを1減算し(S6655)、ステップS6652に戻る。
 ZeroCntがゼロである場合(S6653でNo)、三次元データ復号装置は、処理対象の符号化係数を復号する(S6656)。例えば、三次元データ復号装置は、二値算術復号を用いる。また、三次元データ復号装置は、復号した符号化係数に値1を加算してもよい。
 次に、三次元データ復号装置は、ZeroCntを復号し、得られた値をZeroCntに設定し(S6657)、ステップS6652に戻る。
 また、ステップS6653~S6657の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合(S6652でYes)、三次元データ符号化装置は、復号した複数の符号化係数を符号なし整数値から符号付き整数値に変換する(S6658)。例えば、三次元データ復号装置は、復号した符号化係数は下記のように符号なし整数値から符号付き整数値に変換してもよい。復号された符号なし整数値Ta1uのLSB(least significant bit)が1である場合、符号付き整数値Ta1qは、-((Ta1u+1)>>1)に設定される。復号された符号なし整数値Ta1uのLSBが1でない場合(0である場合)、符号付き整数値Ta1qは、(Ta1u>>1)に設定される。なお、符号化係数が負の値にならない場合には、三次元データ復号装置は、復号した符号化係数をそのまま符号付き整数値として用いてもよい。
 図56は、三次元データ符号化装置に含まれる属性情報符号化部6600のブロック図である。属性情報符号化部6600は、ソート部6601と、Haar変換部6602と、量子化部6603と、逆量子化部6604と、逆Haar変換部6605と、メモリ6606と、算術符号化部6607とを備える。
 ソート部6601は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Haar変換部6602は、属性情報にHaar変換を適用することで符号化係数を生成する。量子化部6603は、属性情報の符号化係数を量子化する。
 逆量子化部6604は、量子化後の符号化係数を逆量子化する。逆Haar変換部6605は、符号化係数に逆Haar変換を適用する。メモリ6606は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ6606に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
 算術符号化部6607は、量子化後の符号化係数からZeroCntを算出し、ZeroCntを算術符号化する。また、算術符号化部6607は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部6607は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部6607は、各種ヘッダ情報を生成及び符号化してもよい。
 図57は、三次元データ復号装置に含まれる属性情報復号部6610のブロック図である。属性情報復号部6610は、算術復号部6611と、逆量子化部6612と、逆Haar変換部6613と、メモリ6614とを備える。
 算術復号部6611は、ビットストリームに含まれるZeroCntと符号化係数を算術復号する。なお、算術復号部6611は、各種ヘッダ情報を復号してもよい。
 逆量子化部6612は、算術復号した符号化係数を逆量子化する。逆Haar変換部6613は、逆量子化後の符号化係数に逆Haar変換を適用する。メモリ6614は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ6614に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
 なお、上記実施の形態では、符号化順として下位層から上位層の順に三次元点を符号化する例を示したが、必ずしもこれに限らない。例えば、Haar変換後の符号化係数を上位層から下位層の順にスキャンする方法が用いられてもよい。なお、この場合も、三次元データ符号化装置は、値0の連続回数をZeroCntとして符号化してもよい。
 また、三次元データ符号化装置は、本実施の形態で述べたZeroCntを用いた符号化方法を用いるか否かを、WLD、SPC又はボリューム単位で切替えてもよい。この場合、三次元データ符号化装置は、ZeroCntを用いた符号化方法を適用したか否かを示す情報をヘッダ情報に付加してもよい。これにより、三次元データ復号装置は、適切に復号を行える。切替え方法の例として、例えば、三次元データ符号化装置は、1個のボリュームに対して値0の符号化係数の発生回数をカウントする。三次元データ符号化装置は、カウント値が予め定められた閾値を越えた場合は、次のボリュームにZeroCntを用いた方法を適用し、カウント値が閾値以下の場合、次のボリュームにZeroCntを用いた方法を適用しない。これにより、三次元データ符号化装置は、符号化対象の三次元点の特徴に応じて適切にZeroCntを用いた符号化方法を適用するか否かを切り替えることができるので、符号化効率を向上できる。
 以下、本実施の形態の別の手法(変形例)について説明する。三次元データ符号化装置は、量子化後の符号化係数(符号なし整数値)を、ある順番に応じてスキャンし、符号化する。例えば、三次元データ符号化装置は、下位層に含まれる三次元点から順に上位層に向かって複数の三次元点を符号化する。
 図58は、図43に示す属性情報に対して、この手法を用いた場合の第1符号列及び第2符号列の例を示す図である。この例の場合、三次元データ符号化装置は、下位層Lに含まれるTa1qからTa5q、Tb1q、Tb3q、Tc1q、d0qの順で複数の符号化係数を符号化する。ここで、下位層ほど、量子化後の符号化係数が0になりやすい傾向がある。この要因として、以下のことなどが上げられる。
 下位層Lの符号化係数は、上位層より高い周波数成分を示すため、符号化対象の三次元点によっては0になりやすい傾向がある。また、上述した重要度等に応じた量子化スケールの切り替えにより、下位層ほど量子化スケールが大きくなり、量子化後の符号化係数が0になりやすい。
 このように、下位層になるほど、量子化後の符号化係数が0になりやすく、値0が連続して第1符号列に発生しやすい。三次元データ符号化装置は、第1符号列で値0が発生した回数をカウントし、連続した値0の代わりに、値0が連続して発生した回数(ZeroCnt)を符号化する。これにより、量子化後の符号化係数の値0が連続した場合に、多数の0を符号化するよりも0の連続回数を符号化することで符号化効率を向上できる。
 また、三次元データ符号化装置は、値0の発生回数の総数を示す情報を符号化してもよい。これにより、ZeroCntを符号化するオーバヘッドを削減でき、符号化効率を向上できる。
 例えば、三次元データ符号化装置は、値0の符号化係数の総数をTotalZeroCntとして符号化する。これにより、図58に示す例では、第2符号列に含まれる2個目のZeroCnt(値1)を三次元データ復号装置が復号した時点で、復号済みのZeroCntの総数がN+1(=TotalZeroCnt)となる。よって、三次元データ復号装置は、これ以降は0が発生しないことを把握できる。そのため、三次元データ符号化装置は、以降、value毎にZeroCntを符号化する必要がなくなり、符号量を削減できる。
 また、三次元データ符号化装置は、TotalZeroCntをエントロピー符号化してもよい。例えば、三次元データ符号化装置は、符号化三次元点の総数Tのトランケットユーナリ符号でTotalZeroCntの値を二値化し、二値化後の各ビットを算術符号化する。この際、三次元データ符号化装置は、ビット毎に異なる符号化テーブルを用いることで符号化効率を向上してもよい。例えば、三次元データ符号化装置は、1ビット目には符号化テーブル1を用い、2ビット目には符号化テーブル2を用い、それ以降のビットには符号化テーブル3を用いる。このように、三次元データ符号化装置は、ビット毎に符号化テーブルを切り替えることで符号化効率を向上できる。
 また、三次元データ符号化装置は、TotalZeroCntを指数ゴロムで二値化したうえで算術符号化してもよい。これにより、TotalZeroCntの値が大きくなりやすい場合に、トランケットユーナリ符号による二値化算術符号化よりも効率を向上できる。なお、三次元データ符号化装置は、トランケットユーナリ符号を用いるか指数ゴロムを用いるかを切り替えるためのフラグをヘッダに付加してもよい。これにより、三次元データ符号化装置は、最適な二値化方法を選択することで符号化効率を向上できる。また、三次元データ復号装置はヘッダに含まれるフラグを参照して二値化方法を切り替えて、ビットストリームを正しく復号できる。
 図59は、本変形例における属性情報(attribute_data)のシンタックス例を示す図である。図59に示す属性情報(attribute_data)は、図48に示す属性情報に対して、さらに、ゼロ総数(TotalZeroCnt)を含む。なお、その他の情報については図48と同様である。ゼロ総数(TotalZeroCnt)は、量子化後の値0の符号化係数の総数を示す。
 また、三次元データ符号化装置は、attribute_dimensionの値によってTotalZereCnt及びZeroCntの値の算出方法を切替えてもよい。例えば、三次元データ符号化装置は、attribute_dimension=3の場合は、全ての成分(次元)の符号化係数の値が0となる回数をカウントしてもよい。図60は、この場合の符号化係数、ZeroCnt及びTotalZeroCntの例を示す図である。例えば、図60に示す色情報の場合、三次元データ符号化装置は、R、G、B成分が全て0である符号化係数が連続する数をカウントし、カウントした数をTotalZeroCnt及びZeroCntとしてビットストリームに付加する。これにより、成分毎にTotalZeroCnt及びZeroCntを符号化する必要がなくなり、オーバヘッドを削減できる。よって、符号化効率を改善できる。なお、三次元データ符号化装置は、attribute_dimensionが2以上の場合でも次元毎にTotalZeoCnt及びZeroCntを算出し、算出したTotalZeoCnt及びZeroCntをビットストリームに付加してもよい。
 図61は、本変形例における符号化係数符号化処理(S6613)のフローチャートである。まず、三次元データ符号化装置は、符号化係数を符号付き整数値から符号なし整数値に変換する(S6661)。次に、三次元データ符号化装置は、TotalZeroCntを符号化する(S6662)。
 全ての符号化係数を処理済みでない場合(S6663でNo)、三次元データ符号化装置は、処理対象の符号化係数の値がゼロであるかを判定する(S6664)。処理対象の符号化係数の値がゼロである場合(S6664でYes)、三次元データ符号化装置は、ZeroCntを1インクリメントし(S6665)、ステップS6663に戻る。
 処理対象の符号化係数の値がゼロでない場合(S6664でNo)、三次元データ符号化装置は、TotalZeroCntが0より大きいかを判定する(S6666)。TotalZeroCntが0より大きい場合(S6666でYes)、三次元データ符号化装置は、ZeroCntを符号化し、TotalZeroCntをTotalZeroCnt-ZeroCntに設定する(S6667)。
 ステップS6667の後、又は、TotalZeroCntが0である場合(S6666でNo)、三次元データ符号化装置は、符号化係数を符号化し、ZeroCntを0にリセットし(S6668)、ステップS6663に戻る。例えば、三次元データ符号化装置は、二値算術符号化を行う。また、三次元データ符号化装置は、符号化係数から値1を減算し、得られた値を符号化してもよい。
 また、ステップS6664~S6668の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合(S6663でYes)、三次元データ符号化装置は、処理を終了する。
 図62は、本変形例における符号化係数復号処理(S6641)のフローチャートである。まず、三次元データ復号装置は、ビットストリームからTotalZeroCntを復号する(S6671)。次に、三次元データ復号装置は、ビットストリームからZeroCntを復号し、TotalZeroCntをTotalZeroCnt-ZeroCntに設定する(S6672)。
 全ての符号化係数を処理済みでない場合(S6673でNo)、三次元データ符号化装置は、ZeroCntが0より大きいかを判定する(S6674)。
 ZeroCntがゼロより大きい場合(S6674でYes)、三次元データ復号装置は、処理対象の符号化係数を0に設定する(S6675)。次に、三次元データ復号装置は、ZeroCntを1減算し(S6676)、ステップS6673に戻る。
 ZeroCntがゼロである場合(S6674でNo)、三次元データ復号装置は、処理対象の符号化係数を復号する(S6677)。例えば、三次元データ復号装置は二値算術復号を用いる。また、三次元データ復号装置は、復号した符号化係数に値1を加算してもよい。
 次に、三次元データ復号装置は、TotalZeroCntが0より大きいかを判定する(S6678)。TotalZeroCntが0より大きい場合(S6678でYes)、三次元データ復号装置は、ZeroCntを復号し、得られた値をZeroCntに設定し、TotalZeroCntをTotalZeroCnt-ZeroCntに設定し(S6679)、ステップS6673に戻る。また、TotalZeroCntが0である場合(S6678でNo)、三次元データ復号装置は、ステップS6673に戻る。
 また、ステップS6674~S6679の処理が符号化係数毎に繰り返し行われる。また、全ての符号化係数を処理済みである場合(S6673でYes)、三次元データ符号化装置は、復号した符号化係数を符号なし整数値から符号付き整数値に変換する(S6680)。
 図63は、属性情報(attribute_data)の別のシンタックス例を示す図である。図63に示す属性情報(attribute_data)は、図48に示す符号化係数(value[j][i])の代わりに、value[j][i]_greater_zero_flagと、value[j][i]_greater_one_flagと、value[j][i]とを含む。なお、その他の情報については図48と同様である。
 value[j][i]_greater_zero_flagは、符号化係数(value[j][i])の値が0より大きいか(1以上であるか)否かを示す。言い換えると、value[j][i]_greater_zero_flagは、符号化係数(value[j][i])の値が0であるか否かを示す。
 例えば、符号化係数の値が0より大きい場合、value[j][i]_greater_zero_flagは値1に設定され、符号化係数の値が0の場合、value[j][i]_greater_zero_flagは値0に設定される。三次元データ符号化装置は、value[j][i]_greater_zero_flagの値が0の場合、value[j][i]をビットストリームに付加しなくてもよい。この場合、三次元データ復号装置は、value[j][i]の値が値0であるとして判断してもよい。これにより、符号量を削減できる。
 value[j][i]_greater_one_flagは、符号化係数(value[j][i])の値が1より大きいか(2以上であるか)否かを示す。言い換えると、value[j][i]_greater_one_flagは、符号化係数(value[j][i])の値が1であるか否かを示す。
 例えば、符号化係数の値が1より大きい場合、value[j][i]_greater_one_flagは値1に設定される。そうでない場合(符号化係数の値が1以下の場合)、value[j][i]_greater_one_flagは値0に設定される。三次元データ符号化装置は、value[j][i]_greater_one_flagの値が0の場合、value[j][i]をビットストリームに付加しなくてもよい。この場合、三次元データ復号装置は、三次元データ符号化装置は、value[j][i]の値が値1であると判断してもよい。
 value[j][i]は、i番目の三次元点のj次元番目の属性情報の量子化後の符号化係数を示す。例えば属性情報が色情報の場合、value[99][1]は100番目の三次元点の二次元番目(例えばG値)の符号化係数を示す。また、属性情報が反射率情報の場合、value[119][0]は120番目の三次元点の1次元番目(例えば反射率)の符号化係数を示す。
 三次元データ符号化装置は、value[j][i]_greater_zero_flag=1、value[j][i]_greater_one_flag=1の場合にvalue[j][i]をビットストリームに付加してもよい。また、三次元データ符号化装置は、value[j][i]から2を減算した値をビットストリームに付加してもよい。この場合、三次元データ復号装置は、復号したvalue[j][i]に値2を加算することで符号化係数を算出する。
 三次元データ符号化装置は、value[j][i]_greater_zero_flag、及びvalue[j][i]_greater_one_flagをエントロピー符号化してもよい。例えば二値算術符号化及び二値算術復号が用いられてもよい。これにより符号化効率を向上できる。
 (実施の形態9)
 高圧縮を実現するために、PCC(Point Cloud Compression)データに含まれる属性情報は、Lifting、RAHT(Region Adaptive Hierarchical Transform)又はその他の変換手法等の複数の手法を用いて変換される。ここで、Liftingとは、LoD(Level of Detail)を用いた変換方法の一つである。
 重要な信号情報は低周波成分に含まれる傾向があるため、高周波成分を量子化することで符号量が削減される。つまり、変換処理は強いエネルギー圧縮特性を有する。また、量子化パラメータの大きさに応じて、量子化により精度が失われる。
 図64は、本実施の形態に係る三次元データ符号化装置の構成を示すブロック図である。この三次元データ符号化装置は、減算部7001と、変換部7002と、変換行列保持部7003と、量子化部7004と、量子化制御部7005と、エントロピー符号化部7006とを備える。
 減算部7001は、入力データと参照データとの差分である係数値を算出する。例えば、入力データとは点群データに含まれる属性情報であり、参照データとの属性情報の予測値である。
 変換部7002は係数値に変換処理を行う。例えば、この変換処理は、複数の属性情報をLoDに分類する処理である。なお、この変換処理はHaar変換等であってもよい。変換行列保持部7003は、変換部7002による変換処理に用いられる変換行列を保持する。例えば、この変換行列はHaar変換行列である。なお、ここでは、三次元データ符号化装置は、LoDを用いた変換処理と、Haar変換等の変換処理との両方を行う機能を有する例を示すが、いずれか一方の機能を有してもよい。また、三次元データ符号化装置は、これらの2種類の変換処理を選択的に用いてもよい。また、三次元データ符号化装置は、所定の処理単位毎に、使用する変換処理を切り替えてもよい。
 量子化部7004は、係数値を量子化することで量子化値を生成する。量子化制御部7005は、量子化部7004が量子化に用いる量子化パラメータを制御する。例えば、量子化制御部7005は、符号化の階層構造に合わせて量子化パラメータ(または、量子化ステップ)を切替えてもよい。これにより、階層構造毎に適切な量子化パラメータを選択することで階層毎に発生符号量を制御できる。また、量子化制御部7005は、例えば主観画質に影響が少ない周波数成分を含むある階層以下の量子化パラメータを最大値に設定し、その階層以下の量子化係数を0にする。これにより、主観画質の劣化を抑制しつつ、発生符号量削減できる。また、量子化制御部7005は、主観画質と発生符号量をより細かく制御できる。ここで、階層とは、LoD又はRAHT(Haar変換)における階層(木構造における深さ)である。
 エントロピー符号化部7006は、量子化係数をエントロピー符号化(例えば算術符号化)することでビットストリームを生成する。また、エントロピー符号化部7006は、量子化制御部7005で設定された階層毎の量子化パラメータを符号化する。
 図65は、本実施の形態に係る三次元データ復号装置の構成を示すブロック図である。この三次元データ復号装置は、エントロピー復号部7011と、逆量子化部7012と、量子化制御部7013と、逆変換部7014と、変換行列保持部7015と、加算部7016とを備える。
 エントロピー復号部7011は、ビットストリームから量子化係数と、階層毎の量子化パラメータとを復号する。逆量子化部7012は、量子化係数を逆量子化することで係数値を生成する。量子化制御部7013は、エントロピー復号部7011で得られた階層号の量子化パラメータに基づき、逆量子化部7012が逆量子化に用いる量子化パラメータを制御する。
 逆変換部7014は、係数値を逆変換する。例えば、逆変換部7014は、係数値を逆Haar変換する。変換行列保持部7015は、逆変換部7014による逆変換処理に用いられる変換行列を保持する。例えば、この変換行列は逆Haar変換行列である。
 加算部7016は、係数値に参照データを加算することで出力データを生成する。例えば、出力データとは点群データに含まれる属性情報であり、参照データとの属性情報の予測値である。
 次に、階層毎の量子化パラメータの設定の例を説明する。Predicting/Lifting等の属性情報の符号化において、LoDの階層に基づいて異なる量子化パラメータを適用する。例えば、低層の量子化パラメータを小さくし、低層の精度を上げる。これにより、高層の予測精度を向上できる。また、高層に対しては量子化パラメータを大きくすることでデータ量を削減できる。このように、ユーザの使用方針に応じて、LoD毎に個別に量子化ツリー値(Qt)を設定できる。ここで、量子化ツリー値とは、例えば、量子化パラメータである。
 図66は、LoDの設定例を示す図である。例えば、図66に示すようにLoD0~LoD2に対して独立したQt0~Qt2が設定される。
 また、RAHTを用いた属性情報の符号化では、木構造の深さに基づいて異なる量子化パラメータを適用する。例えば、低層の量子化パラメータを小さくし、低層の精度を上げる。これにより、高層の予測精度を向上できる。また、高層に対しては量子化パラメータを大きくすることでデータ量を削減できる。このように、ユーザの使用方針に応じて、木構造の深さ毎に個別に量子化ツリー値(Qt)を設定できる。
 図67は、RAHTの階層構造(木構造)の例を示す図である。例えば、図67に示すように木構造の深さ毎に独立したQt0~Qt2が設定される。
 以下、本実施の形態に係る三次元データ符号化装置の構成を説明する。図68は、本実施の形態に係る三次元データ符号化装置7020の構成を示すブロック図である。三次元データ符号化装置7020は、点群データ(ポイントクラウド)を符号化することで符号化データ(符号化ストリーム)を生成する。この三次元データ符号化装置7020は、分割部7021と、複数の位置情報符号化部7022と、複数の属性情報符号化部7023と、付加情報符号化部7024と、多重化部7025とを含む。
 分割部7021は、点群データを分割することで複数の分割データを生成する。具体的には、分割部7021は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報(色又は反射率等)、及び付加情報を含む。分割部7021は、位置情報を分割することで複数の分割位置情報を生成し、属性情報を分割することで複数の分割属性情報を生成する。また、分割部7021は、分割に関する付加情報を生成する。
 例えば、分割部7021は、まず、点群をタイルに分割する。次に、分割部7021は、得られたタイルを、さらにスライスに分割する。
 複数の位置情報符号化部7022は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、位置情報符号化部7022は、8分木等のN分木構造を用いて分割位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。例えば、複数の位置情報符号化部7022は、複数の分割位置情報を並列処理する。
 属性情報符号化部7023は、位置情報符号化部7022で生成された構成情報を用いて属性情報を符号化することで符号化データである符号化属性情報を生成する。例えば、属性情報符号化部7023は、位置情報符号化部7022で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部7023は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、位置情報又は属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
 付加情報符号化部7024は、点群データに含まれる付加情報と、分割部7021で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
 多重化部7025は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
 図69は、分割部7021のブロック図である。分割部7021は、タイル分割部7031と、スライス分割部7032とを含む。
 タイル分割部7031は、位置情報(Position(Geometry))をタイルに分割することで複数のタイル位置情報を生成する。また、タイル分割部7031は、属性情報(Attribute)をタイルに分割することで複数のタイル属性情報を生成する。また、タイル分割部7031は、タイル分割に係る情報、及びタイル分割において生成された情報を含むタイル付加情報(Tile MetaData)を出力する。
 スライス分割部7032は、複数のタイル位置情報をスライスに分割することで複数の分割位置情報(複数のスライス位置情報)を生成する。また、スライス分割部7032は、複数のタイル属性情報をスライスに分割することで複数の分割属性情報(複数のスライス属性情報)を生成する。また、スライス分割部7032は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(Slice MetaData)を出力する。
 また、タイル分割部7031及びスライス分割部7032は、生成した付加情報に基づき量子化ツリー値(量子化パラメータ)を決定する。
 図70は、属性情報符号化部7023のブロック図である。属性情報符号化部7023は、変換部7035と、量子化部7036と、エントロピー符号化部7037とを含む。
 変換部7035は、分割属性情報をLoD等の階層に分類し、分割属性情報と予測値との差分を算出することで係数値(差分値)を生成する。なお、変換部7035は、分割属性情報にHaar変換を行うことで係数値を生成してもよい。
 量子化部7036は、係数値を量子化することで量子化値を生成する。具体的には、量子化部7036は、量子化パラメータに基づく量子化ステップで係数を除算する。エントロピー符号化部7037は、量子化値をエントロピー符号化することで符号化属性情報を生成する。
 以下、本実施の形態に係る三次元データ復号装置の構成を説明する。図71は、三次元データ復号装置7040の構成を示すブロック図である。三次元データ復号装置7040は、点群データが符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この三次元データ復号装置7040は、逆多重化部7041と、複数の位置情報復号部7042と、複数の属性情報復号部7043と、付加情報復号部7044と、結合部7045とを含む。
 逆多重化部7041は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
 複数の位置情報復号部7042は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部7042は、複数の符号化位置情報を並列処理する。
 複数の属性情報復号部7043は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部7043は、複数の符号化属性情報を並列処理する。
 複数の付加情報復号部7044は、符号化付加情報を復号することで付加情報を生成する。
 結合部7045は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部7045は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
 図72は、属性情報復号部7043のブロック図である。属性情報復号部7043は、エントロピー復号部7051と、逆量子化部7052と、逆変換部7053とを含む。エントロピー復号部7051は、符号化属性情報をエントロピー復号することで量子化値を生成する。逆量子化部7052は、量子化値を逆量子化することで係数値を生成する。具体的には、ビットストリームから取得された量子化ツリー値(量子化パラメータ)に基づく量子化ステップを係数値に乗算する。逆変換部7053は、係数値を逆変換することで分割属性情報を生成する。ここで、逆変換とは、例えば、係数値に予測値を加算する処理である。または、逆変換とは、逆Haar変換である。
 以下、量子化パラメータの決定方法の例を説明する。図73は、タイル及びスライス分割における量子化パラメータの設定例を示す図である。
 量子化パラメータの値が小さいと、元の情報が維持されやすい。例えば、量子化パラメータの既定値は1である。例えば、PCCデータのタイルを用いた符号化処理では、主要道路のタイルの量子化パラメータは、データ品質を維持するために小さい値に設定される。一方、周囲領域のタイルの量子化パラメータは、大きい値に設定される。これにより、周辺領域のデータ品質は低下するが、符号化効率を向上できる。
 同様に、PCCデータのスライスを用いた符号化処理では、歩道、木、及び建物は、自己位置推定及びマッピングにおいて重要であり、歩道、木、及び建物のスライスの量子化パラメータは、小さい値に設定される。一方、移動体及びその他のデータの重要性が低いので、移動体及びその他のデータのスライスの量子化パラメータは高く設定される。
 また、後述するΔQP(DeltaQP)を用いる場合には、三次元データ符号化装置は、主要道路など、重要なエリアに属する三次元点の符号化において、量子化パラメータを小さくするためにΔQPの値に負の値を設定して量子化誤差が小さくなるように符号化を行ってもよい。これにより、重要なエリアに属する三次元点の復号後の属性値を符号化前の値に近づけることができる。また、三次元データ符号化装置は、周辺領域など、重要でないエリアに属する三次元点の符号化時には、量子化パラメータを大きくするためにΔQPの値に正の値を設定して情報量を削減してもよい。これにより、重要なエリアの情報量をキープしつつ、全体の符号量を削減できる。
 以下、階層毎の量子化パラメータを示す情報の例を説明する。三次元点の属性情報を量子化して符号化する場合に、フレーム、スライス又はタイル等に対する量子化パラメータQPbaseに加え、より細かい単位で量子化パラメータを制御する仕組みを導入する。例えば、三次元データ符号化装置は、属性情報をLoDを用いて符号化する場合、LoD毎にDelta_Layerを設け、LoD毎にQPbaseの値にDelta_Layerを加算することで量子化パラメータの値を変えながら符号化を行う。また、三次元データ符号化装置は、符号化に用いたDelta_Layerをビットストリームのヘッダ等に付加する。これにより、三次元データ符号化装置は、例えば目標符号量と発生符号量とに応じてLoD毎の量子化パラメータを変えながら三次元点の属性情報を符号化できるので、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるQPbase及びDelta_Layerを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
 図74は、全ての三次元点の属性情報を量子化パラメータQPbaseを用いて符号化する場合の例を示す図である。図75は、LoDの階層毎に量子化パラメータを切替えて符号化を行う場合の例を示す図である。図75に示す例では、先頭のLoDの量子化パラメータは、QPbaseに、先頭のLoDのDelta_Layerを加算することで算出される。2番目以降のLoDでは、処理対象のLoDの量子化パラメータは、直前のLoDの量子化パラメータに処理対象のLoDのDelta_Layerを加算することで算出される。例えば、LoD3の先頭の量子化パラメータQP3は、QP3=QP2+Delta_Layer[3]で算出される。
 なお、各LoDのDelta_Layer[i]はQPbaseからの差分値を示してもよい。つまり、i番目のLoDiの量子化パラメータQPiは、QPi=QPbase+Delta_Layer[i]で表される。例えば、QP1=QPbase+Delta_Layer[1]で表され、QP2=QPbase+Delta_Layer[2]で表される。
 図76は、属性情報ヘッダ(Attribute header information)のシンタックス例を示す図である。ここで属性情報ヘッダとは、例えば、フレーム、スライス又はタイル単位のヘッダであり、属性情報のヘッダである。図76に示すように、属性情報ヘッダは、QPbase(基準量子化パラメータ)と、NumLayer(階層数)と、Delta_Layer[i](差分量子化パラメータ)とを含む。
 QPbaseは、フレーム、スライス又はタイル等において基準となる量子化パラメータの値を示す。NumLayerは、LoD又はRAHTの階層数を示す。言い換えると、NumLayerは、属性情報ヘッダに含まれるDelta_Layer[i]の数を示す。
 Delta_Layer[i]は、階層iのΔQPの値を示す。ここでΔQPは、階層i-1の量子化パラメータから階層iの量子化パラメータを減算した値である。なお、ΔQPは、QPbaseから階層iの量子化パラメータを減算した値であってもよい。また、ΔQPは、正又は負の値をとり得る。なお、Delta_Layer[0]をヘッダに付加しなくてもよい。この場合、階層0の量子化パラメータはQPbaseに等しい。これによりヘッダ符号量を削減できる。
 図77は、属性情報ヘッダ(Attribute header information)の別のシンタックス例を示す図である。図77に示す属性情報ヘッダは、図76に示す属性情報ヘッダに対して、さらに、delta_Layer_present_flagを含む。
 delta_Layer_present_flagは、Delta_Layerがビットストリームに含まれるか否かを示すフラグである。例えば、値1は、Delta_Layerがビットストリームに含まれることを示し、値0は、Delta_Layerがビットストリームに含まれないことを示す。delta_Layer_present_flagが0の場合、三次元データ復号装置は、例えば、Delta_Layerを0として以降の復号処理を行う。
 なお、ここでは、QPbase及びDelta_Layerにより量子化パラメータが示される例を述べたが、QPbase及びDelta_Layerにより量子化ステップが示されてもよい。量子化ステップは、量子化パラメータから、予め定められた式又はテーブル等を用いて算出される。三次元データ符号化装置は、量子化処理において係数値を量子化ステップで除算する。三次元データ復号装置は、逆量子化処理において量子化値に量子化ステップを乗算することで係数値を復元する。
 次に、更に細かい単位で量子化パラメータを制御する例を説明する。図78は、LoDよりも細かい単位で量子化パラメータを制御する例を示す図である。
 例えば、三次元データ符号化装置は、属性情報をLoDを用いて符号化する場合、LoD階層毎のDelta_Layerに加え、ADelta_QPと、ADelta_QPを加算する三次元点の位置情報を表すNumPointADeltaとを定義する。三次元データ符号化装置は、Delta_Layer、ADelta_QP及びNumPointADeltaに基づき量子化パラメータの値を変更しながら符号化を行う。
 また、三次元データ符号化装置は、符号化に用いたADelta及びNumPointADeltaをビットストリームのヘッダ等に付加してもよい。これにより、三次元データ符号化装置は、例えば、目標符号量と発生符号量とに応じて三次元点毎の量子化パラメータを変更しながら複数の三次元点の属性情報を符号化できる。これにより、三次元データ符号化装置は、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるQPbase、Delta_Layer、及びADeltaを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
 例えば、図78に示すように、N0番目の属性情報の量子化値QP4は、QP4=QP3+ADelta_QP[0]で算出される。
 また、図78に示す符号化/復号順とは逆の符号化/復号順が用いられてもよい。例えばLoD3、LoD2、LoD1、LoD0の順に符号化/復号が行われてもよい。
 図79は、図78に示す例を用いる場合の属性情報ヘッダ(Attribute header information)のシンタックス例を示す図である。図79に示す属性情報ヘッダは、図76に示す属性情報ヘッダに対して、さらに、NumADeltaと、NumPointADelta[i]と、ADelta_QP[i]とを含む。
 NumADeltaは、ビットストリームに含まれるADelta_QPの数を示す。NumPointADelta[i]は、ADelta_QP[i]を適用する三次元点Aの識別番号を示す。例えば、NumPointADelta[i]は、符号化/復号順で先頭の三次元点から三次元点Aまでの三次元点の個数を示す。また、NumPointADelta[i]は、三次元点Aが属するLoD内の最初の三次元点から三次元点Aまでの三次元点の個数を示してもよい。
 または、NumPointADelta[i]は、NumPointADelta[i-1]で示される三次元点の識別番号と、三次元点Aの識別番号との差分値を示してもよい。これにより、NumPointADelta[i]の値を小さくできるので、符号量を削減できる。
 ADelta_QP[i]は、NumPointADelta[i]で示される三次元点のΔQPの値を示す。つまり、ADelta_QP[i]は、NumPointADelta[i]で示される三次元点の量子化パラメータと、当該三次元点の直前の三次元点の量子化パラメータとの差分を示す。
 図80は、図78に示す例を用いる場合の属性情報ヘッダ(Attribute header information)の別のシンタックス例を示す図である。図80に示す属性情報ヘッダは、図79に示す属性情報ヘッダに対して、さらに、delta_Layer_present_flagと、additional_delta_QP_present_flagとを含み、NumADeltaの代わりにNumADelta_minus1を含む。
 delta_Layer_present_flagは、図77を用いて既に説明したものと同様である。
 additional_delta_QP_present_flagは、ADelta_QPがビットストリームに含まれるか否かを示すフラグである。例えば、値1は、ADelta_QPがビットストリームに含まれることを示し、値0は、ADelta_QPがビットストリームに含まれないことを示す。additional_delta_QP_present_flagが0の場合、三次元データ復号装置は、例えば、ADelta_QPを0として以降の復号処理を行う。
 NumADelta_minus1は、ビットストリームに含まれるADelta_QPの数-1を示す。このように、ADelta_QPの数から1を減算した値をヘッダに付加することでヘッダの符号量を削減できる。例えば、三次元データ復号装置は、NumADelta=NumADelta_minus1+1を算出する。ADelta_QP[i]は、i番目のADelta_QPの値を示す。なお、ADelta_QP[i]は、正の値だけでなく、負の値も設定可能であってもよい。
 図81は、本実施の形態に係る三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報(geometry)を符号化する(S7001)。例えば、三次元データ符号化装置は、8分木表現を用いて符号化を行う。
 次に、三次元データ符号化装置は、属性情報を変換する(S7002)。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をN個検出し、N個の三次元点の属性情報の値を、変化後の三次元位置から各N個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に決定する。また、三次元データ符号化装置は、量子化等によって2個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の2個以上の三次元点における属性情報の平均値を割当ててもよい。
 次に、三次元データ符号化装置は、属性情報を符号化する(S7003)。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
 また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を1つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
 図82は、属性情報符号化処理(S7003)のフローチャートである。まず、三次元データ符号化装置は、LoDを設定する(S7011)。つまり、三次元データ符号化装置は、各三次元点を複数のLoDのいずれかに割り当てる。
 次に、三次元データ符号化装置は、LoD単位のループを開始する(S7012)。つまり、三次元データ符号化装置は、LoD毎にステップS7013~S7021の処理を繰り返し行う。
 次に、三次元データ符号化装置は、三次元点単位のループを開始する(S7013)。つまり、三次元データ符号化装置は、三次元点毎にステップS7014~S7020の処理を繰り返し行う。
 まず、三次元データ符号化装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S7014)。次に、三次元データ符号化装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S7015)。次に、三次元データ符号化装置は、対象三次元点の属性情報と予測値との差分である予測残差を算出する(S7016)。次に、三次元データ符号化装置は、予測残差を量子化することで量子化値を算出する(S7017)。次に、三次元データ符号化装置は、量子化値を算術符号化する(S7018)。次に、三次元データ符号化装置は、ΔQPを決定する(S7019)。ここで決定されたΔQPは、後続の予測残差の量子化に用いられる量子化パラメータの決定に用いられる。
 また、三次元データ符号化装置は、量子化値を逆量子化することで逆量子化値を算出する(S7020)。次に、三次元データ符号化装置は、逆量子化値に予測値を加算することで復号値を生成する(S7021)。次に、三次元データ符号化装置は、三次元点単位のループを終了する(S7022)。また、三次元データ符号化装置は、LoD単位のループを終了する(S7023)。
 図83は、ΔQP決定処理(S7019)のフローチャートである。まず、三次元データ符号化装置は、次の符号化対象の対象三次元点Aが属する階層iと符号化順Nとを算出する(S7031)。階層iは、例えばLoD階層、又はRAHTの階層を表す。
 次に、三次元データ符号化装置は、累計符号量に発生符号量を加算する(S7032)。ここで、累計符号量とは、対象三次元点の1フレーム分、1スライス分、又は1タイル分の累積符号量である。なお、累計符号量は、複数フレーム、複数スライス、又は複数タイルの符号量を加算した累積符号量であってもよい。また、属性情報の累積符号量が用いられてもよいし、位置情報と属性情報の両方を加算した累積符号量が用いられてもよい。
 次に、三次元データ符号化装置は、累計符号量が目標符号量×TH1より多いか否かを判定する(S7033)。ここで、目標符号量とは、対象三次元点の1フレーム分、1スライス分、又は1タイル分の目標符号量である。なお、目標符号量は、複数フレーム、複数スライス、又は複数タイルを加算した目標符号量であってもよい。また、属性情報の目標符号量が用いられてもよいし、位置情報と属性情報の両方を加算した目標符号量が用いられてもよい。
 累計符号量が目標符号量×TH1以下の場合(S7033でNo)、三次元データ符号化装置は、累計符号量が目標符号量×TH2より多いか否かを判定する(S7036)。
 ここで、閾値TH1及びTH2として、例えば0.0から1.0までの値が設定される。また、TH1>TH2である。例えば、三次元データ符号化装置は、累積符号量が目標符号量×TH1の値を超えた場合(S7033でYes)、早急に符号量を抑制する必要があると判断し、次の三次元点Nの量子化パラメータを大きくするためにADelta_QPを値αに設定する。また、三次元データ符号化装置は、NumPointADeltaを値Nに設定し、jを1インクリメントする(S7034)。次に、三次元データ符号化装置は、ADelta_QP=αとNumPointADelta=Nとをヘッダに付加する(S7035)。なお、値αは固定値であってもよいし、可変値であってもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×TH1の差分の大きさによってαの値を決定してもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×TH1の差分が大きいほどαの値を大きく設定する。これにより、三次元データ符号化装置は、累積符号量が目標符号量を超えないように量子化パラメータを制御できる。
 また、累積符号量が目標符号量×TH2の値を超えた場合(S7036でYes)、三次元データ符号化装置は、対象三次元点Aが属する階層i又は次の階層i+1の量子化パラメータを大きくするためにDelta_Layerを値βに設定する(S7037)。例えば、三次元データ符号化装置は、対象三次元点Aが階層iの先頭であれば、階層iのDelta_Layer[i]を値βに設定し、対象三次元点Aが階層iの先頭以外であれば、階層i+1のDelta_Layer[i+1]を値βに設定する。
 また、三次元データ符号化装置は、階層i又は階層i+1のDelta_Layer=βをヘッダに付加する(S7038)。なお、値βは固定値であってもよいし、可変値であってもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×TH2の差分の大きさによってβの値を決定してもよい。例えば、三次元データ符号化装置は、累積符号量と目標符号量×TH2の差分が大きいほどβの値を大きく設定する。これにより、三次元データ符号化装置は、累積符号量が目標符号量を超えないように量子化パラメータを制御できる。
 また、三次元データ符号化装置は、累積符号量が目標符号量を超えた場合、又は、超えそうな場合、量子化パラメータが、規格等でサポートされている値の最大値になるようにADelta_QP又はDelta_Layerの値を設定してもよい。これにより、三次元データ符号化装置は、三次元点A以降、又は階層i以降の量子化係数を0にすることで発生符号量の増加を抑制し、累積符号量が目標符号量を超えないように制御できる。
 また、三次元データ符号化装置は、累積符号量が目標符号量×TH3より小さければ、発生符号量が増加するように量子化パラメータを下げてもよい。例えば、三次元データ符号化装置は、Delta_Layer又はAdelta_QPの値に累積符号量と目標符号量の差分に応じて負の値を設定することで量子化パラメータを下げてもよい。これにより、三次元データ符号化装置は、目標符号量に近いビットストリームを生成できる。
 図84は、本実施の形態に係る三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報(geometry)を復号する(S7005)。例えば、三次元データ復号装置は、8分木表現を用いて復号を行う。
 次に、三次元データ復号装置は、ビットストリームから属性情報を復号する(S7006)。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
 また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を1つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
 図85は、属性情報復号処理(S7006)のフローチャートである。まず、三次元データ復号装置は、LoDを設定する(S7041)。つまり、三次元データ復号装置は、復号された位置情報を有する複数の三次元点の各々を複数のLoDのいずれかに割り当てる。例えば、この割り当て方法は、三次元データ符号化装置で用いられた割り当て方法と同じ方法である。
 次に、三次元データ復号装置は、ビットストリームからΔQPを復号する(S7042)。具体的には、三次元データ符号化装置は、ビットストリームのヘッダから、Delta_Layer、ADelta_QP及びNumPointADeltaを復号する。
 次に、三次元データ復号装置は、LoD単位のループを開始する(S7043)。つまり、三次元データ復号装置は、LoD毎にステップS7044~S7050の処理を繰り返し行う。
 次に、三次元データ復号装置は、三次元点単位のループを開始する(S7044)。つまり、三次元データ復号装置は、三次元点毎にステップS7045~S7049の処理を繰り返し行う。
 まず、三次元データ復号装置は、処理対象の対象三次元点の予測値の算出に用いる、対象三次元点の周囲に存在する三次元点である複数の周囲点を探索する(S7045)。次に、三次元データ復号装置は、複数の周囲点の属性情報の値の重み付け平均を算出し、得られた値を予測値Pに設定する(S7046)。なお、これらの処理は三次元データ符号化装置における処理と同様である。
 次に、三次元データ復号装置は、ビットストリームから量子化値を算術復号する(S7047)。また、三次元データ復号装置は、復号した量子化値を逆量子化することで逆量子化値を算出する(S7048)。この逆量子化では、ステップS7042で得られたΔQPを用いて算出された量子化パラメータが用いられる。
 次に、三次元データ復号装置は、逆量子化値に予測値を加算することで復号値を生成する(S7049)。次に、三次元データ復号装置は、三次元点単位のループを終了する(S7050)。また、三次元データ復号装置は、LoD単位のループを終了する(S7051)。
 図86は、属性情報符号化部7023のブロック図である。属性情報符号化部7023は、LoD設定部7061と、探索部7062と、予測部7063と、減算部7064と、量子化部7065と、逆量子化部7066と、再構成部7067と、メモリ7068と、ΔQP算出部7070とを備える。
 LoD設定部7061は、三次元点の位置情報を用いてLoDを生成する。探索部7062は、LoD生成結果と三次元点間の距離情報とを用いて各三次元点の近隣三次元点を探索する。予測部7063は、対象三次元点の属性情報の予測値を生成する。また、予測部7063は、0~M-1の複数の予測モードに予測値を割り当て、複数の予測モードから使用する予測モードを選択する。
 減算部7064は、属性情報から予測値を減算することで予測残差を生成する。量子化部7065は、属性情報の予測残差を量子化する。逆量子化部7066は、量子化後の予測残差を逆量子化する。再構成部7067は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ7068は、復号済みの各三次元点の属性情報の値(復号値)を記憶する。メモリ7068に記憶される復号済みの三次元点の属性情報は、予測部7063による、符号化されていない三次元点の予測に利用される。
 算術符号化部7069は、量子化後の予測残差からZeroCntを算出し、ZeroCntを算術符号化する。また、算術符号化部7069は、量子化後の非ゼロの予測残差を算術符号化する。算術符号化部7069は、予測残差を算術符号化前に二値化してもよい。また、算術符号化部7069は、各種ヘッダ情報を生成及び符号化してもよい。また、算術符号化部7069は、予測部7063が符号化に使用した予測モードを示す予測モード情報(PredMode)を算術符号化してビットストリームに付加してもよい。
 ΔQP算出部7070は、算術符号化部7069で得られた発生符号量と、予め定められた目標符号量とからDelta_Layer、ADelta_QP及びNumPointADeltaの値を決定する。決定されたDelta_Layer、ADelta_QP及びNumPointADeltaに基づく量子化パラメータを用いて、量子化部7065による量子化が行われる。また、算術符号化部7069は、Delta_Layer、ADelta_QP及びNumPointADeltaを算術符号化してビットストリームに付加する。
 図87は、属性情報復号部7043のブロック図である。属性情報復号部7043は、算術復号部7071と、LoD設定部7072と、探索部7073と、予測部7074と、逆量子化部7075と、再構成部7076と、メモリ7077とを備える。
 算術復号部7071は、ビットストリームに含まれるZeroCntと予測残差とを算術復号する。また、算術復号部7071は、各種ヘッダ情報を復号する。また、算術復号部7071は、ビットストリームから予測モード情報(PredMode)を算術復号し、得られた予測モード情報を予測部7074に出力する。また、算術復号部7071は、ビットストリームのヘッダからDelta_Layer、ADelta_QP及びNumPointADeltaを復号する。
 LoD設定部7072は、復号された三次元点の位置情報を用いてLoDを生成する。探索部7073は、LoD生成結果と三次元点間の距離情報を用いて各三次元点の近隣三次元点を探索する。
 予測部7074は、復号対象の対象三次元点の属性情報の予測値を生成する。逆量子化部7075は、算術復号された予測残差を逆量子化する。具体的には、逆量子化部7075は、復号されたDelta_Layer、ADelta_QP及びNumPointADeltaに基づく量子化パラメータを用いて逆量子化を行う。
 再構成部7076は、予測値と逆量子化後の予測残差とを加算することで復号値を生成する。メモリ7077は、復号済みの各三次元点の属性情報の値(復号値)を記憶する。メモリ7077に記憶される復号済みの三次元点の属性情報は、予測部7074による、復号されていない三次元点の予測に利用される。
 以下、LoD階層の代わりにRAHTの階層を用いる場合の例を説明する。図88は、RAHTを用いた属性情報の符号化時に、更に細かい単位で量子化パラメータを制御する例を示す図である。例えば、三次元データ符号化装置は、属性情報をRAHTを用いて符号化する場合、RAHTの階層毎のDelta_Layerに加え、ADelta_QPと、ADelta_QPを加算する三次元点の位置情報を表すNumPointADeltaとを定義する。三次元データ符号化装置は、Delta_Layer、ADelta_QP及びNumPointADeltaに基づき量子化パラメータの値を変更しながら符号化を行う。
 また、三次元データ符号化装置は、符号化に用いたADelta及びNumPointADeltaをビットストリームのヘッダ等に付加してもよい。これにより、三次元データ符号化装置は、例えば、目標符号量と発生符号量とに応じて三次元点毎の量子化パラメータを変更しながら三次元点の属性情報を符号化できる。これにより、三次元データ符号化装置は、最終的に目標符号量に近い符号量のビットストリームを生成できる。また、三次元データ復号装置は、ヘッダに含まれるQPbase、Delta_Layer及びADeltaを復号して三次元データ符号化装置が使用した量子化パラメータを生成することで、ビットストリームを適切に復号できる。
 例えばN0番目の属性情報の量子化値QP4は、QP4=QP3+ADelta_QP[0]で算出される。また、QP4=QPbase+ADelta_QP[0]のように各ADelta_QP[i]はQPbaseからの差分値であってもよい。
 図89は、図88に示す例を用いる場合の属性情報ヘッダ(Attribute header information)のシンタックス例を示す図である。なお、図89に示す属性情報ヘッダには、図79に示す属性情報ヘッダと基本的には同様であり、LoD階層がRAHTの階層に変更されている点が異なる。
 NumADeltaは、ビットストリームに含まれるADelta_QPの数を示す。NumPointADelta[i]は、 ADelta_QP[i]を適用する三次元点Aの識別番号を示す。例えば、例えば、NumPointADelta[i]は、符号化/復号順で先頭の三次元点から三次元点Aまでの三次元点の個数を示す。また、NumPointADelta[i]は、三次元点Aが属する階層内の最初の三次元点から三次元点Aまでの三次元点の個数を示してもよい。
 または、NumPointADelta[i]は、NumPointADelta[i-1]で示される三次元点の識別番号と、三次元点Aの識別番号との差分値を示してもよい。これにより、NumPointADelta[i]の値を小さく設定できるので、符号量を削減できる。
 図90は、図88に示す例を用いる場合の属性情報ヘッダ(Attribute header information)の別のシンタックス例を示す図である。なお、図90に示す属性情報ヘッダには、図80に示す属性情報ヘッダと基本的には同様であり、LoD階層がRAHTの階層に変更されている点が異なる。
 additional_delta_QP_present_flagは、ADelta_QPがビットストリームに含まれるか否かを示すフラグである。例えば、値1は、ADelta_QPがビットストリームに含まれることを示し、値0は、ADelta_QPがビットストリームに含まれないことを示す。additional_delta_QP_present_flagが0の場合、三次元データ復号装置は、例えば、ADelta_QPを0として以降の復号処理を行う。
 NumADelta_minus1は、ビットストリームに含まれるADelta_QPの数-1を示す。このように、ADelta_QPの数から1を減算した値をヘッダに付加することでヘッダの符号量を削減できる。例えば、三次元データ復号装置は、NumADelta=NumADelta_minus1+1を算出する。ADelta_QP[i]は、i番目のADelta_QPの値を示す。なお、ADelta_QP[i]は、正の値だけでなく、負の値も設定可能であってもよい。
 図91は、RAHTを用いる場合の三次元データ符号化処理のフローチャートである。まず、三次元データ符号化装置は、位置情報(geometry)を符号化する(S7061)。例えば、三次元データ符号化装置は、8分木表現を用いて符号化を行う。
 次に、三次元データ符号化装置は、属性情報を変換する(S7062)。例えば、三次元データ符号化装置は、位置情報の符号化後に、量子化等によって三次元点の位置が変化した場合に、変化後の三次元点に元の三次元点の属性情報を再割当てする。なお、三次元データ符号化装置は、位置の変化量に応じて属性情報の値を補間して再割当てを行ってもよい。例えば、三次元データ符号化装置は、変化後の三次元位置に近い変化前の三次元点をN個検出し、N個の三次元点の属性情報の値を、変化後の三次元位置から各N個の三次元までの距離に基づいて重み付け平均し、得られた値を変化後の三次元点の属性情報の値に設定する。また、三次元データ符号化装置は、量子化等によって2個以上の三次元点が同一の三次元位置に変化した場合は、その変化後の属性情報の値として、変化前の2個以上の三次元点における属性情報の平均値を割当ててもよい。
 次に、三次元データ符号化装置は、属性情報を符号化する(S7063)。例えば、三次元データ符号化装置は、複数の属性情報を符号化する場合は、複数の属性情報を順に符号化してもよい。例えば、三次元データ符号化装置は、属性情報として、色と反射率を符号化する場合は、色の符号化結果の後に反射率の符号化結果を付加したビットストリームを生成する。なお、ビットストリームに付加される属性情報の複数の符号化結果はどのような順番でもよい。
 また、三次元データ符号化装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等に付加してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ符号化装置は、複数の属性情報を並列に符号化し、符号化結果を1つのビットストリームに統合してもよい。これにより、三次元データ符号化装置は、高速に複数の属性情報を符号化できる。
 図92は、属性情報符号化処理(S7063)のフローチャートである。まず、三次元データ符号化装置は、Haar変換により属性情報から符号化係数を生成する(S7071)。
 次に、三次元データ符号化装置は、符号化係数に量子化を適用する(S7072)。次に、三次元データ符号化装置は、量子化後の符号化係数を符号化することで符号化属性情報(ビットストリーム)を生成する(S7073)。
 次に、三次元データ復号装置は、ΔQPを決定する(S7074)。なお、ΔQPの決定方法は、LoD階層を用いる場合のステップS7019と同様である。また、決定されたΔQPは、後続の符号化係数の量子化に用いられる量子化パラメータの決定に用いられる。
 また、三次元データ符号化装置は、量子化後の符号化係数に逆量子化を適用する(S7075)。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Haar変換を適用することで属性情報を復号する(S7076)。例えば、復号された属性情報は、後続の符号化において参照される。
 図93は、RAHTを用いる場合の三次元データ復号処理のフローチャートである。まず、三次元データ復号装置は、ビットストリームから位置情報(geometry)を復号する(S7065)。例えば、三次元データ復号装置は、8分木表現を用いて復号を行う。
 次に、三次元データ復号装置は、ビットストリームから属性情報を復号する(S7066)。例えば、三次元データ復号装置は、複数の属性情報を復号する場合は、複数の属性情報を順に復号してもよい。例えば、三次元データ復号装置は、属性情報として、色と反射率を復号する場合は、ビットストリームに付加されている順に従い、色の符号化結果、及び反射率の符号化結果を復号する。例えば、ビットストリームにおいて、色の符号化結果の後に、反射率の符号化結果が付加されている場合、三次元データ復号装置は、色の符号化結果を復号し、その後に反射率の符号化結果を復号する。なお、三次元データ復号装置は、ビットストリームに付加される属性情報の符号化結果をどのような順番で復号してもよい。
 また、三次元データ復号装置は、ビットストリーム内の各属性情報の符号化データの開始場所を示す情報をヘッダ等を復号することで取得してもよい。これにより、三次元データ復号装置は、復号が必要な属性情報を選択的に復号できるので、復号が不必要な属性情報の復号処理を省略できる。よって、三次元データ復号装置の処理量を削減できる。また、三次元データ復号装置は、複数の属性情報を並列に復号し、復号結果を1つの三次元点群に統合してもよい。これにより、三次元データ復号装置は、高速に複数の属性情報を復号できる。
 図94は、属性情報復号処理(S7066)のフローチャートである。まず、三次元データ復号装置は、ビットストリームから符号化係数を復号する(S7081)。次に、三次元データ復号装置は、ビットストリームからΔQPを復号する(S7082)。具体的には、三次元データ符号化装置は、ビットストリームのヘッダから、Delta_Layer、ADelta_QP及びNumPointADeltaを復号する。
 次に、三次元データ復号装置は、符号化係数に逆量子化を適用する(S7083)。この逆量子化では、ステップS7082で得られたΔQPを用いて算出された量子化パラメータが用いられる。次に、三次元データ復号装置は、逆量子化後の符号化係数に逆Haar変換を適用することで属性情報を復号する(S7084)。
 図95は、RAHTを用いる場合の属性情報符号化部7023のブロック図である。属性情報符号化部7023は、ソート部7081と、Haar変換部7082と、量子化部7083と、逆量子化部7084と、逆Haar変換部7085と、メモリ7086と、算術符号化部7087と、ΔQP算出部7088とを備える。
 ソート部7081は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Haar変換部7082は、属性情報にHaar変換を適用することで符号化係数を生成する。量子化部7083は、属性情報の符号化係数を量子化する。
 逆量子化部7084は、量子化後の符号化係数を逆量子化する。逆Haar変換部7085は、符号化係数に逆Haar変換を適用する。メモリ7086は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ7086に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
 算術符号化部7087は、量子化後の符号化係数からZeroCntを算出し、ZeroCntを算術符号化する。また、算術符号化部7087は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部7087は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部7087は、各種ヘッダ情報を生成及び符号化してもよい。
 ΔQP算出部7088は、算術符号化部7087で得られた発生符号量と、予め定められた目標符号量とからDelta_Layer、ADelta_QP及びNumPointADeltaの値を決定する。決定されたDelta_Layer、ADelta_QP及びNumPointADeltaに基づく量子化パラメータを用いて、量子化部7083による量子化が行われる。また、算術符号化部7087は、Delta_Layer、ADelta_QP及びNumPointADeltaを算術符号化してビットストリームに付加する。
 図96は、RAHTを用いる場合の属性情報復号部7043のブロック図である。属性情報復号部7043は、算術復号部7091と、逆量子化部7092と、逆Haar変換部7093と、メモリ7094とを備える。
 算術復号部7091は、ビットストリームに含まれるZeroCntと符号化係数を算術復号する。なお、算術復号部7091は、各種ヘッダ情報を復号してもよい。また、算術復号部7091は、ビットストリームのヘッダからDelta_Layer、ADelta_QP及びNumPointADeltaを復号する。
 逆量子化部7092は、算術復号した符号化係数を逆量子化する。具体的には、逆量子化部7092は、復号されたDelta_Layer、ADelta_QP及びNumPointADeltaに基づく量子化パラメータを用いて逆量子化を行う。
 逆Haar変換部7093は、逆量子化後の符号化係数に逆Haar変換を適用する。メモリ7094は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ7094に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
 以下、本実施の形態の変形例について説明する。三次元データ符号化装置は、三次元点の属性情報の量子化パラメータを、新たな属性情報として三次元点毎に符号化してもよい。
 以下、この場合の三次元データ符号化装置のよる処理の例を説明する。三次元データ符号化装置は、図82に示すフローに従って、属性情報A(例えば色)を量子化パラメータを算出しながら符号化する。この際に、三次元データ符号化装置は、各三次元点の新たな属性値として、使用した量子化パラメータを符号化する。この場合、三次元データ符号化装置は、三次元点毎に量子化パラメータの値を変更しながら符号化を行ってもよい。例えば、三次元データ符号化装置は、累積符号量が目標符号量×TH1の値を超えた場合、発生符号量を抑制するために、量子化パラメータの値を大きく設定してもよい。また、三次元データ符号化装置は、累積符号量が目標符号量×TH3の値より小さい場合、発生符号量を増やすために、量子化パラメータの値を小さく設定してもよい。
 三次元データ符号化装置は、属性情報Aを符号化後、各三次元点に割当てた量子化パラメータを新たな属性情報A’として符号化する。この際、三次元データ符号化装置は、量子化パラメータの情報量の欠落を防ぐためにロスレス(lossless)符号化を適用してもよい。また、三次元データ符号化装置は、ヘッダ等に符号化した属性情報が量子化パラメータであることを示す情報を付加してもよい。これにより、三次元データ復号装置は、三次元データ符号化装置が使用した量子化パラメータを適切に復号できる。
 また、三次元データ符号化装置は、対象三次元の周囲のN個の三次元点を用いて属性情報の予測符号化を行う場合に、N=1として量子化パラメータを符号化してもよい。これにより計算量を削減できる。
 次に、三次元データ復号装置による処理の例を説明する。まず、三次元データ復号装置は、ビットストリーム内の属性情報のうち、属性情報A’を復号し、属性情報Aの復号に用いる量子化パラメータを取得する。次に、三次元データ復号装置は、復号した量子化パラメータを用いて属性情報Aを復号する。
 なお、三次元データ符号化装置は、上記量子化パラメータの代わりに、各三次元点の量子化パラメータの変化量であるΔQPを、新たな属性情報A’として符号化してもよい。また、三次元データ符号化装置は、ΔQPが正及び負の値をとる場合、下記のように符号付ΔQPを正の値に変換してから符号化してもよい。符号付ΔQP(deltaQP_s)が0未満の場合、符号無しΔQP(deltaQP_u)は、-1-(2×deltaQP_s)に設定される。符号付ΔQP(deltaQP_s)が0以上の場合、符号無しΔQP(deltaQP_u)は、2×deltaQP_sに設定される。
 また、三次元データ符号化装置は、属性情報毎に符号化に用いた量子化パラメータを属性情報として符号化してもよい。例えば、三次元データ符号化装置は、色の属性情報Aの量子化パラメータを属性情報A’として符号化し、反射率の属性情報Bの量子化パラメータを属性情報B’として符号化してもよい。これにより、属性情報毎に量子化パラメータを切替えることができる。例えば優先度が高い属性情報の量子化パラメータを小さく設定し、優先度が低い属性情報の量子化パラメータを大きく設定することで、優先度が高い属性情報を保護しつつ、全体の符号量を削減できる。
 また、三次元データ符号化装置は、三次元点の属性情報の予測残差を量子化して符号化する際に、delta_Layer_present_flag及びadditional_delta_QP_present_flagなどによって、Delta_Layer及びADelta_QPがヘッダに設定された場合は、三次元点の重要度を示すQW(Quantization weight)の値を適用しないようにしてもよい。例えば、QWが適用される場合には、QWが大きい(重要度が高い)ほど、量子化パラメータは小さく設定される。これにより、予測等の内部処理によって決定される重要度によって量子化を行うか、ユーザがヘッダで設定した値に応じて量子化を行うかを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
 また、三次元データ符号化装置は、QW(Quantization weight)の値を適用するか否かを示すフラグをヘッダに付加してもよい。これにより、Delta_Layer及びADelta_QPの値とQWとを組合わせて量子化を行うか否かを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
 また、三次元データ符号化装置は、RAHT等を用いて、三次元点の属性情報の変換係数を量子化して符号化する際に、delta_Layer_present_flag及びadditional_delta_QP_present_flagなどによって、Delta_Layer及びADelta_QPがヘッダに設定された場合は、QW(Quantization weight)の値を適用しないようにしてもよい。これにより、予測等の内部処理によって決定される重要度によって量子化を行うか、ユーザがヘッダで設定した値に応じて量子化を行うかを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。また、三次元データ符号化装置は、QW(Quantization weight)の値を適用するか否かを示すフラグをヘッダに付加してもよい。これにより、Delta_Layer及びADelta_QPの値とQWとを組合わせて量子化を行うか否かを切替えることができるので、ユーザの用途に応じて両者を使い分けることができる。
 図97は、この場合の属性情報ヘッダ(Attribute header information)のシンタックス例を示す図である。図97に示す属性情報ヘッダは、図80に示す属性情報ヘッダに対して、さらに、default_delta_Layer_present_flagと、default_delta_Layer_indexと、default_additional_delta_QP_present_flagと、default_additional_delta_QP_indexとを含む。
 default_delta_Layer_present_flagは、規格等で定義した初期設定のDelta_Layerの値を使用するか否かを示すフラグである。例えば、値1は、初期設定のDelta_Layerを使用すること示す。値0は、初期設定のDelta_Layerを使用しないことを示す。値0の場合、三次元データ復号装置は、例えば、Delta_Layerを0として以降の復号処理を行う。
 default_delta_Layer_indexは、規格等で定義した1個以上の初期設定のDelta_Layerのうち、使用するDelta_Layerを識別するための情報である。例えば、default_delta_Layer_indexは、下記のように定義される。
 default_delta_Layer_index=0の場合、全ての階層のDelta_Layerが1に設定される。つまり、階層が増える毎に量子化パラメータの値が1増加する。default_delta_Layer_index=1の場合、全ての階層のDelta_Layerが2に設定される。つまり、階層が増える毎に量子化パラメータの値が2増加する。
 このように規格等で初期設定のDelta_Layerを定義することで、Delta_Layerの値をヘッダに付加せずに量子化パラメータを変更できるので、ヘッダの符号量を削減できる。
 default_additional_delta_QP_present_flagは、規格等で定義した初期設定のADelta_QOの値を使用するか否かを示すフラグである。例えば、値1は、初期設定のADelta_QPを使用することを示す。値0は、初期設定のADelta_QPを使用しないことを示す。値0の場合、三次元データ復号装置は、例えば、ADelta_QPを0として以降の復号処理を行う。
 default_additional_delta_QP_indexは、規格等で定義した1個以上の初期設定のADelta_QPのうち、使用するADelta_QPを識別するための情報である。例えば、default_additional_delta_QP_indexは、下記のように定義される。
 default_additional_delta_QP_index=0の場合、三次元点数N個毎にADelta_QPが1に設定される。つまりN個の三次元点を符号化又は復号する毎に量子化パラメータの値が1増加する。なお、三次元データ符号化装置は、N個を示す情報を別途ヘッダに付加してもよい。
 default_additional_delta_QP_index=1の場合、三次元点数N個毎にADelta_QPが2に設定される。つまりN個の三次元点を符号化又は復号する毎に量子化パラメータの値が2増加する。なお、三次元データ符号化装置は、N個を示す情報を別途ヘッダに付加してもよい。
 このように規格等で初期設定のADelta_QPを定義することで、ADelta_QPの値をヘッダに付加せずに量子化パラメータを変更できるので、ヘッダの符号量を削減できる。
 (実施の形態10)
 実施の形態9で説明した、階層毎に量子化パラメータを割り当てる処理において、実施の形態10のような処理を行ってもよい。
 本実施の形態では、量子化において適用するQP値を階層ごとに割り当てる例について説明する。図98は、ビットストリームの符号化のビットレートと時間との関係を示すグラフである。
 図98に示されるように、三次元データ符号化装置は、閾値TH1と閾値TH2との間の予め許可されている所定の範囲で符号化のビットレートを制御することが望まれている。閾値TH1は、所定の範囲の最大の閾値(上限値)である。閾値TH1は、具体的には、バッファまたは伝送帯域幅が制限されているために超えることができないハードリミットである。閾値TH2は、所定の範囲の最小の閾値(下限値)である。閾値TH2は、具体的には、ビットレートおよび画質の一貫性を維持するために設定されるソフトリミットである。
 符号化のビットレートを閾値TH1および閾値TH2の間の範囲に制御するためには、符号化中にQP値の調整が必要となる場合がある。ビットレートが所定の範囲に収まるようにQP値を調整する処理は、QP値の調整ツールを使うことで容易に実現することができる。QP値を調整する処理では、QP値が関連付けられる属性値を有する三次元点の数、および、符号化される属性値の複雑さに応じてQP値を調整することでビットレートを増減する。
 ビットレートの変動は、符号化ツールが正しいQP値の設定に調整しようとする初期段階で発生し、符号化ストリームが安定すれば、ビットレートの変動は最終的に小さくなり、ビットレートは安定する。
 図99は、三次元点群の階層構造と、各階層に属する三次元点の数とを示す図である。
 図99の(a)に示すように、三次元点群に含まれる複数の三次元点は、階層1、階層2、階層3および階層4の4つの階層に分類される。
 予測変換、リフティング変換、またはRAHTの性質により、LoD層毎または深度層毎の三次元点の数は、図99に示すように大きく異なる場合がある。例えば、最下層の階層4には、三次元点群の75%の数の三次元点が含まれ、他の階層1~3には、残りの25%の三次元点が含まれる。このため、階層4においてQP値を変更することは、階層1~3のいずれかでQP値を変更することよりも、ビットストリームのサイズまたはビットレートに大きな影響を与える。
 この方法は、予測変換、リフティング変換、およびRAHTに適用できるだけでなく、複数の階層を用いて三次元点群を符号化する他の方法にも適用することができる。つまり、この方法は、適用される元のQP値(スライスまたは層)が三次元点群データのグループに適用可能であれば、上記で例示した階層毎の三次元点に適用することに限られない。また、1つの階層をさらに複数のサブ階層(SubLayer)に分割し、分割した複数のサブ階層に当該1つの階層に含まれる複数の三次元点を割り当てる(分類する)場合、複数のサブ階層毎にΔQP(DeltaQP)を割り当ててもよい。ここで、1つのサブ階層には、1以上の三次元点が割り当てられていればよい。
 1つの階層をさらに複数のサブ階層に分割する方法は、必ずしも最下層の階層に適用されることに限らない。複数の階層のいずれの階層に適用されてもよい。
 符号化においてビットストリームのビットレートを効果的に制御するためには、階層毎にQP値を調整して量子化を行う以外にも、さらに、細かくQP値を調整する調整ツールが必要である。そこで、NumPointADeltaを用いた手法では、ユーザは、特定のスライスの特定の階層の属性値の量を必要な値に設定することができる。
 図100は、1階層の三次元点群を指定された三次元点数でサブ階層に分類する第1の例を示す図である。第1の例では、複数のサブ階層のそれぞれに含まれる三次元点の数が指定される。
 サブ階層への分割には、さまざまな状況や符号化方法に合わせて、多くの方法で三次元点群を分割することが考えられる。例えば、各サブ階層の三次元点群の量が直接指定されることで、指定された三次元点群の量に応じて階層を複数のサブ階層に分割することが考えられる。
 例えば、図100では、階層4には符号化対象の100個の三次元点が含まれており、階層4は、25個の三次元点をそれぞれが含む2つのサブ階層と、50個の三次元点を含むサブ階層とに分割されている。例えば、階層4を分割するサブ階層の数と、各サブ階層に含まれる三次元点の数とは、ユーザによる入力によって指定されてもよい。
 図80で示したヘッダのシンタックス例によれば、numPointADelta[i]は、サブ階層の三次元点情報を格納されるために使用されている。この例では、配列のサイズが3であるか、numPointADelta[i]が階層4の3つのサブ階層を示す0から2までの値に設定されている。iは、サブ階層が含まれる階層を示す値である。numPointADelta[i]は、各サブ階層のサイズを示してもよいし、各サブ階層の開始点を示してもよい。サブ階層のサイズとは、サブ階層に含まれる三次元点の数である。サブ階層の開始点とは、当該サブ階層が属する階層に含まれる三次元点群の各三次元点に順番が割り振られる場合、各サブ階層に含まれる複数の三次元点の順番のうちで最も小さい順番(先頭の三次元点の順番)を示す。
 numPointADelta[i]がサイズを示す場合、図100の階層4に含まれる3つのサブ階層は、例えば、numPointADelta[3]={25、25、50}と表すことができる。この場合、符号化サイズは、ほとんどの場合、カバー範囲が小さくなるので、わずかに小さいパラメータ値を生成することができる。一方で、三次元データ符号化装置および三次元データ復号装置の両方が、処理されているサブ階層のサイズを追跡する必要がある。
 numPointADelta[i]が開始点を示す場合、図100の階層4に含まれる3つのサブ階層は、例えば、numPointADelta[3]={0、25、50}と表すことができる。この場合、符号化の位置は、常に最後の要素の全範囲が必要とされる。一方で、三次元点群のカウンタは、既に追跡されているため、三次元データ符号化装置および三次元データ復号装置はより容易に処理することができる。
 図101は、1階層の三次元点群を一定の三次元点数でサブ階層に分類する第2の例を示す図である。図102は、第2の例における属性情報のヘッダのシンタックスの例を示す。図103は、第2の例における属性情報のシンタックスの他の例を示す。第2の例では、複数のサブ階層には共通の三次元点の数が指定される。つまり、第2の例では、サブ階層に分類される三次元点の数として1つの共通の数が指定される。
 第2の例では、図102に示されるようにconst_NumPointを符号化し、サブ階層毎にADelta_QPを符号化してもよい。また、図103に示されるように、const_NumPointは、各サブ階層に対して生成され、各階層に基づいて変更されてもよい。
 additional_delta_QP_present_flagは、const_NumPointを示すために実装され、ADelta_QPは、サブ階層毎に利用可能である。なお、additional_delta_QP_present_flagは、const_NumPointを常に符号化する必要がある場合、省略することもできる。同様に、各サブ階層のTotalPointは、符号化または復号の処理中に内部的に算出されてもよいし、単純化のために符号化されて、ヘッダに格納されてもよい。
 const_NumPointは、各サブ階層の三次元点の数(定数)を示す。
 num_sublayerは、対応するサブ階層における三次元点の総数と、const_NumPointとに基づいて分割できるサブ階層の数を示す。
 このように、各サブ階層に含まれる三次元点の数を一定数とすることで、符号化または復号におけるオーバーヘッドを削減することができる。
 図104は、1階層の三次元点群を予定の数とは異なる数のサブ階層に分類する第3の例を示す図である。図105は、第3の例における属性情報のヘッダのシンタックスの例を示す。図106は、第3の例における属性情報のヘッダのシンタックスの他の例を示す。第3の例では、予め定められた数のサブ階層とは異なる数、例えば予め定められた数よりも多いサブ階層に、複数の三次元点が分類される。
 この例は、予定の数よりも多いサブ階層が生成されたため、DeltaQP値が割り当てられていないサブ階層が生じた例である。この場合、DeltaQP値が割り当てられていないサブ階層には、例えば0などのデフォルト値または所定の値がDeltaQP値として設定されてもよい。また、DeltaQP値が割り当てられていないサブ階層には、DeltaQP値が割り当てられているサブ階層のうちの1つのサブ階層(例えば、最後または最下層のサブ階層)に割り当てられているDeltaQP値が、DeltaQP値が割り当てられていないサブ階層のDeltaQP値として割り当てられてもよい。これにより、符号化に必要なADeltaQP値が少なくて済むため、オーバーヘッドを削減することができる。
 なお、最後のサブ階層(階層)は、三次元符号化装置が所定の方法で決定した階層0から階層n-1までのn階層のうちのn-1番目の階層である。階層数は、ヘッダに付加される。所定の方法は、例えば、三次元符号化装置が各階層をレート制御しながら符号化する間において、目標とするビットレートを達成できると判定して以降のサブ階層のQP値の変更が不要であると判断した場合、以降の階層用のDeltaQP値を送信しない方法である。これにより、ヘッダの符号量を削減することができる。
 符号化または復号されるADeltaQPの数を識別するシンタックスには、複数の例がある。例えば、図105に示すシンタックスは、サブ階層のDeltaQPの範囲の固定値である特定のstop_codeを有する。三次元データ復号装置は、stop_codeを取得すると、ループを終了する。三次元データ符号化装置では、DeltaQPの範囲は、符号化する必要があるか、または、三次元データ符号化装置および三次元データ復号装置の両方が認識されるように規格で定義することができる。また、例えば、図106に示すシンタックスは、num_sublayerを直接符号化して、復号できるADeltaQP値の数を示す方法である。
 なお、予定数よりも少ないサブ階層が生成されることで、サブ階層の数を参照する際に余分なADeltaQP値がある場合、余分なADeltaQP値を使用せずに破棄してもよい。
 図107は、1階層の三次元点群を割合(百分率)で指定された三次元点数でサブ階層に分類する第4の例を示す図である。図108は、第4の例における属性情報のヘッダのシンタックスの例を示す。第4の例では、サブ階層に分類するための割合が、各サブ階層へ分類する三次元点数として指定される。
 この例では、サブ階層の三次元点群の数が、サブ階層を含む階層に含まれる三次元点の数に対する割合で指定されている。図107では、4つのサブ階層は、それぞれ、サブ階層を含む階層に含まれる三次元点の総数の25%の数、当該総数の30%の数、当該総数の30%の数、および、当該総数の15%の数の三次元点を含むことが示されている。このように、階層が複数のサブ階層に分割される場合、分割される複数のサブ階層のそれぞれに含まれる三次元点の数は、当該階層に含まれる三次元点の総数に対する、当該サブ階層に含まれる三次元点の数の割合で示されてもよい。この場合、三次元データ符号化装置および三次元データ復号装置の両方が、符号化される三次元点の数を追跡して処理する。割合は、実装方法に応じて、全三次元点群に対して算出されてもよいし、特定の階層の割合として算出されてもよい。
 図108において、num_sublayerは、三次元点群の割合で除算したサブ階層の数を示す。また、percentileは、対応するサブ階層に含まれる三次元点群の総数の、当該サブ階層が属する階層に含まれる三次元点群の総数に対する割合を示す。
 例えば、サブ階層に分類されていない複数の三次元点が残る場合などのように不完全な割合が残る場合、残りの複数の三次元点は、三次元データ符号化装置および三次元データ復号装置の両方で一致する実装に応じて、新たなサブ階層に分類されてもよいし、または、一つ前のサブ階層に分類されてもよい。一方、エラーが発生することにより、割合の値が許容値である100%を超える場合、サブ階層への分割は、最後の三次元点で終了する。
 なお、割合が常に100%に固定されているため、1階層に含まれる複数の三次元点を複数のサブ階層に分類するために指定される複数の割合のうちの最後の割合は、除外されてもよい。この場合、割合の要素数は、Adelta_QPの要素数より1少なくなることを意味する。
 図109は、1階層の三次元点群をモートンインデックスでサブ階層に分類する第5の例を示す図である。図110は、第5の例における属性情報のヘッダのシンタックスの例を示す。
 第5の例では、複数のサブ階層には三次元点群のモートンコードにおけるモートンインデックスが指定される。つまり、第5の例では、1階層に含まれる三次元点群は、モートンコードを用いてサブ階層に分類される。例えば、モートンインデックスが共通する複数の三次元点は、同一のサブ階層に分類されてもよい。これにより、三次元点群は、空間的な距離が近い、例えば、所定距離よりも近い三次元点同士でグループ化されるため、例えば、各サブ階層に含まれる三次元点群は、一塊の三次元空間に含まれ、かつ、複数のサブ階層のうち、一のサブ階層に対応する三次元空間は、他のサブ階層に対応する三次元空間と重複しないこととなる。このように、1つのサブ階層には、空間的な距離が近い三次元点群が割り当てられるため、当該三次元点群は、類似の特性または属性を有する可能性が高い。よって、同じサブ階層に含まれる三次元点には、共通のQP値が使用されて符号化されるため、符号化効率を向上させることができる。
 三次元点群は、階層毎にモートンオーダで配置される場合、三次元点のソートは、行われなくてもよい。三次元データ符号化装置は、どの複数の三次元点を同一のサブ階層に分類するかを事前に決定し、上記の方法を用いて各サブ階層に分類される三次元点数を設定してもよい。
 num_morton_sublayerは、モートンオーダを用いたグループ化によって分割されたサブ階層の数を示す。Indexは、モートンインデックスを示す。Indexは、例えば、図109におけるモートンインデックスAが選択された場合、モートンインデックスAのノードの子ノードがサブ階層に設定される。また、モートンコードを使用して、対応するサブ階層の開始点または終了点が示されてもよい。モートンインデックスは、最下層の階層の三次元点から取得することに限らずに、上位層の階層の三次元点から取得してもよい。三次元データ符号化装置および三次元データ復号装置の両方の設定に応じて、三次元点を各サブ階層に分類するための開始点または終了点が決定されてもよい。
 図111および図112は、1階層の三次元点群をモートンインデックスでサブ階層に分類する第6の例を示す図である。第6の例では、RAHTの階層構造で三次元点群が分類される場合の例である。
 第6の例では、三次元点のモートンインデックスを使用して、分類する三次元点群のグループとしてのサブ階層A~Cを識別する。これにより、第5の例と同様に、共通するモートンインデックスを有する三次元点を同じサブ階層に分類する。
 三次元データ符号化装置および三次元データ復号装置に応じて、三次元点群のモートンインデックスで三次元点群を分類することができる。サブ階層の設定は、任意の階層に適用することができる。指定されたモートンインデックスよりも上に位置する三次元点は、次のサブ階層へ分類されてもよいし、外れ値として扱われてもよい。
 図112は、モートンインデックスで分類されるサブ階層における最後の三次元点を示す。図112では、1次元の配列表現で図14と同様のサブ階層が示されている。
 モートンインデックスを用いることによるサブ階層への分類は、予測変換、リフティングまたはRAHTのデプスなどにおける特定の階層での分類に限らずに、複数の階層/デプスに分類することに適用されてもよい。この場合、サブ階層は、サブグループとなる。
 図113は、1階層の三次元点群を残差またはDelta値を用いてサブ階層に分類する第7の例を示す図である。
 第7の例では、例えば、Delta値は、予測変換またはリフティングにおけるLoD階層の量子化重み関数に乗算する属性情報(属性値)である。同様に、RAHTでは、Delta値は、重みに乗算する属性情報(属性値)である。Delta値は、属性情報として符号化される値であってもよく、予測変換、リフティング、RAHTまたは他の任意の方法で変換されることに関わらず、符号化処理に依存して予測後の値であってもよい。なお、図113では、Delta値は、Deltaで示されている。
 Delta値は、値が小さい場合、細部が維持され、かつ、量子化されないように、少し低いQPで符号化されてもよい。これにより、解像度が低減することを抑制することができる。しかし、Delta値が大きい場合、大きなDelta値の差は容易に量子化されないため、大きなQP値が利用されてもよい。
 図113において、円の半径は、Delta値の大きさを表している。Delta値が大きいほど、中心を参照する三次元点は遠くなる。
 図114は、二次元のモートンオーダで並べた場合の三次元点の配列を示す図である。図115は、第7の例における属性情報のヘッダのシンタックスの例を示す。
 第7の例のように、Delta値を用いて、三次元点群を複数のサブ階層に分類する場合、サブ階層のQP値は、連続する三次元点群全体をカバーしない。例えば、図114に示すように、いくつかの三次元点群は、グループAに分類され、その他の散在する三次元点群がグループBに分類され、それ以外の三次元点群の一部の三次元点群がグループCに分類される。
 三次元点群は、グループインデックス値に割り当てられ、インデックス値は、Delta値と共に符号化される。なお、下位レベルにおける符号化については、後述する。なお、インデックス値は、追加の属性情報として符号化されてもよいし、SEIメッセージとして符号化されてもよい。
 第7の例では、三次元点群ごとに追加のインデックスを符号化する必要があるため、オーバーヘッドが生じる可能性があるが、クロスレイヤのサブ階層のDeltaQPを可能とする。なお、三次元データ符号化装置は、インデックスを決定した後に、特定の階層の三次元点を再配置し、次に、インデックスおよび対応するQPのインデックスを昇順または降順で符号化してもよい。
 num_Groupは、Delta値に基づいて分割されたグループまたはサブ階層の数を示す。
 図116は、残差のビットストリームのシンタックスの例を示す。図117は、符号化コスト(Encoding cost)を算出するための式を示す。図118は、BPP(bits per point)と時間との関係を示すグラフである。
 図116に示すように、残差のビットストリームを符号化している間に、インデックス情報は、各点群について符号化される。なお、indexは、三次元点が属するサブ階層またはサブグループのインデックス番号を示す。また、valuesは、予測残差(residual value)を示す。
 なお、各三次元点の適切なインデックスの決定では、各属性情報の符号化コスト(図117参照)が用いられてもよいし、前に符号化された三次元点の符号化コストが用いられてもよい。このコンテキストにおける符号化コストは、各三次元点群の属性情報を符号化するのに必要なビット数と呼ばれる。符号化コストは、式によって近似的に、または、前に符号化された三次元点によって正確に、決定するために用いられる客観的な値である。
 三次元データ符号化装置は、図118に示すように、BPPレート(bits per point frequency)に基づいて、または、別の用語では毎秒符号化/復号される三次元点数のコストに基づいて、複数の三次元点をインデックスを使用して分類(グループ化)し、その符号化コストに基づいて異なるサブ階層QPを適用することで、BPPを制御してもよい。この方法は、PCC符号化のビットレートを制御するのに適している。
 この方法は、フレームベースの三次元点群の符号化でも一緒に動作するため、サブ階層への分類でビットレートまたはバッファステータスが役割を果たす。バッファが閾値に近い場合、三次元点の符号化コストに加えて、高いDeltaQP値により分類(グループ化)することが好ましい。
 第7の例では、上記の全ての例と同様に、サブ階層の数(グループ数)は、対応するDeltaQP値で定義される必要がある。例えば、図115に示すシンタックスでは、サブ階層の数は、属性情報のヘッダまたはSPSにおいて定義される。
 図119は、属性情報の符号化に適用されるQP値が、サブ階層毎に設定されていることを示す図である。図119の(a)は、サブ階層毎にQP値を設定する方法を、RAHTの階層構造に適用した場合を示し、(b)は、LoDの階層構造に適用した場合を示す。
 第7の例で説明したインデックスを使用する方法は、PCCのレート歪みRDOQ(Rate-distortion Optimized quantization)法と組み合わせて使用することもでき、歪みとビットコストとの最適な組み合わせに基づいている。
 RDOQは、さまざまな、サブ階層におけるDeltaQPの設定を使用して、各三次元点群の属性情報に再帰的に実装することができる。各サブ階層に設定されるDeltaQPは、処理時間を短縮するために、属性情報のヘッダまたはSPSにおいて最初に(予め)設定することができる。SPSに設定される場合、全てにおいて共通する。RDOQは、これらのDeltaQPのセットを再帰的に実行するだけで、残差のビットストリームのシンタックスにおける特定のサブ階層のインデックスを使用することで、効率よく符号化される。
 図120は、三次元点群をモートンコードを用いてサブ階層に分類する第8の例を示す図である。図121は、第8の例における属性情報のヘッダのシンタックスの例を示す。
 本実施の形態において、第5の例および第6の例では、三次元点のモートンコードを用いて三次元点群を複数のサブ階層(グループ)にグルーピングし、各サブ階層(各グループ)に対してAdelta_QPを設定できるような方法を説明したが、必ずしもこれに限らない。例えば、三次元点の位置情報(x,y,z)を用いて、三次元点群をグルーピングし、各グループに対してAdelta_QPを設定するようにしてもよい。
 具体的には、グループAについて、中心座標cA、半径rAおよびADelta_QP_Aを定義し、グループBについて、中心座標cB、半径rBおよびADelta_QP_Bを定義する。同様に、他のグループがある場合についても、各グループについて、中心座標、半径およびADelta_QPを定義する。そして、属性情報のヘッダに、各グループにおいて定義した中心座標、半径およびADelta_QPと、総グループ数等を付加する。
 そして、三次元データ符号化装置は、処理対象の三次元点の位置座標が、グループA(中心座標cAかつ半径rAの球体)に含まれる場合は、ADelta_QP_Aを適用し、グループB(中心cBかつ半径rBの球体)に含まれる場合は、ADelta_QP_Bを適用してもよい。また、三次元データ符号化装置は、処理対象の三次元点がグループAおよびグループBの両方の球体に含まれる場合、処理対象の三次元点と各グループの中心座標cAおよびcBまでの距離を算出し、距離が近い方のADelta_QPを適用してもよい。
 これにより、三次元空間において距離が近い三次元点に対し、値が近いADelta_QPを適用することができるため、符号化または復号後の三次元点の主観画質を領域に応じて制御することが可能となる。
 また、三次元データ符号化装置は、例えば、あるオブジェクトの主観画質を向上したい場合、そのオブジェクトを構成する三次元点の中心座標をグループ101の中心座標、そのオブジェクトの大きさの半分を半径とし、グループ101のADelta_QPを例えば負の値にしてもよい。これにより、グループ101に属する(グループ101の球体内に含まれる)三次元点の属性符号化の量子化ステップ値を小さくすることができ、結果、あるオブジェクトの主観画質を向上することができる。
 なお、図120では、三次元点群を分類する三次元空間のグループ101、102が示されている。グループ101は、中心点O1から半径R1の球体の空間に含まれる三次元点121を含む。グループ102は、中心点O2から半径R2の球体の空間に含まれる三次元点122を含む。グループ101に属する三次元点の符号化には、グループ101に設定されているADelta_QP_Oが適用される。グループ102に属する三次元点の符号化には、グループ102に設定されているADelta_QP_Pが適用される。各グループを規定するための基準となる点である中心点O1および中心点O2は、それぞれ、三軸の座標値を用いて表される。
 なお、グループ101およびグループ102の両方に含まれる三次元点123が存在していてもよい。三次元点123の符号化には、グループ101に設定されているADelta_QP_Oと、グループ102に設定されているADelta_QP_Pとの加算値または平均値が適用されてもよい。これにより、より細かなQP値の制御が可能となる。また、各三次元点は複数のグループに属しても構わない。その場合、処理対象の三次元点が属する全てのグループのADelta_QPの加算値を、処理対象の三次元点のADelta_QP値としてもよい。これにより、三次元空間のある領域のQP値をより柔軟に制御することができる。
 なお、グループ101のADelta_QP_Oを例えば負の値に設定し、QP値を下げてもよい。これにより、グループ101に属する三次元点の属性情報の符号化による劣化を抑えることができる。
 また、逆にグループOのADelta_QP_Oを例えば正の値に設定し、QP値を上げてもよい。これにより、グループ101に属する三次元点の属性情報の符号量を削減することができる。
 なお、グループを定義するための三次元空間として球体を用いる例を示したが、必ずしもこれに限らず、楕円体や立方体を用いてグループを定義しても構わない。この場合は、それぞれの形状を定義するパラメータをヘッダや制御情報に付加してもよい。
 なお、図121において、num_groupは、グループの総数を示す。center_x, center_y, center_zは、各グループの中心座標を示す。radiusは、各グループの半径を示す。グループとして楕円体や立方体を用いる場合は、それらを表すためのパラメータがヘッダなどに付加されてもよい。例えば、立方体または直方体を用いる場合は、基準点の座標と、基準点からの幅、奥行および高さとを表すためのパラメータがヘッダなどに付加されてもよい。また、グループを定義するための三次元空間の形状として球体や楕円体など、複数の形状を用いる場合は、当該三次元空間がどの形状かを示す情報がヘッダに付加されてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図122に示す処理を行う。三次元データ符号化装置は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し(S8501)、前記複数の係数値の各々を量子化することで複数の量子化値を生成し(S8502)、前記複数の量子化値を含むビットストリームを生成する(S8503)。前記複数の係数値は、複数の階層のいずれかに属する。前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられている。前記量子化(S8502)では、前記複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する。これによれば、当該三次元データ符号化方法は、階層毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。
 例えば、前記一の階層は、前記予め定められた数の階層のうちの最後の階層である。
 例えば、前記量子化(S8502)では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられない。
 例えば、前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含む。このため、符号化効率を向上できる。
 なお、ステップS8501、S8502、S8503は、それぞれ、実施の形態9の各処理に対応する。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 本開示の一態様に係る三次元データ復号方法は、図123に示す処理を行う。三次元データ復号装置は、ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し(S8511)、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する(S8512)。前記複数の量子化値は、複数の階層のいずれかに属する。前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられている。前記逆量子化(S8511)では、前記複数の量子化値の各々を、(i)当該量子化値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて逆量子化し、(ii)当該量子化値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて逆量子化する。これによれば、当該三次元データ復号方法は、階層毎に量子化パラメータを切り替えることができるので、適切に復号を行える。
 例えば、前記一の階層は、前記予め定められた数の階層のうちの最後の階層である。
 例えば、前記逆量子化では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられない。
 例えば、前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含む。このため、符号化効率が向上されたビットストリームを適切に復号できる。
 なお、ステップS8511、S8512は、それぞれ、実施の形態9の各処理に対応する。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本開示の他の一態様に係る三次元データ符号化方法は、図122を用いて説明したステップS8501、S8502、S8503について、下記のように処理してもよい。他の一態様に係る三次元データ符号化方法は、点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し(S8501)、前記複数の係数値の各々を量子化することで複数の量子化値を生成し(S8502)、前記複数の量子化値を含むビットストリームを生成する(S8503)。前記複数の係数値のそれぞれは、複数の三次元空間のうち、当該係数値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属する。前記量子化(S8502)では、前記複数の係数値の各々を、当該係数値が属するグループ用の量子化パラメータを用いて量子化する。これによれば、当該三次元データ符号化方法は、グループ毎に量子化パラメータを切り替えることができるので、適切に符号化を行える。
 例えば、前記ビットストリームは、前記複数のグループのそれぞれについて、当該グループに対応する三次元空間の基準点と、当該グループに対応する三次元空間のサイズとを示す空間情報を含む。
 例えば、前記ビットストリームは、前記空間情報および前記空間情報で示される三次元空間のグループ用の量子化パラメータとが含まれるか否かを示すフラグを含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本開示の他の一態様に係る三次元データ復号方法は、図123を用いて説明したステップS8511、S8512について、下記のように処理してもよい。ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し(S8511)、前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出する(S8512)。前記複数の量子化値は、複数の三次元空間のうち、当該量子化値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属する。前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられている。前記逆量子化では、前記複数の量子化値の各々を、当該量子化値が属する階層用の量子化パラメータを用いて逆量子化する。
 例えば、前記ビットストリームは、前記複数のグループのそれぞれについて、当該グループに対応する三次元空間の基準点と、当該グループに対応する三次元空間のサイズとを示す空間情報を含む。
 例えば、前記ビットストリームは、前記空間情報および前記空間情報で示される三次元空間のグループ用の量子化パラメータとが含まれるか否かを示すフラグを含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
 本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
 600 自車両
 601 周辺車両
 602、605 センサ検知範囲
 603、606 領域
 604 オクルージョン領域
 801 車両
 802 空間
 901 サーバ
 902、902A、902B、902C クライアント装置
 1011、1111 データ受信部
 1012、1020、1112、1120 通信部
 1013、1113 受信制御部
 1014、1019、1114、1119 フォーマット変換部
 1015 センサ
 1016、1116 三次元データ作成部
 1017 三次元画像処理部
 1018、1118 三次元データ蓄積部
 1021、1121 送信制御部
 1022、1122 データ送信部
 1031、1032、1135 三次元マップ
 1033、1037、1132 センサ情報
 1034、1035、1134 三次元データ
 1117 三次元データ合成部
 1201 三次元マップ圧縮/復号処理部
 1202 センサ情報圧縮/復号処理部
 1211 三次元マップ復号処理部
 1212 センサ情報圧縮処理部
 2001 サーバ
 2002、2002A、2002B クライアント装置
 2011 センサ情報取得部
 2012 記憶部
 2013 データ送信可否判定部
 2021、2021A、2021B 端末
 2022、2022A、2022B 通信装置
 2023 ネットワーク
 2024 データ収集サーバ
 2025 地図サーバ
 2026 クライアント装置
 3000 三次元データ符号化装置
 3001 位置情報符号化部
 3002 属性情報再割り当て部
 3003 属性情報符号化部
 3010 三次元データ復号装置
 3011 位置情報復号部
 3012 属性情報復号部
 6600 属性情報符号化部
 6601 ソート部
 6602 Haar変換部
 6603 量子化部
 6604、6612 逆量子化部
 6605、6613 逆Haar変換部
 6606、6614 メモリ
 6607 算術符号化部
 6610 属性情報復号部
 6611 算術復号部
 7001 減算部
 7002 変換部
 7003 変換行列保持部
 7004 量子化部
 7005 量子化制御部
 7006 エントロピー符号化部
 7011 エントロピー復号部
 7012 逆量子化部
 7013 量子化制御部
 7014 逆変換部
 7015 変換行列保持部
 7016 加算部
 7020 三次元データ符号化装置
 7021 分割部
 7022 位置情報符号化部
 7023 属性情報符号化部
 7024 付加情報符号化部
 7025 多重化部
 7031 タイル分割部
 7032 スライス分割部
 7035 変換部
 7036 量子化部
 7037 エントロピー符号化部
 7040 三次元データ復号装置
 7041 逆多重化部
 7042 位置情報復号部
 7043 属性情報復号部
 7044 付加情報復号部
 7045 結合部
 7051 エントロピー復号部
 7052 逆量子化部
 7053 逆変換部
 7061、7072 LoD設定部
 7062、7073 探索部
 7063、7074 予測部
 7064 減算部
 7065、7083 量子化部
 7066、7075、7084、7092 逆量子化部
 7067、7076 再構成部
 7068、7077、7086、7094 メモリ
 7069、7087 算術符号化部
 7070、7088 ΔQP算出部
 7071、7091 算術復号部
 7081 ソート部
 7082 Haar変換部
 7085、7093 逆Haar変換部
 7401、7413、74421 点群再配列部
 7402、7422、74422、74622 変換部
 7403、7423、74423、74623 量子化部
 7404、7424、74424、74624 エントロピー符号化部
 7411、7431、74531、74731 エントロピー復号部
 7412、7432、74532、74732 逆量子化部
 7421、7434 点群属性入れ替え部
 7433、74534、74733 逆変換部
 7440、7460 三次元データ符号化装置
 7441、7461 位置情報符号化部
 7442、7462 属性情報符号化部
 7443、7563 付加情報符号化部
 7444、7464 多重化部
 7450、7470 三次元データ復号装置
 7451、7471 逆多重化部
 7452、7472 位置情報復号部
 7453、7473 属性情報復号部
 7454、7474 付加情報復号部
 74621 再配列テーブル生成部
 744211 モートン配列部
 744212 再配列部
 7800 属性情報符号化部
 7801 ソート部
 7802 Haar変換部
 7803 量子化部
 7804 逆量子化部
 7805 逆Haar変換部
 7806 メモリ
 7807 算術符号化部
 7810 属性情報復号部
 7811 算術復号部
 7812 逆量子化部
 7813 逆Haar変換部
 7814 メモリ

Claims (14)

  1.  点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
     前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
     前記複数の量子化値を含むビットストリームを生成し、
     前記複数の係数値は、複数の階層のいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記量子化では、前記複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する
     三次元データ符号化方法。
  2.  前記一の階層は、前記予め定められた数の階層のうちの最後の階層である
     請求項1に記載の三次元データ符号化方法。
  3.  前記量子化では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられない
     請求項1または2に記載の三次元データ符号化方法。
  4.  前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含む
     請求項1から3のいずれか1項に記載の三次元データ符号化方法。
  5.  点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
     前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
     前記複数の量子化値を含むビットストリームを生成し、
     前記複数の係数値のそれぞれは、複数の三次元空間のうち、当該係数値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、
     前記量子化では、前記複数の係数値の各々を、当該係数値が属するグループ用の量子化パラメータを用いて量子化する
     三次元データ符号化方法。
  6.  ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、
     前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、
     前記複数の量子化値は、複数の階層のいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記逆量子化では、前記複数の量子化値の各々を、(i)当該量子化値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて逆量子化し、(ii)当該量子化値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて逆量子化する
     三次元データ復号方法。
  7.  前記一の階層は、前記予め定められた数の階層のうちの最後の階層である
     請求項6に記載の三次元データ復号方法。
  8.  前記逆量子化では、前記複数の階層の数が前記予め定められた数よりも少ない場合、前記複数の階層に対応していない前記予め定められた数の階層に割り当てられた量子化パラメータは用いられない
     請求項6または7に記載の三次元データ復号方法。
  9.  前記ビットストリームは、基準量子化パラメータを示す第1情報と、前記基準量子化パラメータから前記複数の階層用の複数の量子化パラメータを算出するための複数の第2情報とを含む
     請求項6から8のいずれか1項に記載の三次元データ復号方法。
  10.  ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、
     前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、
     前記複数の量子化値は、複数の三次元空間のうち、当該量子化値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記逆量子化では、前記複数の量子化値の各々を、当該量子化値が属する階層用の量子化パラメータを用いて逆量子化する
     三次元データ復号方法。
  11.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
     前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
     前記複数の量子化値を含むビットストリームを生成し、
     前記複数の係数値は、複数の階層のいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記量子化では、前記複数の係数値の各々を、(i)当該係数値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて量子化し、(ii)当該係数値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて量子化する
     三次元データ符号化装置。
  12.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     点群データに含まれる複数の三次元点の複数の属性情報から複数の係数値を算出し、
     前記複数の係数値の各々を量子化することで複数の量子化値を生成し、
     前記複数の量子化値を含むビットストリームを生成し、
     前記複数の係数値のそれぞれは、複数の三次元空間のうち、当該係数値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、
     前記量子化では、前記複数の係数値の各々を、当該係数値が属する階層用の量子化パラメータを用いて量子化する
     三次元データ符号化装置。
  13.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、
     前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、
     前記複数の量子化値は、複数の階層のいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記逆量子化では、前記複数の量子化値の各々を、(i)当該量子化値が属する階層に量子化パラメータが割り当てられている場合、当該量子化パラメータを用いて逆量子化し、(ii)当該量子化値が属する階層に前記量子化パラメータが割り当てられていない場合、前記予め定められた数の階層のうちの一の階層に割り当てられた量子化パラメータを用いて逆量子化する
     三次元データ復号装置。
  14.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに含まれる複数の量子化値の各々を逆量子化することで複数の係数値を生成し、
     前記複数の係数値から、点群データに含まれる複数の三次元点の複数の属性情報を算出し、
     前記複数の量子化値は、複数の三次元空間のうち、当該量子化値の算出の基になった属性情報を含む三次元点が属する三次元空間毎に分類されることで、複数のグループのいずれかに属し、
     前記複数の階層における予め定められた数の階層のそれぞれには、当該階層用の量子化パラメータが割り当てられており、
     前記逆量子化では、前記複数の量子化値の各々を、当該量子化値が属する階層用の量子化パラメータを用いて逆量子化する
     三次元データ復号装置。
PCT/JP2020/017861 2019-04-25 2020-04-24 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 WO2020218593A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080030034.9A CN113728648A (zh) 2019-04-25 2020-04-24 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP2021516314A JPWO2020218593A1 (ja) 2019-04-25 2020-04-24
US17/504,809 US20220036595A1 (en) 2019-04-25 2021-10-19 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
US201962838678P 2019-04-25 2019-04-25
US62/838,678 2019-04-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/504,809 Continuation US20220036595A1 (en) 2019-04-25 2021-10-19 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
WO2020218593A1 true WO2020218593A1 (ja) 2020-10-29

Family

ID=72940766

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/017861 WO2020218593A1 (ja) 2019-04-25 2020-04-24 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Country Status (4)

Country Link
US (1) US20220036595A1 (ja)
JP (1) JPWO2020218593A1 (ja)
CN (1) CN113728648A (ja)
WO (1) WO2020218593A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024171797A1 (ja) * 2023-02-17 2024-08-22 ソニーグループ株式会社 情報処理装置および方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7480791B2 (ja) * 2019-06-27 2024-05-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド V-pcc用の仮想参照デコーダ
CN113826385A (zh) * 2019-07-03 2021-12-21 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器及计算机存储介质
US11747164B2 (en) * 2021-01-13 2023-09-05 GM Global Technology Operations LLC Methods for multi-dimensional lane matching for autonomous vehicle localization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006108792A (ja) * 2004-09-30 2006-04-20 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan 画像信号の符号化方法および装置
WO2017104115A1 (ja) * 2015-12-14 2017-06-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
JP2018078503A (ja) * 2016-11-11 2018-05-17 日本電信電話株式会社 データ符号化方法、データ符号化装置及びデータ符号化プログラム
WO2019012975A1 (ja) * 2017-07-10 2019-01-17 ソニー株式会社 情報処理装置および方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106190A1 (en) * 2012-01-09 2013-07-18 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for single and multiple layered video coding systems
US10496336B2 (en) * 2016-11-17 2019-12-03 Google Llc K-D tree encoding for point clouds using deviations
US10553015B2 (en) * 2017-03-31 2020-02-04 Google Llc Implicit view-dependent quantization
US11082717B2 (en) * 2017-07-05 2021-08-03 Onesubsea Ip Uk Limited Data compression for communication in subsea oil and gas systems
EP3716218A4 (en) * 2017-11-22 2021-03-31 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
WO2019235366A1 (ja) * 2018-06-06 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020138353A1 (ja) * 2018-12-26 2020-07-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113228107B (zh) * 2018-12-28 2024-08-27 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN113366536A (zh) * 2019-02-05 2021-09-07 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
WO2020162542A1 (ja) * 2019-02-06 2020-08-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、および、三次元データ復号装置
AU2020227306A1 (en) * 2019-02-27 2021-10-07 Ancestry.Com Dna, Llc Graphical user interface displaying relatedness based on shared DNA
US11848073B2 (en) * 2019-04-03 2023-12-19 University Of Central Florida Research Foundation, Inc. Methods and system for efficient indexing for genetic genealogical discovery in large genotype databases

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006108792A (ja) * 2004-09-30 2006-04-20 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan 画像信号の符号化方法および装置
WO2017104115A1 (ja) * 2015-12-14 2017-06-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
JP2018078503A (ja) * 2016-11-11 2018-05-17 日本電信電話株式会社 データ符号化方法、データ符号化装置及びデータ符号化プログラム
WO2019012975A1 (ja) * 2017-07-10 2019-01-17 ソニー株式会社 情報処理装置および方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024171797A1 (ja) * 2023-02-17 2024-08-22 ソニーグループ株式会社 情報処理装置および方法

Also Published As

Publication number Publication date
JPWO2020218593A1 (ja) 2020-10-29
CN113728648A (zh) 2021-11-30
US20220036595A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
WO2020162495A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021002444A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7167147B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020213735A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7245244B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020218593A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021060524A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7389028B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JPWO2019240286A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7167144B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021066160A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7478668B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021054460A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7410879B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021141117A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020075862A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020138352A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021002443A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021187565A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020196680A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020184444A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7453212B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Legal Events

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

Ref document number: 20796365

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021516314

Country of ref document: JP

Kind code of ref document: A

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 1205A DATED 02/03/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20796365

Country of ref document: EP

Kind code of ref document: A1