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

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

Info

Publication number
WO2022163805A1
WO2022163805A1 PCT/JP2022/003277 JP2022003277W WO2022163805A1 WO 2022163805 A1 WO2022163805 A1 WO 2022163805A1 JP 2022003277 W JP2022003277 W JP 2022003277W WO 2022163805 A1 WO2022163805 A1 WO 2022163805A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
dimensional
prediction
data
information
Prior art date
Application number
PCT/JP2022/003277
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 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Publication of WO2022163805A1 publication Critical patent/WO2022163805A1/ja
Priority to US18/225,296 priority Critical patent/US20240005564A1/en

Links

Images

Classifications

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

Definitions

  • the present disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, and a three-dimensional data decoding device.
  • 3D data will spread in a wide range of fields, such as computer vision, map information, monitoring, infrastructure inspection, or video distribution for autonomous operation of automobiles or robots.
  • Three-dimensional data is acquired in various ways, such as range sensors such as range finders, stereo cameras, or a combination of multiple monocular cameras.
  • a representation method As one of the three-dimensional data representation methods, there is a representation method called a point cloud that expresses the shape of a three-dimensional structure using a point group in a three-dimensional space.
  • a point cloud stores the position and color of the point cloud.
  • Point clouds are expected to become mainstream as a method of 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 encoding, as with 2D moving images (one example is 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 Japanese Patent Document 1
  • An object of the present disclosure is to provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device capable of improving encoding efficiency.
  • a three-dimensional data encoding method specifies a first three-dimensional point whose position is expressed in a first polar coordinate system based on a first position, and a second position To calculate an estimate of a second distance of an unencoded second three-dimensional point from said second position, the position being expressed in a second polar coordinate system referenced to: (i) said first a distance between a position and said second position, (ii) a first line connecting said first position and said second position, and a second line connecting said first position and said first three-dimensional point; and (iii) a first distance between the first three-dimensional point and the first location.
  • a three-dimensional data decoding method identifies a first three-dimensional point whose position is expressed in a first polar coordinate system with a first position as a reference, and has been decoded, and a second position as a reference.
  • a predicted value of a second distance of an undecoded second three-dimensional point from the second position (i) the first position and the (ii) a distance between the first position and the second position, and a second line connecting the first position and the first three-dimensional point; Identify one angle and (iii) a first distance from the first position of the first three-dimensional point in the first polar coordinate system.
  • the present disclosure can provide a 3D data encoding method, a 3D data decoding method, a 3D data encoding device, or a 3D data decoding device that can improve encoding efficiency.
  • FIG. 1 is a diagram showing the configuration of a three-dimensional data encoding/decoding system according to Embodiment 1.
  • FIG. 2 is a diagram showing a configuration example of point cloud data according to the first embodiment.
  • FIG. 3 is a diagram showing a configuration example of a data file describing point cloud data information according to the first embodiment.
  • FIG. 4 is a diagram showing types of point cloud data according to the first embodiment.
  • 5 is a diagram showing a configuration of a first encoding unit according to Embodiment 1.
  • FIG. 6 is a block diagram of a first encoding unit according to Embodiment 1.
  • FIG. 7 is a diagram showing a configuration of a first decoding unit according to Embodiment 1.
  • FIG. 1 is a diagram showing the configuration of a three-dimensional data encoding/decoding system according to Embodiment 1.
  • FIG. 2 is a diagram showing a configuration example of point cloud data according to the first embodiment.
  • FIG. 3 is a diagram showing a
  • FIG. 8 is a block diagram of a first decoding unit according to Embodiment 1.
  • FIG. 9 is a block diagram of a three-dimensional data encoding device according to Embodiment 1.
  • FIG. 10 is a diagram showing an example of position information according to Embodiment 1.
  • FIG. 11 is a diagram showing an example of an octree representation of position information according to Embodiment 1.
  • FIG. 12 is a block diagram of a three-dimensional data decoding device according to Embodiment 1.
  • FIG. 13 is a block diagram of an attribute information encoding unit according to Embodiment 1.
  • FIG. 14 is a block diagram of an attribute information decoding unit according to Embodiment 1.
  • FIG. 15 is a block diagram showing a configuration of an attribute information encoding unit according to Embodiment 1.
  • FIG. 16 is a block diagram of an attribute information encoding unit according to Embodiment 1.
  • FIG. 17 is a block diagram showing a configuration of an attribute information decoding unit according to Embodiment 1.
  • FIG. 18 is a block diagram of an attribute information decoding unit according to Embodiment 1.
  • FIG. 19 is a diagram showing a configuration of a second encoding section according to Embodiment 1.
  • FIG. 20 is a block diagram of a second encoding unit according to Embodiment 1.
  • FIG. 21 is a diagram showing a configuration of a second decoding unit according to Embodiment 1.
  • FIG. 22 is a block diagram of a second decoding unit according to Embodiment 1.
  • FIG. 23 is a diagram showing a protocol stack related to PCC-encoded data according to Embodiment 1.
  • FIG. 24 is a diagram showing configurations of an encoding unit and a multiplexing unit according to Embodiment 2.
  • FIG. 25 is a diagram showing a configuration example of encoded data according to Embodiment 2.
  • FIG. 26 is a diagram illustrating a configuration example of encoded data and a NAL unit according to Embodiment 2.
  • FIG. 27 is a diagram illustrating an example of semantics of pcc_nal_unit_type according to the second embodiment;
  • FIG. 28 is a diagram showing an example of a prediction tree used in the 3D data encoding method according to Embodiment 3.
  • FIG. 29 is a flowchart showing an example of a three-dimensional data encoding method according to Embodiment 3.
  • FIG. 30 is a flowchart showing an example of a three-dimensional data decoding method according to Embodiment 3.
  • FIG. 31 is a diagram for explaining a prediction tree generation method according to Embodiment 3.
  • FIG. 32 is a diagram for explaining a first example of a prediction mode according to Embodiment 3.
  • FIG. 33 is a diagram showing a second example of a table showing predicted values calculated in each prediction mode, according to the third embodiment.
  • FIG. 34 is a diagram showing a specific example of the second example of the table showing predicted values calculated in each prediction mode, according to the third embodiment.
  • FIG. 35 is a diagram illustrating a third example of a table showing predicted values calculated in each prediction mode, according to Embodiment 3.
  • FIG. 36 is a diagram showing an example of syntax of a header of position information according to Embodiment 3.
  • FIG. 37 is a diagram showing an example of syntax of position information according to Embodiment 3.
  • FIG. 38 is a diagram showing another example of syntax of position information according to Embodiment 3.
  • FIG. 39 is a block diagram of a three-dimensional data encoding device according to Embodiment 4.
  • FIG. 40 is a block diagram of a three-dimensional data decoding device according to Embodiment 4.
  • FIG. 41 is a block diagram of a three-dimensional data encoding device according to Embodiment 4.
  • FIG. 40 is a block diagram of a three-dimensional data encoding device according to Embodiment 4.
  • FIG. 42 is a block diagram of a three-dimensional data decoding device according to Embodiment 4.
  • FIG. 43 is a diagram illustrating an example of inter prediction according to Embodiment 4.
  • FIG. 44 is a diagram showing a syntax example of SPS according to Embodiment 4.
  • FIG. 45 is a diagram showing an example of GPS syntax according to the fourth embodiment.
  • 46 is a flowchart of three-dimensional data encoding processing according to Embodiment 4.
  • FIG. 47 is a flowchart of three-dimensional data decoding processing according to Embodiment 4.
  • FIG. 48 is a block diagram of a three-dimensional data encoding device according to Embodiment 5.
  • FIG. 49 is a block diagram of a three-dimensional data decoding device according to Embodiment 5.
  • FIG. 49 is a block diagram of a three-dimensional data decoding device according to Embodiment 5.
  • FIG. 50 is a flowchart showing an example of a procedure for encoding each 3D point of a prediction tree according to Embodiment 5.
  • FIG. 51 is a flowchart illustrating an example of a procedure for decoding each 3D point of a prediction tree according to Embodiment 5.
  • FIG. 52 is a block diagram of a three-dimensional data encoding device according to a modification of Embodiment 5.
  • FIG. 53 is a block diagram of a three-dimensional data decoding device according to a modification of Embodiment 5.
  • FIG. 54 is an example of GPS syntax according to Embodiment 5.
  • FIG. 55 is an example of syntax of each three-dimensional point according to Embodiment 5.
  • FIG. 56 is a flow chart showing 3D data encoding processing according to Embodiment 5.
  • FIG. 51 is a flowchart illustrating an example of a procedure for decoding each 3D point of a prediction tree according to Embodiment 5.
  • FIG. 52 is a block diagram of a
  • FIG. 57 is a flowchart showing 3D data decoding processing according to the fifth embodiment.
  • 58 is a flowchart showing coordinate system switching processing in the encoding processing according to Embodiment 5.
  • FIG. FIG. 59 is a flowchart showing coordinate system switching processing in the decoding processing according to the fifth embodiment.
  • 60 is a flowchart showing another example of 3D data encoding processing according to Embodiment 5.
  • FIG. 61 is a flowchart showing another example of the 3D data decoding process according to Embodiment 5.
  • FIG. FIG. 62 illustrates a first example of processing for determining a 3D point group to be referenced when the 3D data encoding device according to Embodiment 6 encodes a 3D point group to be encoded.
  • FIG. 63 illustrates a second example of processing for determining a 3D point group to be referenced when the 3D data encoding apparatus according to Embodiment 6 encodes a 3D point group to be encoded.
  • FIG. 64 illustrates a third example of processing for determining a 3D point group to be referenced when the 3D data encoding device according to Embodiment 6 encodes a 3D point group to be encoded.
  • FIG. 65 is a flowchart showing a processing procedure for determining a 3D point group to be referred to when the 3D data encoding apparatus according to Embodiment 6 encodes the 3D point group to be encoded.
  • FIG. 66 is a diagram showing a syntax example of motion compensation information according to Embodiment 6.
  • FIG. 67 is a flowchart showing a processing procedure of the 3D data encoding device according to Embodiment 6.
  • FIG. 68 is a flow chart showing a processing procedure of the three-dimensional data decoding device according to Embodiment 6.
  • FIG. 69 is a diagram for explaining a reference point group reference method in inter prediction according to the present embodiment according to the seventh embodiment.
  • 70 is a diagram showing an example of syntax of GPS (geometry parameter set) according to Embodiment 7.
  • FIG. 71 is a diagram showing an example of syntax of a prediction tree according to Embodiment 7.
  • FIG. 72 is a diagram showing an example of syntax of motion compensation information of a prediction tree according to Embodiment 7.
  • FIG. 73 is a diagram showing an example of syntax of motion compensation information in polar encoding according to Embodiment 7.
  • FIG. 74 is a diagram showing an example of syntax of prediction tree coding range information according to Embodiment 7.
  • FIG. 75 is a flowchart of three-dimensional data encoding processing according to Embodiment 7.
  • FIG. 76 is a flowchart of three-dimensional data decoding processing according to Embodiment 7.
  • FIG. 77 is a diagram for explaining a method of encoding or decoding a three-dimensional point represented by polar coordinates using inter prediction according to Embodiment 8.
  • FIG. 78 is a diagram for explaining a method of encoding or decoding a three-dimensional point represented by polar coordinates using inter prediction according to Embodiment 8.
  • FIG. 79 is a diagram for explaining a method of encoding or decoding a three-dimensional point represented by polar coordinates using inter prediction according to Embodiment 8.
  • FIG. 80 is a diagram for explaining a method of encoding or decoding a 3D point represented by polar coordinates using inter prediction according to Embodiment 8.
  • FIG. 81 is a flowchart illustrating an example of a processing procedure of an inter prediction method according to Embodiment 8.
  • FIG. 82 is a diagram for explaining a first example of switching the prediction value derivation method according to the value of the horizontal angle according to the eighth embodiment.
  • FIG. 83 is a diagram showing a formula for deriving a predicted value d pred determined for each of the four directions defined by the horizontal angle ⁇ cur according to the eighth embodiment.
  • FIG. 84 is a diagram for explaining a second example of switching the prediction value derivation method according to the value of the horizontal angle according to the eighth embodiment.
  • FIG. 85 is a diagram showing a formula for deriving a predicted value d pred determined for each of eight directions defined by the horizontal angle ⁇ cur according to the eighth embodiment.
  • FIG. 86 is a diagram for explaining a method of calculating predicted values when the index indicating the method of deriving predicted values in eight directions according to the eighth embodiment is 0.
  • FIG. FIG. 87 is a diagram for explaining a method of calculating predicted values when the index indicating the method of deriving predicted values in eight directions according to the eighth embodiment is 2.
  • FIG. FIG. 88 is a diagram for explaining a method of calculating predicted values when the index indicating the method of deriving predicted values in eight directions according to the eighth embodiment is 1.
  • FIG. 89 is a flowchart of three-dimensional data encoding processing according to Embodiment 8.
  • FIG. 90 is a flowchart of three-dimensional data decoding processing according to Embodiment 8.
  • FIG. 91 is a block diagram of a three-dimensional data creation device according to Embodiment 9.
  • FIG. 92 is a flowchart of a three-dimensional data creation method according to Embodiment 9.
  • FIG. 93 is a diagram showing the configuration of a system according to Embodiment 9.
  • FIG. 94 is a block diagram of a client device according to Embodiment 9.
  • FIG. 95 is a block diagram of a server according to Embodiment 9.
  • FIG. 96 is a flowchart of three-dimensional data creation processing by the client device according to Embodiment 9.
  • FIG. 97 is a flowchart of sensor information transmission processing by the client device according to Embodiment 9.
  • FIG. 98 is a flowchart of three-dimensional data creation processing by the server according to Embodiment 9.
  • FIG. 99 is a flowchart of 3D map transmission processing by the server according to Embodiment 9.
  • FIG. 100 is a diagram showing a configuration of a modification of the system according to Embodiment 9.
  • FIG. 101 is a diagram illustrating configurations of a server and a client device according to Embodiment 9.
  • FIG. 102 is a diagram illustrating configurations of a server and a client device according to Embodiment 9.
  • FIG. 103 is a flowchart of processing by a client device according to Embodiment 9.
  • FIG. 104 is a diagram showing a configuration of a sensor information collection system according to Embodiment 9.
  • FIG. 105 is a diagram illustrating an example of a system according to Embodiment 9.
  • FIG. 100 is a diagram showing a configuration of a modification of the system according to Embodiment 9.
  • FIG. 101 is a diagram illustrating configurations of a server and a client device according to Embodiment 9.
  • FIG. 102 is
  • FIG. 106 is a diagram showing a modification of the system according to Embodiment 9.
  • FIG. 107 is a flowchart illustrating an example of application processing according to Embodiment 9.
  • FIG. 108 is a diagram showing sensor ranges of various sensors according to Embodiment 9.
  • FIG. 109 is a diagram showing a configuration example of an automatic driving system according to Embodiment 9.
  • FIG. 110 is a diagram showing a configuration example of a bitstream according to Embodiment 9.
  • FIG. 111 is a flowchart of point group selection processing according to Embodiment 9.
  • FIG. 112 is a diagram illustrating an example of a screen for point cloud selection processing according to Embodiment 9.
  • FIG. 113 is a diagram illustrating an example of a screen for point group selection processing according to Embodiment 9.
  • FIG. 114 is a diagram illustrating an example of a screen for point cloud selection processing according to Embodiment 9.
  • FIG. 114 is a diagram illustrating an example of
  • a three-dimensional data encoding method specifies a first three-dimensional point whose position is expressed in a first polar coordinate system based on a first position, and a second position To calculate an estimate of a second distance of an unencoded second three-dimensional point from said second position, the position being expressed in a second polar coordinate system referenced to: (i) said first a distance between a position and said second position, (ii) a first line connecting said first position and said second position, and a second line connecting said first position and said first three-dimensional point; and (iii) a first distance between the first three-dimensional point and the first location.
  • the first three-dimensional point and the second three-dimensional point are expressed in different polar coordinate systems. Therefore, when predictively encoding the second 3D point to be encoded using the first 3D point, the 3D data encoding apparatus converts the first 3D point to, for example, the second polar coordinate system.
  • the projection identifies the distance between the first position and the second position, the first angle, and the first distance. As a result, it is possible to unify the coordinate systems of the second three-dimensional point to be encoded and the first three-dimensional point to be referred to.
  • a second 3D point to be encoded can be predictively encoded. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy, and the encoding efficiency of predictive encoding can be improved.
  • the distance between the first position and the second position (i) using the first angle and (iii) the first distance, (iv) a second angle between the first line and a third line connecting the second position and the first three-dimensional point; , and (v) a second distance between the first three-dimensional point and the second location.
  • the coordinate system of the second three-dimensional point to be encoded and the first three-dimensional point to be referred to can be unified.
  • the second 3D point to be coded can be predictively coded based on the second distance from the second position of the 3D point in the second coordinate system.
  • the distance between the first position and the second position, the first distance, and the The second angle is calculated using the first horizontal angle as the first angle, and the first horizontal angle is a horizontal angle component of the polar coordinate components representing the position of the first three-dimensional point.
  • the position is expressed in the second polar coordinate system, and the first three-dimensional point is identified based on another encoded second three-dimensional point good too.
  • the other second three-dimensional point may be a three-dimensional point used for calculating the predicted value of the second three-dimensional point in the second polar coordinate system.
  • the second three-dimensional point to be encoded Points can be predicted with high accuracy.
  • the first three-dimensional point may be identified based on an angular component of polar coordinate components representing the position of the other second three-dimensional point.
  • a first three-dimensional point that is close to the second three-dimensional point to be encoded can be selected from a plurality of first three-dimensional points. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy.
  • the first three-dimensional point is the first An angular component of a plurality of projected first three-dimensional points after being projected from a polar coordinate system onto the second polar coordinate system may be close to an angular component of the second three-dimensional point.
  • a 3D point close to the second 3D point to be encoded can be selected from the plurality of first 3D points. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy.
  • the plurality of first three-dimensional points are obtained by measuring the distance to the object in each of the plurality of first directions around the first position in the space on the reference plane
  • the plurality of second three-dimensional points are obtained by: obtained by measuring a distance to the object in each of a plurality of second directions around the second position in space on the reference plane, wherein the plurality of first three-dimensional points includes the first three-dimensional point; and each position is represented by the first polar coordinate system, the plurality of second three-dimensional points includes the second three-dimensional point, and each position is represented by the second polar coordinate system good too.
  • a first plane that faces the first position and the second position in a third direction and is perpendicular to the reference plane is a first plane that is perpendicular to the reference plane.
  • 1 determination method and prediction in predictive coding for a plurality of three-dimensional points on a second plane perpendicular to the reference plane, which is a second plane facing the first position and the second position in a fourth direction Unlike the second method of determining values, the third direction and the fourth direction are different, and some of the plurality of three-dimensional points on the first plane are included in the plurality of first three-dimensional points.
  • some of the plurality of three-dimensional points on the first plane are included in the plurality of second three-dimensional points, and some of the plurality of three-dimensional points on the second plane are included in the plurality of second
  • Some of the plurality of 3D points on the second plane that are included in one 3D point may be included in the plurality of second 3D points.
  • one or more candidate points are selected using a determination method according to each direction, one 3D point to be encoded can be predicted with higher accuracy, and the encoding efficiency of predictive encoding can be improved. can be further improved.
  • a three-dimensional data decoding method identifies a first three-dimensional point whose position is expressed in a first polar coordinate system with a first position as a reference, and has been decoded, and a second position as a reference.
  • a predicted value of a second distance of an undecoded second three-dimensional point from the second position (i) the first position and the (ii) a distance between the first position and the second position, and a second line connecting the first position and the first three-dimensional point; Identify one angle and (iii) a first distance from the first position of the first three-dimensional point in the first polar coordinate system.
  • the predicted value is calculated using a method similar to the 3D data encoding method, it is possible to correctly decode one 3D point to be decoded.
  • the distance between the first position and the second position (i) the using the first angle and (iii) the first distance, (iv) a second angle between the first line and a third line connecting the second position and the first three-dimensional point, and (v) calculating a second distance from the second position of the first three-dimensional point in the second polar coordinate system;
  • the first distance and the first horizontal angle as the first angle are used to calculate the first angle.
  • Two angles may be calculated, and the first horizontal angle may be a horizontal angle component of polar coordinate components representing the position of the first three-dimensional point.
  • the position is expressed in the second polar coordinate system, and the first three-dimensional point may be identified based on another second three-dimensional point that has been decoded. good.
  • the other second three-dimensional point may be a three-dimensional point used for calculating the predicted value of the three-dimensional point to be decoded in the second polar coordinate system.
  • the first three-dimensional point may be identified based on an angular component of polar coordinate components representing the position of the other second three-dimensional point.
  • the first three-dimensional point among a plurality of first three-dimensional points whose positions are represented in the first polar coordinate system and which includes another first three-dimensional point that has already been decoded, is the first polar coordinate
  • An angular component of a plurality of projected first three-dimensional points after being projected from the system onto the second polar coordinate system may be close to an angular component of the second three-dimensional point.
  • the plurality of first three-dimensional points are obtained by measuring the distance to the object in each of the plurality of first directions around the first position in the space on the reference plane
  • the plurality of second three-dimensional points are obtained by: obtained by measuring a distance to the object in each of a plurality of second directions around the second position in space on the reference plane, wherein the plurality of first three-dimensional points includes the first three-dimensional point; and each position is represented by the first polar coordinate system, the plurality of second three-dimensional points includes the second three-dimensional point, and each position is represented by the second polar coordinate system good too.
  • it is a first plane facing the first position and the second position in a third direction and is perpendicular to the reference plane.
  • the third direction and the fourth direction are different, and some of the plurality of three-dimensional points on the first plane are included in the plurality of first three-dimensional points, Some of the plurality of 3D points on the first plane are included in the plurality of second 3D points, and some of the plurality of 3D points on the second plane are included in the plurality of first 3D points. Some of the plurality of 3D points on the second plane that are included in the original points may be included in the plurality of second 3D points.
  • a three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to determine a position in a first polar coordinate system based on a first position. Identifying a first represented and encoded three-dimensional point, a position of which is represented in a second polar coordinate system relative to a second position, and a second unencoded three-dimensional point of said second To calculate an estimate of a second distance from a location, (i) the distance between the first location and the second location, (ii) a first distance between the first location and the second location. (iii) from the first position of the first three-dimensional point in the first polar coordinate system; a first distance of .
  • the first three-dimensional point and the second three-dimensional point are expressed in different polar coordinate systems. Therefore, when the 3D data encoding device predictively encodes the second 3D point to be encoded using the first 3D point, the 3D data encoding apparatus converts the first 3D point to, for example, the second polar coordinate system.
  • the projection identifies the distance between the first position and the second position, the first angle, and the first distance. This makes it possible to unify the coordinate systems of the second three-dimensional point to be encoded and the first three-dimensional point to be referred to.
  • a second 3D point to be encoded can be predictively encoded. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy, and the encoding efficiency of predictive encoding can be improved.
  • a three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to represent a position in a first polar coordinate system with a first position as a reference. and identifies the decoded first three-dimensional point, the position is represented in a second polar coordinate system based on the second position, and the undecoded second three-dimensional point from the second position (i) a distance between the first location and the second location; (ii) a first line connecting the first location and the second location; (iii) a first angle formed by a second line connecting the first position and the first three-dimensional point; and (iii) a first angle from the first position of the first three-dimensional point in the first polar coordinate system. Identify the distance.
  • the predicted value is calculated using a method similar to the 3D data encoding method, it is possible to correctly decode one 3D point to be decoded.
  • a three-dimensional data encoding method and a three-dimensional data encoding device for providing a function of transmitting and receiving necessary information according to the application in encoded data of a three-dimensional point cloud, and the encoding 3D data decoding method and 3D data decoding device for decoding coded data, 3D data multiplexing method for multiplexing the coded data, and 3D data transmission method for transmitting the coded data do.
  • a first encoding method and a second encoding method are being studied as encoding methods (encoding schemes) for point cloud data.
  • encoding methods encoding schemes
  • the method of storing in the format is not defined, and MUX processing (multiplexing) in the encoding unit, transmission, or storage cannot be performed as it is.
  • PCC Point Cloud Compression
  • FIG. 1 is a diagram showing a configuration example of a three-dimensional data encoding/decoding system according to this embodiment.
  • the 3D data encoding/decoding system includes a 3D data encoding system 4601, a 3D data decoding system 4602, a sensor terminal 4603, and an external connection section 4604.
  • the three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data, which is three-dimensional data.
  • the 3D data encoding system 4601 may be a 3D data encoding device implemented by a single device, or may be a system implemented by a plurality of devices. Also, the 3D data encoding device may include some of the plurality of processing units included in the 3D data encoding system 4601 .
  • the 3D data encoding system 4601 includes a point cloud data generation system 4611, a presentation unit 4612, an encoding unit 4613, a multiplexing unit 4614, an input/output unit 4615, and a control unit 4616.
  • the point cloud data generation system 4611 includes a sensor information acquisition section 4617 and a point cloud data generation section 4618 .
  • the sensor information acquisition unit 4617 acquires sensor information from the sensor terminal 4603 and outputs the sensor information to the point cloud data generation unit 4618.
  • the point cloud data generation unit 4618 generates point cloud data from the sensor information and outputs the point cloud data to the encoding unit 4613.
  • the presentation unit 4612 presents sensor information or point cloud data to the user. For example, the presentation unit 4612 displays information or an image based on sensor information or point cloud data.
  • the encoding unit 4613 encodes (compresses) the point cloud data, and outputs the obtained encoded data, the control information obtained in the encoding process, and other additional information to the multiplexing unit 4614.
  • Additional information includes, for example, sensor information.
  • the multiplexing unit 4614 generates multiplexed data by multiplexing the encoded data input from the encoding unit 4613, control information, and additional information.
  • the format of multiplexed data is, for example, a file format for storage or a packet format for transmission.
  • the input/output unit 4615 (eg, communication unit or interface) outputs the multiplexed data to the outside.
  • the multiplexed data is accumulated in an accumulation unit such as an internal memory.
  • a control unit 4616 (or an application execution unit) controls each processing unit. That is, the control unit 4616 controls encoding, multiplexing, and the like.
  • the sensor information may be input to the encoding unit 4613 or the multiplexing unit 4614. Also, the input/output unit 4615 may output the point cloud data or the encoded data as they are to the outside.
  • a transmission signal (multiplexed data) output from the 3D data encoding system 4601 is input to the 3D data decoding system 4602 via the external connection unit 4604 .
  • a three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding encoded data or multiplexed data.
  • the 3D data decoding system 4602 may be a 3D data decoding device implemented by a single device, or may be a system implemented by a plurality of devices. Also, the 3D data decoding device may include some of the plurality of processing units included in the 3D data decoding system 4602 .
  • the 3D data decoding system 4602 includes a sensor information acquisition unit 4621, an input/output unit 4622, a demultiplexing unit 4623, a decoding unit 4624, a presentation unit 4625, a user interface 4626, and a control unit 4627.
  • the sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603.
  • the input/output unit 4622 acquires the transmission signal, decodes the multiplexed data (file format or packet) from the transmission signal, and outputs the multiplexed data to the demultiplexing unit 4623.
  • the demultiplexing unit 4623 acquires encoded data, control information and additional information from the multiplexed data, and outputs the encoded data, control information and additional information to the decoding unit 4624.
  • the decoding unit 4624 reconstructs the point cloud data by decoding the encoded data.
  • the presentation unit 4625 presents the point cloud data to the user. For example, the presentation unit 4625 displays information or images based on point cloud data.
  • User interface 4626 acquires instructions based on user operations.
  • the control unit 4627 (or application execution unit) controls each processing unit. That is, the control unit 4627 controls demultiplexing, decoding, presentation, and the like.
  • the input/output unit 4622 may acquire the point cloud data or the encoded data as they are from the outside. Also, the presentation unit 4625 may acquire additional information such as sensor information and present information based on the additional information. Also, the presentation unit 4625 may present based on a user's instruction acquired by the user interface 4626 .
  • the sensor terminal 4603 generates sensor information, which is information obtained by the sensor.
  • the sensor terminal 4603 is a terminal equipped with a sensor or a camera, and includes, for example, a moving object such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera.
  • the sensor information that can be acquired by the sensor terminal 4603 is, for example, (1) the distance between the sensor terminal 4603 and the object, or the reflectance of the object, obtained from a LIDAR, millimeter wave radar, or infrared sensor; It is the distance between the camera and the object obtained from the monocular camera image or the stereo camera image, the reflectance of the object, or the like.
  • Sensor information may also include sensor attitude, orientation, gyro (angular velocity), position (GPS information or altitude), velocity, acceleration, or the like.
  • Sensor information may also include temperature, atmospheric pressure, humidity, magnetism, or the like.
  • the external connection unit 4604 is implemented by an integrated circuit (LSI or IC), an external storage unit, communication with a cloud server via the Internet, broadcasting, or the like.
  • LSI integrated circuit
  • IC integrated circuit
  • FIG. 2 is a diagram showing the configuration of point cloud data.
  • FIG. 3 is a diagram showing a configuration example of a data file in which information about point cloud data is described.
  • Point cloud data includes data of multiple points. Data of each point includes position information (three-dimensional coordinates) and attribute information for the position information. A collection of multiple points is called a point cloud. For example, a point cloud indicates the three-dimensional shape of an object.
  • Position information such as three-dimensional coordinates is sometimes called geometry.
  • the data of each point may include attribute information (attribute) of a plurality of attribute types.
  • the attribute type is, for example, color or reflectance.
  • One attribute information may be associated with one location information, or attribute information having a plurality of different attribute types may be associated with one location information. Also, a plurality of pieces of attribute information of the same attribute type may be associated with one piece of position information.
  • the configuration example of the data file shown in FIG. 3 is an example in which position information and attribute information correspond one-to-one. there is
  • the positional information is, for example, three-axis information of x, y, and z.
  • the attribute information is, for example, RGB color information.
  • a typical data file is a ply file.
  • FIG. 4 is a diagram showing types of point cloud data. As shown in FIG. 4, point cloud data includes static objects and dynamic objects.
  • a static object is 3D point cloud data at an arbitrary time (a certain time).
  • a dynamic object is 3D point cloud data that changes over time.
  • three-dimensional point cloud data at a certain time will be called a PCC frame or a frame.
  • the object may be a point cloud with a limited area, such as normal video data, or a large-scale point cloud with an unrestricted area, such as map information.
  • point cloud data with various densities
  • sparse point cloud data and dense point cloud data there may be sparse point cloud data and dense point cloud data.
  • a point cloud data generation unit 4618 generates point cloud data based on the sensor information obtained by the sensor information acquisition unit 4617 .
  • the point cloud data generation unit 4618 generates position information as point cloud data, and adds attribute information for the position information to the position information.
  • the point cloud data generation unit 4618 may process the point cloud data when generating position information or adding attribute information. For example, the point cloud data generation unit 4618 may reduce the amount of data by deleting point clouds with overlapping positions. Also, the point cloud data generation unit 4618 may transform the position information (position shift, rotation, normalization, etc.), and may render the attribute information.
  • point cloud data generation system 4611 is included in the three-dimensional data encoding system 4601 in FIG. 1, it may be provided independently outside the three-dimensional data encoding system 4601.
  • the encoding unit 4613 generates encoded data by encoding the point cloud data based on a predefined encoding method.
  • a predefined encoding method There are roughly two types of encoding methods as follows. The first is an encoding method using position information, and this encoding method is hereinafter referred to as a first encoding method. The second is an encoding method using a video codec, and this encoding method is hereinafter referred to as a second encoding method.
  • the decoding unit 4624 decodes the point cloud data by decoding the encoded data based on a predefined encoding method.
  • the multiplexing unit 4614 generates multiplexed data by multiplexing the encoded data using an existing multiplexing method.
  • the generated multiplexed data is transmitted or stored.
  • the multiplexing unit 4614 multiplexes other media such as video, audio, subtitles, applications, files, or reference time information in addition to PCC-encoded data.
  • the multiplexing unit 4614 may further multiplex attribute information related to sensor information or point cloud data.
  • Multiplexing methods or file formats include ISOBMFF, MPEG-DASH, which is a transmission method based on ISOBMFF, MMT, MPEG-2 TS Systems, and RMP.
  • the demultiplexing unit 4623 extracts PCC-encoded data, other media, time information, etc. from the multiplexed data.
  • the input/output unit 4615 transmits the multiplexed data using a method suitable for the transmission medium or storage medium, such as broadcasting or communication.
  • the input/output unit 4615 may communicate with other devices via the Internet, or may communicate with a storage unit such as a cloud server.
  • http http, ftp, TCP, UDP, etc. are used.
  • a PULL-type communication method may be used, or a PUSH-type communication method may be used.
  • Either wired transmission or wireless transmission may be used.
  • Ethernet registered trademark
  • USB registered trademark
  • RS-232C HDMI
  • coaxial cable or the like is used.
  • wireless transmission wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter waves, or the like is used.
  • DVB-T2 DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 is used.
  • FIG. 5 is a diagram showing the configuration of the first encoding unit 4630, which is an example of the encoding unit 4613 that performs encoding according to the first encoding method.
  • FIG. 6 is a block diagram of the first encoding unit 4630. As shown in FIG. The first encoding unit 4630 generates encoded data (encoded stream) by encoding the point cloud data using the first encoding method.
  • This first encoding section 4630 includes a position information encoding section 4631 , an attribute information encoding section 4632 , an additional information encoding section 4633 and a multiplexing section 4634 .
  • the first encoding unit 4630 has the feature of performing encoding with the three-dimensional structure in mind. Also, the first encoding unit 4630 is characterized in that the attribute information encoding unit 4632 performs encoding using information obtained from the position information encoding unit 4631 .
  • the first encoding method is also called GPCC (Geometry based PCC).
  • the point cloud data is PCC point cloud data such as a PLY file or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData). including.
  • the position information is input to the position information encoding section 4631
  • the attribute information is input to the attribute information encoding section 4632
  • the additional information is input to the additional information encoding section 4633 .
  • the position information encoding unit 4631 generates encoded position information (compressed geometry), which is encoded data, by encoding the position information.
  • the positional information encoding unit 4631 encodes the positional information using an N-ary tree structure such as an octatree. Specifically, in the octree, the object space is divided into 8 nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not each node contains a point cloud is generated. . Also, the node containing the point cloud is further divided into 8 nodes, and 8-bit information is generated indicating whether or not each of the 8 nodes contains the point cloud. This process is repeated until the number of point groups included in a predetermined layer or node is equal to or less than the threshold.
  • the attribute information encoding unit 4632 encodes using the configuration information generated by the position information encoding unit 4631 to generate encoded attribute information (Compressed Attribute), which is encoded data. For example, the attribute information encoding unit 4632 determines a reference point (reference node) to be referenced in encoding the target point (target node) to be processed, based on the octree structure generated by the position information encoding unit 4631. do. For example, the attribute information encoding unit 4632 refers to a node whose parent node in the octree is the same as the target node among peripheral nodes or adjacent nodes. Note that the reference relationship determination method is not limited to this.
  • the attribute information encoding process may include at least one of the quantization process, the prediction process, and the arithmetic encoding process.
  • referencing means using a reference node to calculate the predicted value of attribute information, or the state of the reference node (for example, the state of the reference node that indicates whether or not the reference node includes a point cloud) to determine the encoding parameters. information).
  • the coding parameter is a quantization parameter in quantization processing, a context in arithmetic coding, or the like.
  • the additional information encoding unit 4633 generates encoded additional information (Compressed MetaData), which is encoded data, by encoding compressible data among the additional information.
  • Compressed MetaData encoded additional information
  • the multiplexing unit 4634 multiplexes the encoded position information, encoded attribute information, encoded additional information, and other additional information to generate an encoded stream (compressed stream), which is encoded data.
  • the generated encoded stream is output to a system layer processing unit (not shown).
  • FIG. 7 is a diagram showing the configuration of the first decoding unit 4640.
  • FIG. 8 is a block diagram of the first decoding unit 4640.
  • the first decoding unit 4640 generates point cloud data by decoding encoded data (encoded stream) encoded by the first encoding method using the first encoding method.
  • This first decoding unit 4640 includes a demultiplexing unit 4641 , a position information decoding unit 4642 , an attribute information decoding unit 4643 and an additional information decoding unit 4644 .
  • An encoded stream (compressed stream), which is encoded data, is input to the first decoding unit 4640 from a system layer processing unit (not shown).
  • the demultiplexing unit 4641 separates encoded position information (Compressed Geometry), encoded attribute information (Compressed Attribute), encoded additional information (Compressed MetaData), and other additional information from the encoded data.
  • the position information decoding unit 4642 generates position information by decoding the encoded position information. For example, the position information decoding unit 4642 restores position information of a point group represented by three-dimensional coordinates from encoded position information represented by an N-ary tree structure such as an octatree.
  • the attribute information decoding unit 4643 decodes the encoded attribute information based on the configuration information generated by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 determines a reference point (reference node) to refer to in decoding the target point (target node) to be processed, based on the octtree structure obtained by the position information decoding unit 4642 . For example, the attribute information decoding unit 4643 refers to a node whose parent node in the octree is the same as the target node among peripheral nodes or adjacent nodes. Note that the reference relationship determination method is not limited to this.
  • the attribute information decoding process may include at least one of the inverse quantization process, the prediction process, and the arithmetic decoding process.
  • referencing means using the reference node to calculate the predicted value of the attribute information, or the state of the reference node (for example, occupancy information indicating whether or not the reference node includes a point group) to determine the parameters for decoding.
  • the decoding parameter is a quantization parameter in inverse quantization processing, a context in arithmetic decoding, or the like.
  • the additional information decoding unit 4644 generates additional information by decoding the encoded additional information. Also, the first decoding unit 4640 uses the additional information required for the decoding processing of the position information and the attribute information at the time of decoding, and outputs the additional information required for the application to the outside.
  • FIG. 9 is a block diagram of position information encoding section 2700 according to this embodiment.
  • the positional information encoding unit 2700 includes an octree generation unit 2701 , a geometric information calculation unit 2702 , an encoding table selection unit 2703 and an entropy encoding unit 2704 .
  • the octree generation unit 2701 generates, for example, an octree from the input position information, and generates an occupancy code for each node of the octree.
  • the geometric information calculation unit 2702 acquires information indicating whether or not the node adjacent to the target node is an occupied node. For example, the geometric information calculation unit 2702 calculates occupancy information (information indicating whether or not the adjacent node is an occupied node) of the adjacent node from the occupancy code of the parent node to which the target node belongs.
  • the geometric information calculation unit 2702 may store encoded nodes in a list and search for adjacent nodes from the list. Note that the geometric information calculation unit 2702 may switch the adjacent node according to the position within the parent node of the target node.
  • the encoding table selection unit 2703 selects an encoding table to be used for entropy encoding of the target node using the occupation information of adjacent nodes calculated by the geometric information calculation unit 2702 .
  • the coding table selection unit 2703 may generate a bit string using occupation information of adjacent nodes and select a coding table for index numbers generated from the bit string.
  • the entropy encoding unit 2704 generates encoded position information and metadata by performing entropy encoding on the occupancy code of the target node using the encoding table of the selected index number.
  • the entropy coding unit 2704 may add information indicating the selected coding table to the coding position information.
  • Position information (position data) is encoded after being converted into an octatree structure (octtree structure).
  • An octree structure consists of nodes and leaves. Each node has 8 nodes or leaves and each leaf has voxel (VXL) information.
  • FIG. 10 is a diagram showing an example structure of position information including a plurality of voxels.
  • FIG. 11 is a diagram showing an example of converting the position information shown in FIG. 10 into an octatree structure. Among the leaves shown in FIG. 11, leaves 1, 2, and 3 represent voxels VXL1, VXL2, and VXL3 shown in FIG.
  • node 1 corresponds to the entire space containing the position information in FIG.
  • the entire space corresponding to node 1 is divided into 8 nodes, and among the 8 nodes, the node containing valid VXL is further divided into 8 nodes or leaves, and this process is repeated for the hierarchy of the tree structure.
  • each node corresponds to a subspace and has information (occupancy code) indicating at which position after division the next node or leaf is located as node information.
  • the lowest layer block is set as a leaf, and the number of point groups included in the leaf is stored as leaf information.
  • FIG. 12 is a block diagram of position information decoding section 2710 according to this embodiment.
  • the position information decoding unit 2710 includes an octree generation unit 2711 , a geometric information calculation unit 2712 , an encoding table selection unit 2713 and an entropy decoding unit 2714 .
  • the octree generation unit 2711 generates an octree of a certain space (node) using bitstream header information or metadata. For example, the octree generation unit 2711 generates a large space (root node) using the sizes of a certain space in the x-axis, y-axis, and z-axis directions added to the header information.
  • An octree is generated by generating eight small spaces A (nodes A0 to A7) by dividing into two along the y-axis and z-axis respectively. Also, nodes A0 to A7 are set in order as target nodes.
  • the geometric information calculation unit 2712 acquires occupancy information indicating whether or not the node adjacent to the target node is an occupied node. For example, the geometric information calculation unit 2712 calculates occupation information of adjacent nodes from the occupancy code of the parent node to which the target node belongs. Alternatively, the geometric information calculation unit 2712 may store the decoded nodes in a list and search for adjacent nodes in the list. Note that the geometric information calculation unit 2712 may switch the adjacent node according to the position within the parent node of the target node.
  • the encoding table selection unit 2713 selects an encoding table (decoding table) to be used for entropy decoding of the target node using the occupation information of adjacent nodes calculated by the geometric information calculation unit 2712 .
  • the encoding table selection unit 2713 may generate a bit string using occupation information of adjacent nodes, and select an encoding table for index numbers generated from the bit string.
  • the entropy decoding unit 2714 generates position information by entropy decoding the occupancy code of the target node using the selected encoding table. Note that the entropy decoding unit 2714 may decode and acquire the information of the selected encoding table from the bitstream, and entropy-decode the occupancy code of the target node using the encoding table indicated by the information. .
  • FIG. 13 is a block diagram showing a configuration example of the attribute information encoding unit A100.
  • the attribute information encoder may include multiple encoders that perform different encoding methods. For example, the attribute information encoding unit may switch between the following two methods depending on the use case.
  • the attribute information encoding unit A100 includes an LoD attribute information encoding unit A101 and a conversion attribute information encoding unit A102.
  • the LoD attribute information encoding unit A101 classifies each 3D point into multiple layers using the position information of the 3D point, predicts the attribute information of the 3D point belonging to each layer, and encodes the prediction residual. become Here, each classified hierarchy is called LoD (Level of Detail).
  • the transform attribute information encoding unit A102 encodes attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transform attribute information encoding unit A102 applies RAHT or Haar transform to each piece of attribute information based on the position information of the three-dimensional point, thereby generating high frequency components and low frequency components of each layer. and encode those values using quantization, entropy coding, or the like.
  • RAHT Restion Adaptive Hierarchical Transform
  • FIG. 14 is a block diagram showing a configuration example of the attribute information decoding unit A110.
  • the attribute information decoding unit may include multiple decoding units that perform different decoding methods. For example, the attribute information decoding unit may decode by switching between the following two methods based on information included in the header or metadata.
  • the attribute information decoding unit A110 includes an LoD attribute information decoding unit A111 and a conversion attribute information decoding unit A112.
  • the LoD attribute information decoding unit A111 classifies each 3D point into multiple layers using the position information of the 3D point, and decodes the attribute value while predicting the attribute information of the 3D point belonging to each layer.
  • the conversion attribute information decoding unit A112 decodes attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transform attribute information decoding unit A112 converts the attribute values by applying inverse RAHT or inverse Haar transform to the high frequency components and low frequency components of each attribute value based on the position information of the three-dimensional points. Decrypt.
  • RAHT Resource Adaptive Hierarchical Transform
  • FIG. 15 is a block diagram showing the configuration of an attribute information encoding unit 3140, which is an example of the LoD attribute information encoding unit A101.
  • the attribute information encoding unit 3140 includes an LoD generation unit 3141, a surrounding search unit 3142, a prediction unit 3143, a prediction residual calculation unit 3144, a quantization unit 3145, an arithmetic coding unit 3146, and an inverse quantization unit. 3147 , a decoded value generator 3148 , and a memory 3149 .
  • the LoD generation unit 3141 generates LoD using the position information of the three-dimensional points.
  • the surrounding search unit 3142 uses the LoD generation result of the LoD generation unit 3141 and the distance information indicating the distance between each 3D point to search for neighboring 3D points adjacent to each 3D point.
  • the prediction unit 3143 generates a predicted value of the attribute information of the target three-dimensional point to be encoded.
  • the prediction residual calculation unit 3144 calculates (generates) the prediction residual of the predicted value of the attribute information generated by the prediction unit 3143 .
  • the quantization unit 3145 quantizes the prediction residual of the attribute information calculated by the prediction residual calculation unit 3144.
  • the arithmetic coding unit 3146 arithmetically codes the prediction residual after being quantized by the quantization unit 3145 .
  • the arithmetic coding unit 3146 outputs the bitstream including the arithmetically coded prediction residuals to, for example, a 3D data decoding device.
  • prediction residual may be binarized by the quantization unit 3145, for example, before being arithmetically coded by the arithmetic coding unit 3146.
  • the arithmetic coding unit 3146 may initialize the coding table used for arithmetic coding before arithmetic coding.
  • the arithmetic coding unit 3146 may initialize the coding table used for arithmetic coding for each layer.
  • the arithmetic coding unit 3146 may include information indicating the position of the layer in which the coding table is initialized in the bitstream and output it.
  • the inverse quantization unit 3147 inversely quantizes the prediction residual after quantization by the quantization unit 3145 .
  • the decoded value generation unit 3148 generates a decoded value by adding the predicted value of the attribute information generated by the prediction unit 3143 and the prediction residual after inverse quantization by the inverse quantization unit 3147 .
  • the memory 3149 is a memory that stores the decoded value of the attribute information of each three-dimensional point decoded by the decoded value generation unit 3148 .
  • the prediction unit 3143 generates a predicted value using the decoded value of the attribute information of each 3D point stored in the memory 3149 when generating a predicted value for a 3D point that has not yet been encoded. .
  • FIG. 16 is a block diagram of an attribute information encoding unit 6600, which is an example of the conversion attribute information encoding unit A102.
  • the attribute information encoding unit 6600 includes a sorting unit 6601, a Haar transform unit 6602, a quantization unit 6603, an inverse quantization unit 6604, an inverse Haar transform unit 6605, a memory 6606, and an arithmetic coding unit 6607. Prepare.
  • the sorting unit 6601 generates Morton codes using the position information of the three-dimensional points, and sorts the multiple three-dimensional points in the order of the Morton codes.
  • the Haar transform unit 6602 applies Haar transform to attribute information to generate encoded coefficients.
  • a quantization unit 6603 quantizes the encoded coefficients of the attribute information.
  • the inverse quantization unit 6604 inversely quantizes the encoded coefficients after quantization.
  • the inverse Haar transform unit 6605 applies inverse Haar transform to the encoded coefficients.
  • the memory 6606 stores attribute information values of a plurality of decoded three-dimensional points. For example, attribute information of decoded 3D points stored in memory 6606 may be used for prediction of unencoded 3D points.
  • the arithmetic coding unit 6607 calculates ZeroCnt from the quantized coding coefficients and arithmetically codes ZeroCnt. Also, the arithmetic coding unit 6607 arithmetically codes the quantized non-zero coding coefficients. The arithmetic coding unit 6607 may binarize the coding coefficients before arithmetic coding. Also, the arithmetic coding unit 6607 may generate and code various types of header information.
  • FIG. 17 is a block diagram showing the configuration of an attribute information decoding unit 3150, which is an example of the LoD attribute information decoding unit A111.
  • the attribute information decoding unit 3150 includes an LoD generation unit 3151, a surrounding search unit 3152, a prediction unit 3153, an arithmetic decoding unit 3154, an inverse quantization unit 3155, a decoded value generation unit 3156, and a memory 3157. .
  • the LoD generation unit 3151 generates LoD using the position information of the three-dimensional points decoded by the position information decoding unit (not shown in FIG. 17).
  • the surrounding search unit 3152 uses the LoD generation result of the LoD generation unit 3151 and the distance information indicating the distance between each 3D point to search for neighboring 3D points adjacent to each 3D point.
  • the prediction unit 3153 generates a predicted value of the attribute information of the target three-dimensional point to be decoded.
  • the arithmetic decoding unit 3154 arithmetically decodes the prediction residual in the bitstream acquired from the attribute information encoding unit 3140 shown in FIG.
  • the arithmetic decoding unit 3154 may initialize a decoding table used for arithmetic decoding.
  • the arithmetic decoding unit 3154 initializes the decoding table used for arithmetic decoding for the layer on which the arithmetic coding unit 3146 shown in FIG. 15 has performed the coding process.
  • the arithmetic decoding unit 3154 may initialize a decoding table used for arithmetic decoding for each layer.
  • the arithmetic decoding unit 3154 may initialize the decoding table based on information, included in the bitstream, indicating the position of the layer where the coding table is initialized.
  • the inverse quantization unit 3155 inversely quantizes the prediction residual arithmetically decoded by the arithmetic decoding unit 3154 .
  • a decoded value generation unit 3156 adds the prediction value generated by the prediction unit 3153 and the prediction residual after inverse quantization by the inverse quantization unit 3155 to generate a decoded value.
  • the decoded value generator 3156 outputs the decoded attribute information data to another device.
  • the memory 3157 is a memory that stores the decoded value of the attribute information of each three-dimensional point decoded by the decoded value generation unit 3156 . For example, when generating a predicted value for a 3D point that has not yet been decoded, the prediction unit 3153 generates a predicted value using the decoded value of attribute information for each 3D point stored in the memory 3157. .
  • FIG. 18 is a block diagram of an attribute information decoding section 6610, which is an example of the conversion attribute information decoding section A112.
  • the attribute information decoding unit 6610 includes an arithmetic decoding unit 6611 , an inverse quantization unit 6612 , an inverse Haar transform unit 6613 and a memory 6614 .
  • the arithmetic decoding unit 6611 arithmetically decodes ZeroCnt and the encoded coefficients included in the bitstream. Note that the arithmetic decoding unit 6611 may decode various types of header information.
  • the inverse quantization unit 6612 inversely quantizes the arithmetically decoded coding coefficients.
  • the inverse Haar transform unit 6613 applies inverse Haar transform to the encoded coefficients after inverse quantization.
  • the memory 6614 stores values of attribute information of a plurality of decoded three-dimensional points. For example, attribute information of decoded 3D points stored in memory 6614 may be used for prediction of undecoded 3D points.
  • FIG. 19 is a diagram showing the configuration of the second encoding section 4650.
  • FIG. 20 is a block diagram of the second encoding section 4650. As shown in FIG.
  • the second encoding unit 4650 generates encoded data (encoded stream) by encoding the point cloud data using the second encoding method.
  • the second encoding unit 4650 includes an additional information generation unit 4651, a position image generation unit 4652, an attribute image generation unit 4653, a video encoding unit 4654, an additional information encoding unit 4655, and a multiplexing unit 4656. including.
  • the second encoding unit 4650 generates a position image and an attribute image by projecting the three-dimensional structure onto a two-dimensional image, and encodes the generated position image and attribute image using an existing video encoding method. It has the characteristics of The second encoding method is also called VPCC (Video based PCC).
  • VPCC Video based PCC
  • the point cloud data is PCC point cloud data such as a PLY file or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData) include.
  • the additional information generation unit 4651 generates map information for a plurality of two-dimensional images by projecting the three-dimensional structure onto the two-dimensional images.
  • the position image generation unit 4652 generates a position image (Geometry Image) based on the position information and the map information generated by the additional information generation unit 4651.
  • This position image is, for example, a distance image in which a distance (Depth) is indicated as a pixel value.
  • this distance image may be an image of a plurality of point groups viewed from one viewpoint (an image obtained by projecting a plurality of point groups onto a single two-dimensional plane), or may be an image obtained by projecting a plurality of point groups onto a single two-dimensional plane. It may be a plurality of images obtained by viewing , or a single image obtained by integrating these plurality of images.
  • the attribute image generation unit 4653 generates an attribute image based on the attribute information and the map information generated by the additional information generation unit 4651.
  • This attribute image is, for example, an image in which attribute information (for example, color (RGB)) is indicated as pixel values.
  • RGB color
  • this image may be an image of a plurality of point groups viewed from one viewpoint (an image obtained by projecting a plurality of point groups onto a single two-dimensional plane), or a plurality of point groups viewed from a plurality of viewpoints. It may be a plurality of viewed images or a single image obtained by integrating these plurality of images.
  • the video encoding unit 4654 encodes the position image and the attribute image using a video encoding method to generate a coded position image (Compressed Geometry Image) and a coded attribute image (Compressed Attribute Image), which are coded data. ).
  • a video encoding method Any known encoding method may be used as the video encoding method.
  • the video encoding system is AVC, HEVC, or the like.
  • the additional information encoding unit 4655 generates encoded additional information (Compressed MetaData) by encoding additional information and map information included in the point cloud data.
  • the multiplexing unit 4656 multiplexes the encoded position image, encoded attribute image, encoded additional information, and other additional information to generate an encoded stream (compressed stream) as encoded data.
  • the generated encoded stream is output to a system layer processing unit (not shown).
  • FIG. 21 is a diagram showing the configuration of the second decoding unit 4660.
  • FIG. 22 is a block diagram of the second decoding unit 4660.
  • the second decoding unit 4660 generates point cloud data by decoding the encoded data (encoded stream) encoded by the second encoding method using the second encoding method.
  • This second decoding unit 4660 includes a demultiplexing unit 4661 , a video decoding unit 4662 , an additional information decoding unit 4663 , a position information generation unit 4664 and an attribute information generation unit 4665 .
  • An encoded stream (compressed stream), which is encoded data, is input to the second decoding unit 4660 from a system layer processing unit (not shown).
  • the demultiplexing unit 4661 separates the encoded position image (Compressed Geometry Image), the encoded attribute image (Compressed Attribute Image), the encoded additional information (Compressed MetaData), and other additional information from the encoded data. .
  • the video decoding unit 4662 generates a position image and an attribute image by decoding the encoded position image and the encoded attribute image using the video encoding method.
  • Any known encoding scheme may be used as the video encoding scheme.
  • the video encoding system is AVC, HEVC, or the like.
  • the additional information decoding unit 4663 generates additional information including map information and the like by decoding the encoded additional information.
  • the position information generation unit 4664 generates position information using the position image and map information.
  • the attribute information generation unit 4665 generates attribute information using the attribute image and the map information.
  • the second decoding unit 4660 uses the additional information required for decoding during decoding, and outputs the additional information required for the application to the outside.
  • FIG. 23 is a diagram showing protocol stacks related to PCC encoded data.
  • FIG. 23 shows an example of multiplexing data of other media such as video (for example, HEVC) or audio to PCC-encoded data and transmitting or storing the multiplexed data.
  • video for example, HEVC
  • audio to PCC-encoded data and transmitting or storing the multiplexed data.
  • the multiplexing method and file format have functions for multiplexing, transmitting or storing various encoded data.
  • the encoded data In order to transmit or store the encoded data, the encoded data must be converted to a multiplexed format.
  • HEVC defines a technique of storing encoded data in a data structure called a NAL unit and storing the NAL unit in an ISOBMFF.
  • encoded data position information (Geometry), attribute information (Attribute), additional information (Metadata)
  • position information (Geometry), attribute information (Attribute), additional information (Metadata)
  • attribute information (Attribute)
  • Metadata additional information
  • multiplexing processing in the multiplexing unit will be described.
  • additional information may also be referred to as a parameter set or control information.
  • the dynamic object three-dimensional point cloud data that changes over time
  • FIG. 4 the dynamic object (three-dimensional point cloud data that changes over time) explained in FIG. 4 will be described as an example. A similar method may be used.
  • FIG. 24 is a diagram showing configurations of an encoding section 4801 and a multiplexing section 4802 included in the three-dimensional data encoding device according to this embodiment.
  • the encoding unit 4801 corresponds to, for example, the first encoding unit 4630 or the second encoding unit 4650 described above.
  • Multiplexer 4802 corresponds to multiplexer 4634 or 4656 described above.
  • the encoding unit 4801 encodes point cloud data of a plurality of PCC (Point Cloud Compression) frames to generate encoded data (Multiple Compressed Data) of a plurality of position information, attribute information and additional information.
  • PCC Point Cloud Compression
  • the multiplexing unit 4802 converts data of a plurality of data types (position information, attribute information, and additional information) into NAL units, thereby converting the data into a data structure that considers data access in the decoding device.
  • FIG. 25 is a diagram showing a configuration example of encoded data generated by the encoding unit 4801.
  • FIG. The arrows in the figure indicate the dependency related to decoding of encoded data, and the origin of the arrow depends on the data at the tip of the arrow. That is, the decoding device decodes the data indicated by the arrow, and uses the decoded data to decode the original data indicated by the arrow.
  • to depend means that the data of the dependence destination is referred to (used) in the processing (encoding, decoding, etc.) of the data of the dependence source.
  • the encoding unit 4801 generates encoded position data (compressed geometry data) for each frame by encoding the position information of each frame. Also, the encoding position data is represented by G(i). i indicates a frame number, frame time, or the like.
  • the encoding unit 4801 generates a position parameter set (GPS(i)) corresponding to each frame.
  • a position parameter set contains parameters that can be used to decode the encoded position data. Also, the encoded position data for each frame depends on the corresponding position parameter set.
  • the encoded position data consisting of multiple frames is defined as a position sequence (Geometry Sequence).
  • Encoding section 4801 generates a position sequence parameter set (Geometry Sequence PS: also referred to as position SPS) that stores parameters commonly used in decoding processing for a plurality of frames in a position sequence.
  • the position sequence depends on the position SPS.
  • the encoding unit 4801 encodes the attribute information of each frame to generate encoded attribute data (Compressed Attribute Data) for each frame. Also, the encoded attribute data is represented by A(i). Also, FIG. 25 shows an example in which attribute X and attribute Y exist, where the encoded attribute data of attribute X is represented by AX(i) and the encoded attribute data of attribute Y is represented by AY(i). .
  • the encoding unit 4801 generates an attribute parameter set (APS(i)) corresponding to each frame.
  • the attribute parameter set of attribute X is represented by AXPS(i)
  • the attribute parameter set of attribute Y is represented by AYPS(i).
  • the attribute parameter set contains parameters that can be used to decode the encoded attribute information.
  • the encoded attribute data depends on the corresponding attribute parameter set.
  • the encoded attribute data consisting of multiple frames is defined as an attribute sequence.
  • the encoding unit 4801 generates an attribute sequence parameter set (Attribute Sequence PS: also referred to as attribute SPS) that stores parameters commonly used in decoding processing for multiple frames in the attribute sequence.
  • attribute sequence depends on the attribute SPS.
  • the encoded attribute data depends on the encoded position data.
  • FIG. 25 shows an example in which there are two types of attribute information (attribute X and attribute Y).
  • attribute information for example, two encoding units generate respective data and metadata.
  • an attribute sequence is defined for each type of attribute information, and an attribute SPS is generated for each type of attribute information.
  • FIG. 25 shows an example in which there is one type of position information and two types of attribute information
  • the present invention is not limited to this. good.
  • encoded data can be generated in a similar manner.
  • point cloud data that does not have attribute information
  • encoding section 4801 does not need to generate a parameter set related to attribute information.
  • the encoding unit 4801 generates a PCC stream PS (PCC Stream PS: also referred to as stream PS), which is a parameter set for the entire PCC stream.
  • the encoding unit 4801 stores parameters that can be commonly used in the decoding process for one or more position sequences and one or more attribute sequences in the stream PS.
  • the stream PS includes identification information indicating the codec of the point cloud data, information indicating the algorithm used for encoding, and the like.
  • the position sequence and attribute sequence depend on the stream PS.
  • An access unit is a basic unit for accessing data during decoding, and consists of one or more pieces of data and one or more pieces of metadata.
  • an access unit is composed of location information and one or more pieces of attribute information at the same time.
  • a GOF is a random access unit and is composed of one or more access units.
  • the encoding unit 4801 generates an access unit header (AU Header) as identification information indicating the beginning of the access unit.
  • the encoding unit 4801 stores parameters related to access units in access unit headers.
  • the access unit header contains the structure or information of the encoded data included in the access unit.
  • the access unit header includes parameters commonly used for data included in the access unit, such as parameters related to decoding of encoded data.
  • the encoding section 4801 may generate an access unit delimiter that does not include parameters related to access units instead of the access unit header.
  • This access unit delimiter is used as identification information indicating the head of the access unit.
  • the decoding device identifies the beginning of the access unit by detecting the access unit header or access unit delimiter.
  • the encoding unit 4801 generates a GOF header as identification information indicating the beginning of the GOF.
  • the encoding unit 4801 stores GOF-related parameters in the GOF header.
  • the GOF header contains the structure or information of the encoded data contained in the GOF.
  • the GOF header includes parameters commonly used for data included in the GOF, such as parameters related to decoding of encoded data.
  • the encoding unit 4801 may generate a GOF delimiter that does not include parameters related to GOF instead of the GOF header.
  • This GOF delimiter is used as identification information indicating the beginning of the GOF.
  • the decoding device identifies the beginning of the GOF by detecting the GOF header or GOF delimiter.
  • an access unit is defined as a PCC frame unit.
  • the decoding device accesses the PCC frame based on the identification information at the beginning of the access unit.
  • a GOF is defined as one random access unit.
  • the decoding device accesses the random access unit based on the identification information at the beginning of the GOF.
  • a PCC frame may be defined as a random access unit if the PCC frames are independent of each other and can be decoded independently.
  • two or more PCC frames may be assigned to one access unit, and a plurality of random access units may be assigned to one GOF.
  • the encoding unit 4801 may define and generate parameter sets or metadata other than the above.
  • the encoding unit 4801 may generate SEI (Supplemental Enhancement Information) that stores parameters (optional parameters) that may not necessarily be used during decoding.
  • SEI Supplemental Enhancement Information
  • FIG. 26 is a diagram showing an example of encoded data and NAL units.
  • encoded data includes a header and a payload as shown in FIG.
  • the encoded data may include length information indicating the length (data amount) of the encoded data, header, or payload.
  • the encoded data may not include a header.
  • the header includes, for example, identification information for specifying data.
  • This identification information indicates, for example, data type or frame number.
  • the header includes, for example, identification information that indicates the reference relationship.
  • This identification information is, for example, information stored in a header when there is a dependency relationship between data, and is information for referencing a reference destination from a reference source.
  • the referenced header includes identification information for specifying the data.
  • the referrer header includes identification information indicating the referrer.
  • the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.
  • the multiplexing unit 4802 stores the encoded data in the payload of the NAL unit.
  • the NAL unit header includes pcc_nal_unit_type, which is identification information of encoded data.
  • FIG. 27 is a diagram showing an example of the semantics of pcc_nal_unit_type.
  • values 0 to 10 of pcc_nal_unit_type correspond to encoding position data (Geometry), encoding attribute X data in codec 1.
  • AttributeX encoded attribute Y data (AttributeY), position PS (Geom.PS), attribute XPS (AttrX.PS), attribute YPS (AttrX.PS), position SPS (Geometry Sequence PS), attribute XSPS (AttributeX Sequence PS), attribute YSPS (Attribute Y Sequence PS), AU header (AU Header), and GOF header (GOF Header). Also, values 11 and later are assigned to codec 1 backup.
  • pcc_codec_type is codec 2 (Codec2: second encoding method)
  • pcc_nal_unit_type values 0 to 2 are assigned to codec data A (DataA), metadata A (MetaDataA), and metadata B (MetaDataB) . Values 3 and after are assigned to codec 2 spares.
  • FIG. 28 is a diagram showing an example of a prediction tree used in the 3D data encoding method according to the third embodiment.
  • 29 is a flowchart showing an example of a three-dimensional data encoding method according to Embodiment 3.
  • FIG. 30 is a flowchart showing an example of a three-dimensional data decoding method according to Embodiment 3.
  • a prediction tree is generated using a plurality of three-dimensional points, and then node information included in each node of the prediction tree is encoded. This results in a bitstream containing encoded node information.
  • Each node information is, for example, information about one node of the prediction tree.
  • Each node information is, for example, location information of one node, index of the one node, number of child nodes that the one node has, prediction mode used to encode the location information of the one node, and prediction residuals.
  • encoded node information included in a bitstream is decoded, and then position information is decoded while generating a prediction tree.
  • FIG. 31 is a diagram for explaining the prediction tree generation method according to the third embodiment.
  • the 3D data encoding device first adds point 0 as the initial point of the prediction tree.
  • the positional information of point 0 is indicated by coordinates including three elements (x0, y0, z0).
  • the position information of the point 0 may be indicated by the coordinates of the triaxial orthogonal coordinate system, or may be indicated by the coordinates of the polar coordinate system.
  • Child_count is incremented by 1 each time a child node is added to the node for which the child_count is set.
  • Child_count of each node after completion of prediction tree generation indicates the number of child nodes that each node has, and is added to the bitstream.
  • pred_mode indicates a prediction mode for predicting the value of location information of each node. Details of the prediction mode will be described later.
  • the 3D data encoding device adds point 1 to the prediction tree.
  • the 3D data encoding device may search for the nearest neighbor point of point 1 from the point group already added to the prediction tree, and add point 1 as a child node of the nearest neighbor point.
  • the positional information of point 1 is indicated by coordinates including three elements (x1, y1, z1).
  • the positional information of the point 1 may be indicated by the coordinates of the triaxial orthogonal coordinate system, or may be indicated by the coordinates of the polar coordinate system.
  • point 0 becomes the nearest neighbor of point 1, and point 1 is added as a child node of point 0.
  • the three-dimensional data encoding device increments the value indicated by child_count at point 0 by one.
  • the predicted value of the position information of each node may be calculated when the node is added to the prediction tree.
  • the 3D data encoding device may add point 1 as a child node of point 0 and calculate the position information of point 0 as a predicted value.
  • pred_mode is prediction mode information (prediction mode value) indicating a prediction mode.
  • the 3D data encoding device may calculate the residual_value (prediction residual) of point 1 after calculating the prediction value.
  • residual_value is a difference value obtained by subtracting the predicted value calculated in the prediction mode indicated by pred_mode from the position information of each node.
  • the 3D data encoding device adds point 2 to the prediction tree.
  • the 3D data encoding device may search for the nearest neighbor point of point 2 from the point group already added to the prediction tree, and add point 2 as a child node of the nearest neighbor point.
  • the positional information of point 2 is indicated by coordinates including three elements (x2, y2, z2).
  • the positional information of the point 2 may be indicated by the coordinates of the triaxial orthogonal coordinate system or may be indicated by the coordinates of the polar coordinate system.
  • point 1 becomes the nearest neighbor of point 2, and point 2 is added as a child node of point 1.
  • the three-dimensional data encoding device increments the value indicated by child_count of point 1 by one.
  • the 3D data encoding device adds point 3 to the prediction tree.
  • the three-dimensional data encoding device may search for the nearest neighbor point of point 3 from the point group already added to the prediction tree, and add point 3 as a child node of the nearest neighbor point.
  • the positional information of point 3 is indicated by coordinates including three elements (x3, y3, z3).
  • the positional information of the point 3 may be indicated by the coordinates of the triaxial orthogonal coordinate system, or may be indicated by the coordinates of the polar coordinate system.
  • point 0 becomes the nearest neighbor of point 3, and point 3 is added as a child node of point 0.
  • the three-dimensional data encoding device increments the value indicated by child_count at point 0 by one.
  • the 3D data encoding device adds all points to the prediction tree and completes generation of the prediction tree.
  • the 3D data encoding device encodes child_count, pred_mode, and residual_value of each node selected in order of depth priority from the root node. That is, when selecting nodes in depth priority order, the three-dimensional data encoding device selects a child node that has not yet been selected from among one or more child nodes of the selected node as the next node of the selected node. . When the selected node has no child node, the three-dimensional data encoding device selects other unselected child nodes of the parent node of the selected node.
  • the encoding order is not limited to the depth priority order, and may be, for example, the width first order.
  • the three-dimensional data encoding device selects one or more nodes of the same depth (hierarchy) as the selected node, which have not yet been selected, as the node next to the selected node. select. If there is no node with the same depth as the selected node, the 3D data encoding device selects one or more nodes with the next depth that have not yet been selected.
  • points 0 to 3 are an example of a plurality of three-dimensional points.
  • child_count, pred_mode, and residual_value are calculated when each point is added to the prediction tree. , they may be calculated.
  • the input order of a plurality of 3D points to the 3D data encoding device may be such that the input 3D points are rearranged in ascending or descending Morton order, and the 3D points are processed in order from the leading 3D point.
  • the 3D data encoding device can efficiently search for the closest point to the 3D point to be processed, and can improve the encoding efficiency.
  • the 3D data encoding device may process the 3D points in the input order without rearranging them.
  • the 3D data encoding device may generate a prediction tree without branches in the input order of a plurality of 3D points.
  • the 3D data encoding device adds a 3D point that is input next to the input 3D point as a child node of the predetermined 3D point in the input order of the plurality of 3D points. You may
  • FIG. 32 is a diagram for explaining a first example of a prediction mode according to Embodiment 3.
  • FIG. 32 is a diagram showing part of a prediction tree.
  • Eight prediction modes may be set as shown below. For example, as shown in FIG. 32, the case of calculating the predicted value of point c will be described as an example.
  • the prediction tree indicates that point c's parent node is point p0, point c's grandfather node is point p1, and point c's great-grandfather node is point p2.
  • point c, point p0, point p1, and point p2 are examples of a plurality of three-dimensional points.
  • a prediction mode with a prediction mode value of 0 (hereinafter referred to as prediction mode 0) may be set without prediction. That is, the 3D data encoding device may calculate the input position information of the point c as the predicted value of the point c in the prediction mode 0 .
  • a prediction mode with a prediction mode value of 1 (hereinafter referred to as prediction mode 1) may be set to differential prediction with the point p0. That is, the 3D data encoding device may calculate the position information of the point p0, which is the parent node of the point c, as the predicted value of the point c.
  • a prediction mode with a prediction mode value of 2 (hereinafter referred to as prediction mode 2) may be set to linear prediction using points p0 and p1. That is, the three-dimensional data encoding device converts the prediction result of point c using the position information of point p0, which is the parent node of point c, and the position information of point p1, which is the grandfather node of point c, to the point c. It may be calculated as a predicted value. Specifically, the 3D data encoding device calculates the predicted value of point c in prediction mode 2 using the following equation T1.
  • Predicted value 2 x p0-p1 (Formula T1)
  • p0 indicates the positional information of point p0
  • p1 indicates the positional information of point p1.
  • a prediction mode with a prediction mode value of 3 may be set to parallelogram prediction using points p0, p1, and p2. That is, the three-dimensional data encoding device stores the position information of the point p0 that is the parent node of the point c, the position information of the point p1 that is the grandfather node of the point c, and the position information of the point p2 that is the great-grandfather node of the point c. You may calculate the prediction result by Parallelogram prediction using and as a predicted value of the point c. Specifically, the 3D data encoding device calculates the predicted value of point c in prediction mode 3 using Equation T2 below.
  • Predicted value p0 + p1 - p2 (Formula T2)
  • p0 indicates the positional information of point p0
  • p1 indicates the positional information of point p1
  • p2 indicates the positional information of point p2.
  • a prediction mode with a prediction mode value of 4 (hereinafter referred to as prediction mode 4) may be set to differential prediction with the point p1. That is, the 3D data encoding device may calculate the position information of the point p1, which is the grandparent node of the point c, as the predicted value of the point c.
  • a prediction mode with a prediction mode value of 5 (hereinafter referred to as prediction mode 5) may be set to differential prediction with point p2. That is, the 3D data encoding device may calculate the position information of the point p2, which is the great-grandfather node of the point c, as the predicted value of the point c.
  • a prediction mode with a prediction mode value of 6 may be set to an average of position information of two or more points p0, p1, and p2. That is, the three-dimensional data encoding device stores the position information of the point p0 that is the parent node of the point c, the position information of the point p1 that is the grandfather node of the point c, and the position information of the point p2 that is the great-grandfather node of the point c. may be calculated as the predicted value of the point c. For example, when the three-dimensional data encoding device uses the position information of the point p0 and the position information of the point p1 to calculate the predicted value, the predicted value of the point c in the prediction mode 6 is calculated using the following equation T3. do.
  • Predicted value (p0 + p1)/2 (Formula T3)
  • p0 indicates the positional information of point p0
  • p1 indicates the positional information of point p1.
  • a prediction mode with a prediction mode value of 7 (hereinafter referred to as prediction mode 7) is a non-linear prediction using the distance d0 between points p0 and p1 and the distance d1 between points p2 and p1. may be set. That is, the three-dimensional data encoding device may calculate the prediction result of non-linear prediction using the distance d0 and the distance d1 as the predicted value of the point c.
  • the prediction method assigned to each prediction mode is not limited to the above example.
  • the above eight prediction modes and the above eight prediction methods do not have to be the combinations described above, and may be any combination.
  • prediction mode 0 may be assigned a prediction method with high usage frequency. This can improve the coding efficiency.
  • the three-dimensional data encoding device may improve encoding efficiency by dynamically changing the assignment of prediction modes according to the frequency of use of the prediction modes while proceeding with the encoding process.
  • the three-dimensional data encoding device may, for example, count the frequency of use of each prediction mode during encoding, and assign a prediction mode indicated by a smaller value to a prediction method with a higher frequency of use. This can improve coding efficiency.
  • a three-dimensional data encoding device uses code
  • a prediction value used to calculate the position information of the 3D point to be coded may be calculated using the positional information of the 3D point that is close to the 3D point to be coded. Also, the 3D data encoding device may add prediction mode information (pred_mode) to each 3D point so that a prediction value calculated according to the prediction mode can be selected.
  • pred_mode prediction mode information
  • the position information of the three-dimensional point p0 of the nearest point is assigned to the prediction mode 0, ..., the position information of the three-dimensional point p2 is assigned to the prediction mode M-1, and used for prediction. It is conceivable to add the predicted mode to the bitstream for each 3D point.
  • the prediction mode number M may be added to the bitstream.
  • the number M of prediction modes may be defined by the profile, level, etc. of the standard without being added to the bitstream.
  • FIG. 33 is a diagram showing a second example of a table indicating predicted values calculated in each prediction mode according to Embodiment 3.
  • FIG. 33 is a diagram showing a second example of a table indicating predicted values calculated in each prediction mode according to Embodiment 3.
  • the predicted value of the position information of point c is calculated using the position information of at least one of points p0, p1, and p2.
  • a prediction mode is added to each 3D point to be encoded. The predicted value is calculated according to the added prediction mode.
  • FIG. 34 is a diagram showing a specific example of the second example of the table showing predicted values calculated in each prediction mode, according to the third embodiment.
  • a three-dimensional data encoding device selects, for example, prediction mode 1, and encodes position information (x, y, z) of a three-dimensional point to be encoded using predicted values (p0x, p0y, p0z). may be changed. In this case, a prediction mode value of "1" indicating the selected prediction mode 1 is added to the bitstream.
  • the 3D data encoding device uses, as one prediction mode for calculating the predicted value of each of the three elements included in the position information of the 3D point to be encoded, A common prediction mode may be selected for the three elements.
  • FIG. 35 is a diagram showing a third example of a table showing predicted values calculated in each prediction mode according to Embodiment 3.
  • FIG. 35 is a diagram showing a third example of a table showing predicted values calculated in each prediction mode according to Embodiment 3.
  • the predicted value of the position information of point c is calculated using the position information of at least one of points p0 and p1.
  • a prediction mode is added to each 3D point to be encoded. The predicted value is calculated according to the added prediction mode.
  • the prediction mode in which the predicted value is not assigned may be set to not available.
  • another prediction method may be assigned to that prediction mode.
  • the prediction mode may be assigned position information of point p2 as a prediction value.
  • the prediction mode may be assigned a prediction value assigned to another prediction mode.
  • the position information of the point p1 assigned to prediction mode 4 may be assigned to prediction mode 3 set to not available. At that time, position information of the point p2 may be newly assigned to the prediction mode 4 . In this way, when a prediction mode set to not available occurs, the encoding efficiency can be improved by assigning a new prediction method to the prediction mode.
  • FIG. 36 is a diagram showing an example of the syntax of the header of the location information. NumNeighborPoint, NumPredMode, Thfix, QP, and unique_point_per_leaf in the syntax of FIG. 36 will be described in order.
  • NumNeighborPoint indicates the upper limit of the number of surrounding points used to generate the predicted value of the position information of the 3D point.
  • the predicted value may be calculated using M surrounding points in the process of calculating the predicted value.
  • NumPredMode indicates the total number M of prediction modes used to predict location information. Note that the maximum value MaxM of possible values of the number of prediction modes may be specified by a standard or the like.
  • the prediction mode number NumPredMode does not have to be added to the bitstream, and the value may be defined by a profile or level such as a standard. Also, the number of prediction modes may be defined by NumNeighborPoint+NumPredMode.
  • QP indicates a quantization parameter used when quantizing position information.
  • the three-dimensional data encoding device may calculate a quantization step from the quantization parameter and quantize the position information using the calculated quantization step.
  • the determination of whether to fix the prediction mode is performed using the absolute difference between the distance d0 and the distance d1.
  • this judgment calculates the distance d0 between points p1 and p0, and if the distance d0 is greater than a threshold, it determines that the point p1 cannot be used for prediction, and sets the prediction mode value to "1" (prediction value p0), otherwise the prediction mode may be set.
  • this judgment calculates the distance d0 between points p1 and p0, and if the distance d0 is greater than a threshold, it determines that the point p1 cannot be used for prediction, and sets the prediction mode value to "1" (prediction value p0), otherwise the prediction mode may be set.
  • NumNeighborPoint NumPredMode
  • Thfix Thfix
  • unique_point_per_leaf may be entropy-encoded and added to the header.
  • each value may be binarized and computationally encoded.
  • each value may be encoded with a fixed length to reduce the amount of processing.
  • FIG. 37 is a diagram showing an example of the syntax of location information. NumOfPoint, child_count, pred_mode, and residual_value[j] in the syntax of FIG. 37 will be described in order.
  • NumOfPoint indicates the total number of 3D points included in the bitstream.
  • Child_count indicates the number of child nodes that the i-th three-dimensional point (node[i]) has.
  • pred_mode indicates the prediction mode for encoding or decoding the i-th 3D point position information.
  • is a prediction mode for calculating a predicted value using linear prediction, and is "2" in the above embodiment. Note that ⁇ is not limited to "2", and any value from 0 to M ⁇ 1 may be set as an estimated value.
  • the estimated value when pred_mode is not present in the bitstream may be added to a separate header or the like.
  • pred_mode may be arithmetically coded by binarizing with a truncated unary code using the number of prediction modes to which prediction values are assigned.
  • a specific prediction mode is a predetermined prediction mode.
  • residual_value[j] indicates the encoded data of the prediction residual between the predicted value of the position information.
  • Residual_value[0] may indicate the element x of the location information
  • residual_value[1] may indicate the element y of the location information
  • residual_value[2] may indicate the element z of the location information.
  • FIG. 38 is a diagram showing another example of the syntax of location information.
  • the example in FIG. 38 is a modification of the example in FIG.
  • pred_mode may indicate the prediction mode for each of the three elements of the position information (x, y, z), as shown in FIG. That is, pred_mode[0] indicates the prediction mode of element x, pred_mode[1] indicates the prediction mode of element y, and pred_mode[2] indicates the prediction mode of element z. pred_mode[0], pred_mode[1] and pred_mode[2] may be appended to the bitstream.
  • FIG. 39 is a block diagram of 3D data encoding apparatus 12800 according to this embodiment. Note that FIG. 39 shows a processing unit related to encoding of point cloud position information (geometry). may be provided with other processing units. In inter prediction, a point group to be encoded is coded while referring to an already coded point group.
  • the 3D data encoding device 12800 includes an octotree generator 12801, a buffer 12802, an entropy encoder 12803, a buffer 12804, a buffer 12805, a point group generator 12806, a buffer 12807, and motion detection compensation. It comprises a section 12808 , an octal tree section 12809 , a buffer 12810 and a control section 12811 .
  • the octatree conversion unit 12801 converts the input target point group, which is the data of the point group to be encoded, into an octree representation, thereby converting the position information of the target point group into an octree representation. Generate a representation of the target octree.
  • the position of the point group is represented by, for example, three-dimensional coordinates (eg, x, y, z).
  • Buffer 12802 holds the generated target octree.
  • An octree is composed of a plurality of nodes (branch points), and the information of each node is an 8-bit occupancy code indicating whether each of the eight child nodes of the node contains a three-dimensional point. including.
  • the buffer 12802 may initialize data held for each octree (target point group).
  • the entropy coding unit 12803 generates a bitstream by entropy-coding information (for example, occupancy code) for each node.
  • entropy-coding information for example, occupancy code
  • probability parameters encoding table or (also called a probability table) is controlled.
  • the buffer 12804 holds the information of the target node (eg, occupancy code) as an intra-reference node (encoded node). For example, the buffer 12804 may initialize data held for each octree (target point group).
  • the target node eg, occupancy code
  • the buffer 12804 may initialize data held for each octree (target point group).
  • the buffer 12805 holds information about the target node (eg, occupancy code). In addition, the buffer 12805 holds the information of the target node in octree units as an encoded octree. For example, the buffer 12805 may initialize data held for each octree (target point group).
  • the point group generating unit 12806 generates an inter-reference point group (encoded point group) by converting the encoded octree into a point group.
  • Buffer 12807 holds the inter-reference point cloud. That is, the buffer 12807 holds multiple inter-reference point clouds, which are one or more encoded point clouds.
  • the motion detection compensation unit 12808 detects displacement between the inter reference point group and the target point group (motion detection), and corrects the inter reference point group based on the detected displacement (motion compensation).
  • a post-alignment point cloud which is a reference point cloud, is generated.
  • the octree generator 12809 converts the post-alignment point group into an octree representation, thereby generating an inter-reference octree representing the position information of the post-alignment point group in an octree.
  • Buffer 12810 holds the generated inter-reference octree. Also, for example, the buffer 12810 may initialize data held for each octree (target point group).
  • the 3D data encoding device 12800 may perform motion detection and motion compensation in units of frames or octrees, or may perform each node (point).
  • the 3D data encoding device 12800 may write information about motion compensation such as a motion vector in the header portion of a frame or an octatree, or entropy-encode the information to the node information header. may be included in the section.
  • the inter reference point cloud may be a point cloud included in an encoded frame different from the frame to be encoded, or an encoded point cloud included in the same frame as the frame to be encoded. There may be.
  • the control unit 12811 uses the intra reference node stored in the buffer 12804 or the inter reference node included in the inter reference octree stored in the buffer 12810, and the entropy encoding unit 12803 converts the target node into Controls the probability parameter used for entropy coding (arithmetic coding).
  • control of probability parameters using intra-reference nodes hereinafter referred to as intra-reference
  • control of probability parameters using inter-reference nodes hereinafter referred to as inter-references
  • inter-references may be predetermined for each frame or point group, or may be determined by an arbitrary method. For example, the actual code amount may be calculated and a reference method (intra reference or inter reference) that reduces the code amount may be selected.
  • a probability parameter is selected from a plurality of probability parameters based on the occupancy state (whether or not the node contains a point) of a plurality of adjacent nodes (intra reference nodes) of the target node. be.
  • a plurality of probability parameters A probability parameter is selected from Note that when inter-referencing is selected, the probability parameter may be controlled by combining inter-referencing and intra-referencing.
  • the plurality of probability parameters may include probability parameters that are updated according to the frequency of occurrence, or may include fixed values.
  • the 3D data encoding apparatus 12800 controls the probability parameter of entropy encoding based on the information on the inter-reference node in addition to the information on the intra-reference node, thereby increasing the probability of occurrence of the information on the target node. Can improve prediction accuracy. Therefore, there is a possibility that the encoding efficiency can be improved.
  • the three-dimensional data encoding device 12800 does not always need to refer to the inter-reference point group, and can be set at predetermined time intervals (eg, every 1 second), predetermined frame intervals (eg, every 30 frames), or three-dimensional data encoding device 12800.
  • the target point group may be coded based only on the information of the target point group by, for example, clearing the buffer 12807 storing the inter reference point group at an arbitrary timing of notification to the data decoding device. This enables the three-dimensional data decoding device to start jumping playback from a point group that does not refer to the inter reference point group, other than the head of the bitstream. Therefore, it may be possible to improve the random accessibility and error resilience of the bitstream.
  • FIG. 40 is a block diagram of the three-dimensional data decoding device 12820 according to this embodiment.
  • the three-dimensional data decoding device 12820 includes other processing units such as a processing unit that decodes point cloud attribute information.
  • a processing unit may be provided.
  • the 3D data decoding device 12820 performs inter-prediction decoding to decode a point group from an encoded bitstream while referring to the encoded point group. For example, the 3D data decoding device 12820 decodes the bitstream generated by the 3D data encoding device 12800 shown in FIG.
  • the 3D data decoding device 12820 includes an entropy decoding unit 12821, a buffer 12822, a buffer 12823, a point group forming unit 12824, a buffer 12825, a motion compensation unit 12826, an octagonal tree forming unit 12827, and a buffer 12828. , and a control unit 12829 .
  • the entropy decoding unit 12821 generates decoding node information (eg, occupancy code) by entropy decoding the input bitstream for each branch point (node) of the octree.
  • decoding node information eg, occupancy code
  • probability parameters also known as an encoding table or a probability table
  • the buffer 12822 holds information on the generated decoded nodes as intra reference nodes (decoded nodes). For example, the buffer 12822 may initialize data held for each octree (decoding point group).
  • the buffer 12823 holds decoding node information (eg, occupancy code). In addition, the buffer 12823 holds the information of the decoding nodes in octree units as a decoding octree. For example, the buffer 12823 may initialize data held for each octree (decoding point group). The point group generating unit 12824 generates a decoding point group by converting the decoding octree into a point group.
  • decoding node information eg, occupancy code
  • the buffer 12823 holds the information of the decoding nodes in octree units as a decoding octree. For example, the buffer 12823 may initialize data held for each octree (decoding point group).
  • the point group generating unit 12824 generates a decoding point group by converting the decoding octree into a point group.
  • the buffer 12825 holds the decoded point group as an inter-reference point group.
  • the motion compensation unit 12826 generates a post-alignment point group, which is an inter reference point group after alignment, by correcting (motion compensation) the displacement between the inter reference point group and the point group to be decoded.
  • the motion compensation unit 12826 acquires information related to motion compensation, such as motion vectors, from the header of a frame or octree, or the header of node information, and performs motion compensation using the acquired information. .
  • the octree generator 12827 converts the post-alignment point group into an octree representation, thereby generating an inter-reference octree representing the position information of the post-alignment point group in an octree.
  • Buffer 12828 holds the generated inter-reference octree. Also, for example, the buffer 12828 may initialize data held for each octree (decoding point group).
  • the 3D data decoding device 12820 may perform motion compensation in units of frames or octrees, or may perform motion compensation for each node (point).
  • the inter reference point cloud may be a point cloud included in a decoded frame different from the decoding target frame, or may be a decoded point cloud included in the same frame as the decoding target frame. .
  • the control unit 12829 uses the intra-reference node stored in the buffer 12822 or the inter-reference node included in the inter-reference octree stored in the buffer 12828, and the entropy decoding unit 12821 detects the entropy of the target node.
  • Controls probability parameters used for decoding may be determined, for example, based on control information included in the bitstream, or may be predetermined for each frame or point group, It may be determined by any method.
  • probability parameters are selected based on the occupancy states (whether or not the nodes contain points) of multiple adjacent nodes (intra referencing nodes) of the target node.
  • the probability parameter is selected based on the occupancy state of the node (inter-referencing node) at the same position as at least one of the target node and the plurality of adjacent nodes included in the inter-referencing octree. be done. Note that when inter-referencing is selected, the probability parameter may be controlled by combining inter-referencing and intra-referencing.
  • the three-dimensional data decoding device 12820 controls the probability parameter of entropy decoding based on the information on the inter-reference node in addition to the information on the intra-reference node, thereby referring to the encoded point group.
  • the point cloud can be decoded from the encoded bitstream (for example, the bitstream output from the 3D data encoding device 12800 shown in FIG. 39).
  • the 3D data decoding device 12820 does not always need to refer to the inter reference point group. 30 frames, etc.), or at any timing notified from the three-dimensional data encoding device, etc., by clearing the buffer 12825 storing the inter reference point cloud, and based only on the information of the point cloud to be decoded. may be used to decode the decoding target point group. As a result, the 3D data decoding device 12820 can start jumping playback from a point group that does not refer to the inter reference point group, other than the head of the bitstream.
  • FIG. 41 is a block diagram of a three-dimensional data encoding device 12800A, which is a modification of the three-dimensional data encoding device 12800.
  • FIG. Three-dimensional data encoding device 12800A shown in FIG. 41 further includes motion compensation section 12812 in addition to three-dimensional data encoding device 12800 shown in FIG.
  • the motion compensation unit 12812 performs motion compensation on the coded point cloud generated by the point cloud generation unit 12806, thereby performing alignment with the inter reference point cloud already stored in the buffer 12807.
  • the buffer 12807 updates the stored inter reference point cloud by integrating the coded point cloud after motion compensation with the already stored inter reference point cloud. As a result, a dense point group obtained by superimposing point groups of a plurality of frames can be used as an inter-reference point group.
  • Other processes are the same as those of the 3D data encoding device 12800, for example.
  • the inter reference point cloud may be a point cloud included in an encoded frame different from the frame to be encoded, or an encoded point cloud included in the same frame as the frame to be encoded. There may be.
  • the three-dimensional data encoding device 12800A may improve the point cloud density of the inter-reference point cloud by aligning and integrating the encoded point clouds. As a result, the prediction accuracy of the occurrence probability of the information of the target node is improved, so there is a possibility that the coding efficiency can be further improved.
  • the three-dimensional data encoding device 12800A does not need to refer to all encoded point clouds as inter-reference point clouds, but at predetermined time intervals (for example, every 1 second), at predetermined frame intervals (for example, 5 frames). etc.), or at an arbitrary timing to notify the three-dimensional data decoding device, etc., by clearing all or part of the buffer 12807 storing the inter reference point group, only the target point group, or encoding
  • the target point group may be encoded based on the information of the target point group and part of the encoded point group.
  • the 3D data decoding device When encoding is performed based only on the information of the target point cloud, it is possible for the 3D data decoding device to start jumping playback from the point cloud that does not refer to the inter reference point cloud, other than the beginning of the bitstream. Become. Therefore, it may be possible to improve the random accessibility and error resilience of the bitstream.
  • the capacity of the buffer 12807 holding the inter reference point cloud can be reduced, so that the three-dimensional data encoding device and There is a possibility that the implementation cost of the three-dimensional data decoding device can be reduced.
  • FIG. 42 is a block diagram of a three-dimensional data decoding device 12820A, which is a modification of the three-dimensional data decoding device 12820.
  • FIG. 3D data decoding device 12820A shown in FIG. 42 further includes motion compensation section 12830 in addition to 3D data decoding device 12820 shown in FIG.
  • the 3D data decoding device 12820A decodes the point cloud from the bitstream generated by the 3D data encoding device 12800A shown in FIG.
  • the motion compensation unit 12830 aligns with the inter reference point group already stored in the buffer 12825 by performing motion compensation on the decoded point group.
  • the buffer 12825 updates the stored inter reference point group by integrating the decoded point group after motion compensation with the already stored inter reference point group.
  • a dense point group obtained by superimposing point groups of a plurality of frames can be used as an inter-reference point group.
  • Other processes are similar to those of the three-dimensional data decoding device 12820, for example.
  • the inter reference point cloud may be a point cloud included in a decoded frame different from the decoding target frame, or may be a decoded point cloud included in the same frame as the decoding target frame. .
  • the 3D data decoding device 12820A has a configuration for aligning and integrating decoded point groups, so that a bitstream encoded by a 3D data encoding device having a similar configuration (for example, , the bitstream generated by the three-dimensional data encoding device 12800A shown in FIG. 41).
  • the three-dimensional data decoding device 12820A does not need to refer to all decoded point groups as inter-reference point groups. ), or by clearing all or part of the buffer 12825 storing the inter-reference point group at an arbitrary timing notified from the three-dimensional data encoding device, only the point group to be decoded, or decoding
  • the decoding target point group may be decoded based on the information of the target point group and part of the decoded point group.
  • the 3D data decoding device 12820A When the 3D data decoding device 12820A performs decoding based on only the information of the decoding target point group, it is possible to start jumping playback from a point group that does not refer to the inter reference point group, other than the beginning of the bitstream. Therefore, it may be possible to improve the random accessibility and error resilience of the bitstream. Also, when the three-dimensional data decoding device performs decoding based on the information of the decoding target point group and part of the decoded point group, the capacity of the buffer 12825 that holds the inter reference point group can be reduced. Therefore, there is a possibility that the implementation cost of the 3D data encoding device and the 3D data decoding device can be reduced.
  • FIG. 43 is a diagram showing an example of inter prediction in the three-dimensional data encoding device shown in FIGS. 39 and 41.
  • FIG. The same applies to inter prediction in the three-dimensional data decoding devices shown in FIGS. 40 and 42.
  • FIG. 43 is a diagram showing an example of inter prediction in the three-dimensional data encoding device shown in FIGS. 39 and 41.
  • FIG. The same applies to inter prediction in the three-dimensional data decoding devices shown in FIGS. 40 and 42.
  • the three-dimensional data encoding device sets a first rectangular parallelepiped containing the target point group.
  • a three-dimensional data encoding device sets a second rectangular parallelepiped by translating the first rectangular parallelepiped.
  • the second rectangular parallelepiped is a space containing the coded point group that is referred to in the coding of the target point group.
  • the three-dimensional data encoding device describes the x, y, and z components of the translational distance between the first rectangular parallelepiped and the second rectangular parallelepiped as motion vector information in the header portion of the frame or octatree.
  • the information may be entropy-encoded and then described in the header of the node information.
  • FIG. 44 is a diagram showing a syntax example of a sequence parameter set (SPS) included in a bitstream.
  • SPS is control information common to multiple frames, multiple point groups, or multiple slices, and is control information common to attribute information and position information.
  • the SPS includes sps_inter_prediction_enabled_flag and sps_max_num_ref_frames_minus1.
  • sps_inter_prediction_enabled_flag 1 specifies that the use of inter prediction is allowed for bitstreams referencing SPS.
  • sps_inter_prediction_enabled_flag 0 specifies that inter prediction is disabled for bitstreams referencing SPS.
  • sps_max_num_ref_frames_minus1+1 (sps_max_num_ref_frames_minus1 plus 1) specifies the maximum number of reference point cloud frames referenced by a frame.
  • the value of sps_max_num_ref_frames_minus1 must be in the range 0 to MaxNumRefFrames-1.
  • sps_max_num_ref_frames_minus1 is included in SPS when sps_inter_prediction_enabled_flag is 1, and is not included in SPS when sps_inter_prediction_enabled_flag is 0.
  • FIG. 45 is a diagram showing a syntax example of a location information parameter set (GPS) included in a bitstream.
  • GPS is control information common to multiple frames, multiple point groups, or multiple slices), and is control information of position information.
  • GPS includes gps_inter_prediction_enabled_flag and gps_num_ref_frames_minus1.
  • gps_inter_prediction_enabled_flag 1 specifies that inter-prediction is allowed to be used in the decoding process of the location information data units of the GPS-referenced bitstream.
  • gps_inter_prediction_enabled_flag 0 specifies that inter-prediction is disabled in the decoding process of the location information data units of a bitstream that refers to GPS. If sps_inter_prediction_enabled_flag is 0, gps_inter_prediction_enabled_flag will be 0.
  • gps_num_ref_frames_minus1+1 (value obtained by adding 1 to gps_num_ref_frames_minus1) specifies the number of reference point cloud frames referenced in the GPS referencing frame.
  • the value of gps_num_ref_frames_minus1 must be in the range 0 to sps_max_num_ref_frames_minus1.
  • gps_num_ref_frames_minus1 is included in GPS when gps_inter_prediction_enabled_flag is 1, and is not included in GPS when gps_inter_prediction_enabled_flag is 0.
  • the 3D data encoding device indicates in the sequence parameter set and the location information parameter set whether inter-prediction encoding is allowed, such as sps_inter_prediction_enabled_flag and gps_inter_prediction_enabled_flag. Information may be communicated to the three-dimensional data decoding device.
  • inter prediction encoding is performed, for example, sps_max_num_ref_frames_minus1 and gps_num_ref_frames_minus1. Information on the number of frames to be referred to in or the maximum value thereof may be notified to the three-dimensional data decoding device.
  • MaxNumRefFrames is a fixed value defined as a requirement to be satisfied by the 3D data decoding device, and may be set to several frames such as 6 frames. If both are processed using the same value, values greater than these may be used.
  • information indicating whether or not the implementation of inter prediction encoding is permitted and information regarding the number of frames referred to in inter prediction encoding or the maximum value thereof may be stored in both SPS and GPS. Alternatively, it may be stored in only one. Also, these information may be stored in control information other than SPS and GPS.
  • FIGS. 39 to 45 may be implemented in combination with at least part of other disclosures in the present disclosure. Also, some of the devices, processes, and syntaxes disclosed using FIGS. 39 to 45 may be implemented in combination with other disclosures.
  • each device may have only some of the components.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • the three-dimensional data encoding device performs motion compensation on a plurality of encoded point groups (S12801).
  • the 3D data encoding device generates a reference point group (for example, the inter reference point group shown in FIG. 41) by integrating (synthesizing) a plurality of coded point groups after motion compensation (S12802).
  • the three-dimensional data encoding device generates an N-ary tree structure (N is an integer equal to or greater than 2) of the target point group (for example, the target octatree shown in FIG. 41) (S12803).
  • the three-dimensional data encoding device uses the reference point group to encode the N-ary tree structure of the target point group (S12804).
  • N is, for example, 8, it may be an arbitrary power of 2, or may be any other value.
  • the three-dimensional data encoding device can improve the encoding efficiency by encoding the target point group using a reference point group obtained by integrating a plurality of encoded point groups.
  • the 3D data encoding device performs motion compensation for the target point group on the reference point group, and converts the N-branch tree of the reference point group after motion compensation into A structure (for example, the inter-reference octatree shown in FIG. 41) is generated, and the N-tree structure of the reference point cloud is used to encode the N-tree structure of the target point cloud.
  • a structure for example, the inter-reference octatree shown in FIG. 41
  • the three-dimensional data encoding device entropy-encodes the N-branch tree structure of the target point group, and uses the entropy encoding based on the reference point group.
  • control the probability parameter For example, the 3D data encoding device selects a probability parameter to use from a plurality of probability parameters based on the reference point cloud.
  • a three-dimensional data encoding device generates an encoded target point group (for example, the encoded point group shown in FIG. 41) from the N-ary tree structure of the target point group, and generates the encoded target point group Then, motion compensation is performed on the reference point cloud, and the reference point cloud is updated by integrating the encoded target point cloud after motion compensation into the reference point cloud.
  • an encoded target point group for example, the encoded point group shown in FIG. 41
  • each of a plurality of coded point clouds belongs to a frame different from the target point cloud.
  • each of the coded point clouds belongs to the same frame as the target point cloud.
  • the three-dimensional data encoding device converts the first information (for example, sps_inter_prediction_enabled_flag or gps_inter_prediction_enabled_flag) indicating whether or not the implementation of encoding using the reference point cloud is permitted to control information common to multiple point clouds. (eg SPS or GPS).
  • the first information for example, sps_inter_prediction_enabled_flag or gps_inter_prediction_enabled_flag
  • the three-dimensional data encoding device uses the second information about the number of encoded point clouds (for example, , sps_max_num_ref_frames_minus1, or gps_num_ref_frames_minus1) is stored in control information common to multiple point clouds (for example, SPS or GPS).
  • the second information indicates the number of coded point clouds to be integrated or the maximum number.
  • a three-dimensional data encoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • the three-dimensional data decoding device performs motion compensation on a plurality of decoded point groups (S12811).
  • the three-dimensional data decoding device generates a reference point group (for example, the inter reference point group shown in FIG. 42) by integrating (synthesizing) a plurality of decoded point groups after motion compensation (S12812).
  • the three-dimensional data decoding device uses the reference point group to decode the N-ary tree structure (N is an integer equal to or greater than 2) (for example, the decoding octatree shown in FIG. 42) of the target point group (S12813).
  • the three-dimensional data decoding device acquires the N-branch tree structure of the target point group by decoding the bitstream (encoded data) generated by encoding the N-branch tree structure of the target point group. .
  • the three-dimensional data decoding device generates a decoded point group of the target point group from the N-ary tree structure of the target point group (S12814).
  • N is, for example, 8, it may be an arbitrary power of 2, or may be any other value.
  • the three-dimensional data decoding device can decode the target point group using a reference point group obtained by integrating a plurality of decoded point groups.
  • the 3D data decoding device performs motion compensation for the target point group on the reference point group, and the N-branch tree structure of the reference point group after motion compensation ( For example, an inter-reference octatree shown in FIG. 42 is generated, and the N-tree structure of the target point group is decoded using the N-tree structure of the reference point group.
  • the three-dimensional data decoding device entropy-decodes the N-branch tree structure of the target point group, and based on the reference point group, the probability parameter used in entropy decoding to control. For example, the 3D data decoding device selects a probability parameter to use from a plurality of probability parameters based on the reference point group.
  • the 3D data decoding device performs motion compensation on the decoded point group of the target point group with respect to the reference point group, and integrates the decoded point group after motion compensation into the reference point group, thereby updating the reference point group.
  • each of the multiple decoded point clouds belongs to a frame different from the target point cloud.
  • each of the decoded point clouds belongs to the same frame as the target point cloud.
  • the three-dimensional data decoding device converts first information (eg, sps_inter_prediction_enabled_flag or gps_inter_prediction_enabled_flag) indicating whether or not decoding using a reference point cloud is permitted to control information (eg, SPS or GPS).
  • first information eg, sps_inter_prediction_enabled_flag or gps_inter_prediction_enabled_flag
  • control information eg, SPS or GPS
  • the three-dimensional data decoding device uses the second information (for example, sps_max_num_ref_frames_minus1, or gps_num_ref_frames_minus1) is obtained from control information common to multiple point clouds (for example, SPS or GPS).
  • the second information indicates the number of decoded point clouds to be integrated or the maximum number.
  • a three-dimensional data decoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • FIG. 48 is a block diagram of a three-dimensional data encoding device 12900 according to this embodiment. Note that FIG. 48 shows a processing unit related to encoding of point cloud position information (geometry). may be provided with other processing units. In inter-prediction and intra-prediction, a point group to be encoded is encoded while referring to an already-encoded point group.
  • the 3D data encoding device 12900 includes a grouping unit 12901, a buffer 12902, a quantization unit 12903, an inverse quantization unit 12904, a buffer 12905, an intra prediction unit 12906, a buffer 12907, and a motion detection compensation unit. 12908, an inter prediction unit 12909, a switching unit 12910, and an entropy coding unit 12911.
  • the grouping unit 12901 extracts a point group as a prediction tree (Predtree), which is one unit of encoding, from the target point group, which is the input point group data to be encoded, and sets it as one group. .
  • the position of the point group is represented by, for example, three-dimensional coordinates (eg, x, y, z).
  • Buffer 12902 holds the generated prediction tree.
  • the buffer 12902 may initialize data held for each prediction tree.
  • a plurality of 3D points included in the prediction tree (Predtree) held in the buffer 12902 are sequentially subjected to encoding processing one by one.
  • the three-dimensional coordinates may be represented by orthogonal coordinates or polar coordinates. In the following description, positional information represented by orthogonal coordinates is referred to as positional information of a rectangular coordinate system, and positional information represented by polar coordinates is referred to as positional information of a polar coordinate system.
  • first residual signal the difference between each of the plurality of three-dimensional points included in the prediction tree (Predtree) and the selected prediction point is calculated.
  • This first residual signal is also called a prediction residual.
  • the first residual signal is an example of the first residual.
  • Quantization section 12903 quantizes the first residual signal.
  • the entropy coding unit 12911 entropy-codes the quantized first residual signal to generate coded data, and outputs (generates) a bitstream containing the coded data.
  • the inverse quantization section 12904 inversely quantizes the first residual signal quantized by the quantization section 12903 .
  • the inversely quantized first residual signal is added to the prediction value based on the selected prediction point (one or more candidate points) as a three-dimensional point (reference point) used for intra prediction and inter prediction. Decrypted. Note that the predicted value is calculated based on the position information of one or more candidate points, as described in the above embodiment.
  • the buffer 12905 holds the decoded intra-prediction reference point group. For example, the buffer 12905 may initialize data held for each prediction tree (target point group).
  • the buffer 12907 holds inter-prediction reference point groups. For example, the buffer 12907 may initialize data held for each prediction tree (target point group).
  • the intra prediction unit 12906 selects intra prediction points to be used for prediction, such as a plurality of 3D points (reference point group for intra prediction) included in a prediction tree (Predtree) including 3D points to be encoded.
  • the information in the prediction tree (Predtree) is referred to and determined by a predetermined method.
  • the intra prediction unit 12906 uses two inversely quantized 3D points (decoding points) immediately before the 3D point to be encoded (for example, an ancestor node such as a parent node of a prediction tree). Intra prediction points may be determined by inserting.
  • a motion detection compensation unit 12908 reproduces an encoded point group based on a plurality of 3D points (a plurality of decoding points) included in a prediction tree (Predtree) including the 3D points to be encoded, and performs encoding.
  • Predtree prediction tree
  • motion detection detecting the displacement between the coded point cloud and the point cloud to be coded
  • motion compensation correcting the coded point cloud based on the detected displacement
  • Generate an inter-prediction point cloud which is a reference point cloud for inter-prediction.
  • the inter prediction unit 12909 determines inter prediction points to be used for prediction by a predetermined method based on the motion-compensated inter prediction point group. For example, the inter prediction unit 12909 may select the point closest to the intra prediction point as the inter prediction point from the inter prediction point group, or may perform the encoding immediately before (last) without referring to the intra prediction point.
  • a 3D point near a 3D point e.g., a 3D point corresponding to an ancestor node such as a parent node of a prediction tree
  • the 3D point closest to the previously encoded 3D point e.g., the 3D point closest to the previously encoded 3D point
  • the switching unit 12910 selects either intra prediction points or inter prediction points to determine prediction points to be used for prediction.
  • position information of one or more candidate points among a plurality of encoded three-dimensional points is determined as a prediction point, and a prediction value is calculated based on the prediction point.
  • the intra prediction unit 12906 and the inter prediction unit 12909 determine a prediction point (intra prediction point or inter prediction point) based on the 3D point encoded immediately before the 3D point to be encoded. That is, the 3D data encoding device 12900 determines one or more candidate points for calculating the predicted value based on one or more reference points among the plurality of encoded 3D points.
  • One or more reference points are 3D points encoded immediately before the 3D point to be encoded, and correspond to, for example, parent nodes (ancestor nodes) of one 3D point to be encoded in the prediction tree. It may be a three-dimensional point that
  • the 3D data encoding device 12900 may select either one of the intra prediction points and the inter prediction points as the prediction point according to the procedure of the flowchart of FIG. 50, which will be described later.
  • Information about prediction (prediction information) for selecting which of intra prediction points and inter prediction points to use as prediction points may be entropy-encoded and described in the header of each three-dimensional point. Alternatively, it may be described interleaved with each 3D point.
  • Information related to motion compensation such as motion vectors may be described in the header of a frame or prediction tree (Predtree), or may be entropy-encoded and described in the header of each 3D point, It may be described interleaved with each 3D point.
  • the reference point group for inter prediction may be a point group included in an encoded frame different from the encoding target frame, or may be a point group included in the same frame as the encoding target frame. It can be a group.
  • the three-dimensional data encoding device 12900 predicts the encoding target point using inter prediction in addition to intra prediction, thereby reducing the amount of information in the first residual signal to be entropy encoded. can improve the coding efficiency.
  • the three-dimensional data encoding device 12900 does not always need to refer to the inter prediction point, and may use a predetermined time interval (for example, every 1 second), a predetermined frame interval (for example, every 30 frames), or a three-dimensional
  • the buffer 12907 that stores the reference point cloud for inter prediction is initialized at an arbitrary timing to notify the data decoding device, so that encoding is performed based only on the information of the point cloud to be encoded. may
  • the three-dimensional data encoding device 12900 encodes the position information indicated by the coordinates represented by orthogonal coordinates.
  • the 3D data encoding device 12900 encodes the position information indicated by the coordinates represented by polar coordinates.
  • FIG. 49 is a block diagram of the three-dimensional data decoding device 12920 according to this embodiment.
  • FIG. 49 shows a processing unit related to decoding of point cloud position information (geometry).
  • a processing unit may be provided.
  • the three-dimensional data decoding device 12920 performs inter-prediction decoding to decode the point group to be decoded while referring to the decoded point group.
  • the 3D data decoding device 12920 decodes the bitstream generated by the 3D data encoding device 12900 shown in FIG.
  • the 3D data decoding device 12920 includes an entropy decoding unit 12921, an inverse quantization unit 12922, a buffer 12923, an intra prediction unit 12924, a buffer 12925, a motion compensation unit 12926, an inter prediction unit 12927, and a switching unit 12928. and
  • the 3D data decoding device 12920 acquires the bitstream generated by the 3D data encoding device 12900 .
  • the entropy decoding unit 12921 generates a quantized first residual signal by entropy decoding the input bitstream for each three-dimensional point of the prediction tree (Predtree).
  • the inverse quantization section 12922 inversely quantizes the quantized first residual signal to reproduce the first residual signal.
  • the first residual signal of each 3D point is added to the prediction value based on the prediction point corresponding to each 3D point, and then generated (output) as a decoded point.
  • the 3D data decoding device 12920 calculates the position information of one 3D point to be decoded by adding the prediction value and the prediction residual.
  • the buffer 12923 holds the generated decoding points as a reference point group for intra prediction. For example, the buffer 12923 may initialize data held for each prediction tree (target point group). Also, the buffer 12925 holds the generated decoding points as a reference point group for inter prediction. For example, the buffer 12925 may initialize data held for each prediction tree (target point group).
  • the intra prediction unit 12924 selects intra prediction points to be used for prediction, such as a plurality of three-dimensional points (reference point group for intra prediction) included in a prediction tree (Predtree) including a three-dimensional point to be decoded.
  • the information in the tree (Predtree) is referred to and determined by a predetermined method.
  • the intra prediction unit 12924 extrapolates using two inversely quantized 3D points (decoding points) immediately before the 3D point to be decoded (eg, an ancestor node such as a parent node of the prediction tree).
  • Intra prediction points may be determined by, for example,
  • the motion compensation unit 12926 reproduces the decoded point group based on a plurality of 3D points (a plurality of decoding points) included in the prediction tree (Predtree) including the 3D point to be decoded, and reproduces the decoded point group.
  • An inter-prediction point group which is a reference point group for inter-prediction after alignment, is generated by correcting (motion compensation) the displacement between the group and the point group to be decoded.
  • the inter prediction unit 12927 determines inter prediction points to be used for prediction by a predetermined method based on the motion-compensated inter prediction point group. For example, the inter prediction unit 12927 may select a point closest to the intra prediction point from the inter prediction point group as the inter prediction point, or may select the point closest to the intra prediction point as the inter prediction point. A 3D point (e.g., the closest 3D point to the previously decoded 3D point) near the original point (e.g., the 3D point corresponding to an ancestor node such as the parent node of the prediction tree) is selected as the inter prediction point.
  • a 3D point e.g., the closest 3D point to the previously decoded 3D point
  • the original point e.g., the 3D point corresponding to an ancestor node such as the parent node of the prediction tree
  • the switching unit 12928 selects either intra prediction points or inter prediction points to determine prediction points to be used for prediction.
  • the position information of one or more candidate points among the plurality of decoded 3D points is determined as the predicted point, and the predicted value is calculated based on the predicted point.
  • the intra prediction section 12924 and the inter prediction section 12927 determine a prediction point (intra prediction point or inter prediction point) based on the 3D point decoded immediately before the 3D point to be decoded. That is, 3D data decoding device 12920 determines one or more candidate points for calculating the predicted value based on one or more reference points among the plurality of decoded 3D points.
  • the one or more reference points are 3D points encoded immediately before the 3D point to be decoded. It may be the origin point.
  • the 3D data decoding device 12920 may select either one of the intra prediction points and the inter prediction points as the prediction point according to the procedure of the flowchart of FIG. 51, which will be described later.
  • the three-dimensional data decoding device 12920 selects which of the intra prediction points and the inter prediction points to use as the prediction point, based on the information about prediction (prediction information), the intra prediction point and the inter prediction point You may select any one of as a prediction point.
  • the prediction information may be entropy-encoded and described in the header of each 3D point, or may be described interleaved with each 3D point.
  • Information related to motion compensation such as motion vectors may be described in the header of a frame or prediction tree (Predtree), entropy-encoded and described in the header of each point, or may be described in the header of each point. It may be described interleaved with the origin point. In this way, prediction information or information on motion compensation may be reported from the corresponding 3D data encoding device 12900 to the 3D data decoding device 12920 .
  • the reference point group for inter prediction may be a point group included in an encoded frame different from the encoding target frame, or may be a point group included in the same frame as the encoding target frame. It can be a group.
  • the three-dimensional data decoding device 12920 predicts the decoding target points using not only intra prediction but also inter prediction, thereby referring to the decoded point cloud and bitstream (for example, The point cloud can be decoded from the bitstream output from the 3D data encoding device 12900 in FIG.
  • the three-dimensional data decoding device 12920 does not always need to refer to the inter prediction point, and can be set at a predetermined time interval (eg, every 1 second), a predetermined frame interval (eg, every 30 frames), or a corresponding cubic
  • the buffer 12925 storing the reference point group for inter prediction is initialized, and decoding is performed based only on the information of the point group to be decoded. You may do so.
  • the three-dimensional data decoding device 12920 can start jumping playback from a point group that is not the head of a bitstream that does not refer to an inter-prediction point, and can improve random access and error resistance of the bitstream. have a nature.
  • the 3D data decoding device 12920 decodes the position information indicated by the coordinates expressed by the orthogonal coordinates when the bitstream has encoded data in which the position information indicated by the coordinates expressed by the orthogonal coordinates is encoded. .
  • the 3D data decoding device 12920 decodes the position information indicated by the coordinates expressed in polar coordinates when the bitstream has encoded data in which the position information indicated by the coordinates expressed in polar coordinates is encoded.
  • FIG. 50 is a flowchart showing an example of a procedure for encoding each 3D point of a prediction tree (Predtree) in the 3D data encoding device 12900.
  • Predtree a prediction tree
  • the 3D data encoding device 12900 first determines intra prediction points from a reference point group for intra prediction (S12901).
  • the 3D data encoding device 12900 may determine intra prediction points using, for example, the method of determining prediction points using a prediction tree, disclosed in the embodiments already described.
  • the 3D data encoding device 12900 generates a prediction tree using a plurality of encoded 3D points, and selects one or more candidate points from the plurality of encoded 3D points based on the prediction tree. You may choose.
  • the 3D data encoding device 12900 may determine a prediction point with the smallest code amount as an intra prediction point among at least one intra prediction point determined by at least one of the above methods.
  • the 3D data encoding device 12900 may generate a prediction point having the smallest absolute value sum (or square sum) of coordinate residuals among at least one intra prediction point determined by at least one of the above methods. may be determined as intra prediction points.
  • the 3D data encoding device 12900 outputs intra-prediction-related parameters (S12902). If there are two or more candidates for the intra prediction point determination method determined in step S12901, the 3D data encoding device 12900 outputs information indicating the selected determination method candidate to the bitstream as an intra prediction related parameter. may
  • the 3D data encoding device 12900 determines inter prediction points by referring to at least one candidate point extracted from the inter prediction point group. For example, the 3D data encoding device 12900 may determine one candidate point as an inter prediction point, or determine a prediction point having coordinates that are average values of coordinates of a plurality of candidate points as an inter prediction point. good too. Alternatively, the 3D data encoding device 12900 may determine a prediction point having, as coordinates, an average value of the coordinates of the intra prediction point and at least one candidate point, as the inter prediction point.
  • the 3D data encoding device 12900 may search for a point located near the intra prediction point as at least one candidate point (S12903).
  • the 3D data encoding device 12900 may assign a smaller index value to each of the determined at least one inter prediction point in descending order of proximity to the intra prediction point (S12904).
  • the 3D data encoding device 12900 determines whether or not the search has ended (S12905), and if the search has ended (Yes in S12905), the process proceeds to the next step S12906, where the search has not ended. If so (No in S12905), the process returns to step S12903.
  • the end of the search may be determined by finding a predetermined number of inter-prediction points, by searching for all points in a predetermined range, or by searching for a predetermined number of inter-prediction points. or searching all of the point cloud in the predetermined range.
  • the 3D data encoding device 12900 determines a prediction method (S12906). Specifically, the 3D data encoding device 12900 determines whether the method for determining prediction points is intra prediction or inter prediction. That is, the 3D data encoding device 12900 determines whether to determine the intra prediction point as the prediction point or the inter prediction point as the prediction point. For example, the 3D data encoding device 12900 may determine the prediction method for the prediction point with the smallest amount of code among the intra prediction points and the inter prediction points. Also, the 3D data encoding device 12900 may determine a prediction method for a prediction point with the smallest sum of absolute values (or sum of squares) of coordinate residuals among intra prediction points and inter prediction points.
  • Three-dimensional data encoding device 12900 determines whether the determined prediction method mode is an inter mode indicating that the prediction method is inter prediction or an intra prediction mode indicating that the prediction method is intra prediction. Determine (S12907).
  • the 3D data encoding device 12900 adds identification information (for example, a flag) indicating that the inter prediction point is determined as the prediction point to the bitstream. Output (S12908).
  • identification information for example, a flag
  • the 3D data encoding device 12900 uses bit Output to stream (S12909). Index values may be assigned to one or more candidate points that are used to determine predicted values.
  • 3D data encoding apparatus 12900 sets identification information (for example, a flag) indicating that an intra prediction point has been determined as a prediction point by bit Output to stream (S12911).
  • identification information in steps S12908 and S12911 is information indicating whether the inter prediction point or the intra prediction point was determined as the prediction point.
  • the 3D data encoding device 12900 refers to the prediction points obtained by the determined prediction method and encodes the coordinate information of the 3D points to be encoded (S12910).
  • the 3D data encoding device 12900 refers to the inter prediction point group and the intra prediction points to determine at least one inter prediction point, and obtains a prediction point from these intra prediction points and inter prediction points. A method is determined, and the position information (coordinate information) of the 3D point to be encoded is encoded with reference to the predicted point.
  • the 3D point encoded immediately before for example, the 3D point corresponding to the ancestor node such as the parent node of the prediction tree.
  • An inter-prediction point may be searched for in the neighborhood of a three-dimensional point uniquely determined by .
  • S12902 may not be performed immediately after S12901, and S12902 may be performed immediately after S12911.
  • FIG. 51 is a flowchart showing an example of a procedure for decoding each 3D point of a prediction tree (Predtree) in the 3D data decoding device 12920.
  • FIG. FIG. 51 corresponds to decoding of a bitstream generated according to the encoding procedure of FIG. That is, the bitstream includes an encoded first residual signal (prediction residual) and an index value assigned to one candidate point used to calculate the predicted value.
  • Prediction residual an encoded first residual signal
  • the 3D data decoding device 12920 first acquires intra-prediction-related parameters from the bitstream (S12921).
  • the 3D data decoding device 12920 determines intra prediction points based on the acquired intra prediction related parameters (S12922). Specifically, 3D data decoding device 12920 determines intra prediction points in the same manner as step S12901 in FIG. The 3D data decoding device 12920 is notified of the intra prediction related parameter from the corresponding 3D data encoding device 12900, and determines an intra prediction point according to the intra prediction related parameter. Intra-prediction-related parameters are obtained in step S12921 and include information specifying at least one method of determining intra-prediction points and parameters accompanying this information.
  • the 3D data decoding device 12920 acquires identification information indicating the prediction method mode from the bitstream (S12923).
  • three-dimensional data decoding device 12920 determines whether the acquired identification information indicates an inter mode indicating that the prediction method is inter prediction or an intra prediction mode indicating that the prediction method is intra prediction. Determine (S12924).
  • the 3D data decoding device 12920 acquires inter prediction related parameters from the bitstream (S12925).
  • the 3D data decoding device 12920 executes processing (S12926 to S12929) for determining inter prediction points. Specifically, 3D data decoding device 12920 determines inter prediction points in the same manner as steps S12903 to S12905 in FIG. For example, the 3D data decoding device 12920 determines inter prediction points by referring to at least one candidate point extracted from the inter prediction point group. For example, the 3D data decoding device 12920 may determine one candidate point as an inter prediction point, or may determine a prediction point having coordinates that are average values of coordinates of a plurality of candidate points as an inter prediction point. good. Alternatively, the 3D data decoding device 12920 may determine a prediction point having, as coordinates, an average value of coordinates of an intra prediction point and at least one candidate point, as an inter prediction point.
  • the 3D data decoding device 12920 may search for a point located near the intra prediction point as at least one candidate point (S12926).
  • the 3D data decoding device 12920 may assign a smaller index value to each of the determined at least one inter prediction point in descending order of proximity to the intra prediction point (S12927).
  • the three-dimensional data decoding device 12920 determines whether or not the search has ended (S12928). If the search has ended (Yes in S12928), the process proceeds to the next step S12929. (No in S12928), the process returns to step S12926.
  • the end of the search may be determined by finding a predetermined number of inter-prediction points, by searching for all points in a predetermined range, or by searching for a predetermined number of inter-prediction points. or searching all of the point cloud in the predetermined range.
  • the 3D data decoding device 12920 determines inter prediction points based on inter prediction related parameters while referring to the inter prediction point group and intra prediction points (S12929). For example, the 3D data decoding device 12920 includes information about the number of candidate points used to determine the coordinates of the inter prediction point, which are included in the inter prediction related parameters, and an index value assigned to each candidate point used. Inter prediction points are determined by identifying candidate points used for determining the coordinates of inter prediction points based on and determining the coordinates of inter prediction points using the identified candidate points. That is, the 3D data decoding device 12920 selects one candidate point from a plurality of decoded 3D points based on the index value included in the bitstream.
  • the 3D data decoding device 12920 refers to the prediction point obtained by the specified prediction method, and the position information (coordinate information) of the 3D point to be decoded. ) is decoded (S12930).
  • the three-dimensional data decoding device 12920 refers to the inter prediction point to decode the coordinate information of the point to be decoded, and when the prediction method is intra prediction, intra prediction Decode the coordinate information of the point to be decoded by referring to the point.
  • S12926 without referring to the intra prediction point, without depending on the intra prediction related parameters such as the previously decoded three-dimensional point (for example, the three-dimensional point corresponding to the ancestor node such as the parent node of the prediction tree)
  • An inter-prediction point may be searched in the vicinity of the uniquely determined 3D point.
  • S12921 and S12922 may not be performed immediately before S12923, and S12921 and S12922 may be performed when the intra mode is determined in S12924.
  • FIG. 52 is a block diagram of a three-dimensional data encoding device 12930 according to a modified example of this embodiment. Note that FIG. 52 shows a processing unit for encoding the position information (geometry) of the point cloud, but the three-dimensional data encoding device 12930 includes a processing unit for encoding the attribute information of the point cloud, etc. may be provided with other processing units. In inter-prediction and intra-prediction, a point group to be encoded is encoded while referring to an already-encoded point group.
  • the three-dimensional data encoding device 12930 differs from the three-dimensional data encoding device 12900 in FIG. 48 in its configuration and operation by converting point groups having position information expressed in rectangular coordinates into position information expressed in polar coordinates.
  • the 3D data encoding device 12930 is the same as the 3D data encoding device 12900 in terms of its configuration and operation, except for the above differences.
  • the three-dimensional data encoding device 12930 includes a coordinate transformation unit 12931, a grouping unit 12932, a buffer 12933, a buffer 12934, an intra prediction unit 12935, a buffer 12936, a motion detection compensation unit 12937, and an inter prediction unit 12938. , a switching unit 12939 , a coordinate transformation unit 12940 , a buffer 12941 , a quantization unit 12942 , and an entropy coding unit 12943 .
  • the coordinate conversion unit 12931 converts the coordinate system of the position information of the target point group, which is the input point group data to be encoded, from the orthogonal coordinate system to the polar coordinate system. That is, the coordinate transformation unit 12931 generates position information in the polar coordinate system by transforming the coordinate system of the position information in the orthogonal coordinate system of one three-dimensional point to be encoded.
  • the point group to be encoded converted into polar coordinates is output to the grouping unit 12932 .
  • the grouping unit 12932 extracts a point group as a prediction tree (Predtree), which is one unit of encoding, from the target point group, which is the point group to be encoded converted into polar coordinates, and sets it as one group.
  • Buffer 12933 holds the generated prediction tree.
  • the buffer 12933 may initialize data held for each prediction tree.
  • a plurality of three-dimensional points included in the prediction tree (Predtree) held in the buffer 12933 are sequentially subjected to encoding processing one by one.
  • the difference (first residue difference signal) is calculated.
  • This first residual signal is a residual signal of positional information expressed in polar coordinates.
  • the first residual signal is also called prediction residual.
  • This first residual signal is an example of the first residual. Since the positional information of the plurality of three-dimensional points held in the buffer 12933 has been converted into the polar coordinate system, the first residual is the difference between the positional information in the polar coordinate system after conversion and the predicted value.
  • the first residual signal and the prediction point are added and held in buffers 12934 and 12936 as decoded points that have undergone coding processing.
  • the position information of the decoding points held in the buffers 12934 and 12936 is represented by polar coordinates.
  • the functions of buffers 12934 and 12936 differ from those of buffers 12905 and 12907, but otherwise the functions are the same.
  • the intra prediction unit 12935, the motion detection compensation unit 12937, the inter prediction unit 12938, and the switching unit 12939 similarly express the position information of the three-dimensional point to be processed in polar coordinates.
  • the functions are different from those of the motion detection/compensation unit 12908, the inter prediction unit 12909, and the switching unit 12910, but the other functions are the same.
  • the coordinate transformation unit 12940 acquires the same decoding points as the decoding points held in the buffers 12934 and 12936, and transforms the coordinate system of the position information of the acquired decoding points from the polar coordinate system to the rectangular coordinate system. That is, the coordinate transformation unit 12940 inversely transforms the coordinate system of the position information in the polar coordinate system after transformation by the coordinate transformation unit 12931 to generate the position information in the rectangular coordinate system.
  • the buffer 12941 holds the position information of the 3D points expressed in orthogonal coordinates that is input to the 3D data encoding device 12930 .
  • the difference (second residual signal) between the input positional information in the rectangular coordinate system and the positional information in the rectangular coordinate system whose coordinate system is converted from the polar coordinate system to the rectangular coordinate system in the coordinate conversion unit 12940 is calculated.
  • This second residual signal is an example of the second residual. That is, the second residual signal is the position information in the orthogonal coordinate system that has not been coordinate-transformed by the coordinate transforming unit 12931, and the position information that has been transformed back into the orthogonal coordinate system after once being transformed into the polar coordinates. , and is a transformation error generated by coordinate transformation.
  • the quantization unit 12942 quantizes the second residual signal.
  • the entropy encoding unit 12943 entropy-encodes the first residual signal and the quantized second residual signal to generate encoded data, and outputs a bitstream containing the encoded data.
  • the 3D data encoding device 12930 converts the coordinate system of the position information of the 3D points from the orthogonal coordinate system to the polar coordinate system, and encodes the position information in the polar coordinate system.
  • FIG. 53 is a block diagram of a 3D data decoding device 12950 according to a modification of the present embodiment.
  • FIG. 53 shows a processing unit related to decoding of point cloud position information (geometry).
  • a processing unit may be provided.
  • the three-dimensional data decoding device 12950 performs inter-prediction decoding for decoding the point group to be decoded while referring to the decoded point group.
  • the 3D data decoding device 12950 decodes the bitstream generated by the 3D data encoding device 12930 shown in FIG.
  • the three-dimensional data decoding device 12950 does not perform inverse quantization of the first residual signal (prediction residual) in its basic configuration and operation, unlike the three-dimensional data decoding device 12920 in FIG.
  • the three-dimensional data decoding device 12950 is the same as the three-dimensional data decoding device 12920 except for the above differences.
  • the three-dimensional data decoding device 12950 includes an entropy decoding unit 12951, a buffer 12952, an intra prediction unit 12953, a buffer 12954, a motion compensation unit 12955, an inter prediction unit 12956, a switching unit 12957, and a coordinate transformation unit 12958. , and an inverse quantization unit 12959 .
  • the entropy decoding unit 12951 entropy-decodes the input bitstream for each three-dimensional point of the prediction tree (Predtree) to generate a first residual signal and a quantized second residual signal.
  • the first residual signal of each 3D point is added to the prediction value based on the prediction point corresponding to each 3D point, and then generated (output) as a decoded point expressed in polar coordinates.
  • the buffer 12952 holds the generated decoding points as a reference point group for intra prediction.
  • the buffer 12952 may initialize data held for each prediction tree (target point group).
  • the buffer 12954 holds the generated decoding points as a reference point group for inter prediction.
  • the buffer 12954 may initialize data held for each prediction tree (target point group).
  • the position information of the decoding points held in the buffers 12952 and 12954 is represented by polar coordinates. In this respect, the functions of buffers 12952 and 12954 are different from those of buffers 12923 and 12925, but otherwise the functions are the same.
  • the intra prediction unit 12953, the motion compensation unit 12955, the inter prediction unit 12956, and the switching unit 12957 also have the position information of the three-dimensional point to be processed expressed in polar coordinates.
  • Compensation section 12926, inter prediction section 12927, and switching section 12928 have different functions, but other functions are the same.
  • the coordinate transformation unit 12958 acquires the same decoding points as the decoding points held in the buffers 12952 and 12954, and transforms the coordinate system of the position information of the acquired decoding points from the polar coordinate system to the rectangular coordinate system.
  • the inverse quantization unit 12959 inversely quantizes the quantized second residual signal to reproduce the second residual signal.
  • the position information in the orthogonal coordinate system obtained by the coordinate transformation by the coordinate transformation unit 12958 and the second residual signal inversely quantized by the inverse quantization unit 12959 and reproduced are added and then converted to the orthogonal coordinate system. is generated (output) as a decoding point including the position information of .
  • the three-dimensional data decoding device 12950 converts the coordinate system of the decoding point having the position information of the polar coordinate system from the polar coordinate system to the orthogonal coordinate system, and converts the position information of the orthogonal coordinate system and the position information of the polar coordinate system. Means are provided for adding to a second residual signal in rectangular coordinates corresponding to the error resulting from the transformation between the two. As a result, the three-dimensional data decoding device 12950 converts the encoded bitstream (for example, the bitstream output from the three-dimensional data encoding device 12930 in FIG. 52) while referring to the encoded point group in the polar coordinates to A point cloud can be decoded.
  • the encoded bitstream for example, the bitstream output from the three-dimensional data encoding device 12930 in FIG. 52
  • Fig. 54 is an example of syntax for a geometry parameter set (GPS). This syntax is used in the 3D data encoding devices 12900, 12930 and the 3D data decoding devices 12920, 12950 described with reference to FIGS.
  • GPS geometry parameter set
  • gps_alt_coordinates_flag information indicating whether or not to use a coordinate system other than rectangular coordinates such as polar coordinates in decoding processing of each point may be notified.
  • one or more candidates used for calculating the predicted value This is the case where the position information of the point and the position information of one 3D point to be encoded used for calculating the first residual are the position information of the polar coordinate system.
  • the bitstream contains the gps_coordinate_trans_enabled_flag.
  • gps_coordinate_trans_enabled_flag is an example of second identification information indicating whether to output position information in a polar coordinate system or to output position information in a rectangular coordinate system in decoding.
  • the 3D data encoding device 12900 shown in FIG. Encoding and decoding of the point cloud may be performed by the three-dimensional data decoding device 12920 shown in .
  • the 3D data encoding device 12930 shown in FIG. Encoding and decoding of the point cloud may be performed by the three-dimensional data decoding device 12950 shown.
  • FIG. 54 illustrates the syntax of GPS, gps_alt_coordinates_flag and gps_coordinate_trans_enabled_flag may be included in the SPS, may be included in the header of the data unit, or may be included in the metadata of other control information. may be included as
  • Fig. 55 is an example of the syntax of each three-dimensional point (Node of Predtree). This syntax is used in the 3D data encoding devices 12900, 12930 and the 3D data decoding devices 12920, 12950 described with reference to FIGS.
  • the 3D data encoding devices 12900 and 12930 first send identification information (pred_mode) indicating how to obtain an intra prediction point at a 3D point to be encoded or decoded to the 3D data decoding devices 12920 and 12950. Notice.
  • the 3D data encoding devices 12900 and 12930 may notify the 3D data decoding devices 12920 and 12950 of additional information for determining intra prediction points according to the identification information (pred_mode).
  • intra_pred_flag encoding Information indicating whether or not the prediction method at the target or decoding target 3D point is intra prediction (that is, inter prediction) may be notified to the 3D data decoding devices 12920 and 12950 .
  • intra_pred_flag encoding Information
  • identification information indicating how to obtain the inter prediction point at the 3D point to be coded or decoded. may be notified. Further, according to the identification information (inter_pred_mode), the 3D data encoding devices 12900 and 12930 set NumRefPoints to the number of candidate points in the inter-prediction point group to be referred to when determining inter-prediction points. NumRefPoints indexes (inter_ref_point_idx) may be notified to the three-dimensional data decoding devices 12920 and 12950 .
  • the 3D data encoding devices 12900 and 12930 may prepare an inter_pred_mode that selects a specific candidate point such as the smallest index by omitting notification of the index of the candidate point.
  • the 3D data encoding devices 12900 and 12930 provide a determination process as to whether or not inter_pred_mode indicates the relevant mode, or set the value of NumRefPoints to 0 to notify the index of the candidate point. may be omitted.
  • it can be implemented if the information necessary for the method for determining inter prediction points is uniquely notified. You may make it notify.
  • pred_mode indicates how to find the intra prediction point, such as the 3D point encoded or decoded immediately before (for example, the 3D point corresponding to the ancestor node such as the parent node of the prediction tree)
  • additional information for determining the identification information (pred_mode) indicating how to obtain the intra prediction point and the intra prediction point may be notified to the 3D data decoding devices 12920 and 12950 .
  • the 3D data encoding devices 12900 and 12930 notify the first difference (1st_residual_value) between the position information (coordinate values) of the point to be encoded or decoded and the position information (coordinate value) of the predicted point. good too.
  • the decoded results in another coordinate system such as polar coordinates are converted to orthogonal coordinates.
  • a second difference (2nd_residual_value) between the position information (coordinate values) coordinate-transformed to the original coordinate system such as the above and the original position information (coordinate values) may be notified.
  • 2nd_residual_value 2nd_residual_value
  • it may be disassembled into a plurality of syntaxes such as the positive/negative information and the absolute value information and notified.
  • the 3D data decoding devices 12920 and 12950 can decode the 3D points to be processed without mismatching with the corresponding 3D data encoding devices 12900 and 12930 .
  • FIGS. 48 to 55 may be implemented in combination with at least part of other embodiments. Also, the devices, processes, part of the syntax, etc. disclosed using FIGS. 48 to 55 may be implemented in combination with other embodiments. Moreover, all the constituent elements disclosed using FIGS. 48 to 55 are not necessarily required, and only some of the constituent elements may be provided.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • the 3D data encoding device determines a predicted value based on the position information of one or more candidate points among the plurality of encoded 3D points (S12931).
  • the 3D data encoding device calculates a prediction residual, which is the difference between the position information of one 3D point to be encoded among the plurality of 3D points and the predicted value (S12932).
  • the 3D data encoding device generates encoded data by encoding the prediction residual (S12933).
  • the 3D data encoding device generates a bitstream containing encoded data (S12934).
  • step S12931 the 3D data encoding device determines one or more candidate points based on one or more reference points among the plurality of encoded 3D points.
  • multiple 3D points constitute a prediction tree.
  • One or more reference points include 3D points corresponding to parent nodes of one 3D point to be encoded.
  • the prediction residual can be reduced. can improve coding efficiency.
  • one or more candidate points are assigned index values.
  • the bitstream also includes index values assigned to the candidate points used to determine the predicted value.
  • the three-dimensional data decoding device can easily identify candidate points based on the index values. Therefore, the processing load on the three-dimensional data decoding device can be reduced.
  • a three-dimensional data encoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • the 3D data decoding device acquires a bitstream containing the encoded prediction residual and the index value assigned to one candidate point used for calculating the prediction value (S12941). Based on the index value, the 3D data decoding device determines one candidate point based on one or more reference points among the plurality of decoded 3D points (S12942). The 3D data decoding device calculates a predicted value based on the determined positional information of one candidate point (S12943). The 3D data decoding device calculates a prediction residual by decoding the encoded prediction residual (S12944). The 3D data decoding device calculates the position information of one 3D point to be decoded by adding the prediction value and the prediction residual (S12945).
  • one candidate point is determined based on one or more reference points among a plurality of encoded three-dimensional points, and decoding is performed using a predicted value based on position information of the determined one candidate point. 3D points of interest can be decoded.
  • multiple 3D points constitute a prediction tree.
  • One or more reference points include 3D points corresponding to parent nodes of one 3D point to be encoded.
  • one or more candidate points are assigned index values.
  • the bitstream also includes index values assigned to the candidate points used to determine the predicted value.
  • the three-dimensional data decoding device can easily identify candidate points based on the index values. Therefore, the processing load on the three-dimensional data decoding device can be reduced.
  • a three-dimensional data decoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • FIG. 58 is a flowchart showing coordinate system switching processing in encoding processing.
  • switching between encoding using the three-dimensional data encoding device 12900 described in FIG. 48 and encoding using the three-dimensional data encoding device 12930 described in FIG. conduct.
  • switching is performed between the encoding of the positional information in the rectangular coordinate system and the encoding of the positional information in the polar coordinate system.
  • the 3D data encoding device confirms the coordinate system of the input point group, and determines the coordinate system for the encoding process and the decoding process (S13001). In other words, the three-dimensional data encoding device determines the coordinate system of the position information to be encoded and decoded.
  • the 3D data encoding device determines whether or not the coordinate system of the input point group is the same as the coordinate system of the determined encoding process and decoding process (S13002).
  • the case where the coordinate system of the input point group is the polar coordinate system and the coordinate system of the encoding process and the decoding process is the orthogonal coordinate system is shown as an example.
  • the coordinate system of the input point group may be orthogonal coordinates, and the coordinate system of the encoding process and the decoding process may be polar coordinates.
  • the polar coordinate system can be read as a rectangular coordinate system, and the rectangular coordinate system can be read as a polar coordinate system.
  • the three-dimensional data encoding device determines whether the encoding coordinate system is a polar coordinate system (orthogonal coordinate system) (S13005).
  • gps_coordinate_trans_enabled_flag and gps_alt_coordinates_flag described using FIG. That is, gps_coordinate_trans_enabled_flag may be indicated to GPS regardless of the presence or absence of gps_alt_coordinates_flag or the value of gps_alt_coordinates_flag.
  • FIG. 59 is a flowchart showing coordinate system switching processing in decoding processing.
  • switching is performed between decoding using the three-dimensional data decoding device 12920 described in FIG. 49 and decoding using the three-dimensional data decoding device 12950 described in FIG.
  • switching between decoding of the position information of the orthogonal coordinate system and decoding of the position information of the polar coordinate system is also performed.
  • the 3D data decoding device analyzes the metadata included in the bitstream (S13011). Specifically, metadata is control information included in GPS, SPS, headers, and the like. The 3D data decoding device checks gps_alt_coordinates_flag and gps_coordinate_trans_enabled_flag included in the metadata.
  • the three-dimensional data decoding device determines to decode in the polar coordinate system (S13013).
  • the 3D data decoding device determines to decode in the orthogonal coordinate system (S13014).
  • the three-dimensional data decoding device decodes the position information in the determined coordinate system without coordinate conversion (S13016). In this case, the position information of the point cloud is decoded using the configuration of the 3D data decoding device 12920 .
  • the coordinate system of the positional information of one three-dimensional point to be decoded is the polar coordinate system.
  • the predicted value Transform the coordinate system of the position information in the polar coordinate system obtained by adding the first residual and the position information in the orthogonal coordinate system obtained by converting the position information of one three-dimensional point to be decoded. Calculated as position information.
  • the encoded data includes a second residual
  • the three-dimensional data decoding device calculates the second residual by decoding the encoded second residual, and obtains one cubic
  • the position information of the orthogonal coordinate system obtained by transforming the coordinate system and the second residual are added, and the position information obtained by the addition is used as the decoding target 1 It is calculated as the position information of one three-dimensional point.
  • the process 1 of steps S13012 to S13014 determines that the coordinate system to be decoded is the polar coordinate system. If the coordinate system to be decoded is determined to be orthogonal coordinates, the determination in process 2 may be skipped and decoding may be performed using the three-dimensional data decoding device 12920 having the configuration shown in FIG.
  • gps_coordinate_trans_enabled_flag is coordinate transformation information indicating whether or not to perform coordinate transformation of the decoded points before each point is output from the 3D data decoding device. , or information indicating whether error information (transformation error) generated by coordinate transformation is included in the bitstream. Further, when the information is included, it may be determined whether or not to perform coordinate transformation in the three-dimensional data decoding device or application.
  • the coordinate system related to the encoding and decoding of the position information has been described as an example, when the coordinate system related to the encoding and decoding of the attribute information corresponds to a plurality of coordinate systems, or the input point group and the output point group If there is a possibility that the coordinate system will switch to another coordinate system, a similar method may be used to switch the processing. For example, a syntax similar to that of FIG. 54 may be included in attribute_parameter_set.
  • the coordinate system for encoding and decoding the position information and the coordinate system for encoding and decoding the attribute information may be controlled to be the same.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • a three-dimensional data encoder encodes a plurality of three-dimensional points in either a Cartesian coordinate system or a polar coordinate system.
  • the 3D data encoding device calculates a predicted value based on position information of one or more candidate points among the plurality of encoded 3D points (S13021).
  • the 3D data encoding device calculates the position information of one 3D point to be encoded among the plurality of 3D points and the first residual, which is the difference between the predicted value (S13022).
  • the 3D data encoding device generates encoded data by encoding the first residual (S13023).
  • the three-dimensional data encoding device generates a bitstream including encoded data and first identification information indicating whether or not the encoded data includes first encoded data calculated in the polar coordinate system (S13024). .
  • the three-dimensional data decoding apparatus uses the first identification information Decryption processing can be appropriately performed based on
  • the bitstream further includes the second identification information.
  • the first identification information indicates that the encoded data includes first encoded data calculated in a polar coordinate system.
  • the second identification information indicates whether to output the position information of the polar coordinate system or the position information of the orthogonal coordinate system in decoding.
  • the bitstream does not include the second identification information.
  • the second identification information indicates that the position information in the polar coordinate system is to be output in decoding.
  • the first residual is quantized, and the quantized first residual is encoded.
  • the coordinate system of the position information of the one three-dimensional point to be encoded in the orthogonal coordinate system is further transformed to generate the position information in the polar coordinate system, and the first residual
  • the three-dimensional data encoding device inversely transforms the coordinate system of the position information in the post-transformed polar coordinate system to the orthogonal coordinate system.
  • Generate location information for The three-dimensional data encoding device calculates a second residual, which is the difference between the position information in the orthogonal coordinate system and the position information in the orthogonal coordinate system after inverse transformation.
  • the encoded data is generated by encoding the first residual and the second residual.
  • the first identification information indicates that the encoded data includes first encoded data.
  • the second identification information indicates that the position information of the orthogonal coordinate system is to be output in decoding.
  • the second identification information indicates whether the encoded data of the second residual is included in the bitstream.
  • a three-dimensional data encoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • a three-dimensional data decoding device decodes a plurality of three-dimensional points in either a rectangular coordinate system or a polar coordinate system.
  • the three-dimensional data decoding device includes encoded data obtained by encoding a first residual, and first identification information indicating whether the encoded data includes first encoded data calculated in a polar coordinate system.
  • a bitstream is acquired (S13031).
  • the 3D data decoding device calculates a predicted value based on the position information of one or more candidate points among the plurality of decoded 3D points (S13032).
  • the three-dimensional data decoding device calculates the first residual by decoding the encoded first residual (S13033).
  • the 3D data decoding device calculates the position information of one 3D point to be decoded by adding the predicted value and the first residual.
  • the coordinate system of the calculated position information of one three-dimensional point to be decoded is a coordinate system depending on whether or not the first encoded data indicated by the first identification information is included.
  • the coordinate system of the position information of one three-dimensional point to be decoded is determined based on the first identification information indicating whether or not the encoded data includes the first encoded data calculated in the polar coordinate system. Therefore, the three-dimensional data decoding device can appropriately perform decoding processing based on the first identification information.
  • the bitstream further includes second identification information indicating whether to output position information in a polar coordinate system or position information in a rectangular coordinate system in decoding.
  • second identification information indicates whether to output position information in a polar coordinate system or position information in a rectangular coordinate system in decoding.
  • the first identification information indicates that the encoded data includes the first encoded data
  • position information of one or more candidate points used to calculate the predicted value and encoding used to calculate the first residual
  • the positional information of one three-dimensional point of interest is positional information in a polar coordinate system.
  • the bitstream does not include the second identification information.
  • the encoded data is data encoded by quantizing the first residual.
  • the coordinate system of the calculated positional information of one three-dimensional point to be decoded is the polar coordinate system.
  • the decoding target In calculating the position information of one three-dimensional point, the coordinate system of the position information of the polar coordinate system obtained by adding the predicted value and the first residual is transformed, and the orthogonal coordinates obtained by transforming The positional information of the system is calculated as the positional information of one 3D point to be decoded.
  • the encoded data when the first identification information indicates that the encoded data includes the first encoded data, and the second identification information indicates that the position information of the orthogonal coordinate system is output in decoding, the encoded data also contains the encoded second residual.
  • the three-dimensional data encoding device calculates the second residual by decoding the encoded second residual. In calculating the position information of one three-dimensional point to be decoded, the position information of the orthogonal coordinate system obtained by transforming the coordinate system and the second residual are added, and the position obtained by adding Information is calculated as the position information of one 3D point to be decoded.
  • the second identification information indicates whether the encoded data of the second residual is included in the bitstream.
  • a three-dimensional data decoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • FIG. 62 illustrates a first example of processing for determining a 3D point group to be referenced when the 3D data encoding apparatus according to the present embodiment encodes a 3D point group to be encoded. It is a diagram for Specifically, FIG. 62 is an example of inter prediction (inter prediction reference method) in the three-dimensional data encoding device described above. Note that the inter-prediction described below will be described using the processing procedure of the three-dimensional data encoding device as an example.
  • the processing procedure for determining the 3D point group to be referred to when the 3D data decoding device decodes the encoded 3D point group to be decoded is the same as the processing procedure of the 3D data encoding device.
  • the 3D data encoding device sets a space (also referred to as a first rectangular parallelepiped) containing a 3D point group to be encoded, and moves the first rectangular parallelepiped based on motion compensation information. , sets up a space (also referred to as a second rectangular parallelepiped) that coincides with the first rectangular parallelepiped.
  • the three-dimensional data encoding device sets the second rectangular parallelepiped by translating the first rectangular parallelepiped.
  • the second rectangular parallelepiped set in this way becomes the space containing the encoded 3D point group (also called inter-reference point group) that is referenced in the encoding of the 3D point group to be encoded.
  • An encoded 3D point group is a point group in which 3D data (for example, position information) of the 3D point group has been encoded.
  • the shape of the space set by the three-dimensional data encoding device does not have to be a rectangular parallelepiped, and may be arbitrary such as a cone or a sphere.
  • FIG. 63 illustrates a second example of processing for determining a 3D point group to be referenced when the 3D data encoding device according to the present embodiment encodes a 3D point group to be encoded. It is a diagram for
  • the three-dimensional data encoding device translates the first rectangular parallelepiped in the same manner as in the above example, and rotates (horizontally in this example) the space containing the inter-reference point group (that is, second rectangular parallelepiped).
  • Horizontal rotation means rotation about an axis corresponding to the vertical direction in real space (that is, rotation about the axis), for example, rotation about the z-axis in a three-dimensional orthogonal coordinate system. .
  • the sides that were parallel to the y-axis in the first rectangular parallelepiped become parallel to the y1-axis in the second rectangular parallelepiped.
  • the sides that were parallel to the x-axis in the first rectangular parallelepiped become parallel to the x1-axis in the second rectangular parallelepiped.
  • the three-dimensional data encoding device sets the second rectangular parallelepiped by horizontally rotating the first rectangular parallelepiped after translating it.
  • the three-dimensional data encoding device may set the second rectangular parallelepiped by horizontally rotating the first rectangular parallelepiped and then translating it.
  • the three-dimensional data encoding device may rotate the first rectangular parallelepiped around a preset z-axis, or rotate a new parallelepiped parallel to the preset z-axis based on the position of the first rectangular parallelepiped.
  • An axis may be set and the first cuboid may be rotated around the set new axis.
  • the three-dimensional data encoding device may set a side of the first rectangular parallelepiped parallel to the z-axis as a new axis.
  • FIG. 64 illustrates a third example of processing for determining a 3D point group to be referred to when the 3D data encoding device according to the present embodiment encodes a 3D point group to be encoded. It is a diagram for
  • the three-dimensional data encoding device sets the second rectangular parallelepiped by translating the first rectangular parallelepiped and then rotating it in 3D.
  • 3D rotation is rotation about one or more axes, respectively.
  • the three-dimensional data encoding device rotates the first rectangular parallelepiped around the x-axis, rotates the rotated first rectangular parallelepiped around the y-axis, further rotates the rotated first rectangular parallelepiped is rotated around the z-axis.
  • the sides that were parallel to the x-axis in the first rectangular parallelepiped become parallel to the x2-axis in the second rectangular parallelepiped.
  • the sides that were parallel to the y-axis in the first rectangular parallelepiped become parallel to the y2-axis in the second rectangular parallelepiped.
  • the sides that were parallel to the z-axis in the first rectangular parallelepiped become parallel to the z2-axis in the second rectangular parallelepiped.
  • the three-dimensional data encoding device rotates around each of at least one of the x-axis, the y-axis, and the z-axis in a three-dimensional orthogonal coordinate system, for example. All you have to do is Also, in the 3D rotation, the three-dimensional data encoding device may rotate about each of at least one axis in an arbitrary order.
  • the three-dimensional data encoding device may rotate the first rectangular parallelepiped around each preset axis, or rotate a new parallelepiped parallel to each preset axis based on the position of the first rectangular parallelepiped.
  • Each axis may be set, and the first rectangular parallelepiped may be rotated around each axis for each newly set axis.
  • prediction mode information indicating which prediction (movement method) in each of the above examples is to be performed is frame, slice, octree, prediction tree (Predtree) or the like, or the prediction mode information may be entropy-encoded and described in the header of the node information of the octree or prediction tree.
  • the first vertex of the first rectangular parallelepiped determined by a predetermined rule for example, selecting the vertex closest to the origin coordinates
  • the corresponding second Motion compensation information indicating the amount of movement between the second vertices of the rectangular parallelepiped and the rotation angle of horizontal rotation or 3D rotation
  • the prediction mode information may be entropy-encoded and described in the header of the node information of the octree or prediction tree.
  • rotation angle does not necessarily need to be expressed as a whole angle, and may be expressed as limited to a range such as ⁇ 30°, for example.
  • another method that can uniquely set the space containing the inter-reference point cloud (for example, a method in which the movement amount is set to zero and motion compensation is not performed) is added and selected. You may make it possible.
  • the prediction accuracy of the occurrence probability of the node information to be encoded is increased. can improve. Therefore, in the three-dimensional data encoding device described above, the amount of information in the residual signal to be entropy-encoded can be reduced, so there is a possibility that the encoding efficiency can be improved. Similarly, in the three-dimensional data decoding device described above, the amount of information in the residual signal to be entropy-decoded can be reduced, so there is a possibility that the decoding efficiency can be improved.
  • the movement method may be determined arbitrarily.
  • the three-dimensional data encoding device moves the first rectangular parallelepiped using each of the above-described moving methods, and encodes the position information of the three-dimensional point group by a method described later. It is also possible to calculate the code amount and select a moving method that minimizes the code amount among the calculated code amounts.
  • the three-dimensional data encoding device moves the first rectangular parallelepiped so that the three-dimensional point group (inter-reference point group) included in the second rectangular parallelepiped is included in the first rectangular parallelepiped (for example, parallel movement).
  • the three-dimensional data encoding device uses the three-dimensional point group that has been moved in this way, and the encoded three-dimensional point group (that is, the three-dimensional point group that has been encoded once) (inter-prediction point (also referred to as a group) to encode a three-dimensional point group to be encoded (specifically, point group data, more specifically, position information).
  • the three-dimensional data encoding device moves the inter reference point group so that it is included in the first rectangular parallelepiped, in the opposite direction to the movement of the first rectangular parallelepiped to the position of the second rectangular parallelepiped, Inter-prediction point cloud.
  • FIG. 65 is a flowchart showing a processing procedure for determining (setting) a 3D point group to be referred to when the 3D data encoding apparatus according to the present embodiment encodes a 3D point group to be encoded. is. Specifically, FIG. 65 is a flowchart illustrating an example of a motion compensation processing procedure in inter prediction.
  • the three-dimensional data encoding device corresponds to the three-dimensional point group to be encoded contained in the first rectangular parallelepiped by translating or rotating the inter-reference point group contained in the second rectangular parallelepiped. That is, an inter-prediction point group is derived that is referred to when the 3D point group to be encoded is encoded.
  • mode 0 is a mode that does not perform motion compensation, that is, indicates a moving method that does not move the inter reference point group (no motion compensation).
  • mode 1 is a mode indicating a moving method in which the inter-reference point cloud is only translated (no rotation).
  • mode 2 is a mode indicating a moving method of horizontally rotating the inter-reference point group after translating it (horizontal rotation).
  • mode 3 is a mode indicating a moving method of 3D rotation after translation (3D rotation).
  • these modes are predetermined as prediction modes (for example, mc_mode described later).
  • the three-dimensional data encoding device determines the movement method so as to minimize the amount of code as described above, predetermines a prediction mode indicating the determined movement method, and uses the determined prediction mode to perform the following: process.
  • the prediction mode is a mode in which motion compensation is not performed (mode 0 in this example) ("no motion compensation (mode 0)" in step S13101)
  • the 3D data encoding apparatus If the method moves the 3D point cloud (that is, the inter-reference point cloud), the process proceeds to step S13107.
  • the three-dimensional data encoding device executes a movement process for moving the inter reference point group according to the movement method indicated by the determined mode such as parallel movement and/or rotation, thereby inter-predicting the inter reference point group after the movement process.
  • a point group is set (S13107). If the prediction mode is mode 0, in step S13107 the 3D data encoding apparatus sets no motion compensation, that is, sets the second space to the same position as the first space, and sets the second space ( That is, in this case, the inter reference point cloud included in the first space) is set as the inter prediction point cloud.
  • the three-dimensional data encoding apparatus performs From a first vertex (for example, any vertex in the first rectangular parallelepiped) to a second vertex corresponding to the first vertex, a second space (for example, a space corresponding to the second rectangular parallelepiped) ) (S13102).
  • the three-dimensional data encoding device moves the group of inter-reference points by the predetermined amount of movement in a direction opposite to the predetermined direction.
  • the process proceeds to step S13107.
  • step S13107 the three-dimensional data encoding device sets the inter reference point group after translation in step S13102 as the inter prediction point group.
  • the 3D data encoding device sets the first vertex after translation as the origin.
  • An orthogonal coordinate system is set, and the group of inter-reference points translated in step S13102 is rotated by an angle corresponding to the first rotation angle around the z-axis (vertical axis) in the orthogonal coordinate system (S13104).
  • the three-dimensional data encoding device rotates the first rotation angle inter-reference point group in the direction opposite to the rotation direction rotated around the z-axis when moving the first rectangular parallelepiped to the second rectangular parallelepiped. .
  • the prediction mode is a mode that performs translation and horizontal rotation (mode 2 in this example), that is, when the inter-reference point group is moved by the movement method indicated by mode 2 ( "Horizontal rotation (mode 2)" in step S13105), and the process proceeds to step S13107.
  • step S13107 the three-dimensional data encoding apparatus sets the inter reference point group after the translation in step S13102 and the rotation in step S13104 as the inter prediction point group. do.
  • the 3D data encoding apparatus converts orthogonal coordinates with the origin being the first vertex after rotation in step S13104.
  • a system is set, and the inter-reference point group after being rotated in step S13104 is rotated by a second rotation angle and a third rotation angle about the y-axis and x-axis in the orthogonal coordinate system (S13106).
  • the three-dimensional data encoding apparatus rotates the inter-reference point group after being rotated in step S13104 about the y-axis at an angle corresponding to the second rotation angle, and further rotates it about the y-axis.
  • An orthogonal coordinate system is set with the first vertex after the rotation as the origin, and the inter-reference point group after rotating around the y-axis is rotated around the x-axis in the orthogonal coordinate system according to the third rotation angle. rotate at an angle.
  • the three-dimensional data encoding device rotates the second rotation angle inter-reference point group in the direction opposite to the direction of rotation about the y-axis when moving the first rectangular parallelepiped to the second rectangular parallelepiped.
  • the third rotation angle inter-reference point group is rotated in the direction opposite to the rotation direction in which the first rectangular parallelepiped is rotated around the x-axis when moving the first rectangular parallelepiped to the second rectangular parallelepiped.
  • step S13107 the three-dimensional data encoding apparatus further rotates in step S13106 the inter-reference point cloud that has been translated in step S13102 and then rotated in step S13104. , set the rotated inter reference point cloud to the inter prediction point cloud.
  • the vertical direction in the real space is an axis parallel to the corresponding direction.
  • the axis parallel to the direction corresponding to the forward direction of the moving body is set to the x-axis
  • the axis parallel to the direction corresponding to the lateral direction of the moving body is set to the y-axis
  • yaw, pitch , roll, motion compensation (rotation) may be performed.
  • the predetermined direction, the predetermined amount of movement, the first rotation angle, the second rotation angle, and the third rotation angle may be determined arbitrarily.
  • FIG. 66 is a diagram showing a syntax example of motion compensation information (motion_info( ) in this example) according to the present embodiment.
  • the 3D data encoding device notifies the 3D data decoding device of the motion compensation information by generating a bitstream including motion_info( ), for example.
  • mc_mode is information indicating the calculation method of the inter-prediction point cloud.
  • the 3D data encoding device notifies the 3D data decoding device of information indicating how to obtain the inter-prediction point group, such as mc_mode.
  • the three-dimensional data encoding device uses mc_mode indicating, for example, mode 0 (no motion compensation), mode 1 (translation), mode 2 (translation and horizontal rotation), or mode 3 (translation and 3D rotation).
  • ref_frame_idx is information indicating the frame to which the inter-prediction point cloud belongs.
  • ref_frame_idx is information indicating the index value of the frame to which the inter prediction point cloud belongs.
  • the 3D data encoding device generates a bitstream including, for example, ref_frame_idx indicating the index value of the frame to which the inter reference point group belongs.
  • motion_vector is information indicating the amount of movement in translation. For example, in modes other than mode 0 (no motion compensation), the three-dimensional data encoding apparatus converts the first vertex in the first space to the second vertex in the second space corresponding to the first vertex. A bitstream containing motion_vector, which is information about the amount of movement to .
  • the 3D data decoding device may set motion_vector to 0 (zero) if, for example, the bitstream acquired from the 3D data encoding device does not include motion_vector, that is, if motion_vector is not notified. good.
  • the information about the amount of movement may be information indicating the absolute amount, or information indicating the difference between the absolute amount and the predicted value of the amount of movement determined using spatio-temporal continuity or the like. good.
  • rotation_angle is information indicating the rotation angle in rotation.
  • the 3D data encoding device in mode 2 and mode 3 of rotation, the 3D data encoding device generates a bitstream containing information about the first rotation angle (rotation_angle[0]) about the vertical axis (z-axis). do.
  • the three-dimensional data encoding device in mode 3, further includes information about a second rotation angle about the y-axis (rotation_angle[1]) and information about a third rotation angle about the x-axis. Generate a bitstream containing information (rotation_angle[2]).
  • rotation_angle may be set to 0 (zero).
  • mode 2 in which translation and horizontal rotation (rotation about the z-axis) are combined is shown, but it is not necessarily limited to rotation about the z-axis, and rotation about the x-axis and/or Alternatively, it may be rotation about the y-axis.
  • the three-dimensional data encoding device can, for example, describe which axis is the rotation center in the header section of SPS, GPS, frame, slice, octree, prediction tree, or the like, so that three-dimensional It may be switchable so that the original data decoding device can be notified.
  • the three-dimensional data encoding device entropy-encodes information indicating which axis is to be rotated, and writes the encoded information in the header of the node information of the octree or prediction tree.
  • motion_vector and rotation_angle are not particularly limited as long as they are information that can uniquely identify the positional relationship between the inter reference point group and the inter prediction point group.
  • motion_vector and rotation_angle may be the movement amount and the rotation angle when moving from the first space to the second space.
  • motion_vector and rotation_angle may be the movement amount and rotation angle when moving from the second space to the first space.
  • Motion compensation performed by both the 3D data encoding device and the 3D data decoding device should be performed based on a definition common to both the 3D data encoding device and the 3D data decoding device.
  • processing, syntax, etc. of this embodiment may be implemented in combination with at least part of other embodiments.
  • the 3D data encoding device and the 3D data decoding device may include only some of the components.
  • the 3D data encoding device and the 3D data decoding device may be configured to perform only part of the processing of this embodiment.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • FIG. 67 is a flow chart showing the processing procedure of the three-dimensional data encoding device according to this embodiment.
  • the 3D data encoding device selects one movement method from a plurality of movement methods (S13111).
  • the 3D data encoding device determines the second area based on the one selected movement method and the first area (for example, information indicating the position and size of the first area) (S13112).
  • the 3D data encoding device determines the second area by, for example, moving the first area using one selected moving method.
  • the 3D data encoding device moves the second 3D point group located in the determined second area to the first area by a method corresponding to one moving method (S13113).
  • the second three-dimensional point group before movement is the above-described inter reference point group
  • the second three-dimensional point group after movement is the above-described inter prediction point group.
  • the three-dimensional data encoding device generates position information of the first three-dimensional point group located in the first area based on encoded position information of the second three-dimensional point group moved to the first area. is encoded (S13114).
  • the first three-dimensional point group is, for example, the above-described three-dimensional point group to be encoded.
  • the first 3D point cloud belongs to the first frame.
  • the second 3D point cloud belongs to a second frame different from the first frame.
  • a 3D data encoding device may encode using inter-prediction. Note that the first three-dimensional point group and the second three-dimensional point group may belong to the same frame. In this case, the 3D data encoding device may encode using a prediction method similar to inter prediction.
  • the 3D data encoding device generates a bitstream containing encoded position information of the first 3D point group and movement information indicating one determined movement method (S13115).
  • the movement information is, for example, mc_motion described above.
  • a plurality of movement methods include one or both of a parallel movement method and a rotation method.
  • the plurality of movement methods may include at least a translation method and at least a rotation method.
  • the plurality of movement methods other than these movement methods may be arbitrarily determined in advance, and are not particularly limited.
  • the plurality of movement methods may include only at least a translation method and at least a rotation method.
  • the 3D point group moved by an appropriately selected moving method is used to encode the position information of the 3D point group to be encoded.
  • coding efficiency can be improved.
  • a three-dimensional point group moved by an appropriately selected moving method is used to encode the position information of the three-dimensional point group to be encoded, thereby generating node information to be encoded.
  • Probability prediction accuracy can be improved. Therefore, the amount of information in the entropy-encoded residual signal can be reduced, thereby improving the coding efficiency.
  • the plurality of movement methods include non-movement methods. That is, the first area and the second area may be the same area. In other words, motion compensation as described above may not be performed.
  • the plurality of moving methods include a method of translating and rotating.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor often changes its position so that both translation and rotation are performed with respect to time. That is, the position of the 3D point cloud is often moved so as to translate and rotate when each frame is viewed in chronological order, for example. Therefore, by including translation and rotation as the moving method, it is possible to easily select a suitable 3D point group as a 3D point group to be used when encoding the 3D point group to be encoded.
  • At least one of the three axes in the three-dimensional orthogonal coordinate system is rotated about an axis parallel to that axis for each axis.
  • At least one axis includes an axis corresponding to the vertical direction in real space.
  • a three-dimensional point group is, for example, a point group corresponding to an object or the like in a real space generated by sensing such as imaging the real space. For example, when rotating the 3D point group, the 3D point group is rotated around the axis that corresponds to the vertical direction in the real space where the object corresponding to the 3D point group is located.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor is highly likely to rotate around an axis parallel to the vertical direction of real space with respect to time change.
  • a 3D point cloud is less likely to rotate about an axis parallel to the horizontal direction of real space with respect to time. Therefore, since it includes a movement method that rotates around the axis corresponding to the vertical direction in real space, it is suitable as a 3D point cloud used when encoding the position information of the 3D point cloud to be encoded. 3D point cloud can be easily selected.
  • At least one axis is one axis.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor is unlikely to rotate around an axis parallel to the horizontal direction of real space with respect to time change. Therefore, by only rotating around an axis parallel to the vertical direction of the real space as a method of rotation, it is possible to prevent a plurality of moving methods from increasing unnecessarily. It is possible to easily select a suitable 3D point group as the 3D point group used when encoding the position information of the group.
  • a three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the memory may store a control program for performing the above process.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • FIG. 68 is a flow chart showing the processing procedure of the three-dimensional data decoding device according to this embodiment.
  • the 3D data decoding device acquires a bitstream containing encoded position information of the first 3D point group and movement information indicating one movement method (S13121).
  • the three-dimensional data decoding device selects one moving method from among a plurality of moving methods based on the moving information (S13122).
  • the 3D data decoding device determines the second area based on the one selected moving method and the first area (for example, information indicating the position and size of the first area) (S13123).
  • the 3D data encoding device determines the second area by, for example, moving the first area using one selected movement method.
  • the 3D data decoding device moves the second 3D point group located in the determined second area to the first area by a method corresponding to one movement method (S13124).
  • a decoded 3D point group is a point group for which 3D data (for example, position information) of the 3D point group has been decoded.
  • a plurality of movement methods include one or both of a parallel movement method and a rotation method.
  • the 3D point group moved by an appropriately selected moving method is used to decode the encoded position information of the 3D point group to be decoded. Therefore, decoding efficiency can be improved.
  • the plurality of movement methods include non-movement methods.
  • the plurality of moving methods include a method of translating and rotating.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor often changes its position so that both translation and rotation are performed with respect to time.
  • the three-dimensional point cloud is often moved so as to translate and rotate when each frame is viewed in chronological order. Therefore, by including translation and rotation as the movement method, it is possible to easily select a suitable 3D point group as the 3D point group used when decoding the encoded 3D point group to be decoded. .
  • the first region is rotated around an axis parallel to each of at least one of the three axes in the three-dimensional orthogonal coordinate system.
  • At least one axis includes an axis corresponding to the vertical direction in real space.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor is highly likely to rotate around an axis parallel to the vertical direction of real space with respect to time change.
  • a 3D point cloud is less likely to rotate about an axis parallel to the horizontal direction of real space with respect to time. Therefore, by including a movement method that rotates around the axis corresponding to the vertical direction in real space, the 3D point group used when decoding the encoded position information of the 3D point group to be decoded. This makes it easier to select an appropriate 3D point cloud.
  • At least one axis is one axis.
  • a 3D point cloud based on information acquired by a moving sensor such as an in-vehicle sensor is unlikely to rotate around an axis parallel to the horizontal direction of real space with respect to time change. Therefore, by only rotating around an axis parallel to the vertical direction of the real space as a method of rotation, it is possible to suppress the number of multiple moving methods from increasing unnecessarily, and to achieve a three-dimensional point group to be decoded. It is possible to easily select a suitable 3D point group as a 3D point group used when decoding the encoded position information of .
  • a three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.
  • the memory may store a control program for performing the above process.
  • FIG. 69 is a diagram for explaining a reference point group reference method in inter prediction according to the present embodiment.
  • the point cloud data representing the 3D point cloud will be described as an example of a point cloud generated by acquiring the 3D positions of surrounding objects around the sensor position, such as LiDAR.
  • Such point cloud data encoding uses a depth map, which is a two-dimensional image obtained by mapping distance information d[v][h] of distance measurement positions from the sensor position to each three-dimensional point on a two-dimensional plane. inter-prediction may be performed.
  • the horizontal axis is an index h indicating the horizontal angle of the ranging position (angular position in horizontal scanning of the sensor), and the vertical axis is an index v indicating the elevation angle of the ranging position (the elevation angle of the scanning line of the sensor). axis.
  • the component [v] of the two-dimensional coordinates ([v], [h]) indicating the pixel position of each pixel of the two-dimensional image indicates the elevation angle from the distance measurement position of the three-dimensional point of the distance information of the pixel. It is an index, and the component [h] is an index indicating the horizontal angle from the distance measurement position of the three-dimensional point of the distance information of the pixel.
  • the index indicating the elevation angle is, for example, elevation angle information for specifying one of a plurality of elevation angles (depression angles) predetermined for the sensor when the sensor is viewed in the horizontal direction.
  • the index indicating the horizontal angle is, for example, horizontal angle information for specifying one of a plurality of horizontal angles predetermined for the sensor when the sensor is viewed in the vertical direction.
  • the 2D image does not have to have 3D points assigned to all pixels.
  • the two-dimensional image may include a set for which distance information is not acquired among a plurality of sets of horizontal angles and elevation angles specified by the two-dimensional coordinates of the two-dimensional image.
  • the 3D data encoding device or the 3D data decoding device may determine the prediction point of the inter prediction of the encoding target point to be the 3D point of the reference frame.
  • the encoding target point is included in the target region (the region enclosed by the dashed line) encoded by one prediction tree (Predtee) in the encoding target frame, and the prediction point is the reference Included in the inter-prediction reference region of the frame.
  • the encoding target frame and the reference frame are each mapped to a two-dimensional image. These two-dimensional images are depth maps obtained by mapping distance information d[v][h] of ranging positions from the sensor position to each three-dimensional point on a two-dimensional plane, as described above.
  • the target area is a partial two-dimensional area of the encoding target frame.
  • the target area is, for example, a rectangle.
  • a reference region for inter prediction is a region corresponding to the target region in the encoding target frame.
  • a reference region is a two-dimensional region that is part of the reference frame.
  • the inter-prediction reference region may be associated with a motion vector (motion compensation information) for specifying which region it is for the target region.
  • a prediction point for inter prediction of a point to be encoded is selected from a plurality of three-dimensional points indicated by pixel values of a plurality of pixels included in the reference region.
  • the reference area may be an area specified for the target area by one motion vector mv0.
  • an area having the same size and shape as the target area may be designated by the motion vector mv0. This case is called mode 1.
  • the reference area may be an area specified by affine transformation so that it becomes an area whose vertices are points pointed to by a plurality of vectors.
  • the reference area may be an area specified for the target area by two motion vectors mv0 and mv1.
  • the reference area is specified by performing at least one transformation of rotation and enlargement/reduction so that it becomes an area whose vertices are the two points pointed to by the two motion vectors mv0 and mv1. It may be a certain area. This case is called mode 2.
  • the reference area may be an area specified for the target area by three motion vectors mv0, mv1, and mv2, as shown in FIG.
  • the reference area is rotated, enlarged/reduced, and sheared so as to become an area whose vertices are the three points pointed to by the three motion vectors mv0, mv1, and mv2 with respect to the target area. It may be a region specified by performing one deformation. This case is called mode 3.
  • the motion vector may have either integer precision or decimal precision. That is, the motion vector may have precision in units of integer pixels or precision in units of decimal pixels. Also, each motion vector may be a zero vector. Also, when referring to the decimal-precision position of the reference frame, the decimal-precision position may be interpolated based on the surrounding distance information.
  • the range of the horizontal angle index h that is, the minimum value (hmin) and the maximum value (hmax) of the horizontal angle index
  • the range of the elevation angle index v that is, the minimum value (vmin) and the maximum value of the elevation index Information for specifying (vmax) may be included in the frame or prediction tree header.
  • the motion vectors may be corrected based on differences in the range of horizontal and elevation indices v, h for each frame, if any.
  • FIG. 70 is a diagram showing an example of the syntax of GPS (geometry parameter set).
  • FIG. 71 is a diagram showing an example of syntax of a prediction tree. These syntaxes correspond to the inter prediction method described using FIG.
  • gps_predtree_bounding_info_present_flag 1 indicates that there is bounding box information in the syntax of the prediction tree data (geometry predtree data) of the position information in the bitstream that refers to GPS.
  • gps_predtree_bounding_info_present_flag is 0, it indicates that there is no bounding box information in the syntax of the prediction tree data (geometry predtree data) of the position information in the bitstream that refers to GPS.
  • gps_predtree_bounding_info_present_flag is set to 1 if gps_inter_frame_prediction_enabled_flag is equal to 1.
  • the prediction tree syntax shown in FIG. 71 is used when encoding a point cloud in a slice using one or more prediction trees.
  • This syntax indicates that the root node syntax of the prediction tree (geometry_prediction_tree_node( )) is first called, and the node syntax corresponding to the nodes belonging to the same prediction tree is called recursively.
  • information associated with each prediction tree information indicating the target region to be coded by the prediction tree (geometry_predtree_bounding_info( )), indicating whether the prediction tree is coded using inter prediction.
  • inter_predtree_flag information on the number of frames to be referenced in inter prediction in the prediction tree
  • number_ref_frames_minus1 information on motion compensation for inter prediction in the prediction tree
  • geometry_predtree_motion_info( ) information on motion compensation for inter prediction in the prediction tree
  • the prediction tree may switch whether or not to notify the information indicating the region encoded by the prediction tree (geometry_predtree_bounding_info( )).
  • information indicating a region to be coded by a prediction tree is always notified in order to be used to specify a reference region for inter prediction, and inter prediction is used. If not, it is configured to switch whether to notify the information indicating the region encoded by the prediction tree according to gps_predtree_bounding_info_present_flag notified by GPS. Even when inter prediction is not used, information indicating the target region to be coded by the prediction tree may always be notified.
  • the target region or the prediction tree is set so that the target region includes all the nodes of the prediction tree. good too.
  • FIG. 72 is a diagram showing an example of the syntax of motion compensation information of a prediction tree.
  • FIG. 73 is a diagram showing an example of syntax of motion compensation information in polar encoding.
  • FIG. 74 is a diagram illustrating an example of syntax of coding range information for prediction trees.
  • Examples of these syntaxes are the encoding or decoding of a point cloud containing position information expressed in a polar coordinate system (a polar point group) and the point cloud containing position information expressed in a rectangular coordinate system (a Cartesian coordinate system). system point cloud) encoding or decoding.
  • a polar coordinate system a polar point group
  • a rectangular coordinate system a Cartesian coordinate system
  • system point cloud encoding or decoding.
  • prediction using the depth map of FIG. 69 is performed.
  • the prediction described in the above embodiments is performed.
  • information indicating whether or not to use a coordinate system different from the orthogonal coordinate system such as the polar coordinate system in encoding or decoding each 3D point (eg, gps_alt_coordinates_flag) information for polar coordinates (motion_info_polar( ), min_vh[ k ], size_vh[ k ], etc.) and information for orthogonal coordinates (motion_info( ), min_xyz[ k ], size_xyz[ k ], etc.) may be shown.
  • the syntax described in the above embodiment as motion_info( ) may be used in the encoding or decoding of the point group in the Cartesian coordinate system.
  • the information indicating the target region encoded by the prediction tree corresponds to the first rectangular parallelepiped containing the point group to be encoded described in the above embodiment, and the information indicating the position and size is:
  • Information indicating the minimum coordinates (min_xyz[k]) described in the above embodiment and information indicating the size of each side of the first rectangular parallelepiped (size_xyz[k]) may be included. That is, the bitstream may contain region information indicating the position and size of the 3D region.
  • the 3D area indicated by the area information is an area including a plurality of 3D points included in the prediction tree to be coded, and is included in the 3D area of the frame to be coded.
  • the information indicating the target region encoded by the prediction tree can be substituted with other information as long as it uniquely defines the target region encoded by the prediction tree.
  • the syntax in FIG. 71 may indicate motion compensation information.
  • this syntax may indicate information (mc_mode_polar) indicating how to obtain the inter-prediction point group.
  • the information (mc_mode_polar) indicating how to obtain the inter-prediction point cloud is, for example, information indicating one of modes 1 to 3 shown in the example of FIG. 69, or a mode (mode 0) indicating no motion compensation. is.
  • the mode indicating no motion compensation may be mode 1 in which the motion vector mv0 is a zero vector.
  • This syntax may also include a reference frame index value (ref_frame_idx).
  • motion vectors mv0 to mv2 may be indicated according to the mode.
  • motion_vector_polar[i][k] may be indicated by an absolute amount, or may be indicated by a difference from a predicted value determined using spatio-temporal continuity or the like.
  • Information indicating the minimum coordinates (min_vh[k]) and the size of each side of the rectangle shown in FIG. (size_vh[k]) may be shown. That is, the bitstream may contain region information indicating the position and size of the two-dimensional region.
  • the two-dimensional area indicated by the area information is an area including a plurality of three-dimensional points included in the prediction tree to be encoded, and is included in the two-dimensional area of the two-dimensional image of the frame to be encoded.
  • the information indicating the target region encoded by the prediction tree can be substituted with other information as long as it uniquely defines the target region encoded by the prediction tree.
  • FIGS. 69 to 74 of this embodiment may be implemented in combination with at least part of other disclosures (other embodiments). Also, part of the processing and syntax disclosed using FIGS. 69 to 74 of this embodiment may be implemented in combination with other disclosures (other embodiments).
  • Indicating each information in the syntax is the same as notifying each information in the syntax.
  • a 3D data encoding device refers to a 3D point included in a second frame different from a first frame including a prediction tree including the encoding target point, for the encoding target point among the plurality of 3D points. to generate encoded data (S13501).
  • the 3D data encoding device generates a bitstream containing encoded data (S13502).
  • a plurality of 3D points included in the second frame have already been coded.
  • the encoding target point is encoded by referring to at least some of the plurality of 3D points included in the second frame based on the motion compensation information associated with the prediction tree.
  • the bitstream contains motion compensation information.
  • At least a part of a plurality of three-dimensional points to be referenced for encoding the encoding target point is determined based on the motion compensation information, so that the encoding efficiency can be improved.
  • the position information of each of the multiple 3D points included in the first frame and the second frame is expressed in a polar coordinate system.
  • Each of the first and second frames is mapped to a two-dimensional image.
  • Each pixel of the two-dimensional image indicates respective positional information of a plurality of three-dimensional points included in the second frame, and has distance information included in the positional information as a pixel value.
  • two-dimensional coordinates indicating the pixel position of each pixel in a two-dimensional image indicate elevation angle information and horizontal angle information included in polar coordinates.
  • a plurality of 3D points included in the prediction tree are specified in a 2D area in the 2D image to which the first frame is mapped.
  • the bitstream further includes region information indicating the location and size of the two-dimensional region.
  • the position information of each of the multiple 3D points included in the first frame and the second frame is expressed in an orthogonal coordinate system.
  • a plurality of 3D points included in the prediction tree are included in a second 3D area included in the first 3D area of the first frame.
  • the bitstream further includes region information indicating the position and size of the second three-dimensional region.
  • a three-dimensional data encoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • the 3D data decoding device acquires a bitstream including encoded data obtained by encoding encoding target points included in the prediction tree of the first frame and motion compensation information (S13511).
  • the 3D data decoding device uses the motion compensation information to specify at least some of the 3D points included in the second frame different from the first frame (S13512).
  • the three-dimensional data decoding device calculates encoding target points using the decoding result obtained by decoding the encoded data and at least a part thereof (S13513).
  • a plurality of 3D points included in the second frame have already been decoded.
  • the motion compensation information is information that associates a prediction tree with at least some of the plurality of 3D points included in the second frame.
  • the encoded code It is possible to appropriately decode the conversion target point.
  • the position information of each of the multiple 3D points included in the first frame and the second frame is expressed in a polar coordinate system.
  • Each of the first and second frames is mapped to a two-dimensional image.
  • Each pixel of the two-dimensional image indicates respective positional information of a plurality of three-dimensional points included in the second frame, and has distance information included in the positional information as a pixel value.
  • two-dimensional coordinates indicating the pixel position of each pixel in a two-dimensional image indicate elevation angle information and horizontal angle information included in polar coordinates.
  • a plurality of 3D points included in the prediction tree are specified in a 2D area in the 2D image to which the first frame is mapped.
  • the bitstream further includes region information indicating the location and size of the two-dimensional region.
  • the position information of each of the multiple 3D points included in the first frame and the second frame is expressed in an orthogonal coordinate system.
  • a plurality of 3D points included in the prediction tree are included in a second 3D area included in the first 3D area of the first frame.
  • the bitstream further includes region information indicating the position and size of the second three-dimensional region.
  • a three-dimensional data decoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • a three-dimensional data encoding method and a three-dimensional data decoding method for performing inter prediction on a point group including a plurality of three-dimensional points whose position information indicating each position is expressed in a polar coordinate system will be described.
  • the positional information may be simply referred to as position.
  • a method of determining one or more candidate points used to determine a predicted value for inter prediction will be mainly described below. The method of determining the predicted value using one or more candidate points after determination is the same as in the above embodiment.
  • 77 to 79 are diagrams for explaining a method of encoding or decoding three-dimensional points represented by polar coordinates using inter-prediction.
  • Encoding or decoding of 3D points is performed in 3D data encoding devices 12900, 12930 and 3D data decoding devices 12920, 12950 in the above embodiments.
  • the 3D data encoding devices 12900 and 12930 may also be referred to as 3D data encoding devices.
  • the 3D data decoding devices 12920 and 12950 may be referred to as 3D data decoding devices.
  • inter prediction refers to one or more encoded points included in a reference frame that is a frame different from the encoding target frame when encoding the encoding target 3D point included in the encoding target frame. and predictively encode a plurality of 3D points included in the encoding target frame based on one or more 3D points referred to.
  • intra prediction means that, when encoding a 3D point to be coded included in the frame to be coded, at least one of the other coded 3D points included in the frame to be coded is predicted. This is a method of predictively encoding a plurality of 3D points included in a frame to be encoded based on one or more 3D points referred to.
  • the encoding target frame may also be referred to as a second frame.
  • a reference frame may be referred to as a first frame.
  • the point cloud data has one or more frames, and each of the one or more frames has one or more three-dimensional points.
  • One or more frames include an encoding target frame and a reference frame.
  • each frame may be generated by measuring different positions with a sensor.
  • Each frame may be generated by being measured by a plurality of different sensors.
  • the plurality of first three-dimensional points are obtained by measuring the distance to the object in each of the plurality of first directions around the first position in the space on the reference plane.
  • the first position is a first origin that serves as a reference for position information of a plurality of first three-dimensional points, which are measurement results obtained by sensors placed at the third position.
  • the first position may also be referred to as the first reference position.
  • the first location may or may not coincide with the third location where the sensor is located.
  • Each of the plurality of first three-dimensional points is represented by a first polar coordinate system with the first position as the first origin.
  • a plurality of first 3D points are included, for example, in the reference frame.
  • the plurality of second three-dimensional points are obtained by measuring the distance to the object in each of the plurality of second directions around the second position in the space on the reference plane.
  • the second position is a second origin that serves as a reference for positional information of a plurality of second three-dimensional points that are measurement results measured by the sensor arranged at the fourth position.
  • the second position may also be referred to as a second reference position.
  • the second location may or may not coincide with the fourth location where the sensor is located.
  • Each of the plurality of second three-dimensional points is represented by a second polar coordinate system having a second origin at the second position.
  • the sensor emits electromagnetic waves and acquires reflected waves of the electromagnetic waves reflected by the subject, thereby generating measurement results including one or more three-dimensional points.
  • the sensor may generate one frame containing measurement results obtained by one measurement. Specifically, the sensor measures the time it takes for an emitted electromagnetic wave to reflect off an object and return to the sensor after being emitted, and uses the measured time and the wavelength of the electromagnetic wave to determine the relationship between the sensor and the sensor. Calculate the distance between points on the surface of surrounding objects.
  • the sensor emits electromagnetic waves in a plurality of predetermined radial directions from a reference position of the sensor.
  • the sensor is, for example, LiDAR, and the electromagnetic wave is, for example, laser light.
  • the positional information indicates the position of the three-dimensional point having the positional information and is represented by polar coordinates.
  • the position information includes the distance from the reference point to the 3D point having the position information, and two angles indicating the direction from the reference point to the 3D point having the position information.
  • One of the two angles is, for example, an angle (horizontal angle) formed by a reference direction perpendicular to the axis when viewed from an axis perpendicular to the reference plane and the above-mentioned direction, and the other is an angle (horizontal angle) between the reference plane and the above-mentioned direction. It is the angle (elevation angle) formed by the direction.
  • the reference plane is a horizontal plane, for example, a plane perpendicular to a predetermined axis of the sensor such as the rotation axis of LiDAR, the ground, a floor, or a plane parallel to these.
  • FIGS. 77 to 79 it is assumed that a point group generated by acquiring the three-dimensional positions of objects around the sensor centered on the sensor position, such as LiDAR, is encoded.
  • a point group generated by acquiring the three-dimensional positions of objects around the sensor centered on the sensor position, such as LiDAR is encoded.
  • the second reference position 13808 of the sensor 13806 when measuring the point cloud of the encoding target frame the first reference position 13807 of the sensor 13805 when measuring the point cloud of the reference frame
  • the positional relationship between a conversion target point 13801 and reference candidate points 13802 and 13803 in inter prediction is shown.
  • 77 to 79 show, for example, a sensor that emits a laser around a predetermined axis (rotational axis) to measure the distance to an object, such as a sensor such as LiDAR, when viewed from the axial direction. It is a plan view of the case.
  • An encoding target point 13801 and reference candidate points 13802 and 13803 indicate three-dimensional positions on the same plane (for example, plane) 13810 of the object 13804 .
  • An encoding target point 13801 is included in the point group of the encoding target frame.
  • the point cloud of the frame to be encoded is indicated by black diamond-shaped points in FIGS.
  • Candidate reference points 13802 and 13803 are included in the point cloud of the reference frame and included in a plurality of (eg, n+1) three-dimensional points indicating three-dimensional positions on the surface 13810 .
  • the point cloud of the reference frame is indicated by the open diamond-shaped points in FIGS. 77-79.
  • the sensor 13805 and the sensor 13806 may be the same sensor or different sensors (that is, separate sensors). When the sensor 13805 and the sensor 13806 are the same sensor, for example, when one sensor moves from the first reference position 13807 to the second reference position 13808 or from the second reference position 13808 to the first reference position 13807 is.
  • the time when the encoding target frame was generated differs from the time when the reference frame was generated.
  • the time at which the encoding target frame was generated and the time at which the reference frame was generated may be different or the same.
  • the three-dimensional data encoding device uses the predicted value d pred of the distance d cur from the second reference position 13808 of the sensor 13806 to the encoding target point 13801 as the second It is determined based on the positional relationship among the reference position 13808, the first reference position 13807 of the sensor 13805 during measurement of the point group of the reference frame, the encoding target point 13801, and the reference candidate points 13802 and 13803. Then, the 3D data encoding device may use the determined prediction value d pred for inter prediction. For example, the 3D data encoding device may determine the predicted value d pred by executing the following procedures 1 to 3. Since the 3D data decoding device determines the predicted value d pred by performing the same processing as the 3D data encoding device, only the 3D data encoding device will be described below.
  • the three-dimensional data encoding device projects at least one reference candidate point 13802, 13803 onto the second polar coordinate system of the second reference position 13808, as shown in FIG.
  • the horizontal angle ⁇ ref2 (i) of the i-th reference candidate point viewed from position 13808 is derived.
  • ⁇ ref1 (i), d ref1 (i), and m are respectively the horizontal angle at the first reference position 13807 shown in FIG. 78, the distance from the first reference position 13807 to the i-th reference candidate point, and the distance between the first reference position 13807 and the second reference position 13808 (inter-sensor distance or movement distance).
  • the horizontal angle is the angle of the direction in which the i-th reference candidate point exists with respect to the first reference position 13807, with reference to the reference direction 13809, which is the direction connecting the first reference position 13807 and the second reference position 13808.
  • n is a natural number that can take i and k. i is any natural number.
  • ⁇ ref2 (i) arctan( d ref1 (i) sin( ⁇ ref1 (i)) / (d ref1 (i) cos( ⁇ ref1 (i)) - m) ) (Formula Z1)
  • the three-dimensional data encoding device selects from at least one horizontal angle ⁇ ref2 (i) corresponding to the i-th reference candidate point, the horizontal angle pointing from the second reference position 13808 to the encoding target point 13801.
  • a horizontal angle ⁇ ref2 (k) near ⁇ cur is selected, and the k-th reference candidate point 13802 indicated by the horizontal angle ⁇ ref2 (k) is used for inter prediction (inter reference point ) 13811.
  • k is a natural number indicating a horizontal angle near the horizontal angle ⁇ cur pointing from the second reference position 13808 to the encoding target point 13801 among n horizontal angles ⁇ ref2 . That is, the k-th reference candidate point is a reference point used for calculating the predicted value among the n reference candidate points, and is an example of the encoded first three-dimensional point.
  • the 3D data encoding device derives the distance d ref2 (k) from the second reference position 13808 to the inter reference point 13811, and determines the distance d ref2 (k) as the predicted value d pred .
  • the point group of the encoding target frame and the point group of the reference frame are expressed in polar coordinates of a coordinate system having different reference positions. Therefore, when the encoding target point 13801 is predictively encoded using the reference candidate points 13802 and 13803 of the reference frame different from the encoding target frame, the coordinate system of the reference candidate points 13802 and 13803 of the reference frame is set to the reference frame. It is necessary to perform a coordinate system transformation that transforms from a first coordinate system in which the point cloud of the encoded frame is represented to a second coordinate system in which the point cloud of the encoded frame is represented.
  • the three-dimensional data encoding device specifies the encoded first three-dimensional point whose position is represented by the first polar coordinates by executing procedures 1 to 3.
  • FIG. The first 3D point is the reference point used for prediction.
  • the three-dimensional data encoding device calculates the predicted value of the distance d cur from the second reference position 13808 of the uncoded second three-dimensional point whose position is expressed in the second polar coordinate system.
  • the distance d cur is an example of the second distance.
  • the distance m is an example of the distance between the first position and the second position.
  • the horizontal angle ⁇ ref1 (k) is an example of the first angle and indicates the angle formed by the first line and the second line.
  • the distance d ref1 (k) is an example of the first distance.
  • the three-dimensional data encoding device uses the distance m, horizontal angle ⁇ ref1 (k), and Using the distance d ref1 (k), (iv) the horizontal angle ⁇ ref2 (k) between the first line and the third line connecting the second reference position 13808 and the reference point 13811, and (v) the second A distance d cur of the reference point 13811 in the polar coordinate system from the second reference position 13808 is calculated.
  • the horizontal angle ⁇ ref2 (k) is an example of the second angle.
  • the distance A horizontal angle ⁇ ref2 (k) is calculated using d ref1 (k) and the horizontal angle ⁇ ref1 (k) as the first angle.
  • the horizontal angle ⁇ ref1 (k) is an example of the first horizontal angle, and is the horizontal angle component of the polar coordinate components representing the position of the reference point 13811 .
  • the position of reference point 13811 is expressed in the first polar coordinate system.
  • the device may calculate the difference between the horizontal angle component of the polar coordinate components representing the position of the reference point 13811 and the angle formed by the first line with respect to the reference line as the first angle.
  • the three-dimensional data encoding device determines the first three-dimensional point based on the other second three-dimensional point whose position is expressed in the second polar coordinate system and which has already been encoded. may be specified.
  • the three-dimensional data encoding device can highly accurately predict the distance d cur from the second reference position 13808 of the encoding target frame to the encoding target point 13801, thereby improving the efficiency of inter prediction encoding. could be improved.
  • the movement distance m is the result of measurement using sensors such as GPS (Global Positioning System) and odometer, and using self-position estimation technology using SfM (Structure from Motion), SLAM (Simultaneous Localization and Mapping), etc. may be generated based on the results derived by Further, these results may be included in header information in predetermined data units such as frames and slices, and information on the head node of these data units. Thereby, these results may be notified from the 3D data encoding device to the 3D data decoding device.
  • GPS Global Positioning System
  • SfM Structure from Motion
  • SLAM Simultaneous Localization and Mapping
  • d ref2 (k) may be derived from equation Z3.
  • the 3D data encoding apparatus may determine inter reference points by projecting all reference candidate points of the reference frame onto the second polar coordinate system of the second reference position 13808 of the encoding target frame.
  • the 3D data encoding apparatus may perform the coordinate system transformation described above on all reference candidate points in the reference frame, and determine inter reference points based on all post-transformation candidate points.
  • the 3D data encoding device may generate a horizontal angle ⁇ cur of the encoding target point 13801, the distance m between the first reference position 13807 and the second reference position 13808, and the like, and calculate the horizontal angle of the reference frame with respect to the sensor 13805.
  • the reference candidate points may be limited to points included in a partial range of .
  • the process of determining the inter reference point is not performed.
  • the reference candidate points are limited to those located in an area ahead of the first reference position in the direction connecting the first reference position and the second reference position.
  • the three-dimensional data encoding device limits the reference candidate points to be subjected to coordinate system conversion to a part of all the reference candidate points based on the horizontal angle ⁇ cur and the distance m. It is possible to suppress the amount of processing related to
  • arithmetic processing such as trigonometric functions and division in each of the above procedures may be simplified by using a table consisting of a finite number of elements.
  • the simplification makes it possible to improve the efficiency of inter prediction coding while suppressing the amount of processing.
  • the angle formed by the reference direction 13809 in FIGS. 77 to 79 and the same plane (eg plane) 13810 of the object 13804 is not limited. That is, the direction of the first line connecting the first reference position 13807 and the second reference position 13808 can take any angle with respect to the horizontal axis included in the same plane (eg plane) 13810 of the object 13804 . Even in that case, the predicted value can be calculated using the above method.
  • FIG. 80 assumes encoding of a point group generated by acquiring the three-dimensional positions of objects around the sensor, centering on the sensor position, such as LiDAR.
  • a predicted value d pred of the distance d cur from the sensor 13826 of the encoding target frame to the encoding target point 13821 may be determined by also considering ⁇ cur .
  • An encoding target point 13821 and a reference candidate point 13822 indicate three-dimensional positions on the same plane (for example, plane) 13824 of the object 13823 .
  • the encoding target point 13821 is included in the point group of the encoding target frame.
  • the point group of the frame to be encoded is indicated by black diamond-shaped points in FIG.
  • the reference candidate point 13822 is a three-dimensional point that is included in the point cloud of the reference frame and indicates the three-dimensional position of the object 13823 on the surface 13824 .
  • a reference frame includes one or more 3D points, and may include multiple (eg, n) 3D points.
  • the point cloud of the reference frame is indicated by the open diamond-shaped points in FIG.
  • the sensors 13825 and 13826 may be the same sensor or different sensors (that is, different sensors). When the sensor 13825 and the sensor 13826 are the same sensor, for example, when one sensor moves from the first reference position 13827 to the second reference position 13828 or from the second reference position 13828 to the first reference position 13827 is.
  • the time when the encoding target frame was generated differs from the time when the reference frame was generated.
  • the sensor 13825 and the sensor 13826 are different sensors, the time at which the encoding target frame was generated and the time at which the reference frame was generated may be different or the same.
  • the 3D data encoding device may determine the predicted value d pred by executing the following procedures 11 to 13.
  • the three-dimensional data encoding device projects at least one reference candidate point 13822 onto the second polar coordinate system of the second reference position 13828, and calculates i
  • the horizontal angle ⁇ ref2 (i) and the elevation angle ⁇ ref2 (i) of the th reference candidate point are derived.
  • ⁇ ref2 (i), ⁇ ref2 (i), d ref1 (i), and m are respectively the horizontal angle and elevation angle at the first reference position 13827 shown in FIG.
  • the distance to the reference candidate point and the distance between the first reference position 13827 and the second reference position 13828 are shown.
  • the horizontal angle is the angle of the direction in which the i-th reference candidate point exists with respect to the first reference position 13827 with reference to the reference direction 13829 of the first reference position 13827 and the second reference position 13828 .
  • the elevation angle is the angle of the direction in which the i-th reference candidate point exists with respect to the first reference position 13827 with respect to the horizontal plane.
  • n is a natural number that can take i and k. i is any natural number.
  • the three-dimensional data encoding device encodes from the second reference position 13828 from among combinations of at least one horizontal angle ⁇ ref2 (i) and elevation angle ⁇ ref2 (i) corresponding to the reference candidate point 13822.
  • the k-th reference candidate point 13822 indicated by the combination of k) is selected as a reference point (inter reference point) used for inter prediction.
  • k is the horizontal angle ⁇ ref2 ( k ) and the elevation angle ⁇ ref2 (k). That is, the k-th reference candidate point is a reference point used for calculating the predicted value among the n reference candidate points, and is an example of the encoded first three-dimensional point.
  • the three-dimensional data encoding device derives the distance d ref2 (k) from the second reference position 13828 to the reference candidate point 13822 selected as the inter reference point, and predicts the distance d ref2 (k). Determine as the value d pred .
  • the three-dimensional data encoding device can accurately predict the distance d cur from the sensor 13826 of the encoding target frame to the encoding target point 13821, and the efficiency of inter prediction encoding can be improved. have a nature.
  • d ref2 (k) may be derived from equation Z7 in procedure 13 above.
  • the three-dimensional data encoding device may determine the inter reference point by projecting all reference candidate points of the reference frame onto the second polar coordinate system of the second reference position 13828 of the sensor 13826 of the encoding target frame. good. That is, the three-dimensional data encoding apparatus may project all reference candidate points of the reference frame onto the second polar coordinate system of the second reference position, and determine inter reference points based on all post-transformation candidate points. .
  • the three-dimensional data encoding device can detect the sensor 13825 of the reference frame based on the horizontal angle ⁇ cur or the elevation angle ⁇ cur of the encoding target point 13821, the distance m between the first reference position 13827 and the second reference position 13828, and the like.
  • the reference candidate points may be limited to points included in a partial range of the horizontal angle and elevation angle with respect to . As a result, it is possible to reduce the amount of processing for determining inter reference points.
  • the three-dimensional data encoding device limits reference candidate points to be subjected to coordinate system transformation to a part of all reference candidate points based on the horizontal angle ⁇ cur , elevation angle ⁇ cur , distance m, and the like. , the amount of processing involved in coordinate system conversion can be suppressed.
  • arithmetic processing such as trigonometric functions and division in each of the above procedures may be simplified using a table having a finite number of elements.
  • ⁇ ref2 (i) may be obtained from equation Z8 assuming that (h ref1 (i) ⁇ h ref2 (i))/d ref1 (i) is sufficiently small.
  • ⁇ ref2 (i) arctan( tan( ⁇ ref1 (i)) sin( ⁇ ref2 (i))/sin( ⁇ ref1 (i)) ) (Formula Z8)
  • FIG. 81 is a flow chart showing an example of the processing procedure of the inter prediction method.
  • the 3D data encoding apparatus determines intra prediction points (d intra , ⁇ intra , ⁇ intra ) in the encoding target frame as reference points for inter prediction (S13801).
  • the intra prediction information is notified using pred_mode or the like, and the prediction value by the prediction method determined as the appropriate intra prediction method is used.
  • notification of some or all of the intra prediction information may be omitted by limiting to a specific prediction method.
  • the intra prediction point determined as the reference point for inter prediction may be a three-dimensional point used to calculate the predicted value of the three-dimensional point to be encoded in the second polar coordinate system.
  • the 3D data encoding device projects the intra prediction points (d intra , ⁇ intra , ⁇ intra ) onto the first polar coordinate system of the reference frame, and the angle ( ⁇ sref , ⁇ sref ) are determined (S13802). Note that the angles ( ⁇ sref , ⁇ sref ) may be determined by Equations Z9 and Z10.
  • the three-dimensional data encoding device converts one or more three-dimensional points having angles ( ⁇ ref1 (i), ⁇ ref1 (i)) near angles ( ⁇ sref , ⁇ sref ) in the reference frame to A reference candidate point is selected by a predetermined method (S13803).
  • the three-dimensional data encoding device selects one or more laser scanning lines having an angle close to the elevation angle ⁇ sref , and selects laser scanning lines close to the elevation angle ⁇ sref in order of the horizontal angle ⁇ sref for each laser scanning line.
  • One or more three-dimensional points may be selected, and the order of selection may be set as the index of the reference candidate point.
  • the three-dimensional data encoding device projects the reference candidate points (d ref1 (i), ⁇ ref1 (i), ⁇ ref1 (i)) onto the second polar coordinate system at the second reference position of the encoding target frame. Then, the angle ( ⁇ ref2 (i), ⁇ ref2 (i)) in the encoding target frame is derived (S13804). Note that the angle ( ⁇ ref2 (i), ⁇ ref2 (i)) may be derived from equations Z11 and Z12.
  • the three-dimensional data encoding device selects inter reference points ( ⁇ ref2 (k), ⁇ ref2 (k)) from angles ( ⁇ ref2 (i), ⁇ ref2 (i)) by a predetermined method.
  • Select S13805
  • the 3D data encoding apparatus may select a reference candidate point having an angle closest to the angle ( ⁇ cur , ⁇ cur ) as an inter reference point.
  • the inter reference point is identified based on the angular component of the polar coordinate components representing the positions of other second three-dimensional points included in the encoding target frame.
  • the inter-reference point is represented by the first polar coordinate system, and among the plurality of first three-dimensional points including other encoded first three-dimensional points, the inter reference point is the first polar coordinate system to the second
  • the angle component of the plurality of projected first three-dimensional points after being projected onto the polar coordinate system is closest to the angle component of the point to be encoded.
  • multiple inter-reference points may be specified as NumRefPoints>1, and the predicted value d pred may be determined based on multiple d ref2 (k) (e.g., by averaging, linear interpolation, etc.) .
  • the 3D data encoding device derives the distance d ref2 (k) from the first reference position of the encoding target frame to the inter reference point, and determines the distance d ref2 (k) as the predicted value d pred . (S13806). Note that the distance d ref2 (k) may be derived by either formula Z13 or Z14.
  • d ref2 (k) d ref1 (k) sin( ⁇ ref1 (k))/sin( ⁇ ref2 (k)) (equation Z13)
  • d ref2 (k) (d ref1 (k)cos( ⁇ ref1 (k)) ⁇ m)/cos( ⁇ ref2 (k)) (equation Z14)
  • the three-dimensional data encoding apparatus projects the intra prediction point of the encoding target frame onto the first polar coordinate system at the first reference position of the reference frame, and generates one or more inter reference point candidates based on the angle. may be selected.
  • the number of reference candidate points used for inter prediction can be reduced, and the processing amount of inter prediction can be reduced.
  • arithmetic processing such as trigonometric functions and division in the above procedure may be simplified using a table having a finite number of elements.
  • inter prediction and intra prediction may be switched for each node or slice, or intra prediction or other inter prediction may be switched for each node or slice.
  • FIG. 82 is a diagram for explaining a first example of switching the prediction value derivation method according to the value of the horizontal angle.
  • FIG. 82 shows, for example, a sensor that emits a laser around a predetermined axis (rotational axis) to measure the distance to an object, such as a sensor such as LiDAR, when viewed from the axial direction. It is a diagram.
  • FIG. 82 shows, for example, a sensor that emits a laser around a predetermined axis (rotational axis) to measure the distance to an object, such as a sensor such as LiDAR, when viewed from the axial direction. It is a diagram.
  • index in FIG. 83 indicates index values 0 to 3 corresponding to virtual planes 13840 to 13843 set in FIG.
  • a virtual plane perpendicular to a horizontal plane (reference plane) is set as an object in four directions, front, back, left, and right.
  • the predicted value d pred is derived by the formula shown.
  • the 3D data encoding device acquires the horizontal angle ⁇ cur of the encoding target point and derives the predicted value d pred based on the equation corresponding to the horizontal angle ⁇ cur shown in FIG.
  • may be included in header information in predetermined data units such as sequences, frames, and slices.
  • may be changed by being notified from the 3D data encoding device to the 3D data decoding device. Moreover, it is sufficient that the range to include the boundary line of each range is consistent between the encoding process and the decoding process, and does not necessarily have to be as shown in FIG. 83 .
  • the three-dimensional data encoding apparatus includes a first determination method of a predicted value in predictive coding for a plurality of three-dimensional points on the first plane, and a predictive coding method for a plurality of three-dimensional points on the second plane. may be different from the second determination method of the predicted value in .
  • predictive encoding is inter-prediction in which encoding target points of an encoding target frame are predictively encoded using reference candidate points of a reference frame different from the encoding target frame.
  • the first plane is a plane facing the first reference position and the second reference position in the third direction, and is a plane perpendicular to the reference plane.
  • the second plane is a plane facing the first reference position and the second reference position in the fourth direction, and is a plane perpendicular to the reference plane.
  • the third direction and the fourth direction are directions different from each other.
  • Some of the plurality of 3D points on the first plane are included in the plurality of first 3D points included in the reference frame.
  • Some of the plurality of 3D points on the first plane are included in the plurality of second 3D points included in the encoding target frame.
  • Some of the plurality of 3D points on the second plane are included in the plurality of first 3D points included in the reference frame.
  • Another part of the plurality of 3D points on the second plane is included in the plurality of second 3D points included in the second frame.
  • the distance d cur from the second reference position of the encoding target frame to the encoding target point is obtained by the sensor 13845 of the reference frame at the first reference position separated by the distance m from the second reference position.
  • prediction can be performed with higher precision than the inter prediction method described with reference to FIGS. 78 to 81, and the efficiency of inter prediction coding can be further improved.
  • arithmetic processing such as trigonometric functions and division in FIG. 83 may be simplified by using a table consisting of a finite number of elements.
  • the simplification makes it possible to improve the efficiency of inter prediction coding while suppressing the amount of processing.
  • FIG. 84 is a diagram for explaining a second example in which the prediction value derivation method is switched according to the value of the horizontal angle.
  • FIG. 85 is a diagram showing a formula for deriving the predicted value d pred determined for each of the eight directions defined by the horizontal angle ⁇ cur .
  • Index in FIG. 85 indicates index values 0 to 7 corresponding to virtual planes 13840 to 13843 set in FIG.
  • a virtual plane perpendicular to a horizontal plane (reference plane) as an object is set in eight directions: four directions of front, back, left, and right, and four oblique directions between the four directions.
  • a predicted value d pred is derived from the formula shown in FIG. 85 for each of the eight ranges divided by cur .
  • the 3D data encoding device acquires the horizontal angle ⁇ cur of the encoding target point and derives the predicted value d pred based on the equation corresponding to the horizontal angle ⁇ cur shown in FIG.
  • ⁇ and ⁇ may be included in header information in predetermined data units such as sequences, frames, and slices. Accordingly, ⁇ and ⁇ may be notified from the 3D data encoding device to the 3D data decoding device and changed. In addition, it is sufficient for the encoding process and the decoding process to agree in which range the boundary line of each range is included, and it is not necessarily as shown in FIG. 85 .
  • the distance d cur from the second reference position of the encoding target frame to the encoding target point is calculated based on the point group obtained by the sensor 13845 of the reference frame at the first reference position which is the distance m from the sensor 13846. , more accurate prediction than the inter prediction method described with reference to FIGS. 78 to 83, and the efficiency of inter prediction coding can be further improved.
  • arithmetic processing such as trigonometric functions and division in FIG. 85 may be simplified by using a table consisting of a finite number of elements.
  • the simplification may improve the efficiency of inter-prediction coding while suppressing the amount of processing.
  • FIGS. 78 to 85 may be implemented in combination with at least part of other embodiments. Also, part of the processing disclosed using FIGS. 78 to 85 may be implemented in combination with other embodiments. Also, the three-dimensional data encoding device or three-dimensional data decoding device may not include all of the components disclosed using FIGS. good too.
  • FIG. 86 is a diagram for explaining a method of calculating predicted values when the index indicating the method of deriving predicted values in eight directions is 0.
  • FIG. 86 for example, the second reference position 13867 of the sensor 13865 when measuring the point cloud of the encoding target frame, the first reference position 13866 of the sensor 13864 when measuring the point cloud of the reference frame, and the encoding target point
  • FIG. 86 It is a diagram.
  • An encoding target point 13861 and a reference candidate point 13862 indicate three-dimensional positions on the same plane (for example, plane) 13869 of an object 13863 .
  • the encoding target point 13861 is included in the point group of the encoding target frame.
  • the point group of the frame to be encoded is indicated by black diamond-shaped points in FIG.
  • the distance d ref1 (k) from the sensor 13864 to the reference candidate point 13862, the horizontal angle ⁇ ref1 (k) indicating the direction of the reference candidate point 13862 with respect to the reference direction 13868 of the sensor 13864, and the second reference The distance d ref 2(k) from the position 13867 to the reference candidate point 13862, the horizontal angle ⁇ ref 2(k) indicating the direction of the reference candidate point 13862 with respect to the reference direction 13868 of the sensor 13865, and the code from the second reference position 13867
  • the distance d pred to the conversion target point 13861 is shown.
  • equations Z15 and Z16 hold.
  • FIG. 87 is a diagram for explaining the method of calculating the predicted values when the index indicating the method of deriving the predicted values in the eight directions is 2.
  • FIG. 87 for example, the second reference position 13877 of the sensor 13875 when measuring the point cloud of the encoding target frame, the first reference position 13876 of the sensor 13874 when measuring the point cloud of the reference frame, and the encoding target point
  • FIG. 87 It is a diagram.
  • An encoding target point 13871 and a reference candidate point 13872 indicate three-dimensional positions on the same plane (for example, plane) 13880 of the object 13863 .
  • the encoding target point 13871 is included in the point group of the encoding target frame.
  • the point group of the frame to be encoded is indicated by black diamond-shaped points in FIG.
  • equations Z17 and Z18 hold.
  • FIG. 88 is a diagram for explaining the method of calculating the predicted values when the index indicating the method of deriving the predicted values in the eight directions is 1.
  • FIG. 88 for example, the second reference position 13887 of the sensor 13885 when measuring the point cloud of the encoding target frame, the first reference position 13886 of the sensor 13884 when measuring the point cloud of the reference frame, and the encoding target point
  • FIG. 88 It is a diagram.
  • An encoding target point 13881 and a reference candidate point 13882 indicate three-dimensional positions on the same plane (for example, plane) 13890 of the object 13883 .
  • the encoding target point 13881 is included in the point group of the encoding target frame.
  • the point group of the frame to be encoded is indicated by black diamond-shaped points in FIG.
  • the distance d pred from 13887 to the encoding target point 13881 is shown.
  • equations Z19 and Z20 hold.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • the three-dimensional data encoding device identifies the encoded first three-dimensional point whose position is expressed in the first polar coordinate system based on the first position (S13801).
  • the three-dimensional data encoding device predicts a second distance from the second position of the uncoded second three-dimensional point whose position is expressed in a second polar coordinate system based on the second position.
  • the first three-dimensional point and the second three-dimensional point are expressed in different polar coordinate systems. Therefore, when the 3D data encoding device predictively encodes the second 3D point to be encoded using the first 3D point, the 3D data encoding apparatus converts the first 3D point to, for example, the second polar coordinate system.
  • the projection identifies the distance between the first position and the second position, the first angle, and the first distance. This makes it possible to unify the coordinate systems of the second three-dimensional point to be encoded and the first three-dimensional point to be referred to.
  • a second 3D point to be encoded can be predictively encoded. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy, and the encoding efficiency of predictive encoding can be improved.
  • the three-dimensional data encoding device may calculate the predicted value of the position of the unencoded second three-dimensional point in the second polar coordinate system by: (i) the distance between the first position and the second position , (ii) the first angle, and (iii) the first distance, (iv) the second angle between the first line and the third line connecting the second position and the first three-dimensional point, and (v) calculating a second distance from the second position of the first three-dimensional point in the second polar coordinate system;
  • the coordinate system of the second three-dimensional point to be encoded and the first three-dimensional point to be referred to can be unified.
  • the second 3D point to be coded can be predictively coded based on the second distance from the second position of the 3D point in the second coordinate system.
  • the three-dimensional data encoding device determines the first distance and the first horizontal angle as the first angle. is used to calculate the second angle.
  • the first horizontal angle is a horizontal angle component of the polar coordinate components representing the position of the first three-dimensional point. Therefore, the processing load for calculating the first angle can be reduced.
  • the three-dimensional data encoding device specifies the position of the second three-dimensional point in the second polar coordinate system, and based on other encoded second three-dimensional points, 1 Identify a 3D point.
  • the other second three-dimensional point is a three-dimensional point used to calculate the predicted value of the second three-dimensional point in the second polar coordinate system.
  • the second three-dimensional point to be encoded Points can be predicted with high accuracy.
  • the first three-dimensional point is identified based on the angle component of the polar coordinate components representing the position of the other second three-dimensional point.
  • a first three-dimensional point that is close to the second three-dimensional point to be encoded can be selected from a plurality of first three-dimensional points. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy.
  • the first three-dimensional point is a plurality of first three-dimensional points whose position is represented in the first polar coordinate system and which includes another encoded first three-dimensional point, from the first polar coordinate system to
  • the angular components of the plurality of projected first three-dimensional points after being projected onto the second polar coordinate system are close to the angular components of the second three-dimensional points.
  • a 3D point close to the second 3D point to be encoded can be selected from the plurality of first 3D points. Therefore, the second three-dimensional point to be encoded can be predicted with high accuracy.
  • the plurality of first three-dimensional points are obtained by measuring the distance to the object in each of the plurality of first directions around the first position in the space on the reference plane.
  • the plurality of second three-dimensional points are obtained by measuring the distance to the object in each of the plurality of second directions around the second position in the space on the reference plane.
  • the plurality of first three-dimensional points includes the first three-dimensional point, and each position is represented in the first polar coordinate system.
  • the plurality of second three-dimensional points includes a second three-dimensional point, and each position is represented in a second polar coordinate system.
  • the third direction and the fourth direction are different.
  • one or more candidate points are selected using a determination method according to each direction, one 3D point to be encoded can be predicted with higher accuracy, and the encoding efficiency of predictive encoding can be improved. can be further improved.
  • a three-dimensional data encoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • the three-dimensional data decoding device performs the processing shown in FIG.
  • the three-dimensional data decoding device identifies the decoded first three-dimensional point whose position is expressed in the first polar coordinate system based on the first position (S13811).
  • the three-dimensional data decoding device obtains a predicted value of a second distance from the second position of the undecoded second three-dimensional point whose position is expressed in a second polar coordinate system based on the second position.
  • the prediction value is calculated using the same method as the three-dimensional data encoding method, so the second three-dimensional point to be decoded can be correctly decoded.
  • the three-dimensional data decoding device in order to calculate the predicted value of the position of the undecoded second three-dimensional point in the second polar coordinate system, (i) the distance between the first position and the second position, ( ii) the first angle, and (iii) the first distance, (iv) the second angle between the first line and the third line joining the second position and the first three-dimensional point, and (v ) calculating a second distance from a second position of the first three-dimensional point in a second polar coordinate system;
  • the three-dimensional data decoding device uses the first distance and the first horizontal angle as the first angle when the first line and the reference line of the horizontal angle in the first polar coordinate system are aligned, Calculate the second angle.
  • the first horizontal angle is a horizontal angle component of the polar coordinate components representing the position of the first three-dimensional point.
  • the three-dimensional data decoding device specifies the first three-dimensional point based on the other second three-dimensional point that has been decoded and whose position is expressed in the second polar coordinate system. Identify.
  • the other second 3D point is a 3D point used to calculate the predicted value of the 3D point to be encoded.
  • the first three-dimensional point is identified based on the angle component of the polar coordinate components representing the position of the other second three-dimensional point.
  • the first three-dimensional point is a plurality of first three-dimensional points whose position is represented in the first polar coordinate system and which includes another encoded first three-dimensional point, from the first polar coordinate system to
  • the angular components of the plurality of projected first three-dimensional points after being projected onto the second polar coordinate system are close to the angular components of the second three-dimensional points.
  • the plurality of first three-dimensional points are obtained by measuring the distance to the object in each of the plurality of first directions around the first position in the space on the reference plane.
  • the plurality of second three-dimensional points are obtained by measuring the distance to the object in each of the plurality of second directions around the second position in the space on the reference plane.
  • the plurality of first three-dimensional points includes a first three-dimensional point and each position is represented in a first polar coordinate system.
  • the plurality of second three-dimensional points includes a second three-dimensional point and each position is represented in a second polar coordinate system.
  • the third direction and the fourth direction are different.
  • a three-dimensional data decoding device includes a processor and memory, and the processor uses the memory to perform the above processing.
  • FIG. 91 is a block diagram showing a configuration example of a three-dimensional data creation device 810 according to this embodiment.
  • This three-dimensional data creation device 810 is mounted on a vehicle, for example.
  • the three-dimensional data creation device 810 transmits and receives three-dimensional data to and from an external traffic monitoring cloud, a preceding vehicle, or a following vehicle, and creates and accumulates three-dimensional data.
  • the three-dimensional data creation device 810 includes a data reception unit 811, a communication unit 812, a reception control unit 813, a format conversion unit 814, a plurality of sensors 815, a three-dimensional data creation unit 816, and a three-dimensional data synthesis unit. 817 , a three-dimensional data storage unit 818 , a communication unit 819 , a transmission control unit 820 , a format conversion unit 821 and a data transmission unit 822 .
  • the data receiving unit 811 receives three-dimensional data 831 from the traffic monitoring cloud or the preceding vehicle.
  • the three-dimensional data 831 includes information such as point clouds, visible light images, depth information, sensor position information, or speed information, including areas that cannot be detected by the sensor 815 of the own vehicle.
  • the communication unit 812 communicates with the traffic monitoring cloud or the preceding vehicle, and transmits data transmission requests and the like to the traffic monitoring cloud or the preceding vehicle.
  • the reception control unit 813 exchanges information such as compatible formats with the communication destination via the communication unit 812, and establishes communication with the communication destination.
  • the format conversion unit 814 generates three-dimensional data 832 by performing format conversion or the like on the three-dimensional data 831 received by the data reception unit 811 . Also, the format conversion unit 814 performs decompression or decoding processing when the three-dimensional data 831 is compressed or encoded.
  • a plurality of sensors 815 is a group of sensors such as LiDAR, a visible light camera, or an infrared camera that acquires information outside the vehicle, and generates sensor information 833 .
  • the sensor information 833 is three-dimensional data such as a point cloud (point cloud data) when the sensor 815 is a laser sensor such as LiDAR. Note that the number of sensors 815 may not be plural.
  • a three-dimensional data creation unit 816 creates three-dimensional data 834 from sensor information 833 .
  • Three-dimensional data 834 includes information such as, for example, point clouds, visible light images, depth information, sensor position information, or velocity information.
  • the three-dimensional data synthesizing unit 817 synthesizes the three-dimensional data 834 created based on the sensor information 833 of the own vehicle with the three-dimensional data 832 created by the traffic monitoring cloud, the preceding vehicle, etc. Three-dimensional data 835 including the space in front of the preceding vehicle that cannot be detected by the sensor 815 is constructed.
  • the three-dimensional data accumulation unit 818 accumulates the generated three-dimensional data 835 and the like.
  • the communication unit 819 communicates with the traffic monitoring cloud or the following vehicle, and transmits data transmission requests and the like to the traffic monitoring cloud or the following vehicle.
  • the transmission control unit 820 exchanges information such as compatible formats with the communication destination via the communication unit 819, and establishes communication with the communication destination.
  • the transmission control unit 820 is based on the three-dimensional data construction information of the three-dimensional data 832 generated by the three-dimensional data synthesizing unit 817 and the data transmission request from the communication destination, in the space of the three-dimensional data to be transmitted. Determine a certain transmission area.
  • the transmission control unit 820 determines the transmission area including the space in front of the own vehicle that cannot be detected by the sensors of the following vehicle in response to a data transmission request from the traffic monitoring cloud or the following vehicle. In addition, the transmission control unit 820 determines the transmission area by determining whether or not the transmittable space or the transmitted space is updated based on the three-dimensional data construction information. For example, the transmission control unit 820 determines an area specified by the data transmission request and in which the corresponding three-dimensional data 835 exists as the transmission area. Then, the transmission control section 820 notifies the format conversion section 821 of the format supported by the communication destination and the transmission area.
  • the format conversion unit 821 converts the three-dimensional data 836 of the transmission area among the three-dimensional data 835 stored in the three-dimensional data storage unit 818 into a format compatible with the receiving side, thereby converting the three-dimensional data 837 into Generate. Note that the format conversion unit 821 may reduce the data amount by compressing or encoding the three-dimensional data 837 .
  • the data transmission unit 822 transmits the three-dimensional data 837 to the traffic monitoring cloud or the following vehicle.
  • This three-dimensional data 837 includes, for example, information such as a point cloud in front of the own vehicle, visible light images, depth information, or sensor position information, including blind spots for following vehicles.
  • format conversion units 814 and 821 perform format conversion and the like here, the format conversion need not be performed.
  • the three-dimensional data creation device 810 acquires three-dimensional data 831 of an area that cannot be detected by the vehicle's sensor 815 from the outside, and acquires the three-dimensional data 831 and sensor information 833 detected by the vehicle's sensor 815.
  • 3D data 835 is generated by synthesizing the 3D data 834 based on .
  • the three-dimensional data creation device 810 can create three-dimensional data in a range that cannot be detected by the sensor 815 of the own vehicle.
  • the three-dimensional data creation device 810 transmits three-dimensional data including the space in front of the own vehicle that cannot be detected by the sensors of the following vehicle to the traffic monitoring cloud or the following vehicle. It can be sent to a vehicle or the like.
  • FIG. 92 is a flow chart showing an example of a procedure for transmitting three-dimensional data to the traffic monitoring cloud or following vehicles by the three-dimensional data creation device 810.
  • the three-dimensional data creation device 810 generates and updates space three-dimensional data 835 including the space on the road ahead of the vehicle (S801). Specifically, the three-dimensional data creation device 810 synthesizes the three-dimensional data 834 created based on the sensor information 833 of the own vehicle with the three-dimensional data 831 created by the traffic monitoring cloud or the preceding vehicle. Then, three-dimensional data 835 including the space in front of the preceding vehicle that cannot be detected by the sensor 815 of the own vehicle is constructed.
  • the three-dimensional data creation device 810 determines whether the three-dimensional data 835 included in the transmitted space has changed (S802).
  • the three-dimensional data creation device 810 detects that the change has occurred.
  • the 3D data including the resulting spatial 3D data 835 is transmitted to the traffic monitoring cloud or the following vehicle (S803).
  • the three-dimensional data creation device 810 may transmit the three-dimensional data of the space in which the change has occurred in accordance with the transmission timing of the three-dimensional data that is transmitted at predetermined intervals. You may In other words, the three-dimensional data creation device 810 may transmit the three-dimensional data of the space in which the change occurs, prior to the three-dimensional data transmitted at predetermined intervals.
  • the three-dimensional data creation device 810 may transmit all the three-dimensional data of the changed space as the three-dimensional data of the changed space, or may transmit the difference of the three-dimensional data (e.g. appearance or disappearance). 3D point information, or displacement information of 3D points) may be transmitted.
  • the three-dimensional data creation device 810 may transmit metadata related to the own vehicle's danger avoidance operation, such as a sudden braking warning, to the following vehicle prior to the three-dimensional data of the space in which the change has occurred.
  • the following vehicle can recognize the sudden braking of the preceding vehicle at an early stage, and can start the danger avoidance operation such as deceleration earlier.
  • the three-dimensional data creation device 810 creates a predetermined shape at a distance L in front of the host vehicle.
  • the three-dimensional data contained in the space of is transmitted to the traffic monitoring cloud or the following vehicle (S804).
  • steps S801 to S804 are repeatedly performed at predetermined time intervals.
  • the 3D data creation device 810 does not need to transmit the 3D data 837 of the space if there is no difference between the 3D data 835 of the current transmission target space and the 3D map.
  • a client device transmits sensor information obtained by a sensor to a server or another client device.
  • FIG. 93 is a diagram showing the configuration of a system for transmitting and receiving three-dimensional map and sensor information according to this embodiment.
  • the system includes a server 901 and client devices 902A and 902B. Note that the client devices 902A and 902B are also referred to as the client device 902 when they are not distinguished from each other.
  • the client device 902 is, for example, in-vehicle equipment mounted on a mobile object such as a vehicle.
  • the server 901 is, for example, a traffic monitoring cloud, etc., and can communicate with a plurality of client devices 902 .
  • the server 901 transmits to the client device 902 a three-dimensional map made up of point clouds.
  • the configuration of the three-dimensional map is not limited to a point cloud, and may represent other three-dimensional data such as a mesh structure.
  • the client device 902 transmits sensor information acquired by the client device 902 to the server 901 .
  • the sensor information includes, for example, at least one of LiDAR acquisition information, visible light images, infrared images, depth images, sensor position information, and velocity information.
  • the data sent and received between the server 901 and the client device 902 may be compressed for data reduction, or may remain uncompressed to maintain data accuracy.
  • the point cloud can use, for example, a three-dimensional compression scheme based on an octatree structure.
  • 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 3D map managed by the server 901 to the client device 902 in response to a 3D map transmission request from the client device 902 .
  • the server 901 may transmit the 3D map without waiting for the 3D map transmission request from the client device 902 .
  • server 901 may broadcast a 3D 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 at regular intervals to the client device 902 that has once received a transmission request.
  • the server 901 may transmit the 3D map to the client device 902 each time the 3D map managed by the server 901 is updated.
  • the client device 902 issues a 3D map transmission request to the server 901 .
  • the client device 902 transmits a 3D map transmission request to the server 901 .
  • the client device 902 may request the server 901 to send the 3D map. If the 3D map held by the client device 902 is old, the client device 902 may request the server 901 to send the 3D map. For example, the client device 902 may issue a 3D map transmission request to the server 901 when a certain period of time has passed since the client device 902 acquired the 3D map.
  • the client device 902 may issue a 3D map transmission request to the server 901 before a certain time before the client device 902 leaves the space represented by the 3D map held by the client device 902 .
  • the client device 902 issues a 3D map transmission request to the server 901.
  • the moving route and moving speed of the client device 902 are known, based on these, the time at which the client device 902 will leave is predicted from the space indicated by the three-dimensional map held by the client device 902. may
  • the client device 902 may issue a 3D map transmission request to the server 901 when the error in aligning the 3D data created from the sensor information by the client device 902 with the 3D map is greater than a certain value.
  • the client device 902 transmits 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 .
  • the client device 902 may periodically transmit the sensor information to the server 901 for a certain period of time.
  • the client device 902 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 a certain amount or more, the client device 902 It may be determined that there is a possibility that the three-dimensional map has changed, and that fact and 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 location information of the client device 902 such as GPS from the client device 902 .
  • location 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 client device 901 generates a new three-dimensional map.
  • a transmission request for sensor information is issued 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 conditions such as when it is snowing or in the event of a disaster, when it wants to check the traffic jam conditions, the accident conditions, or the like. good too.
  • the client device 902 may set the data amount of sensor information to be transmitted to the server 901 according to the communication state or bandwidth at the time of receiving the sensor information transmission request received from the server 901 .
  • Setting the data amount of sensor information to be transmitted to the server 901 means, for example, increasing or decreasing the data itself, or appropriately selecting a compression method.
  • FIG. 94 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 three-dimensional data created based on the sensor information of the client device 902 . Also, 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, a three-dimensional image processing unit 1017, A three-dimensional data storage unit 1018 , a format conversion unit 1019 , a communication unit 1020 , a transmission control unit 1021 and a data transmission unit 1022 are provided.
  • the data receiving unit 1011 receives the 3D map 1031 from the server 901 .
  • the 3D map 1031 is data including a point cloud such as WLD or SWLD.
  • the three-dimensional map 1031 may contain 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) 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 compatible formats with the communication destination via the communication unit 1012, and establishes communication with the communication destination.
  • the format conversion unit 1014 generates a three-dimensional map 1032 by performing format conversion or the like on the three-dimensional map 1031 received by the data reception unit 1011 . Also, if the 3D map 1031 is compressed or encoded, the format conversion unit 1014 performs decompression or decoding processing. Note that the format conversion unit 1014 does not perform decompression or decoding processing if the 3D map 1031 is uncompressed data.
  • a plurality of sensors 1015 is a group of sensors such as LiDAR, a visible light camera, an infrared camera, or a depth sensor that acquires information outside the vehicle in which the client device 902 is mounted, and generates 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. Note that the number of sensors 1015 may not be plural.
  • the three-dimensional data creation unit 1016 creates three-dimensional data 1034 around the own vehicle based on the sensor information 1033 .
  • the three-dimensional data creation unit 1016 creates point cloud data with color information around the host vehicle using information obtained by LiDAR and visible light images obtained by a visible light camera.
  • the three-dimensional image processing unit 1017 uses the three-dimensional map 1032 such as the received point cloud and the three-dimensional data 1034 around the vehicle generated from the sensor information 1033 to perform self-position estimation processing of the vehicle. .
  • the 3D image processing unit 1017 creates 3D data 1035 around the own vehicle by synthesizing the 3D map 1032 and the 3D data 1034, and uses the created 3D data 1035 to estimate the self position. processing may be performed.
  • the three-dimensional data storage unit 1018 stores a three-dimensional map 1032, three-dimensional data 1034, three-dimensional data 1035, and the like.
  • the format conversion unit 1019 generates sensor information 1037 by converting the sensor information 1033 into a format supported by the receiving side. Note that the format conversion unit 1019 may reduce the data amount by compressing or encoding the sensor information 1037 . Also, the format conversion unit 1019 may omit the processing when format conversion is not required. Also, the format conversion unit 1019 may control the amount of data to be transmitted according to the specification of the transmission range.
  • the communication unit 1020 communicates with the server 901 and receives data transmission requests (sensor information transmission requests) 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, for example, information acquired by LiDAR, luminance images acquired by a visible light camera, infrared images acquired by an infrared camera, depth images acquired by a depth sensor, sensor position information, and speed information from a plurality of sensors. Contains information obtained by 1015.
  • FIG. 95 is a block diagram showing a configuration example of the server 901.
  • the server 901 receives sensor information transmitted from the client device 902 and creates three-dimensional data based on the received sensor information.
  • the server 901 updates the 3D map managed by the server 901 using the created 3D data.
  • the server 901 transmits the updated three-dimensional map to the client device 902 in response to a three-dimensional map transmission request 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 synthesizing unit 1117, and a three-dimensional data accumulation 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 obtained by LiDAR, luminance images obtained by a visible light camera, infrared images obtained by an infrared camera, depth images obtained by a depth sensor, sensor position information, and speed information.
  • the communication unit 1112 communicates with the client device 902 and transmits data transmission requests (for example, sensor information transmission requests) to the client device 902 .
  • data transmission requests for example, sensor information transmission requests
  • the reception control unit 1113 exchanges information such as compatible formats with the communication destination via the communication unit 1112 to establish communication.
  • the format conversion unit 1114 If the received sensor information 1037 is compressed or encoded, the format conversion unit 1114 generates sensor information 1132 by performing decompression or decoding processing. Note that the format conversion unit 1114 does not perform decompression or decoding processing if the sensor information 1037 is non-compressed data.
  • the three-dimensional data creation unit 1116 creates three-dimensional data 1134 around the client device 902 based on the sensor information 1132 .
  • the three-dimensional data creation unit 1116 creates point cloud data with color information around the client device 902 using the information obtained by the LiDAR and the visible light image obtained by the visible light camera.
  • the three-dimensional data synthesizing unit 1117 updates the three-dimensional map 1135 managed by the server 901 by synthesizing the three-dimensional data 1134 created based on the sensor information 1132 with the three-dimensional map 1135 managed by the server 901 .
  • the three-dimensional data accumulation unit 1118 accumulates the three-dimensional map 1135 and the like.
  • the format conversion unit 1119 generates a 3D map 1031 by converting the 3D map 1135 into a format supported by the receiving side. Note that the format conversion unit 1119 may reduce the data amount by compressing or encoding the 3D map 1135 . Also, the format conversion unit 1119 may omit the processing when the format conversion is not required. Also, the format conversion unit 1119 may control the amount of data to be transmitted according to the specification of the transmission range.
  • the communication unit 1120 communicates with the client device 902 and receives data transmission requests (3D map transmission requests) and the like from the client device 902 .
  • the transmission control unit 1121 exchanges information such as compatible formats 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 3D map 1031 is data including a point cloud such as WLD or SWLD.
  • the three-dimensional map 1031 may contain either compressed data or uncompressed data.
  • FIG. 96 is a flow chart showing the 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 the three-dimensional map related to the position information by also transmitting the position information of the client device 902 obtained by GPS or the like.
  • a three-dimensional map point cloud, etc.
  • the client device 902 receives the 3D 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 multiple sensors 1015 (S1004).
  • the client device 902 estimates its own position using the three-dimensional map 1032 received from the server 901 and the three-dimensional data 1034 created from the sensor information 1033 (S1005).
  • FIG. 97 is a flowchart showing the operation of the client device 902 when sending sensor information.
  • the client device 902 receives a sensor information transmission request from the server 901 (S1011).
  • the client device 902 that has received the transmission request transmits the sensor information 1037 to the server 901 (S1012).
  • the sensor information 1033 includes a plurality of pieces of information obtained by a plurality of sensors 1015
  • the client device 902 may generate the sensor information 1037 by compressing each piece of information using a compression method suitable for each piece of information. good.
  • FIG. 98 is a flow chart showing the operation when the server 901 acquires sensor information.
  • the server 901 requests the client device 902 to send 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. 99 is a flow chart showing the operation when the server 901 transmits the 3D map.
  • the server 901 receives a 3D map transmission request from the client device 902 (S1031).
  • the server 901 that has received the 3D map transmission request transmits the 3D map 1031 to the client device 902 (S1032).
  • the server 901 may extract a three-dimensional map of the vicinity of the client device 902 in accordance with the position information of the client device 902 and transmit the extracted three-dimensional map.
  • the server 901 may compress the three-dimensional map configured by the point cloud using, for example, a compression method based on an octatree 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 .
  • the server 901 performs matching between the created three-dimensional data 1134 and a three-dimensional map 1135 of the same area managed by the server 901, thereby calculating the difference between the three-dimensional data 1134 and the three-dimensional map 1135.
  • the server 901 determines that some kind of abnormality has occurred around 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, sensor performance, and sensor model number. Also, the sensor information 1037 may be added with a class ID or the like according to the performance of the sensor. For example, when the sensor information 1037 is information acquired by LiDAR, class 1 is a sensor that can acquire information with an accuracy of several millimeters, class 2 is a sensor that can acquire information with an accuracy of several centimeters, and class 2 is a sensor that can acquire information with an accuracy of several centimeters. It is conceivable to assign an identifier to the performance of the sensor, such as a class 3 sensor that can acquire information with high accuracy. Also, the server 901 may estimate sensor performance information and the like from the model number of the client device 902 .
  • the server 901 may determine sensor specification information from the vehicle model. In this case, the server 901 may acquire vehicle type information in advance, or the information may be included in the sensor information. Further, the server 901 may use the acquired sensor information 1037 to switch the degree of correction for the three-dimensional data 1134 created using the sensor information 1037 . For example, when the sensor performance is high accuracy (class 1), the server 901 does not correct the 3D data 1134 . If 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, the server 901 increases the degree (strength) of correction as the accuracy of the sensor decreases.
  • the server 901 may simultaneously issue sensor information transmission requests to a plurality of client devices 902 in a certain space.
  • the server 901 receives a plurality of pieces of sensor information from a plurality of client devices 902, it is not necessary to use all of the sensor information to create the three-dimensional data 1134.
  • the sensor to be used information may be selected.
  • the server 901 selects high-precision sensor information (class 1) from among the plurality of received sensor information, and creates three-dimensional data 1134 using the selected sensor information. You may
  • the server 901 is not limited to a server such as a traffic monitoring cloud, and may be another client device (in-vehicle).
  • FIG. 100 is a diagram showing the 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 a space that can be acquired from the client device 902A by utilizing the performance of the client device 902C. For example, such a case may occur when the client device 902C has high performance.
  • 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.
  • Client device 902A receives a highly accurate 3D map from client device 902C according to its rights.
  • the client device 902C may issue a sensor information transmission request to a plurality of client devices 902 (client device 902A and client device 902B) located nearby. If the client device 902A or the client device 902B has a high-performance sensor, the client device 902C can create three-dimensional data using sensor information obtained from this high-performance sensor.
  • FIG. 101 is a block diagram showing the functional configurations of the server 901 and the client device 902.
  • the server 901 includes, for example, a 3D map compression/decoding processing unit 1201 that compresses and decodes a 3D 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 encoded data of the compressed sensor information to the server 901 .
  • the client device 902 may internally hold a processing unit (device or LSI) that performs processing for decoding a 3D map (point cloud, etc.), and the 3D data of the 3D map (point cloud, etc.) There is no need to internally hold a processing unit that performs processing for compressing . As a result, the cost and power consumption of the client device 902 can be reduced.
  • a processing unit device or LSI
  • the client apparatus 902 is mounted on a mobile body, and detects the surrounding conditions of the mobile body from the sensor information 1033 obtained by the sensor 1015 mounted on the mobile body. Create peripheral three-dimensional data 1034 .
  • the client device 902 estimates the self-location of the mobile object using the created 3D data 1034 .
  • the client device 902 transmits the acquired sensor information 1033 to the server 901 or another client device 902 .
  • the client device 902 transmits the sensor information 1033 to the server 901 or the like.
  • the data amount of transmission data can be reduced compared to 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 3D map transmission request to the server 901 and receives the 3D map 1031 from the server 901 .
  • the client device 902 uses the 3D data 1034 and the 3D map 1032 to estimate its own position.
  • the sensor information 1033 includes at least one of information obtained by the laser sensor, luminance image, infrared image, depth image, sensor position information, and sensor velocity information.
  • the sensor information 1033 includes information indicating sensor performance.
  • the client device 902 encodes or compresses the sensor information 1033, and transmits the encoded or compressed sensor information 1037 to the server 901 or another client device 902 when transmitting the sensor information. This allows the client device 902 to reduce the amount of data to be transmitted.
  • the client device 902 includes a processor and 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 obtains sensor information 1037 indicating the surrounding situation of the mobile body, which is obtained by the sensor 1015 mounted on the mobile body. is received from the client device 902 .
  • the server 901 creates three-dimensional data 1134 around the moving object from the received sensor information 1037 .
  • the server 901 creates three-dimensional data 1134 using the sensor information 1037 transmitted from the client device 902 .
  • the data amount of transmission data can be reduced compared to the case where the client device 902 transmits three-dimensional data.
  • 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 sensor information transmission request to the client device 902 .
  • the server 901 updates the 3D map 1135 using the created 3D data 1134, and transmits the 3D map 1135 to the client device 902 in response to a transmission request for the 3D map 1135 from the client device 902. Send.
  • the sensor information 1037 includes at least one of information obtained by the laser sensor, luminance image, infrared image, depth image, sensor position information, and sensor velocity information.
  • the sensor information 1037 includes information indicating sensor performance.
  • the server 901 further corrects the three-dimensional data according to sensor performance. 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 pieces of sensor information 1037 from a plurality of client devices 902, and based on a plurality of pieces of information indicating sensor performance contained in the plurality of sensor information 1037, three-dimensional data 1134 select the sensor information 1037 used to create the . According to this, the server 901 can improve the quality of the 3D data 1134 .
  • the server 901 also decodes or decompresses the received sensor information 1037 and creates three-dimensional data 1134 from the sensor information 1132 after decoding or decompression. According to this, the server 901 can reduce the amount of data to be transmitted.
  • the server 901 includes a processor and memory, and the processor uses the memory to perform the above processing.
  • FIG. 102 is a diagram showing the configuration of a system according to this embodiment.
  • the system shown in Figure 102 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 object such as a vehicle and transmit sensor information to the server 2001.
  • Server 2001 transmits the 3D map (point cloud) to client device 2002A and client device 2002B.
  • the client device 2002A includes a sensor information acquisition unit 2011, a storage unit 2012, and a data transmission propriety determination unit 2013.
  • the configuration of the client device 2002B is also the same. Further, hereinafter, the client device 2002A and the client device 2002B are also referred to as the client device 2002 when they are not distinguished from each other.
  • FIG. 103 is a flow chart showing the operation of the client device 2002 according to this embodiment.
  • the sensor information acquisition unit 2011 acquires various sensor information using the sensors (sensor group) mounted on the moving body. That is, the sensor information acquisition unit 2011 acquires sensor information indicating the surrounding situation of the mobile object, which is obtained by the sensors (sensor group) mounted on the mobile object. Also, 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 images, infrared images, and depth images.
  • the sensor information may include at least one of sensor position information, speed information, acquisition time information, and acquisition location information.
  • the sensor position information indicates the position of the sensor that acquired the sensor information.
  • the speed information indicates the speed of the moving object when the sensor acquires the sensor information.
  • Acquisition time information indicates the time when the sensor information was acquired by the sensor.
  • Acquisition location information indicates the position of the moving body or the sensor when the sensor information was acquired by the sensor.
  • the data transmittability determination unit 2013 determines whether the mobile object (client device 2002) exists in an environment in which sensor information can be transmitted to the server 2001 (S2002). For example, the data transmittability determination unit 2013 may use information such as GPS to identify the location and time of the client apparatus 2002, and determine whether data can be transmitted. Further, the data transmission enable/disable determination unit 2013 may determine whether or not data can be transmitted based on whether or not a specific access point can be connected.
  • the client device 2002 determines that the mobile device exists in an environment where sensor information can be sent to the server 2001 (Yes in S2002), the client device 2002 sends sensor information to the server 2001 (S2003). That is, when the client device 2002 becomes capable of transmitting sensor information 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. When the client device 2002 enters the intersection, the client device 2002 uses millimeter wave communication to transmit the sensor information held by the client device 2002 to the server 2001 at high speed.
  • the client device 2002 deletes the sensor information that has already been sent to the server 2001 from the storage unit 2012 (S2004).
  • the client device 2002 may delete the sensor information when the sensor information that has not been 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 held sensor information becomes older than the current time by a certain time. That is, the client device 2002 may delete the sensor information from the storage unit 2012 when the difference between the time when the sensor information was acquired by the sensor and the current time exceeds a predetermined time. Further, the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition location of the held sensor information is separated from the current location by a certain distance.
  • the client device 2002 receives the sensor information when the difference between the position of the mobile body or the sensor when the sensor information was acquired by the sensor and the current position of the mobile body or the sensor exceeds a predetermined distance. may be deleted from the storage unit 2012. Thereby, the capacity of the storage unit 2012 of the client device 2002 can be suppressed.
  • step S2001 If acquisition of sensor information by the client device 2002 has not ended (No in S2005), the client device 2002 performs the processing from step S2001 onwards again. Also, when the acquisition of sensor information by the client device 2002 ends (Yes in S2005), the client device 2002 ends the processing.
  • 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 having a large size (for example, LiDAR acquisition information, etc.) held in the storage unit 2012 . When high-speed communication is difficult, the client device 2002 transmits sensor information (for example, a visible light image) of small size and 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.
  • a large size for example, LiDAR acquisition information, etc.
  • the client device 2002 transmits sensor information (for example, a visible light image) of small size and high priority held in the storage unit 2012 .
  • 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.
  • the client device 2002 may acquire from the server 2001 the time information indicating the current time and the location information indicating the current location. Also, the client device 2002 may determine the acquisition time and location of the sensor information based on the acquired time information and location information. That is, the client device 2002 may acquire time information from the server 2001 and generate acquired time information using the acquired time information. Also, the client device 2002 may acquire location information from the server 2001 and generate acquired location information using the acquired location information.
  • the server 2001 and the client device 2002 perform time synchronization using a mechanism such as NTP (Network Time Protocol) or PTP (Precision Time Protocol).
  • NTP Network Time Protocol
  • PTP Precision Time Protocol
  • the server 2001 can handle sensor information indicating the synchronized time. Any method other than NTP or PTP may be used as the time synchronization mechanism. Further, GPS information may be used as the time information and location information.
  • the server 2001 may acquire sensor information from multiple client devices 2002 by specifying the time or location. For example, when an accident occurs, the server 2001 broadcasts a sensor information transmission request to a plurality of client devices 2002 specifying the time and place of accident occurrence in order to search for a client in the vicinity of the accident. Then, the client device 2002 having sensor information of the corresponding time and place transmits the sensor information to the server 2001 . That is, the client device 2002 receives from the server 2001 a sensor information transmission request including designation information designating a place and time. The client device 2002 determines that the sensor information obtained at the location and time indicated by the specified information is stored in the storage unit 2012, and that the moving object exists in an environment where the sensor information can be transmitted to the server 2001.
  • the sensor information obtained at the location and time indicated by the specified 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 send the sensor information when receiving the sensor information sending request from the server 2001 . Further, the client device 2002 may set in advance which sensor information among a plurality of sensor information can be transmitted. Alternatively, the server 2001 may inquire of the client device 2002 whether or not to transmit the sensor information each time.
  • points may be given to the client device 2002 that has transmitted the sensor information to the server 2001 . These points can be used, for example, to pay gasoline purchase costs, EV (Electric Vehicle) charging costs, expressway tolls, or rental car costs.
  • the server 2001 may delete the information for specifying the client device 2002 that is the transmission source of 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 send the sensor information from the client device 2002 to the server 2001 with peace of mind.
  • 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, other servers can communicate with the client device 2002 . This makes it possible to avoid stopping services due to server failure.
  • the specified location specified in the sensor information transmission request indicates the location where the accident occurred, and may differ from the location of the client device 2002 at the specified time specified in the sensor information transmission request. Therefore, the server 2001 can request information acquisition to the client apparatuses 2002 existing within the specified range by specifying a range such as within XXm as the specified location. Similarly, for the specified time, the server 2001 may specify a range such as within N seconds before or after a certain time. As a result, the server 2001 can acquire the sensor information from the client device 2002 that was present at "time: from tN to t+N, location: within XXm from the absolute position S". The client device 2002 may transmit data generated immediately after time t when transmitting three-dimensional data such as LiDAR.
  • the server 2001 may separately specify, as specified locations, information indicating the location of the client device 2002 from which sensor information is to be obtained, and the location for which sensor information is desired. For example, the server 2001 specifies to acquire sensor information including at least the range YYm from the absolute position S from the client device 2002 located within XXm from the absolute position S. FIG.
  • the client device 2002 selects one or more randomly accessible units of three-dimensional data so as to include at least the sensor information of the specified range.
  • the client device 2002 may transmit a plurality of temporally continuous image data including at least a frame immediately before or after time t.
  • the client device 2002 selects the 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 capable of securing an appropriate bandwidth based on the size of the data to be transmitted. Alternatively, the client device 2002 may select a network to use based on the cost of data transmission. Further, the transmission request from the server 2001 may include information indicating a transmission deadline, such as transmitting when the client device 2002 can start transmission by time T. FIG. The server 2001 may issue a transmission request again if sufficient sensor information cannot be acquired within the time limit.
  • a transmission deadline such as transmitting when the client device 2002 can start transmission by time T.
  • the sensor information may include compressed or uncompressed sensor data as well as header information that indicates the characteristics of the sensor data.
  • Client device 2002 may send the header information to server 2001 over a different physical network or communication protocol than the sensor data. For example, the client device 2002 transmits header information to the server 2001 prior to transmitting sensor data.
  • the server 2001 determines whether to acquire the sensor data of the client device 2002 based on the analysis result of the header information.
  • the header information may include information indicating the LiDAR point cloud acquisition density, elevation angle, or frame rate, or visible light image resolution, signal-to-noise ratio, or frame rate. This allows the server 2001 to acquire sensor information from the client device 2002 having sensor data of the determined quality.
  • the client device 2002 is mounted on a mobile body, acquires sensor information indicating the surrounding situation of the mobile body obtained by sensors mounted on the mobile body, and stores the sensor information in the storage unit 2012. .
  • the client device 2002 determines whether the mobile device exists in an environment in which sensor information can be transmitted to the server 2001. If it is determined that the mobile device exists in an environment in which sensor information can be transmitted to the server, the client device 2002 transmits the sensor information to the server 2001. Send to
  • the client device 2002 creates three-dimensional data around the mobile object from the sensor information, and estimates the self-position of the mobile object using the created three-dimensional data.
  • the client device 2002 further transmits a 3D map transmission request to the server 2001 and receives the 3D map from the server 2001 .
  • the client device 2002 estimates its own position using the 3D data and the 3D map.
  • processing by the client device 2002 may be realized as an information transmission method in the client device 2002.
  • the client device 2002 may include a processor and memory, and the processor may perform the above processing using the memory.
  • FIG. 104 is a diagram showing the configuration of the sensor information collection system according to this embodiment.
  • the sensor information collection system according to this embodiment includes a terminal 2021A, a terminal 2021B, a communication device 2022A, a communication device 2022B, a network 2023, a data collection server 2024, and a map server 2025. , and client device 2026 .
  • the terminal 2021A and the terminal 2021B are also referred to as the terminal 2021 when they are not distinguished from each other.
  • the communication device 2022A and the communication device 2022B are also described as the communication device 2022 when they are not distinguished from each other.
  • the data collection server 2024 collects data such as sensor data obtained by the sensors provided in the terminal 2021 as position-related data associated with positions in the three-dimensional space.
  • Sensor data is, for example, data obtained by using a sensor included in the terminal 2021, such as the surrounding state of the terminal 2021 or the internal state of the terminal 2021.
  • the terminal 2021 can directly communicate with the terminal 2021, or collects sensor data from one or more sensor devices at positions where communication can be performed by relaying one or more relay devices in the same communication method, and sends the sensor data to the data collection server 2024. Send.
  • the data included in the location-related data may include, for example, information indicating the operation status of the terminal itself or the equipment provided in the terminal, operation logs, service usage status, and the like. Further, data included in the position-related data may include information that associates the identifier of the terminal 2021 with the position or movement route of the terminal 2021, or the like.
  • the information indicating the position included in the position-related data is associated with the information indicating the position in 3D data such as 3D map data. Details of the information indicating the position will be described later.
  • the position-related data includes, in addition to the position information, which is information indicating a position, the time information described above, the attribute of data included in the position-related data, or information indicating the type of sensor that generated the data (for example, model number). and at least one of The location information and time information may be stored in the header area of the location-related data or the header area of the frame storing the location-related data. Also, the location information and time information may be transmitted and/or stored separately from the location-related data as metadata associated with the location-related data.
  • the map server 2025 is connected to the network 2023, for example, and transmits 3D data such as 3D map data in response to requests from other devices such as the terminal 2021. Further, as described in each of the above-described embodiments, the map server 2025 may have a function of updating three-dimensional data using sensor information transmitted from the terminal 2021, and the like.
  • the data collection server 2024 is connected to the network 2023, collects position-related data from other devices such as the terminal 2021, and stores the collected position-related data in a storage device inside or within another server. In addition, the data collection server 2024 transmits the collected position-related data or metadata of 3D map data generated based on the position-related data to the terminal 2021 in response to a request from the terminal 2021 .
  • the network 2023 is, for example, a communication network such as the Internet.
  • a terminal 2021 is connected to a network 2023 via a communication device 2022 .
  • the communication device 2022 communicates with the terminal 2021 while switching one communication method or multiple communication methods.
  • the communication device 2022 is, for example, (1) a base station such as LTE (Long Term Evolution), (2) an access point (AP) such as WiFi or millimeter wave communication, (3) LPWA such as SIGFOX, LoRaWAN or Wi-SUN. (Low Power Wide Area) Network gateway or (4) a communication satellite that performs communication using a satellite communication system such as DVB-S2.
  • the base station may communicate with the terminal 2021 in a method classified as LPWA such as NB-IoT (Narrow Band-IoT) or LTE-M, or switch between these methods while communicating with the terminal 2021. communication may be performed.
  • LPWA Low Band-IoT
  • LTE-M Long Term Evolution
  • the terminal 2021 has a function of communicating with a communication device 2022 that uses two types of communication methods, and uses either of these communication methods, or a communication device that is a direct communication partner with a plurality of these communication methods. 2022 to communicate with the map server 2025 or the data collection server 2024, but the configurations of the sensor information collection system and terminal 2021 are not limited to this.
  • the terminal 2021 may not have a function of communicating with a plurality of communication methods, but may have a function of communicating with one of the communication methods.
  • the terminal 2021 may support three or more communication methods. Also, the communication method supported by each terminal 2021 may be different.
  • the terminal 2021 has, for example, the configuration of the client device 902 shown in FIG.
  • the terminal 2021 uses the received three-dimensional data to estimate a position such as its own position.
  • the terminal 2021 generates position-related data by associating the sensor data obtained from the sensor with the position information obtained by the process of position estimation.
  • 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 coordinate values represented by latitude and longitude values.
  • the terminal 2021 may include, together with the coordinate values, information indicating the coordinate system that is the reference of the coordinate values 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 the unit of data or the unit of space that can be used for encoding the three-dimensional data described above.
  • This unit is, for example, WLD, GOS, SPC, VLM, or VXL.
  • the location information is represented by an identifier for specifying a data unit such as SPC corresponding to location-related data.
  • the position information is information indicating three-dimensional data encoded in the three-dimensional space including the data unit such as the SPC, or detailed information in the SPC. It may also include information indicating a specific position.
  • Information indicating three-dimensional data is, for example, the file name of the three-dimensional data.
  • the system generates position-related data associated with position information based on position estimation using three-dimensional data.
  • Position information with higher precision can be added to the sensor information than when the position information based on this is added to the sensor information.
  • the position corresponding to the position-related data can be specified more accurately in real space. It is possible.
  • the case where the data transmitted from the terminal 2021 is position-related data has been described as an example. good. That is, transmission and reception of three-dimensional data or sensor data described in other embodiments may be performed via the network 2023 described in this embodiment.
  • the position information added to the position-related data may be information indicating relative positions with respect to feature points in the three-dimensional data.
  • the feature point used as the reference of 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 may be, for example, represented by a vector from the feature point to the point indicated by the position information, and may be information indicating the direction and distance from the feature point to the point indicated by the position information.
  • the information indicating the relative position with respect to the feature point may be information indicating the amount of displacement from the feature point to the point indicated by the position information on each of the X-axis, Y-axis, and Z-axis.
  • 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 be the relative position of each feature point expressed with the point indicated by the position information as a reference instead of the relative position of the point indicated by the position information expressed with each feature point as a reference.
  • An example of the position information based on the relative position with respect to the feature point includes information for specifying the reference feature point and information indicating the relative position of the point indicated by the position information with respect to the feature point.
  • the information indicating the relative position with respect to the feature points includes the coordinate axis used for deriving the relative position, information indicating the type of three-dimensional data, Or/and information indicating the size per unit amount (such as scale) of the value of the information indicating the relative position may be included.
  • the position information may include information indicating relative positions with respect to each feature point for a plurality of feature points.
  • the terminal 2021 trying to specify the position indicated by the position information in the real space obtains the position information from the position of the feature point estimated from the sensor data for each feature point. , and a point obtained by averaging a plurality of calculated candidate points may be determined to be the point indicated by the position information. According to this configuration, it is possible to reduce the influence of errors when estimating the position of the feature point from the sensor data, so it is possible to improve the accuracy of estimating the point indicated by the positional information in the real space.
  • the position information includes information indicating relative positions with respect to a plurality of feature points, even if there are feature points that cannot be detected due to restrictions such as the type or performance of the sensor provided in the terminal 2021, any of the plurality of feature points can be detected. If at least one can be detected, the value of the point indicated by the position information can be estimated.
  • Points that can be specified from sensor data can be used as feature points.
  • a point that can be specified from sensor data is a point or a point within a region that satisfies a predetermined condition for feature point detection, such as the above-described three-dimensional feature amount or the feature amount of visible light data being equal to or greater than a threshold.
  • markers installed in the real space may be used as feature points.
  • the markers need only be detectable and locable from data acquired using sensors such as LiDER or cameras.
  • the marker is represented by a change in color or luminance value (reflectance), or a three-dimensional shape (concave and convex).
  • a coordinate value indicating the position of the marker, or a two-dimensional code or barcode generated from the identifier of the marker may be used.
  • a light source that transmits an optical signal may be used as a marker. If the light source of the optical signal is used as a marker, other data may be transmitted by the optical signal in addition to the information for obtaining the position, such as coordinate values or identifiers.
  • the optical signal is the content of the service according to the position of the marker, the address such as the URL for acquiring the content, or the identifier of the wireless communication device for receiving the provision of the service, and the wireless communication device. It may also include information indicating a wireless communication method or the like for the purpose. By using an optical communication device (light source) as a marker, it becomes possible to easily transmit data other than information indicating a position, and to dynamically switch the data.
  • the terminal 2021 grasps the correspondence of feature points between different data using, for example, an identifier commonly used among data, or information or a table indicating the correspondence of feature points between data. Also, if there is no information indicating the correspondence between feature points, the terminal 2021 converts the coordinates of the feature points in one three-dimensional data to the position in the other three-dimensional data space. The points may be determined to be corresponding feature points.
  • the The position indicated by the position information can be specified or estimated based on the common feature point. As a result, it is possible to identify or estimate the same position with higher accuracy between terminals 2021 or services that use three-dimensional data different from each other.
  • Data collection server 2024 may forward the received location-related data to other data servers. If there are multiple data servers, 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, for example, based on the transfer destination server determination rule preset in the data collection server 2024 .
  • the transfer destination server determination rule is set by, for example, a transfer destination table that associates an identifier associated with each terminal 2021 with a transfer destination data server.
  • 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 identifies the transfer destination data server corresponding to the identifier added to the position-related data based on the transfer destination server determination rule using a transfer destination table or the like, and the position-related data is identified. Send to data server.
  • the determination rule of the transfer destination server may be specified by a determination condition using the time or place at which the position-related data was acquired.
  • the identifier associated with the terminal 2021 of the transmission source described above is, for example, an identifier unique to each terminal 2021, an identifier indicating a group to which the terminal 2021 belongs, or the like.
  • the transfer destination table does not have to directly associate 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 identifier unique to the terminal 2021, and a transfer destination table that associates the tag information with the transfer destination data server.
  • the data collection server 2024 may use the management table and the transfer destination table to determine the transfer destination data server based on the tag information.
  • 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 belongs, or other identifiers of the terminal 2021 corresponding to the identifier.
  • the forwarding destination table instead of the identifier associated with the terminal 2021 of the transmission source, an identifier unique to each sensor may be used.
  • 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 location-related data to the plurality of data servers.
  • the location-related data is transmitted to the data server for providing each service, for example, when automatically backing up the location-related data, or in order to commonly use the location-related data in different services.
  • the data can be transferred as intended by changing the settings for the data collection server 2024 .
  • the man-hours required for building and changing the system can be reduced compared to the case where the transmission destination of the position-related data is set to each individual terminal 2021 .
  • the data collection server 2024 registers the data server specified by the transfer request signal as a new transfer destination, and transfers the position-related data received thereafter to the data server.
  • the data collection server 2024 stores the location-related data received from the terminal 2021 in a recording device, and in response to the transmission request signal received from the terminal 2021 or the data server, transmits the location-related data specified by the transmission request signal to the requester. may be transmitted to the terminal 2021 or the data server.
  • the data collection server 2024 determines whether the location-related data can be provided to the requesting data server or terminal 2021, and transfers or transmits the location-related data to the requesting data server or terminal 2021 if it is determined that the location-related data can be provided. may be performed.
  • the data collection server 2024 When a request for the current location-related data is received from the client device 2026, the data collection server 2024 requests the terminal 2021 to transmit the location-related data even when the terminal 2021 does not transmit the location-related data. 2021 may transmit location-related data in response to the transmission request.
  • the terminal 2021 transmits location information data to the data collection server 2024.
  • the data collection server 2024 for example, has a function of managing the terminal 2021 to collect location-related data from the terminal 2021. or a function used when collecting position-related data from the terminal 2021, or the like.
  • the data collection server 2024 may have a function of transmitting a data request signal requesting transmission of location information data to the terminal 2021 and collecting location-related data.
  • management information such as an address or an identifier unique to the terminal 2021 for communicating with the terminal 2021 that is the target of data collection is registered in advance.
  • the data collection server 2024 collects position-related data from the terminal 2021 based on registered management information.
  • the management information may include information such as the types of sensors that the terminal 2021 has, the number of sensors that the terminal 2021 has, and the communication methods that the terminal 2021 supports.
  • the data collection server 2024 may collect information such as the operating status or current location of the terminal 2021 from the terminal 2021.
  • Registration of management information may be performed from the client device 2026, or the terminal 2021 may send a registration request to the data collection server 2024 to start processing for registration.
  • Data collection server 2024 may have a function of controlling communication with terminal 2021 .
  • the communication between the data collection server 2024 and the terminal 2021 consists of a dedicated line provided by a service provider such as MNO (Mobile Network Operator) or MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network). It may be a virtual leased 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 MNO (Mobile Network Operator) or MVNO (Mobile Virtual Network Operator), or a VPN (Virtual Private Network). It may be a virtual leased 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 sent and received with the terminal 2021.
  • the authentication processing of the terminal 2021 or the processing of encrypting the data is an identifier unique to the terminal 2021 shared in advance between the data collection server 2024 and the terminal 2021, or a terminal group including a plurality of terminals 2021. This is done using an identifier unique to This identifier is, for example, an IMSI (International Mobile Subscriber Identity), which is a unique number stored in a SIM (Subscriber Identity Module) card.
  • IMSI International Mobile Subscriber Identity
  • SIM Subscriber Identity Module
  • Authentication or data encryption processing between the data collection server 2024 and the terminal 2021 can be provided if both the data collection server 2024 and the terminal 2021 have the function to perform the processing, and relaying is performed. It does not depend on the communication method used by the communication device 2022 that performs the processing. Therefore, common authentication or encryption processing can be used without considering whether the terminal 2021 uses a communication method, so the user's convenience in constructing the system is improved. However, not depending on the communication method used by the relaying communication device 2022 means that it is not essential to change according to the communication method. That is, for the purpose of improving transmission efficiency or ensuring safety, authentication or data encryption processing 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 for managing data collection rules such as the type of position-related data to be collected from the terminal 2021 and the data collection schedule. This allows the user to use the client device 2026 to specify the terminal 2021 from which data is collected, the time and frequency of data collection, and the like. Also, the data collection server 2024 may specify an area on the map for which data is to be collected, and collect position-related data from the terminals 2021 included in the area.
  • the client device 2026 When managing data collection rules for each terminal 2021, the client device 2026 presents, for example, a list of terminals 2021 or sensors to be managed on the screen. The user sets whether or not data collection is necessary or a collection schedule for each item in the list.
  • the client device 2026 When specifying an area on the 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 for data collection on the displayed map.
  • the area selected on the map may be a circular or rectangular area centered on a point specified on the map, or may be a circular or rectangular area that can be specified by dragging.
  • the client device 2026 may also select regions in preset units such as cities, areas within cities, blocks, or major roads.
  • the area may be set by inputting numerical values of latitude and longitude instead of specifying the area using a map, or the area may be selected from a list of candidate areas derived based on the input text information.
  • the text information is, for example, the names of regions, cities, or landmarks.
  • the user specifies one or a plurality of terminals 2021 and sets a condition such as within a range of 100 meters around the terminal 2021, thereby collecting data while dynamically changing the specified area. good too.
  • an area on the map may be specified based on the position of the client device 2026 in real space obtained from sensor data. For example, the client device 2026 estimates its own position using sensor data, and stores an area within a predetermined distance or a distance specified by the user from a point on the map corresponding to the estimated position as data. may be specified as the area to collect. Also, the client device 2026 may designate the sensing area of the sensor, ie, the area corresponding to the acquired sensor data, as the area for collecting data. Alternatively, the client device 2026 may designate a location-based region corresponding to user-specified sensor data as the region from which to collect the data. The client device 2026 or the data collection server 2024 may estimate the area or position on the map corresponding to the sensor data.
  • the data collection server 2024 collects the current location information of each terminal 2021 to identify the terminals 2021 within the specified area, and to determine the location of the specified terminal 2021. You may request the transmission of relevant data. In addition, the data collection server 2024 does not specify the terminal 2021 within the area, but transmits information indicating the designated area to the terminal 2021, and the terminal 2021 itself is within the designated area. location-related data may be transmitted if it is determined that it is within the designated area.
  • the data collection server 2024 transmits to the client device 2026 data such as lists or maps for providing the UI (User Interface) described above in the application executed by the client device 2026 .
  • the data collection server 2024 may send data such as lists or maps, as well as programs of applications to the client device 2026 .
  • the UI described above may be provided as content created in HTML or the like that can be displayed on a browser. Note that some data such as map data may be provided from a server such as the map server 2025 other than the data collection server 2024 .
  • the client device 2026 When the client device 2026 receives an input notifying that the input has been completed, such as by pressing a setting button by the user, the client device 2026 transmits the input information to the data collection server 2024 as setting information. Based on the setting information received from the client device 2026, the data collection server 2024 transmits a position-related data request or a signal notifying the position-related data collection rule to each terminal 2021 to start collecting the position-related data. conduct.
  • object information indicating the position of a power supply unit such as a wireless power supply antenna or a power supply coil embedded in a road or parking lot is included in the three-dimensional data or associated with the three-dimensional data, Provided to a 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 provided in the vehicle faces the area indicated by the object information. position to start charging.
  • the direction to move or the operation to be performed is presented to the driver or operator using images or sounds displayed on the screen. be.
  • the driving or steering is stopped.
  • the image or sound to be presented to is switched, and charging is started.
  • the object information may not be information indicating the position of the power supply unit, but may be information indicating an area where charging efficiency equal to or higher than a predetermined threshold can be obtained when the charging unit is arranged in the area.
  • the position of the object information may be represented by a point at the center of the area indicated by the object information, an area or line within a two-dimensional plane, or an area, line or plane within a three-dimensional space. good.
  • the object information may be an object other than the feeding antenna.
  • the three-dimensional data includes the position of an AP for millimeter wave wireless communication as object information.
  • the terminal 2021 can grasp the position of the AP in advance, it is possible to direct the directivity of the beam in the direction of the object information and start communication. As a result, it is possible to improve the communication quality by increasing the transmission speed, shortening the time until the start of communication, and extending the period during which communication is possible.
  • the object information may include information indicating the type of object corresponding to the object information.
  • the terminal 2021 when the terminal 2021 is included in an area on the real space corresponding to the position on the three-dimensional data of the object information, or within a range of a predetermined distance from the area, the terminal 2021 should execute the object information.
  • Information indicating processing may be included.
  • the object information may be provided by a server different from the server that provides the three-dimensional data.
  • object information is provided separately from 3D data
  • object groups storing object information used in the same service may be provided as separate data according to the type of target service or target device. .
  • the three-dimensional data used in combination with the object information may be WLD point cloud data or SWLD feature point data.
  • a three-dimensional data decoding device when attribute information of a target three-dimensional point, which is a three-dimensional point to be encoded, is hierarchically encoded using LoD (Level of Detail), the three-dimensional data decoding device converts the three-dimensional It is possible that the data decoding device decodes the attribute information up to the required LoD layer and does not decode the attribute information of the unnecessary layer. For example, when the total number of LoDs of attribute information in the bitstream encoded by the 3D data encoding device is N, the 3D data decoding device selects M (M ⁇ N) LoDs may be decoded and the LoDs up to the remaining LoDs (N-1) may not be decoded. As a result, the three-dimensional data decoding device can decode the attribute information from LoD0 to LoD(M-1) necessary for the three-dimensional data decoding device while suppressing the processing load.
  • LoD Level of Detail
  • FIG. 105 is a diagram showing the above use case.
  • the server holds a 3D map obtained by encoding 3D position information and attribute information.
  • a server three-dimensional data encoding device
  • a process of identifying the self-location of the client device using a three-dimensional map, or a process of displaying map information to the user or the like who operates the client device is performed.
  • the server encodes the position information of the 3D map using an octatree structure or the like. Then, the server layer-encodes the attribute information of the 3D map using N LoDs constructed based on the position information.
  • the server stores the bitstream of the 3D map obtained by layered coding.
  • the server transmits the bitstream of the encoded three-dimensional map to the client device in response to the map information transmission request transmitted from the client device in the area managed by the server.
  • the client device receives the 3D map bitstream transmitted from the server, and decodes the position information and attribute information of the 3D map according to the purpose of the client device. For example, when the client device performs highly accurate self-position estimation using position information and attribute information of N LoDs, the client device determines that the decoding results up to dense three-dimensional points are required as attribute information. and decode all the information in the bitstream.
  • the client device determines that the decoding result up to the sparse 3D point as the attribute information is necessary, and the position information and the upper layer of the LoD Attribute information of a certain LoD0 to M (M ⁇ N) LoDs are decoded.
  • the 3D point map includes position information and attribute information.
  • the location information is encoded with an octree.
  • Attribute information is encoded with N LoDs.
  • Client device A performs highly accurate self-position estimation. In this case, client device A determines that all position information and attribute information are necessary, and decodes all of the position information and attribute information composed of N LoDs in the bitstream.
  • Client device B displays the 3D map to the user.
  • the client device B determines that position information and attribute information of M (M ⁇ N) LoDs are necessary, and decodes the position information in the bitstream and the attribute information composed of M LoDs. do.
  • the server may broadcast, multicast, or unicast the 3D map to the client device.
  • a three-dimensional data encoding device when the attribute information of a target three-dimensional point, which is a three-dimensional point to be encoded, is hierarchically encoded using LoD, the three-dimensional data encoding device uses the three-dimensional data decoding device It is also possible to encode the attribute information up to the required LoD layer and not to encode the attribute information of the unnecessary layer. For example, when the total number of LoDs is N, the 3D data encoding device encodes M (M ⁇ N) LoDs from the highest layer LoD0 to LoD(M ⁇ 1), and the remaining LoD(N A bitstream may be generated by not encoding the LoD up to -1).
  • the 3D data encoding device generates a bitstream in which the attribute information from LoD0 to LoD(M-1) required by the 3D data decoding device is encoded according to a request from the 3D data decoding device. can provide.
  • FIG. 106 is a diagram showing the above use case.
  • the server holds a 3D map obtained by encoding 3D position information and attribute information.
  • the server (three-dimensional data encoding device) unicasts a three-dimensional map to client devices (three-dimensional data decoding devices: vehicles, drones, etc.) in the area managed by the server in response to requests from the client devices.
  • the client device uses the three-dimensional map received from the server to identify its own position, or displays the map information to the user who operates the client device.
  • the server encodes the position information of the 3D map using an octatree structure or the like. Then, the server layer-encodes the attribute information of the 3D map using N LoDs constructed based on the location information to generate a bitstream of the 3D map A, and converts the generated bitstream to Save to the server. Further, the server layer-encodes the attribute information of the 3D map using M (M ⁇ N) LoDs constructed based on the position information to generate a bitstream of the 3D map B, Save the generated bitstream to the server.
  • the client device requests the server to send a 3D map according to the purpose of the client device. For example, when the client device performs high-precision self-position estimation using position information and attribute information of N LoDs, the client device determines that a decoding result up to dense three-dimensional points is necessary as attribute information, Request the server to send the bitstream of the original map A. Further, when displaying the information of the 3D map to the user, etc., the client device judges that the decoding results up to the sparse 3D points are necessary as the attribute information. Requests the server to send a bitstream of 3D map B including attribute information of LoD up to (M ⁇ N). Then, the server transmits the encoded bitstream of the three-dimensional map A or the three-dimensional map B to the client device in response to a map information transmission request from the client device.
  • M ⁇ N attribute information of LoD up to
  • the client device receives the bitstream of 3D map A or 3D map B transmitted from the server according to the purpose of the client device, and decodes the bitstream. In this way, the server switches the bitstream to be transmitted according to the usage of the client device. As a result, the processing load on the client device can be reduced.
  • the server holds 3D map A and 3D map B.
  • the server generates a 3D map A by encoding the position information of the 3D map with, for example, an octree, and encoding the attribute information of the 3D map with N LoDs. That is, the NumLoD included in the bitstream of the 3D map A indicates N.
  • the server generates a 3D map B by encoding the position information of the 3D map with, for example, an octree, and encoding the attribute information of the 3D map with M LoDs. That is, the NumLoD included in the bitstream of the 3D map B indicates M.
  • Client device A performs highly accurate self-position estimation. In this case, client device A determines that all position information and attribute information are necessary, and sends a request to send 3D map A including all position information and attribute information composed of N LoDs to the server. . The client device A receives the 3D map A, and decodes all position information and attribute information composed of N LoDs.
  • Client device B displays the 3D map to the user.
  • the client device B determines that position information and attribute information of M (M ⁇ N) LoDs are necessary, and determines that the three-dimensional Send a request to send map B to the server.
  • the client device B receives the 3D map B and decodes all the position information and attribute information composed of M LoDs.
  • the server In addition to the 3D map B, the server (3D data encoding device) encodes the 3D map C in which the attribute information of the remaining NM LoDs is encoded,
  • the three-dimensional map C may be transmitted to the client device B in response to.
  • the client device B may use the bitstreams of the 3D map B and the 3D map C to obtain decoding results of N LoDs.
  • FIG. 107 is a flowchart illustrating an example of application processing.
  • the 3D data demultiplexing device acquires an ISOBMFF file containing point cloud data and a plurality of encoded data (S7301).
  • the three-dimensional data demultiplexing device may acquire the ISOBMFF file through communication or read it from accumulated data.
  • the 3D data demultiplexing device analyzes the overall configuration information in the ISOBMFF file and identifies the data used for the application (S7302). For example, the 3D data demultiplexer acquires data used for processing and does not acquire data not used for processing.
  • the 3D data demultiplexing device extracts one or more data to be used for the application, and analyzes the configuration information of the data (S7303).
  • the 3D data demultiplexing device converts the ISOBMFF into an encoded stream and extracts the timestamp (S7305).
  • the three-dimensional data demultiplexer determines whether or not the data are synchronized, for example, by referring to a flag indicating whether or not the data are synchronized. processing may be performed.
  • the 3D data demultiplexing device decodes the data in a predetermined manner according to the timestamp and other instructions, and processes the decoded data (S7306).
  • the 3D data demultiplexing device extracts the data and time stamp (S7307).
  • the three-dimensional data demultiplexer determines whether or not the data are synchronized, for example, by referring to a flag indicating whether or not the data are synchronized. processing may be performed.
  • the 3D data demultiplexer then processes the data according to the timestamp and other instructions (S7308).
  • FIG. 108 is a diagram showing examples of beam LiDAR, FLASH LiDAR and camera sensor ranges.
  • beam LiDAR detects all directions around the vehicle (sensor), and FLASH LiDAR and camera detect the range in one direction (for example, forward) of the vehicle.
  • the 3D data demultiplexing device refers to the overall configuration information, extracts and decodes the coded data of beam LiDAR and FLASH LiDAR. Also, the 3D data demultiplexing device does not extract camera images.

Landscapes

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

Abstract

三次元データ符号化方法は、第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し(S13801)、第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の第2位置からの第2距離の予測値を算出するために、(i)第1位置と第2位置との間の距離、(ii)第1位置と第2位置とを結ぶ第1線と、第1位置と第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)第1極座標系における第1三次元点の第1位置からの第1距離、を特定する(S13802)。

Description

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
 本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 三次元データの符号化において符号化効率を向上させることができることが望まれている。
 本開示は、符号化効率を向上させることができる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供することを目的とする。
 本開示の一態様に係る三次元データ符号化方法は、第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1三次元点と前記第1位置との間の第1距離、を特定する。
 本開示の一態様に係る三次元データ復号方法は、第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する。
 本開示は、符号化効率を向上させることができる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供できる。
図1は、実施の形態1に係る三次元データ符号化復号システムの構成を示す図である。 図2は、実施の形態1に係る点群データの構成例を示す図である。 図3は、実施の形態1に係る点群データ情報が記述されたデータファイルの構成例を示す図である。 図4は、実施の形態1に係る点群データの種類を示す図である。 図5は、実施の形態1に係る第1の符号化部の構成を示す図である。 図6は、実施の形態1に係る第1の符号化部のブロック図である。 図7は、実施の形態1に係る第1の復号部の構成を示す図である。 図8は、実施の形態1に係る第1の復号部のブロック図である。 図9は、実施の形態1に係る三次元データ符号化装置のブロック図である。 図10は、実施の形態1に係る位置情報の例を示す図である。 図11は、実施の形態1に係る位置情報の8分木表現の例を示す図である。 図12は、実施の形態1に係る三次元データ復号装置のブロック図である。 図13は、実施の形態1に係る属性情報符号化部のブロック図である。 図14は、実施の形態1に係る属性情報復号部のブロック図である。 図15は、実施の形態1に係る属性情報符号化部の構成を示すブロック図である。 図16は、実施の形態1に係る属性情報符号化部のブロック図である。 図17は、実施の形態1に係る属性情報復号部の構成を示すブロック図である。 図18は、実施の形態1に係る属性情報復号部のブロック図である。 図19は、実施の形態1に係る第2の符号化部の構成を示す図である。 図20は、実施の形態1に係る第2の符号化部のブロック図である。 図21は、実施の形態1に係る第2の復号部の構成を示す図である。 図22は、実施の形態1に係る第2の復号部のブロック図である。 図23は、実施の形態1に係るPCC符号化データに関わるプロトコルスタックを示す図である。 図24は、実施の形態2に係る符号化部及び多重化部の構成を示す図である。 図25は、実施の形態2に係る符号化データの構成例を示す図である。 図26は、実施の形態2に係る符号化データ及びNALユニットの構成例を示す図である。 図27は、実施の形態2に係るpcc_nal_unit_typeのセマンティクス例を示す図である。 図28は、実施の形態3に係る、三次元データ符号化方法に用いられる予測木の一例を示す図である。 図29は、実施の形態3に係る三次元データ符号化方法の一例を示すフローチャートである。 図30は、実施の形態3に係る三次元データ復号方法の一例を示すフローチャートである。 図31は、実施の形態3に係る予測木の生成方法を説明するための図である。 図32は、実施の形態3に係る予測モードの第1の例を説明するための図である。 図33は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第2の例を示す図である。 図34は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第2の例の具体例を示す図である。 図35は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第3の例を示す図である。 図36は、実施の形態3に係る位置情報のヘッダのシンタックスの一例を示す図である。 図37は、実施の形態3に係る位置情報のシンタックスの一例を示す図である。 図38は、実施の形態3に係る位置情報のシンタックスの他の一例を示す図である。 図39は、実施の形態4に係る三次元データ符号化装置のブロック図である。 図40は、実施の形態4に係る三次元データ復号装置のブロック図である。 図41は、実施の形態4に係る三次元データ符号化装置のブロック図である。 図42は、実施の形態4に係る三次元データ復号装置のブロック図である。 図43は、実施の形態4に係るインター予測の一例を示す図である。 図44は、実施の形態4に係るSPSのシンタックス例を示す図である。 図45は、実施の形態4に係るGPSのシンタックス例を示す図である。 図46は、実施の形態4に係る三次元データ符号化処理のフローチャートである。 図47は、実施の形態4に係る三次元データ復号処理のフローチャートである。 図48は、実施の形態5に係る三次元データ符号化装置のブロック図である。 図49は、実施の形態5に係る三次元データ復号装置のブロック図である。 図50は、実施の形態5に係る予測木の各三次元点を符号化する手順の一例を示すフローチャートである。 図51は、実施の形態5に係る予測木の各三次元点を復号する手順の一例を示すフローチャートである。 図52は、実施の形態5の変形例に係る三次元データ符号化装置のブロック図である。 図53は、実施の形態5の変形例に係る三次元データ復号装置のブロック図である。 図54は、実施の形態5に係るGPSのシンタックスの一例である。 図55は、実施の形態5に係る各三次元点のシンタックスの一例である。 図56は、実施の形態5に係る三次元データ符号化処理を示すフローチャートである。 図57は、実施の形態5に係る三次元データ復号処理を示すフローチャートである。 図58は、実施の形態5に係る符号化処理における座標系の切り替え処理を示すフローチャートである。 図59は、実施の形態5に係る復号処理における座標系の切り替え処理を示すフローチャートである。 図60は、実施の形態5に係る三次元データ符号化処理の他の一例を示すフローチャートである。 図61は、実施の形態5に係る三次元データ復号処理の他の一例を示すフローチャートである。 図62は、実施の形態6に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第1例を説明するための図である。 図63は、実施の形態6に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第2例を説明するための図である。 図64は、実施の形態6に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第3例を説明するための図である。 図65は、実施の形態6に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理手順を示すフローチャートである。 図66は、実施の形態6に係る動き補償情報のシンタックス例を示す図である。 図67は、実施の形態6に係る三次元データ符号化装置の処理手順を示すフローチャートである。 図68は、実施の形態6に係る三次元データ復号装置の処理手順を示すフローチャートである。 図69は、実施の形態7に係る本実施の形態に係るインター予測における参照点群の参照方法について説明するための図である。 図70は、実施の形態7に係るGPS(ジオメトリパラメータセット)のシンタックスの一例を示す図である。 図71は、実施の形態7に係る予測木のシンタックスの一例を示す図である。 図72は、実施の形態7に係る予測木の動き補償情報のシンタックスの一例を示す図である。 図73は、実施の形態7に係る極座標符号化における動き補償情報のシンタックスの一例を示す図である。 図74は、実施の形態7に係る予測木の符号化範囲情報のシンタックスの一例を示す図である。 図75は、実施の形態7に係る三次元データ符号化処理のフローチャートである。 図76は、実施の形態7に係る三次元データ復号処理のフローチャートである。 図77は、実施の形態8に係るインター予測を用いて極座標で表される三次元点を符号化または復号する方法を説明するための図である。 図78は、実施の形態8に係るインター予測を用いて極座標で表される三次元点を符号化または復号する方法を説明するための図である。 図79は、実施の形態8に係るインター予測を用いて極座標で表される三次元点を符号化または復号する方法を説明するための図である。 図80は、実施の形態8に係るインター予測を用いて極座標で表される三次元点を符号化または復号する方法を説明するための図である。 図81は、実施の形態8に係るインター予測方法の処理手順の一例を示すフローチャートである。 図82は、実施の形態8に係る水平角の値に応じて予測値の導出方法の切り替える第1の例について説明するための図である。 図83は、実施の形態8に係る水平角φcurで規定される4つの方向のそれぞれ毎に定められる予測値dpredを導出する式を示す図である。 図84は、実施の形態8に係る水平角の値に応じて予測値の導出方法の切り替える第2の例について説明するための図である。 図85は、実施の形態8に係る水平角φcurで規定される8つの方向のそれぞれ毎に定められる予測値dpredを導出する式を示す図である。 図86は、実施の形態8に係る8方向の予測値の導出方法を示すインデックスが0の場合の予測値の算出方法について説明するための図である。 図87は、実施の形態8に係る8方向の予測値の導出方法を示すインデックスが2の場合の予測値の算出方法について説明するための図である。 図88は、実施の形態8に係る8方向の予測値の導出方法を示すインデックスが1の場合の予測値の算出方法について説明するための図である。 図89は、実施の形態8に係る三次元データ符号化処理のフローチャートである。 図90は、実施の形態8に係る三次元データ復号処理のフローチャートである。 図91は、実施の形態9に係る三次元データ作成装置のブロック図である。 図92は、実施の形態9に係る三次元データ作成方法のフローチャートである。 図93は、実施の形態9に係るシステムの構成を示す図である。 図94は、実施の形態9に係るクライアント装置のブロック図である。 図95は、実施の形態9に係るサーバのブロック図である。 図96は、実施の形態9に係るクライアント装置による三次元データ作成処理のフローチャートである。 図97は、実施の形態9に係るクライアント装置によるセンサ情報送信処理のフローチャートである。 図98は、実施の形態9に係るサーバによる三次元データ作成処理のフローチャートである。 図99は、実施の形態9に係るサーバによる三次元マップ送信処理のフローチャートである。 図100は、実施の形態9に係るシステムの変形例の構成を示す図である。 図101は、実施の形態9に係るサーバ及びクライアント装置の構成を示す図である。 図102は、実施の形態9に係るサーバ及びクライアント装置の構成を示す図である。 図103は、実施の形態9に係るクライアント装置による処理のフローチャートである。 図104は、実施の形態9に係るセンサ情報収集システムの構成を示す図である。 図105は、実施の形態9に係るシステムの例を示す図である。 図106は、実施の形態9に係るシステムの変形例を示す図である。 図107は、実施の形態9に係るアプリケーション処理の例を示すフローチャートである。 図108は、実施の形態9に係る各種センサのセンサ範囲を示す図である。 図109は、実施の形態9に係る自動運転システムの構成例を示す図である。 図110は、実施の形態9に係るビットストリームの構成例を示す図である。 図111は、実施の形態9に係る点群選択処理のフローチャートである。 図112は、実施の形態9に係る点群選択処理の画面例を示す図である。 図113は、実施の形態9に係る点群選択処理の画面例を示す図である。 図114は、実施の形態9に係る点群選択処理の画面例を示す図である。
 本開示の一態様に係る三次元データ符号化方法は、第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1三次元点と前記第1位置との間の第1距離、を特定する。
 第1三次元点と、第2三次元点とは、異なる極座標系で表現される。このため、三次元データ符号化装置は、符号化対象の第2三次元点を、第1三次元点を用いて予測符号化する場合、第1三次元点を、例えば、第2極座標系に投影することで、第1位置と第2位置との間の距離、第1角、及び、第1距離を特定する。これにより、符号化対象の第2三次元点と、参照する第1三次元点との座標系を統一することができるため、第2三次元点とは異なる極座標系で位置が表される第1三次元点に基づいて、符号化対象の第2三次元点を予測符号化することができる。よって、符号化対象の第2三次元点を高精度に予測することができ、予測符号化の符号化効率を向上させることができる。
 例えば、前記未符号化の第2三次元点の前記第2極座標系における位置の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1角、及び(iii)前記第1距離を用いて、(iv)前記第1線と、前記第2位置及び前記第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)前記第1三次元点と前記第2位置との間の第2距離、の少なくとも一方を算出してもよい。
 これによれば、符号化対象の第2三次元点と、参照する第1三次元点との座標系を統一することができるため、第1線と第3線とのなす角と、第1三次元点の第2座標系における第2位置からの第2距離とに基づいて、符号化対象の第2三次元点を予測符号化することができる。
 例えば、前記算出では、前記第1線と前記第1極座標系における水平角の基準線とが揃う場合、前記第1位置と前記第2位置との間の距離と、前記第1距離と、前記第1角としての第1水平角とを用いて、前記第2角を算出し、前記第1水平角は、前記第1三次元点の位置を表す極座標成分のうちの水平角の成分であってもよい。
 このため、第1角を算出するための処理負荷を低減することができる。
 例えば、前記第1三次元点の特定では、前記第2極座標系で位置が表され、且つ、符号化済みの他の第2三次元点に基づいて、前記第1三次元点を特定してもよい。
 これによれば、符号化対象の第2三次元点を予測するために予め特定した符号化済みの他の第2三次元点に基づいて、第1三次元点を特定するため、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、前記他の第2三次元点は、前記第2極座標系において前記第2三次元点の予測値の算出に用いられる三次元点であってもよい。
 これによれば、符号化対象の第2三次元点の予測値の算出に用いられる他の第2三次元点に基づいて第1三次元点を決定するため、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、前記第1三次元点は、前記他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定されてもよい。
 これによれば、符号化対象の第2三次元点に近い第1三次元点を複数の第1三次元点の中から選択することができる。よって、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、前記第1三次元点は、前記第1極座標系で位置が表され、且つ、符号化済みの他の第1三次元点を含む複数の第1三次元点のうちで、前記第1極座標系から前記第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、前記第2三次元点の角度成分に近くてもよい。
 これによれば、符号化対象の第2三次元点に近い三次元点を複数の第1三次元点の中から選択することができる。よって、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、複数の第1三次元点は、基準面上の空間において前記第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られ、複数の第2三次元点は、前記基準面上の空間において前記第2位置周りの複数の第2方向のそれぞれ毎における前記物体までの距離計測により得られ、前記複数の第1三次元点は、前記第1三次元点を含み、且つ、前記第1極座標系でそれぞれの位置が表され、前記複数の第2三次元点は、前記第2三次元点を含み、且つ、前記第2極座標系でそれぞれの位置が表されてもよい。
 例えば、前記第1位置及び前記第2位置に第3方向で対向する第1平面であって、前記基準面に垂直な第1平面上の複数の三次元点に対する予測符号化における予測値の第1決定方法と、前記第1位置及び前記第2位置に第4方向で対向する第2平面であって、前記基準面に垂直な第2平面上の複数の三次元点に対する予測符号化における予測値の第2決定方法とは異なり、前記第3方向と前記第4方向とは、異なり、前記第1平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、前記第1平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれ、前記第2平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、前記第2平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれてもよい。
 このため、各方向に応じた決定方法を用いて1以上の候補点を選択するため、符号化対象の1つの三次元点をより高精度に予測することができ、予測符号化の符号化効率をより向上させることができる。
 本開示の一態様に係る三次元データ復号方法は、第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する。
 これによれば、三次元データ符号化方法と同様の方法を用いて予測値を算出するため、復号対象の1つの三次元点を正しく復号することができる。
 例えば、前記未復号の第2三次元点の前記第2極座標系における位置の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1角、及び(iii)前記第1距離を用いて、(iv)前記第1線と、前記第2位置及び前記第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)前記第2極座標系における前記第1三次元点の前記第2位置からの第2距離、を算出してもよい。
 例えば、前記算出では、前記第1線と前記第1極座標系における水平角の基準線とが揃う場合、前記第1距離と、前記第1角としての第1水平角とを用いて、前記第2角を算出し、前記第1水平角は、前記第1三次元点の位置を表す極座標成分のうちの水平角の成分であってもよい。
 例えば、前記第1三次元点の特定では、前記第2極座標系で位置が表され、且つ、復号済みの他の第2三次元点に基づいて、前記第1三次元点を特定してもよい。
 例えば、前記他の第2三次元点は、前記第2極座標系において復号対象の三次元点の予測値の算出に用いられる三次元点であってもよい。
 例えば、前記第1三次元点は、前記他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定されてもよい。
 例えば、前記第1三次元点は、前記第1極座標系で位置が表され、且つ、復号済みの他の第1三次元点を含む複数の第1三次元点のうちで、前記第1極座標系から前記第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、前記第2三次元点の角度成分に近くてもよい。
 例えば、複数の第1三次元点は、基準面上の空間において前記第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られ、複数の第2三次元点は、前記基準面上の空間において前記第2位置周りの複数の第2方向のそれぞれ毎における前記物体までの距離計測により得られ、前記複数の第1三次元点は、前記第1三次元点を含み、且つ、前記第1極座標系でそれぞれの位置が表され、前記複数の第2三次元点は、前記第2三次元点を含み、且つ、前記第2極座標系でそれぞれの位置が表されてもよい。
 例えば、前記第1位置及び前記第2位置に第3方向で対向する第1平面であって、前記基準面に垂直な第1平面上の複数の三次元点に対する予測復号における予測値の第1決定方法と、前記第1位置及び前記第2位置に第4方向で対向する第2平面であって、前記基準面に垂直な第2平面上の複数の三次元点に対する予測復号における予測値の第2決定方法とは異なり、前記第3方向と前記第4方向とは、異なり、前記第1平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、前記第1平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれ、前記第2平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、前記第2平面上の複数の三次元点の一部は、複数の第2三次元点に含まれてもよい。
 また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリと、を備え、前記プロセッサは、前記メモリを用いて、第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する。
 第1三次元点と、第2三次元点とは、異なる極座標系で表現される。このため、三次元データ符号化装置は、符号化対象の第2三次元点を、第1三次元点を用いて予測符号化する場合、第1三次元点を、例えば、第2極座標系に投影することで、第1位置と第2位置との間の距離、第1角、及び、第1距離を特定する。これにより、符号化対象の第2三次元点と、参照する第1三次元点との座標系を統一することができるため、第2三次元点とは異なる極座標系で位置が表される第1三次元点に基づいて、符号化対象の第2三次元点を予測符号化することができる。よって、符号化対象の第2三次元点を高精度に予測することができ、予測符号化の符号化効率を向上させることができる。
 また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリと、を備え、前記プロセッサは、前記メモリを用いて、第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定し、第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する。
 これによれば、三次元データ符号化方法と同様の方法を用いて予測値を算出するため、復号対象の1つの三次元点を正しく復号することができる。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
 本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報を送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置、並びに、当該符号化データを多重化する三次元データ多重化方法、並びに、当該符号化データを伝送する三次元データ伝送方法について説明する。
 特に、現在、点群データの符号化方法(符号化方式)として第1の符号化方法、及び第2の符号化方法が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、又は、伝送或いは蓄積ができないという課題がある。
 また、PCC(Point Cloud Compression)のように、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するフォーマットをサポートする方法はこれまで存在しない。
 本実施の形態では、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するPCC符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法について説明する。
 まず、本実施の形態に係る三次元データ(点群データ)符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム4601と、三次元データ復号システム4602と、センサ端末4603と、外部接続部4604とを含む。
 三次元データ符号化システム4601は、三次元データである点群データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム4601は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム4601に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ符号化システム4601は、点群データ生成システム4611と、提示部4612と、符号化部4613と、多重化部4614と、入出力部4615と、制御部4616とを含む。点群データ生成システム4611は、センサ情報取得部4617と、点群データ生成部4618とを含む。
 センサ情報取得部4617は、センサ端末4603からセンサ情報を取得し、センサ情報を点群データ生成部4618に出力する。点群データ生成部4618は、センサ情報から点群データを生成し、点群データを符号化部4613へ出力する。
 提示部4612は、センサ情報又は点群データをユーザに提示する。例えば、提示部4612は、センサ情報又は点群データに基づく情報又は画像を表示する。
 符号化部4613は、点群データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部4614へ出力する。付加情報は、例えば、センサ情報を含む。
 多重化部4614は、符号化部4613から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
 入出力部4615(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部4616(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4616は、符号化及び多重化等の制御を行う。
 なお、センサ情報が符号化部4613又は多重化部4614へ入力されてもよい。また、入出力部4615は、点群データ又は符号化データをそのまま外部へ出力してもよい。
 三次元データ符号化システム4601から出力された伝送信号(多重化データ)は、外部接続部4604を介して、三次元データ復号システム4602に入力される。
 三次元データ復号システム4602は、符号化データ又は多重化データを復号することで三次元データである点群データを生成する。なお、三次元データ復号システム4602は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム4602に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ復号システム4602は、センサ情報取得部4621と、入出力部4622と、逆多重化部4623と、復号部4624と、提示部4625と、ユーザインタフェース4626と、制御部4627とを含む。
 センサ情報取得部4621は、センサ端末4603からセンサ情報を取得する。
 入出力部4622は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部4623へ出力する。
 逆多重化部4623は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部4624へ出力する。
 復号部4624は、符号化データを復号することで点群データを再構成する。
 提示部4625は、点群データをユーザに提示する。例えば、提示部4625は、点群データに基づく情報又は画像を表示する。ユーザインタフェース4626は、ユーザの操作に基づく指示を取得する。制御部4627(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4627は、逆多重化、復号及び提示等の制御を行う。
 なお、入出力部4622は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部4625は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部4625は、ユーザインタフェース4626で取得されたユーザの指示に基づき、提示を行ってもよい。
 センサ端末4603は、センサで得られた情報であるセンサ情報を生成する。センサ端末4603は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
 センサ端末4603で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末4603と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
 外部接続部4604は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
 次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
 点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報とを含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
 三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
 1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
 図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
 位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
 次に、点群データの種類について説明する。図4は、点群データの種類を示す図である。図4に示すように、点群データには、静的オブジェクトと、動的オブジェクトとがある。
 静的オブジェクトは、任意の時間(ある時刻)の三次元点群データである。動的オブジェクトは、時間的に変化する三次元点群データである。以降、ある時刻の三次元点群データをPCCフレーム、又はフレームと呼ぶ。
 オブジェクトは、通常の映像データのように、ある程度領域が制限されている点群であってもよいし、地図情報のように領域が制限されていない大規模点群であってもよい。
 また、様々な密度の点群データがあり、疎な点群データと、密な点群データとが存在してもよい。
 以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。点群データ生成部4618は、センサ情報取得部4617で得られたセンサ情報に基づき点群データを生成する。点群データ生成部4618は、点群データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
 点群データ生成部4618は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、点群データ生成部4618は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、点群データ生成部4618は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、属性情報をレンダリングしてもよい。
 なお、図1では、点群データ生成システム4611は、三次元データ符号化システム4601に含まれるが、三次元データ符号化システム4601の外部に独立して設けられてもよい。
 符号化部4613は、点群データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には大きく以下の2種類がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
 復号部4624は、符号化データを予め規定された符号化方法に基づき復号することで点群データを復号する。
 多重化部4614は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部4614は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部4614は、さらに、センサ情報又は点群データに関連する属性情報を多重してもよい。
 多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RMPなどがある。
 逆多重化部4623は、多重化データからPCC符号化データ、その他のメディア、及び時刻情報などを抽出する。
 入出力部4615は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部4615は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
 通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
 有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
 また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
 図5は、第1の符号化方法の符号化を行う符号化部4613の例である第1の符号化部4630の構成を示す図である。図6は、第1の符号化部4630のブロック図である。第1の符号化部4630は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4630は、位置情報符号化部4631と、属性情報符号化部4632と、付加情報符号化部4633と、多重化部4634とを含む。
 第1の符号化部4630は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部4630は、属性情報符号化部4632が、位置情報符号化部4631から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、GPCC(Geometry based PCC)とも呼ばれる。
 点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部4631に入力され、属性情報は属性情報符号化部4632に入力され、付加情報は付加情報符号化部4633に入力される。
 位置情報符号化部4631は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部4631は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
 属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
 付加情報符号化部4633は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
 多重化部4634は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
 次に、第1の符号化方法の復号を行う復号部4624の例である第1の復号部4640について説明する。図7は、第1の復号部4640の構成を示す図である。図8は、第1の復号部4640のブロック図である。第1の復号部4640は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部4640は、逆多重化部4641と、位置情報復号部4642と、属性情報復号部4643と、付加情報復号部4644とを含む。
 図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部4640に入力される。
 逆多重化部4641は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
 位置情報復号部4642は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部4642は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
 属性情報復号部4643は、位置情報復号部4642で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部4643は、位置情報復号部4642で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部4643は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
 付加情報復号部4644は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部4640は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
 次に、位置情報符号化部の構成例を説明する。図9は、本実施の形態に係る位置情報符号化部2700のブロック図である。位置情報符号化部2700は、8分木生成部2701と、幾何情報算出部2702と、符号化テーブル選択部2703と、エントロピー符号化部2704とを備える。
 8分木生成部2701は、入力された位置情報から、例えば8分木を生成し、8分木の各ノードのオキュパンシー符号を生成する。幾何情報算出部2702は、対象ノードの隣接ノードが占有ノードか否かを示す情報を取得する。例えば、幾何情報算出部2702は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報(隣接ノードが占有ノードであるか否かを示す情報)を算出する。また、幾何情報算出部2702は、符号化済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部2702は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
 符号化テーブル選択部2703は、幾何情報算出部2702で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー符号化に用いる符号化テーブルを選択する。例えば、符号化テーブル選択部2703は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
 エントロピー符号化部2704は、選択されたインデックス番号の符号化テーブルを用いて対象ノードのオキュパンシー符号にエントロピー符号化を行うことで符号化位置情報及びメタデータを生成する。エントロピー符号化部2704は、選択された符号化テーブルを示す情報を符号化位置情報に付加してもよい。
 以下、8分木表現と位置情報のスキャン順について説明する。位置情報(位置データ)は8分木構造に変換(8分木化)された後、符号化される。8分木構造はノードとリーフとで構成される。各ノードは8つのノード又はリーフを持ち、各リーフはボクセル(VXL)情報を持つ。図10は、複数のボクセルを含む位置情報の構造例を示す図である。図11は、図10に示す位置情報を8分木構造に変換した例を示す図である。ここで、図11に示すリーフのうち、リーフ1、2、3はそれぞれ図10に示すボクセルVXL1、VXL2、VXL3を表し、点群を含むVXL(以下、有効VXL)を表現している。
 具体的には、ノード1は、図10の位置情報を包含する全体空間に対応する。ノード1に対応する全体空間は8つのノードに分割され、8つのノードのうち、有効VXLを含むノードが、さらに8つのノードまたはリーフに分割され、この処理が木構造の階層分繰り返される。ここで、各ノードはサブ空間に対応し、ノード情報として分割後のどの位置に次のノードまたはリーフを持つかを示す情報(オキュパンシー符号)を持つ。また、最下層のブロックはリーフに設定され、リーフ情報としてリーフ内に含まれる点群数などが保持される。
 次に、位置情報復号部の構成例を説明する。図12は、本実施の形態に係る位置情報復号部2710のブロック図である。位置情報復号部2710は、8分木生成部2711と、幾何情報算出部2712と、符号化テーブル選択部2713と、エントロピー復号部2714とを備える。
 8分木生成部2711は、ビットストリームのヘッダ情報又はメタデータ等を用いて、ある空間(ノード)の8分木を生成する。例えば、8分木生成部2711は、ヘッダ情報に付加されたある空間のx軸、y軸、z軸方向の大きさを用いて大空間(ルートノード)を生成し、その空間をx軸、y軸、z軸方向にそれぞれ2分割することで8個の小空間A(ノードA0~A7)を生成することで8分木を生成する。また、対象ノードとしてノードA0~A7が順に設定される。
 幾何情報算出部2712は、対象ノードの隣接ノードが占有ノードであるか否かを示す占有情報を取得する。例えば、幾何情報算出部2712は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報を算出する。また、幾何情報算出部2712は、復号済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部2712は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
 符号化テーブル選択部2713は、幾何情報算出部2712で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー復号に用いる符号化テーブル(復号テーブル)を選択する。例えば、符号化テーブル選択部2713は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
 エントロピー復号部2714は、選択された符号化テーブルを用いて対象ノードのオキュパンシー符号をエントロピー復号することで、位置情報を生成する。なお、エントロピー復号部2714は、選択された符号化テーブルの情報をビットストリームから復号して取得し、当該情報で示される符号化テーブルを用いて、対象ノードのオキュパンシー符号をエントロピー復号してもよい。
 以下、属性情報符号化部及び属性情報復号部の構成を説明する。図13は属性情報符号化部A100の構成例を示すブロック図である。属性情報符号化部は異なる符号化方法を実行する複数の符号化部を含んでもよい。例えば、属性情報符号化部は、下記の2方式をユースケースに応じて切替えて用いてもよい。
 属性情報符号化部A100は、LoD属性情報符号化部A101と、変換属性情報符号化部A102とを含む。LoD属性情報符号化部A101は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測して、その予測残差を符号化する。ここで、分類した各階層をLoD(Level of Detail)と呼ぶ。
 変換属性情報符号化部A102は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を符号化する。具体的には、変換属性情報符号化部A102は、三次元点の位置情報を元に各属性情報に対してRAHTまたはHaar変換を適用することで、各階層の高周波成分および低周波数成分を生成し、それらの値を量子化及びエントロピー符号化等を用いて符号化する。
 図14は属性情報復号部A110の構成例を示すブロック図である。属性情報復号部は異なる復号方法を実行する複数の復号部を含んでもよい。例えば、属性情報復号部は、下記の2方式をヘッダやメタデータに含まれる情報を元に切替えて復号してもよい。
 属性情報復号部A110は、LoD属性情報復号部A111と、変換属性情報復号部A112とを含む。LoD属性情報復号部A111は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測しながら属性値を復号する。
 変換属性情報復号部A112は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を復号する。具体的には、変換属性情報復号部A112は、三次元点の位置情報を元に各属性値の高周波成分および低周波成分に対して、inverse RAHTまたはinverse Haar変換を適用することで属性値を復号する。
 図15は、LoD属性情報符号化部A101の一例である属性情報符号化部3140の構成を示すブロック図である。
 属性情報符号化部3140は、LoD生成部3141と、周囲探索部3142と、予測部3143と、予測残差算出部3144と、量子化部3145と、算術符号化部3146と、逆量子化部3147と、復号値生成部3148と、メモリ3149と、を含む。
 LoD生成部3141は、三次元点の位置情報を用いてLoDを生成する。
 周囲探索部3142は、LoD生成部3141によるLoDの生成結果と各三次元点間の距離を示す距離情報とを用いて、各三次元点に隣接する近隣三次元点を探索する。
 予測部3143は、符号化対象の対象三次元点の属性情報の予測値を生成する。
 予測残差算出部3144は、予測部3143により生成された属性情報の予測値の予測残差を算出(生成)する。
 量子化部3145は、予測残差算出部3144により算出された属性情報の予測残差を量子化する。
 算術符号化部3146は、量子化部3145により量子化された後の予測残差を算術符号化する。算術符号化部3146は、算術符号化した予測残差を含むビットストリームを、例えば、三次元データ復号装置に出力する。
 なお、予測残差は、算術符号化部3146によって算術符号化される前に、例えば量子化部3145によって二値化されてもよい。
 また、例えば、算術符号化部3146は、算術符号化に用いる符号化テーブルを算術符号化前に初期化してもよい。算術符号化部3146は、算術符号化に用いる符号化テーブルを、層毎に初期化してもよい。また、算術符号化部3146は、符号化テーブルを初期化した層の位置を示す情報をビットストリームに含めて出力してもよい。
 逆量子化部3147は、量子化部3145によって量子化された後の予測残差を逆量子化する。
 復号値生成部3148は、予測部3143により生成された属性情報の予測値と、逆量子化部3147により逆量子化された後の予測残差とを加算することで復号値を生成する。
 メモリ3149は、復号値生成部3148により復号された各三次元点の属性情報の復号値を記憶するメモリである。例えば、予測部3143は、まだ符号化していない三次元点の予測値を生成する場合に、メモリ3149に記憶されている各三次元点の属性情報の復号値を利用して予測値を生成する。
 図16は、変換属性情報符号化部A102の一例である属性情報符号化部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は、各種ヘッダ情報を生成及び符号化してもよい。
 図17は、LoD属性情報復号部A111の一例である属性情報復号部3150の構成を示すブロック図である。
 属性情報復号部3150は、LoD生成部3151と、周囲探索部3152と、予測部3153と、算術復号部3154と、逆量子化部3155と、復号値生成部3156と、メモリ3157と、を含む。
 LoD生成部3151は、位置情報復号部(図17には不図示)により復号された三次元点の位置情報を用いてLoDを生成する。
 周囲探索部3152は、LoD生成部3151によるLoDの生成結果と各三次元点間の距離を示す距離情報とを用いて、各三次元点に隣接する近隣三次元点を探索する。
 予測部3153は、復号対象の対象三次元点の属性情報の予測値を生成する。
 算術復号部3154は、図15に示す属性情報符号化部3140より取得したビットストリーム内の予測残差を算術復号する。なお、算術復号部3154は、算術復号に用いる復号テーブルを初期化してもよい。算術復号部3154は、図15に示す算術符号化部3146が符号化処理を行った層について、算術復号に用いる復号テーブルを初期化する。算術復号部3154は、算術復号に用いる復号テーブルを層毎に初期化してもよい。また、算術復号部3154は、ビットストリームに含まれる、符号化テーブルを初期化した層の位置を示す情報に基づいて、復号テーブルを初期化してもよい。
 逆量子化部3155は、算術復号部3154が算術復号した予測残差を逆量子化する。
 復号値生成部3156は、予測部3153により生成された予測値と逆量子化部3155により逆量子化された後の予測残差とを加算して復号値を生成する。復号値生成部3156は、復号された属性情報データを他の装置へ出力する。
 メモリ3157は、復号値生成部3156により復号された各三次元点の属性情報の復号値を記憶するメモリである。例えば、予測部3153は、まだ復号していない三次元点の予測値を生成する場合に、メモリ3157に記憶されている各三次元点の属性情報の復号値を利用して予測値を生成する。
 図18は、変換属性情報復号部A112の一例である属性情報復号部6610のブロック図である。属性情報復号部6610は、算術復号部6611と、逆量子化部6612と、逆Haar変換部6613と、メモリ6614とを備える。
 算術復号部6611は、ビットストリームに含まれるZeroCntと符号化係数を算術復号する。なお、算術復号部6611は、各種ヘッダ情報を復号してもよい。
 逆量子化部6612は、算術復号した符号化係数を逆量子化する。逆Haar変換部6613は、逆量子化後の符号化係数に逆Haar変換を適用する。メモリ6614は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ6614に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
 次に、第2の符号化方法の符号化を行う符号化部4613の例である第2の符号化部4650について説明する。図19は、第2の符号化部4650の構成を示す図である。図20は、第2の符号化部4650のブロック図である。
 第2の符号化部4650は、点群データを第2の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第2の符号化部4650は、付加情報生成部4651と、位置画像生成部4652と、属性画像生成部4653と、映像符号化部4654と、付加情報符号化部4655と、多重化部4656とを含む。
 第2の符号化部4650は、三次元構造を二次元画像に投影することで位置画像及び属性画像を生成し、生成した位置画像及び属性画像を既存の映像符号化方式を用いて符号化するという特徴を有する。第2の符号化方法は、VPCC(Video based PCC)とも呼ばれる。
 点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報MetaData)を含む。
 付加情報生成部4651は、三次元構造を二次元画像に投影することで、複数の二次元画像のマップ情報を生成する。
 位置画像生成部4652は、位置情報と、付加情報生成部4651で生成されたマップ情報とに基づき、位置画像(Geometry Image)を生成する。この位置画像は、例えば、画素値として距離(Depth)が示される距離画像である。なお、この距離画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
 属性画像生成部4653は、属性情報と、付加情報生成部4651で生成されたマップ情報とに基づき、属性画像を生成する。この属性画像は、例えば、画素値として属性情報(例えば色(RGB))が示される画像である。なお、この画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
 映像符号化部4654は、位置画像及び属性画像を、映像符号化方式を用いて符号化することで、符号化データである符号化位置画像(Compressed Geometry Image)及び符号化属性画像(Compressed Attribute Image)を生成する。なお、映像符号化方式として、公知の任意の符号化方法が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
 付加情報符号化部4655は、点群データに含まれる付加情報、及びマップ情報等を符号化することで符号化付加情報(Compressed MetaData)を生成する。
 多重化部4656は、符号化位置画像、符号化属性画像、符号化付加情報、及び、その他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
 次に、第2の符号化方法の復号を行う復号部4624の例である第2の復号部4660について説明する。図21は、第2の復号部4660の構成を示す図である。図22は、第2の復号部4660のブロック図である。第2の復号部4660は、第2の符号化方法で符号化された符号化データ(符号化ストリーム)を、第2の符号化方法で復号することで点群データを生成する。この第2の復号部4660は、逆多重化部4661と、映像復号部4662と、付加情報復号部4663と、位置情報生成部4664と、属性情報生成部4665とを含む。
 図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第2の復号部4660に入力される。
 逆多重化部4661は、符号化データから、符号化位置画像(Compressed Geometry Image)、符号化属性画像(Compressed Attribute Image)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
 映像復号部4662は、符号化位置画像及び符号化属性画像を、映像符号化方式を用いて復号することで、位置画像及び属性画像を生成する。なお、映像符号化方式として、公知の任意の符号化方式が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
 付加情報復号部4663は、符号化付加情報を復号することで、マップ情報等を含む付加情報を生成する。
 位置情報生成部4664は、位置画像とマップ情報とを用いて位置情報を生成する。属性情報生成部4665は、属性画像とマップ情報とを用いて属性情報を生成する。
 第2の復号部4660は、復号に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
 以下、PCC符号化方式における課題を説明する。図23は、PCC符号化データに関わるプロトコルスタックを示す図である。図23には、PCC符号化データに、映像(例えばHEVC)又は音声などの他のメディアのデータを多重し、伝送又は蓄積する例を示す。
 多重化方式及びファイルフォーマットは、様々な符号化データを多重し、伝送又は蓄積するための機能を有している。符号化データを伝送又は蓄積するためには、符号化データを多重化方式のフォーマットに変換しなければならない。例えば、HEVCでは、NALユニットと呼ばれるデータ構造に符号化データを格納し、NALユニットをISOBMFFに格納する技術が規定されている。
 一方、現在、点群データの符号化方法として第1の符号化方法(Codec1)、及び第2の符号化方法(Codec2)が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、伝送及び蓄積ができないという課題がある。
 なお、以降において、特定の符号化方法の記載がなければ、第1の符号化方法、及び第2の符号化方法のいずれかを示すものとする。
 (実施の形態2)
 本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
 本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
 図24は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は4656に対応する。
 符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
 多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
 図25は、符号化部4801で生成される符号化データの構成例を示す図である。図中の矢印は符号化データの復号に係る依存関係を示しており、矢印の元は矢印の先のデータに依存している。つまり、復号装置は、矢印の先のデータを復号し、その復号したデータを用いて矢印の元のデータを復号する。言い換えると、依存するとは、依存元のデータの処理(符号化又は復号等)において依存先のデータが参照(使用)されることを意味する。
 まず、位置情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの位置情報を符号化することで、フレーム毎の符号化位置データ(Compressed Geometry Data)を生成する。また、符号化位置データをG(i)で表す。iはフレーム番号、又はフレームの時刻等を示す。
 また、符号化部4801は、各フレームに対応する位置パラメータセット(GPS(i))を生成する。位置パラメータセットは、符号化位置データの復号に使用することが可能なパラメータを含む。また、フレーム毎の符号化位置データは、対応する位置パラメータセットに依存する。
 また、複数フレームから成る符号化位置データを位置シーケンス(Geometry Sequence)と定義する。符号化部4801は、位置シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する位置シーケンスパラメータセット(Geometry Sequence PS:位置SPSとも記す)を生成する。位置シーケンスは、位置SPSに依存する。
 次に、属性情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの属性情報を符号化することで、フレーム毎の符号化属性データ(Compressed Attribute Data)を生成する。また、符号化属性データをA(i)で表す。また、図25では、属性Xと属性Yとが存在する例を示しており、属性Xの符号化属性データをAX(i)で表し、属性Yの符号化属性データをAY(i)で表す。
 また、符号化部4801は、各フレームに対応する属性パラメータセット(APS(i))を生成する。また、属性Xの属性パラメータセットをAXPS(i)で表し、属性Yの属性パラメータセットをAYPS(i)で表す。属性パラメータセットは、符号化属性情報の復号に使用することが可能なパラメータを含む。符号化属性データは、対応する属性パラメータセットに依存する。
 また、複数フレームから成る符号化属性データを属性シーケンス(Attribute Sequence)と定義する。符号化部4801は、属性シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する属性シーケンスパラメータセット(Attribute Sequence PS:属性SPSとも記す)を生成する。属性シーケンスは、属性SPSに依存する。
 また、第1の符号化方法では、符号化属性データは符号化位置データに依存する。
 また、図25では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
 なお、図25では、位置情報が1種類、属性情報が2種類である例を示しているが、これに限らず、属性情報は1種類であってもよいし、3種類以上であってもよい。この場合も、同様の方法で符号化データを生成できる。また、属性情報を持たない点群データの場合は、属性情報はなくてもよい。その場合は、符号化部4801は、属性情報に関連するパラメータセットを生成しなくてもよい。
 次に、付加情報(メタデータ)の生成処理について説明する。符号化部4801は、PCCストリーム全体のパラメータセットであるPCCストリームPS(PCC Stream PS:ストリームPSとも記す)を生成する。符号化部4801は、ストリームPSに、1又は複数の位置シーケンス及び1又は複数の属性シーケンスに対する復号処理に共通に使用することができるパラメータを格納する。例えば、ストリームPSには、点群データのコーデックを示す識別情報、及び符号化に使用されたアルゴリズムを示す情報等が含まれる。位置シーケンス及び属性シーケンスはストリームPSに依存する。
 次に、アクセスユニット及びGOFについて説明する。本実施の形態では、新たにアクセスユニット(Access Unit:AU)、及びGOF(Group of Frame)の考え方を導入する。
 アクセスユニットは、復号時にデータにアクセスするため基本単位であり、1つ以上のデータ及び1つ以上のメタデータで構成される。例えば、アクセスユニットは、同一時刻の位置情報と1又は複数の属性情報とで構成される。GOFは、ランダムアクセス単位であり、1つ以上のアクセスユニットで構成される。
 符号化部4801は、アクセスユニットの先頭を示す識別情報として、アクセスユニットヘッダ(AU Header)を生成する。符号化部4801は、アクセスユニットヘッダに、アクセスユニットに係るパラメータを格納する。例えば、アクセスユニットヘッダは、アクセスユニットに含まれる符号化データの構成又は情報を含む。また、アクセスユニットヘッダは、アクセスユニットに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
 なお、符号化部4801は、アクセスユニットヘッダの代わりに、アクセスユニットに係るパラメータを含まないアクセスユニットデリミタを生成してもよい。このアクセスユニットデリミタは、アクセスユニットの先頭を示す識別情報として用いられる。復号装置は、アクセスユニットヘッダ又はアクセスユニットデリミタを検出することにより、アクセスユニットの先頭を識別する。
 次に、GOF先頭の識別情報の生成について説明する。符号化部4801は、GOFの先頭を示す識別情報として、GOFヘッダ(GOF Header)を生成する。符号化部4801は、GOFヘッダに、GOFに係るパラメータを格納する。例えば、GOFヘッダは、GOFに含まれる符号化データの構成又は情報を含む。また、GOFヘッダは、GOFに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
 なお、符号化部4801は、GOFヘッダの代わりに、GOFに係るパラメータを含まないGOFデリミタを生成してもよい。このGOFデリミタは、GOFの先頭を示す識別情報として用いられる。復号装置は、GOFヘッダ又はGOFデリミタを検出することにより、GOFの先頭を識別する。
 PCC符号化データにおいて、例えば、アクセスユニットはPCCフレーム単位であると定義される。復号装置は、アクセスユニット先頭の識別情報に基づき、PCCフレームにアクセスする。
 また、例えば、GOFは1つのランダムアクセス単位であると定義される。復号装置は、GOF先頭の識別情報に基づき、ランダムアクセス単位にアクセスする。例えば、PCCフレームが互いに依存関係がなく、単独で復号可能であれば、PCCフレームをランダムアクセス単位と定義してもよい。
 なお、1つのアクセスユニットに2つ以上のPCCフレームが割り当てられてもよいし、1つのGOFに複数のランダムアクセス単位が割り当てられてもよい。
 また、符号化部4801は、上記以外のパラメータセット又はメタデータを定義し、生成してもよい。例えば、符号化部4801は、復号時に必ずしも用いない可能性のあるパラメータ(オプションのパラメータ)を格納するSEI(Supplemental Enhancement Information)を生成してもよい。
 次に、符号化データの構成、及び符号化データのNALユニットへの格納方法を説明する。
 例えば、符号化データの種類毎にデータフォーマットが規定される。図26は、符号化データ及びNALユニットの例を示す図である。
 例えば、図26に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
 ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
 ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
 なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
 多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図27は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
 図27に示すように、pcc_codec_typeがコーデック1(Codec1:第1の符号化方法)である場合、pcc_nal_unit_typeの値0~10は、コーデック1における、符号化位置データ(Geometry)、符号化属性Xデータ(AttributeX)、符号化属性Yデータ(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrX.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AUヘッダ(AU Header)、GOFヘッダ(GOF Header)に割り当てられる。また、値11以降は、コーデック1の予備に割り当てられる。
 pcc_codec_typeがコーデック2(Codec2:第2の符号化方法)である場合、pcc_nal_unit_typeの値0~2は、コーデックのデータA(DataA)、メタデータA(MetaDataA)、メタデータB(MetaDataB)に割り当てられる。また、値3以降は、コーデック2の予備に割り当てられる。
 (実施の形態3)
 実施の形態3に係る三次元データ符号化方法では、複数の三次元点の位置情報を、当該位置情報に基づいて生成した予測木を用いて符号化する。
 図28は、実施の形態3に係る、三次元データ符号化方法に用いられる予測木の一例を示す図である。図29は、実施の形態3に係る三次元データ符号化方法の一例を示すフローチャートである。図30は、実施の形態3に係る三次元データ復号方法の一例を示すフローチャートである。
 図28及び図29に示されるように、三次元データ符号化方法においては、複数の三次元点を用いて予測木を生成し、その後、予測木の各ノードが含むノード情報を符号化する。これにより、符号化されたノード情報を含むビットストリームが得られる。各ノード情報は、例えば、予測木の1つのノードに関する情報である。各ノード情報は、例えば、1つのノードの位置情報、当該1つのノードのインデックス、当該1つのノードが有する子ノードの数、当該1つのノードの位置情報を符号化するために用いられる予測モード、及び、予測残差を含む。
 また、図28及び図30に示される様に、三次元データ復号方法においては、ビットストリームに含まれる符号化された各ノード情報を復号し、その後、予測木を生成しながら位置情報を復号する。
 次に、予測木の生成方法について、図31を用いて説明する。
 図31は、実施の形態3に係る予測木の生成方法を説明するための図である。
 予測木の生成方法では、図31の(a)に示すように、三次元データ符号化装置は、まず、予測木の初期点として点0を追加する。点0の位置情報は、(x0、y0、z0)の3つの要素を含む座標で示される。点0の位置情報は、三軸直交座標系の座標で示されてもよいし、極座標系の座標で示されてもよい。
 child_countは、当該child_countが設定されているノードに1つの子ノードが追加される度に+1される。予測木の生成完了後の各ノードのchild_countは、各ノードが有する子ノードの数を示すこととなり、ビットストリームに付加される。pred_modeは、各ノードの位置情報の値を予測するための予測モードを示す。予測モードの詳細は、後述する。
 次に、図31の(b)に示すように、三次元データ符号化装置は、点1を予測木に追加する。この際、三次元データ符号化装置は、既に予測木に追加されている点群から点1の最近傍点を探索し、その最近傍点の子ノードとして点1を追加してもよい。点1の位置情報は、(x1、y1、z1)の3つの要素を含む座標で示される。点1の位置情報は、三軸直交座標系の座標で示されてもよいし、極座標系の座標で示されてもよい。図31の場合、点0が点1の最近傍点となり、点0の子ノードとして点1が追加される。そして、三次元データ符号化装置は、点0のchild_countで示される値を1増加させる。
 なお、各ノードの位置情報の予測値は、予測木にノードを追加した際に算出されてもよい。例えば、図31の(b)の場合、三次元データ符号化装置は、点1を点0の子ノードとして追加し、点0の位置情報を予測値として算出してもよい。その場合、pred_mode=1と設定されてもよい。pred_modeは、予測モードを示す予測モード情報(予測モード値)である。また、三次元データ符号化装置は、予測値の算出後、点1のresidual_value(予測残差)を算出してもよい。ここで、residual_valueは、各ノードの位置情報からpred_modeで示される予測モードで算出された予測値を引いた差分値である。このように、三次元データ符号化方法では、位置情報そのものではなく、予測値からの差分値を符号化することで符号化効率を向上できる。
 次に、図31の(c)に示すように、三次元データ符号化装置は、点2を予測木に追加する。この際、三次元データ符号化装置は、既に予測木に追加されている点群から点2の最近傍点を探索し、その最近傍点の子ノードとして点2を追加してもよい。点2の位置情報は、(x2、y2、z2)の3つの要素を含む座標で示される。点2の位置情報は、三軸直交座標系の座標で示されてもよいし、極座標系の座標で示されてもよい。図31の場合、点1が点2の最近傍点となり、点1の子ノードとして点2が追加される。そして、三次元データ符号化装置は、点1のchild_countで示される値を1増加させる。
 次に、図31の(d)に示すように、三次元データ符号化装置は、点3を予測木に追加する。この際、三次元データ符号化装置は、既に予測木に追加されている点群から点3の最近傍点を探索し、その最近傍点の子ノードとして点3を追加してもよい。点3の位置情報は、(x3、y3、z3)の3つの要素を含む座標で示される。点3の位置情報は、三軸直交座標系の座標で示されてもよいし、極座標系の座標で示されてもよい。図31の場合、点0が点3の最近傍点となり、点0の子ノードとして点3が追加される。そして、三次元データ符号化装置は、点0のchild_countで示される値を1増加させる。
 このように、三次元データ符号化装置は、全ての点を予測木に追加し、予測木の生成を完了する。予測木の生成が完了すると、最終的にchild_count=0を有するノードが予測木のleafとなる。三次元データ符号化装置は、予測木の生成が完了後、rootのノードからdepth優先順に選択した各ノードのchild_count、pred_mode、及び、residual_valueを符号化する。つまり、三次元データ符号化装置は、depth優先順にノードを選択する場合、選択したノードの次のノードとして、当該選択したノードの1以上の子ノードのうちまだ選択されていない子ノードを選択する。三次元データ符号化装置は、選択したノードに子ノードがない場合、選択したノードの親ノードの未選択の他の子ノードを選択する。
 なお、符号化順は、depth優先順に限らずに、例えば幅優先(width first)順でも構わない。三次元データ符号化装置は、幅優先順にノードを選択する場合、選択したノードの次のノードとして、当該選択したノードと同一のdepth(階層)の1以上のノードのうちまだ選択されていないノードを選択する。三次元データ符号化装置は、選択したノードと同一のdepthのノードがない場合、次のdepthの1以上のノードのうちまだ選択されていないノードを選択する。
 なお、点0~3は、複数の三次元点の一例である。
 なお、上記の三次元データ符号化方法では、child_count、pred_mode、及び、residual_valueを、各点を予測木に追加した際に算出するとしたが、必ずしもこれに限らず、例えば、予測木の生成完了後に、それらを算出してもよい。
 複数の三次元点の三次元データ符号化装置への入力順は、入力された三次元点をMorton orderの昇順または降順に並べ替えて、その先頭の三次元点から順に処理してもよい。これにより、三次元データ符号化装置は、処理対象の三次元点の最近傍点を効率よく探索でき、符号化効率を向上できる。また、三次元データ符号化装置は、三次元点を並べ替えずに入力された順に処理してもよい。例えば、三次元データ符号化装置は、複数の三次元点の入力順に分岐の無い予測木を生成してもよい。具体的には、三次元データ符号化装置は、複数の三次元点の入力順において、入力されたの三次元点の次に入力された三次元点を所定の三次元点の子ノードとして追加してもよい。
 次に、予測モードの第1の例について、図32を用いて説明する。図32は、実施の形態3に係る予測モードの第1の例を説明するための図である。図32は、予測木の一部を示す図である。
 予測モードは、以下に示すとおり、8つ設定されてもよい。例えば、図32に示すように、点cの予測値を算出する場合を例に説明する。予測木では、点cの親ノードは点p0であり、点cの祖父ノードは点p1であり、点cの曾祖父ノードは点p2であることが示されている。なお、点c、点p0、点p1、及び、点p2は、複数の三次元点の一例である。
 予測モード値が0である予測モード(以下、予測モード0という)は、予測なしに設定されてもよい。つまり、三次元データ符号化装置は、予測モード0において、入力された点cの位置情報を、当該点cの予測値として算出してもよい。
 また、予測モード値が1である予測モード(以下、予測モード1という)は、点p0との差分予測に設定されてもよい。つまり、三次元データ符号化装置は、点cの親ノードである点p0の位置情報を、当該点cの予測値として算出してもよい。
 また、予測モード値が2である予測モード(以下、予測モード2という)は、点p0と、点p1とによる線形予測に設定されてもよい。つまり、三次元データ符号化装置は、点cの親ノードである点p0の位置情報と、点cの祖父ノードである点p1の位置情報とを用いた線形予測による予測結果を、点cの予測値として算出してもよい。具体的には、三次元データ符号化装置は、下記の式T1を用いて予測モード2における点cの予測値を算出する。
 予測値=2×p0-p1   (式T1)
 式T1において、p0は点p0の位置情報を示し、p1は点p1の位置情報を示す。
 また、予測モード値が3である予測モード(以下、予測モード3という)は、点p0、点p1及び点p2を用いたParallelogram予測に設定されてもよい。つまり、三次元データ符号化装置は、点cの親ノードである点p0の位置情報と、点cの祖父ノードである点p1の位置情報と、点cの曾祖父ノードである点p2の位置情報とを用いたParallelogram予測による予測結果を、点cの予測値として算出してもよい。具体的には、三次元データ符号化装置は、下記の式T2を用いて予測モード3における点cの予測値を算出する。
 予測値=p0+p1-p2   (式T2)
 式T2において、p0は点p0の位置情報を示し、p1は点p1の位置情報を示し、p2は点p2の位置情報を示す。
 また、予測モード値が4である予測モード(以下、予測モード4という)は、点p1との差分予測に設定されてもよい。つまり、三次元データ符号化装置は、点cの祖父ノードである点p1の位置情報を、当該点cの予測値として算出してもよい。
 また、予測モード値が5である予測モード(以下、予測モード5という)は、点p2との差分予測に設定されてもよい。つまり、三次元データ符号化装置は、点cの曾祖父ノードである点p2の位置情報を、当該点cの予測値として算出してもよい。
 また、予測モード値が6である予測モード(以下、予測モード6という)は、点p0、点p1、及び、点p2のいずれか2個以上の位置情報の平均に設定されてもよい。つまり、三次元データ符号化装置は、点cの親ノードである点p0の位置情報と、点cの祖父ノードである点p1の位置情報と、点cの曾祖父ノードである点p2の位置情報とのうちの2以上の位置情報の平均値を、点cの予測値として算出してもよい。例えば、三次元データ符号化装置は、点p0の位置情報と、点p1の位置情報とを予測値の算出に用いる場合、次の式T3を用いて予測モード6における点cの予測値を算出する。
 予測値=(p0+p1)/2   (式T3)
 式T3において、p0は点p0の位置情報を示し、p1は点p1の位置情報を示す。
 また、予測モード値が7である予測モード(以下、予測モード7という)は、点p0及び点p1の間の距離d0と、点p2及び点p1の間の距離d1とを用いた非線形予測に設定されてもよい。つまり、三次元データ符号化装置は、距離d0と、距離d1とを用いた非線形予測による予測結果を、点cの予測値として算出してもよい。
 なお、各予測モードに割当てる予測方法は、上記例に限らない。また、上記の8つの予測モードと、上記の8つの予測方法とは、上記の組み合わせでなくてもよく、どのような組み合わせであってもよい。例えば、予測モードを算術符号化などのエントロピー符号化を用いて符号化する場合、予測モード0に使用頻度が高い予測方法が割り当てられてもよい。これにより、符号化効率を向上できる。また、三次元データ符号化装置は、符号化処理を進めながら、予測モードの使用頻度に合わせて動的に予測モードの割り当てを変更することで符号化効率を向上させてもよい。三次元データ符号化装置は、例えば、符号化時の各予測モードの使用頻度をカウントし、使用頻度が高い予測方法ほどより小さい値で示される予測モードを割り当ててもよい。これにより符号化効率を向上できる。なお、Mは、予測モードの数を示す予測モード数であり、上記例の場合、予測モードは、予測モード0~7の8つあるため、M=8となる。
 三次元データ符号化装置は、三次元点の位置情報(x,y,z)の予測値(px,py,pz)として、符号化対象の三次元点の周囲の三次元点のうち、符号化対象の三次元点に距離が近い三次元点の位置情報を用いて、符号化対象の三次元点の位置情報の算出に用いる予測値を算出してもよい。また、三次元データ符号化装置は、予測モード情報(pred_mode)を三次元点毎に付加し、予測モードに応じて算出される予測値を選択できるようにしてもよい。
 例えば、総数がMの予測モードにおいて、予測モード0に最近傍点の三次元点p0の位置情報を割り当て、・・・、予測モードM-1に三次元点p2の位置情報を割り当て、予測に使用した予測モードを三次元点毎にビットストリームに付加することが考えられる。
 なお、予測モード数Mは、ビットストリームに付加されても構わない。また、予測モード数Mは、ビットストリームに付加されずに規格のprofile、level等で値が規定されても構わない。また、予測モード数Mは、予測に用いる三次元点数Nから算出された値が用いられても構わない。例えば予測モード数Mは、M=N+1により算出されても構わない。
 図33は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第2の例を示す図である。
 図33に示されるテーブルは、予測に用いる三次元点数N=4、かつ、予測モード数M=5の場合の例である。
 第2の例において、点cの位置情報の予測値は、点p0、点p1、及び、点p2の少なくともいずれか1つの位置情報を用いて算出される。予測モードは、符号化対象の三次元点毎に付加される。予測値は、付加された予測モードに応じた値に算出される。
 図34は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第2の例の具体例を示す図である。
 三次元データ符号化装置は、例えば、予測モード1を選択し、符号化対象の三次元点の位置情報(x、y、z)を、それぞれ予測値(p0x、p0y、p0z)を用いて符号化してもよい。この場合、選択された予測モード1を示す予測モード値である「1」がビットストリームに付加される。
 このように、三次元データ符号化装置は、予測モードの選択において、符号化対象の三次元点の位置情報が含む3つの要素の各要素の予測値を算出するための1つの予測モードとして、3つの要素について共通した予測モードを選択してもよい。
 図35は、実施の形態3に係る、各予測モードにおいて算出される予測値を示すテーブルの第3の例を示す図である。
 図35に示されるテーブルは、予測に用いる三次元点数N=2、かつ、予測モード数M=5の場合の例である。
 第3の例において、点cの位置情報の予測値は、点p0及び点p1の少なくともいずれか1つの位置情報を用いて算出される。予測モードは、符号化対象の三次元点毎に付加される。予測値は、付加された予測モードに応じた値に算出される。
 なお、第3の例のように、点cの周囲の点の数(隣接点数)が3個に満たない場合、予測値が未割当てである予測モードは、not availableに設定されてもよい。また、not availableが設定された予測モードが発生した場合、その予測モードには、別の予測方法が割り当てられてもよい。例えば、その予測モードには、予測値として点p2の位置情報が割り当てられてもよい。また、その予測モードには、他の予測モードに割り当てられた予測値が割り当てられてもよい。例えば、not availableが設定された予測モード3に、予測モード4に割り当てられている点p1の位置情報が割り当てられてもよい。その際、予測モード4には、新たに点p2の位置情報が割り当てられてもよい。このように、not availableが設定された予測モードが発生した場合、当該予測モードに新たな予測方法を割り当てることで符号化効率を向上できる。
 図36は、位置情報のヘッダのシンタックスの一例を示す図である。図36のシンタックスにおけるNumNeighborPoint、NumPredMode、Thfix、QP、及び、unique_point_per_leafについて順に説明する。
 NumNeighborPointは、三次元点の位置情報の予測値の生成に用いる周囲の点数の上限値を示す。周囲の点数MがNumNeighborPointに満たない場合(M<NumNeighborPoint)、予測値の算出処理では、M個の周囲の点数を用いて予測値が算出されてもよい。
 NumPredModeは、位置情報の予測に用いる予測モードの総数Mを示す。なお、予測モード数の取りうる値の最大値MaxMは、規格等で値が規定されてもよい。三次元データ符号化装置は、(MaxM-M)の値(0<M<=MaxM)をNumPredModeとしてヘッダに付加し、(MaxM-1)をtruncated unary codeで二値化して符号化しても構わない。また、予測モード数NumPredModeは、ビットストリームに付加されなくてもよく、規格等のprofileまたはlevelで値が規定されても構わない。また、予測モード数は、NumNeighborPoint+NumPredModeで規定されても構わない。
 Thfixは、予測モードを固定するか否かを判定するための閾値である。予測に用いる点p1及び点p0の間の距離d0と、点p2及び点p1の間の距離d1とを算出し、その差分絶対値distdiff=|d0-d1|が閾値Thfix[i]より小さければ予測モードがαに固定される。αは、予測モードが線形予測を用いた予測値を算出するための予測モードであり、上記実施の形態では「2」である。なお、Thfixはビットストリームに付加されなくてもよく、規格等のprofileまたはlevelで値が規定されても構わない。
 QPは、位置情報を量子化する際に用いる量子化パラメータを示す。三次元データ符号化装置は、量子化パラメータから量子化ステップを算出し、算出した量子化ステップを用いて位置情報を量子化してもよい。
 unique_point_per_leafは、ビットストリーム内にduplicated point(位置情報が同じ点)が含まれるか否かを示す情報である。unique_point_per_leaf=1であることは、ビットストリーム内にduplicated pointがないことを示す。unique_point_per_leaf=0であることは、ビットストリーム内にduplicated pointが1つ以上存在することを示す。
 なお、本実施の形態では、予測モードを固定するか否かの判断は、距離d0と距離d1との差分絶対値を用いて行われるとしたが、必ずしもこれに限らず、どのような方法で判断しても構わない。例えば、この判断は、点p1及び点p0の間の距離d0を算出し、距離d0が閾値よりも大きい場合、点p1は予測に使えないと判定し、予測モード値を「1」(予測値p0)に固定し、そうでなければ、予測モードを設定するようにしても構わない。これにより、オーバーヘッドを抑えつつ、符号化効率を向上できる。
 上記NumNeighborPoint、NumPredMode、Thfix、unique_point_per_leafは、エントロピー符号化されてヘッダに付加されてもよい。例えば各値は、二値化されて算出符号化されてもよい。また、各値は、処理量を抑えるために固定長で符号化されても構わない。
 図37は、位置情報のシンタックスの一例を示す図である。図37のシンタックスにおけるNumOfPoint、child_count、pred_mode、及び、residual_value[j]について順に説明する。
 NumOfPointは、ビットストリームに含まれる三次元点の総数を示す。
 child_countは、i番目の三次元点(node[i])が持つ子ノードの数を示す。
 pred_modeは、i番目の三次元点の位置情報を符号化又は復号するための予測モードを示す。pred_modeは、値0からM-1(Mは予測モードの総数)までの値をとる。pred_modeがビットストリームにない場合(条件であるdistdiff >= Thfix[i] &&NumPredMode > 1を満たさない場合)、pred_modeは、固定値αと推定されてもよい。αは、予測モードが線形予測を用いた予測値を算出するための予測モードであり、上記実施の形態では「2」である。なお、αは、「2」に限らずに0からM-1までのいずれかの値が推定値として設定されてもよい。また、pred_modeがビットストリームにない場合の推定値は、別途ヘッダ等に付加されても構わない。また、pred_modeは予測値が割当たった予測モード数を用いてtruncated unary codeで二値化して算術符号化されてもよい。
 なお、NumPredMode=1である場合、つまり、予測モード数が1である場合、三次元データ符号化装置は、予測モードを示す予測モード値を符号化せずに、予測モード値を含まないビットストリームを生成してもよい。また、三次元データ復号装置は、予測モード値を含まないビットストリームを取得した場合、予測値の算出において、特定の予測モードの予測値を算出してもよい。特定の予測モードは、予め定められた予測モードである。
 residual_value[j]は、位置情報の予測値との間の予測残差の符号化データを示す。residual_value[0]は、位置情報の要素xを示し、residual_value[1]が位置情報の要素yを示し、residual_value[2]が位置情報の要素zを示してもよい。
 図38は、位置情報のシンタックスの他の一例を示す図である。図38の例は、図37の例の変形例である。
 pred_modeは、図38に示すように、位置情報(x、y、z)の3つの要素毎の予測モードを示していてもよい。つまり、pred_mode[0]は、要素xの予測モードを示し、pred_mode[1]は要素yの予測モードを示し、pred_mode[2]は要素zの予測モードを示す。pred_mode[0]、pred_mode[1]、及び、pred_mode[2]は、ビットストリームに付加されてもよい。
 (実施の形態4)
 本実施の形態では、点群(ポイントクラウド)の位置情報(8分木)に対するインター予測について説明する。図39は、本実施の形態に係る三次元データ符号化装置12800のブロック図である。なお、図39では、点群の位置情報(ジオメトリ)の符号化に関する処理部を記載しているが、三次元データ符号化装置12800は、点群の属性情報の符号化等を行う処理部等の他の処理部を備えてもよい。インター予測では、符号化済みの点群を参照しつつ符号化対象の点群が符号化される。
 三次元データ符号化装置12800は、8分木化部12801と、バッファ12802と、エントロピー符号化部12803と、バッファ12804と、バッファ12805と、点群化部12806と、バッファ12807と、動き検出補償部12808と、8分木化部12809と、バッファ12810と、制御部12811とを備える。
 8分木化部12801は、入力された符号化対象の点群のデータである対象点群を、8分木(Octree)表現に変換することで、対象点群の位置情報を8分木で表現した対象8分木を生成する。なお、入力された対象点群では、点群の位置は例えば三次元座標(例えばx、y、z)で表現される。バッファ12802は、生成された対象8分木を保持する。また、8分木は、複数のノード(分岐点)で構成され、各ノードの情報は、当該ノードの8個の子ノードの各々が三次元点を含むか否かを示す8ビットのオキュパンシー符号を含む。例えば、バッファ12802は、8分木(対象点群)毎に保持するデータを初期化してもよい。
 エントロピー符号化部12803は、ノード毎の情報(例えばオキュパンシー符号)をエントロピー符号化することでビットストリームを生成する。なお、このエントロピー符号化では、対象点群内の符号化済みノード(イントラ参照ノード)の情報又は符号化済み点群内のノード(インター参照ノード)の情報に基づいて確率パラメータ(符号化テーブル又は確率テーブルとも呼ぶ)が制御される。
 バッファ12804は、対象ノードの情報(例えばオキュパンシー符号)をイントラ参照ノード(符号化済みノード)として保持する。例えば、バッファ12804は、8分木(対象点群)毎に保持するデータを初期化してもよい。
 バッファ12805は、対象ノードの情報(例えばオキュパンシー符号)を保持する。また、バッファ12805は、8分木単位の対象ノードの情報を符号化済み8分木として保持する。例えば、バッファ12805は、8分木(対象点群)毎に保持するデータを初期化してもよい。
 点群化部12806は、符号化済み8分木を点群に変換することでインター参照点群(符号化済み点群)を生成する。バッファ12807は、インター参照点群を保持する。つまり、バッファ12807は、符号化済みの1又は複数の点群である複数のインター参照点群を保持する。
 動き検出補償部12808は、インター参照点群と対象点群との変位を検出(動き検出)し、検出した変位に基づきインター参照点群を補正(動き補償)することで、位置合わせ後のインター参照点群である位置合わせ後点群を生成する。
 8分木化部12809は、位置合わせ後点群を8分木表現に変換することで、位置合わせ後点群の位置情報を8分木で表現したインター参照8分木を生成する。バッファ12810は、生成されたインター参照8分木を保持する。また、例えば、バッファ12810は、8分木(対象点群)毎に保持するデータを初期化してもよい。
 また、三次元データ符号化装置12800は、動き検出及び動き補償を、フレーム又は8分木単位で行ってもよいし、ノード(点)毎に行ってもよい。また、三次元データ符号化装置12800は、動きベクトルなどの動き補償に関する情報を、フレーム又は8分木のヘッダ部に記載してもよいし、当該情報をエントロピー符号化したうえでノード情報のヘッダ部に記載してもよい。
 また、インター参照点群は、符号化対象のフレームと異なる符号化済みのフレームに含まれる点群であってもよいし、符号化対象のフレームと同じフレームに含まれる符号化済みの点群であってもよい。
 制御部12811は、バッファ12804に格納されているイントラ参照ノード、又は、バッファ12810に格納されているインター参照8分木に含まれるインター参照ノードを用いて、エントロピー符号化部12803が、対象ノードのエントロピー符号化(算術符号化)に用いる確率パラメータを制御する。なお、イントラ参照ノードを用いた確率パラメータの制御(以下、イントラ参照と呼ぶ)が用いられるか、インター参照ノードを用いた確率パラメータの制御(以下、インター参照と呼ぶ)が用いられるかは、例えば、フレーム又は点群単位で予め定められていてもよいし、任意の方法により決定されてもよい。例えば、実際の符号量が試算され、符号量が少なくなる参照方法(イントラ参照又はインター参照)が選択されてもよい。
 例えば、イントラ参照が用いられる場合には、対象ノードの複数の隣接ノード(イントラ参照ノード)の占有状態(ノードに点が含まれるか否か)に基づき、複数の確率パラメータから確率パラメータが選択される。また、インター参照が用いられる場合には、インター参照8分木に含まれる、対象ノード及び複数の隣接ノードの少なくとも一つと同じ位置のノード(インター参照ノード)の占有状態に基づき、複数の確率パラメータから確率パラメータが選択される。なお、インター参照が選択された場合、インター参照とイントラ参照を組み合わせて確率パラメータが制御されてもよい。また、複数の確率パラメータは、発生頻度に応じて更新される確率パラメータを含んでもよいし、固定値を含んでもよい。
 このように、三次元データ符号化装置12800は、イントラ参照ノードの情報に加えてインター参照ノードの情報にも基づいてエントロピー符号化の確率パラメータを制御することで、対象ノードの情報の生起確率の予測精度を向上できる。よって、符号化効率を向上できる可能性がある。
 なお、三次元データ符号化装置12800は、常にインター参照点群を参照する必要はなく、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば30フレーム毎など)、又は三次元データ復号装置へ通知する任意のタイミングなどで、インター参照点群を格納しているバッファ12807をクリアするなどして、対象点群の情報のみに基づいて対象点群を符号化してもよい。これにより、三次元データ復号装置において、ビットストリームの先頭以外の、インター参照点群を参照していない点群からの飛び込み再生開始が可能になる。よって、ビットストリームのランダムアクセス性及びエラー耐性を向上できる可能性がある。
 図40は、本実施の形態に係る三次元データ復号装置12820のブロック図である。なお、図40では、点群の位置情報(ジオメトリ)の復号に関する処理部を記載しているが、三次元データ復号装置12820は、点群の属性情報の復号等を行う処理部等の他の処理部を備えてもよい。三次元データ復号装置12820は、符号化済みの点群を参照しつつ符号化されたビットストリームから点群を復号するインター予測復号を行う。例えば、三次元データ復号装置12820は、図39に示す三次元データ符号化装置12800で生成されたビットストリームを復号する。
 三次元データ復号装置12820は、エントロピー復号部12821と、バッファ12822と、バッファ12823と、点群化部12824と、バッファ12825と、動き補償部12826と、8分木化部12827と、バッファ12828と、制御部12829とを備える。
 エントロピー復号部12821は、入力されたビットストリームを、8分木の分岐点(ノード)毎にエントロピー復号することで復号ノードの情報(例えばオキュパンシー符号)を生成する。なお、このエントロピー復号では、対象点群内の復号済みノード(イントラ参照ノード)の情報又は復号済み点群内のノード(インター参照ノード)の情報に基づいて確率パラメータ(符号化テーブル又は確率テーブルとも呼ぶ)が制御される。
 バッファ12822は、生成された復号ノードの情報をイントラ参照ノード(復号済みノード)として保持する。例えば、バッファ12822は、8分木(復号点群)毎に保持するデータを初期化してもよい。
 バッファ12823は、復号ノードの情報(例えばオキュパンシー符号)を保持する。また、バッファ12823は、8分木単位の復号ノードの情報を復号8分木として保持する。例えば、バッファ12823は、8分木(復号点群)毎に保持するデータを初期化してもよい。点群化部12824は、復号8分木を点群に変換することで復号点群を生成する。
 バッファ12825は、復号点群をインター参照点群として保持する。動き補償部12826は、インター参照点群と復号対象の点群との変位を補正(動き補償)することで、位置合わせ後のインター参照点群である位置合わせ後点群を生成する。例えば、動き補償部12826は、動きベクトルなどの動き補償に関する情報を、フレーム或いは8分木のヘッダ部、又は、ノードの情報のヘッダ部などから取得し、取得した情報を用いて動き補償を行う。
 8分木化部12827は、位置合わせ後点群を8分木表現に変換することで、位置合わせ後点群の位置情報を8分木で表現したインター参照8分木を生成する。バッファ12828は、生成されたインター参照8分木を保持する。また、例えば、バッファ12828は、8分木(復号点群)毎に保持するデータを初期化してもよい。
 また、三次元データ復号装置12820は、動き補償を、フレーム又は8分木単位で行ってもよいし、ノード(点)毎に行ってもよい。
 また、インター参照点群は、復号対象のフレームと異なる復号済みのフレームに含まれる点群であってもよいし、復号対象のフレームと同じフレームに含まれる復号済みの点群であってもよい。
 制御部12829は、バッファ12822に格納されているイントラ参照ノード、又は、バッファ12828に格納されているインター参照8分木に含まれるインター参照ノードを用いて、エントロピー復号部12821が、対象ノードのエントロピー復号(算術復号)に用いる確率パラメータを制御する。なお、イントラ参照が用いられるか、インター参照が用いられるかは、例えば、ビットストリームに含まれる制御情報に基づき決定されてもよいし、フレーム又は点群単位で予め定められていてもよいし、任意の方法により決定されてもよい。
 例えば、イントラ参照が用いられる場合には、対象ノードの複数の隣接ノード(イントラ参照ノード)の占有状態(ノードに点が含まれるか否か)に基づき、確率パラメータが選択される。また、インター参照が用いられる場合には、インター参照8分木に含まれる、対象ノード及び複数の隣接ノードの少なくとも一つと同じ位置のノード(インター参照ノード)の占有状態に基づき、確率パラメータが選択される。なお、インター参照が選択された場合、インター参照とイントラ参照を組み合わせて確率パラメータが制御されてもよい。
 このように、三次元データ復号装置12820は、イントラ参照ノードの情報に加えてインター参照ノードの情報にも基づいてエントロピー復号の確率パラメータを制御することで、符号化済みの点群を参照しつつ符号化されたビットストリーム(例えば、図39に示す三次元データ符号化装置12800から出力されたビットストリーム)から点群を復号できる。
 なお、三次元データ復号装置12820は、常にインター参照点群を参照する必要はなく、三次元データ符号化装置に合わせて、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば30フレーム毎など)、又は三次元データ符号化装置から通知された任意のタイミングなどで、インター参照点群を格納しているバッファ12825をクリアするなどして、復号対象点群の情報のみに基づいて復号対象点群を復号してもよい。これにより、三次元データ復号装置12820は、ビットストリームの先頭以外の、インター参照点群を参照していない点群からの飛び込み再生開始を実現できる。
 図41は、三次元データ符号化装置12800の変形例である三次元データ符号化装置12800Aのブロック図である。図41に示す三次元データ符号化装置12800Aは、図39に示す三次元データ符号化装置12800に対して、さらに、動き補償部12812を備える。
 動き補償部12812は、点群化部12806で生成された符号化済み点群に動き補償を行うことで、既にバッファ12807に格納されているインター参照点群と位置合わせを行う。バッファ12807は、既に格納しているインター参照点群に動き補償後の符号化済み点群を統合することで、格納するインター参照点群を更新する。これにより、インター参照点群として、複数フレームの点群を重ね合わせた密な点群を用いることができる。また、他の処理は、例えば、三次元データ符号化装置12800と同様である。
 なお、インター参照点群は、符号化対象のフレームと異なる符号化済みのフレームに含まれる点群であってもよいし、符号化対象のフレームと同じフレームに含まれる符号化済みの点群であってもよい。
 このように、三次元データ符号化装置12800Aは、符号化済みの点群を位置合わせして統合することで、インター参照点群の点群密度を向上できる可能性がある。これにより、対象ノードの情報の生起確率の予測精度が向上するので、符号化効率を更に向上できる可能性がある。
 なお、三次元データ符号化装置12800Aは、全ての符号化済み点群をインター参照点群として参照する必要はなく、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば5フレーム毎など)、又は三次元データ復号装置へ通知する任意のタイミングなどで、インター参照点群を格納しているバッファ12807の全て或いは一部をクリアするなどして、対象点群のみ、又は符号化対象点群と一部の符号化済み点群の情報に基づいて対象点群を符号化してもよい。対象点群のみの情報に基づいて符号化が行われた場合、三次元データ復号装置において、ビットストリームの先頭以外の、インター参照点群を参照していない点群からの飛び込み再生開始が可能になる。よって、ビットストリームのランダムアクセス性及びエラー耐性を向上できる可能性がある。また、対象点群と一部の符号化済み点群の情報に基づいて符号化が行われた場合、インター参照点群を保持するバッファ12807の容量を小さくできるので、三次元データ符号化装置及び三次元データ復号装置の実装コストを低減できる可能性がある。
 図42は、三次元データ復号装置12820の変形例である三次元データ復号装置12820Aのブロック図である。図42に示す三次元データ復号装置12820Aは、図40に示す三次元データ復号装置12820に対して、さらに、動き補償部12830を備える。例えば、三次元データ復号装置12820Aは、図41に示す三次元データ符号化装置12800Aで生成されたビットストリームから点群を復号する。
 動き補償部12830は、復号点群に動き補償を行うことで、既にバッファ12825に格納されているインター参照点群と位置合わせを行う。バッファ12825は、既に格納しているインター参照点群に動き補償後の復号点群を統合することで、格納するインター参照点群を更新する。これにより、インター参照点群として、複数フレームの点群を重ね合わせた密な点群を用いることができる。また、他の処理は、例えば、三次元データ復号装置12820と同様である。
 なお、インター参照点群は、復号対象のフレームと異なる復号済みのフレームに含まれる点群であってもよいし、復号対象のフレームと同じフレームに含まれる復号済みの点群であってもよい。
 このように、三次元データ復号装置12820Aは、復号済みの点群を位置合わせして統合する構成を有することで、同様の構成を有する三次元データ符号化装置により符号化されたビットストリーム(例えば、図41に示す三次元データ符号化装置12800Aで生成されたビットストリーム)から点群を復号できる。
 なお、三次元データ復号装置12820Aは、全ての復号済み点群をインター参照点群として参照する必要はなく、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば5フレーム毎など)、又は三次元データ符号化装置から通知された任意のタイミングなどで、インター参照点群を格納しているバッファ12825の全て又は一部をクリアするなどして、復号対象点群のみ、又は復号対象点群と一部の復号済み点群の情報に基づいて復号対象点群を復号してもよい。
 三次元データ復号装置12820Aは、復号対象点群のみの情報に基づいて復号を行う場合、ビットストリームの先頭以外の、インター参照点群を参照していない点群からの飛び込み再生開始を実現できる。よって、ビットストリームのランダムアクセス性及びエラー耐性を向上できる可能性がある。また、三次元データ復号装置は、復号対象点群と一部の復号済み点群の情報に基づいて復号を行う場合、インター参照点群を保持するバッファ12825の容量を小さくできる。よって、三次元データ符号化装置及び三次元データ復号装置の実装コストを低減できる可能性がある。
 図43は、図39及び図41に示す三次元データ符号化装置におけるインター予測の一例を示す図である。なお、図40及び図42に示す三次元データ復号装置におけるインター予測も同様である。
 図43に示すように、例えば、三次元データ符号化装置は、対象点群を含む第1直方体を設定する。三次元データ符号化装置は、第1直方体を平行移動した第2直方体を設定する。第2直方体は、対象点群の符号化において参照する符号化済み点群を含む空間である。また、三次元データ符号化装置は、動きベクトルの情報として、第1直方体と第2直方体の間の平行移動距離のx、y、z成分を、フレーム又は8分木のヘッダ部に記載してもよいし、当該情報をエントロピー符号化したうえで、ノード情報のヘッダ部に記載してもよい。
 なお、ここでは、平行移動により対象点群の符号化において参照する符号化済み点群を含む空間を設定する例を示したが、参照する符号化済み点群を含む空間を一意に設定できる方法であれば、他の方法であってもよい。
 次に、ヘッダ情報の一例について説明する。図44は、ビットストリームに含まれるシーケンスパラメータセット(SPS)のシンタックス例を示す図である。SPSは複数フレーム、複数点群又は複数スライスに共通の制御情報であり、属性情報と位置情報とに共通の制御情報である。
 図44に示すようにSPSは、sps_inter_prediction_enabled_flagと、sps_max_num_ref_frames_minus1とを含む。
 以下、シーケンスパラメータセットのセマンティックス例を示す。1に等しいsps_inter_prediction_enabled_flagは、SPSを参照するビットストリームに対してインター予測の使用が許されていることを指定する。0に等しいsps_inter_prediction_enabled_flagは、SPSを参照するビットストリームに対してインター予測が無効であることを指定する。
 sps_max_num_ref_frames_minus1+1(sps_max_num_ref_frames_minus1に1を加算した値)は、フレームによって参照される参照点群フレームの最大数を指定する。sps_max_num_ref_frames_minus1の値は、0からMaxNumRefFrames-1までの範囲内でなければならない。
 sps_max_num_ref_frames_minus1は、sps_inter_prediction_enabled_flagが1の場合にSPSに含まれ、sps_inter_prediction_enabled_flagが0の場合にはSPSに含まれない。
 図45は、ビットストリームに含まれる位置情報パラメータセット(GPS)のシンタックス例を示す図である。GPSは複数フレーム、複数点群又は複数スライス)に共通の制御情報であり、位置情報の制御情報である。
 図45に示すようにGPSは、gps_inter_prediction_enabled_flagと、gps_num_ref_frames_minus1とを含む。
 以下、位置情報パラメータセットのセマンティックス例を示す。1に等しいgps_inter_prediction_enabled_flagは、GPSを参照するビットストリームの位置情報データ単位の復号処理で、インター予測の使用が許されていることを指定する。0に等しいgps_inter_prediction_enabled_flag、GPSを参照するビットストリームの位置情報データ単位の復号処理で、インター予測が無効であることを指定する。sps_inter_prediction_enabled_flagが0の場合、gps_inter_prediction_enabled_flagは0になる。
 gps_num_ref_frames_minus1+1(gps_num_ref_frames_minus1に1を加算した値)は、GPSを参照するフレームで参照される参照点群フレームの数を指定する。gps_num_ref_frames_minus1の値は、0からsps_max_num_ref_frames_minus1の範囲内でなければならない。
 gps_num_ref_frames_minus1は、gps_inter_prediction_enabled_flagが1の場合にGPSに含まれ、gps_inter_prediction_enabled_flagが0の場合にはGPSに含まれない。
 これらの例に示すように、三次元データ符号化装置は、シーケンスパラメータセット及び位置情報パラメータセットに、例えばsps_inter_prediction_enabled_flag及びgps_inter_prediction_enabled_flagなどのように、インター予測符号化の実施が許されているか否かを示す情報を三次元データ復号装置に通知してもよい。また、三次元データ符号化装置は、インター予測符号化の実施が許されていることを示す情報を三次元データ復号装置に通知する場合に、例えばsps_max_num_ref_frames_minus1及びgps_num_ref_frames_minus1などのように、インター予測符号化において参照するフレームの数又はその最大値などに関する情報を三次元データ復号装置に通知してもよい。
 また、MaxNumRefFramesは、三次元データ復号装置が満足すべき要件として定める固定値であり、例えば6フレームなどの数フレームに設定することが考えられるが、三次元データ符号化装置と三次元データ復号装置の双方で同じ値を用いて処理されていれば、これらより大きな値でも構わない。
 これらの情報が三次元データ符号化装置から三次元データ復号装置へ通知されることで、三次元データ復号装置において処理に使用するメモリの割り当てを最適化できる可能性がある。
 また、上記のインター予測符号化の実施が許されているか否かを示す情報及びインター予測符号化において参照するフレームの数又はその最大値などに関する情報は、SPS及びGPSの両方に格納されてもよいし、一方のみに格納されてもよい。また、これらの情報は、SPS及びGPS以外の制御情報に格納されてもよい。
 なお、図39~図45を用いて開示した装置、処理、及びシンタックスなどを、本開示における他の開示の少なくとも一部と組み合わせて実施してもよい。また、図39~図45を用いて開示した装置、処理、及びシンタックスの一部などを他の開示と組み合わせて実施してもよい。
 また、図39~図45を用いて開示したすべての構成要素がいつも必要とは限らず、各装置は、一部の構成要素のみを備えていてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図46に示す処理を行う。三次元データ符号化装置は、符号化済みの複数の点群に動き補償を行う(S12801)。三次元データ符号化装置は、動き補償後の符号化済みの複数の点群を統合(合成)することで参照点群(例えば、図41に示すインター参照点群)を生成する(S12802)。三次元データ符号化装置は、対象点群のN分木構造(Nは2以上の整数)(例えば、図41に示す対象8分木)を生成する(S12803)。三次元データ符号化装置は、参照点群を用いて対象点群のN分木構造を符号化する(S12804)。なお、Nは、例えば8であるが任意の2のべき乗であってもよいし、それ以外の値であってもよい。
 これによれば、三次元データ符号化装置は、符号化済みの複数の点群を統合した参照点群を用いて対象点群を符号化することで符号化効率を向上できる。
 例えば、三次元データ符号化装置は、対象点群のN分木構造を符号化(S12804)では、参照点群に対象点群に対する動き補償を行い、動き補償後の参照点群のN分木構造(例えば、図41に示すインター参照8分木)を生成し、参照点群のN分木構造を用いて対象点群のN分木構造を符号化する。
 例えば、三次元データ符号化装置は、対象点群のN分木構造を符号化(S12804)では、対象点群のN分木構造をエントロピー符号化し、参照点群に基づき、エントロピー符号化で用いられる確率パラメータを制御する。例えば、三次元データ符号化装置は、参照点群に基づき、複数の確率パラメータから使用する確率パラメータを選択する。
 例えば、三次元データ符号化装置は、対象点群のN分木構造から符号化済みの対象点群(例えば、図41に示す符号化済み点群)を生成し、符号化済みの対象点群に参照点群に対する動き補償を行い、動き補償後の符号化済みの対象点群を参照点群に統合することで、参照点群を更新する。
 例えば、符号化済みの複数の点群の各々は、対象点群と異なるフレームに属する。例えば符号化済みの複数の点群の各々は、対象点群と同じフレームに属する。
 例えば、三次元データ符号化装置は、参照点群を用いた符号化の実施が許されているか否かを示す第1情報(例えば、sps_inter_prediction_enabled_flag、又はgps_inter_prediction_enabled_flag)を、複数点群に共通の制御情報(例えばSPS又はGPS)に格納する。
 例えば、三次元データ符号化装置は、第1情報が参照点群を用いた符号化の実施が許されていることを示す場合、符号化済みの複数の点群の数に関する第2情報(例えば、sps_max_num_ref_frames_minus1、又はgps_num_ref_frames_minus1)を、複数点群に共通の制御情報(例えばSPS又はGPS)に格納する。例えば、第2情報は、統合する符号化済みの点群の数、又は最大数を示す。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図47に示す処理を行う。三次元データ復号装置は、復号済みの複数の点群に動き補償を行う(S12811)。三次元データ復号装置は、動き補償後の復号済みの複数の点群を統合(合成)することで参照点群(例えば、図42に示すインター参照点群)を生成する(S12812)。三次元データ復号装置は、参照点群を用いて、対象点群のN分木構造(Nは2以上の整数)(例えば、図42に示す復号8分木)を復号する(S12813)。つまり、三次元データ復号装置は、対象点群のN分木構造が符号化されることで生成されたビットストリーム(符号化データ)を復号することで対象点群のN分木構造を取得する。三次元データ復号装置は、対象点群のN分木構造から対象点群の復号点群を生成する(S12814)。なお、Nは、例えば8であるが任意の2のべき乗であってもよいし、それ以外の値であってもよい。
 これによれば、三次元データ復号装置は、復号済みの複数の点群を統合した参照点群を用いて対象点群を復号できる。
 例えば、対象点群のN分木構造を復号(S12813)では、三次元データ復号装置は、参照点群に対象点群に対する動き補償を行い、動き補償後の参照点群のN分木構造(例えば、図42に示すインター参照8分木)を生成し、参照点群のN分木構造を用いて対象点群のN分木構造を復号する。
 例えば、対象点群のN分木構造を復号(S12813)では、三次元データ復号装置は、対象点群のN分木構造をエントロピー復号し、参照点群に基づき、エントロピー復号で用いられる確率パラメータを制御する。例えば、三次元データ復号装置は、参照点群に基づき、複数の確率パラメータから使用する確率パラメータを選択する。
 例えば、三次元データ復号装置は、対象点群の復号点群に参照点群に対する動き補償を行い、動き補償後の復号点群を参照点群に統合することで、参照点群を更新する。
 例えば、復号済みの複数の点群の各々は、対象点群と異なるフレームに属する。例えば、復号済みの複数の点群の各々は、対象点群と同じフレームに属する。
 例えば、三次元データ復号装置は、参照点群を用いた復号の実施が許されているか否かを示す第1情報(例えば、sps_inter_prediction_enabled_flag、又はgps_inter_prediction_enabled_flag)を、複数点群に共通の制御情報(例えばSPS又はGPS)から取得する。
 例えば、三次元データ復号装置は、第1情報が参照点群を用いた復号の実施が許されていることを示す場合、復号済みの複数の点群の数に関する第2情報(例えば、sps_max_num_ref_frames_minus1、又はgps_num_ref_frames_minus1)を、複数点群に共通の制御情報(例えばSPS又はGPS)から取得する。例えば、第2情報は、統合する復号済みの点群の数、又は最大数を示す。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態5)
 本実施の形態では、点群(ポイントクラウド)の位置情報に対してインター予測及びイントラ予測のいずれかを切り替えて実行する場合について説明する。
 図48は、本実施の形態に係る三次元データ符号化装置12900のブロック図である。なお、図48では、点群の位置情報(ジオメトリ)の符号化に関する処理部を記載しているが、三次元データ符号化装置12900は、点群の属性情報の符号化等を行う処理部等の他の処理部を備えてもよい。インター予測及びイントラ予測では、符号化済みの点群を参照しつつ符号化対象の点群が符号化される。
 三次元データ符号化装置12900は、グループ化部12901と、バッファ12902と、量子化部12903と、逆量子化部12904と、バッファ12905と、イントラ予測部12906と、バッファ12907と、動き検出補償部12908と、インター予測部12909と、切替部12910と、エントロピー符号化部12911とを備える。
 グループ化部12901は、入力された符号化対象の点群のデータである対象点群から、符号化の一単位である予測木(Predtree)とする点群を抽出して1つのグループとして設定する。なお、入力された対象点群では、点群の位置は例えば三次元座標(例えばx、y、z)で表現される。バッファ12902は、生成された予測木を保持する。例えば、バッファ12902は、予測木毎に保持するデータを初期化してもよい。バッファ12902に保持された予測木(Predtree)に含まれる複数の三次元点の一点一点に対して順番に符号化のための処理が実行される。三次元座標は、直交座標で表現されてもよいし、極座標で表現されてもよい。なお、以下では、直交座標で表現された位置情報を直交座標系の位置情報と呼び、極座標で表現された位置情報を極座標系の位置情報と呼ぶ。
 そして、予測木(Predtree)に含まれる複数の三次元点のそれぞれと、選択された予測点との差分(第1残差信号)が算出される。この第1残差信号は、予測残差とも言う。また、第1残差信号は、第1残差の一例である。
 量子化部12903は、第1残差信号を量子化する。エントロピー符号化部12911は、量子化された第1残差信号をエントロピー符号化して符号化データを生成し、符号化データを含むビットストリームを出力(生成)する。
 逆量子化部12904は、量子化部12903により量子化された第1残差信号を、逆量子化する。逆量子化された第1残差信号は、選択された予測点(1以上の候補点)に基づく予測値に加算されることでイントラ予測及びインター予測に用いられる三次元点(参照点)として復号される。なお、予測値は、上記実施の形態において説明したように、1以上の候補点の位置情報に基づいて算出される。バッファ12905は、復号されたイントラ予測の参照点群を保持する。例えば、バッファ12905は、予測木(対象点群)毎に保持するデータを初期化してもよい。また、バッファ12907は、インター予測の参照点群を保持する。例えば、バッファ12907は、予測木(対象点群)毎に保持するデータを初期化してもよい。
 イントラ予測部12906は、予測に用いるイントラ予測点を、符号化対象の三次元点が含まれる予測木(Predtree)に含まれる複数の三次元点(イントラ予測の参照点群)などのような当該予測木(Predtree)内の情報を参照して、所定の方法により決定する。例えば、イントラ予測部12906は、符号化対象の三次元点の直前(例えば、予測木の親ノードなどの祖先ノード)に逆量子化された2点の三次元点(復号点)を用いて外挿するなどしてイントラ予測点を決定してもよい。
 動き検出補償部12908は、符号化対象の三次元点が含まれる予測木(Predtree)に含まれる複数の三次元点(複数の復号点)に基づいて符号化済みの点群を再生し、符号化済みの点群と符号化対象の点群との間の変位を検出(動き検出)し、検出した変位に基づき符号化済みの点群を補正(動き補償)することで、位置合わせ後のインター予測の参照点群であるインター予測点群を生成する。
 インター予測部12909は、動き補償されたインター予測点群に基づいて、予測に用いるインター予測点を所定の方法により決定する。例えば、インター予測部12909は、インター予測点群から、イントラ予測点に最も近い点をインター予測点として選択してもよいし、イントラ予測点を参照せずに、直前(最後)に符号化した三次元点(例えば、予測木の親ノードなどの祖先ノードに対応する三次元点)の近傍の三次元点(例えば直前に符号化した三次元点に最も近い三次元点)をインター予測点として選択してもよい。
 切替部12910は、イントラ予測点、及び、インター予測点のいずれかを選択することで、予測に用いる予測点を決定する。このように、三次元データ符号化装置12900では、複数の符号化済みの三次元点のうちの1以上の候補点の位置情報が予測点として決定され、予測点に基づいて予測値が算出される。イントラ予測部12906及びインター予測部12909では、予測点(イントラ予測点またはインター予測点)を、符号化対象の三次元点の直前に符号化した三次元点に基づいて決定する。つまり、三次元データ符号化装置12900は、予測値を算出するための1以上の候補点を、複数の符号化済みの三次元点のうちの1以上の基準点に基づいて決定する。1以上の基準点は、符号化対象の三次元点の直前に符号化した三次元点であり、例えば、予測木において、符号化対象の1つの三次元点の親ノード(祖先ノード)に対応する三次元点であってもよい。
 なお、三次元データ符号化装置12900は、後述する図50のフローチャートの手順に従って、イントラ予測点及びインター予測点からいずれか1つを予測点として選択してもよい。また、イントラ予測点とインター予測点とのいずれを予測点に用いるかを選択するための、予測に関する情報(予測情報)は、エントロピー符号化されて各三次元点のヘッダ部に記載されてもよいし、各三次元点とインタリーブされて記載されてもよい。また、動きベクトルなどの動き補償に関する情報は、フレームまたは予測木(Predtree)のヘッダ部に記載されてもよいし、エントロピー符号化されて各三次元点のヘッダ部に記載されてもよいし、各三次元点とインタリーブされて記載されてもよい。また、インター予測の参照点群は、符号化対象のフレームと異なる符号化済みのフレームに含まれる点群であってもよいし、符号化対象のフレームと同じフレームに含まれる符号化済みの点群であってもよい。
 このように、三次元データ符号化装置12900は、イントラ予測に加えてインター予測も用いて符号化対象点の予測を行うことで、エントロピー符号化する第1残差信号の情報量を低減することができ、符号化効率を向上できる可能性がある。
 なお、三次元データ符号化装置12900は、常にインター予測点を参照する必要はなく、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば30フレーム毎など)、或いは、三次元データ復号装置へ通知する任意のタイミングなどで、インター予測の参照点群を格納しているバッファ12907を初期化するなどして、符号化対象の点群の情報のみに基づいて符号化するようにしてもよい。これにより、対応する三次元データ復号装置において、インター予測点を参照していないビットストリームの先頭でない点群からの飛び込み再生開始が可能になり、当該ビットストリームのランダムアクセス性またはエラー耐性を向上できる可能性がある。
 三次元データ符号化装置12900は、入力された符号化対象の点群が直交座標で表現された座標を位置情報として有する場合、直交座標で表現された座標で示される位置情報を符号化する。三次元データ符号化装置12900は、入力された符号化対象の点群が極座標で表現された座標を位置情報として有する場合、極座標で表現された座標で示される位置情報を符号化する。
 図49は、本実施の形態に係る三次元データ復号装置12920のブロック図である。なお、図49では、点群の位置情報(ジオメトリ)の復号に関する処理部を記載しているが、三次元データ復号装置12920は、点群の属性情報の復号等を行う処理部等の他の処理部を備えてもよい。三次元データ復号装置12920は、復号済みの点群を参照しつつ復号対象の点群を復号するインター予測復号を行う。例えば、三次元データ復号装置12920は、図48に示す三次元データ符号化装置12900で生成されたビットストリームを復号する。
 三次元データ復号装置12920は、エントロピー復号部12921と、逆量子化部12922と、バッファ12923と、イントラ予測部12924と、バッファ12925と、動き補償部12926と、インター予測部12927と、切替部12928とを備える。
 三次元データ復号装置12920は、三次元データ符号化装置12900において生成されたビットストリームを取得する。
 エントロピー復号部12921は、入力されたビットストリームを、予測木(Predtree)の三次元点毎にエントロピー復号することで量子化された第1残差信号を生成する。逆量子化部12922は、量子化された第1残差信号を逆量子化して、第1残差信号を再生する。各三次元点の第1残差信号は、各三次元点に対応する予測点に基づく予測値と加算されたのち、復号点として生成(出力)される。つまり、三次元データ復号装置12920は、予測値と予測残差とを加算することで、復号対象の1つの三次元点の位置情報を算出する。
 バッファ12923は、生成された復号点を、イントラ予測の参照点群として保持する。例えば、バッファ12923は、予測木(対象点群)毎に保持するデータを初期化してもよい。また、バッファ12925は、生成された復号点を、インター予測の参照点群として保持する。例えば、バッファ12925は、予測木(対象点群)毎に保持するデータを初期化してもよい。
 イントラ予測部12924は、予測に用いるイントラ予測点を、復号対象の三次元点が含まれる予測木(Predtree)に含まれる複数の三次元点(イントラ予測の参照点群)などのような当該予測木(Predtree)内の情報を参照して、所定の方法により決定する。例えば、イントラ予測部12924は、復号対象の三次元点の直前(例えば、予測木の親ノードなどの祖先ノード)に逆量子化された2点の三次元点(復号点)を用いて外挿するなどしてイントラ予測点を決定してもよい。
 動き補償部12926は、復号対象の三次元点が含まれる予測木(Predtree)に含まれる複数の三次元点(複数の復号点)に基づいて復号済みの点群を再生し、復号済みの点群と復号対象の点群との間の変位を補正(動き補償)することで、位置合わせ後のインター予測の参照点群であるインター予測点群を生成する。
 インター予測部12927は、動き補償されたインター予測点群に基づいて、予測に用いるインター予測点を所定の方法により決定する。例えば、インター予測部12927は、インター予測点群から、イントラ予測点に最も近い点を選択してインター予測点として選択してもよいし、イントラ予測点を参照せずに、直前に復号した三次元点(例えば、予測木の親ノードなどの祖先ノードに対応する三次元点)の近傍の三次元点(例えば直前に復号した三次元点に最も近い三次元点)をインター予測点として選択してもよい。
 切替部12928は、イントラ予測点、及び、インター予測点のいずれかを選択することで、予測に用いる予測点を決定する。このように、三次元データ復号装置12920では、複数の復号済みの三次元点のうちの1以上の候補点の位置情報が予測点として決定され、予測点に基づいて予測値が算出される。イントラ予測部12924及びインター予測部12927では、予測点(イントラ予測点またはインター予測点)を、復号対象の三次元点の直前に復号した三次元点に基づいて決定する。つまり、三次元データ復号装置12920は、予測値を算出するための1以上の候補点を、複数の復号済みの三次元点のうちの1以上の基準点に基づいて決定する。1以上の基準点は、復号対象の三次元点の直前に符号化した三次元点であり、例えば、予測木において、復号対象の1つの三次元点の親ノード(祖先ノード)に対応する三次元点であってもよい。
 なお、三次元データ復号装置12920は、後述する図51のフローチャートの手順に従って、イントラ予測点及びインター予測点からいずれか1つを予測点として選択してもよい。また、三次元データ復号装置12920は、イントラ予測点とインター予測点とのいずれを予測点に用いるかを選択するための、予測に関する情報(予測情報)に基づいて、イントラ予測点とインター予測点とのいずれか1つを予測点として選択してもよい。予測情報は、エントロピー符号化されて各三次元点のヘッダ部に記載されてもよいし、各三次元点とインタリーブされて記載されてもよい。また、動きベクトルなどの動き補償に関する情報は、フレームまたは予測木(Predtree)のヘッダ部に記載されてもよいし、エントロピー符号化されて各点のヘッダ部に記載されてもよいし、各三次元点とインタリーブされて記載されてもよい。このように、予測情報または動き補償に関する情報は、三次元データ復号装置12920へ、対応する三次元データ符号化装置12900から通知されてもよい。また、インター予測の参照点群は、符号化対象のフレームと異なる符号化済みのフレームに含まれる点群であってもよいし、符号化対象のフレームと同じフレームに含まれる符号化済みの点群であってもよい。
 このように、三次元データ復号装置12920は、イントラ予測に加えてインター予測も用いて復号対象点の予測を行うことで、復号済みの点群を参照しつつ符号化されたビットストリーム(例えば、図48の三次元データ符号化装置12900から出力されたビットストリーム)から点群を復号できる。
 なお、三次元データ復号装置12920は、常にインター予測点を参照する必要はなく、所定の時間間隔(例えば1秒毎など)、所定のフレーム間隔(例えば30フレーム毎など)、或いは、対応する三次元データ符号化装置12900から通知される任意のタイミングなどで、インター予測の参照点群を格納しているバッファ12925を初期化するなどして、復号対象の点群の情報のみに基づいて復号するようにしてもよい。これにより、三次元データ復号装置12920は、インター予測点を参照していないビットストリームの先頭でない点群からの飛び込み再生開始が可能になり、当該ビットストリームのランダムアクセス性やエラー耐性を向上できる可能性がある。
 三次元データ復号装置12920は、ビットストリームが直交座標で表現された座標で示される位置情報が符号化された符号化データを有する場合、直交座標で表現された座標で示される位置情報を復号する。三次元データ復号装置12920は、ビットストリームが極座標で表現された座標で示される位置情報が符号化された符号化データを有する場合、極座標で表現された座標で示される位置情報を復号する。
 図50は、三次元データ符号化装置12900における、予測木(Predtree)の各三次元点を符号化する手順の一例を示すフローチャートである。
 この例では、三次元データ符号化装置12900は、まずイントラ予測の参照点群からイントラ予測点を決定する(S12901)。三次元データ符号化装置12900は、イントラ予測点を、例えば、既に説明した実施の形態に開示されている、予測木を用いて予測点を決定する方法を用いて決定してもよい。例えば、三次元データ符号化装置12900は、複数の符号化済みの三次元点を用いて予測木を生成し、予測木に基づいて複数の符号化済みの三次元点から1以上の候補点を選択してもよい。三次元データ符号化装置12900は、上記の方法のうち少なくとも一つの方法により決定される少なくとも一つのイントラ予測点のうち、符号量が最も少なくなる予測点をイントラ予測点として決定してもよい。また、三次元データ符号化装置12900は、上記の方法のうち少なくとも一つの方法により決定される少なくとも一つのイントラ予測点のうち、座標残差の絶対値和(または二乗和)が最も小さい予測点をイントラ予測点として決定してもよい。
 次に、三次元データ符号化装置12900は、イントラ予測関連パラメータを出力する(S12902)。ステップS12901で決定するイントラ予測点の決定方法の候補が2つ以上ある場合、三次元データ符号化装置12900は、選択した決定方法の候補を示す情報を、イントラ予測関連パラメータとしてビットストリームに出力してもよい。
 次に、三次元データ符号化装置12900は、インター予測点を、インター予測点群から抽出された少なくとも一つの候補点を参照して決定する。例えば、三次元データ符号化装置12900は、一つの候補点をインター予測点として決定してもよいし、複数の候補点の座標の平均値を座標として有する予測点をインター予測点として決定してもよい。或いは、三次元データ符号化装置12900は、イントラ予測点と少なくとも一つの候補点との座標の平均値を座標として有する予測点をインター予測点として決定してもよい。
 ここでは、三次元データ符号化装置12900は、少なくとも一つの候補点としてイントラ予測点の近傍に位置している点を探索してもよい(S12903)。
 次に、三次元データ符号化装置12900は、決定した少なくとも一つのインター予測点のそれぞれに対して、イントラ予測点に近い順に小さいインデックス値を付与してもよい(S12904)。
 次に、三次元データ符号化装置12900は、探索が終了したか否かを判定し(S12905)、探索が終了した場合(S12905でYes)、次のステップS12906に進み、探索が終了していない場合(S12905でNo)、ステップS12903に戻る。探索が終了したことは、所定点数のインター予測点を発見したことで判定されてもよいし、所定範囲の点群の全てを探索したことで判定されてもよいし、所定点数のインター予測点を発見したか、所定範囲の点群の全てを探索したかのいずれかを満たしたことで判定されてもよい。
 次に、三次元データ符号化装置12900は、予測方法を決定する(S12906)。具体的には、三次元データ符号化装置12900は、予測点を決定する方法をイントラ予測にするか、インター予測にするかを決定する。つまり、三次元データ符号化装置12900は、イントラ予測点を予測点として決定するか、インター予測点を予測点として決定するかを決定する。例えば、三次元データ符号化装置12900は、イントラ予測点及びインター予測点のうち、符号量が最も少なくなる予測点の予測方法に決定してもよい。また、三次元データ符号化装置12900は、イントラ予測点及びインター予測点のうち、座標残差の絶対値和(または二乗和)が最も小さい予測点の予測方法に決定してもよい。
 三次元データ符号化装置12900は、決定した予測方法のモードが、予測方法がインター予測であることを示すインターモードであるか、予測方法がイントラ予測であることを示すイントラ予測モードであるかを判定する(S12907)。
 三次元データ符号化装置12900は、決定した予測方法がインター予測である場合(S12907でインターモード)、インター予測点を予測点として決定したことを示す識別情報(例えば、フラグ)を、ビットストリームに出力する(S12908)。
 次に、三次元データ符号化装置12900は、インター予測点の座標の決定に使用される候補点の数に関する情報、及び、使用される各候補点のインデックス値などを、インター予測関連パラメータとしてビットストリームに出力する(S12909)。インデックス値は、予測値を決定するために用いられる1以上の候補点に割り当てられていてもよい。
 また、三次元データ符号化装置12900は、決定した予測方法がイントラ予測である場合(S12907でイントラモード)、イントラ予測点を予測点として決定したことを示す識別情報(例えば、フラグ)を、ビットストリームに出力する(S12911)。なお、ステップS12908及びステップS12911における識別情報は、インター予測点を予測点として決定したか、イントラ予測点を予測点として決定したかを示す情報である。
 ステップS12909またはステップS12911の後で、三次元データ符号化装置12900は、決定した予測方法により求めた予測点を参照して符号化対象の三次元点の座標情報を符号化する(S12910)。
 このように、三次元データ符号化装置12900は、インター予測点群とイントラ予測点とを参照して少なくとも一つのインター予測点を決定し、これらのイントラ予測点及びインター予測点から予測点を求める方法を決定し、予測点を参照して符号化対象の三次元点の位置情報(座標情報)を符号化する。
 なお、S12903では、イントラ予測点を参照せずに、直前に符号化した三次元点(例えば、予測木の親ノードなどの祖先ノードに対応する三次元点)など、イントラ予測関連パラメータに依らずに一意に決定される三次元点の近傍において、インター予測点を探索するようにしてもよい。この場合は、S12902をS12901の直後では実施せず、S12911の直後にS12902を実施するようにしてもよい。
 図51は、三次元データ復号装置12920における、予測木(Predtree)の各三次元点を復号する手順の一例を示すフローチャートである。図51は、図50の符号化する手順に従って生成されたビットストリームの復号に対応している。つまり、ビットストリームは、符号化された第1残差信号(予測残差)と、予測値の算出に用いられる1つの候補点に割り当てられたインデックス値とを含む。
 この例では、三次元データ復号装置12920は、ビットストリームから、まずイントラ予測関連パラメータを取得する(S12921)。
 次に、三次元データ復号装置12920は、取得したイントラ予測関連パラメータに基づいてイントラ予測点を決定する(S12922)。具体的には、三次元データ復号装置12920は、図50のステップS12901と同様の方法でイントラ予測点を決定する。三次元データ復号装置12920は、対応する三次元データ符号化装置12900からイントラ予測関連パラメータが通知され、イントラ予測関連パラメータに応じてイントラ予測点を決定する。イントラ予測関連パラメータは、ステップS12921で取得され、イントラ予測点を決定する少なくとも一つの方法を指定する情報と、この情報に付随するパラメータとを含む。
 次に、三次元データ復号装置12920は、ビットストリームから、予測方法のモードを示す識別情報を取得する(S12923)。
 次に、三次元データ復号装置12920は、取得した識別情報が、予測方法がインター予測であることを示すインターモードを示すか、予測方法がイントラ予測であることを示すイントラ予測モードを示すかを判定する(S12924)。
 三次元データ復号装置12920は、予測方法がインター予測である場合(ステップS12924でインターモード)、ビットストリームからインター予測関連パラメータを取得する(S12925)。
 次に、三次元データ復号装置12920は、インター予測点を決定するための処理(S12926~S12929)を実行する。具体的には、三次元データ復号装置12920は、図50のステップS12903~S12905と同様の方法でインター予測点を決定する。例えば、三次元データ復号装置12920は、インター予測点を、インター予測点群から抽出された少なくとも一つの候補点を参照して決定する。例えば、三次元データ復号装置12920は、一つの候補点をインター予測点として決定してもよいし、複数の候補点の座標の平均値を座標として有する予測点をインター予測点として決定してもよい。或いは、三次元データ復号装置12920は、イントラ予測点と少なくとも一つの候補点との座標の平均値を座標として有する予測点をインター予測点として決定してもよい。
 ここでは、三次元データ復号装置12920は、少なくとも一つの候補点としてイントラ予測点の近傍に位置している点を探索してもよい(S12926)。
 次に、三次元データ復号装置12920は、決定した少なくとも一つのインター予測点のそれぞれに対して、イントラ予測点に近い順に小さいインデックス値を付与してもよい(S12927)。
 次に、三次元データ復号装置12920は、探索が終了したか否かを判定し(S12928)、探索が終了した場合(S12928でYes)、次のステップS12929に進み、探索が終了していない場合(S12928でNo)、ステップS12926に戻る。探索が終了したことは、所定点数のインター予測点を発見したことで判定されてもよいし、所定範囲の点群の全てを探索したことで判定されてもよいし、所定点数のインター予測点を発見したか、所定範囲の点群の全てを探索したかのいずれかを満たしたことで判定されてもよい。
 次に、三次元データ復号装置12920は、インター予測点群とイントラ予測点とを参照しつつインター予測関連パラメータに基づいてインター予測点を決定する(S12929)。例えば、三次元データ復号装置12920は、インター予測関連パラメータに含まれる、インター予測点の座標の決定に使用される候補点の数に関する情報、及び、使用される各候補点に割り当てられたインデックス値に基づいて、インター予測点の座標の決定に使用される候補点を特定し、特定した候補点を用いてインター予測点の座標を決定することで、インター予測点を決定する。つまり、三次元データ復号装置12920は、ビットストリームに含まれるインデックス値に基づいて、複数の復号済みの三次元点から1つの候補点を選択する。
 三次元データ復号装置12920は、ステップS12929の後、または、ステップS12924でイントラモードである場合、指定された予測方法により求めた予測点を参照して復号対象の三次元点の位置情報(座標情報)を復号する(S12930)。
 このように、三次元データ復号装置12920は、予測方法がインター予測である場合、インター予測点を参照して復号対象の点の座標情報を復号し、予測方法がイントラ予測である場合、イントラ予測点を参照して復号対象の点の座標情報を復号する。
 なお、S12926では、イントラ予測点を参照せずに、直前に復号した三次元点(例えば、予測木の親ノードなどの祖先ノードに対応する三次元点)など、イントラ予測関連パラメータに依らずに一意に決定される三次元点の近傍において、インター予測点を探索するようにしてもよい。この場合は、S12921及びS12922をS12923の直前では実施せず、S12924でイントラモードと判定された場合にS12921及びS12922を実施するようにしてもよい。
 図52は、本実施の形態の変形例に係る三次元データ符号化装置12930のブロック図である。なお、図52では、点群の位置情報(ジオメトリ)の符号化に関する処理部を記載しているが、三次元データ符号化装置12930は、点群の属性情報の符号化等を行う処理部等の他の処理部を備えてもよい。インター予測及びイントラ予測では、符号化済みの点群を参照しつつ符号化対象の点群が符号化される。三次元データ符号化装置12930は、その構成及び動作において、図48の三次元データ符号化装置12900と比較して、直交座標で表現された位置情報を有する点群を極座標で表現された位置情報に変換して符号化を行うための座標変換部12931を有する点と、極座標で表現された位置情報の予測残差(第1残差信号)の量子化を行わない点と、直交座標と極座標との間の変換で生じる誤差に相当する直交座標の第2残差信号を量子化する点とが異なる。一方で、三次元データ符号化装置12930は、その構成及び動作において、三次元データ符号化装置12900と比較して、上記の異なる点以外の点が同じである。
 三次元データ符号化装置12930は、座標変換部12931と、グループ化部12932と、バッファ12933と、バッファ12934と、イントラ予測部12935と、バッファ12936と、動き検出補償部12937と、インター予測部12938と、切替部12939と、座標変換部12940と、バッファ12941と、量子化部12942と、エントロピー符号化部12943とを備える。
 座標変換部12931は、入力された符号化対象の点群のデータである対象点群の位置情報の座標系を直交座標系から極座標系に変換する。つまり、座標変換部12931は、符号化対象の1つの三次元点の直交座標系の位置情報の座標系を変換することで極座標系の位置情報を生成する。極座標に変換された符号化対象の点群はグループ化部12932に出力される。
 グループ化部12932は、極座標に変換された符号化対象の点群である対象点群から、符号化の一単位である予測木(Predtree)とする点群を抽出して1つのグループとして設定する。バッファ12933は、生成された予測木を保持する。例えば、バッファ12933は、予測木毎に保持するデータを初期化してもよい。バッファ12933に保持された予測木(Predtree)に含まれる複数の三次元点の一点一点に対して順番に符号化のための処理が実行される。
 バッファ12933に保持された予測木に含まれる複数の三次元点のそれぞれ(符号化対象の点)と、当該符号化対象の点に対して選択された予測点との間の差分(第1残差信号)が算出される。この第1残差信号は、極座標で表現された位置情報の残差信号である。第1残差信号は、予測残差とも言う。この第1残差信号は、第1残差の一例である。バッファ12933に保持される複数の三次元点の位置情報は極座標系に変換されているため、第1残差は、変換後の極座標系の位置情報と予測値との差分である。
 そして、第1残差信号と予測点とは加算されて、符号化処理済みの復号点としてバッファ12934、12936に保持される。バッファ12934、12936に保持される復号点の位置情報は、極座標により表現される。この点で、バッファ12934、12936の機能は、バッファ12905、12907の機能と異なるが、それ以外の機能は、同じである。
 また、イントラ予測部12935、動き検出補償部12937、インター予測部12938、及び切替部12939も同様に、処理対象となる三次元点の位置情報が極座標で表現されている点においてイントラ予測部12906、動き検出補償部12908、インター予測部12909、及び切替部12910とその機能が異なるが、それ以外の機能は同じである。
 座標変換部12940は、バッファ12934、12936に保持される復号点と同じ復号点を取得し、取得した復号点の位置情報の座標系を極座標系から直交座標系に変換する。つまり、座標変換部12940は、座標変換部12931による変換後の極座標系の位置情報の座標系を逆変換することで直交座標系の位置情報を生成する。
 バッファ12941は、三次元データ符号化装置12930に入力された、直交座標で表現された三次元点の位置情報を保持する。
 そして、入力された直交座標系の位置情報と、座標変換部12940において極座標系から直交座標系に座標系が変換された直交座標系の位置情報との差分(第2残差信号)が算出される。この第2残差信号は、第2残差の一例である。つまり、第2残差信号は、座標変換部12931において座標変換が行われていない直交座標系の位置情報と、一度極座標に変換された後にさらに直交座標系に逆変換された後の位置情報との差分であり、座標変換により発生する変換誤差である。
 量子化部12942は、第2残差信号を量子化する。
 エントロピー符号化部12943は、第1残差信号と、量子化された第2残差信号とをエントロピー符号化して符号化データを生成し、符号化データを含むビットストリームを出力する。
 このように、三次元データ符号化装置12930は、三次元点の位置情報の座標系を直交座標系から極座標系に変換して、極座標系の位置情報を符号化する。これにより、LiDARなどのようにセンサ位置を中心に周囲の物体の三次元位置を取得して生成された点群を符号化する際に、符号化対象の点の予測精度を向上させることができ、符号化効率を向上させることができる可能性がある。
 図53は、本実施の形態の変形例に係る三次元データ復号装置12950のブロック図である。なお、図53では、点群の位置情報(ジオメトリ)の復号に関する処理部を記載しているが、三次元データ復号装置12950は、点群の属性情報の復号等を行う処理部等の他の処理部を備えてもよい。三次元データ復号装置12950は、復号済みの点群を参照しつつ復号対象の点群を復号するインター予測復号を行う。例えば、三次元データ復号装置12950は、図52に示す三次元データ符号化装置12930で生成されたビットストリームを復号する。三次元データ復号装置12950は、基本的な構成及び動作において、図49の三次元データ復号装置12920と比較して、第1残差信号(予測残差)の逆量子化を行わない点と、直交座標と極座標との間の変換で生じる変換誤差に相当する直交座標の第2残差信号をエントロピー復号して逆量子化して再生し、対応する極座標の復号点から直交座標に変換された点に加算して直交座標の復号点として出力する点とが異なる。一方で、三次元データ復号装置12950は、三次元データ復号装置12920と比較して、上記の異なる点以外の点が同じである。
 三次元データ復号装置12950は、エントロピー復号部12951と、バッファ12952と、イントラ予測部12953と、バッファ12954と、動き補償部12955と、インター予測部12956と、切替部12957と、座標変換部12958と、逆量子化部12959とを備える。
 エントロピー復号部12951は、入力されたビットストリームを、予測木(Predtree)の三次元点毎にエントロピー復号することで第1残差信号と、量子化された第2残差信号とを生成する。各三次元点の第1残差信号は、各三次元点に対応する予測点に基づく予測値と加算されたのち、極座標で表現された復号点として生成(出力される)。
 バッファ12952は、生成された復号点を、イントラ予測の参照点群として保持する。例えば、バッファ12952は、予測木(対象点群)毎に保持するデータを初期化してもよい。また、バッファ12954は、生成された復号点を、インター予測の参照点群として保持する。例えば、バッファ12954は、予測木(対象点群)毎に保持するデータを初期化してもよい。バッファ12952、12954に保持される復号点の位置情報は、極座標により表現される。この点で、バッファ12952、12954の機能は、バッファ12923、12925の機能と異なるが、それ以外の機能は、同じである。
 また、イントラ予測部12953、動き補償部12955、インター予測部12956、及び切替部12957も同様に、処理対象となる三次元点の位置情報が極座標で表現されている点においてイントラ予測部12924、動き補償部12926、インター予測部12927、及び切替部12928とその機能が異なるが、それ以外の機能は同じである。
 座標変換部12958は、バッファ12952、12954に保持される復号点と同じ復号点を取得し、取得した復号点の位置情報の座標系を極座標系から直交座標系に変換する。
 逆量子化部12959は、量子化された第2残差信号を逆量子化して、第2残差信号を再生する。
 座標変換部12958により座標変換されて得られた直交座標系の位置情報と、逆量子化部12959により逆量子化されて再生された第2残差信号とは、加算されたのち、直交座標系の位置情報を含む復号点として生成(出力)される。
 このように、三次元データ復号装置12950は、極座標系の位置情報を有する復号点の座標系を極座標系から直交座標系に変換して、直交座標系の位置情報と極座標系の位置情報との間の変換で生じる誤差に相当する直交座標の第2残差信号に加算する手段を備える。これにより、三次元データ復号装置12950は、極座標において符号化済みの点群を参照しつつ符号化されたビットストリーム(例えば、図52の三次元データ符号化装置12930から出力されたビットストリーム)から点群を復号できる。
 図54は、ジオメトリパラメータセット(GPS)のシンタックスの一例である。このシンタックスは、図48~図53を用いて説明した三次元データ符号化装置12900、12930及び三次元データ復号装置12920、12950において用いられる。
 これらの例に示すように、GPSにおいて、例えばgps_alt_coordinates_flagのように、各点の復号処理において極座標など直交座標と別の座標系を用いるか否かを示す情報を通知してもよい。gps_alt_coordinates_flagは、その値が1に設定されている場合(つまり、gps_alt_coordinates_flag=1の場合)、GPSを参照するビットストリームの位置情報のデータユニットの復号処理において、代替座標系(例えば、極座標系)が使用されることを示す。gps_alt_coordinates_flagは、その値が0に設定されている場合(つまり、gps_alt_coordinates_flag=0の場合)、GPSを参照するビットストリームの位置情報のデータユニットの復号処理において、代替座標系が使用されないことを示す。つまり、gps_alt_coordinates_flagは、符号化データが極座標系で算出された第1符号化データを含むか否かを示してもよい。なお、gps_alt_coordinates_flagは、符号化データが極座標系で算出された第1符号化データを含むか否かを示す第1識別情報の一例である。
 また、各三次元点の復号処理において極座標系などのように直交座標系とは別の座標系(代替座標系)を用いる場合(例えば、gps_alt_coordinates_flag=1の場合など)に、例えばgps_coordinate_trans_enabled_flagのように、各三次元点を三次元データ復号装置から出力する前に復号点の座標変換(例えば極座標系から直交座標系に変換するなど)を実施するか否かを示す座標変換情報を通知してもよい。gps_alt_coordinates_flag=1である場合(つまり、第1識別情報が、符号化データが第1符号化データを含むことを示す場合)とは、具体的には、予測値の算出に用いられる1以上の候補点の位置情報、及び、第1残差の算出に用いられる符号化対象の1つの三次元点の位置情報が、極座標系の位置情報である場合である。この場合、ビットストリームは、gps_coordinate_trans_enabled_flagを含む。gps_coordinate_trans_enabled_flagは、復号において極座標系の位置情報を出力するか、直交座標系の位置情報を出力するかを示す第2識別情報の一例である。また、gps_alt_coordinates_flag=1である場合、符号化において、第1残差を量子化し、量子化された第1残差を符号化する三次元データ符号化装置12900では、極座標系の位置情報が符号化される。このため、gps_alt_coordinates_flag=1であり、かつ、gps_coordinate_trans_enabled_flag=0の場合、極座標系の位置情報が符号化されると言え、gps_coordinate_trans_enabled_flag=0は復号において極座標系の位置情報を出力することを示していると言える。なお、極座標系の位置情報を出力するか否かは、他のフラグ(識別情報)により切り替えられてもよい。
 なお、gps_alt_coordinates_flag=0である場合(つまり、第1識別情報が、符号化データが第1符号化データを含まないことを示す場合)、ビットストリームは、gps_coordinate_trans_enabled_flag(第2識別情報)を含まなくてもよい。
 gps_coordinate_trans_enabled_flagは、その値が1に設定されている場合(つまり、gps_coordinate_trans_enabled_flag=1の場合)、GPSを参照するビットストリームの位置情報のデータユニットの復号処理において、座標系を他の座標系に変換することを示す。このため、gps_alt_coordinates_flag=1であり、かつ、gps_coordinate_trans_enabled_flag=0の場合、直交座標系の位置情報が復号されることになるため、gps_coordinate_trans_enabled_flag=0は復号において直交座標系の位置情報を出力することを示していると言える。
 gps_coordinate_trans_enabled_flagは、その値が0に設定されている場合(つまり、gps_coordinate_trans_enabled_flag=0の場合)、GPSを参照するビットストリームの位置情報のデータユニットの復号処理において、座標系を他の座標系に変換しないことを示す。なお、gps_coordinate_trans_enabled_flagが示されていない場合、gps_coordinate_trans_enabled_flagの値が0に設定されているとみなされてもよい。
 なお、各三次元点を三次元データ復号装置から出力する前に復号点の座標変換を行わない場合(例えば、gps_coordinate_trans_enabled_flag=0の場合)、図48に示す三次元データ符号化装置12900と図49に示す三次元データ復号装置12920とにより、点群の符号化及び復号が実施されてもよい。また、各三次元点を三次元データ復号装置から出力する前に復号点の座標変換を行う場合(例えば、gps_coordinate_trans_enabled_flag=1の場合)、図52に示す三次元データ符号化装置12930と図53に示す三次元データ復号装置12950とにより、点群の符号化及び復号が実施されてもよい。
 gps_alt_coordinates_flag及びgps_coordinate_trans_enabled_flagが三次元データ符号化装置から三次元データ復号装置へ通知されることで、各三次元点の符号化及び復号において極座標など直交座標と別の座標系を用いる場合(例えば、gps_alt_coordinates_flag=1の場合など)においても、符号化対象の点群に応じて図48に示す三次元データ符号化装置12900と図52に示す三次元データ符号化装置12930とを切り替えることが可能となり、これにより符号化効率を向上できる可能性がある。
 なお、図54では、GPSのシンタックスを例示したが、gps_alt_coordinates_flag及びgps_coordinate_trans_enabled_flagは、SPSに含まれていてもよいし、データユニットのヘッダに含まれていてもよいし、他の制御情報にメタデータとして含まれていてもよい。
 図55は、各三次元点(PredtreeのNode)のシンタックスの一例である。このシンタックスは、図48~図54を用いて説明した三次元データ符号化装置12900、12930及び三次元データ復号装置12920、12950において用いられる。
 この例では、三次元データ符号化装置12900、12930は、まず符号化対象または復号対象の三次元点におけるイントラ予測点の求め方を示す識別情報(pred_mode)を三次元データ復号装置12920、12950へ通知する。加えて、三次元データ符号化装置12900、12930は、識別情報(pred_mode)に応じて、イントラ予測点を決定するための付加情報を三次元データ復号装置12920、12950へ通知してもよい。
 次に、符号化中の予測木(predtree)が参照しているGPSにおいてインター予測が有効な場合(例えば、gps_inter_prediction_enabeled_flag=1の場合)には、三次元データ符号化装置12900、12930は、符号化対象または復号対象の三次元点における予測方法がイントラ予測であるか否(すなわち、インター予測である)かを示す情報(intra_pred_flag)を三次元データ復号装置12920、12950へ通知してもよい。なお、gps_inter_prediction_enabeled_flag=0の場合、intra_pred_flagの値を1(イントラ予測)に設定するようにしてもよい。符号化対象または復号対象の三次元点における予測方法がインター予測(例えば、intra_pred_flag=0)の場合、符号化対象または復号対象の三次元点におけるインター予測点の求め方を示す識別情報(inter_pred_mode)を通知してもよい。更に、三次元データ符号化装置12900、12930は、識別情報(inter_pred_mode)に応じて、インター予測点の決定の際に参照するインター予測点群中の候補点数をNumRefPointsに設定し、各候補点のインデックス(inter_ref_point_idx)をNumRefPoints個だけ三次元データ復号装置12920、12950へ通知してもよい。なお、インター予測点の決定の際に参照するインター予測点群中の候補点が複数指定された場合には、指定された複数の候補点の座標の平均値をインター予測点の座標としてもよい。また、三次元データ符号化装置12900、12930は、候補点のインデックスの通知を省略して最も小さいインデックスなど特定の候補点を選択するinter_pred_modeを用意してもよい。例えば、三次元データ符号化装置12900、12930は、inter_pred_modeが当該モードを示しているか否かの判定処理を設けたり、NumRefPointsの値を0に設定したりするなどして、候補点のインデックスの通知を省略してもよい。また、インター予測点が一意に定まる方法に必要な情報が通知されていれば実施可能であり、例えばinter_pred_modeの代わりに、インター予測点の決定の際に参照するインター予測点群中の候補点数を通知するようにしてもよい。
 なお、直前に符号化または復号した三次元点(例えば、予測木の親ノードなどの祖先ノードに対応する三次元点)など、イントラ予測点の求め方を示す識別情報(pred_mode)に依らずに一意に決定される三次元点の近傍において、インター予測点群中の候補点を探索する場合、符号化対象または復号対象の三次元点における予測方法がイントラ予測(例えば、intra_pred_flag=1)の場合に限って、イントラ予測点の求め方を示す識別情報(pred_mode)やイントラ予測点を決定するための付加情報を、三次元データ復号装置12920、12950へ通知してもよい。
 次に、三次元データ符号化装置12900、12930は、符号化対象または復号対象の点の位置情報(座標値)と予測点の位置情報(座標値)の第1差分(1st_residual_value)を通知してもよい。各三次元点を三次元データ復号装置12920、12950から出力する前に復号点の座標変換を行う場合(例えば、gps_coordinate_trans_enabled_flag=1の場合)、極座標などの別の座標系における復号結果を、直交座標などの元の座標系へ座標変換した位置情報(座標値)と、元の位置情報(座標値)との第2差分(2nd_residual_value)を通知してもよい。なお、これらの差分情報を一つのシンタックスとして通知する例を示したが、正負情報と絶対値情報のように複数のシンタックスに分解して通知するようにしてもよい。
 これらの情報が三次元データ符号化装置12900、12930から三次元データ復号装置12920、12950へ通知されることで、三次元データ符号化装置12900、12930と三次元データ復号装置12920、12950とで一致した予測処理を実施可能となり、三次元データ復号装置12920、12950において、対応する三次元データ符号化装置12900、12930と不整合を生じることなく処理対象の三次元点を復号できる。
 図48~図55を用いて開示した装置または処理、シンタックスなどは、他の実施の形態の少なくとも一部と組み合わせて実施されてもよい。また、図48~図55を用いて開示した装置または処理、シンタックスの一部などは、他の実施の形態と組み合わせて実施してもよい。また、図48~図55を用いて開示したすべての構成要素は、全て必要とは限らず、一部の構成要素のみを備えていてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図56に示す処理を行う。三次元データ符号化装置は、複数の符号化済みの三次元点のうちの1以上の候補点の位置情報に基づいて予測値を決定する(S12931)。三次元データ符号化装置は、複数の三次元点のうちの符号化対象の1つの三次元点の位置情報と、予測値との差分である予測残差を算出する(S12932)。三次元データ符号化装置は、予測残差を符号化することで符号化データを生成する(S12933)。三次元データ符号化装置は、符号化データを含むビットストリームを生成する(S12934)。三次元データ符号化装置は、ステップS12931において、1以上の候補点を、複数の符号化済みの三次元点のうちの1以上の基準点に基づいて決定する。
 例えば、複数の三次元点は予測木を構成している。1以上の基準点は、符号化対象の1つの三次元点の親ノードに対応する三次元点を含む。
 これによれば、予測値の算出に用いられる1以上の候補点を、予測木における、符号化対象の1つの三次元点の親ノードに基づいて決定するため、予測残差を小さくすることができ、符号化効率を向上させることができる。
 例えば、1以上の候補点には、インデックス値が割り当てられている。ビットストリームは、さらに、予測値の決定に用いる候補点に割り当てられたインデックス値を含む。
 このため、三次元データ復号装置は、インデックス値に基づいて候補点を容易に特定することができる。よって、三次元データ復号装置における処理負荷を低減することができる。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図57に示す処理を行う。三次元データ復号装置は、符号化された予測残差と、予測値の算出に用いられる1つの候補点に割り当てられたインデックス値とを含むビットストリームを取得する(S12941)。三次元データ復号装置は、インデックス値に基づいて、複数の復号済みの三次元点のうちの1以上の基準点に基づいて1つの候補点を決定する(S12942)。三次元データ復号装置は、決定した1つの候補点の位置情報に基づいて予測値を算出する(S12943)。三次元データ復号装置は、符号化された予測残差を復号することで予測残差を算出する(S12944)。三次元データ復号装置は、予測値と予測残差とを加算することで、復号対象の1つの三次元点の位置情報を算出する(S12945)。
 これによれば、複数の符号化済みの三次元点のうちの1以上の基準点に基づいて1つの候補点を決定し、決定した1つの候補点の位置情報に基づく予測値を用いて復号対象の三次元点を復号することができる。
 例えば、複数の三次元点は予測木を構成している。1以上の基準点は、符号化対象の1つの三次元点の親ノードに対応する三次元点を含む。
 例えば、1以上の候補点には、インデックス値が割り当てられている。ビットストリームは、さらに、予測値の決定に用いる候補点に割り当てられたインデックス値を含む。
 このため、三次元データ復号装置は、インデックス値に基づいて候補点を容易に特定することができる。よって、三次元データ復号装置における処理負荷を低減することができる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 図58は、符号化処理における座標系の切り替え処理を示すフローチャートである。図58のフローチャートでは、図48で説明した三次元データ符号化装置12900を用いて符号化を行うか、図52で説明した三次元データ符号化装置12930を用いて符号化を行うかの切り替えを行う。また、図58のフローチャートでは、直交座標系の位置情報の符号化を行うか、極座標系の位置情報の符号化を行うかの切り替えも行う。
 まず、三次元データ符号化装置は、入力点群の座標系を確認し、符号化処理及び復号処理の座標系を決定する(S13001)。つまり、三次元データ符号化装置は、符号化処理及び復号処理の対象となる位置情報の座標系を決定する。
 次に、三次元データ符号化装置は、入力点群の座標系と、決定した符号化処理及び復号処理の座標系とが同一であるか否かを判定する(S13002)。
 三次元データ符号化装置は、入力点群の座標系と、決定した符号化処理及び復号処理の座標系とが同一であると判定した場合(S13002でYes)、gps_coordinate_trans_enabled_flag=0に設定し、座標変換せずに、決定した座標系で点群の位置情報を符号化することを決定する(S13003)。
 三次元データ符号化装置は、入力点群の座標系と、決定した符号化処理及び復号処理の座標系とが同一でないと判定した場合(S13002でNo)、gps_coordinate_trans_enabled_flag=1に設定し、座標変換して、決定した座標系で点群の位置情報を符号化することを決定する(S13004)。
 なお、図52で説明した三次元データ符号化装置12930では、入力点群の座標系が極座標であり、符号化処理及び復号処理の座標系が直交座標である場合を一例として示しているが、入力点群の座標系が直交座標であり、符号化処理及び復号処理の座標系が極座標であってもよい。この場合、図52では、極座標系を直交座標系と読み替え、かつ、直交座標系を極座標系と読み替えることで説明できる。
 次に、三次元データ符号化装置は、符号化の座標系が極座標系であるか否(直交座標系)かを判定する(S13005)。
 三次元データ符号化装置は、符号化の座標系が極座標系であると判定した場合(S13005でYes)、gps_alt_coordinates_flag=1に設定し、点群の位置情報を極座標系で符号化する(S13006)。
 三次元データ符号化装置は、符号化の座標系が極座標系でない(つまり、直交座標系である)と判定した場合(S13005でNo)、gps_alt_coordinates_flag=0に設定し、点群の位置情報を直交座標系で符号化する(S13007)。
 ここで、上記処理によりシンタックスを決定する場合、図54を用いて説明したgps_coordinate_trans_enabled_flag及びgps_alt_coordinates_flagは、依存関係なく独立に示すシンタックス構成としてもよい。つまり、gps_coordinate_trans_enabled_flagは、gps_alt_coordinates_flagの有無または、gps_alt_coordinates_flagの値に関わらず、GPSに示されていてもよい。
 また、上記処理において、ステップS13002~S13004の処理1と、ステップS13005~S13007の処理2を入れ替え、処理2においてgps_alt_coordinates_flag=1の場合に処理1を実施する構成とすることにより、図54のシンタックス構成を採用してもよい。
 図59は、復号処理における座標系の切り替え処理を示すフローチャートである。図59のフローチャートでは、図49で説明した三次元データ復号装置12920を用いて復号を行うか、図53で説明した三次元データ復号装置12950を用いて復号を行うかの切り替えを行う。また、図59のフローチャートでは、直交座標系の位置情報の復号を行うか、極座標系の位置情報の復号を行うかの切り替えも行う。
 まず、三次元データ復号装置は、ビットストリームに含まれるメタデータを解析する(S13011)。具体的には、メタデータは、GPS、SPS、ヘッダなどに含まれる制御情報である。三次元データ復号装置は、メタデータに含まれるgps_alt_coordinates_flag及びgps_coordinate_trans_enabled_flagを確認する。
 次に、三次元データ復号装置は、gps_alt_coordinates_flag=1であるか否かを判定する(S13012)。
 三次元データ復号装置は、gps_alt_coordinates_flag=1である場合(S13012でYes)、極座標系で復号することを決定する(S13013)。
 三次元データ復号装置は、gps_alt_coordinates_flag=0である場合(S13012でNo)、直交座標系で復号することを決定する(S13014)。
 このように、算出される復号対象の1つの三次元点の位置情報の座標系は、gps_alt_coordinates_flagの値に応じて決定されるため、第1識別情報が示す第1符号化データを含むか否かに応じた座標系に決定される。
 次に、三次元データ復号装置は、gps_coordinate_trans_enabled_flag=1であるか否かを判定する(S13015)。
 三次元データ復号装置は、gps_coordinate_trans_enabled_flag=1である場合(S13015でYes)、座標変換せずに決定した座標系で位置情報を復号する(S13016)。この場合、点群の位置情報は、三次元データ復号装置12920の構成を用いて復号される。なお、gps_coordinate_trans_enabled_flagは、gps_alt_coordinates_flag=1である場合に示されるため、gps_coordinate_trans_enabled_flag=1である場合(つまり、第2識別情報が、復号において極座標系の位置情報を出力することを示す場合)、算出される復号対象の1つの三次元点の位置情報の座標系は極座標系である。
 三次元データ復号装置は、gps_coordinate_trans_enabled_flag=0である場合(S13015でNo)、座標変換して、決定した座標系で位置情報を復号する(S13017)。この場合、点群の位置情報は、三次元データ復号装置12950の構成を用いて復号される。なお、gps_coordinate_trans_enabled_flagは、gps_alt_coordinates_flag=1である場合に示されるため、gps_coordinate_trans_enabled_flag=0である場合(つまり、第2識別情報が、復号において直交座標系の位置情報を出力することを示す場合)、予測値と第1残差とを加算することで得られた極座標系の位置情報の座標系を変換し、変換することで得られた直交座標系の位置情報を、復号対象の1つの三次元点の位置情報として算出する。また、この場合、符号化データは第2残差を含み、三次元データ復号装置は、符号化された第2残差を復号することで第2残差を算出し、復号対象の1つの三次元点の位置情報の算出では、座標系を変換することで得られた直交座標系の位置情報と第2残差とを加算し、加算することで得られた位置情報を、復号対象の1つの三次元点の位置情報として算出する。
 なお、図54のシンタックス構成でメタデータが構成される場合、ステップS13012~S13014の処理1において復号する座標系が極座標と判定される場合にステップS13015~S13017の処理2に移行し、処理1において復号する座標系が直交座標と判定される場合には、処理2の判定をスキップし、図49の構成の三次元データ復号装置12920を用いた復号が行われてもよい。
 なお、gps_coordinate_trans_enabled_flagは、各点を三次元データ復号装置から出力する前に復号点の座標変換を実施するか否かを示す座標変換情報としたが、各三次元点を符号化する際に座標変換を実施したか否かを示す情報としてもよいし、座標変換に伴い発生する誤差情報(変換誤差)がビットストリームに含まれるか否かを示す情報としてもよい。また、当該情報が含まれる場合には、三次元データ復号装置あるいはアプリケーションにおいて座標変換をするか否かが判定されてもよい。
 なお、入力点群の座標系、出力点群の座標系、符号化処理の対象となる位置情報の座標系、及び、復号処理の対象となる位置情報の座標系の組み合わせによる処理の切り替え、及び、これらの座標系を示すシグナリング方法について、予測木を用いた符号化を例に説明したが、8分木符号化の場合にも、同様の方法が用いられてもよい。また、入力点群の座標系、出力点群の座標系、符号化処理の対象となる位置情報の座標系、及び、復号処理の対象となる位置情報の座標系がいずれか1種類の場合は、切り替え処理を省略してもよいし、座標系が3種類以上の場合に処理を拡張してもよい。また、位置情報の符号化及び復号に係る座標系を例に説明したが、属性情報の符号化及び復号に係る座標系が複数の座標系に対応する場合、あるいは入力点群及び出力点群の座標系が他の座標系へ切り替わる可能性がある場合、同様の方法を用いて、処理を切り替えてもよい。例えば、図54と同様のシンタックスをattribute_parameter_setに含めてもよい。
 また、位置情報の符号化及び復号に係る座標系と、属性情報の符号化及び復号に係る座標系とは、同一にするように制御されてもよい。
 また、以上のように、本実施の形態に係る三次元データ符号化装置は、図60に示す処理を行う。三次元データ符号化装置は、直交座標系、もしくは極座標系のいずれかである複数の三次元点を符号化する。三次元データ符号化装置は、複数の符号化済みの三次元点のうちの1以上の候補点の位置情報に基づいて予測値を算出する(S13021)。三次元データ符号化装置は、複数の三次元点のうちの符号化対象の1つの三次元点の位置情報と、予測値との差分である第1残差を算出する(S13022)。三次元データ符号化装置は、第1残差を符号化することで符号化データを生成する(S13023)。三次元データ符号化装置は、符号化データと、符号化データが極座標系で算出された第1符号化データを含むか否かを示す第1識別情報とを含むビットストリームを生成する(S13024)。
 これによれば、符号化データが極座標系で算出された第1符号化データを含むか否かを示す第1識別情報がビットストリームに含まれるため、三次元データ復号装置は、第1識別情報に基づいて適切に復号処理を行うことができる。
 例えば、ビットストリームは、さらに、第2識別情報を含む。予測値の算出に用いられる1以上の候補点の位置情報、及び、第1残差の算出に用いられる符号化対象の1つの三次元点の位置情報が、極座標系の位置情報である場合、第1識別情報は、符号化データが極座標系で算出された第1符号化データを含むことを示す。また、この場合、第2識別情報は、復号において極座標系の位置情報を出力するか、直交座標系の位置情報を出力するかを示す。
 例えば、符号化データが第1符号化データを含まないことを第1識別情報が示す場合、ビットストリームは、第2識別情報を含まない。
 例えば、復号において極座標系の位置情報を出力する場合、第2識別情報は、復号において極座標系の位置情報を出力することを示す。また、この場合、第1符号化データの符号化において、第1残差を量子化し、量子化された第1残差を符号化する。
 例えば、第1残差の算出において、さらに、符号化対象の1つの三次元点の直交座標系の位置情報の座標系を変換することで極座標系の位置情報を生成し、かつ、第1残差は、変換後の極座標系の位置情報と前記予測値との差分である場合、三次元データ符号化装置は、変換後の極座標系の位置情報の座標系を逆変換することで直交座標系の位置情報を生成する。三次元データ符号化装置は、直交座標系の位置情報と、逆変換後の直交座標系の位置情報との差分である第2残差を算出する。符号化データの生成では、第1残差及び前記第2残差を符号化することで符号化データを生成する。第1識別情報は、符号化データが第1符号化データを含むことを示す。第2識別情報は、復号において直交座標系の位置情報を出力することを示す。
 例えば、第2識別情報は、第2残差の符号化データをビットストリームに含むか否かを示す。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図61に示す処理を行う。三次元データ復号装置は、直交座標系、もしくは極座標系のいずれかである複数の三次元点を復号する。三次元データ復号装置は、第1残差が符号化された符号化データと、符号化データが極座標系で算出された第1符号化データを含むか否かを示す第1識別情報とを含むビットストリームを取得する(S13031)。三次元データ復号装置は、複数の復号済みの三次元点のうちの1以上の候補点の位置情報に基づいて予測値を算出する(S13032)。三次元データ復号装置は、符号化された第1残差を復号することで第1残差を算出する(S13033)。三次元データ復号装置は、予測値と第1残差とを加算することで、復号対象の1つの三次元点の位置情報を算出する。算出される復号対象の1つの三次元点の位置情報の座標系は、第1識別情報が示す第1符号化データを含むか否かに応じた座標系である。
 これによれば、符号化データが極座標系で算出された第1符号化データを含むか否かを示す第1識別情報に基づいて復号対象の1つの三次元点の位置情報の座標系を決定できるため、三次元データ復号装置は、第1識別情報に基づいて適切に復号処理を行うことができる。
 例えば、ビットストリームは、さらに、復号において極座標系の位置情報を出力するか、直交座標系の位置情報を出力するかを示す第2識別情報を含む。第1識別情報が符号化データが第1符号化データを含むこと示す場合、予測値の算出に用いられる1以上の候補点の位置情報、及び、第1残差の算出に用いられた符号化対象の1つの三次元点の位置情報は、極座標系の位置情報である。
 例えば、符号化データが第1符号化データを含まないことを第1識別情報が示す場合、ビットストリームは、前記第2識別情報を含まない。
 例えば、第2識別情報が、復号において極座標系の位置情報を出力することを示す場合、符号化データは、第1残差が量子化されて符号化されたデータである。また、この場合、算出される復号対象の1つの三次元点の位置情報の座標系は極座標系である。
 例えば、第1識別情報が、符号化データが第1符号化データを含むことを示し、かつ、第2識別情報が、復号において直交座標系の位置情報を出力することを示す場合、復号対象の1つの三次元点の位置情報の算出では、予測値と前記第1残差とを加算することで得られた極座標系の位置情報の座標系を変換し、変換することで得られた直交座標系の位置情報を、復号対象の1つの三次元点の位置情報として算出する。
 例えば、第1識別情報が、符号化データが第1符号化データを含むことを示し、かつ、第2識別情報が、復号において直交座標系の位置情報を出力することを示す場合、符号化データは、さらに、符号化された第2残差を含む。三次元データ符号化装置は、符号化された第2残差を復号することで第2残差を算出する。復号対象の1つの三次元点の位置情報の算出では、座標系を変換することで得られた直交座標系の位置情報と前記第2残差とを加算し、加算することで得られた位置情報を、復号対象の1つの三次元点の位置情報として算出する。
 例えば、第2識別情報は、第2残差の符号化データをビットストリームに含むか否かを示す。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態6)
 符号化対象となる三次元点群をインター予測を用いて符号化する際に、参照する三次元点群を決定する方法について説明する。
 図62は、本実施の形態に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第1例を説明するための図である。具体的には、図62は、上記した三次元データ符号化装置における、インター予測(インター予測参照方法)の一例である。なお、以下で説明するインター予測は、三次元データ符号化装置の処理手順を例に説明する。三次元データ復号装置が復号対象の符号化された三次元点群を復号する際に参照する三次元点群を決定するための処理においても三次元データ符号化装置の処理手順と同様である。
 本例では、三次元データ符号化装置は、符号化対象の三次元点群を含む空間(第1の直方体ともいう)を設定し、第1の直方体を動き補償情報に基づいて移動させることにより、第1の直方体と一致する空間(第2の直方体ともいう)を設定する。本例では、三次元データ符号化装置は、第1の直方体を平行移動させることにより第2の直方体を設定する。
 このように設定された第2の直方体が、符号化対象の三次元点群の符号化において参照される符号化済みの三次元点群(インター参照点群ともいう)を含む空間となる。符号化済みの三次元点群とは、当該三次元点群の三次元データ(例えば、位置情報)が符号化されたことのある点群である。
 なお、三次元データ符号化装置が設定する空間の形状は、直方体でなくてもよく、錐体又は球等、任意でよい。
 図63は、本実施の形態に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第2例を説明するための図である。
 本例では、三次元データ符号化装置は、上記した例と同様に、第1の直方体を平行移動させ、さらに、回転(本例では、水平回転)によりインター参照点群を含む空間(つまり、第2の直方体)を設定する。
 水平回転とは、実空間における鉛直方向に対応する軸を中心とする回転(つまり、当該軸周りの回転)を意味し、例えば、三次元の直交座標系におけるz軸を中心とする回転である。これにより、第1の直方体においてy軸に平行だった辺は、第2の直方体においてy1軸と平行になる。また、第1の直方体においてx軸に平行だった辺は、第2の直方体においてx1軸と平行になる。
 なお、本例では、三次元データ符号化装置は、第1の直方体を平行移動させた後に水平回転させることで、第2の直方体を設定する。三次元データ符号化装置は、第1の直方体を水平回転させた後に平行移動させることで、第2の直方体を設定してもよい。
 また、三次元データ符号化装置は、予め設定されたz軸周りに第1の直方体を回転させてもよいし、第1の直方体の位置に基づいて予め設定されたz軸に平行な新たな軸を設定し、設定した新たな軸周りに第1の直方体を回転させてもよい。例えば、三次元データ符号化装置は、例えば、第1の直方体におけるz軸に平行な辺を新たな軸と設定してもよい。
 図64は、本実施の形態に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定するための処理の第3例を説明するための図である。
 本例では、三次元データ符号化装置は、第1の直方体を平行移動させて、さらに、3D回転させることにより第2の直方体を設定する。
 3D回転とは、1以上の軸のそれぞれについて、各軸を中心とする回転である。三次元データ符号化装置は、例えば、3D回転では、第1の直方体をx軸周りに回転させ、回転させた第1の直方体をy軸周りに回転させ、さらに、回転させた第1の直方体をz軸周りに回転させる。これにより、第1の直方体においてx軸に平行だった辺は、第2の直方体においてx2軸と平行になる。第1の直方体においてy軸に平行だった辺は、第2の直方体においてy2軸と平行になる。また、第1の直方体においてz軸に平行だった辺は、第2の直方体においてz2軸と平行になる。
 なお、三次元データ符号化装置は、3D回転では、例えば、三次元の直交座標系におけるx軸、y軸、及び、z軸の少なくとも1つの軸それぞれについて、各軸を中心とする回転をさせればよい。また、三次元データ符号化装置は、3D回転では、少なくとも1つの軸それぞれについて、任意の順序で各軸を中心とする回転をさせればよい。
 また、三次元データ符号化装置は、予め設定された各軸周りに第1の直方体を回転させてもよいし、第1の直方体の位置に基づいて予め設定された各軸に平行な新たな各軸を設定し、設定した新たな各軸について、各軸周りに第1の直方体を回転させてもよい。
 第2の直方体の位置を特定するための情報として、上記した各例のいずれの予測(移動方法)を実施するかを示す予測モード情報を、フレーム、スライス、8分木(Octree)、予測木(Predtree)等のヘッダ部に記載してもよいし、当該予測モード情報をエントロピー符号化して8分木又は予測木のノード情報のヘッダ部に記載してもよい。
 或いは、第2の直方体の位置を特定するための情報として、所定のルール(例えば、原点座標に最も近い頂点を選択する等)により定められる第1の直方体の第1の頂点と対応する第2の直方体の第2の頂点の間の移動量、及び、水平回転又は3D回転の回転角等を示す動き補償情報を、フレーム、スライス、8分木、予測木等のヘッダ部に記載してもよいし、当該予測モード情報をエントロピー符号化して8分木又は予測木のノード情報のヘッダ部に記載してもよい。
 なお、回転角は、必ずしも全角度が表現される必要はなく、例えば、±30°等の範囲に限定して表現されてもよい。
 また、上記した各例の全ての方法がいつも必要とは限らず、一部の方法のみを使用するようにしてもよい。
 また、上記した各例の一部又は全ての方法に、インター参照点群を含む空間を一意に設定できる他の方法(例えば、移動量をゼロとして動き補償を行わない方法)を追加して選択できるようにしてもよい。
 このように、平行移動に加えて回転も用いてインター予測を行うことで、上記した三次元データ符号化装置及び三次元データ復号装置においては、符号化対象のノード情報の生起確率の予測精度が向上できる。したがって、上記した三次元データ符号化装置においては、エントロピー符号化する残差信号の情報量を低減することができるため、符号化効率を向上できる可能性がある。同様に、上記した三次元データ復号装置においては、エントロピー復号する残差信号の情報量を低減することができるため、復号効率を向上できる可能性がある。
 なお、移動方法は、任意に定められてよい。三次元データ符号化装置は、例えば、上記した各移動方法を用いて第1の直方体を移動させ、後述する方法で三次元点群の位置情報を符号化した際における、各移動方法に対応する符号量を算出し、算出した符号量のうちで最も符号量が少なくなる移動方法を選択してもよい。
 続いて、動き補償の処理手順の一例について説明する。
 三次元データ符号化装置は、第2の直方体に含まれる三次元点群(インター参照点群)を、第1の直方体に含まれるように、第1の直方体を移動させた移動方法(例えば、平行移動)に応じて移動させる。三次元データ符号化装置は、このように移動させた三次元点群であって、符号化済み(つまり、一度符号化させたことのある三次元点群)の三次元点群(インター予測点群ともいう)を参照して、符号化対象の三次元点群(具体的には、点群データ、より具体的には、位置情報)を符号化する。三次元データ符号化装置は、例えば、インター参照点群を、第1の直方体に含まれるように、第1の直方体の第2の直方体の位置への移動とは逆向きに移動させることで、インター予測点群とする。
 図65は、本実施の形態に係る三次元データ符号化装置が符号化対象の三次元点群を符号化する際に参照する三次元点群を決定(設定)するための処理手順を示すフローチャートである。具体的には、図65は、インター予測における、動き補償の処理手順の一例を示すフローチャートである。三次元データ符号化装置は、第2の直方体に含まれるインター参照点群を平行移動したり回転したりすることで、第1の直方体に含まれる符号化対象の三次元点群に対応する、つまり、符号化対象の三次元点群が符号化される際に参照されるインター予測点群を導出する。
 なお、本例では、モード0は動き補償を行わない、つまり、インター参照点群を移動させない移動方法を示すモードである(動き補償なし)。また、本例では、モード1は、インター参照点群を平行移動のみさせる移動方法を示すモードである(回転なし)。また、本例では、モード2は、インター参照点群を平行移動させた後に水平回転させる移動方法を示すモードである(水平回転)。また、本例では、モード3は、平行移動させた後に3D回転させる移動方法を示すモードである(3D回転)。本例では、これらのモードが予測モード(例えば、後述するmc_mode)として予め定められているとする。例えば、三次元データ符号化装置は、上記したように符号量が最も少なくなるように移動方法を決定し、決定した移動方法を示す予測モードを予め決定し、決定した予測モードを用いて、以下の処理を行う。
 三次元データ符号化装置は、予測モードが動き補償を行わないモード(本例では、モード0)である場合(ステップS13101で「動き補償なし(モード0)」)、つまり、モード0が示す移動方法で三次元点群(つまり、インター参照点群)を移動させる場合、ステップS13107に処理を移行する。
 三次元データ符号化装置は、平行移動及び/又は回転等の決定したモードが示す移動方法でインター参照点群を移動させる移動処理を実行することで、移動処理後のインター参照点群をインター予測点群に設定する(S13107)。三次元データ符号化装置は、予測モードがモード0である場合には、ステップS13107では、動き補償なし、すなわち、第2の空間を第1の空間と同じ位置に設定し、第2の空間(つまり、この場合には第1の空間)に含まれるインター参照点群をインター予測点群に設定する。
 一方、三次元データ符号化装置は、予測モードがモード0以外である場合(ステップS13101で「その他(モード0以外)」)、第1の空間(例えば、第1の直方体に対応する空間)における第1の頂点(例えば、第1の直方体におけるいずれかの頂点)から、当該第1の頂点に対応する第2の頂点であって、第2の空間(例えば、第2の直方体に対応する空間)における第2の頂点(例えば、第2の直方体におけるいずれかの頂点)までの移動量(例えば、距離)に基づいて、インター参照点群を平行移動させる(S13102)。三次元データ符号化装置は、例えば、上記した所定の方向とは反対方向に上記した所定の移動量インター参照点群を移動させる。
 三次元データ符号化装置は、予測モードが平行移動のみを行うモード(本例では、モード1)である場合、つまり、モード1が示す移動方法でインター参照点群を移動させる場合(ステップS13103で「回転なし(モード1)」)、ステップS13107に処理を移行する。
 三次元データ符号化装置は、予測モードがモード1である場合には、ステップS13107では、ステップS13102で平行移動させた後のインター参照点群を、インター予測点群に設定する。
 一方、三次元データ符号化装置は、予測モードがモード2又は3のモードである場合(ステップS13103で「回転あり(モード2又は3)」)、平行移動後の第1の頂点を原点とする直交座標系を設定し、ステップS13102で平行移動させた後のインター参照点群を、当該直交座標系におけるz軸(垂直軸)を軸に第1の回転角に応じた角度回転させる(S13104)。三次元データ符号化装置は、例えば、第1の直方体を第2の直方体に移動させる際にz軸周りに回転させた回転方向とは反対方向に第1の回転角インター参照点群を回転させる。
 三次元データ符号化装置は、予測モードが平行移動と水平回転とを行うモード(本例では、モード2)である場合、つまり、モード2が示す移動方法でインター参照点群を移動させる場合(ステップS13105で「水平回転(モード2)」)、ステップS13107に処理を移行する。
 三次元データ符号化装置は、予測モードがモード2である場合には、ステップS13107では、ステップS13102で平行移動させた後にステップS13104で回転させた後のインター参照点群をインター予測点群に設定する。
 一方、三次元データ符号化装置は、予測モードがモード3である場合(ステップS13105で「3D回転(モード3)」)、ステップS13104で回転させた後の第1の頂点を原点とする直交座標系を設定し、ステップS13104で回転させた後のインター参照点群を、当該直交座標系におけるy軸及びx軸を軸にそれぞれ第2の回転角及び第3の回転角で回転させる(S13106)。三次元データ符号化装置は、例えば、ステップS13104で回転させた後のインター参照点群を、y軸を軸に第2の回転角に応じた角度で回転させ、さらに、y軸周りに回転させた後の第1の頂点を原点とする直交座標系を設定し、y軸周りに回転させた後のインター参照点群を、当該直交座標系におけるx軸を軸に第3の回転角に応じた角度で回転させる。三次元データ符号化装置は、例えば、第1の直方体を第2の直方体に移動させる際にy軸周りに回転させた回転方向とは反対方向に第2の回転角インター参照点群を回転させ、さらに、第1の直方体を第2の直方体に移動させる際にx軸周りに回転させた回転方向とは反対方向に第3の回転角インター参照点群を回転させる。三次元データ符号化装置は、ステップS13106を実行した後に、ステップS13107に処理を移行する。
 三次元データ符号化装置は、予測モードがモード3である場合には、ステップS13107では、ステップS13102で平行移動させた後にステップS13104で回転させた後のインター参照点群をさらにステップS13106で回転させ、回転させた後のインター参照点群を、インター予測点群に設定する。
 なお、例えば、車載センサ等の移動するセンサにより取得された三次元点群を符号化する場合に、三次元の直交座標系を設定するときには、実空間における鉛直方向を対応する方向に平行な軸をz軸、移動体の前方向に対応する方向に平行な軸をx軸、移動体の横方向に対応する方向に平行な軸をy軸に設定し、ヨー(yaw)、ピッチ(pitch)、ロール(roll)の順に動き補償(回転)するようにしてもよい。
 また、上記したモード3では、z軸、y軸、x軸の順に回転する例を示したが、回転の順序を入れ替えて、例えば、z軸、x軸、y軸の順等で回転する構成としても構わない。
 また、上記したモード2又は3では、平行移動後に回転を行う例を示したが、順序を入れ替えて、回転後に平行移動を行う構成としても構わない。
 また、所定の方向、所定の移動量、第1の回転角、第2の回転角、及び、第3の回転角は、それぞれ任意に定められてよい。
 続いて、動き補償情報の一例について説明する。
 図66は、本実施の形態に係る動き補償情報(本例では、motion_info())のシンタックス例を示す図である。三次元データ符号化装置は、例えば、motion_info()を含むビットストリームを生成することで、三次元データ復号装置に動き補償情報を通知する。
 mc_modeは、インター予測点群の算出方法を示す情報である。三次元データ符号化装置は、例えば、mc_modeのように、インター予測点群の求め方を示す情報を三次元データ復号装置に通知する。三次元データ符号化装置は、例えば、モード0(動き補償なし)、モード1(平行移動)、モード2(平行移動と水平回転)、又は、モード3(平行移動と3D回転)等を示すmc_modeを含むビットストリームを生成する。
 ref_frame_idxは、インター予測点群が属するフレームを示す情報である。具体的には、ref_frame_idxは、インター予測点群が属するフレームのインデックス値を示す情報である。三次元データ符号化装置は、例えば、インター参照点群が属するフレームのインデックス値を示すref_frame_idxを含むビットストリームを生成する。
 motion_vectorは、平行移動における移動量を示す情報である。三次元データ符号化装置は、例えば、モード0(動き補償なし)以外のモードにおいては、第1の空間における第1の頂点から、第1の頂点に対応する第2の空間における第2の頂点までの移動量に関する情報であるmotion_vectorを含むビットストリームを生成する。
 なお、三次元データ復号装置は、例えば、三次元データ符号化装置から取得したビットストリームにmotion_vectorが含まれていない、つまり、motion_vectorが通知されない場合は、motion_vectorを0(ゼロ)に設定してもよい。移動量に関する情報は、絶対量を示す情報であってもよいし、絶対量と時空間的な連続性等を利用して決定された移動量の予測値との差分を示す情報であってもよい。
 rotation_angleは、回転における回転角を示す情報である。三次元データ符号化装置は、例えば、回転を行うモード2及びモード3においては、垂直軸(z軸)を軸とする第1の回転角に関する情報(rotation_angle[0])を含むビットストリームを生成する。三次元データ符号化装置は、例えば、モード3においては、さらに、y軸を軸とする第2の回転角に関する情報(rotation_angle[1])と、x軸を軸とする第3の回転角に関する情報(rotation_angle[2])と、を含むビットストリームを生成する。
 なお、三次元データ復号装置は、例えば、三次元データ符号化装置から取得したビットストリームにrotation_angleが含まれていない、つまり、rotation_angle[k](k=0、1、2)が通知されない場合は、rotation_angleを0(ゼロ)に設定してもよい。
 また、上記では、モード2として、平行移動と水平回転(z軸中心の回転)とを組み合わせる例を示したが、必ずしもz軸中心の回転に限定する必要はなく、x軸中心の回転及び/又はy軸中心の回転であってもよい。或いは、三次元データ符号化装置は、例えば、どの軸を中心とする回転とするか、SPS、GPS、フレーム、スライス、8分木、又は、予測木等のヘッダ部に記載することで、三次元データ復号装置に通知できるように、切り替え可能であってもよい。或いは、例えば、三次元データ符号化装置は、どの軸を中心とする回転とするかを示す情報をエントロピー符号化し、符号化した情報を8分木又は予測木のノード情報のヘッダ部に記載してもよい。
 また、motion_vector及びrotation_angleは、インター参照点群とインター予測点群との位置関係を一意に特定可能な情報であればよく、特に限定されない。例えば、motion_vector及びrotation_angleは、第1の空間を第2の空間に移動する場合における移動量及び回転角であってもよい。或いは、例えば、motion_vector及びrotation_angleは、第2の空間を第1の空間に移動する場合における移動量及び回転角であってもよい。三次元データ符号化装置及び三次元データ復号装置の双方が行う動き補償は、三次元データ符号化装置及び三次元データ復号装置の双方で共通の定義に基づいて実施されていればよい。
 また、本実施の形態の処理、及び、シンタックス等を、他の実施の形態の少なくとも一部と組み合わせて実施してもよい。
 また、本実施の形態の処理、及び、シンタックスの一部等を、他の実施の形態と組み合わせて実施してもよい。
 また、本実施の形態の全ての構成要素がいつも必要とは限らず、三次元データ符号化装置及び三次元データ復号装置は、一部の構成要素のみを備えていてもよい。或いは、三次元データ符号化装置及び三次元データ復号装置は、本実施の形態の一部の処理のみを実行するように構成されていてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図67に示す処理を行う。
 図67は、本実施の形態に係る三次元データ符号化装置の処理手順を示すフローチャートである。
 まず、三次元データ符号化装置は、複数の移動方法の中から1つの移動方法を選択する(S13111)。
 次に、三次元データ符号化装置は、選択した1つの移動方法と第1領域(例えば、第1領域の位置及びサイズを示す情報)とに基づいて第2領域を決定する(S13112)。三次元データ符号化装置は、例えば、選択した1つの移動方法で第1領域を移動させることで第2領域を決定する。
 次に、三次元データ符号化装置は、決定した第2領域に位置する第2三次元点群を、1つの移動方法に応じた方法で第1領域に移動させる(S13113)。例えば、移動前の第2三次元点群は、例えば、上記したインター参照点群であり、移動後の第2三次元点群は、上記したインター予測点群である。
 次に、三次元データ符号化装置は、第1領域に移動させた第2三次元点群の符号化済みの位置情報に基づいて、第1領域に位置する第1三次元点群の位置情報を符号化する(S13114)。第1三次元点群は、例えば、上記した符号化対象の三次元点群である。例えば、第1三次元点群は、第1フレームに属する。また、例えば、第2三次元点群は、第1フレームとは異なる第2フレームに属する。例えば、三次元データ符号化装置は、インター予測を用いて符号化してもよい。なお、第1三次元点群と第2三次元点群とは、同一のフレームに属性していてもよい。この場合、三次元データ符号化装置は、インター予測と同様の予測方法を用いて符号化してもよい。
 次に、三次元データ符号化装置は、第1三次元点群の符号化された位置情報と、決定した1つの移動方法を示す移動情報と、を含むビットストリームを生成する(S13115)。移動情報は、例えば、上記したmc_motionである。
 複数の移動方法は、平行移動させる方法と回転させる方法との一方又は両方を含む。複数の移動方法は、少なくとも平行移動させる方法と、少なくとも回転させる方法と、を含んでもよい。
 なお、複数の移動方法は、これらの移動方法以外については予め任意に定められてよく、特に限定されない。或いは、複数の移動方法は、少なくとも平行移動させる方法と、少なくとも回転させる方法と、のみを含んでいてもよい。
 これによれば、適切に選択された移動方法によって移動された三次元点群が用いられて、符号化対象の三次元点群の位置情報の符号化が行われる。そのため、符号化効率は、向上され得る。例えば、適切に選択された移動方法によって移動された三次元点群が用いられて、符号化対象の三次元点群の位置情報の符号化が行われることで、符号化対象のノード情報の生起確率の予測精度が向上できる。したがって、エントロピー符号化される残差信号の情報量を低減することができるため、符号化効率が向上され得る。
 また、例えば、複数の移動方法は、移動させない方法を含む。つまり、第1領域と第2領域とは、同じ領域でもよい。言い換えると、上記した動き補償は、行われなくてもよい。
 また、例えば、複数の移動方法は、平行移動させ且つ回転させる方法を含む。
 例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して平行移動と回転との両方が行われるように位置が変化する場合が多い。つまり、三次元点群は、例えば、各フレームを時系列順に見ると、平行移動し且つ回転するように、位置が移動されることが多い。そのため、移動方法として平行移動及び回転が含まれていることで、符号化対象の三次元点群を符号化する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、平行移動させ且つ回転させる方法では、平行移動させた後に回転させる。
 また、例えば、回転させる方法では、三次元の直交座標系における3軸のうちの少なくとも1軸について、軸毎に当該軸に平行な軸周りに回転させる。
 また、例えば、少なくとも1軸は、実空間における鉛直方向に対応する軸を含む。三次元点群は、例えば、実空間を撮像等のセンシングすることにより生成される実空間の物体等に対応する点群である。例えば、三次元点群を回転させる場合には、三次元点群に対応する物体等が位置する実空間における鉛直方向に対応する方向を軸として、当該軸周りに三次元点群を回転させる。
 例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して実空間の鉛直方向に平行な軸周りに回転する可能性が高い。一方で、このような三次元点群は、時間変化に対して実空間の水平方向に平行な軸周りに回転する可能性が低い。そのため、実空間における鉛直方向に対応する軸周りに回転させる移動方法が含まれていることで、符号化対象の三次元点群の位置情報を符号化する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、少なくとも1軸は、1つの軸である。
 上記した通り、例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して実空間の水平方向に平行な軸周りに回転する可能性が低い。そのため、回転する方法を実空間の鉛直方向に平行な軸周りの回転する方法のみにすることで、複数の移動方法が不要に多くなることを抑制しつつ、且つ、符号化対象の三次元点群の位置情報を符号化する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。メモリには、上記処理を行う制御プログラムが記憶されていてもよい。
 また、本実施の形態に係る三次元データ復号装置は、図68に示す処理を行う。
 図68は、本実施の形態に係る三次元データ復号装置の処理手順を示すフローチャートである。
 まず、三次元データ復号装置は、第1三次元点群の符号化された位置情報と、1つの移動方法を示す移動情報と、を含むビットストリームを取得する(S13121)。
 次に、三次元データ復号装置は、移動情報に基づいて、複数の移動方法の中から1つの移動方法を選択する(S13122)。
 次に、三次元データ復号装置は、選択した1つの移動方法と第1領域(例えば、第1領域の位置及びサイズを示す情報)とに基づいて第2領域を決定する(S13123)。三次元データ符号化装置は、例えば、選択した1つの移動方法で第1領域を移動させることで第2領域を決定する。
 次に、三次元データ復号装置は、決定した第2領域に位置する第2三次元点群を、1つの移動方法に応じた方法で第1領域に移動させる(S13124)。
 次に、三次元データ復号装置は、第1領域に移動させた第2三次元点群の復号済みの位置情報に基づいて、第1三次元点群の符号化された位置情報を復号する(S13125)。復号済みの三次元点群とは、当該三次元点群の三次元データ(例えば、位置情報)が復号されたことのある点群である。
 複数の移動方法は、平行移動させる方法と回転させる方法との一方又は両方を含む。
 これによれば、適切に選択された移動方法によって移動された三次元点群が用いられて、復号対象の三次元点群の符号化された位置情報の復号が行われる。そのため、復号効率は、向上され得る。
 また、例えば、複数の移動方法は、移動させない方法を含む。
 また、例えば、複数の移動方法は、平行移動させ且つ回転させる方法を含む。
 例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して平行移動と回転との両方が行われるように位置が変化する場合が多い。つまり、三次元点群は、各フレームを時系列順に見ると、平行移動し且つ回転するように、位置が移動されることが多い。そのため、移動方法として平行移動及び回転が含まれていることで、復号対象の符号化された三次元点群を復号する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、平行移動させ且つ回転させる方法では、平行移動させた後に回転させる。
 また、例えば、回転させる方法では、三次元の直交座標系における3軸のうちの少なくとも1軸について、軸毎に当該軸に平行な軸周りに第1領域を回転させる。
 また、例えば、少なくとも1軸は、実空間における鉛直方向に対応する軸を含む。
 例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して実空間の鉛直方向に平行な軸周りに回転する可能性が高い。一方で、このような三次元点群は、時間変化に対して実空間の水平方向に平行な軸周りに回転する可能性が低い。そのため、実空間における鉛直方向に対応する軸周りに回転させる移動方法が含まれていることで、復号対象の三次元点群の符号化された位置情報を復号する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、少なくとも1軸は、1つの軸である。
 上記した通り、例えば、車載センサ等の移動するセンサにより取得された情報に基づく三次元点群は、時間変化に対して実空間の水平方向に平行な軸周りに回転する可能性が低い。そのため、回転する方法を実空間の鉛直方向に平行な軸周りの回転する方法のみにすることで、複数の移動方法が不要に多くなることを抑制しつつ、且つ、復号対象の三次元点群の符号化された位置情報を復号する際に用いる三次元点群として適切な三次元点群を選択しやすくできる。
 また、例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。メモリには、上記処理を行う制御プログラムが記憶されていてもよい。
 (実施の形態7)
 本実施の形態では、上記実施の形態で示した三次元データ符号化装置及び三次元データ復号装置において、極座標を用いた符号化または復号を行う場合のインター予測における参照点群の参照方法について説明する。図69は、本実施の形態に係るインター予測における参照点群の参照方法について説明するための図である。
 本実施の形態では、三次元点群を示す点群データは、LiDARなどのようにセンサ位置を中心に周囲の物体の三次元位置を取得して生成された点群を例に説明する。このような点群データの符号化では、二次元平面に、センサ位置から各三次元点までの測距位置の距離情報d[v][h]をマッピングした二次元画像であるデプスマップが用いられたインター予測が行われてもよい。この二次元平面は、測距位置の水平角(センサの水平スキャンにおける角度位置)を示すインデックスhを横軸とし、測距位置の仰角(センサのスキャンラインの仰角)を示すインデックスvとを縦軸とする。つまり、二次元画像の各画素の画素位置を示す二次元座標([v],[h])の成分[v]は、当該画素の距離情報の三次元点の測距位置からの仰角を示すインデックスであり、成分[h]は、当該画素の距離情報の三次元点の測距位置からの水平角を示すインデックスである。
 仰角を示すインデックスは、例えば、センサを水平方向に見た場合の仰角(俯角)おいて、センサに予めさだめられている複数の仰角(俯角)の1つを特定するための仰角情報である。水平角を示すインデックスは、例えば、センサを垂直方向に見た場合の水平角おいて、センサに予め定められている複数の水平角の1つを特定するための水平角情報である。
 なお、二次元画像は、全ての画素に三次元点が割り当てられていなくてもよい。つまり、二次元画像の二次元座標によって特定される水平角及び仰角の複数のセットにおいて、距離情報が取得されていないセットが二次元画像に含まれていてもよい。
 三次元データ符号化装置または三次元データ復号装置は、符号化対象点のインター予測の予測点を、参照フレームの三次元点に決定してもよい。符号化対象点は、図69に示すように、符号化対象フレームにおける、1つの予測木(Predtee)により符号化される対象領域(破線で囲われた領域)に含まれ、予測点は、参照フレームのインター予測の参照領域に含まれる。符号化対象フレーム及び参照フレームは、それぞれ、二次元画像にマッピングされる。これらの二次元画像は、上述したように、二次元平面に、センサ位置から各三次元点までの測距位置の距離情報d[v][h]をマッピングしたデプスマップである。対象領域は、符号化対象フレームのうちの一部の二次元領域である。対象領域は、例えば、矩形である。インター予測の参照領域は、符号化対象フレームにおける対象領域に対応する領域である。参照領域は、参照フレームのうちの一部の二次元領域である。例えば、インター予測の参照領域は、対象領域に対するどの領域であるかを特定するための動きベクトル(動き補償情報)で対応付けられていてもよい。符号化対象点のインター予測の予測点は、参照領域に含まれる複数の画素の画素値で示される複数の三次元点から選択される。
 参照領域は、1本の動きベクトルmv0により対象領域に対して指定される領域であってもよい。この場合、参照領域は、対象領域と同じサイズかつ同じ形状の領域が動きベクトルmv0により指定されてもよい。この場合をモード1と称する。
 また、参照領域は、複数のベクトルが指し示す先の複数の点を頂点とする領域になるようにアフィン変換されることで特定される領域であってもよい。
 例えば、参照領域は、2本の動きベクトルmv0、mv1により対象領域に対して指定される領域であってもよい。この場合、参照領域は、2本の動きベクトルmv0、mv1の指し示す先の2点を頂点とする領域になるように回転、及び、拡大/縮小の少なくとも1つの変形が為されることで特定される領域であってもよい。この場合をモード2と称する。
 また、例えば、参照領域は、図69に示すように、3本の動きベクトルmv0、mv1、mv2により対象領域に対して指定される領域であってもよい。この場合、参照領域は、対象領域に対して、3本の動きベクトルmv0、mv1、mv2の指し示す先の3点を頂点とする領域になるように、回転、拡大/縮小、及び、せん断の少なくとも1つの変形が為されることで特定される領域であってもよい。この場合をモード3と称する。
 なお、動きベクトルは、整数精度であってもよいし、小数精度であってもよい。つまり、動きベクトルは、整数画素単位の精度であってもよいし、小数画素単位の精度であってもよい。また、各動きベクトルは、ゼロベクトルであってもよい。また、参照フレームの小数精度位置を参照する場合、小数精度位置は、周辺の距離情報に基づいて補間されてもよい。
 また、水平角のインデックスhの範囲、つまり、水平角インデックスの最小値(hmin)及び最大値(hmax)、または、仰角のインデックスvの範囲、つまり、仰角インデックスの最小値(vmin)及び最大値(vmax)を特定するための情報は、フレームまたは予測木のヘッダ部に含まれていてもよい。更に、動きベクトルは、各フレームの水平角および仰角のインデックスv、hの範囲に差異がある場合、この差異に基づいて補正されてもよい。
 このように、極座標を用いた符号化または復号におけるインター予測にデプスマップを用いることで、三次元空間におけるインター予測に比べて処理を簡単化することができ、三次元データ符号化装置または三次元データ復号装置の実装コストを低減できる可能性がある。
 図70は、GPS(ジオメトリパラメータセット)のシンタックスの一例を示す図である。図71は、予測木のシンタックスの一例を示す図である。これらのシンタックスは、図69を用いて説明したインター予測方法に対応する。
 図70において、gps_predtree_bounding_info_present_flagが1であることは、GPSを参照するビットストリームにおいて、位置情報の予測木のデータ(geometry predtree data)のシンタックスにバウンディングボックス情報が存在することを示す。gps_predtree_bounding_info_present_flagが0であることは、GPSを参照するビットストリームにおいて、位置情報の予測木のデータ(geometry predtree data)のシンタックスにバウンディングボックス情報が存在しないことを示す。また、gps_inter_frame_prediction_enabeled_flagが1に等しい場合、gps_predtree_bounding_info_present_flagは1に設定される。
 図71に示す予測木のシンタックスは、スライス内の点群を一つ以上の予測木を用いて符号化する場合に用いられる。このシンタックスでは、予測木のルートノードシンタックス(geometry_prediction_tree_node( ))がまずコールされ、同じ予測木に属するノードに対応するノードシンタックスが再帰的にコールされることが示されている。また、シンタックスでは、各予測木に対応付けられる情報として、予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))、予測木をインター予測を用いて符号化するか否かを示す情報(inter_predtree_flag)、予測木におけるインター予測で参照するフレーム数に関する情報(num_ref_frames_minus1)、予測木におけるインター予測の動き補償に関する情報(geometry_predtree_motion_info( ))などが含まれていてもよい。
 また、予測木が符号化する領域を示す情報(geometry_predtree_bounding_info( ))を通知するか否かは、切り替え可能としてもよい。例えば、図70及び図71の例では、インター予測を用いる場合は、インター予測の参照領域の特定に使用するために、常に予測木が符号化する領域を示す情報を通知し、インター予測を用いない場合は、GPSで通知されるgps_predtree_bounding_info_present_flagに応じて、予測木が符号化する領域を示す情報を通知するか否かを切り替える構成としている。インター予測を用いない場合でも、常に予測木により符号化される対象領域を示す情報を通知するようにしてもよい。
 なお、予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))を通知する場合、当該対象領域に当該予測木の全てのノードが含まれるように、対象領域または予測木が設定されてもよい。
 図72は、予測木の動き補償情報のシンタックスの一例を示す図である。図73は、極座標符号化における動き補償情報のシンタックスの一例を示す図である。図74は、予測木の符号化範囲情報のシンタックスの一例を示す図である。
 これらのシンタックスの例は、極座標系で表現された位置情報を含む点群(極座標系の点群)の符号化または復号と、直交座標系で表現された位置情報を含む点群(直交座標系の点群)の符号化または復号との両方に対応する。極座標系の点群の符号化または復号では、図69のデプスマップを用いた予測が行われる。また、直交座標系の点群の符号化または復号では、上記実施の形態で説明した予測が行われる。
 図72及び図74に示すように、各シンタックスにおいて、各三次元点の符号化または復号において極座標系など直交座標系とは別の座標系を用いるか否かを示す情報(例えば、gps_alt_coordinates_flag)に応じて、極座標用の情報(motion_info_polar( )やmin_vh[ k ]、size_vh[ k ]など)と直交座標用の情報(motion_info( )やmin_xyz[ k ]、size_xyz[ k ]など)とが切り替えて示されてもよい。つまり、gps_alt_coordinates_flagが別の座標系を用いることを示す場合、極座標用の情報(motion_info_polar( )やmin_vh[ k ]、size_vh[ k ]など)が示され、直交座標用の情報(motion_info( )やmin_xyz[ k ]、size_xyz[ k ]など)が示されなくてもよい。反対に、gps_alt_coordinates_flagが直交座標系を用いることを示す場合、極座標用の情報(motion_info_polar( )やmin_vh[ k ]、size_vh[ k ]など)が示されず、直交座標用の情報(motion_info( )やmin_xyz[ k ]、size_xyz[ k ]など)が示されてもよい。
 直交座標系の点群の符号化または復号では、motion_info( )として上記実施の形態で説明したシンタックスが用いられてもよい。予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))は、上記実施の形態で説明した符号化対象の点群を含む第1の直方体に相当し、位置及びサイズを示す情報として、上記実施の形態で説明した最小の座標を示す情報(min_xyz[k])と第1の直方体の各辺の大きさを示す情報(size_xyz[k])とを含んでいてもよい。つまり、ビットストリームは、三次元領域の位置及びサイズを示す領域情報を含んでいてもよい。領域情報で示される三次元領域とは、符号化対象の予測木に含まれる複数の三次元点が含まれる領域であり、符号化対象フレームの三次元領域に含まれる。なお、予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))は、予測木により符号化される対象領域を一意に定められる情報であれば、他の情報でも代用可能である。
 極座標系の点群の符号化または復号を行う場合、図71のシンタックスには、動き補償情報が示されていてもよい。まず、このシンタックスには、インター予測点群の求め方を示す情報(mc_mode_polar)が示されていてもよい。インター予測点群の求め方を示す情報(mc_mode_polar)は、例えば、図69の例で示したモード1~3、または、動き補償なしを示すモード(モード0)のうちの1つのモードを示す情報である。なお、動き補償なしを示すモードは、モード0の他に、動きベクトルmv0がゼロベクトルであるモード1であってもよい。また、このシンタックスには、参照フレームのインデックス値(ref_frame_idx)が含まれてもよい。また、モード0以外のモードにおいては、モードに応じて動きベクトルmv0~mv2(motion_vector_polar[i][k])が示されてもよい。motion_vector_polar[i][k]は、絶対量で示されもよいし、時空間的な連続性などを利用して決定した予測値との差分で示されてもよい。予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))の位置及びサイズを示す情報として、図74に示す最小の座標を示す情報(min_vh[k])と長方形の各辺の大きさを示す情報(size_vh[k])とが示されてもよい。つまり、ビットストリームは、二次元領域の位置及びサイズを示す領域情報を含んでいてもよい。領域情報で示される二次元領域とは、符号化対象の予測木に含まれる複数の三次元点が含まれる領域であり、符号化対象フレームの二次元画像の二次元領域に含まれる。なお、予測木により符号化される対象領域を示す情報(geometry_predtree_bounding_info( ))は、予測木により符号化される対象領域を一意に定められる情報であれば、他の情報でも代用可能である。
 本実施の形態の図69~図74を用いて開示した処理、シンタックスなどを、他の開示(他の実施の形態)の少なくとも一部と組み合わせて実施してもよい。また、本実施の形態の図69~図74を用いて開示した処理、シンタックスの一部などを他の開示(他の実施の形態)と組み合わせて実施してもよい。
 また、本実施の形態の図69~図74を用いて開示したすべての構成要素がいつも必要とは限らず、一部の構成要素のみを備えていてもよい。
 なお、シンタックスにおいて各情報が示されることは、シンタックスにより各情報が通知されることと同じである。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図75に示す処理を行う。三次元データ符号化装置は、複数の三次元点のうち符号化対象点を、符号化対象点が含まれる予測木を含む第1フレームとは異なる第2フレームに含まれる三次元点を参照して符号化して符号化データを生成する(S13501)。三次元データ符号化装置は、符号化データを含むビットストリームを生成する(S13502)。第2フレームに含まれる複数の三次元点は、符号化済みである。符号化では、予測木に対応づけられた動き補償情報に基づいて第2フレームに含まれる複数の三次元点のうちの少なくとも一部を参照して、符号化対象点を符号化する。ビットストリームは、動き補償情報を含む。
 これによれば、動き補償情報に基づいて、符号化対象点を符号化するために参照する少なくとも一部の複数の三次元点を決定するため、符号化効率を向上させることができる。
 例えば、第1フレーム及び第2フレームに含まれる複数の三次元点のそれぞれの位置情報は、極座標系で表現される。第1フレーム及び第2フレームのそれぞれは、二次元画像にマッピングされる。二次元画像の各画素は、第2フレームに含まれる複数の三次元点のそれぞれの位置情報を示し、当該位置情報に含まれる距離情報を画素値として有する。
 例えば、二次元画像の各画素の画素位置を示す二次元座標は、極座標に含まれる仰角情報及び水平角情報を示す。
 例えば、予測木に含まれる複数の三次元点は、第1フレームがマッピングされた二次元画像のうちの二次元領域で特定される。ビットストリームは、さらに、二次元領域の位置及びサイズを示す領域情報を含む。
 例えば、第1フレーム及び第2フレームに含まれる複数の三次元点のそれぞれの位置情報は、直交座標系で表現される。予測木に含まれる複数の三次元点は、第1フレームの第1三次元領域に含まれる第2三次元領域に含まれる。ビットストリームは、さらに、第2三次元領域の位置及びサイズを示す領域情報を含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図76に示す処理を行う。三次元データ復号装置は、第1フレームの予測木に含まれる符号化対象点が符号化された符号化データと、動き補償情報とを含むビットストリームを取得する(S13511)。三次元データ復号装置は、動き補償情報を用いて、第1フレームとは異なる第2フレームに含まれる複数の三次元点のうちの少なくとも一部を特定する(S13512)。三次元データ復号装置は、符号化データを復号して得られた復号結果と、少なくとも一部とを用いて、符号化対象点を算出する(S13513)。第2フレームに含まれる複数の三次元点は、復号済みである。動き補償情報は、予測木と、第2フレームに含まれる複数の三次元点のうちの少なくとも一部とを対応付ける情報である。
 これによれば、ビットストリームに示される動き補償情報を用いて符号化された符号化対象点を復号するために参照する少なくとも一部の複数の三次元点を決定するため、符号化された符号化対象点を適切に復号することができる。
 例えば、第1フレーム及び第2フレームに含まれる複数の三次元点のそれぞれの位置情報は、極座標系で表現される。第1フレーム及び第2フレームのそれぞれは、二次元画像にマッピングされる。二次元画像の各画素は、第2フレームに含まれる複数の三次元点のそれぞれの位置情報を示し、当該位置情報に含まれる距離情報を画素値として有する。
 例えば、二次元画像の各画素の画素位置を示す二次元座標は、極座標に含まれる仰角情報及び水平角情報を示す。
 例えば、予測木に含まれる複数の三次元点は、第1フレームがマッピングされた二次元画像のうちの二次元領域で特定される。ビットストリームは、さらに、二次元領域の位置及びサイズを示す領域情報を含む。
 例えば、第1フレーム及び第2フレームに含まれる複数の三次元点のそれぞれの位置情報は、直交座標系で表現される。予測木に含まれる複数の三次元点は、第1フレームの第1三次元領域に含まれる第2三次元領域に含まれる。ビットストリームは、さらに、第2三次元領域の位置及びサイズを示す領域情報を含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態8)
 本実施の形態では、それぞれの位置を示す位置情報が極座標系で表される複数の三次元点を含む点群に対してインター予測する三次元データ符号化方法及び三次元データ復号方法について説明する。なお、位置情報は、単に、位置と表記する場合がある。以下では、インター予測の予測値の決定に用いる1以上の候補点の決定方法について主に説明する。決定後の1以上の候補点を用いて、予測値を決定する方法は、上記実施の形態と同様である。
 図77~図79は、インター予測を用いて極座標で表される三次元点を符号化または復号する方法を説明するための図である。三次元点の符号化または復号は、上記実施の形態における三次元データ符号化装置12900、12930、三次元データ復号装置12920、12950において行われる。三次元データ符号化装置12900、12930は、三次元データ符号化装置と表記する場合もある。また、三次元データ復号装置12920、12950は、三次元データ復号装置と表記する場合もある。
 ここで、インター予測とは、符号化対象フレームに含まれる符号化対象の三次元点を符号化するときに、符号化対象フレームとは異なるフレームである参照フレームに含まれる符号化済みの1以上の三次元点を参照し、参照した1以上の三次元点に基づいて、符号化対象フレームに含まれる複数の三次元点を予測符号化する方法である。また、イントラ予測とは、符号化対象フレームに含まれる符号化対象の三次元点を符号化するときに、符号化対象フレームに含まれる符号化済みの他の1以上の三次元点の少なくとも1つを参照し、参照した1以上の三次元点に基づいて、符号化対象フレームに含まれる複数の三次元点を予測符号化する方法である。符号化対象フレームは、第2フレームと表記する場合もある。参照フレームは、第1フレームと表記する場合ある。
 点群データは、1以上のフレームを有し、1以上のフレームのそれぞれは、1以上の三次元点を有する。1以上のフレームは、符号化対象フレーム及び参照フレームを含む。例えば、フレームは、それぞれ、センサにより異なる複数の位置で計測されることで生成されてもよい。フレームは、それぞれ、異なる複数のセンサにより計測されることで生成されてもよい。
 複数の第1三次元点は、基準面上の空間において、第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られる。第1位置は、第3位置に配置されたセンサによって計測された計測結果である複数の第1三次元点の位置情報の基準となる第1原点である。第1位置は、第1基準位置と表記する場合もある。第1位置は、センサが配置される第3位置と一致していてもよいし、一致していなくてもよい。複数の第1三次元点のそれぞれは、第1位置を第1原点とする第1極座標系で表される。複数の第1三次元点は、例えば、参照フレームに含まれる。
 また、複数の第2三次元点は、基準面上の空間において、第2位置周りの複数の第2方向のそれぞれ毎における物体までの距離計測により得られる。第2位置は、第4位置に配置されたセンサによって計測された計測結果である複数の第2三次元点の位置情報の基準となる第2原点である。第2位置は、第2基準位置と表記する場合もある。第2位置は、センサが配置される第4位置と一致していてもよいし、一致していなくてもよい。複数の第2三次元点のそれぞれは、第2位置を第2原点とする第2極座標系で表される。
 センサは、電磁波を発し、かつ、電磁波が被写体で反射された反射波を取得することで、1以上の三次元点を含む計測結果を生成する。本実施の形態では、センサは、1回の計測により得られた計測結果を含む1つのフレームを生成してもよい。具体的には、センサは、発した電磁波が、発せられてから被写体に反射してセンサに戻るまでにかかった時間を計測し、計測した時間と電磁波の波長とを用いて、センサとセンサの周囲の物体の表面上の点との間の距離を算出する。センサは、センサの基準位置から予め定められた放射状の複数の方向へ電磁波を発する。センサは、例えば、LiDARであり、電磁波は、例えば、レーザ光である。
 三次元点のそれぞれは、少なくとも位置情報を有する。位置情報は、当該位置情報を有する三次元点の位置を示し、極座標で表される。具体的には、位置情報は、基準点から当該位置情報を有する三次元点までの距離と、基準点から当該位置情報を有する三次元点までの方向を示す2つの角度とを含む。2つの角度の一方は、例えば、基準面に垂直な軸から見た場合に当該軸に垂直な基準方向と上記方向とが為す角(水平角)の角度であり、他方は、基準面と上記方向とが為す角(仰角)の角度である。なお、基準面は、水平面であり、例えば、LiDARの回転軸などセンサの所定軸に垂直な平面や地面、床面、またはこれらに平行な平面などである。
 図77~図79では、LiDARなどのようにセンサ位置を中心に、当該センサの周囲の物体の三次元位置を取得して生成された点群の符号化を想定している。図77~図79では、例えば、符号化対象フレームの点群の計測時におけるセンサ13806の第2基準位置13808と、参照フレームの点群の計測時におけるセンサ13805の第1基準位置13807と、符号化対象点13801と、インター予測における参照候補点13802、13803との位置関係が示されている。図77~図79は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。符号化対象点13801と、参照候補点13802、13803は、物体13804の同一の面(例えば平面)13810上の三次元位置を示す。符号化対象点13801は、符号化対象フレームの点群に含まれる。符号化対象フレームの点群は、図77~図79では黒塗りの菱形の点で示される。参照候補点13802、13803は、参照フレームの点群に含まれ、かつ、上記面13810上の三次元位置を示す複数(例えば、n+1個)の三次元点に含まれる。参照フレームの点群は、図77~図79では白抜きの菱形の点で示される。なお、センサ13805及びセンサ13806は、同一のセンサであってもよいし、異なるセンサ(つまり別体のセンサ)であってもよい。センサ13805及びセンサ13806が同一のセンサである場合は、例えば、1つのセンサが第1基準位置13807から第2基準位置13808に、あるいは、第2基準位置13808から第1基準位置13807に移動した場合である。この場合、符号化対象フレームが生成された時刻と、参照フレームが生成された時刻とは異なる。センサ13805及びセンサ13806が異なるセンサである場合は、符号化対象フレームが生成された時刻と、参照フレームが生成された時刻とは異なっていてもよいし、同じであってもよい。
 三次元データ符号化装置は、センサ13806の第2基準位置13808から符号化対象点13801までの距離dcurの予測値dpredを、符号化対象フレームの点群の計測時におけるセンサ13806の第2基準位置13808と、参照フレームの点群の計測時におけるセンサ13805の第1基準位置13807と、符号化対象点13801と、参照候補点13802、13803の位置関係に基づいて決定する。そして、三次元データ符号化装置は、決定した予測値dpredをインター予測に用いてもよい。例えば、三次元データ符号化装置は、次の手順1~手順3を実行することにより予測値dpredを決定してもよい。なお、三次元データ復号装置は、三次元データ符号化装置と同じ処理を実行することで予測値dpredを決定するため、以下では、三次元データ符号化装置についてのみ説明する。
 手順1では、三次元データ符号化装置は、図78に示すように、少なくとも1点の参照候補点13802、13803を第2基準位置13808の第2極座標系に投影し、式Z1により第2基準位置13808から見たi番目の参照候補点の水平角φref2(i)を導出する。なお、φref1(i)、dref1(i)、及び、mは、それぞれ、図78に示す第1基準位置13807における水平角、第1基準位置13807からi番目の参照候補点までの距離、及び、第1基準位置13807と第2基準位置13808との間の距離(センサ間距離または移動距離)を示す。なお、水平角は、第1基準位置13807と第2基準位置13808と結ぶ方向である基準方向13809を基準とした、第1基準位置13807に対してi番目の参照候補点が存在する方向の角度である。また、nは、i及びkを取り得る自然数である。iは、任意の自然数である。
 φref2(i)=arctan( dref1(i)sin(φref1(i)) / (dref1(i)cos(φref1(i)) - m) )   (式Z1)
 手順2では、三次元データ符号化装置は、i番目の参照候補点に対応する少なくとも1つの水平角φref2(i)のうちから、第2基準位置13808から符号化対象点13801を指す水平角φcurの近傍の水平角φref2(k)を選択し、図79に示すように、水平角φref2(k)が指すk番目の参照候補点13802をインター予測に用いる参照点(インター参照点)13811として選択する。なお、kは、n個の水平角φref2のうちで、第2基準位置13808から符号化対象点13801を指す水平角φcurの近傍の水平角であることを示す自然数である。つまり、k番目の参照候補点は、n個の参照候補点のうちで予測値の算出に用いられる参照点であり、符号化済みの第1三次元点の一例である。
 手順3では、三次元データ符号化装置は、第2基準位置13808から、インター参照点13811までの距離dref2(k)を導出し、距離dref2(k)を予測値dpredとして決定する。
 dpred=dref2(k)= dref1(k) sin(φref1(k))/sin(φref2(k))   (式Z2)
 符号化対象フレームの点群と、参照フレームの点群とは、異なる基準位置を有する座標系の極座標で表現される。このため、符号化対象点13801を、符号化対象フレームとは異なる参照フレームの参照候補点13802、13803を用いて予測符号化する場合、参照フレームの参照候補点13802、13803の座標系を参照フレームの点群が表現される第1座標系から符号化フレームの点群が表現される第2座標系に変換する座標系変換を行う必要がある。
 三次元データ符号化装置は、手順1~手順3を実行することにより、第1極座標で位置が表され、且つ、符号化済みの第1三次元点を特定する。第1三次元点は、予測値に用いられる参照点である。そして、三次元データ符号化装置は、第2極座標系で位置が表され、且つ、未符号化の第2三次元点の第2基準位置13808からの距離dcurの予測値を算出するために、(i)第1基準位置13807と第2基準位置13808との間の距離m、(ii)第1基準位置13807と第2基準位置13808とを結ぶ第1線と、第1基準位置13807と参照点13811とを結ぶ第2線とのなす水平角φref1(k)、及び、(iii)第1極座標系における参照点13811の第1基準位置13807からの距離dref1(k)、を特定する。なお、距離dcurは、第2距離の一例である。距離mは、第1位置と第2位置との間の距離の一例である。水平角φref1(k)は、第1角の一例であり、第1線と第2線とのなす角の角度を示す。距離dref1(k)は、第1距離の一例である。
 また、例えば、三次元データ符号化装置は、未符号化の第2三次元点の第2極座標系における位置の予測値を算出するために、距離m、水平角φref1(k)、及び、距離dref1(k)を用いて、(iv)第1線と、第2基準位置13808及び参照点13811を結ぶ第3線とのなす水平角φref2(k)、並びに、(v)第2極座標系における参照点13811の第2基準位置13808からの距離dcur、を算出する。なお、水平角φref2(k)は、第2角の一例である。
 また、例えば、距離dcurの算出では、第1線と第1極座標系における水平角の基準線とが揃う場合(つまり、第1線と水平角の基準線とが平行である場合)、距離dref1(k)と、第1角としての水平角φref1(k)とを用いて、水平角φref2(k)を算出する。水平角φref1(k)は、第1水平角の一例であり、参照点13811の位置を表す極座標成分のうちの水平角の成分である。参照点13811の位置は、第1極座標系で表される。なお、図77~図79の例では、第1線と第1極座標系における水平角の基準線とが揃う場合(つまり、第1線と水平角の基準線とが平行である場合)が示されているが、第1線と第1極座標系における水平角の基準線とが揃わない場合(つまり、第1線と水平角の基準線とが非平行である場合)、三次元データ符号化装置は、参照点13811の位置を表す極座標成分のうちの水平角の成分と、当該基準線に対して第1線がなす角と、の差分を、第1角として算出してもよい。
 なお、三次元データ符号化装置は、参照点13811の特定において、第2極座標系で位置が表され、且つ、符号化済みの他の第2三次元点に基づいて、第1三次元点を特定してもよい。
 以上により、三次元データ符号化装置は、符号化対象フレームの第2基準位置13808から符号化対象点13801までの距離dcurを高精度に予測することが可能となり、インター予測符号化の効率を向上できる可能性がある。
 なお、移動距離mは、GPS(Global Positioning System)、オドメータなどのセンサを用いて測定した結果や、SfM(Structure from Motion)、SLAM(Simultaneous Localization and Mapping)などを利用した自己位置推定技術を用いて導出した結果に基づいて生成されてもよい。また、これらの結果は、フレーム、スライスなどの所定のデータ単位におけるヘッダ情報や、これらのデータ単位の先頭ノードの情報に含まれてもよい。これにより、これらの結果は、三次元データ符号化装置から三次元データ復号装置へ通知されてもよい。
 また、上記の手順3において、式Z3によりdref2(k)が導出されてもよい。
 dref2(k)=(dref1(k)cos(φref1(k))-m)/cos(φref2(k))   (式Z3)
 また、三次元データ符号化装置は、インター参照点を、参照フレームの全ての参照候補点を符号化対象フレームの第2基準位置13808の第2極座標系に投影して決定してもよい。つまり、三次元データ符号化装置は、参照フレームの全ての参照候補点に対して上述した座標系変換を行い、全ての変換後候補点に基づいてインター参照点を決定してもよい。あるいは、三次元データ符号化装置は、符号化対象点13801の水平角φcur、第1基準位置13807及び第2基準位置13808の間の距離mなどに基づいて、参照フレームのセンサ13805に対する水平角の一部の範囲に含まれる点に参照候補点を限定してもよい。例えば、符号化対象点13801の水平角φcurが小さい場合、または符号化対象点が第1基準位置と第2基準位置とを結んだ方向にある場合、インター参照点を決定する処理を実施しない。また、距離mが大きい場合、第1基準位置から第2基準位置を結んだ方向において、第1基準位置よりも前方の領域にある参照候補点に限定する。これにより、インター参照点を決定する処理の処理量を抑制することができる。つまり、三次元データ符号化装置は、水平角φcur及び距離mなどに基づいて、座標系変換の対象とする参照候補点を全ての参照候補点の一部に限定することにより、座標系変換に係る処理量を抑制することができる。
 また、上記の各手順における三角関数、割り算などの演算処理は、有限の要素数からなるテーブルを用いるなどして簡単化されてもよい。簡単化により、処理量を抑制しつつインター予測符号化の効率を向上することができる。
 なお、図77~図79における基準方向13809と物体13804の同一の面(例えば平面)13810とのなす角は限定されない。すなわち、第1基準位置13807と第2基準位置13808とを結ぶ第1線の方向は、物体13804の同一の面(例えば平面)13810に含まれる水平軸に対して任意の角を取り得る。その場合であっても、上記方法を用いて、予測値を算出することができる。
 次に、図80では、LiDARなどのようにセンサ位置を中心に、当該センサの周囲の物体の三次元位置を取得して生成された点群の符号化を想定している。図80では、例えば、図77~図79を用いて説明した手順1~手順3において、三次元データ符号化装置は、符号化対象フレームのセンサ13826から符号化対象点13821を見たときの仰角θcurも考慮して、符号化対象フレームのセンサ13826から符号化対象点13821までの距離dcurの予測値dpredを決定してもよい。
 図80では、例えば、符号化対象フレームのセンサ13826の第2基準位置13828と、参照フレームのセンサ13826の第1基準位置13827と、符号化対象点13821と、インター予測における参照候補点13822との位置関係が示されている。符号化対象点13821と、参照候補点13822は、物体13823の同一の面(例えば平面)13824上の三次元位置を示す。符号化対象点13821は、符号化対象フレームの点群に含まれる。符号化対象フレームの点群は、図80では黒塗りの菱形の点で示される。参照候補点13822は、参照フレームの点群に含まれ、かつ、物体13823の面13824上の三次元位置を示す三次元点である。参照フレームは1以上の三次元点を含み、複数(例えば、n個)の三次元点に含む場合もある。参照フレームの点群は、図80では白抜きの菱形の点で示される。なお、センサ13825及びセンサ13826は、同一のセンサであってもよいし、異なるセンサ(つまり別のセンサ)であってもよい。センサ13825及びセンサ13826が同一のセンサである場合は、例えば、1つのセンサが第1基準位置13827から第2基準位置13828に、あるいは、第2基準位置13828から第1基準位置13827に移動した場合である。この場合、符号化対象フレームが生成された時刻と、参照フレームが生成された時刻とは異なる。センサ13825及びセンサ13826が異なるセンサである場合は、符号化対象フレームが生成された時刻と、参照フレームが生成された時刻とは異なっていてもよいし、同じであってもよい。
 三次元データ符号化装置は、次の手順11~手順13を実行することにより予測値dpredを決定してもよい。
 手順11では、三次元データ符号化装置は、少なくとも1点の参照候補点13822を第2基準位置13828の第2極座標系に投影し、式Z4及び式Z5により第2基準位置13828から見たi番目の参照候補点の水平角φref2(i)及び仰角θref2(i)を導出する。なお、φref2(i)、θref2(i)、dref1(i)、及び、mは、それぞれ、図80に示す第1基準位置13827における水平角及び仰角、第1基準位置からi番目の参照候補点までの距離、及び、第1基準位置13827と第2基準位置13828との間の距離(センサ間距離または移動距離)を示す。なお、水平角は、第1基準位置13827と第2基準位置13828の基準方向13829を基準とした、第1基準位置13827に対してi番目の参照候補点が存在する方向の角度である。仰角は、水平面を基準とした、第1基準位置13827に対してi番目の参照候補点が存在する方向の角度である。また、nは、i及びkを取り得る自然数である。iは、任意の自然数である。
 φref2(i)=arctan( dref1(i)sin(φref1(i)) / (dref1(i)cos(φref1(i)) - m) ) (式Z4)
 θref2(i)= arctan( ( tan(θref1(i))+(href1(i)-href2(i))/dref1(i) ) 
      × sin(φref2(i))/sin(φref1(i)) )   (式Z5)
 なお、式Z5において、href1(i)は、センサ13825の基準面からの高さを示し、href2(i)は、センサ13826の基準面からの高さを示す。
 手順12では、三次元データ符号化装置は、参照候補点13822に対応する少なくとも1つの水平角φref2(i)及び仰角θref2(i)の組合せのうちから、第2基準位置13828から符号化対象点13821を指す水平角φcur及び仰角θcurの組合せの近傍の水平角φref2(k)及び仰角θref2(k)の組合せを選択し、水平角φref2(k)及び仰角θref2(k)の組合せが指すk番目の参照候補点13822をインター予測に用いる参照点(インター参照点)として選択する。なお、kは、n組の水平角φref2及び仰角θref2のうちで、第2基準位置13828から符号化対象点13821を指す水平角φcur及び仰角θcurの近傍の水平角φref2(k)及び仰角θref2(k)の組合せであることを示す自然数である。つまり、k番目の参照候補点は、n個の参照候補点のうちで予測値の算出に用いられる参照点であり、符号化済みの第1三次元点の一例である。
 手順13では、三次元データ符号化装置は、第2基準位置13828から、インター参照点として選択された参照候補点13822までの距離dref2(k)を導出し、距離dref2(k)を予測値dpredとして決定する。
 dpred=dref2(k)= dref1(k) sin(φref1(k))/sin(φref2(k))   (式Z6)
 以上により、三次元データ符号化装置は、符号化対象フレームのセンサ13826から符号化対象点13821までの距離dcurを高精度に予測することが可能となり、インター予測符号化の効率を向上できる可能性がある。
 なお、上記の手順13において、式Z7によりdref2(k)が導出されてもよい。
 dref2(k)=(dref1(k)cos(φref1(k))-m)/cos(φref2(k))   (式Z7)
 また、三次元データ符号化装置は、インター参照点を、参照フレームの全ての参照候補点を符号化対象フレームのセンサ13826の第2基準位置13828の第2極座標系に投影して決定してもよい。つまり、三次元データ符号化装置は、参照フレームの全ての参照候補点を第2基準位置の第2極座標系に投影し、全ての変換後候補点に基づいてインター参照点を決定してもよい。あるいは、三次元データ符号化装置は、符号化対象点13821の水平角φcurまたは仰角θcur、第1基準位置13827及び第2基準位置13828間の距離mなどに基づいて、参照フレームのセンサ13825に対する水平角及び仰角の一部の範囲に含まれる点に参照候補点を限定してもよい。これにより、インター参照点を決定する処理の処理量を抑制することができる。つまり、三次元データ符号化装置は、水平角φcur、仰角θcur及び距離mなどに基づいて、座標系変換の対象とする参照候補点を全ての参照候補点の一部に限定することにより、座標系変換に係る処理量を抑制することができる。
 また、上記の各手順における三角関数、割り算などの演算処理は、有限の要素数からなるテーブルを用いて簡単化されてもよい。更に、手順11において、(href1(i)-href2(i))/dref1(i)が十分に小さいものとして、式Z8によりθref2(i)を求めてもよい。以上のような簡単化により、処理量を抑制しつつインター予測符号化の効率を向上することができる。
 θref2(i)=arctan( tan(θref1(i)) sin(φref2(i))/sin(φref1(i)) )   (式Z8)
 図81は、インター予測方法の処理手順の一例を示すフローチャートである。
 三次元データ符号化装置は、符号化対象フレームにおいて、イントラ予測点(dintra,φintra,θintra)を、インター予測の基準点として決定する(S13801)。なお、上記実施の形態で説明した各三次元点のシンタックスにように、pred_modeなどを用いてイントラ予測情報を通知し、適切なイントラ予測方法と判定された予測方法による予測値が用いられてもよいし、特定の予測方法に限定して、一部または全部のイントラ予測情報の通知が省略されてもよい。ここで、インター予測の基準点として決定されるイントラ予測点は、第2極座標系において符号化対象の三次元点の予測値の算出に用いられる三次元点であってもよい。
 次に、三次元データ符号化装置は、イントラ予測点(dintra,φintra,θintra)を参照フレームの第1極座標系に投影し、参照フレームにおける参照候補点の選択の基準となる角度(φsref,θsref)を決定する(S13802)。なお、角度(φsref,θsref)は、式Z9及び式Z10により決定されてもよい。
 φsref=arctan(dintrasin(φintra)/(dintracos(φintra)+m))   (式Z9)
 θsref= arctan(tan(θintra)sin(φsref)/sin(φintra))   (式Z10)
 次に、三次元データ符号化装置は、参照フレームにおいて角度(φsref,θsref)の近傍の角度(φref1(i), θref1(i))を有する1つ以上の三次元点を、参照候補点として所定の方法により選択する(S13803)。なお、三次元データ符号化装置は、仰角θsrefに近い角度を有するレーザ走査線を1本以上選択し、仰角θsrefに近いレーザ走査線の順に、各レーザ走査線において水平角φsrefに近い三次元点を1点以上選択し、選択した順を参照候補点のインデックスとして設定してもよい。
 次に、三次元データ符号化装置は、参照候補点(dref1(i),φref1(i),θref1(i))を符号化対象フレームの第2基準位置の第2極座標系に投影し、符号化対象フレームにおける角度(φref2(i),θref2(i))を導出する(S13804)。なお、角度(φref2(i),θref2(i))は、式Z11及び式Z12により導出されてもよい。
 φref2(i)=arctan(dref1(i)sin(φref1(i))/(dref1(i)cos(φref1(i))-m))   (式Z11)
 θref2(i)=arctan(tan(θref1(i))sin(φref2(i))/sin(φref1(i)))   (式Z12)
 次に、三次元データ符号化装置は、角度(φref2(i),θref2(i))の中から、所定の方法によりインター参照点(φref2(k),θref2(k))を選択する(S13805)。なお、三次元データ符号化装置は、角度(φcur,θcur)に最も近い角度を有する参照候補点をインター参照点として選択してもよい。このように、インター参照点は、符号化対象フレームに含まれる他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定される。そして、インター参照点は、第1極座標系で位置が表され、且つ、符号化済みの他の第1三次元点を含む複数の第1三次元点のうちで、第1極座標系から第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、符号化対象点の角度成分に最も近い。あるいは三次元データ符号化装置が所定の方法により選択したインター参照点のインデックスkを、三次元データ復号装置へ通知してもよい。例えば、上記実施の形態で説明した各三次元点のシンタックスにおいて、NumRefPoints=としてinter_ref_point_idx[ i ]にてkが通知されてもよい。また、当該シンタックスにおいて、NumRefPoints>1として複数のインター参照点が指定され、複数のdref2(k)に基づいて(例えば平均値、線形補間などにより)予測値dpredが決定されてもよい。
 次に、三次元データ符号化装置は、符号化対象フレームの第1基準位置からインター参照点までの距離dref2(k)を導出し、距離dref2(k)を予測値dpredとして決定する(S13806)。なお、距離dref2(k)は、式Z13及び式Z14のいずれかにより導出されてもよい。
 dref2(k)=dref1(k)sin(φref1(k))/sin(φref2(k))   (式Z13)
 dref2(k)=(dref1(k)cos(φref1(k))-m)/cos(φref2(k))   (式Z14)
 なお、インター参照点そのものを予測値として使用しており、φcurに対応した距離は算出されないため、式Z13を用いても、式Z14を用いても、距離dref2(k)は、同じ値となる。
 このように、三次元データ符号化装置は、符号化対象フレームのイントラ予測点を参照フレームの第1基準位置の第1極座標系に投影し、その角度を基準に1つ以上のインター参照点候補を選択してもよい。これにより、インター予測に用いる参照候補点の数を削減でき、インター予測の処理量を削減することができる。また、上記手順における三角関数、割り算などの演算処理は、有限の要素数からなるテーブルを用いて簡単化されてもよい。
 以上により、処理量を抑制しつつインター予測符号化の効率を向上できる可能性がある。
 なお、仰角θに関する演算または判定は省略されてもよく、水平角φのみを用いて演算または判定が実行されてもよい。また、本実施の形態のインター予測及びイントラ予測は、ノードまたはスライスごとに切り替えられてよいし、イントラ予測または他のインター予測とノードまたはスライスごとに切り替えて使用されてもよい。
 図78~図81を用いて説明したインター予測方法では、距離dref2(k)を導出して予測値dpredとして決定したが、図82に示すように、φcurの値に応じて予測値dpredの導出方法が切り替えられてもよい。図82は、水平角の値に応じて予測値の導出方法の切り替える第1の例について説明するための図である。図82は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。図83は、水平角φcurで規定される4つの方向のそれぞれ毎に定められる予測値dpredを導出する式を示す図である。図83のIndexは、図82で設定される仮想的な平面13840~13843がそれぞれ対応するインデックスの値0~3を示す。
 図82に示すように対象物として水平面(基準面)に垂直な仮想的な平面を前後左右の4方向に設定し、水平角φcurで区分される4つの範囲のそれぞれごとに、図83に示す式により予測値dpredを導出する。つまり、三次元データ符号化装置は、符号化対象点の水平角φcurを取得し、図85に示される水平角φcurに応じた式に基づいて予測値dpredを導出する。なお、図82の例では、|φcur|≦π、0<α<π/2としている。αは、α=π/6など予め定めた定数としてもよい。また、αは、シーケンス、フレーム、スライスなどの所定のデータ単位におけるヘッダ情報に含まれてもよい。これにより、αは、三次元データ符号化装置から三次元データ復号装置へ通知されて、変更可能とされてもよい。また、各範囲の境界線をいずれの範囲に含めるかは、符号化処理と復号処理とで一致していればよく、必ずしも図83のとおりでなくてもよい。
 このように、三次元データ符号化装置は、第1平面上の複数の三次元点に対する予測符号化における予測値の第1決定方法と、第2平面上の複数の三次元点に対する予測符号化における予測値の第2決定方法とを異ならせてもよい。予測符号化は、上述したとおり、符号化対象フレームの符号化対象点を、符号化対象フレームとは異なる参照フレームの参照候補点を用いて予測符号化するインター予測である。第1平面は、第1基準位置及び第2基準位置に第3方向で対向する平面であり、基準面に垂直な平面である。第2平面は、第1基準位置及び第2基準位置に第4方向で対向する平面であり、基準面に垂直な平面である。第3方向と、第4方向とは、互いに異なる方向である。第1平面上の複数の三次元点の一部は、参照フレームに含まれる複数の第1三次元点に含まれる。第1平面上の複数の三次元点の一部は、符号化対象フレームに含まれる複数の第2三次元点に含まれる。第2平面上の複数の三次元点の一部は、参照フレームに含まれる複数の第1三次元点に含まれる。第2平面上の複数の三次元点の他の一部は、第2フレームに含まれる複数の第2三次元点に含まれる。
 以上により、符号化対象フレームの第2基準位置から符号化対象点までの距離dcurを、第2基準位置から距離m離れた第1基準位置の参照フレームのセンサ13845により得られたの点群に基づいて、図78~図81を用いて説明したインター予測方法より高精度に予測することができ、インター予測符号化の効率を更に向上させることができる。
 なお、図83における三角関数、割り算などの演算処理は、有限の要素数からなるテーブルを用いるなどして簡単化されてもよい。簡単化により、処理量を抑制しつつインター予測符号化の効率を向上させることができる。
 図82及び図83を用いて説明した前後左右の4方向の予測値dpredの4つの導出方法に、更に上記4方向の間の4つの斜め方向の4つの導出方法を加え、図84に示すように8方向で導出方法が切り替えられてもよい。図84は、水平角の値に応じて予測値の導出方法の切り替える第2の例について説明するための図である。図84は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。図85は、水平角φcurで規定される8つの方向のそれぞれ毎に定められる予測値dpredを導出する式を示す図である。図85のIndexは、図84で設定される仮想的な平面13840~13843がそれぞれ対応するインデックスの値0~7を示す。
 図84に示すように対象物として水平面(基準面)に垂直な仮想的な平面を前後左右の4方向と、当該4方向の間の4つの斜め方向との8方向に設定し、水平角φcurで区分される8つの範囲のそれぞれに、図85に示す式により予測値dpredを導出する。つまり、三次元データ符号化装置は、符号化対象点の水平角φcurを取得し、図85に示される水平角φcurに応じた式に基づいて予測値dpredを導出する。なお、図84の例では、|φcur|≦π、0<α<π/2、0<β<π/2-αとしている。α及びβは、α=π/6、β=π/4など予め定めた定数としてもよい。また、α及びβは、シーケンス、フレーム、スライスなどの所定のデータ単位におけるヘッダ情報に含まれてもよい。これにより、α及びβは、三次元データ符号化装置から三次元データ復号装置へ通知されて、変更可能とされてもよい。また、各範囲の境界線をいずれの範囲に含めるかは、符号化処理と復号処理とで一致していればよく、必ずしも図85のとおりでなくてもよい。
 以上により、符号化対象フレームの第2基準位置から符号化対象点までの距離dcurを、センサ13846から距離m離れた第1基準位置の参照フレームのセンサ13845により得られた点群に基づいて、図78~図83を用いて説明したインター予測方法より高精度に予測することでき、インター予測符号化の効率を更に向上させることができる。
 なお、図85における三角関数、割り算などの演算処理は、有限の要素数からなるテーブルを用いるなどして簡単化されてもよい。簡単化により、処理量を抑制しつつインター予測符号化の効率を向上できる可能性がある。
 なお、図78~図85を用いて開示した処理は、他の実施の形態の少なくとも一部と組み合わせて実施されてもよい。また、図78~図85を用いて開示した処理の一部などは、他の実施の形態と組み合わせて実施されてもよい。また、三次元データ符号化装置または三次元データ復号装置は、図78~図85を用いて開示したすべての構成要素の全てを備えていなくてもよく、一部の構成要素のみを備えていてもよい。
 図86は、8方向の予測値の導出方法を示すインデックスが0の場合の予測値の算出方法について説明するための図である。
 図86では、例えば、符号化対象フレームの点群の計測時におけるセンサ13865の第2基準位置13867と、参照フレームの点群の計測時におけるセンサ13864の第1基準位置13866と、符号化対象点13861と、インター予測における参照候補点13862との位置関係が示されている。図86は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。符号化対象点13861と、参照候補点13862は、物体13863の同一の面(例えば平面)13869上の三次元位置を示す。符号化対象点13861は、符号化対象フレームの点群に含まれる。符号化対象フレームの点群は、図86では黒塗りの菱形の点で示される。
 また、図86では、センサ13864から参照候補点13862までの距離dref1(k)と、センサ13864の基準方向13868に対する参照候補点13862の方向を示す水平角φref1(k)と、第2基準位置13867から参照候補点13862までの距離dref2(k)と、センサ13865の基準方向13868に対する参照候補点13862の方向を示す水平角φref2(k)と、第2基準位置13867から符号化対象点13861までの距離dpredと、が示されている。
 この場合、式Z15及び式Z16が成り立つ。
 φref2(k)=arctan( dref1(k)sin(φref1(k)) / (dref1(k)cos(φref1(k)) - m) )   (式Z15)
 dpred = (dref1(k)cos(φref1(k)) - m) / cos(φcur)   (式Z16)
 図87は、8方向の予測値の導出方法を示すインデックスが2の場合の予測値の算出方法について説明するための図である。
 図87では、例えば、符号化対象フレームの点群の計測時におけるセンサ13875の第2基準位置13877と、参照フレームの点群の計測時におけるセンサ13874の第1基準位置13876と、符号化対象点13871と、インター予測における参照候補点13872との位置関係が示されている。図87は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。符号化対象点13871と、参照候補点13872は、物体13863の同一の面(例えば平面)13880上の三次元位置を示す。符号化対象点13871は、符号化対象フレームの点群に含まれる。符号化対象フレームの点群は、図87では黒塗りの菱形の点で示される。
 また、図87では、第1基準位置13876から参照候補点13872までの距離dref1(k)と、センサ13874の基準方向13878に対する参照候補点13872の方向を示す水平角φref1(k)と、第2基準位置13877から参照候補点13872までの距離dref2(k)と、センサ13875の基準方向13878に対する参照候補点13872の方向を示す水平角φref2(k)と、第2基準位置13877から符号化対象点13871までの距離dpredと、が示されている。
 この場合、式Z17及び式Z18が成り立つ。
 φref2(k)=arctan( dref1(k)sin(φref1(k)) / (dref1(k)cos(φref1(k)) - m) )   (式Z17)
 dpred = dref1(k)sin(φref1(k)) / sin(φcur)   (式Z18)
 図88は、8方向の予測値の導出方法を示すインデックスが1の場合の予測値の算出方法について説明するための図である。
 図88では、例えば、符号化対象フレームの点群の計測時におけるセンサ13885の第2基準位置13887と、参照フレームの点群の計測時におけるセンサ13884の第1基準位置13886と、符号化対象点13881と、インター予測における参照候補点13882との位置関係が示されている。図88は、例えば、LiDARなどのセンサのように所定の軸(回転軸)を中心にレーザを放出して物体との間の距離を計測するセンサである場合、軸方向から見た場合の平面図である。符号化対象点13881と、参照候補点13882は、物体13883の同一の面(例えば平面)13890上の三次元位置を示す。符号化対象点13881は、符号化対象フレームの点群に含まれる。符号化対象フレームの点群は、図88では黒塗りの菱形の点で示される。
 また、図88では、第1基準位置13886から参照候補点13882までの距離dref1(k)と、センサ13884の基準方向13888に対する参照候補点13882の方向を示す水平角φref1(k)と、第2基準位置13887から参照候補点13882までの距離dref2(k)と、センサ13885の基準方向13888に対する参照候補点13882の方向を示す水平角φref2(k)と、第2基準位置13887から符号化対象点13881までの距離dpredと、が示されている。
 この場合、式Z19及び式Z20が成り立つ。
 φref2(k)=arctan( dref1(k)sin(φref1(k)) / (dref1(k)cos(φref1(k)) - m) )   (式Z19)
 dpred =(dref1(k)( sin(φref1(k))+cos(φref1(k)) )-m)/ (sin(φcur)+cos(φcur))   (式Z20)
 また、式Z21~式Z23も成り立つ。
 dpredsin(φcur)-dref1(k)sin(φref1(k))= dref1(k)cos(φref1(k))-m -dpredcos(φcur)   (式Z21)
 dpredsin(φcur)+dpredcos(φcur) =dref1(k)cos(φref1(k))-m+dref1(k)sin(φref1(k))   (式Z22)
 dpred =(dref1(k)( sin(φref1(k))+cos(φref1(k)) )-m)/ (sin(φcur)+cos(φcur))   (式Z23)
 以上のように、本実施の形態に係る三次元データ符号化装置は、図89に示す処理を行う。三次元データ符号化装置は、第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定する(S13801)。次に、三次元データ符号化装置は、第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の第2位置からの第2距離の予測値を算出するために、(i)第1位置と第2位置との間の距離、(ii)第1位置と第2位置とを結ぶ第1線と、第1位置と第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)第1極座標系における第1三次元点の第1位置からの第1距離、を特定する(S13802)。
 第1三次元点と、第2三次元点とは、異なる極座標系で表現される。このため、三次元データ符号化装置は、符号化対象の第2三次元点を、第1三次元点を用いて予測符号化する場合、第1三次元点を、例えば、第2極座標系に投影することで、第1位置と第2位置との間の距離、第1角、及び、第1距離を特定する。これにより、符号化対象の第2三次元点と、参照する第1三次元点との座標系を統一することができるため、第2三次元点とは異なる極座標系で位置が表される第1三次元点に基づいて、符号化対象の第2三次元点を予測符号化することができる。よって、符号化対象の第2三次元点を高精度に予測することができ、予測符号化の符号化効率を向上させることができる。
 例えば、三次元データ符号化装置は、未符号化の第2三次元点の第2極座標系における位置の予測値を算出するために、(i)第1位置と第2位置との間の距離、(ii)第1角、及び(iii)第1距離を用いて、(iv)第1線と、第2位置及び第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)第2極座標系における第1三次元点の第2位置からの第2距離、を算出する。これによれば、符号化対象の第2三次元点と、参照する第1三次元点との座標系を統一することができるため、第1線と第3線とのなす角と、第1三次元点の第2座標系における第2位置からの第2距離とに基づいて、符号化対象の第2三次元点を予測符号化することができる。
 例えば、三次元データ符号化装置は、算出(S13802)において、第1線と第1極座標系における水平角の基準線とが揃う場合、第1距離と、第1角としての第1水平角とを用いて、第2角を算出する。第1水平角は、第1三次元点の位置を表す極座標成分のうちの水平角の成分である。このため、第1角を算出するための処理負荷を低減することができる。
 例えば、三次元データ符号化装置は、第1三次元点の特定(S13801)において、第2極座標系で位置が表され、且つ、符号化済みの他の第2三次元点に基づいて、第1三次元点を特定する。
 これによれば、符号化対象の第2三次元点を予測するために予め特定した符号化済みの他の第2三次元点に基づいて、第1三次元点を特定するため、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、他の第2三次元点は、第2極座標系において第2三次元点の予測値の算出に用いられる三次元点である。
 これによれば、符号化対象の第2三次元点の予測値の算出に用いられる他の第2三次元点に基づいて第1三次元点を決定するため、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、第1三次元点は、他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定される。
 これによれば、符号化対象の第2三次元点に近い第1三次元点を複数の第1三次元点の中から選択することができる。よって、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、第1三次元点は、第1極座標系で位置が表され、且つ、符号化済みの他の第1三次元点を含む複数の第1三次元点のうちで、第1極座標系から第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、第2三次元点の角度成分に近い。
 これによれば、符号化対象の第2三次元点に近い三次元点を複数の第1三次元点の中から選択することができる。よって、符号化対象の第2三次元点を高精度に予測することができる。
 例えば、複数の第1三次元点は、基準面上の空間において第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られる。また、複数の第2三次元点は、基準面上の空間において第2位置周りの複数の第2方向のそれぞれ毎における物体までの距離計測により得られる。また、複数の第1三次元点は、第1三次元点を含み、且つ、第1極座標系でそれぞれの位置が表される。また、複数の第2三次元点は、第2三次元点を含み、且つ、第2極座標系でそれぞれの位置が表される。
 例えば、第1位置及び第2位置に第3方向で対向する第1平面であって、基準面に垂直な第1平面上の複数の三次元点に対する予測符号化における予測値の第1決定方法と、第1位置及び前記第2位置に第42方向で対向する第2平面であって、基準面に垂直な第2平面上の複数の三次元点に対する予測符号化における予測値の第2決定方法とは異なる。第3方向と第4方向とは、異なる。第1平面上の複数の三次元点の一部は、複数の第1三次元点に含まれる。第1平面上の複数の三次元点の一部は、複数の第2三次元点に含まれる。第2平面上の複数の三次元点の一部は、複数の第1三次元点に含まれる。第2平面上の複数の三次元点の一部は、複数の第2三次元点に含まれる。
 このため、各方向に応じた決定方法を用いて1以上の候補点を選択するため、符号化対象の1つの三次元点をより高精度に予測することができ、予測符号化の符号化効率をより向上させることができる。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図90に示す処理を行う。三次元データ復号装置は、第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定する(S13811)。次に、三次元データ復号装置は、第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の第2位置からの第2距離の予測値を算出するために、(i)第1位置と第2位置との間の距離、(ii)第1位置と第2位置とを結ぶ第1線と、第1位置と第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)第1極座標系における第1三次元点の第1位置からの第1距離、を特定する(S13812)。
 これによれば、三次元データ符号化方法と同様の方法を用いて予測値を算出するため、復号対象の第2三次元点を正しく復号することができる。
 例えば、三次元データ復号装置は、未復号の第2三次元点の第2極座標系における位置の予測値を算出するために、(i)第1位置と第2位置との間の距離、(ii)第1角、及び(iii)第1距離を用いて、(iv)第1線と、第2位置及び第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)第2極座標系における第1三次元点の第2位置からの第2距離、を算出する。
 例えば、三次元データ復号装置は、算出では、第1線と第1極座標系における水平角の基準線とが揃う場合、第1距離と、第1角としての第1水平角とを用いて、第2角を算出する。第1水平角は、第1三次元点の位置を表す極座標成分のうちの水平角の成分である。
 例えば、三次元データ復号装置は、第1三次元点の特定では、第2極座標系で位置が表され、且つ、復号済みの他の第2三次元点に基づいて、第1三次元点を特定する。
 例えば、他の第2三次元点は、符号化対象の三次元点の予測値の算出に用いられる三次元点である。
 例えば、第1三次元点は、他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定される。
 例えば、第1三次元点は、第1極座標系で位置が表され、且つ、符号化済みの他の第1三次元点を含む複数の第1三次元点のうちで、第1極座標系から第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、第2三次元点の角度成分に近い。
 例えば、複数の第1三次元点は、基準面上の空間において第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られる。また、複数の第2三次元点は、基準面上の空間において第2位置周りの複数の第2方向のそれぞれ毎における物体までの距離計測により得られる。複数の第1三次元点は、第1三次元点を含み、且つ、第1極座標系でそれぞれの位置が表される。複数の第2三次元点は、第2三次元点を含み、且つ、第2極座標系でそれぞれの位置が表される。
 例えば、第1位置及び第2位置に第3方向で対向する第1平面であって、基準面に垂直な第1平面上の複数の三次元点に対する予測復号における予測値の第1決定方法と、第1位置及び第2位置に第4方向で対向する第2平面であって、基準面に垂直な第2平面上の複数の三次元点に対する予測復号における予測値の第2決定方法とは異なる。第3方向と第4方向とは、異なる。第1平面上の複数の三次元点の一部は、複数の第1三次元点に含まれる。第1平面上の複数の三次元点の一部は、複数の第2三次元点に含まれる。第2平面上の複数の三次元点の一部は、複数の第1三次元点に含まれる。第2平面上の複数の三次元点の一部は、複数の第2三次元点に含まれる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態9)
 次に、本実施の形態に係る三次元データ作成装置810の構成を説明する。図91は、本実施の形態に係る三次元データ作成装置810の構成例を示すブロック図である。この三次元データ作成装置810は、例えば、車両に搭載される。三次元データ作成装置810は、外部の交通監視クラウド、前走車両又は後続車両と三次元データの送受信を行うとともに、三次元データを作成及び蓄積する。
 三次元データ作成装置810は、データ受信部811と、通信部812と、受信制御部813と、フォーマット変換部814と、複数のセンサ815と、三次元データ作成部816と、三次元データ合成部817と、三次元データ蓄積部818と、通信部819と、送信制御部820と、フォーマット変換部821と、データ送信部822とを備える。
 データ受信部811は、交通監視クラウド又は前走車両から三次元データ831を受信する。三次元データ831は、例えば、自車両のセンサ815で検知不能な領域を含む、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
 通信部812は、交通監視クラウド又は前走車両と通信し、データ送信要求などを交通監視クラウド又は前走車両に送信する。
 受信制御部813は、通信部812を介して、対応フォーマット等の情報を通信先と交換し、通信先との通信を確立する。
 フォーマット変換部814は、データ受信部811が受信した三次元データ831にフォーマット変換等を行うことで三次元データ832を生成する。また、フォーマット変換部814は、三次元データ831が圧縮又は符号化されている場合には、伸張又は復号処理を行う。
 複数のセンサ815は、LiDAR、可視光カメラ又は赤外線カメラなどの、車両の外部の情報を取得するセンサ群であり、センサ情報833を生成する。例えば、センサ情報833は、センサ815がLiDARなどのレーザセンサである場合、ポイントクラウド(点群データ)等の三次元データである。なお、センサ815は複数でなくてもよい。
 三次元データ作成部816は、センサ情報833から三次元データ834を生成する。三次元データ834は、例えば、ポイントクラウド、可視光映像、奥行き情報、センサ位置情報、又は速度情報などの情報を含む。
 三次元データ合成部817は、自車両のセンサ情報833に基づいて作成された三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ832を合成することで、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
 三次元データ蓄積部818は、生成された三次元データ835等を蓄積する。
 通信部819は、交通監視クラウド又は後続車両と通信し、データ送信要求などを交通監視クラウド又は後続車両に送信する。
 送信制御部820は、通信部819を介して、対応フォーマット等の情報を通信先と交換し、通信先と通信を確立する。また、送信制御部820は、三次元データ合成部817で生成された三次元データ832の三次元データ構築情報と、通信先からのデータ送信要求とに基づき、送信対象の三次元データの空間である送信領域を決定する。
 具体的には、送信制御部820は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む送信領域を決定する。また、送信制御部820は、三次元データ構築情報に基づいて送信可能な空間又は送信済み空間の更新有無等を判断することで送信領域を決定する。例えば、送信制御部820は、データ送信要求で指定された領域であり、かつ、対応する三次元データ835が存在する領域を送信領域に決定する。そして、送信制御部820は、通信先が対応するフォーマット、及び送信領域をフォーマット変換部821に通知する。
 フォーマット変換部821は、三次元データ蓄積部818に蓄積されている三次元データ835のうち、送信領域の三次元データ836を、受信側が対応しているフォーマットへ変換することで三次元データ837を生成する。なお、フォーマット変換部821は、三次元データ837を圧縮又は符号化することでデータ量を削減してもよい。
 データ送信部822は、三次元データ837を交通監視クラウド又は後続車両に送信する。この三次元データ837は、例えば、後続車両の死角になる領域を含む、自車両の前方のポイントクラウド、可視光映像、奥行き情報、又はセンサ位置情報などの情報を含む。
 なお、ここでは、フォーマット変換部814及び821にてフォーマット変換等が行われる例を述べたが、フォーマット変換は行われなくてもよい。
 このような構成により、三次元データ作成装置810は、自車両のセンサ815では検知できない領域の三次元データ831を外部から取得し、三次元データ831と自車両のセンサ815で検知したセンサ情報833に基づく三次元データ834とを合成することで三次元データ835を生成する。これにより、三次元データ作成装置810は、自車両のセンサ815で検知できない範囲の三次元データを生成できる。
 また、三次元データ作成装置810は、交通監視クラウド又は後続車両からのデータ送信要求に応じて、後続車両のセンサでは検知できない自車両の前方の空間を含む三次元データを、交通監視クラウド又は後続車両等へ送信できる。
 次に、三次元データ作成装置810における後続車両への三次元データの送信手順について説明する。図92は、三次元データ作成装置810による交通監視クラウド又は後続車両へ三次元データを送信する手順の一例を示すフローチャートである。
 まず、三次元データ作成装置810は、自車両の前方道路上の空間を含む空間の三次元データ835を生成及び更新する(S801)。具体的には、三次元データ作成装置810は、自車両のセンサ情報833に基づいて作成した三次元データ834に、交通監視クラウド又は前走車両等が作成した三次元データ831を合成するなどして、自車両のセンサ815では検知できない前走車両の前方の空間も含む三次元データ835を構築する。
 次に、三次元データ作成装置810は、送信済みの空間に含まれる三次元データ835が変化したかを判定する(S802)。
 送信済みの空間に外部から車両又は人が進入するなどして、当該空間に含まれる三次元データ835に変化が生じた場合には(S802でYes)、三次元データ作成装置810は、変化が生じた空間の三次元データ835を含む三次元データを交通監視クラウド又は後続車両に送信する(S803)。
 なお、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データの送信タイミングに合わせて送信してもよいが、変化を検知した後すぐに送信してもよい。つまり、三次元データ作成装置810は、変化が生じた空間の三次元データを、所定間隔で送信する三次元データよりも優先して送信してもよい。
 また、三次元データ作成装置810は、変化が生じた空間の三次元データとして、変化が生じた空間の三次元データの全てを送信してもよいし、三次元データの差分(例えば出現又は消失した三次元点の情報、又は三次元点の変位情報など)のみを送信してもよい。
 また、三次元データ作成装置810は、変化が生じた空間の三次元データに先行して、急制動警報など自車両の危険回避動作に関するメタデータを後続車両へ送信してもよい。これによれば、後続車両は前走車両の急制動などを早期に認知でき、より早期に減速などの危険回避動作を開始できる。
 送信済みの空間に含まれる三次元データ835に変化が生じていない場合(S802でNo)、又は、ステップS803の後、三次元データ作成装置810は、自車両の前方距離Lにある所定の形状の空間に含まれる三次元データを、交通監視クラウド又は後続車両へ送信する(S804)。
 また、例えば、ステップS801~S804の処理は、所定の時間間隔で繰り返し行われる。
 また、三次元データ作成装置810は、現在の送信対象の空間の三次元データ835と、三次元地図とに差がない場合には、空間の三次元データ837を送信しなくてもよい。
 本実施の形態では、クライアント装置は、サーバ又は他のクライアント装置にセンサで得られたセンサ情報を送信する。
 まず、本実施の形態に係るシステムの構成を説明する。図93は、本実施の形態に係る三次元マップ及びセンサ情報の送受信システムの構成を示す図である。このシステムは、サーバ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に送信するセンサ情報のデータ量を設定するというのは、例えば、当該データそのものを増減させること、又は圧縮方式を適宜選択することである。
 図94は、クライアント装置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の構成を説明する。図95は、サーバ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の動作フローについて説明する。図96は、クライアント装置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)。
 図97は、クライアント装置902によるセンサ情報の送信時の動作を示すフローチャートである。まず、クライアント装置902は、サーバ901からセンサ情報の送信要求を受信する(S1011)。送信要求を受信したクライアント装置902は、センサ情報1037をサーバ901に送信する(S1012)。なお、クライアント装置902は、センサ情報1033が複数のセンサ1015で得られた複数の情報を含む場合、各情報を、各情報に適した圧縮方式で圧縮することでセンサ情報1037を生成してもよい。
 次に、サーバ901の動作フローについて説明する。図98は、サーバ901によるセンサ情報の取得時の動作を示すフローチャートである。まず、サーバ901は、クライアント装置902へセンサ情報の送信を要求する(S1021)。次に、サーバ901は、当該要求に応じてクライアント装置902から送信されたセンサ情報1037を受信する(S1022)。次に、サーバ901は、受信したセンサ情報1037を用いて三次元データ1134を作成する(S1023)。次に、サーバ901は、作成した三次元データ1134を三次元マップ1135に反映する(S1024)。
 図99は、サーバ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は、交通監視クラウド等のサーバのみに限定されず、他のクライアント装置(車載)であってもよい。図100は、この場合のシステム構成を示す図である。
 例えば、クライアント装置902Cが近くにいるクライアント装置902Aにセンサ情報の送信要求を出し、クライアント装置902Aからセンサ情報を取得する。そして、クライアント装置902Cは、取得したクライアント装置902Aのセンサ情報を用いて三次元データを作成し、クライアント装置902Cの三次元マップを更新する。これにより、クライアント装置902Cは、クライアント装置902Aから取得可能な空間の三次元マップを、クライアント装置902Cの性能を活かして生成できる。例えば、クライアント装置902Cの性能が高い場合に、このようなケースが発生すると考えられる。
 また、この場合、センサ情報を提供したクライアント装置902Aは、クライアント装置902Cが生成した高精度な三次元マップを取得する権利が与えられる。クライアント装置902Aは、その権利に従ってクライアント装置902Cから高精度な三次元マップを受信する。
 また、クライアント装置902Cは近くにいる複数のクライアント装置902(クライアント装置902A及びクライアント装置902B)にセンサ情報の送信要求を出してもよい。クライアント装置902A又はクライアント装置902Bのセンサが高性能である場合には、クライアント装置902Cは、この高性能なセンサで得られたセンサ情報を用いて三次元データを作成できる。
 図101は、サーバ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は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 以下、変形例について説明する。図102は、本実施の形態に係るシステムの構成を示す図である。図102に示すシステムは、サーバ2001と、クライアント装置2002Aと、クライアント装置2002Bとを含む。
 クライアント装置2002A及びクライアント装置2002Bは、車両等の移動体に搭載され、センサ情報をサーバ2001に送信する。サーバ2001は、三次元マップ(ポイントクラウド)をクライアント装置2002A及びクライアント装置2002Bに送信する。
 クライアント装置2002Aは、センサ情報取得部2011と、記憶部2012と、データ送信可否判定部2013とを備える。なお、クライアント装置2002Bの構成も同様である。また、以下ではクライアント装置2002Aとクライアント装置2002Bとを特に区別しない場合には、クライアント装置2002とも記載する。
 図103は、本実施の形態に係るクライアント装置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は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行ってもよい。
 次に、本実施の形態に係るセンサ情報収集システムについて説明する。図104は、本実施の形態に係るセンサ情報収集システムの構成を示す図である。図104に示すように本実施の形態に係るセンサ情報収集システムは、端末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は、例えば図94に示したクライアント装置902の構成を備える。端末2021は、受信した三次元データを用いて自己位置などの位置推定を行う。また、端末2021は、センサから取得したセンサデータと位置推定の処理により得られた位置情報とを対応付けて位置関連データを生成する。
 位置関連データに付加される位置情報は、例えば、三次元データで用いられている座標系における位置を示す。例えば、位置情報は、緯度及び経度の値で表される座標値である。このとき、端末2021は、座標値と共に当該座標値の基準となる座標系、及び位置推定に用いた三次元データを示す情報を位置情報に含めてもよい。また、座標値は高度の情報を含んでいてもよい。
 また、位置情報は、前述した三次元データの符号化に用いることができるデータの単位又は空間の単位に対応付けられていてもよい。この単位とは、例えば、WLD、GOS、SPC、VLM、又はVXLなどである。このとき、位置情報は、例えば位置関連データに対応するSPCなどのデータ単位を特定するための識別子で表現される。なお、位置情報は、SPCなどのデータ単位を特定するための識別子に加えて、当該SPCなどのデータ単位を含む三次元空間を符号化した三次元データを示す情報、又は当該SPC内での詳細な位置を示す情報などを含んでいてもよい。三次元データを示す情報とは、例えば、当該三次元データのファイル名である。
 このように、当該システムは、三次元データを用いた位置推定に基づく位置情報と対応付けた位置関連データを生成することにより、GPSを用いて取得されたクライアント装置(端末2021)の自己位置に基づく位置情報をセンサ情報に付加する場合よりも精度の高い位置情報をセンサ情報に付与することができる。その結果、位置関連データを他の装置が他のサービスにおいて利用する場合においても、同じ三次元データに基づいて位置推定を行うことで、位置関連データに対応する位置を実空間でより正確に特定できる可能性がある。
 なお、本実施の形態では、端末2021から送信されるデータが位置関連データの場合を例に挙げて説明したが、端末2021から送信されるデータは位置情報と関連付けられていないデータであってもよい。すなわち、他の実施の形態で説明した三次元データ又はセンサデータの送受信が本実施の形態で説明したネットワーク2023を介して行われてもよい。
 次に、三次元又は二次元の実空間又は地図空間における位置を示す位置情報の異なる例について説明する。位置関連データに付加される位置情報は、三次元データ中の特徴点に対する相対位置を示す情報であってもよい。ここで、位置情報の基準となる特徴点は、例えばSWLDとして符号化され、三次元データとして端末2021に通知された特徴点である。
 特徴点に対する相対位置を示す情報は、例えば、特徴点から位置情報が示す点までのベクトルで表され、特徴点から位置情報が示す点までの方向と距離を示す情報であってもよい。または、特徴点に対する相対位置を示す情報は、特徴点から位置情報が示す点までのX軸、Y軸、Z軸のそれぞれの変位量を示す情報であってもよい。また、特徴点に対する相対位置を示す情報は、3以上の特徴点のそれぞれから位置情報が示す点までの距離を示す情報であってもよい。なお、相対位置は、各特徴点を基準として表現された位置情報が示す点の相対位置ではなく、位置情報が示す点を基準として表現された各特徴点の相対位置であってもよい。特徴点に対する相対位置に基づく位置情報の一例は、基準となる特徴点を特定するための情報と、当該特徴点に対する位置情報が示す点の相対位置を示す情報とを含む。また、特徴点に対する相対位置を示す情報が三次元データとは別に提供される場合、特徴点に対する相対位置を示す情報は、相対位置の導出に用いた座標軸、三次元データの種類を示す情報、又は/及び相対位置を示す情報の値の単位量あたりの大きさ(縮尺など)を示す情報などを含んでいてもよい。
 また、位置情報は、複数の特徴点について、各特徴点に対する相対位置を示す情報を含んでいてもよい。位置情報を複数の特徴点に対する相対位置で表した場合、実空間において当該位置情報が示す位置を特定しようとする端末2021は、特徴点ごとにセンサデータから推定した当該特徴点の位置から位置情報が示す位置の候補点を算出し、算出された複数の候補点を平均して求めた点を位置情報が示す点であると判定してもよい。この構成によると、センサデータから特徴点の位置を推定する際の誤差の影響を軽減できるため、実空間における位置情報が示す点の推定精度を向上できる。また、位置情報が複数の特徴点に対する相対位置を示す情報を含む場合、端末2021が備えるセンサの種類又は性能などの制約で検出できない特徴点がある場合であっても、複数の特徴点のいずれか一つでも検出することができれば位置情報が示す点の値を推定することが可能となる。
 特徴点として、センサデータから特定可能な点を用いことができる。センサデータから特定可能な点とは、例えば、前述した三次元特徴量又は可視光データの特徴量が閾値以上であるなど特徴点検出用の所定の条件を満たす点又は領域内の点である。
 また、実空間に設置されたマーカなどを特徴点として用いてもよい。この場合、マーカは、LiDER又はカメラなどのセンサを用いて取得されたデータから検出及び位置の特定が可能であればよい。例えば、マーカは、色或いは輝度値(反射率)の変化、又は、三次元形状(凹凸など)で表現される。また、当該マーカの位置を示す座標値、又は当該マーカの識別子から生成された二次元コード又はバーコードなどが用いられてもよい。
 また、光信号を送信する光源をマーカとして用いてもよい。光信号の光源をマーカとして用いる場合、座標値又は識別子などの位置を取得するための情報だけでなく、その他のデータが光信号により送信されてもよい。例えば、光信号は、当該マーカの位置に応じたサービスのコンテンツ、コンテンツを取得するためのurlなどのアドレス、又はサービスの提供を受けるための無線通信装置の識別子と、当該無線通信装置と接続するための無線通信方式などを示す情報を含んでもよい。光通信装置(光源)をマーカとして用いることで、位置を示す情報以外のデータの送信が容易になると共に、当該データを動的に切り替えることが可能となる。
 端末2021は、互いに異なるデータ間での特徴点の対応関係を、例えば、データ間で共通に用いられる識別子、又は、データ間の特徴点の対応関係を示す情報或いはテーブルを用いて把握する。また、特徴点間の対応関係を示す情報がない場合、端末2021は、一方の三次元データにおける特徴点の座標を他方の三次元データ空間上の位置に変換した場合に最も近い距離にある特徴点を対応する特徴点であると判定してもよい。
 以上で説明した相対位置に基づく位置情報を用いた場合、互いに異なる三次元データを用いる端末2021又はサービス間であっても、各三次元データに含まれる、又は各三次元データと対応付けられた共通の特徴点を基準に位置情報が示す位置を特定、又は推定することができる。その結果、互いに異なる三次元データを用いる端末2021又はサービス間で、同じ位置をより高い精度で特定又は推定することが可能となる。
 また、互いに異なる座標系を用いて表現された地図データ又は三次元データを用いる場合であっても、座標系の変換に伴う誤差の影響を低減できるため、より高精度な位置情報に基づくサービスの連携が可能となる。
 以下、データ収集サーバ2024が提供する機能の例について説明する。データ収集サーバ2024は、受信した位置関連データを他のデータサーバに転送してもよい。データサーバが複数ある場合、データ収集サーバ2024は、受信した位置関連データをどのデータサーバに転送するかを判定して、転送先として判定されたデータサーバ宛に位置関連データを転送する。
 データ収集サーバ2024は、転送先の判定を、例えば、データ収集サーバ2024に事前に設定された転送先サーバの判定ルールに基づいて行う。転送先サーバの判定ルールとは、例えば、各端末2021に対応付けられた識別子と転送先のデータサーバとを対応付けた転送先テーブルなどで設定される。
 端末2021は、送信する位置関連データに対して当該端末2021に対応付けられた識別子を付加してデータ収集サーバ2024に送信する。データ収集サーバ2024は、位置関連データに付加された識別子に対応する転送先のデータサーバを転送先テーブルなどを用いた転送先サーバの判定ルールに基づいて特定し、当該位置関連データを特定されたデータサーバに送信する。また、転送先サーバの判定ルールは、位置関連データが取得された時間又は場所などを用いた判定条件で指定されてもよい。ここで、上述した送信元の端末2021に対応付けられた識別子とは、例えば各端末2021に固有の識別子、又は端末2021が属するグループを示す識別子などである。
 また、転送先テーブルは、送信元の端末に対応付けられた識別子と転送先のデータサーバとを直接対応付けたものでなくてもよい。例えば、データ収集サーバ2024は、端末2021に固有の識別子毎に付与されたタグ情報を格納した管理テーブルと、当該タグ情報と転送先のデータサーバを対応付けた転送先テーブルとを保持する。データ収集サーバ2024は、管理テーブルと転送先テーブルとを用いてタグ情報に基づく転送先のデータサーバを判定してもよい。ここで、タグ情報は、例えば当該識別子に対応する端末2021の種類、型番、所有者、所属するグループ又はその他の識別子に付与された管理用の制御情報又はサービス提供用の制御情報である。また、転送先テーブルに、送信元の端末2021に対応付けられた識別子の代わりに、センサ毎に固有の識別子が用いられてもよい。また、転送先サーバの判定ルールは、クライアント装置2026から設定できてもよい。
 データ収集サーバ2024は、複数のデータサーバを転送先として判定し、受信した位置関連データを当該複数のデータサーバに転送してもよい。この構成によると、例えば、位置関連データを自動的にバックアップする場合、又は位置関連データを異なるサービスで共通に利用するために、各サービスを提供するためのデータサーバに対して位置関連データを送信する必要がある場合に、データ収集サーバ2024に対する設定を変更ことで意図通りのデータの転送を実現できる。その結果、個別の端末2021に位置関連データの送信先を設定する場合と比較して、システムの構築及び変更に要する工数を削減することができる。
 データ収集サーバ2024は、データサーバから受信した転送要求信号に応じて、転送要求信号で指定されたデータサーバを新たな転送先として登録し、以降に受信した位置関連データを当該データサーバに転送してもよい。
 データ収集サーバ2024は、端末2021から受信した位置関連データを記録装置に保存し、端末2021又はデータサーバから受信した送信要求信号に応じて、送信要求信号で指定された位置関連データを、要求元の端末2021又はデータサーバに送信してもよい。
 データ収集サーバ2024は、要求元のデータサーバ又は端末2021に対する位置関連データの提供の可否を判断し、提供可能と判断された場合に要求元のデータサーバ又は端末2021に位置関連データの転送又は送信を行ってもよい。
 クライアント装置2026から現在の位置関連データの要求を受け付けた場合、端末2021による位置関連データの送信タイミングでなくても、データ収集サーバ2024が端末2021に対して位置関連データの送信要求を行い、端末2021が当該送信要求に応じて位置関連データを送信してもよい。
 上記の説明では、端末2021がデータ収集サーバ2024に対して位置情報データを送信するとしたが、データ収集サーバ2024は、例えば、端末2021を管理する機能など、端末2021から位置関連データを収集するために必要な機能又は端末2021から位置関連データを収集する際に用いられる機能などを備えてもよい。
 データ収集サーバ2024は、端末2021に対して位置情報データの送信を要求するデータ要求信号を送信し、位置関連データを収集する機能を備えてもよい。
 データ収集サーバ2024には、データ収集の対象となる端末2021と通信を行うためのアドレス又は端末2021固有の識別子などの管理情報が事前に登録されている。データ収集サーバ2024は、登録されている管理情報に基づいて端末2021から位置関連データを収集する。管理情報は、端末2021が備えるセンサの種類、端末2021が備えるセンサの数、及び端末2021が対応する通信方式などの情報を含んでいてもよい。
 データ収集サーバ2024は、端末2021の稼働状態又は現在位置などの情報を端末2021から収集してもよい。
 管理情報の登録は、クライアント装置2026から行われてもよいし、端末2021が登録要求をデータ収集サーバ2024に送信することで、登録のための処理が開始されてもよい。データ収集サーバ2024は、端末2021との間の通信を制御する機能を備えてもよい。
 データ収集サーバ2024と端末2021とを結ぶ通信は、MNO(Mobile Network Operator)、或いはMVNO(Mobile Virtual Network Operator)などのサービス事業者が提供する専用回線、又は、VPN(Virtual Private Network)で構成された仮想の専用回線などであってもよい。この構成によると、端末2021とデータ収集サーバ2024との間の通信を安全に行うことができる。
 データ収集サーバ2024は、端末2021を認証する機能、又は端末2021との間で送受信されるデータを暗号化する機能を備えてもよい。ここで、端末2021の認証の処理又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との間で事前に共有された、端末2021に固有の識別子又は複数の端末2021を含む端末グループに固有の識別子などを用いて行われる。この識別子とは、例えば、SIM(Subscriber Identity Module)カードに格納された固有の番号であるIMSI(International Mobile Subscriber Identity)などである。認証処理に用いられる識別子とデータの暗号化処理に用いる識別子とは、同じであってもよいし、異なっていてもよい。
 データ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理は、データ収集サーバ2024と端末2021との両方が当該処理を実施する機能を備えていれば提供可能であり、中継を行う通信装置2022が用いる通信方式に依存しない。よって、端末2021が通信方式を用いるかを考慮することなく、共通の認証又は暗号化の処理を用いることができるので、ユーザのシステム構築の利便性が向上する。ただし、中継を行う通信装置2022が用いる通信方式に依存しないとは、通信方式に応じて変更することが必須ではないことを意味している。つまり、伝送効率の向上又は安全性の確保の目的で、中継装置が用いる通信方式に応じてデータ収集サーバ2024と端末2021との間の認証又はデータの暗号化の処理が切り替えられてもよい。
 データ収集サーバ2024は、端末2021から収集する位置関連データの種類及びデータ収集のスケジュールなどのデータ収集ルールを管理するUIをクライアント装置2026に提供してもよい。これにより、ユーザはクライアント装置2026を用いてデータを収集する端末2021、並びに、データの収集時間及び頻度などを指定できる。また、データ収集サーバ2024は、データを収集したい地図上の領域などを指定し、当該領域に含まれる端末2021から位置関連データを収集してもよい。
 データ収集ルールを端末2021単位で管理する場合、クライアント装置2026は、例えば、管理対象となる端末2021又はセンサのリストを画面に提示する。ユーザはリストの項目毎にデータの収集の要否又は収集スケジュールなどを設定する。
 データを収集したい地図上の領域などを指定する場合、クライアント装置2026は、例えば、管理対象となる地域の二次元又は三次元の地図を画面に提示する。ユーザは、表示された地図上でデータを収集する領域を選択する。地図上で選択される領域は、地図上で指定された点を中心とする円形又は矩形の領域であってもよいし、ドラッグ動作で特定可能な円形又は矩形の領域であってもよい。また、クライアント装置2026は、都市、都市内のエリア、ブロック、又は主要な道路など予め設定された単位で領域を選択してもよい。また、地図を用いて領域を指定するのではなく、緯度及び経度の数値を入力して領域が設定されてもよいし、入力されたテキスト情報に基づいて導出した候補領域のリストから領域が選択されてもよい。テキスト情報は、例えば、地域、都市、又はランドマークの名前などである。
 また、ユーザが一又は複数の端末2021を指定して、当該端末2021の周囲100メートルの範囲内などの条件を設定することで、指定領域を動的に変更しながらデータの収集が行われてもよい。
 また、クライアント装置2026がカメラなどのセンサを備える場合、センサデータから得られたクライアント装置2026の実空間での位置に基づいて地図上の領域が指定されてもよい。例えば、クライアント装置2026は、センサデータを用いて自己位置を推定し、推定された位置に対応する地図上の点から予め定められた距離、又はユーザが指定した距離の範囲内の領域を、データを収集する領域として指定してもよい。また、クライアント装置2026は、センサのセンシング領域、すなわち取得されたセンサデータに対応する領域を、データを収集する領域として指定してもよい。または、クライアント装置2026は、ユーザの指定したセンサデータに対応する位置に基づく領域を、データを収集する領域として指定してもよい。センサデータに対応する地図上の領域、又は位置の推定は、クライアント装置2026が行ってもよいし、データ収集サーバ2024が行ってもよい。
 地図上の領域で指定を行う場合、データ収集サーバ2024は、各端末2021の現在位置情報を収集することで、指定された領域内の端末2021を特定し、特定された端末2021に対して位置関連データの送信を要求してもよい。また、データ収集サーバ2024が領域内の端末2021を特定するのではなく、データ収集サーバ2024が指定された領域を示す情報を端末2021に送信し、端末2021が自身が指定された領域内にあるか否かを判定して、指定された領域内にあると判断された場合に位置関連データを送信してもよい。
 データ収集サーバ2024は、クライアント装置2026が実行するアプリケーションにおいて上述したUI(User Interface)を提供するためのリスト又は地図などのデータをクライアント装置2026に送信する。データ収集サーバ2024は、リスト又は地図などのデータだけでなく、アプリケーションのプログラムをクライアント装置2026に送信してもよい。また、上述したUIは、ブラウザで表示可能なHTMLなどで作成されたコンテンツとして提供されてもよい。なお、地図データなど一部のデータは地図サーバ2025などのデータ収集サーバ2024以外のサーバから提供されてもよい。
 クライアント装置2026は、ユーザによる設定ボタンの押下など、入力が完了したことを通知する入力が行われると、入力された情報を設定情報としてデータ収集サーバ2024に送信する。データ収集サーバ2024は、クライアント装置2026から受信した設定情報に基づいて各端末2021に対して、位置関連データの要求又は位置関連データの収集ルールを通知する信号を送信し、位置関連データの収集を行う。
 次に、三次元又は二次元の地図データに付加された付加情報に基づいて端末2021の動作を制御する例について説明する。
 本構成では、道路又は駐車場に埋設された無線給電の給電アンテナ又は給電コイルなどの給電部の位置を示すオブジェクト情報が、三次元データに含まれて、又は三次元データに対応付けられて、車又はドローンなどである端末2021に提供される。
 充電を行うために当該オブジェクト情報を取得した車両又はドローンは、車両が備える充電アンテナ又は充電コイルなどの充電部の位置が、当該オブジェクト情報が示す領域と対向する位置になるよう自動運転で車両自身の位置を移動させ、充電を開始する。なお、自動運転機能を備えていない車両又はドローンの場合は、画面上に表示された画像又は音声などを利用して、移動すべき方向又は行うべき操作を運転手又は操縦者に対して提示される。そして、推定された自己位置に基づいて算出した充電部の位置が、オブジェクト情報で示された領域又は当該領域から所定の距離の範囲内に入った判断されると、運転又は操縦を中止させる内容へと提示する画像又は音声が切り替えられ、充電が開始される。
 また、オブジェクト情報は給電部の位置を示す情報ではなく、当該領域内に充電部を配置すると所定の閾値以上の充電効率が得られる領域を示す情報であってもよい。オブジェクト情報の位置は、オブジェクト情報が示す領域の中心の点で表されてもよいし、二次元平面内の領域或いは線、又は、三次元空間内の領域、線或いは平面などで表されてもよい。
 この構成によると、LiDERのセンシングデータ又はカメラで撮影した映像では把握できない給電アンテナの位置を把握することができるので、車などの端末2021が備える無線充電用のアンテナと道路などに埋設された無線給電アンテナとの位置合わせをより高精度に行うことができる。その結果、無線充電時の充電速度を短くしたり、充電効率を向上させることができる。
 オブジェクト情報は、給電アンテナの以外の対象物であってもよい。例えば、三次元データは、ミリ波無線通信のAPの位置などをオブジェクト情報として含む。これにより、端末2021は、APの位置を事前に把握することができるので、当該オブジェクト情報の方向にビームの指向性を向けて通信を開始することができる。その結果、伝送速度の向上、通信開始までの時間の短縮、及び通信可能な期間を延ばすなどの通信品質の向上を実現できる。
 オブジェクト情報は、当該オブジェクト情報に対応する対象物のタイプを示す情報を含んでもよい。また、オブジェクト情報は、当該オブジェクト情報の三次元データ上の位置に対応する実空間上の領域内、又は領域から所定の距離の範囲内に端末2021が含まれる場合に、端末2021が実施すべき処理を示す情報を含んでもよい。
 オブジェクト情報は、三次元データを提供するサーバとは異なるサーバから提供されてもよい。オブジェクト情報を三次元データとは別に提供する場合、同一のサービスで使用されるオブジェクト情報が格納されたオブジェクトグループが、対象サービス又は対象機器の種類に応じてそれぞれ別のデータとして提供されてもよい。
 オブジェクト情報と組み合わせて用いられる三次元データは、WLDの点群データであってもよいし、SWLDの特徴点データであってもよい。
 三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoD(Level of Detail)を用いて階層符号化した場合、三次元データ復号装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を復号し、必要でない階層の属性情報を復号しなくてもよい。例えば、三次元データ符号化装置が符号化したビットストリーム内の属性情報のLoDの総数がN個の場合、三次元データ復号装置は、最上位層のLoD0からLoD(M-1)までのM個(M<N)のLoDを復号し、残りのLoD(N-1)までのLoDを復号しなくてもよい。これにより、三次元データ復号装置は、処理負荷を抑制しつつ、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を復号できる。
 図105は、上記のユースケースを示す図である。図105に例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、三次元地図をブロードキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は、クライアント装置を操作するユーザ等に地図情報を表示する処理を行う。
 以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、位置情報をベースに構築されたN個のLoDを用いて三次元地図の属性情報を階層符号化する。サーバは、階層符号化により得られた三次元地図のビットストリームを保存する。
 次にサーバは、サーバが管理する領域のクライアント装置から送信された地図情報の送信要求に応じて、符号化された三次元地図のビットストリームをクライアント装置に送信する。
 クライアント装置は、サーバから送信された三次元地図のビットストリームを受信し、クライアント装置の用途に応じて三次元地図の位置情報と属性情報とを復号する。例えば、クライアント装置が位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、クライアント装置は、属性情報として密な三次元点までの復号結果が必要と判断し、ビットストリーム内の全ての情報を復号する。
 また、クライアント装置が三次元地図の情報をユーザ等に表示する場合は、クライアント装置は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層であるLoD0からM個(M<N)までのLoDの属性情報とを復号する。
 このようにクライアント装置の用途に応じて復号する属性情報のLoDを切替えることによって、クライアント装置の処理負荷を削減できる。
 図105に示す例では、例えば、三次元点地図は、位置情報と属性情報とを含む。位置情報は、8分木で符号化される。属性情報は、N個のLoDで符号化される。
 クライアント装置Aは、高精度な自己位置推定を行う。この場合、クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、ビットストリーム内の位置情報とN個のLoDで構成される属性情報とを全て復号する。
 クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、ビットストリーム内の位置情報とM個のLoDで構成される属性情報とを復号する。
 なお、サーバは、三次元地図をクライアント装置にブロードキャスト送信してもよいし、マルチキャスト送信、又はユニキャスト送信してもよい。
 以下、本実施の形態に係るシステムの変形例について説明する。三次元データ符号化装置において、符号化対象の三次元点である対象三次元点の属性情報をLoDを用いて階層符号化する場合、三次元データ符号化装置は、当該三次元データ復号装置で必要なLoDの階層まで属性情報を符号化し、必要でない階層の属性情報を符号化しなくてもよい。例えば、LoDの総数がN個の場合に、三次元データ符号化装置は、最上位層LoD0からLoD(M-1)までのM個(M<N)のLoDを符号化し、残りLoD(N-1)までのLoDを符号化しないことによりビットストリームを生成してもよい。これにより、三次元データ符号化装置は、三次元データ復号装置からの要望に応じて、三次元データ復号装置で必要なLoD0からLoD(M-1)までの属性情報を符号化したビットストリームを提供できる。
 図106は、上記ユースケースを示す図である。図106に示す例では、サーバは、三次元位置情報と属性情報とを符号化することで得られた三次元地図を保持する。サーバ(三次元データ符号化装置)は、サーバが管理する領域のクライアント装置(三次元データ復号装置:例えば車両又はドローン等)に対し、クライアント装置の要望に応じて三次元地図をユニキャスト送信し、クライアント装置はサーバから受信した三次元地図を用いてクライアント装置の自己位置を特定する処理、又は地図情報をクライアント装置を操作するユーザ等に表示する処理を行う。
 以下、この例における動作例を説明する。まず、サーバは、三次元地図の位置情報を8分木構成などを用いて符号化する。そして、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたN個のLoDを用いて階層符号化することで三次元地図Aのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。また、サーバは、三次元地図の属性情報を、位置情報をベースに構築されたM個(M<N)のLoDを用いて階層符号化することで三次元地図Bのビットストリームを生成し、生成したビットストリームを当該サーバに保存する。
 次にクライアント装置は、クライアント装置の用途に応じて三次元地図の送信をサーバに要求する。例えば、クライアント装置は、位置情報とN個のLoDの属性情報とを用いて高精度な自己位置推定を行う場合は、属性情報として密な三次元点までの復号結果が必要と判断し、三次元地図Aのビットストリームの送信をサーバへ要求する。また、クライアント装置は、三次元地図の情報をユーザ等に表示する場合は、属性情報として疎な三次元点までの復号結果までが必要と判断し、位置情報とLoDの上位層LoD0からM個(M<N)までのLoDの属性情報とを含む三次元地図Bのビットストリームの送信をサーバへ要求する。そしてサーバは、クライアント装置からの地図情報の送信要求に応じて、符号化された三次元地図A又は三次元地図Bのビットストリームをクライアント装置に送信する。
 クライアント装置は、クライアント装置の用途に応じてサーバから送信された三次元地図A又は三次元地図Bのビットストリームを受信し、当該ビットストリームを復号する。このようにサーバは、クライアント装置の用途に応じて送信するビットストリームを切替える。これにより、クライアント装置の処理負荷を削減できる。
 図106に示す例では、サーバは、三次元地図A及び三次元地図Bを保持する。サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をN個のLoDで符号化することで三次元地図Aを生成する。つまり、三次元地図Aのビットストリームに含まれるNumLoDはNを示す。
 また、サーバは、三次元地図の位置情報を、例えば8分木で符号化し、三次元地図の属性情報をM個のLoDで符号化することで三次元地図Bを生成する。つまり、三次元地図Bのビットストリームに含まれるNumLoDはMを示す。
 クライアント装置Aは、高精度な自己位置推定を行う。この場合クライアント装置Aは、全ての位置情報と属性情報とが必要と判断し、全ての位置情報とN個のLoDで構成される属性情報とを含む三次元地図Aの送信要求をサーバに送る。クライアント装置Aは、三次元地図Aを受信し、全ての位置情報とN個のLoDで構成される属性情報とを復号する。
 クライアント装置Bは、三次元地図をユーザへ表示する。この場合、クライアント装置Bは、位置情報とM個(M<N)のLoDの属性情報とが必要と判断し、全ての位置情報とM個のLoDで構成される属性情報とを含む三次元地図Bの送信要求をサーバに送る。クライアント装置Bは、三次元地図Bを受信して、全ての位置情報とM個のLoDで構成される属性情報とを復号する。
 なお、サーバ(三次元データ符号化装置)は、三次元地図Bに加え、残りのN-M個のLoDの属性情報を符号化した三次元地図Cを符号化しておき、クライアント装置Bの要望に応じて三次元地図Cをクライアント装置Bに送信してもよい。また、クライアント装置Bは、三次元地図Bと三次元地図Cとのビットストリームを用いて、N個のLoDの復号結果を得てもよい。
 以下、アプリケーション処理の例を説明する。図107は、アプリケーション処理の例を示すフローチャートである。アプリ操作が開始されると、三次元データ逆多重化装置は、点群データ及び複数の符号化データを含むISOBMFFファイルを取得する(S7301)。例えば、三次元データ逆多重化装置は、ISOBMFFファイルを、通信により取得してもよいし、蓄積しているデータから読み込んでもよい。
 次に、三次元データ逆多重化装置は、ISOBMFFファイルにおける全体構成情報を解析し、アプリケーションに使用するデータを特定する(S7302)。例えば、三次元データ逆多重化装置は、処理に用いるデータを取得し、処理に用いないデータは取得しない。
 次に、三次元データ逆多重化装置は、アプリケーションに使用する1以上のデータを抽出し、当該データの構成情報を解析する(S7303)。
 データの種別が符号化データである場合(S7304で符号化データ)、三次元データ逆多重化装置は、ISOBMFFを符号化ストリームに変換し、タイムスタンプを抽出する(S7305)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。
 次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、所定の方法でデータを復号し、復号したデータを処理する(S7306)。
 一方、データの種別が符号化データである場合(S7304でRAWデータ)、三次元データ逆多重化装置は、データ及びタイムスタンプを抽出する(S7307)。また、三次元データ逆多重化装置は、データ間の同期がそろっているか否かを、例えば、データ間の同期がそろっているか否かを示すフラグを参照して判定し、揃っていなければ同期処理を行ってもよい。次に、三次元データ逆多重化装置は、タイムスタンプ及びその他の指示に従い、データを処理する(S7308)。
 例えば、ビームLiDAR、FLASH LiDAR、及びカメラで取得されたセンサ信号が、それぞれ異なる符号化方式で符号化及び多重化されている場合の例を説明する。図108は、ビームLiDAR、FLASH LiDAR及びカメラのセンサ範囲の例を示す図である。例えば、ビームLiDARは、車両(センサ)の周囲の全方向を検知し、FLASH LiDAR及びカメラは、車両の一方向(例えば前方)の範囲を検知する。
 LiDAR点群を統合的に扱うアプリケーションの場合、三次元データ逆多重化装置は、全体構成情報を参照して、ビームLiDARとFLASH LiDARの符号化データを抽出して復号する。また、三次元データ逆多重化装置は、カメラ映像は抽出しない。
 三次元データ逆多重化装置は、LiDARとFLASH LiDARのタイムスタンプに従い、同一のタイムスタンプの時刻のそれぞれの符号化データを同時に処理する。
 例えば、三次元データ逆多重化装置は、処理したデータを提示装置で提示したり、ビームLiDARとFLASH LiDARの点群データを合成したり、レンダリングなどの処理を行ってもよい。
 また、データ間でキャリブレーションをするアプリケーションの場合には、三次元データ逆多重化装置は、センサ位置情報を抽出してアプリケーションで用いてもよい。
 例えば、三次元データ逆多重化装置は、アプリケーションにおいて、ビームLiDAR情報を使用するか、FLASH LiDARを使用するかを選択し、選択結果に応じて処理を切り替えてもよい。
 このように、アプリケーションの処理に応じて適応的にデータの取得及び符号処理を変えることができるので、処理量及び消費電力を削減できる。
 以下、自動運転におけるユースケースについて説明する。図109は、自動運転システムの構成例を示す図である。この自動運転システムは、クラウドサーバ7350と、車載装置又はモバイル装置等のエッジ7360とを含む。クラウドサーバ7350は、逆多重化部7351と、復号部7352A、7352B及び7355と、点群データ合成部7353と、大規模データ蓄積部7354と、比較部7356と、符号化部7357とを備える。エッジ7360は、センサ7361A及び7361Bと、点群データ生成部7362A及び7362Bと、同期部7363と、符号化部7364A及び7364Bと、多重化部7365と、更新データ蓄積部7366と、逆多重化部7367と、復号部7368と、フィルタ7369と、自己位置推定部7370と、運転制御部7371とを備える。
 このシステムでは、エッジ7360は、クラウドサーバ7350に蓄積されている大規模点群地図データである大規模データをダウンロードする。エッジ7360は、大規模データとエッジ7360で得られたセンサ情報とをマッチングすることで、エッジ7360(車両又は端末)の自己位置推定処理を行う。また、エッジ7360は、取得したセンサ情報をクラウドサーバ7350へアップロードし、大規模データを最新の地図データに更新する。
 また、システム内における点群データを扱う様々なアプリケーションにおいて、符号化方法の異なる点群データが扱われる。
 クラウドサーバ7350は、大規模データを符号化及び多重化する。具体的には、符号化部7357は、大規模点群を符号化するために適した第3の符号化方法を用いて符号化を行う。また、符号化部7357は、符号化データを多重化する。大規模データ蓄積部7354は、符号化部7357で符号化及び多重化されたデータを蓄積する。
 エッジ7360は、センシングを行う。具体的には、点群データ生成部7362Aは、センサ7361Aで取得されるセンシング情報を用いて、第1の点群データ(位置情報(ジオメトリ)及び属性情報)を生成する。点群データ生成部7362Bは、センサ7361Bで取得されるセンシング情報を用いて、第2の点群データ(位置情報及び属性情報)を生成する。生成された第1の点群データ及び第2の点群データは、自動運転の自己位置推定或いは車両制御、又は地図更新に用いられる。それぞれの処理において、第1の点群データ及び第2の点群データのうちの一部の情報が用いられてもよい。
 エッジ7360は、自己位置推定を行う。具体的には、エッジ7360は、大規模データをクラウドサーバ7350からダウンロードする。逆多重化部7367は、ファイルフォーマットの大規模データを逆多重化することで符号化データを取得する。復号部7368は、取得された符号化データを復号することで大規模点群地図データである大規模データを取得する。
 自己位置推定部7370は、取得された大規模データと、点群データ生成部7362A及び7362Bで生成された第1の点群データ及び第2の点群データとをマッチングすることで、車両の地図における自己位置を推定する。また、運転制御部7371は、当該マッチング結果又は自己位置推定結果を運転制御に用いる。
 なお、自己位置推定部7370及び運転制御部7371は、大規模データのうち、位置情報などの特定の情報を抽出し、抽出した情報を用いて処理を行ってもよい。また、フィルタ7369は、第1の点群データ及び第2の点群データに補正又は間引き等の処理を行う。自己位置推定部7370及び運転制御部7371は、当該処理が行われた後の第1の点群データ及び第2の点群データを用いてもよい。また、自己位置推定部7370及び運転制御部7371は、センサ7361A及び7361Bで得られたセンサ信号を用いてもよい。
 同期部7363は、複数のセンサ信号又は複数の点群データのデータ間の時間同期及び位置補正を行う。また、同期部7363は、自己位置推定処理によって生成された、大規模データとセンサデータとの位置補正情報に基づき、センサ信号又は点群データの位置情報を大規模データに合わせるように補正してもよい。
 なお、同期及び位置補正はエッジ7360でなく、クラウドサーバ7350で行われてもよい。この場合、エッジ7360は、同期情報及び位置情報を多重化してクラウドサーバ7350へ送信してもよい。
 エッジ7360は.センサ信号又は点群データを符号化及び多重化する。具体的には、センサ信号又は点群データは、それぞれの信号を符号化するために適した第1の符号化方法又は第2の符号化方法を用いて符号化される。例えば、符号化部7364Aは、第1の符号化方法を用いて第1の点群データを符号化することで第1の符号化データを生成する。符号化部7364Bは、第2の符号化方法を用いて第2の点群データを符号化することで第2の符号化データを生成する。
 多重化部7365は、第1の符号化データ、第2の符号化データ、及び同期情報などを多重化することで多重化信号を生成する。更新データ蓄積部7366は、生成された多重化信号を蓄積する。また、更新データ蓄積部7366は、多重化信号をクラウドサーバ7350へアップロードする。
 クラウドサーバ7350は、点群データを合成する。具体的には、逆多重化部7351は、クラウドサーバ7350にアップロードされた多重化信号を逆多重化することで第1の符号化データ及び第2の符号化データを取得する。復号部7352Aは、第1の符号化データを復号することで第1の点群データ(又はセンサ信号)を取得する。復号部7352Bは、第2の符号化データを復号することで第2の点群データ(又はセンサ信号)を取得する。
 点群データ合成部7353は、第1の点群データと第2の点群データとを所定の方法で合成する。多重化信号に同期情報及び位置補正情報が多重化されている場合には、点群データ合成部7353は、それらの情報を用いて合成を行ってもよい。
 復号部7355は、大規模データ蓄積部7354に蓄積されている大規模データを逆多重化及び復号する。比較部7356は、エッジ7360で得られたセンサ信号に基づき生成された点群データとクラウドサーバ7350が有する大規模データとを比較し、更新が必要な点群データを判断する。比較部7356は、大規模データのうち、更新が必要と判断された点群データを、エッジ7360から得られた点群データに更新する。
 符号化部7357は、更新された大規模データを符号化及び多重化し、得られたデータを大規模データ蓄積部7354に蓄積する。
 以上のように、使用する用途又はアプリケーションに応じて、取り扱う信号が異なり、多重化する信号又は符号化方法が異なる場合がある。このような場合であっても、本実施の形態を用いて様々な符号化方式のデータを多重化することで、柔軟な復号及びアプリケーション処理が可能となる。また、信号の符号化方式が異なる場合であっても、逆多重化、復号、データ変換、符号化、多重の処理により適した符号化方式を変換することで、様々なアプリケーションやシステムを構築し、柔軟なサービスの提供が可能となる。
 以下、分割データの復号及びアプリケーションの例を説明する。まず、分割データの情報について説明する。図110は、ビットストリームの構成例を示す図である。分割データの全体情報は、分割データ毎に、当該分割データのセンサID(sensor_id)とデータID(data_id)とを示す。なお、データIDは各符号化データのヘッダにも示される。
 なお、図110に示す分割データの全体情報は、図95と同様に、センサIDに加え、センサ情報(Sensor)と、センサのバージョン(Version)と、センサのメーカー名(Maker)と、センサの設置情報(Mount Info.)と、センサの位置座標(World Coordinate)とのうち少なく一つを含んでもよい。これにより、三次元データ復号装置は、構成情報から各種センサの情報を取得できる。
 分割データの全体情報は、メタデータであるSPS、GPS又はAPSに格納されてもよいし、符号化に必須でないメタデータであるSEIに格納されてもよい。また、三次元データ符号化装置は、多重化の際に、当該SEIをISOBMFFのファイルに格納する。三次元データ復号装置は、当該メタデータに基づき、所望の分割データを取得できる。
 図110において、SPSは符号化データ全体のメタデータであり、GPSは位置情報のメタデータであり、APSは属性情報毎のメタデータであり、Gは分割データ毎の位置情報の符号化データであり、A1等は分割データ毎の属性情報の符号化データである。
 次に、分割データのアプリケーション例を説明する。点群データから、任意の点群を選択し、選択した点群を提示するアプリケーションの例を説明する。図111は、このアプリケーションにより実行される点群選択処理のフローチャートである。図112~図114は、点群選択処理の画面例を示す図である。
 図112に示すように、アプリケーションを実行する三次元データ復号装置は、例えば、任意の点群を選択するための入力UI(ユーザインタフェース)8661を表示するUI部を有する。入力UI8661は、選択された点群を提示する提示部8662と、ユーザの操作を受け付ける操作部(ボタン8663及び8664)を有する。三次元データ復号装置は、UI8661で点群が選択された後、蓄積部8665から所望のデータを取得する。
 まず、ユーザの入力UI8661に対する操作に基づき、ユーザが表示したい点群情報が選択される(S8631)。具体的には、ボタン8663が選択されることで、センサ1に基づく点群が選択される。ボタン8664が選択されることで、センサ2に基づく点群が選択される。または、ボタン8663及びボタン8664の両方が選択されることで、センサ1に基づく点群とセンサ2に基づく点群の両方が選択される。なお、点群の選択方法は一例であり、これに限らない。
 次に、三次元データ復号装置は、多重化信号(ビットストリーム)又は符号化データに含まれる分割データの全体情報を解析し、選択されたセンサのセンサID(sensor_id)から、選択された点群を構成する分割データのデータID(data_id)を特定する(S8632)。次に、三次元データ復号装置は、多重化信号から、特定された所望のデータIDを含む符号化データを抽出し、抽出した符号化データを復号することで、選択されたセンサに基づく点群を復号する(S8633)。なお、三次元データ復号装置は、その他の符号化データは復号しない。
 最後に、三次元データ復号装置は、復号された点群を提示(例えば表示)する(S8634)。図113は、センサ1のボタン8663が押下された場合の例を示し、センサ1の点群が提示される。図114は、センサ1のボタン8663とセンサ2のボタン8664の両方が押下された場合の例を示し、センサ1及びセンサ2の点群が提示される。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
 本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
 810 三次元データ作成装置
 811 データ受信部
 812、819 通信部
 813 受信制御部
 814、821 フォーマット変換部
 815 センサ
 816 三次元データ作成部
 817 三次元データ合成部
 818 三次元データ蓄積部
 820 送信制御部
 822 データ送信部
 831、832、834、835、836、837 三次元データ
 833 センサ情報
 901 サーバ
 902、902A、902B、902C クライアント装置
 1011、1111 データ受信部
 1012、1020、1112、1120 通信部
 1013、1113 受信制御部
 1014、1019、1114、1119 フォーマット変換部
 1015 センサ
 1016、1116 三次元データ作成部
 1017 三次元画像処理部
 1018、1118 三次元データ蓄積部
 1021、1121 送信制御部
 1022、1122 データ送信部
 1031、1032、1135 三次元マップ
 1033、1037、1132 センサ情報
 1034、1035、1134 三次元データ
 1117 三次元データ合成部
 1201 三次元マップ圧縮/復号処理部
 1202 センサ情報圧縮/復号処理部
 1211 三次元マップ復号処理部
 1212 センサ情報圧縮処理部
 2001 サーバ
 2002、2002A、2002B クライアント装置
 2011 センサ情報取得部
 2012 記憶部
 2013 データ送信可否判定部
 2021、2021A、2021B 端末
 2022、2022A、2022B 通信装置
 2023 ネットワーク
 2024 データ収集サーバ
 2025 地図サーバ
 2026 クライアント装置
 2700 位置情報符号化部
 2701、2711 8分木生成部
 2702、2712 幾何情報算出部
 2703、2713 符号化テーブル選択部
 2704 エントロピー符号化部
 2710 位置情報復号部
 2714 エントロピー復号部
 3140 属性情報符号化部
 3141、3151 LoD生成部
 3142、3152 周囲探索部
 3143、3153 予測部
 3144 予測残差算出部
 3145 量子化部
 3146 算術符号化部
 3147、3155 逆量子化部
 3148、3156 復号値生成部
 3149、3157 メモリ
 3150 属性情報復号部
 3154 算術復号部
 4601 三次元データ符号化システム
 4602 三次元データ復号システム
 4603 センサ端末
 4604 外部接続部
 4611 点群データ生成システム
 4612 提示部
 4613 符号化部
 4614 多重化部
 4615 入出力部
 4616 制御部
 4617 センサ情報取得部
 4618 点群データ生成部
 4621 センサ情報取得部
 4622 入出力部
 4623 逆多重化部
 4624 復号部
 4625 提示部
 4626 ユーザインタフェース
 4627 制御部
 4630 第1の符号化部
 4631 位置情報符号化部
 4632 属性情報符号化部
 4633 付加情報符号化部
 4634 多重化部
 4640 第1の復号部
 4641 逆多重化部
 4642 位置情報復号部
 4643 属性情報復号部
 4644 付加情報復号部
 4650 第2の符号化部
 4651 付加情報生成部
 4652 位置画像生成部
 4653 属性画像生成部
 4654 映像符号化部
 4655 付加情報符号化部
 4656 多重化部
 4660 第2の復号部
 4661 逆多重化部
 4662 映像復号部
 4663 付加情報復号部
 4664 位置情報生成部
 4665 属性情報生成部
 4801 符号化部
 4802 多重化部
 6600 属性情報符号化部
 6601 ソート部
 6602 Haar変換部
 6603 量子化部
 6604、6612 逆量子化部
 6605、6613 逆Haar変換部
 6606、6614 メモリ
 6607 算術符号化部
 6610 属性情報復号部
 6611 算術復号部
 7350 クラウドサーバ
 7351 逆多重化部
 7352A、7352B 復号部
 7353 点群データ合成部
 7354 大規模データ蓄積部
 7355 復号部
 7356 比較部
 7357 符号化部
 7360 エッジ
 7361A、7361B センサ
 7362A、7362B 点群データ生成部
 7363 同期部
 7364A、7364B 符号化部
 7365 多重化部
 7366 更新データ蓄積部
 7367 逆多重化部
 7368 復号部
 7369 フィルタ
 7370 自己位置推定部
 7371 運転制御部
 8661 入力UI
 8662 提示部
 8663、8664 ボタン
 8665 蓄積部
 12800、12800A 三次元データ符号化装置
 12801、12809 8分木化部
 12802 バッファ
 12803 エントロピー符号化部
 12804、12805、12807、12810 バッファ
 12806 点群化部
 12808 動き検出補償部
 12811 制御部
 12812 動き補償部
 12820、12820A 三次元データ復号装置
 12821 エントロピー復号部
 12822、12823、12825、12828 バッファ
 12824 点群化部
 12826 動き補償部
 12827 8分木化部
 12829 制御部
 12830 動き補償部
 12900、12930 三次元データ符号化装置
 12901、12932 グループ化部
 12902、12905、12907、12923、12925、12933、12934、12936、12941、12952、12954 バッファ
 12903、12942 量子化部
 12904、12922、12959 逆量子化部
 12906、12924、12935、12953 イントラ予測部
 12908、12937 動き検出補償部
 12909、12927、12938、12956 インター予測部
 12910、12928、12939、12957 切替部
 12911、12943 エントロピー符号化部
 12920、12950 三次元データ復号装置
 12921、12951 エントロピー復号部
 12926、12955 動き補償部
 12931、12940、12958 座標変換部
 A100 属性情報符号化部
 A101 LoD属性情報符号化部
 A102 変換属性情報符号化部
 A110 属性情報復号部
 A111 LoD属性情報復号部
 A112 変換属性情報復号部

Claims (20)

  1.  第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し、
     第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1三次元点と前記第1位置との間の第1距離、を特定する
     三次元データ符号化方法。
  2.  前記未符号化の第2三次元点の前記第2極座標系における位置の予測値を算出するために、
     (i)前記第1位置と前記第2位置との間の距離、(ii)前記第1角、及び(iii)前記第1距離を用いて、(iv)前記第1線と、前記第2位置及び前記第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)前記第1三次元点と前記第2位置との間の第2距離、の少なくとも一方を算出する
     請求項1に記載の三次元データ符号化方法。
  3.  前記算出では、前記第1線と前記第1極座標系における水平角の基準線とが揃う場合、前記第1位置と前記第2位置との間の距離と、前記第1距離と、前記第1角としての第1水平角とを用いて、前記第2角を算出し、
     前記第1水平角は、前記第1三次元点の位置を表す極座標成分のうちの水平角の成分である
     請求項2に記載の三次元データ符号化方法。
  4.  前記第1三次元点の特定では、前記第2極座標系で位置が表され、且つ、符号化済みの他の第2三次元点に基づいて、前記第1三次元点を特定する
     請求項1から3のいずれか1項に記載の三次元データ符号化方法。
  5.  前記他の第2三次元点は、前記第2極座標系において前記第2三次元点の予測値の算出に用いられる三次元点である
     請求項4に記載の三次元データ符号化方法。
  6.  前記第1三次元点は、前記他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定される
     請求項4または5に記載の三次元データ符号化方法。
  7.  前記第1三次元点は、前記第1極座標系で位置が表され、且つ、符号化済みの他の第1三次元点を含む複数の第1三次元点のうちで、前記第1極座標系から前記第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、前記第2三次元点の角度成分に近い
     請求項6に記載の三次元データ符号化方法。
  8.  複数の第1三次元点は、基準面上の空間において前記第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られ、
     複数の第2三次元点は、前記基準面上の空間において前記第2位置周りの複数の第2方向のそれぞれ毎における前記物体までの距離計測により得られ、
     前記複数の第1三次元点は、前記第1三次元点を含み、且つ、前記第1極座標系でそれぞれの位置が表され、
     前記複数の第2三次元点は、前記第2三次元点を含み、且つ、前記第2極座標系でそれぞれの位置が表される
     請求項1から7のいずれか1項に記載の三次元データ符号化方法。
  9.  前記第1位置及び前記第2位置に第3方向で対向する第1平面であって、前記基準面に垂直な第1平面上の複数の三次元点に対する予測符号化における予測値の第1決定方法と、前記第1位置及び前記第2位置に第4方向で対向する第2平面であって、前記基準面に垂直な第2平面上の複数の三次元点に対する予測符号化における予測値の第2決定方法とは異なり、
     前記第3方向と前記第4方向とは、異なり、
     前記第1平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、
     前記第1平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれ、
     前記第2平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、
     前記第2平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれる
     請求項8に記載の三次元データ符号化方法。
  10.  第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定し、
     第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する
     三次元データ復号方法。
  11.  前記未復号の第2三次元点の前記第2極座標系における位置の予測値を算出するために、
     (i)前記第1位置と前記第2位置との間の距離、(ii)前記第1角、及び(iii)前記第1距離を用いて、(iv)前記第1線と、前記第2位置及び前記第1三次元点を結ぶ第3線とのなす第2角、並びに、(v)前記第2極座標系における前記第1三次元点の前記第2位置からの第2距離、を算出する
     請求項10に記載の三次元データ復号方法。
  12.  前記算出では、前記第1線と前記第1極座標系における水平角の基準線とが揃う場合、前記第1距離と、前記第1角としての第1水平角とを用いて、前記第2角を算出し、
     前記第1水平角は、前記第1三次元点の位置を表す極座標成分のうちの水平角の成分である
     請求項11に記載の三次元データ復号方法。
  13.  前記第1三次元点の特定では、前記第2極座標系で位置が表され、且つ、復号済みの他の第2三次元点に基づいて、前記第1三次元点を特定する
     請求項10から12のいずれか1項に記載の三次元データ復号方法。
  14.  前記他の第2三次元点は、前記第2極座標系において復号対象の三次元点の予測値の算出に用いられる三次元点である
     請求項13に記載の三次元データ復号方法。
  15.  前記第1三次元点は、前記他の第2三次元点の位置を表す極座標成分のうちの角度成分に基づいて、特定される
     請求項13または14に記載の三次元データ復号方法。
  16.  前記第1三次元点は、前記第1極座標系で位置が表され、且つ、復号済みの他の第1三次元点を含む複数の第1三次元点のうちで、前記第1極座標系から前記第2極座標系へ投影された後の複数の投影後第1三次元点の角度成分が、前記第2三次元点の角度成分に近い
     請求項15に記載の三次元データ復号方法。
  17.  複数の第1三次元点は、基準面上の空間において前記第1位置周りの複数の第1方向のそれぞれ毎における物体までの距離計測により得られ、
     複数の第2三次元点は、前記基準面上の空間において前記第2位置周りの複数の第2方向のそれぞれ毎における前記物体までの距離計測により得られ、
     前記複数の第1三次元点は、前記第1三次元点を含み、且つ、前記第1極座標系でそれぞれの位置が表され、
     前記複数の第2三次元点は、前記第2三次元点を含み、且つ、前記第2極座標系でそれぞれの位置が表される
     請求項10から16のいずれか1項に記載の三次元データ復号方法。
  18.  前記第1位置及び前記第2位置に第3方向で対向する第1平面であって、前記基準面に垂直な第1平面上の複数の三次元点に対する予測復号における予測値の第1決定方法と、前記第1位置及び前記第2位置に第4方向で対向する第2平面であって、前記基準面に垂直な第2平面上の複数の三次元点に対する予測復号における予測値の第2決定方法とは異なり、
     前記第3方向と前記第4方向とは、異なり、
     前記第1平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、
     前記第1平面上の複数の三次元点の一部は、前記複数の第2三次元点に含まれ、
     前記第2平面上の複数の三次元点の一部は、前記複数の第1三次元点に含まれ、
     前記第2平面上の複数の三次元点の一部は、複数の第2三次元点に含まれる
     請求項17に記載の三次元データ復号方法。
  19.  プロセッサと、
     メモリと、を備え、
     前記プロセッサは、前記メモリを用いて、
     第1位置を基準とする第1極座標系で位置が表され、且つ、符号化済みの第1三次元点を特定し、
     第2位置を基準とする第2極座標系で位置が表され、且つ、未符号化の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する
     三次元データ符号化装置。
  20.  プロセッサと、
     メモリと、を備え、
     前記プロセッサは、前記メモリを用いて、
     第1位置を基準とする第1極座標系で位置が表され、且つ、復号済みの第1三次元点を特定し、
     第2位置を基準とする第2極座標系で位置が表され、且つ、未復号の第2三次元点の前記第2位置からの第2距離の予測値を算出するために、(i)前記第1位置と前記第2位置との間の距離、(ii)前記第1位置と前記第2位置とを結ぶ第1線と、前記第1位置と前記第1三次元点とを結ぶ第2線とのなす第1角、及び、(iii)前記第1極座標系における前記第1三次元点の前記第1位置からの第1距離、を特定する、
     三次元データ復号装置。
PCT/JP2022/003277 2021-01-29 2022-01-28 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 WO2022163805A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/225,296 US20240005564A1 (en) 2021-01-29 2023-07-24 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
US202163143372P 2021-01-29 2021-01-29
US63/143,372 2021-01-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/225,296 Continuation US20240005564A1 (en) 2021-01-29 2023-07-24 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
WO2022163805A1 true WO2022163805A1 (ja) 2022-08-04

Family

ID=82653458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/003277 WO2022163805A1 (ja) 2021-01-29 2022-01-28 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Country Status (2)

Country Link
US (1) US20240005564A1 (ja)
WO (1) WO2022163805A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024079985A1 (ja) * 2022-10-13 2024-04-18 Kddi株式会社 点群復号装置、点群復号方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009212664A (ja) * 2008-03-03 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> 距離情報符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびコンピュータ読み取り可能な記録媒体
WO2019151427A1 (ja) * 2018-02-02 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報送信方法及びクライアント装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009212664A (ja) * 2008-03-03 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> 距離情報符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびコンピュータ読み取り可能な記録媒体
WO2019151427A1 (ja) * 2018-02-02 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報送信方法及びクライアント装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024079985A1 (ja) * 2022-10-13 2024-04-18 Kddi株式会社 点群復号装置、点群復号方法及びプログラム

Also Published As

Publication number Publication date
US20240005564A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
WO2021070952A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021141090A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261516A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230239491A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230005190A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230035807A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230024374A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20240005564A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230230287A1 (en) Decoding methods, encoding method, decoding device, and encoding device
US20230162405A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230123146A1 (en) Three-dimensional data encoding method and three-dimensional data encoding device
US20230005187A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20220303577A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021210548A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022075234A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022075319A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022149589A1 (ja) 三次元データ復号方法、三次元データ符号化方法、三次元データ復号装置、及び三次元データ符号化装置
WO2022071506A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022071505A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022075326A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021200921A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022059697A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261458A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230154057A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021261555A1 (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: 22746024

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22746024

Country of ref document: EP

Kind code of ref document: A1