WO2020071416A1 - 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 - Google Patents
三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置Info
- Publication number
- WO2020071416A1 WO2020071416A1 PCT/JP2019/038883 JP2019038883W WO2020071416A1 WO 2020071416 A1 WO2020071416 A1 WO 2020071416A1 JP 2019038883 W JP2019038883 W JP 2019038883W WO 2020071416 A1 WO2020071416 A1 WO 2020071416A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- data
- unit
- dimensional
- dimensional data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree 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.
- ⁇ In a wide range of fields, such as computer vision, map information, monitoring, infrastructure inspection, and video distribution for autonomous operation of automobiles or robots, devices or services utilizing three-dimensional data are expected to spread in the future.
- the three-dimensional data is acquired by various methods such as a distance sensor such as a range finder, a stereo camera, or a combination of a plurality of monocular cameras.
- One of the three-dimensional data representation methods is a representation method called a point cloud that represents the shape of a three-dimensional structure by a point group in a three-dimensional space.
- the position and color of the point cloud are stored.
- Point clouds are expected to become mainstream as a method of expressing three-dimensional data, but point clouds have a very large data volume. Therefore, in the storage or transmission of three-dimensional data, it is necessary to compress the amount of data by encoding, as in the case of two-dimensional moving images (for example, MPEG-4 @ AVC or HEVC standardized by MPEG). Become.
- ⁇ Point cloud compression ⁇ is partially supported by a public library (Point ⁇ Cloud ⁇ Library) that performs point cloud related processing.
- Patent Document 1 a technique for searching for and displaying facilities located around the vehicle using three-dimensional map data is known (for example, see 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 that can reduce the amount of encoded data.
- the three-dimensional data encoding method in the combined three-dimensional data in which the plurality of three-dimensional data is combined, to which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs A bitmap indicating the number of three-dimensional points included in the unit space, and a code including conversion code information indicating the conversion code. Coded data is generated, and each of the values of the bitmap corresponds to each of the combination of the conversion code and the number of three-dimensional points included in the unit space.
- the three-dimensional data decoding method decodes encoded data, and in the combined three-dimensional data generated by combining a plurality of three-dimensional data, the three-dimensional data included in the unit space Overlapping point information indicating the number of points and conversion code information indicating a conversion code are obtained, and using the overlapping point information and the conversion code information, the three-dimensional point included in the unit space is the plurality of points.
- a bitmap indicating which of the three-dimensional data belongs to is generated, and using the bitmap, it is determined whether a three-dimensional point included in the unit space belongs to any of the plurality of three-dimensional data, Each of the map values corresponds to each of the combinations of the transform code and the number of three-dimensional points included in the unit space.
- the present disclosure can provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device that can reduce the amount of encoded data.
- FIG. 1 is a diagram showing a configuration of a three-dimensional data encoding / decoding system according to Embodiment 1.
- FIG. 2 is a diagram illustrating a configuration example of the point cloud data according to the first embodiment.
- FIG. 3 is a diagram illustrating a configuration example of a data file in which point cloud data information according to the first embodiment is described.
- FIG. 4 is a diagram showing types of point cloud data according to the first embodiment.
- FIG. 5 is a diagram illustrating 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 illustrating a configuration of the first decoding unit according to Embodiment 1.
- FIG. 1 is a diagram showing a configuration of a three-dimensional data encoding / decoding system according to Embodiment 1.
- FIG. 2 is a diagram illustrating a configuration example of the point cloud data according to the first
- FIG. 8 is a block diagram of a first decoding unit according to Embodiment 1.
- FIG. 9 is a diagram illustrating a configuration of a second encoding unit according to Embodiment 1.
- FIG. 10 is a block diagram of a second encoding unit according to Embodiment 1.
- FIG. 11 is a diagram illustrating a configuration of the second decoding unit according to Embodiment 1.
- FIG. 12 is a block diagram of the second decoding unit according to Embodiment 1.
- FIG. 13 is a diagram showing a protocol stack related to PCC encoded data according to the first embodiment.
- FIG. 14 is a diagram illustrating a basic structure of the ISOBMFF according to the second embodiment.
- FIG. 15 is a diagram illustrating a protocol stack according to the second embodiment.
- FIG. 16 is a diagram illustrating a configuration of an encoding unit and a multiplexing unit according to Embodiment 3.
- FIG. 17 is a diagram illustrating a configuration example of encoded data according to Embodiment 3.
- FIG. 18 is a diagram illustrating a configuration example of encoded data and a NAL unit according to the third embodiment.
- FIG. 19 is a diagram illustrating an example of semantics of pcc_nal_unit_type according to the third embodiment.
- FIG. 20 is a diagram illustrating an example of a transmission order of NAL units according to Embodiment 3.
- FIG. 21 is a block diagram of a first encoding unit according to Embodiment 4.
- FIG. 22 is a block diagram of a first decoding unit according to Embodiment 4.
- FIG. 23 is a block diagram of a division unit according to the fourth embodiment.
- FIG. 24 is a diagram illustrating an example of dividing a slice and a tile according to the fourth embodiment.
- FIG. 25 is a diagram illustrating an example of a division pattern of slices and tiles according to the fourth embodiment.
- FIG. 26 is a diagram illustrating an example of a dependency relationship according to the fourth embodiment.
- FIG. 27 is a diagram illustrating an example of a decoding order of data according to Embodiment 4.
- FIG. 28 is a flowchart of an encoding process according to Embodiment 4.
- FIG. 29 is a block diagram of a coupling unit according to the fourth embodiment.
- FIG. 30 is a diagram illustrating a configuration example of encoded data and a NAL unit according to Embodiment 4.
- FIG. 30 is a diagram illustrating a configuration example of encoded data and a NAL unit according to Embodiment 4.
- FIG. 31 is a flowchart of an encoding process according to Embodiment 4.
- FIG. 32 is a flowchart of a decoding process according to Embodiment 4.
- FIG. 33 is a flowchart of an encoding process according to Embodiment 4.
- FIG. 34 is a flowchart of a decoding process according to Embodiment 4.
- FIG. 35 is a diagram showing an image of generating a tree structure and an occupancy code from point cloud data of a plurality of frames according to the fifth embodiment.
- FIG. 36 is a diagram illustrating an example of frame combination according to Embodiment 5.
- FIG. 37 is a diagram illustrating an example of combining a plurality of frames according to the fifth embodiment.
- FIG. 38 is a flowchart of a three-dimensional data encoding process according to Embodiment 5.
- FIG. 39 is a flowchart of an encoding process according to Embodiment 5.
- FIG. 40 is a flowchart of a three-dimensional data decoding process according to Embodiment 5.
- FIG. 41 is a flowchart of the decoding and division processing according to Embodiment 5.
- FIG. 42 is a block diagram of an encoding unit according to Embodiment 5.
- FIG. 43 is a block diagram of a dividing unit according to the fifth embodiment.
- FIG. 44 is a block diagram of a position information encoding unit according to Embodiment 5.
- FIG. 45 is a block diagram of an attribute information encoding unit according to Embodiment 5.
- FIG. 46 is a flowchart of a point cloud data encoding process according to Embodiment 5.
- FIG. 47 is a flowchart of an encoding process according to Embodiment 5.
- FIG. 48 is a block diagram of a decoding unit according to Embodiment 5.
- FIG. 49 is a block diagram of a position information decoding unit according to Embodiment 5.
- FIG. 50 is a block diagram of an attribute information decoding unit according to Embodiment 5.
- FIG. 51 is a block diagram of a coupling unit according to the fifth embodiment.
- FIG. 52 is a flowchart of point cloud data decoding processing according to Embodiment 5.
- FIG. 53 is a flowchart of a decoding process according to Embodiment 5.
- FIG. 53 is a flowchart of a decoding process according to Embodiment 5.
- FIG. 54 is a diagram illustrating an example of a frame combination pattern according to Embodiment 5.
- FIG. 55 is a diagram illustrating a configuration example of a PCC frame according to the fifth embodiment.
- FIG. 56 is a diagram showing the configuration of the encoded position information according to Embodiment 5.
- FIG. 57 is a diagram illustrating a syntax example of a header of the encoded position information according to Embodiment 5.
- FIG. 58 is a diagram illustrating a syntax example of a payload of the encoded position information according to Embodiment 5.
- FIG. 59 is a diagram showing an example of leaf node information according to Embodiment 5.
- FIG. 60 is a diagram illustrating an example of leaf node information according to the fifth embodiment.
- FIG. 60 is a diagram illustrating an example of leaf node information according to the fifth embodiment.
- FIG. 61 is a diagram illustrating an example of bitmap information according to Embodiment 5.
- FIG. 62 is a diagram showing the configuration of the encoding attribute information according to Embodiment 5.
- FIG. 63 is a diagram illustrating a syntax example of a header of encoding attribute information according to Embodiment 5.
- FIG. 64 is a diagram illustrating an example of the syntax of the payload of the encoding attribute information according to Embodiment 5.
- FIG. 65 is a diagram illustrating a configuration of encoded data according to Embodiment 5.
- FIG. 66 is a diagram illustrating a data transmission order and a data reference relationship according to the fifth embodiment.
- FIG. 67 is a diagram illustrating a data transmission order and a data reference relationship according to the fifth embodiment.
- FIG. 68 is a diagram illustrating a data transmission order and a data reference relationship according to the fifth embodiment.
- FIG. 69 is a diagram illustrating an example of decoding some frames according to Embodiment 5.
- FIG. 70 is a diagram showing a data transmission order and data reference relationship according to the fifth embodiment.
- FIG. 71 is a diagram showing a data transmission order and data reference relationship according to the fifth embodiment.
- FIG. 72 is a diagram showing a data transmission order and data reference relationship according to the fifth embodiment.
- FIG. 73 is a diagram showing a data transmission order and data reference relationship according to the fifth embodiment.
- FIG. 74 is a flowchart of an encoding process according to Embodiment 5.
- FIG. 75 is a flowchart of a decoding process according to Embodiment 5.
- FIG. 76 is a block diagram of an encoding unit according to Embodiment 6.
- FIG. 77 is a block diagram of a frame index generation unit according to Embodiment 6.
- FIG. 78 is a block diagram of a decoding unit according to Embodiment 6.
- FIG. 79 is a block diagram of a frame index acquisition unit according to Embodiment 6.
- FIG. 80 is a block diagram of a frame index encoding unit according to Embodiment 6.
- FIG. 81 is a diagram illustrating an example of a leaf node and a bitmap according to the sixth embodiment.
- FIG. 82 is a diagram illustrating an example of a ranking according to the sixth embodiment.
- FIG. 83 is a diagram illustrating an example of a look-up table according to the sixth embodiment.
- FIG. 84 is a flowchart of the encoding process according to Embodiment 6.
- FIG. 85 is a flowchart of a process of generating encoded data according to Embodiment 6.
- FIG. 86 is a diagram illustrating a syntax example of connection information according to Embodiment 6.
- FIG. 87 is a block diagram of a frame index acquisition unit according to Embodiment 6.
- FIG. 88 is a diagram showing an example of a look-up table according to Embodiment 6.
- FIG. 89 is a flowchart of a frame index decoding process according to Embodiment 6.
- FIG. 90 is a flowchart of a process of decoding common information and individual information according to Embodiment 6.
- FIG. 90 is a flowchart of a process of decoding common information and individual information according to Embodiment 6.
- FIG. 91 is a diagram illustrating a first example of the syntax of a leaf node according to the sixth embodiment.
- FIG. 92 is a diagram illustrating a second example of the syntax of the leaf node according to the sixth embodiment.
- FIG. 93 is a diagram illustrating a first example of a syntax of position information according to Embodiment 6.
- FIG. 94 is a diagram illustrating a second example of the syntax of the position information according to Embodiment 6.
- FIG. 95 is a flowchart of the encoding process according to Embodiment 6.
- FIG. 96 is a flowchart of a decoding process according to Embodiment 6.
- the three-dimensional data encoding method in the combined three-dimensional data in which the plurality of three-dimensional data is combined, to which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs A bitmap indicating the number of three-dimensional points included in the unit space, and a code including conversion code information indicating the conversion code. Coded data is generated, and each of the values of the bitmap corresponds to each of the combination of the conversion code and the number of three-dimensional points included in the unit space.
- the amount of data can be reduced by encoding a bitmap indicating the correspondence between a plurality of three-dimensional data and three-dimensional points in the combined three-dimensional data. Therefore, according to the three-dimensional data encoding method, the amount of encoded data can be reduced.
- the encoded data includes position information and attribute information of the three-dimensional point, and the converted code information and the overlap point information are included in the position information.
- the encoded data further includes data number information indicating the number of the plurality of three-dimensional data combined in the combined three-dimensional data.
- the conversion code is 0 or a positive integer, and when the conversion code is not 0, generates the encoded data including the conversion code information that is a number obtained by subtracting 1 from the conversion code, When the conversion code is 0, the coded data not including the conversion code information is generated.
- the conversion code when the conversion code is 0, since the conversion code is not included in the encoded data, the data amount of the encoded data can be further reduced.
- the three-dimensional data decoding method includes the unit space in the combined three-dimensional data generated by combining the plurality of three-dimensional data by decoding the encoded data.
- Overlapping point information indicating the number of three-dimensional points, and obtain conversion code information indicating a conversion code, the overlapping point information, using the conversion code information, the three-dimensional point included in the unit space is the Generate a bitmap indicating which of the plurality of three-dimensional data belongs to, using the bitmap, determine whether a three-dimensional point included in the unit space belongs to any of the plurality of three-dimensional data,
- Each of the values of the bitmap corresponds to each of the combinations of the transform code and the number of three-dimensional points included in the unit space.
- a bitmap indicating the correspondence between a plurality of three-dimensional data and three-dimensional points in the combined three-dimensional data can be appropriately acquired from the number of three-dimensional points included in the unit space and the conversion code.
- the encoded data includes position information and attribute information of the three-dimensional point, and the converted code information and the overlap point information are included in the position information.
- the encoded data further includes data number information indicating the number of the plurality of three-dimensional data combined in the combined three-dimensional data.
- the conversion code is 0 or a positive integer, and when the conversion code information is included in the encoded data, a number obtained by adding 1 to the conversion code information is obtained as the conversion code. If the encoded data does not include the conversion code information, 0 is acquired as the conversion code.
- the three-dimensional data encoding device includes a processor and a memory, the processor uses the memory, in the combined three-dimensional data is combined with a plurality of three-dimensional data, A three-dimensional point included in the unit space generates a bitmap indicating to which of the plurality of three-dimensional data belongs, a conversion code is generated using the bitmap, and a three-dimensional point included in the unit space is generated.
- the three-dimensional data encoding device can reduce the data amount by encoding the bitmap indicating the correspondence between the plurality of three-dimensional data and the three-dimensional points in the combined three-dimensional data. Therefore, according to the three-dimensional data encoding device, the amount of encoded data can be reduced.
- a three-dimensional data decoding device includes a processor and a memory, and the processor decodes encoded data using the memory to combine a plurality of three-dimensional data.
- overlapping point information indicating the number of three-dimensional points included in the unit space and conversion code information indicating a conversion code are obtained, and the overlapping point information and the conversion
- code information a bitmap indicating which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs to, and using the bitmap, the third-order point included in the unit space It is determined which of the plurality of three-dimensional data the original point belongs to, and each of the values of the bitmap and each of the combinations of the number of the three-dimensional points included in the conversion code and the unit space are It is compatible.
- the three-dimensional data decoding device generates a bitmap indicating the correspondence between the plurality of three-dimensional data and the three-dimensional point in the combined three-dimensional data from the number of three-dimensional points included in the unit space and the conversion code. Can be obtained properly.
- a recording medium such as a system, a method, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the method, the integrated circuit, and the computer program. And any combination of recording media.
- 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 a use in encoded data of a three-dimensional point cloud
- the code Data decoding method and three-dimensional data decoding device for decoding encoded data, three-dimensional data multiplexing method for multiplexing the encoded data, and three-dimensional data transmission method for transmitting the encoded data are described. I do.
- a first encoding method and a second encoding method are being studied as an encoding method (encoding method) of the point cloud data, but a configuration of the encoded data and a system for encoding the encoded data are described.
- a method of storing data in a format is not defined, and MUX processing (multiplexing), or transmission or storage in the encoding unit cannot be performed as it is.
- FIG. 1 is a diagram illustrating a configuration example of a three-dimensional data encoding / decoding system according to the present embodiment.
- the three-dimensional data encoding / decoding system includes a three-dimensional data encoding system 4601, a three-dimensional data decoding system 4602, a sensor terminal 4603, and an external connection unit 4604.
- the three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data that is three-dimensional data.
- the three-dimensional data encoding system 4601 may be a three-dimensional data encoding device realized by a single device, or may be a system realized by a plurality of devices. Further, the three-dimensional data encoding device may include a part of a plurality of processing units included in the three-dimensional data encoding system 4601.
- the three-dimensional data encoding system 4601 includes a point cloud data generation system 4611, a presentation unit 4612, an encoding unit 4613, a multiplexing unit 4614, an input / output unit 4615, and a control unit 4616.
- the point cloud data generation system 4611 includes a sensor information acquisition unit 4617 and a point cloud data generation unit 4618.
- 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 presenting unit 4612 presents the sensor information or the point cloud data to the user. For example, the presentation unit 4612 displays information or an image based on the sensor information or the 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.
- the 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 the multiplexed data is, for example, a file format for storage or a packet format for transmission.
- the input / output unit 4615 (for example, a communication unit or an interface) outputs the multiplexed data to the outside.
- the multiplexed data is stored in a storage unit such as an internal memory.
- the control unit 4616 (or the application execution unit) controls each processing unit. That is, the control unit 4616 performs control such as encoding and multiplexing.
- the sensor information may be input to the encoding unit 4613 or the multiplexing unit 4614. Further, the input / output unit 4615 may output the point cloud data or the encoded data to the outside as it is.
- the transmission signal (multiplexed data) output from the three-dimensional data encoding system 4601 is input to the three-dimensional data decoding system 4602 via the external connection unit 4604.
- the three-dimensional data decoding system 4602 generates point cloud data as three-dimensional data by decoding encoded data or multiplexed data.
- the three-dimensional data decoding system 4602 may be a three-dimensional data decoding device realized by a single device, or may be a system realized by a plurality of devices. Further, the three-dimensional data decoding device may include a part of a plurality of processing units included in the three-dimensional data decoding system 4602.
- the three-dimensional data decoding system 4602 includes a sensor information acquisition unit 4621, an input / output unit 4622, a demultiplexing unit 4623, a decoding unit 4624, a presentation unit 4625, a user interface 4626, and a control unit 4627.
- the sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603.
- the input / output unit 4622 acquires the transmission signal, decodes the multiplexed data (file format or packet) from the transmission signal, and outputs the multiplexed data to the demultiplexing unit 4623.
- Demultiplexing section 4623 acquires encoded data, control information, and additional information from the multiplexed data, and outputs the encoded data, control information, and additional information to decoding section 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 an image based on the point cloud data.
- the user interface 4626 acquires an instruction based on a user operation.
- the control unit 4627 (or the application execution unit) controls each processing unit. That is, the control unit 4627 performs control such as demultiplexing, decoding, and presentation.
- the input / output unit 4622 may acquire the point cloud data or the encoded data from outside as it is.
- the presentation unit 4625 may acquire additional information such as sensor information and present information based on the additional information. Further, the presentation unit 4625 may perform the presentation based on the user's instruction acquired by the user interface 4626.
- the sensor terminal 4603 generates sensor information which is information obtained by the sensor.
- the sensor terminal 4603 is a terminal equipped with a sensor or a camera, and includes, for example, a moving object such as a car, 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 includes, for example, (1) the distance between the sensor terminal 4603 and the target, or the reflectance of the target obtained from LIDAR, millimeter wave radar, or an infrared sensor; The distance between the camera and the object obtained from the monocular camera image or the stereo camera image of the object or the reflectance of the object.
- the sensor information may include a posture, an orientation, a gyro (angular velocity), a position (GPS information or altitude), a speed, an acceleration, and the like of the sensor.
- the sensor information may include temperature, pressure, humidity, magnetism, and the like.
- the external connection unit 4604 is realized by communication with an integrated circuit (LSI or IC), an external storage unit, a cloud server via the Internet, or broadcasting.
- LSI or IC integrated circuit
- IC integrated circuit
- cloud server via the Internet
- FIG. 2 is a diagram illustrating a configuration of the point cloud data.
- FIG. 3 is a diagram illustrating a configuration example of a data file in which information of point cloud data is described.
- Point cloud data includes data of a plurality of points.
- the data of each point includes position information (three-dimensional coordinates) and attribute information for the position information.
- a collection of multiple points is called a point group.
- a point cloud indicates a three-dimensional shape of an object.
- Position information such as three-dimensional coordinates may be referred to as geometry.
- the data of each point may include attribute information (attributes) of a plurality of attribute types.
- the attribute type is, for example, color or reflectance.
- One piece of attribute information may be associated with one piece of location information, or attribute information having a plurality of different attribute types may be associated with one piece of location information. Further, 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 the position information and the attribute information correspond one-to-one, and shows the position information and the attribute information of N points constituting the point group data. I have.
- the position information is, for example, information on three axes of x, y, and z.
- the attribute information is, for example, RGB color information.
- a typical data file is a ply file.
- FIG. 4 is a diagram illustrating types of point cloud data.
- the point cloud data includes a static object and a dynamic object.
- a static object is three-dimensional point cloud data at an arbitrary time (a certain time).
- a dynamic object is three-dimensional point cloud data that changes over time.
- the three-dimensional point cloud data at a certain time is referred to as a PCC frame or a frame.
- the object may be a point cloud whose area is restricted to some extent like ordinary video data, or a large-scale point cloud whose area is not restricted like map information.
- point cloud data having various densities
- sparse point cloud data and dense point cloud data may exist.
- the sensor information is obtained by various methods such as a distance sensor such as a LIDAR or a range finder, a stereo camera, or a combination of a plurality of monocular cameras.
- the point cloud data generation unit 4618 generates point cloud data based on the sensor information obtained by the sensor information acquisition unit 4617.
- the point group data generation unit 4618 generates position information as point group data, and adds attribute information to 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 data amount by deleting the point cloud whose position is duplicated. In addition, the point cloud data generation unit 4618 may convert the position information (position shift, rotation, normalization, or the like) or may render attribute information.
- the point cloud data generation system 4611 is included in the three-dimensional data encoding system 4601, but may be provided independently outside the three-dimensional data encoding system 4601.
- the coding unit 4613 generates coded data by coding the point cloud data based on a predetermined coding method.
- a predetermined coding method There are roughly the following two types of encoding methods. 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 coded data based on a predetermined coding method.
- the multiplexing unit 4614 generates multiplexed data by multiplexing the encoded data using an existing multiplexing method.
- the generated multiplexed data is transmitted or stored.
- the multiplexing unit 4614 multiplexes other media such as video, audio, subtitles, applications, and files, or reference time information, in addition to the PCC encoded data. Further, the multiplexing unit 4614 may further multiplex attribute information related to sensor information or point cloud data.
- ISOBMFF As a multiplexing method or a file format, there are ISOBMFF, MPEG-DASH, MMT, MPEG-2 TS Systems, RMP and the like, which are transmission methods based on ISOBMFF.
- the demultiplexer 4623 extracts PCC encoded data, other media, time information, and the like from the multiplexed data.
- the input / output unit 4615 transmits the multiplexed data using a method suitable for a transmission medium or a storage medium, such as broadcast or communication.
- the input / output unit 4615 may communicate with another device via the Internet, or may communicate with a storage unit such as a cloud server.
- http As a communication protocol, http, ftp, TCP, UDP, or the like is used.
- a PULL type communication system may be used, or a PUSH type communication system 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
- wireless transmission wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter wave, or the like is used.
- DVB-T2 DVB-S2, DVB-C2, ATSC3.0, ISDB-S3, or the like is used.
- FIG. 5 is a diagram illustrating a configuration of a 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.
- 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 a feature that encoding is performed with consideration for a three-dimensional structure. Further, the first encoding unit 4630 has a feature 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 unit 4631, the attribute information is input to the attribute information encoding unit 4632, and the additional information is input to the additional information encoding unit 4633.
- the position information coding unit 4631 generates coded position information (compressed Geometry), which is coded data, by coding the position information.
- the position information encoding unit 4631 encodes the position information using an N-ary tree structure such as an octant tree.
- the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not each node includes a point cloud is generated.
- the node including the point group is further divided into eight nodes, and 8-bit information indicating whether or not each of the eight nodes includes the point group is generated. This process is repeated until the number of point groups included in the predetermined hierarchy or node becomes equal to or less than the threshold value.
- the attribute information coding unit 4632 generates coded attribute information (Compressed Attribute) which is coded data by coding using the configuration information generated by the position information coding unit 4631. For example, the attribute information encoding unit 4632 determines a reference point (reference node) to be referred to in encoding the processing target point (target node) based on the octree structure generated by the position information encoding unit 4631. I 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 the neighboring nodes or adjacent nodes. The method for determining the reference relationship is not limited to this.
- the encoding process of the attribute information may include at least one of a quantization process, a prediction process, and an arithmetic encoding process.
- the reference refers to using the reference node for calculating the predicted value of the attribute information, or the state of the reference node for determining the encoding parameter (for example, occupancy indicating whether or not the reference node includes a point cloud). Information).
- the encoding parameter is a quantization parameter in a quantization process, a context in arithmetic encoding, or the like.
- the additional information encoding unit 4633 generates encoded additional information (Compressed MetaData), which is encoded data, by encoding compressible data in the additional information.
- Compressed MetaData encoded additional information
- the multiplexing unit 4634 multiplexes the coding position information, the coding attribute information, the coded additional information, and other additional information to generate a coded stream (Compressed $ Stream) that is coded data.
- the generated encoded stream is output to a processing unit of a system layer (not shown).
- FIG. 7 is a diagram illustrating a configuration of the first decoding unit 4640.
- FIG. 8 is a block diagram of the first decoding unit 4640.
- the first decoding unit 4640 generates point cloud data by decoding the coded data (coded stream) coded by the first coding method by the first coding method.
- the first decoding unit 4640 includes a demultiplexing unit 4641, a position information decoding unit 4642, an attribute information decoding unit 4643, and an additional information decoding unit 4644.
- a coded stream (CompressedmStream), which is coded data, is input to a first decoding unit 4640 from a processing unit of a system layer (not shown).
- the demultiplexing unit 4641 separates coded position information (Compressed Geometry), coded attribute information (Compressed Attribute), coded additional information (Compressed MetaData), and other additional information from the coded data.
- coded position information Compressed Geometry
- coded attribute information Compressed Attribute
- coded additional information Compressed MetaData
- 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 octant tree.
- the attribute information decoding unit 4643 decodes the encoded attribute information based on the configuration information generated by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 determines a reference point (reference node) to be referred to in decoding the target point (target node) to be processed based on the octree structure obtained by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 refers to a node whose parent node in the octree is the same as the target node among the peripheral nodes and the adjacent nodes. The method for determining the reference relationship is not limited to this.
- the decoding process of the attribute information may include at least one of an inverse quantization process, a prediction process, and an arithmetic decoding process.
- the reference means that the reference node is used for calculating 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 cloud) in determining the decoding parameter.
- the decoding parameter is a quantization parameter in the inverse quantization process, a context in the arithmetic decoding, or the like.
- the additional information decoding unit 4644 generates additional information by decoding the encoded additional information. Further, first decoding section 4640 uses additional information necessary for decoding position information and attribute information at the time of decoding, and outputs additional information necessary for an application to the outside.
- FIG. 9 is a diagram illustrating a configuration of the second encoding unit 4650.
- FIG. 10 is a block diagram of the second encoding unit 4650.
- the second encoding unit 4650 generates encoded data (encoded stream) by encoding the point cloud data by 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.
- the second encoding unit 4650 generates a position image and an attribute image by projecting a three-dimensional structure onto a two-dimensional image, and encodes the generated position image and the attribute image using an existing video encoding method. It has the feature of.
- the second encoding method is also called VPCC (Video based PCC).
- the point cloud data is PCC point cloud data such as a PLY file or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information MetaData. Including.
- the additional information generation unit 4651 generates map information of a plurality of two-dimensional images by projecting a three-dimensional structure onto a two-dimensional image.
- the position image generation unit 4652 generates a position image (Geometry @ Image) based on the position information and the map information generated by the additional information generation unit 4651.
- This position image is, for example, a distance image in which a distance (Depth) is indicated as a pixel value.
- the distance image may be an image in which a plurality of point groups are viewed from one viewpoint (an image in which a plurality of point groups are projected on one two-dimensional plane), or a plurality of point groups may be viewed from a plurality of viewpoints. Or a single image obtained by integrating the 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.
- the attribute image is, for example, an image in which attribute information (for example, color (RGB)) is indicated as a pixel value.
- RGB color
- This image may be an image in which a plurality of point groups are viewed from one viewpoint (an image in which a plurality of point groups are projected on one two-dimensional plane), or a plurality of point groups may be 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 the video encoding method, so that the encoded position image (Compressed Geometry Image) and the encoded attribute image (Compressed Attribute Image) are encoded data. ).
- the video encoding method is AVC or HEVC.
- the additional information encoding unit 4655 generates encoded additional information (Compressed @ MetaData) by encoding additional information, map information, and the like included in the point cloud data.
- the multiplexing unit 4656 multiplexes the coded position image, the coded attribute image, the coded additional information, and other additional information to generate a coded stream (Compressed $ Stream) that is coded data.
- the generated encoded stream is output to a processing unit of a system layer (not shown).
- FIG. 11 is a diagram illustrating a configuration of the second decoding unit 4660.
- FIG. 12 is a block diagram of the second decoding unit 4660.
- the second decoding unit 4660 generates point cloud data by decoding the coded data (coded stream) coded by the second coding method by the second coding method.
- the second decoding unit 4660 includes a demultiplexing unit 4661, a video decoding unit 4662, an additional information decoding unit 4663, a position information generation unit 4664, and an attribute information generation unit 4665.
- the encoded stream (Compressed Stream), which is encoded data, is input to the second decoding unit 4660 from a processing unit of a system layer (not shown).
- the demultiplexing unit 4661 separates the encoded position image (Compressed @ Geometry @ Image), the encoded attribute image (Compressed @ Attribute @ Image), the encoded additional information (Compressed @ MetaData), and other additional information from the encoded data. .
- the video decoding unit 4662 generates the position image and the attribute image by decoding the encoded position image and the encoded attribute image using the video encoding method. It should be noted that any known encoding scheme may be used as the video encoding scheme. For example, the video encoding method is AVC or HEVC.
- 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 the map information.
- the attribute information generation unit 4665 generates attribute information using the attribute image and the map information.
- the second decoding unit 4660 uses the additional information necessary for decoding at the time of decoding, and outputs the additional information necessary for the application to the outside.
- FIG. 13 is a diagram showing a protocol stack related to PCC encoded data.
- FIG. 13 shows an example in which data of another medium such as video (for example, HEVC) or audio is multiplexed on PCC encoded data and transmitted or stored.
- video for example, HEVC
- audio is multiplexed on PCC encoded data and transmitted or stored.
- the multiplexing method and the file format have a function of multiplexing various coded data and transmitting or storing the coded data.
- the encoded data In order to transmit or store the encoded data, the encoded data must be converted to a multiplex format.
- HEVC a technique is defined in which encoded data is stored in a data structure called a NAL unit, and the NAL unit is stored in ISOBMFF.
- the first encoding method (Codec1) and the second encoding method (Codec2) are being studied as the encoding method of the point cloud data.
- a method of storing data in the system format is not defined, and MUX processing (multiplexing), transmission, and storage in the encoding unit cannot be performed as it is.
- ISOBMFF ISO based media file format
- ISOBMFF ISO based media file format
- ISOBMFF specifies a format in which various media such as video, audio, and text can be multiplexed and stored, and is a media-independent standard.
- the basic structure (file) of ISOBMFF will be described.
- the basic unit in ISOBMFF is a box.
- a box is composed of type, length, and data, and a set obtained by combining various types of boxes is a file.
- FIG. 14 is a diagram showing the basic structure (file) of ISOBMFF.
- the ISOBMFF file mainly includes boxes such as ftyp indicating the brand of the file in 4CC (four character code), moov for storing metadata such as control information, and mdat for storing data.
- the storage method for each medium in the ISOBMFF file is separately defined.
- the storage method of AVC video and HEVC video is specified in ISO / IEC14496-15.
- the function of the ISOBMFF is extended and used.
- FIG. 15 is a diagram showing a protocol stack when a NAL unit common to PCC codecs is stored in an ISOBMFF file.
- the NAL unit common to the PCC codecs is stored in the ISOBMFF file.
- the NAL unit is common to the PCC codec, but since a plurality of PCC codecs are stored in the NAL unit, it is desirable to define a storage method (Carrier of codec1, Carrier of codec2) corresponding to each codec.
- encoded data position information (Geometry), attribute information (Attribute), additional information (Metadata) generated by first encoding section 4630 or second encoding section 4650 described above.
- the method of generating additional information (metadata) and the multiplexing process in the multiplexing unit will be described.
- the additional information (metadata) may be described as a parameter set or control information.
- the dynamic object (the three-dimensional point cloud data that changes over time) described with reference to FIG. 4 will be described as an example.
- a static object the three-dimensional point cloud data at an arbitrary time
- a similar method may be used.
- FIG. 16 is a diagram showing a configuration of the encoding unit 4801 and the multiplexing unit 4802 included in the three-dimensional data encoding device according to the present embodiment.
- the encoding unit 4801 corresponds to, for example, the first encoding unit 4630 or the second encoding unit 4650 described above.
- the multiplexing unit 4802 corresponds to the multiplexing unit 4634 or 46456 described above.
- the encoding unit 4801 encodes point group data of a plurality of PCC (Point Clood Compression) frames, and generates coded data (Multiple Compressed Data) of a plurality of position information, attribute information, and additional information.
- PCC Point Clood Compression
- the multiplexing unit 4802 converts the data of a plurality of data types (position information, attribute information, and additional information) into NAL units, thereby converting the data into a data configuration considering data access in the decoding device.
- FIG. 17 is a diagram illustrating a configuration example of encoded data generated by the encoding unit 4801.
- the arrows in the figure indicate the dependencies related to the decoding of the 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 at the tip of the arrow, and decodes the original data at the arrow using the decoded data.
- the term “dependent” means that dependent data is referenced (used) in processing (encoding or decoding) of dependent data.
- the encoding unit 4801 encodes the position information of each frame to generate encoded position data (Compressed ⁇ Geometry ⁇ Data) for each frame. Also, the encoded position data is represented by G (i). i indicates a frame number, a frame time, or the like.
- ⁇ Encoding section 4801 also generates a position parameter set (GPS (i)) corresponding to each frame.
- the position parameter set includes parameters that can be used for decoding encoded position data. Also, the encoded position data for each frame depends on the corresponding position parameter set.
- the encoded position data composed of a plurality of frames is defined as a position sequence (Geometry @ Sequence).
- the encoding unit 4801 generates a position sequence parameter set (Geometry ⁇ Sequence ⁇ PS: also referred to as position SPS) that stores parameters commonly used for decoding processing for a plurality of frames in the position sequence.
- the position sequence depends on the position SPS.
- the encoding unit 4801 encodes attribute information of each frame to generate encoded attribute data (Compressed Attribute Data) for each frame. Also, the encoding attribute data is represented by A (i).
- FIG. 17 shows an example in which an attribute X and an attribute Y are present.
- the encoded attribute data of the attribute X is represented by AX (i)
- the encoded attribute data of the attribute Y is represented by AY (i). .
- ⁇ Encoding unit 4801 also generates an attribute parameter set (APS (i)) corresponding to each frame.
- the attribute parameter set of the attribute X is represented by AXPS (i)
- the attribute parameter set of the attribute Y is represented by AYPS (i).
- the attribute parameter set includes parameters that can be used for decoding the encoded attribute information.
- the encoded attribute data depends on the corresponding attribute parameter set.
- the encoded attribute data composed of a plurality of frames is defined as an attribute sequence (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 for decoding processing on a plurality of frames in the attribute sequence.
- the attribute sequence depends on the attribute SPS.
- the encoding attribute data depends on the encoding position data.
- FIG. 17 shows an example in which two types of attribute information (attribute X and attribute Y) exist.
- attribute information for example, respective data and metadata are generated by two encoding units.
- an attribute sequence is defined for each type of attribute information, and an attribute SPS is generated for each type of attribute information.
- FIG. 17 shows an example in which one type of position information and two types of attribute information are used, the present invention is not limited to this, and one type of attribute information or three or more types of attribute information may be used. Good. Also in this case, encoded data can be generated in a similar manner. In the case of point cloud data having no attribute information, the attribute information may not be required. In that case, the encoding unit 4801 does not need to generate the parameter set related to the attribute information.
- the encoding unit 4801 generates a PCC stream PS (PCC Stream PS), which is a parameter set of the entire PCC stream.
- the encoding unit 4801 stores, in the stream PS, parameters that can be commonly used for decoding processing for one or more position sequences and one or more attribute sequences.
- the stream PS includes identification information indicating a codec of the point cloud data, information indicating an algorithm used for encoding, and the like.
- the position sequence and the attribute sequence depend on the stream PS.
- the access unit is a basic unit for accessing data at the time of decoding, and is composed of one or more data and one or more metadata.
- the access unit includes position information at the same time and one or a plurality of pieces of attribute information.
- the GOF is a random access unit and is composed of one or more access units.
- the coding unit 4801 generates an access unit header (AUAHeader) as identification information indicating the head of the access unit.
- Encoding section 4801 stores parameters related to the access unit in the access unit header.
- the access unit header includes the configuration 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, for example, parameters related to decoding of encoded data.
- the encoding unit 4801 may generate an access unit delimiter that does not include a parameter related to the access unit, instead of the access unit header.
- This access unit delimiter is used as identification information indicating the head of the access unit.
- the decoding device identifies the head of the access unit by detecting the access unit header or the access unit delimiter.
- the encoding unit 4801 generates a GOF header (GOF @ Header) as identification information indicating the head of the GOF.
- the encoding unit 4801 stores the parameters related to GOF in the GOF header.
- the GOF header includes the configuration or information of the encoded data included in the GOF.
- the GOF header includes parameters commonly used for data included in the GOF, for example, parameters related to decoding of encoded data.
- the encoding unit 4801 may generate a GOF delimiter that does not include a parameter related to GOF, instead of the GOF header.
- This GOF delimiter is used as identification information indicating the head of the GOF.
- the decoding device identifies the head of the GOF by detecting the GOF header or the GOF delimiter.
- an access unit is defined as a PCC frame unit.
- the decoding device accesses the PCC frame based on the identification information at the head of the access unit.
- ⁇ Also for example, GOF is defined as one random access unit.
- the decoding device accesses the random access unit based on the identification information at the head of the GOF. For example, if the PCC frames do not depend on each other and can be decoded independently, the PCC frame may be defined as a random access unit.
- two or more PCC frames may be allocated to one access unit, or a plurality of random access units may be allocated to one GOF.
- the encoding unit 4801 may define and generate a parameter set or metadata other than the above. For example, the encoding unit 4801 may generate an SEI (Supplemental Enhancement Information) that stores parameters (optional parameters) that may not be used at the time of decoding.
- SEI Supplemental Enhancement Information
- FIG. 18 is a diagram illustrating an example of encoded data and a NAL unit.
- the encoded data includes a header and a payload.
- the encoded data may include length information indicating the length (data amount) of the encoded data, the header, or the payload.
- the encoded data need not include a header.
- the header includes, for example, identification information for specifying data.
- This identification information indicates, for example, a data type or a frame number.
- the header includes, for example, identification information indicating a reference relationship.
- This identification information is, for example, stored in a header when there is a dependency between data, and is information for referring to a reference destination from a reference source.
- the header of the reference destination includes identification information for specifying the data.
- the header of the reference source includes identification information indicating the reference destination.
- the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.
- the multiplexing unit 4802 stores the 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. 19 is a diagram illustrating an example of the semantics of pcc_nal_unit_type.
- values 0 to 10 of pcc_nal_unit_type are the encoding position data (Geometry) and the encoding attribute X data in codec 1.
- AttributeX encoding attribute Y data (AttributeY), position PS (Geom.PS), attribute XPS (AttrX.PS), attribute YPS (AttrX.PS), position SPS (Geometry @ Sequence @ PS), attribute XSPS (Attribute @ XSequenceXQuery) PS), attributes YSPS (AttributeY ⁇ Sequence ⁇ PS), AU header (AU ⁇ Header), and GOF header (GOF ⁇ Header)In addition, values 11 and after are assigned to the reserve of the codec 1.
- values 0 to 2 of pcc_nal_unit_type are assigned to codec data A (DataA), metadata A (MetaDataA), and metadata B (MetaDataB). .
- values 3 and after are assigned to the reserve of the codec 2.
- the multiplexing unit 4802 collectively sends out NAL units in GOF or AU units.
- Multiplexing section 4802 arranges a GOF header at the head of GOF and arranges an AU header at the head of AU.
- the multiplexing unit 4802 may arrange a sequence parameter set (SPS) for each AU so that even when data is lost due to packet loss or the like, the decoding device can decode from the next AU.
- SPS sequence parameter set
- the decoding device decodes the data of the reference destination after decoding the data of the reference destination.
- the multiplexing unit 4802 sends out the data of the reference destination first.
- FIG. 20 is a diagram showing an example of the sending order of NAL units.
- FIG. 20 shows three examples of position information priority, parameter priority, and data integration.
- the position information priority transmission order is an example in which information relating to position information and information relating to attribute information are transmitted together. In the case of this transmission order, the transmission of the information on the position information is completed earlier than the transmission of the information on the attribute information.
- a decoding device that does not decode the attribute information may be able to provide a non-processing time by ignoring the decoding of the attribute information. Also, for example, in the case of a decoding device that wants to decode position information early, there is a possibility that position information can be decoded earlier by obtaining encoded data of the position information earlier.
- the attribute XSPS and the attribute YSPS are integrated and described as an attribute SPS. However, the attribute XSPS and the attribute YSPS may be individually arranged.
- the parameter set is transmitted first and the data is transmitted later.
- the multiplexing unit 4802 may transmit the NAL units in any order.
- the order identification information is defined, and the multiplexing unit 4802 may have a function of transmitting NAL units in the order of a plurality of patterns.
- the order identification information of the NAL units is stored in the stream PS.
- the three-dimensional data decoding device may perform decoding based on the order identification information.
- a desired transmission order may be instructed from the three-dimensional data decoding device to the three-dimensional data encoding device, and the three-dimensional data encoding device (multiplexing section 4802) may control the transmission order according to the instructed transmission order.
- the multiplexing unit 4802 may generate encoded data in which a plurality of functions are merged as long as the transmission order is restricted, such as the transmission order of data integration.
- a GOF header and an AU header may be integrated, or AXPS and AYPS may be integrated.
- an identifier indicating that the data has a plurality of functions is defined in pcc_nal_unit_type.
- PS has a level like a frame-level PS, a sequence-level PS, and a PCC-sequence-level PS.
- the parameter storage method is as follows. The following method may be used.
- the value of the default PS is indicated by a higher PS. If the value of the lower PS is different from the value of the upper PS, the value of the PS is indicated by the lower PS. Alternatively, the value of the PS is not described in the upper PS, but the value of the PS is described in the lower PS. Alternatively, information indicating whether the value of the PS is indicated by the lower PS, the upper PS, or both is indicated in one or both of the lower PS and the upper PS. Alternatively, a lower PS may be merged with a higher PS. Alternatively, when the lower PS and the higher PS overlap, the multiplexing unit 4802 may omit transmission of either one.
- the encoding unit 4801 or the multiplexing unit 4802 may divide the data into slices or tiles and transmit the divided data.
- the divided data includes information for identifying the divided data, and parameters used for decoding the divided data are included in the parameter set.
- pcc_nal_unit_type defines an identifier indicating that it is data for storing data or parameters related to a tile or a slice.
- FIG. 21 is a block diagram showing a configuration of first encoding section 4910 included in the three-dimensional data encoding device according to the present embodiment.
- the first encoding unit 4910 generates encoded data (encoded stream) by encoding the point cloud data using a first encoding method (GPCC (Geometry @ based @ PCC)).
- This first encoding section 4910 includes a division section 4911, a plurality of position information encoding sections 4912, a plurality of attribute information encoding sections 4913, an additional information encoding section 4914, and a multiplexing section 4915. .
- the division unit 4911 generates a plurality of divided data by dividing the point cloud data. Specifically, the dividing unit 4911 generates a plurality of pieces of divided data by dividing the space of the point cloud data into a plurality of subspaces.
- the subspace is one of a tile and a slice, or a combination of a tile and a slice.
- the point cloud data includes position information, attribute information, and additional information.
- the dividing unit 4911 divides the position information into a plurality of pieces of divided position information, and divides the attribute information into a plurality of pieces of divided attribute information. Further, the division unit 4911 generates additional information regarding division.
- the plurality of position information encoding units 4912 generate a plurality of pieces of encoded position information by encoding a plurality of pieces of divided position information. For example, the plurality of position information encoding units 4912 process a plurality of pieces of divided position information in parallel.
- the plurality of attribute information encoding units 4913 generates a plurality of pieces of encoded attribute information by encoding the plurality of pieces of attribute information. For example, the plurality of attribute information encoding units 4913 processes a plurality of pieces of divided attribute information in parallel.
- the additional information encoding unit 4914 generates encoded additional information by encoding the additional information included in the point cloud data and the additional information related to data division generated at the time of division by the division unit 4911.
- the multiplexing unit 4915 generates coded data (coded stream) by multiplexing a plurality of pieces of coding position information, a plurality of pieces of coding attribute information, and coded additional information, and sends out the generated coded data. .
- the encoded additional information is used at the time of decoding.
- FIG. 21 illustrates an example in which the number of the position information encoding unit 4912 and the number of the attribute information encoding units 4913 are each two, but the numbers of the position information encoding unit 4912 and the attribute information encoding unit 4913 are respectively
- the number may be one, or three or more.
- the plurality of divided data may be processed in parallel in the same chip like a plurality of cores in a CPU, may be processed in parallel in the cores of a plurality of chips, or may be processed in parallel in the plurality of cores of a plurality of chips. May be done.
- FIG. 22 is a block diagram showing a configuration of first decoding section 4920.
- First decoding section 4920 restores point cloud data by decoding coded data (coded stream) generated by coding the point cloud data by the first coding method (GPCC).
- the first decoding unit 4920 includes a demultiplexing unit 4921, a plurality of position information decoding units 4922, a plurality of attribute information decoding units 4923, an additional information decoding unit 4924, and a combining unit 4925.
- the demultiplexing unit 4921 generates a plurality of pieces of coding position information, a plurality of pieces of coding attribute information, and a piece of coding additional information by demultiplexing the coded data (coded stream).
- the plurality of position information decoding units 4922 generate a plurality of pieces of division position information by decoding a plurality of pieces of encoded position information. For example, the plurality of position information decoding units 4922 process a plurality of pieces of encoded position information in parallel.
- the plurality of attribute information decoding units 4923 generate a plurality of pieces of divided attribute information by decoding a plurality of pieces of encoded attribute information. For example, the plurality of attribute information decoding units 4923 processes a plurality of pieces of encoded attribute information in parallel.
- the plurality of additional information decoding units 4924 generate additional information by decoding the encoded additional information.
- the combining unit 4925 generates position information by combining a plurality of pieces of divided position information using the additional information.
- the combining unit 4925 generates attribute information by combining a plurality of pieces of divided attribute information using the additional information.
- FIG. 22 shows an example in which the number of the position information decoding unit 4922 and the number of the attribute information decoding units 4923 are each two, the number of the position information decoding unit 4922 and the number of the attribute information decoding units 4923 are each one. Or three or more.
- the plurality of divided data may be processed in parallel in the same chip as in a plurality of cores in the CPU, may be processed in parallel in the cores of a plurality of chips, or may be processed in parallel by the plurality of cores of a plurality of chips. You may.
- FIG. 23 is a block diagram of the dividing unit 4911.
- Dividing section 4911 includes a slice dividing section 4931 (Slice Divider), a position information tile dividing section 4932 (Geometry Tile Divider), and an attribute information tile dividing section 4933 (Attribute Tile Divider).
- the slice division unit 4931 divides the position information (Position (Geometry)) into slices to generate a plurality of slice position information.
- the slice division unit 4931 generates a plurality of pieces of slice attribute information by dividing the attribute information (Attribute) into slices. Also, the slice division unit 4931 outputs information related to slice division and slice additional information (Slice @ MetaData) including information generated in the slice division.
- the position information tile division unit 4932 generates a plurality of division position information (a plurality of tile position information) by dividing a plurality of slice position information into tiles.
- the position information tile division unit 4932 outputs position tile additional information (Geometry ⁇ Tile ⁇ MetaData) including information related to the tile division of the position information and the information generated in the tile division of the position information.
- the attribute information tile division unit 4933 generates a plurality of pieces of attribute information (a plurality of pieces of tile attribute information) by dividing a plurality of pieces of slice attribute information into tiles.
- the attribute information tile division unit 4933 outputs attribute tile additional information (Attribute ⁇ Tile ⁇ MetaData) including information related to the tile division of the attribute information and information generated in the tile division of the attribute information.
- the number of slices or tiles to be divided is one or more. That is, it is not necessary to divide a slice or a tile.
- ⁇ Also here, an example is shown in which tile division is performed after slice division, but slice division may be performed after tile division. Further, a new division type may be defined in addition to slices and tiles, and division may be performed using three or more division types.
- FIG. 24 is a diagram illustrating an example of slice and tile division.
- the dividing unit 4911 divides the three-dimensional point group data into arbitrary point groups in slice units.
- the division unit 4911 divides the position information and the attribute information collectively without dividing the position information and the attribute information constituting the point. That is, division section 4911 performs slice division so that position information and attribute information at an arbitrary point belong to the same slice.
- any method may be used for the number of divisions and the division method.
- the minimum unit of division is a point.
- the number of divisions of the position information and the attribute information is the same.
- a three-dimensional point corresponding to position information after slice division and a three-dimensional point corresponding to attribute information are included in the same slice.
- the dividing unit 4911 also generates slice additional information, which is additional information relating to the number of divisions and the division method at the time of slice division.
- the slice additional information is the same for the position information and the attribute information.
- the slice additional information includes information indicating the reference coordinate position, size, or side length of the bounding box after division.
- the slice additional information includes information indicating the number of divisions, the type of division, and the like.
- the dividing unit 4911 divides the slice-divided data into slice position information (G slice) and slice attribute information (A slice), and divides the slice position information and slice attribute information into tile units.
- FIG. 24 shows an example in which division is performed using an octree structure, but any number of divisions and division methods may be used.
- ⁇ Division section 4911 may divide the position information and the attribute information by different division methods, or may divide by the same division method.
- the dividing unit 4911 may divide the plurality of slices into tiles using different division methods, or may divide the plurality of slices into tiles using the same division method.
- the dividing unit 4911 generates tile additional information on the number of divisions and the division method at the time of dividing the tile.
- the tile additional information (position tile additional information and attribute tile additional information) is independent of position information and attribute information.
- the tile additional information includes information indicating the reference coordinate position, size, or side length of the bounding box after division.
- the tile additional information includes information indicating the number of divisions, the type of division, and the like.
- the dividing unit 4911 may use a predetermined method as a method of slice or tile division, or may adaptively switch a method to be used according to the point cloud data.
- the division unit 4911 divides the three-dimensional space collectively for the position information and the attribute information. For example, the dividing unit 4911 determines the shape of the object, and divides the three-dimensional space into slices according to the shape of the object. For example, the division unit 4911 extracts an object such as a tree or a building, and divides the object into units. For example, the division unit 4911 performs slice division such that one or a plurality of objects are entirely included in one slice. Alternatively, the dividing unit 4911 divides one object into a plurality of slices.
- the encoding device may change the encoding method for each slice, for example.
- the encoding device may use a high quality compression method for a particular object or a particular part of an object.
- the encoding device may store information indicating the encoding method for each slice in the additional information (metadata).
- the dividing unit 4911 may perform slice division based on the map information or the position information so that each slice corresponds to a predetermined coordinate space.
- the division unit 4911 independently divides position information and attribute information. For example, the dividing unit 4911 divides a slice into tiles according to a data amount or a processing amount. For example, the dividing unit 4911 determines whether the data amount of the slice (for example, the number of three-dimensional points included in the slice) is larger than a predetermined threshold. When the data amount of the slice is larger than the threshold, the dividing unit 4911 divides the slice into tiles. When the data amount of the slice is smaller than the threshold, the dividing unit 4911 does not divide the slice into tiles.
- the data amount of the slice for example, the number of three-dimensional points included in the slice
- the dividing unit 4911 divides a slice into tiles such that the processing amount or processing time in the decoding device is within a certain range (not more than a predetermined value). Thereby, the processing amount per tile in the decoding device becomes constant, and the distributed processing in the decoding device becomes easy.
- the dividing unit 4911 determines the division number of the position information as the division number of the attribute information. Do more.
- the dividing unit 4911 sets the number of divisions of the position information to It may be larger than the number of divisions of the attribute information. Accordingly, the decoding device can increase the number of parallel pieces of position information, and thus can speed up the processing of the position information compared to the processing of the attribute information.
- the decoding device does not necessarily need to perform parallel processing on sliced or tiled data, and may determine whether to perform parallel processing on the data in accordance with the number or capability of the decoding processing units.
- adaptive encoding can be realized according to the content or the object. Further, parallel processing in the decoding processing can be realized. This improves the flexibility of the point cloud coding system or the point cloud decoding system.
- FIG. 25 is a diagram showing an example of a pattern of slice and tile division.
- DU in the figure is a data unit (DataUnit), and indicates data of a tile or a slice.
- Each DU includes a slice index (SliceIndex) and a tile index (TileIndex).
- sliceIndex slice index
- TileIndex tile index
- the upper right numerical value of DU indicates the slice index
- the lower left numerical value of DU indicates the tile index.
- the number of divisions and the division method are the same for the G slice and the A slice.
- the division number and division method for the G slice are different from the division number and division method for the A slice.
- the same number of divisions and the same division method are used between a plurality of G slices.
- the same division number and division method are used between a plurality of A slices.
- the number of divisions and the division method are the same for the G slice and the A slice.
- the division number and division method for the G slice are different from the division number and division method for the A slice.
- the number of divisions and the division method differ among a plurality of G slices.
- the number of divisions and the division method differ among a plurality of A slices.
- the three-dimensional data encoding device (first encoding unit 4910) encodes each of the divided data.
- the three-dimensional data encoding apparatus When encoding attribute information, the three-dimensional data encoding apparatus generates, as additional information, dependency information indicating which configuration information (position information, additional information, or other attribute information) has been used for encoding. . That is, the dependency information indicates, for example, configuration information of a reference destination (dependency destination).
- the three-dimensional data encoding device generates the dependency information based on the configuration information corresponding to the division shape of the attribute information. Note that the three-dimensional data encoding device may generate the dependency information based on the configuration information corresponding to the plurality of divided shapes.
- the dependency information may be generated by the three-dimensional data encoding device, and the generated dependency information may be sent to the three-dimensional data decoding device.
- the three-dimensional data decoding device may generate the dependency information, and the three-dimensional data encoding device may not transmit the dependency information.
- the dependency used by the three-dimensional data encoding device may be determined in advance, and the three-dimensional data encoding device may not transmit the dependency information.
- FIG. 26 is a diagram showing an example of the dependency of each data.
- the tip of the arrow in the figure indicates the dependence destination, and the source of the arrow indicates the dependence source.
- the three-dimensional data decoding device decodes data in the order from the dependence destination to the dependence source.
- data indicated by a solid line is data actually transmitted, and data indicated by a dotted line is data not transmitted.
- G indicates position information
- A indicates attribute information.
- G s1 indicates the position information of slice number 1
- G s2 indicates the position information of slice number 2.
- G s1t1 indicates the position information of slice number 1 and tile number 1
- G s1t2 indicates the position information of slice number 1 and tile number 2
- G s2t1 indicates the position information of slice number 2 and tile number 1.
- Gs2t2 indicate the position information of slice number 2 and tile number 2.
- As1 indicates the attribute information of the slice number 1
- As2 indicates the attribute information of the slice number 2.
- As1t1 indicates the attribute information of slice number 1 and tile number 1
- As1t2 indicates the attribute information of slice number 1 and tile number 2
- As2t1 indicates the attribute information of slice number 2 and tile number 1.
- As2t2 indicate attribute information of slice number 2 and tile number 2.
- Mslice indicates slice additional information
- MGtile indicates position tile additional information
- MAtile indicates attribute tile additional information.
- D S1t1 shows the dependency information of the attribute information A s1t1
- D s2t1 shows the dependency information of the attribute information A s2t1.
- the three-dimensional data encoding device may rearrange the data in the decoding order so that the three-dimensional data decoding device does not need to rearrange the data.
- the data may be rearranged in the three-dimensional data decoding device, or the data may be rearranged in both the three-dimensional data encoding device and the three-dimensional data decoding device.
- FIG. 27 is a diagram showing an example of a data decoding order.
- decoding is performed sequentially from the left data.
- the three-dimensional data decoding device decodes dependent data first among data having a dependent relationship.
- the three-dimensional data encoding apparatus rearranges data in this order in advance and transmits the data. Note that any order may be used as long as the data of the dependence destination comes first. Further, the three-dimensional data encoding device may transmit the additional information and the dependency information before the data.
- FIG. 28 is a flowchart showing the flow of processing by the three-dimensional data encoding device.
- the three-dimensional data encoding device encodes data of a plurality of slices or tiles as described above (S4901).
- the three-dimensional data encoding device rearranges the data such that the data of the dependence destination comes first (S4902).
- the three-dimensional data encoding device multiplexes the data after rearrangement (NAL unit conversion) (S4903).
- FIG. 29 is a block diagram illustrating a configuration of the combining unit 4925.
- the combining unit 4925 includes a position information tile combining unit 4941 (Geometry Tile Combiner), an attribute information tile combining unit 4942 (Attribute Tile Combiner), and a slice combining unit (Slice Combiner).
- the position information tile combining unit 4941 generates a plurality of pieces of slice position information by combining a plurality of pieces of divided position information using the additional position tile information.
- the attribute information tile combining unit 4942 generates a plurality of slice attribute information by combining a plurality of division attribute information using the attribute tile additional information.
- the slice combining unit 4943 generates position information by combining a plurality of pieces of slice position information using the slice additional information.
- the slice combination unit 4943 generates attribute information by combining a plurality of slice attribute information using the slice additional information.
- the number of slices or tiles to be divided is one or more. That is, the division of the slice or tile may not be performed.
- ⁇ Also here, an example is shown in which tile division is performed after slice division, but slice division may be performed after tile division. Further, a new division type may be defined in addition to slices and tiles, and division may be performed using three or more division types.
- FIG. 30 is a diagram illustrating a configuration of encoded data and a method of storing the encoded data in the NAL unit.
- the encoded data (division position information and division attribute information) is stored in the payload of the NAL unit.
- the encoded data includes a header and a payload.
- the header includes identification information for specifying data included in the payload.
- This identification information includes, for example, the type of slice division or tile division (slice_type, tile_type), index information (slice_idx, tile_idx) for specifying a slice or tile, position information of data (slice or tile), or data address. (Address).
- Index information for specifying a slice is also referred to as a slice index (SliceIndex).
- Index information for specifying a tile is also described as a tile index (TileIndex).
- the type of division is, for example, a method based on the object shape as described above, a method based on map information or position information, a method based on a data amount or a processing amount, or the like.
- all or part of the above information may be stored in one of the header of the division position information and the header of the division attribute information, and may not be stored in the other.
- the division type (slice_type, tile_type) and the index information (slice_idx, tile_idx) are the same for the position information and the attribute information. Therefore, one of the headers of the position information and the attribute information may include such information. For example, if the attribute information depends on the position information, the position information is processed first. Therefore, these pieces of information may be included in the header of the position information, and may not be included in the header of the attribute information. In this case, for example, the three-dimensional data decoding device determines that the attribute information of the dependence source belongs to the same slice or tile as the slice or tile of the position information of the dependence destination.
- additional information (slice additional information, position tile additional information, or attribute tile additional information) relating to slice division or tile division, and dependency information indicating a dependency relationship are stored in existing parameter sets (GPS, APS, position SPS or Attribute SPS).
- information indicating the division method may be stored in a parameter set (such as GPS or APS) for each frame.
- information indicating the division method may be stored in a parameter set (position SPS or attribute SPS) for each sequence.
- information indicating the division method may be stored in the parameter set (stream PS) of the PCC stream.
- the information described above may be stored in any of the above parameter sets, or may be stored in a plurality of parameter sets.
- a parameter set for tile division or slice division may be defined, and the above information may be stored in the parameter set.
- These pieces of information may be stored in the header of the encoded data.
- the header of the encoded data includes identification information indicating a dependency. That is, when there is a dependency between the data, the header includes identification information for referring to the destination from the source. For example, the header of the dependent data includes identification information for identifying the data. The header of the dependency source data includes identification information indicating the dependency destination. If identification information for specifying data, additional information relating to slice division or tile division, and identification information indicating a dependency relationship can be identified or derived from other information, such information is omitted. You may.
- FIG. 31 is a flowchart of the point cloud data encoding process according to the present embodiment.
- the three-dimensional data encoding device determines a division method to be used (S4911).
- This division method includes whether to perform slice division and whether to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
- the type of division is a method based on the object shape as described above, a method based on map information or position information, a method based on a data amount or a processing amount, or the like. Note that the division method may be determined in advance.
- the three-dimensional data encoding device When slice division is performed (Yes in S4912), the three-dimensional data encoding device generates a plurality of pieces of slice position information and a plurality of pieces of slice attribute information by dividing the position information and the attribute information collectively (S4913). . Further, the three-dimensional data encoding device generates slice additional information related to slice division. Note that the three-dimensional data encoding device may divide the position information and the attribute information independently.
- the three-dimensional data encoding device When the tile division is performed (Yes in S4914), the three-dimensional data encoding device separately divides the plurality of slice position information and the plurality of slice attribute information (or the position information and the attribute information), thereby dividing the plurality of division positions. Information and a plurality of division attribute information are generated (S4915). Further, the three-dimensional data encoding device generates position tile additional information and attribute tile additional information relating to tile division. Note that the three-dimensional data encoding device may divide the slice position information and the slice attribute information at a time.
- the three-dimensional data encoding device generates a plurality of pieces of encoded position information and a plurality of pieces of encoded attribute information by encoding each of the plurality of pieces of divided position information and the plurality of pieces of divided attribute information (S4916). . Further, the three-dimensional data encoding device generates dependency information.
- the three-dimensional data encoding device generates encoded data (encoded stream) by NAL unitizing (multiplexing) a plurality of pieces of encoding position information, a plurality of pieces of encoding attribute information, and additional information ( S4917). Further, the three-dimensional data encoding device sends out the generated encoded data.
- FIG. 32 is a flowchart of the point cloud data decoding process according to the present embodiment.
- the three-dimensional data decoding device analyzes the additional information (slice additional information, position tile additional information, and attribute tile additional information) related to the division method included in the encoded data (encoded stream), thereby performing the division method. Is determined (S4921).
- This division method includes whether to perform slice division and whether to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
- the three-dimensional data decoding device decodes a plurality of pieces of encoded position information and a plurality of pieces of encoded attribute information included in the encoded data using the dependency information included in the encoded data, thereby obtaining divided position information. Then, division attribute information is generated (S4922).
- the three-dimensional data decoding apparatus determines a plurality of division position information and a plurality of divisions based on the position tile additional information and the attribute tile additional information. By combining the attribute information with the respective methods, a plurality of slice position information and a plurality of slice attribute information are generated (S4924). Note that the three-dimensional data decoding device may combine a plurality of pieces of division position information and a plurality of pieces of division attribute information by the same method.
- the three-dimensional data decoding apparatus determines a plurality of pieces of slice position information and a plurality of pieces of slice attribute information (a plurality of pieces of division position) based on the slice additional information.
- the position information and the attribute information are generated by combining the information and a plurality of divided attribute information in the same manner (S4926). Note that the three-dimensional data decoding device may combine the plurality of slice position information and the plurality of slice attribute information by different methods.
- the three-dimensional data encoding device includes a plurality of divided data in which a target space including a plurality of three-dimensional points is included in a plurality of divided sub-spaces (for example, slices) and each includes one or more three-dimensional points. (For example, tiles).
- the divided data is one or more data aggregates included in the subspace and including one or more three-dimensional points.
- the divided data is also a space, and may include a space that does not include a three-dimensional point.
- a plurality of divided data may be included in one subspace, or one divided data may be included in one subspace. Note that a plurality of subspaces may be set in the target space, or one subspace may be set in the target space.
- the three-dimensional data encoding device encodes each of the plurality of divided data to generate a plurality of encoded data corresponding to each of the plurality of divided data (S4931).
- the three-dimensional data encoding device generates a bit stream including a plurality of encoded data and a plurality of control information (for example, a header illustrated in FIG. 30) for each of the plurality of encoded data (S4932).
- Each of the plurality of control information indicates a first identifier (for example, slice_idx) indicating a subspace corresponding to the encoded data corresponding to the control information, and a divided data corresponding to the encoded data corresponding to the control information.
- the second identifier (for example, tile_idx) is stored.
- the three-dimensional data decoding device that decodes the bit stream generated by the three-dimensional data encoding device combines the data of the plurality of divided data using the first identifier and the second identifier, and Can be easily restored. Therefore, the processing amount in the three-dimensional data decoding device can be reduced.
- the three-dimensional data encoding device encodes position information and attribute information of a three-dimensional point included in each of the plurality of divided data.
- Each of the plurality of encoded data includes encoded data of position information and encoded data of attribute information.
- Each of the plurality of pieces of control information includes control information of encoded data of position information and control information of encoded data of attribute information.
- the first identifier and the second identifier are stored in the control information of the encoded data of the position information.
- each of a plurality of pieces of control information is arranged before encoded data corresponding to the control information.
- the target space including the plurality of three-dimensional points is set in one or more subspaces, and the subspace includes one or more divided data including one or more three-dimensional points.
- Encoding each of the divided data to generate a plurality of encoded data corresponding to each of the plurality of divided data; and generating a plurality of encoded data and a plurality of encoded data for each of the plurality of encoded data.
- a bit stream that includes a first identifier indicating a subspace corresponding to encoded data corresponding to the control information, and a code corresponding to the control information. And a second identifier indicating the divided data corresponding to the encrypted data.
- the three-dimensional data encoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
- the three-dimensional data decoding apparatus performs the processing shown in FIG.
- the three-dimensional data decoding device includes a plurality of divided data (e.g., slices) in which a target space including a plurality of three-dimensional points is included in a plurality of divided sub-spaces (e.g., slices). For example, from a bit stream including a plurality of encoded data generated by encoding each of the tiles) and a plurality of control information (for example, a header illustrated in FIG.
- a first identifier for example, slice_idx
- a second identifier for example, tile_idx
- the three-dimensional data decoding device restores the plurality of divided data by decoding the plurality of encoded data (S4942).
- the three-dimensional data decoding apparatus restores the target space by combining the plurality of pieces of divided data using the first identifier and the second identifier (S4943).
- the three-dimensional data encoding device restores a plurality of subspaces by combining a plurality of pieces of divided data using a second identifier, and combines a plurality of subspaces using a first identifier to form a target space.
- the three-dimensional data decoding device obtains encoded data of a desired subspace or divided data from a bit stream using at least one of the first identifier and the second identifier, and selectively acquires the encoded data. Decoding or preferential decoding may be performed.
- the three-dimensional data decoding device can easily restore the target space by combining the data of the plurality of divided data using the first identifier and the second identifier. Therefore, the processing amount in the three-dimensional data decoding device can be reduced.
- each of the plurality of encoded data is generated by encoding the position information and the attribute information of the three-dimensional point included in the corresponding divided data, and the encoded data of the position information and the code of the attribute information are generated.
- Data Each of the plurality of pieces of control information includes control information of encoded data of position information and control information of encoded data of attribute information.
- the first identifier and the second identifier are stored in the control information of the encoded data of the position information.
- control information is placed before the corresponding encoded data.
- the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
- the three-dimensional data encoding device encodes point cloud data of continuous frames collectively by combining point cloud data of continuous frames. At this time, the three-dimensional data encoding device generates encoded data to which information for identifying a frame to which each of the leaf nodes included in the combined point cloud data belongs is added.
- FIG. 35 is a diagram showing an image of generating a tree structure and an occupancy code (Occupancy @ Code) from point cloud data of N PCC (Point @ Cloud @ Compression) frames.
- points in the arrows indicate points belonging to the respective PCC frames.
- a point belonging to each PCC frame is assigned a frame index for specifying the frame.
- the points belonging to the N frames are converted into a tree structure, and an occupancy code is generated. Specifically, it is determined for each point to which leaf node in the tree structure the point belongs.
- a tree structure (Tree @ Structure) indicates a set of nodes. It is determined from which node the point belongs to which node. The determination result for each node is encoded as an occupancy code. The occupancy code is common to N frames.
- a node may have different frame points with different frame indexes.
- points of the same frame to which the same frame index is assigned may be mixed.
- points belonging to a plurality of frames may be mixed (overlapping).
- the upper-level tree structure and the occupancy code may be common components in all frames, and the lower-level tree structure and the occupancy code may be individual components for each frame or common components. And individual components may be mixed.
- the lowest layer node such as a leaf node
- zero or more points having a frame index are generated, and information indicating the number of points and information of a frame index for each point are generated.
- Such information can be said to be individual information in the frame.
- FIG. 36 is a diagram showing an example of frame combination. As shown in FIG. 36A, by generating a tree structure by combining a plurality of frames, the density of points of the frames included in the same node increases. Further, by sharing the tree structure, the data amount of the occupancy code can be reduced. Thus, there is a possibility that the coding rate can be improved.
- the plurality of point cloud data to be combined is not limited to a plurality of frames, that is, point cloud data of the same object having different times. That is, the following method is also applicable to a combination of a plurality of point cloud data that differ spatially or spatiotemporally. The following method is also applicable to combining point cloud data or point cloud files having different contents.
- FIG. 37 is a diagram illustrating an example of combining a plurality of PCC frames that are temporally different.
- FIG. 37 shows an example in which a vehicle such as LiDAR acquires point cloud data while moving.
- the dotted line indicates the sensor acquisition range for each frame, that is, the area of the point cloud data.
- the sensor acquisition range is large, the range of the point cloud data is also large.
- the method of combining and encoding point cloud data is effective for the following point cloud data.
- the car is moving and the frame is identified by a 360 ° scan around the car. That is, the next frame, Frame 2, corresponds to another 360 ° scan after the vehicle has moved in the X direction.
- the same point group data may be included in frame 1 and frame 2 because of the presence of overlapping areas. Therefore, there is a possibility that the coding efficiency can be improved by combining and encoding the frame 1 and the frame 2. It is also conceivable to combine more frames. However, when the number of frames to be combined is increased, the number of bits required for encoding the frame index added to the leaf node increases.
- point cloud data may be acquired by sensors at different positions. Thereby, each point group data acquired from each position may be used as a frame. That is, the plurality of frames may be point cloud data obtained by a single sensor, or may be point cloud data obtained by a plurality of sensors. Further, some or all of the objects may be the same or different between a plurality of frames.
- FIG. 38 is a flowchart of the three-dimensional data encoding process.
- the three-dimensional data encoding device reads the point cloud data of all N frames based on the number N of combined frames, which is the number of frames to be combined.
- the three-dimensional data encoding device determines the number N of combined frames (S5401). For example, the number N of the combined frames is specified by the user.
- the three-dimensional data encoding device acquires point cloud data (S5402).
- the three-dimensional data encoding device records the frame index of the acquired point cloud data (S5403).
- the three-dimensional data encoding device specifies the next point cloud data (S5405), and performs the processing in step S5402 and subsequent steps for the specified point cloud data. Do.
- the three-dimensional data encoding device combines the N frames and encodes the combined frame (S5406).
- FIG. 39 is a flowchart of the encoding process (S5406).
- the three-dimensional data encoding device generates common information common to N frames (S5411).
- the common information includes an occupancy code and information indicating the number N of combined frames.
- the three-dimensional data encoding device generates individual information that is individual information for each frame (S5412).
- the individual information includes the number of points included in the leaf node and the frame index of the point included in the leaf node.
- the three-dimensional data encoding device combines the common information and the individual information, and encodes the combined information to generate encoded data (S5413).
- the three-dimensional data encoding device generates additional information (metadata) related to the frame combination, and encodes the generated additional information (S5414).
- FIG. 40 is a flowchart of the three-dimensional data decoding process.
- the three-dimensional data decoding device obtains the number N of combined frames from the bit stream (S5421).
- the three-dimensional data encoding device acquires encoded data from the bit stream (S5422).
- the three-dimensional data decoding device obtains point cloud data and a frame index by decoding the encoded data (S5423).
- the three-dimensional data decoding device divides the decoded point cloud data using the frame index (S5424).
- FIG. 41 is a flowchart of the decryption and division processing (S5423 and S5424).
- the three-dimensional data decoding device decodes (acquires) common information and individual information from encoded data (bit stream) (S5431).
- the three-dimensional data decoding device determines whether to decode a single frame or a plurality of frames (S5432). For example, whether to decode a single frame or a plurality of frames may be externally designated.
- the plurality of frames may be all the frames of the combined frame or a part of the frames.
- the three-dimensional data decoding device may determine to decode a specific frame required by an application and determine not to decode an unnecessary frame.
- the three-dimensional data decoding device may determine to decode a single frame among the plurality of combined frames.
- the three-dimensional data decoding device When decoding a single frame (Yes in S5432), the three-dimensional data decoding device extracts individual information corresponding to the specified single frame index from the decoded individual information, and decodes the extracted individual information. Thus, the point cloud data of the frame corresponding to the specified frame index is restored (S5433).
- the three-dimensional data decoding apparatus when decoding a plurality of frames (No in S5432), extracts individual information corresponding to the frame index of the specified plurality of frames (or all frames), and extracts the extracted individual information. By decoding, point cloud data of a plurality of designated frames is restored (S5434). Next, the three-dimensional data decoding device divides the decoded point group data (individual information) based on the frame index (S5435). That is, the three-dimensional data decoding device divides the decoded point cloud data into a plurality of frames.
- the three-dimensional data decoding device may decode the data of all the combined frames at a time and divide the decoded data into each frame, or an arbitrary part of all the combined frames. May be decoded at once, and the decoded data may be divided into frames. Further, the three-dimensional data decoding device may independently decode a predetermined unit frame including a plurality of frames.
- FIG. 42 is a block diagram showing a configuration of encoding section 5410 included in the three-dimensional data encoding device according to the present embodiment.
- the encoding unit 5410 generates encoded data (encoded stream) by encoding point cloud data (point cloud).
- the encoding unit 5410 includes a division unit 5411, a plurality of position information encoding units 5412, a plurality of attribute information encoding units 5413, an additional information encoding unit 5414, and a multiplexing unit 5415.
- the division unit 5411 generates a plurality of divided data of a plurality of frames by dividing the point cloud data of a plurality of frames. Specifically, the dividing unit 5411 generates a plurality of pieces of divided data by dividing the space of the point cloud data of each frame into a plurality of subspaces.
- the subspace is one of a tile and a slice, or a combination of a tile and a slice.
- the point cloud data includes position information, attribute information (such as color or reflectance), and additional information.
- a frame number is input to the division unit 5411.
- the division unit 5411 divides the position information of each frame into a plurality of division position information, and divides the attribute information of each frame into a plurality of division attribute information.
- the dividing unit 5411 generates additional information regarding division.
- the dividing unit 5411 first divides the point cloud into tiles. Next, the dividing unit 5411 further divides the obtained tile into slices.
- the plurality of position information encoding units 5412 generates a plurality of pieces of encoded position information by encoding a plurality of pieces of divided position information.
- the position information encoding unit 5412 encodes the divided position information using an N-ary tree structure such as an octant tree. Specifically, in the octree, the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not each node includes a point cloud is generated. .
- the node including the point group is further divided into eight nodes, and 8-bit information indicating whether or not each of the eight nodes includes the point group is generated. This process is repeated until the number of point groups included in the predetermined hierarchy or node becomes equal to or less than the threshold value.
- the plurality of position information encoding units 5412 parallelly process a plurality of division position information.
- the attribute information encoding unit 4632 performs encoding using the configuration information generated by the position information encoding unit 4631 to generate encoded attribute information that is encoded data. For example, the attribute information encoding unit 4632 determines a reference point (reference node) to be referred to in encoding the processing target point (target node) based on the octree structure generated by the position information encoding unit 4631. I 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 the neighboring nodes or adjacent nodes. The method for determining the reference relationship is not limited to this.
- the encoding process of the position information or the attribute information may include at least one of a quantization process, a prediction process, and an arithmetic encoding process.
- the reference refers to using the reference node for calculating the predicted value of the attribute information, or the state of the reference node for determining the encoding parameter (for example, occupancy indicating whether or not the reference node includes a point cloud). Information).
- the encoding parameter is a quantization parameter in a quantization process, a context in arithmetic encoding, or the like.
- the plurality of attribute information encoding units 5413 generates a plurality of pieces of encoded attribute information by encoding a plurality of pieces of divided attribute information. For example, the plurality of attribute information encoding units 5413 process a plurality of pieces of divided attribute information in parallel.
- the additional information encoding unit 5414 generates encoded additional information by encoding the additional information included in the point cloud data and the additional information regarding the data division generated by the division unit 5411 at the time of division.
- the multiplexing unit 5415 generates coded data (coded stream) by multiplexing a plurality of pieces of coding position information, a plurality of pieces of coding attribute information, and coded additional information of a plurality of frames, and generates the coded data. Send data.
- the encoded additional information is used at the time of decoding.
- FIG. 43 is a block diagram of the dividing unit 5411.
- the dividing unit 5411 includes a tile dividing unit 5421 and a slice dividing unit 5422.
- the tile dividing unit 5421 generates a plurality of pieces of tile position information by dividing each piece of position information (Position (Geometry)) of a plurality of frames into tiles. In addition, the tile division unit 5421 generates a plurality of pieces of tile attribute information by dividing each piece of attribute information (Attribute) of a plurality of frames into tiles. In addition, the tile division unit 5421 outputs information related to tile division and additional tile information (Tile @ MetaData) including information generated in the tile division.
- the slice division unit 5422 generates a plurality of pieces of division position information (a plurality of pieces of slice position information) by dividing a plurality of pieces of tile position information into slices.
- the slice division unit 5422 generates a plurality of pieces of division attribute information (a plurality of pieces of slice attribute information) by dividing a plurality of pieces of tile attribute information into slices.
- the slice division unit 5422 outputs slice related information (Slice @ MetaData) including information related to the slice division and information generated in the slice division.
- the division unit 5411 uses a frame number (frame index) to indicate origin coordinates, attribute information, and the like in the division processing.
- FIG. 44 is a block diagram of the position information encoding unit 5412.
- Position information encoding section 5412 includes a frame index generation section 5431 and an entropy encoding section 5432.
- the frame index generation unit 5431 determines the value of the frame index based on the frame number, and adds the determined frame index to the position information.
- the entropy encoding unit 5432 generates encoded position information by entropy-encoding the divided position information to which the frame index has been added.
- FIG. 45 is a block diagram of the attribute information encoding unit 5413.
- the attribute information encoding unit 5413 includes a frame index generation unit 5441 and an entropy encoding unit 5442.
- the frame index generation unit 5441 determines the value of the frame index based on the frame number, and adds the determined frame index to the attribute information.
- the entropy coding unit 5442 generates coding attribute information by performing entropy coding on the division attribute information to which the frame index has been added.
- FIG. 46 is a flowchart of the point cloud data encoding process according to the present embodiment.
- the three-dimensional data encoding device determines a division method to be used (S5441).
- This division method includes whether to perform slice division and whether to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
- the three-dimensional data encoding device If the tile division is performed (Yes in S5442), the three-dimensional data encoding device generates a plurality of pieces of tile position information and a plurality of pieces of tile attribute information by dividing the position information and the attribute information (S5443). Further, the three-dimensional data encoding device generates tile additional information relating to tile division.
- the three-dimensional data encoding device divides the plurality of tile position information and the plurality of tile attribute information (or the position information and the attribute information) to obtain a plurality of division position information and A plurality of pieces of division attribute information are generated (S5445). Further, the three-dimensional data encoding device generates slice additional information related to slice division.
- the three-dimensional data encoding device generates a plurality of pieces of encoding position information and a plurality of pieces of encoding attribute information by encoding each of the plurality of pieces of division position information and the plurality of pieces of division attribute information with a frame index. (S5446). Further, the three-dimensional data encoding device generates dependency information.
- the three-dimensional data encoding device generates encoded data (encoded stream) by NAL unitizing (multiplexing) a plurality of pieces of encoding position information, a plurality of pieces of encoding attribute information, and additional information ( S5447). Further, the three-dimensional data encoding device sends out the generated encoded data.
- FIG. 47 is a flowchart of the encoding process (S5446). First, the three-dimensional data encoding device encodes the division position information (S5451). Next, the three-dimensional data encoding device encodes a frame index for division position information (S5452).
- the three-dimensional data encoding device encodes the divided attribute information (S5454), and encodes a frame index for the divided attribute information (S5455).
- the three-dimensional data encoding device does not encode the division attribute information and encode the frame index for the division attribute information.
- the frame index may be stored in one or both of the division position information and the division attribute information.
- the three-dimensional data encoding device may encode the attribute information using the frame index, or may encode the attribute information without using the frame index.
- the three-dimensional data encoding device may identify a frame to which each point belongs using the frame index and encode the frame for each frame, or may identify points belonging to all frames without identifying the frame. It may be encoded.
- FIG. 48 is a block diagram illustrating the configuration of decoding section 5450.
- the decoding unit 5450 restores the point cloud data by decoding the encoded data (coded stream) generated by encoding the point cloud data.
- the decoding unit 5450 includes a demultiplexing unit 5451, a plurality of position information decoding units 5452, a plurality of attribute information decoding units 5453, an additional information decoding unit 5454, and a combining unit 5455.
- the demultiplexing unit 5451 generates a plurality of pieces of coding position information, a plurality of pieces of coding attribute information, and coding additional information by demultiplexing the coded data (coded stream).
- the plurality of position information decoding units 5452 generate a plurality of pieces of division position information by decoding a plurality of pieces of encoded position information. For example, the plurality of position information decoding units 5452 process a plurality of pieces of encoded position information in parallel.
- the plural attribute information decoding units 5453 generate plural pieces of divided attribute information by decoding plural pieces of encoded attribute information. For example, the plurality of attribute information decoding units 5453 process a plurality of pieces of encoded attribute information in parallel.
- the plurality of additional information decoding units 5454 generate additional information by decoding the encoded additional information.
- the combining unit 5455 generates position information by combining a plurality of pieces of divided position information using the additional information.
- the combining unit 5455 generates attribute information by combining a plurality of pieces of attribute information using the additional information.
- the combining unit 5455 divides the position information and the attribute information into the position information of the plurality of frames and the attribute information of the plurality of frames using the frame index.
- FIG. 49 is a block diagram of the position information decoding unit 5452.
- Position information decoding section 5452 includes entropy decoding section 5461 and frame index obtaining section 5462.
- the entropy decoding unit 5461 generates division position information by entropy decoding the encoded position information.
- the frame index obtaining unit 5462 obtains a frame index from the division position information.
- FIG. 50 is a block diagram of the attribute information decoding unit 5453.
- the attribute information decoding unit 5453 includes an entropy decoding unit 5471 and a frame index obtaining unit 5472.
- the entropy decoding unit 5471 generates division attribute information by entropy decoding the encoded attribute information.
- the frame index obtaining unit 5472 obtains a frame index from the division attribute information.
- FIG. 51 is a diagram showing a configuration of the coupling unit 5455.
- the combining unit 5455 generates position information by combining a plurality of pieces of division position information.
- the combining unit 5455 generates attribute information by combining a plurality of pieces of divided attribute information.
- the combining unit 5455 divides the position information and the attribute information into the position information of the plurality of frames and the attribute information of the plurality of frames using the frame index.
- FIG. 52 is a flowchart of point cloud data decoding processing according to the present embodiment.
- the three-dimensional data decoding apparatus determines a division method by analyzing additional information (slice additional information and tile additional information) related to the division method included in the encoded data (encoded stream) (S5461). ).
- This division method includes whether to perform slice division and whether to perform tile division. Further, the division method may include the number of divisions when performing slice division or tile division, the type of division, and the like.
- the three-dimensional data decoding device decodes a plurality of pieces of encoded position information and a plurality of pieces of encoded attribute information included in the encoded data using the dependency information included in the encoded data, thereby obtaining divided position information. Then, division attribute information is generated (S5462).
- the three-dimensional data decoding apparatus When the additional information indicates that slice division is being performed (Yes in S5463), the three-dimensional data decoding apparatus combines the plurality of division position information based on the slice additional information to obtain the plurality of tile position information. Then, a plurality of pieces of tile attribute information are generated by combining the plurality of pieces of divided attribute information (S5464).
- the plurality of division position information, the plurality of division attribute information, the plurality of tile position information, and the plurality of tile attribute information include a frame index.
- the three-dimensional data decoding apparatus When the additional information indicates that tile division is being performed (Yes in S5465), the three-dimensional data decoding apparatus combines a plurality of pieces of tile position information (a plurality of pieces of divided position information) based on the additional tile information. , Position information is generated, and attribute information is generated by combining a plurality of tile attribute information (a plurality of divided attribute information) (S5466).
- the plurality of tile position information, the plurality of tile attribute information, the position information, and the attribute information include a frame index.
- FIG. 53 is a flowchart of the decryption process (S5464 or S5466).
- the three-dimensional data decoding device decodes division position information (slice position information) (S5471).
- the three-dimensional data decoding device decodes the frame index for the division position information (S5472).
- the three-dimensional data decoding device decodes the divided attribute information (S5474), and decodes the frame index for the divided attribute information (S5475).
- the three-dimensional data decoding apparatus does not decode the division attribute information and the frame index for the division attribute information.
- the three-dimensional data decoding device may decode the attribute information using the frame index, or may decode the attribute information without using the frame index.
- FIG. 54 is a diagram illustrating an example of a frame combination pattern.
- the example shown in the figure is an example in which PCC frames are time-series and data generation and encoding are performed in real time.
- ((A) of FIG. 54 shows a case where four frames are fixedly connected.
- the three-dimensional data encoding device generates encoded data after waiting for generation of data for four frames.
- ((B) of FIG. 54 shows a case where the number of frames changes adaptively.
- the three-dimensional data encoding device changes the number of combined frames to adjust the amount of encoded data in rate control.
- the three-dimensional data encoding device does not have to combine frames when there is a possibility that there is no effect due to frame combination. Further, the three-dimensional data encoding device may switch between a case where frames are combined and a case where frames are not combined.
- (C) of FIG. 54 is an example in which a part of a plurality of frames to be combined overlaps a part of a plurality of frames to be combined next. This example is useful when a real-time property or a low delay is required, such as sequentially transmitting the encoded data.
- FIG. 55 is a diagram showing a configuration example of a PCC frame.
- the three-dimensional data encoding device may be configured so that the combined frame includes at least a data unit that can be decoded independently. For example, as shown in FIG. 55 (a), if all PCC frames are intra-coded and the PCC frame can be decoded independently, any of the above patterns can be applied.
- the three-dimensional data encoding apparatus Data may be combined using the GOF unit as the minimum unit.
- a random access unit such as GOF (Group of Frame)
- GOF Group of Frame
- the three-dimensional data encoding device may encode the common information and the individual information collectively, or may encode each of them separately. Further, the three-dimensional data encoding device may use a common data structure for the common information and the individual information, or may use another data structure.
- the three-dimensional data encoding device after generating an occupancy code for each frame, compares the occupancy codes of a plurality of frames, for example, to determine whether there are many common parts between the occupancy codes of a plurality of frames on a predetermined basis The determination may be made, and the common information may be generated when there are many common parts. Alternatively, the three-dimensional data encoding device may determine whether to combine frames, which frames to combine, or the number of combined frames based on whether or not there are many common parts.
- FIG. 56 is a diagram showing the configuration of the encoded position information.
- the encoding position information includes a header and a payload.
- FIG. 57 is a diagram illustrating a syntax example of a header (Geometry_header) of the encoded position information.
- the header of the encoding position information includes a GPS index (gps_idx), offset information (offset), other information (other_geometry_information), a frame combination flag (combine_frame_flag), a number of combined frames (number_of_combine_frame).
- the GPS index indicates an identifier (ID) of a parameter set (GPS) corresponding to the encoded position information.
- the GPS is a parameter set of coding position information of one frame or a plurality of frames. If a parameter set exists for each frame, identifiers of a plurality of parameter sets may be indicated in the header.
- Offset information indicates an offset position for acquiring combined data.
- the other information indicates other information related to the position information (for example, a difference value (QPdelta) of the quantization parameter).
- the frame combination flag is a flag indicating whether or not the encoded data is frame-combined.
- the number of combined frames indicates the number of frames combined.
- the SPS is a parameter set in units of a sequence (a plurality of frames), and is a parameter set commonly used for encoding position information and encoding attribute information.
- FIG. 58 is a diagram illustrating an example of the syntax of the payload (Geometry_data) of the encoded position information.
- the payload of the encoded position information includes common information and leaf node information.
- the common information is data obtained by combining one or more frames, and includes an occupancy code (occupancy_Code) and the like.
- @Leaf node information is information on each leaf node. As a loop of the number of frames, leaf node information may be indicated for each frame.
- FIG. 59 is a diagram illustrating an example of leaf node information in the case of the method 1.
- the leaf node information illustrated in FIG. 59 includes a three-dimensional point number (NumberOfPoints) indicating the number of points included in the node, and a frame index (FrameIndex) for each point.
- NumberOfPoints three-dimensional point number
- FrameIndex frame index
- FIG. 60 is a diagram showing an example of leaf node information in the case of Method 2.
- the leaf node information includes bitmap information (bitmapIsFramePointsFlag) indicating a frame index of a plurality of points by a bitmap.
- FIG. 61 is a diagram illustrating an example of bitmap information. In this example, the bitmap indicates that the leaf nodes include three-dimensional points with frame indices 1, 3 and 5.
- the number of three-dimensional points may be shared, and the number of three-dimensional points in each frame and the total number of three-dimensional points in a plurality of frames may be indicated.
- the three-dimensional data encoding device may delete duplicate points and reduce the amount of information.
- the three-dimensional data encoding device may delete duplicate points before combining frames, or may delete duplicate points after combining frames.
- FIG. 62 is a diagram illustrating the configuration of the encoding attribute information.
- the encoding attribute information includes a header and a payload.
- FIG. 63 is a diagram illustrating a syntax example of a header (Attribute_header) of the encoding attribute information.
- the header of the encoding attribute information includes an APS index (aps_idx), offset information (offset), other information (other_attribute_information), a frame combination flag (combine_frame_flag), and the number of combined frames (number_of_combine_frame).
- the $ APS index indicates an identifier (ID) of a parameter set (APS) corresponding to the encoding attribute information.
- the APS is a parameter set of encoding attribute information of one frame or a plurality of frames. If a parameter set exists for each frame, identifiers of a plurality of parameter sets may be indicated in the header.
- Offset information indicates an offset position for acquiring combined data.
- the other information indicates other information related to the attribute information (for example, a difference value (QPdelta) of the quantization parameter).
- the frame combination flag is a flag indicating whether or not the encoded data is frame-combined.
- the number of combined frames indicates the number of frames combined.
- FIG. 64 is a diagram illustrating an example of the syntax of the payload (Attribute_data) of the encoding attribute information.
- the payload of the encoding attribute information includes leaf node information (combine_information).
- leaf node information component_information
- the configuration of the leaf node information is the same as the leaf node information included in the payload of the encoded position information. That is, the leaf node information (frame index) may be included in the attribute information.
- leaf node information is stored in one of the encoding position information and the encoding attribute information, and need not be stored in the other.
- leaf node information (frame index) stored in one of the encoding position information and the encoding attribute information is referred to when decoding the other information.
- information indicating the reference destination may be included in the encoding position information or the encoding attribute information.
- FIG. 65 is a diagram illustrating a configuration of encoded data.
- the encoded data includes a header and a payload.
- FIGS. 66 to 68 are diagrams showing the data transmission order and the data reference relationship.
- G (1) and the like indicate coding position information
- GPS (1) and the like indicate a parameter set of coding position information
- SPS indicates a parameter set of a sequence (a plurality of frames).
- the number in parentheses indicates the value of the frame index.
- the three-dimensional data encoding device may transmit the data in decoding order.
- FIG. 66 is a diagram showing an example of the transmission order when frames are not combined.
- FIG. 67 is a diagram illustrating an example in which frames are combined and metadata (parameter set) is added to each PCC frame.
- FIG. 68 is a diagram illustrating an example in which frames are combined and metadata (parameter set) is added in units of combination.
- the header of the frame-combined data stores the identifier of the reference-destination metadata in order to obtain the metadata of the frame.
- metadata for each of a plurality of frames may be collected. Parameters common to a plurality of frames combined with each other may be combined into one. Parameters that are not common to frames indicate values for each frame.
- Information for each frame is, for example, a time stamp indicating generation time, encoding time, or decoding time of frame data. Further, the information for each frame may include information of the sensor that has acquired the frame data (speed, acceleration, position information, sensor direction, other sensor information, and the like of the sensor).
- FIG. 69 is a diagram showing an example in which some frames are decoded in the example shown in FIG. As shown in FIG. 69, if there is no dependency between frames in the frame combination data, the three-dimensional data decoding device can decode each data independently.
- the three-dimensional data encoding device may combine the attribute information with frames.
- the attribute information is encoded and decoded with reference to the position information.
- the position information referred to may be the position information before the frame combination or the position information after the frame combination.
- the number of combined frames of position information and the number of combined frames of attribute information may be common (same) or independent (different).
- FIGS. 70 to 73 are diagrams showing the data transmission order and the data reference relationship.
- 70 and 71 show an example in which both the position information and the attribute information are combined in four frames.
- metadata (parameter set) is added for each PCC frame.
- metadata (parameter set) is added in units to be combined.
- a (1) and the like indicate encoding attribute information
- APS (1) and the like indicate a parameter set of the encoding attribute information.
- the number in parentheses indicates the value of the frame index.
- FIG. 72 shows an example in which position information is combined in four frames and attribute information is not combined. As shown in FIG. 72, it is not necessary to combine the position information with the frame and the attribute information with the frame.
- FIG. 73 shows an example in which frame combination and tile division are combined.
- the header of each tile position information includes information such as a GPS index (gps_idx) and the number of combined frames (number_of_combine_frame). Also, the header of each tile position information includes a tile index (tile_idx) for identifying the tile.
- the three-dimensional data encoding device performs the processing shown in FIG. First, the three-dimensional data encoding device generates third point cloud data by combining the first point cloud data and the second point cloud data (S5481). Next, the three-dimensional data encoding device generates encoded data by encoding the third point cloud data (S5482).
- the encoded data includes identification information (for example, a frame index) indicating whether each of the plurality of three-dimensional points included in the third point cloud data belongs to the first point cloud data or the second point cloud data. Including.
- the three-dimensional data encoding device can improve encoding efficiency by encoding a plurality of point cloud data collectively.
- the first point cloud data and the second point cloud data are point cloud data (for example, PCC frames) at different times.
- the first point cloud data and the second point cloud data are point cloud data (for example, PCC frames) of the same object at different times.
- the encoded data includes position information and attribute information of each of the plurality of three-dimensional points included in the third point group data, and the identification information is included in the attribute information.
- the encoded data includes position information (for example, an occupancy code) representing the position of each of a plurality of three-dimensional points included in the third point group data using an N (N is an integer of 2 or more) binary tree.
- position information for example, an occupancy code
- the three-dimensional data encoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
- the three-dimensional data decoding device performs the processing shown in FIG. First, the three-dimensional data decoding device decodes the encoded data, and combines the first point cloud data and the second point cloud data to generate third point cloud data and third point cloud data. The identification information indicating whether each of the plurality of three-dimensional points included in the data belongs to the first point cloud data or the second point cloud data is acquired (S5491). Next, the three-dimensional data decoding apparatus separates the first point cloud data and the second point cloud data from the third point cloud data using the identification information (S5492).
- the three-dimensional data decoding device can decode coded data with improved coding efficiency by collectively coding a plurality of point cloud data.
- the first point cloud data and the second point cloud data are point cloud data (for example, PCC frames) at different times.
- the first point cloud data and the second point cloud data are point cloud data (for example, PCC frames) of the same object at different times.
- the encoded data includes position information and attribute information of each of the plurality of three-dimensional points included in the third point group data, and the identification information is included in the attribute information.
- the encoded data includes position information (for example, an occupancy code) representing the position of each of a plurality of three-dimensional points included in the third point group data using an N (N is an integer of 2 or more) binary tree.
- position information for example, an occupancy code
- the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
- FIG. 76 is a block diagram of an encoding unit according to the present embodiment. Specifically, FIG. 76 is a block diagram illustrating an encoding unit that encodes a value of a frame index (hereinafter, also simply referred to as a frame index).
- the encoding unit included in the three-dimensional data encoding device according to the present embodiment includes a position information encoding unit 5510 and an attribute information encoding unit 5520.
- the position information encoding unit 5510 includes a frame index generation unit 5511 and an entropy encoding unit 5512.
- the frame index generation unit 5511 determines and converts the frame index (identifier indicating a value to which of a plurality of frames (three-dimensional data) belongs) of the position information of the three-dimensional point.
- Entropy encoding section 5512 entropy-encodes the frame index converted by frame index generation section 5511. Entropy encoding section 5512 generates and outputs a bit stream including encoded data including the encoded frame index. More specifically, entropy encoding section 5512 outputs a position information bit stream including encoded data including an encoded frame index and encoded position information.
- the attribute information encoding unit 5520 includes a frame index generation unit 5521 and an entropy encoding unit 5522.
- the frame index generation unit 5521 determines and converts the frame index of the attribute information.
- the entropy encoding unit 5522 performs entropy encoding on the frame index converted by the frame index generation unit 5521. Entropy coding section 5522 outputs a bitstream including encoded data including the encoded frame index. More specifically, entropy encoding section 5522 outputs an attribute information bit stream including encoded data including an encoded frame index and encoded attribute information.
- FIG. 77 is a block diagram of a frame index generation unit 5511 according to Embodiment 6.
- the frame index generation unit 5511 includes a frame combination unit 5550, a frame index encoding unit 5560, and a combined data generation unit 5570.
- the frame combining unit 5550 acquires a plurality of frames and combines the acquired frames to generate combined three-dimensional data. Specifically, the frame combining unit 5550 generates frame data in which a frame index is linked to each of the plurality of frames, in other words, combined three-dimensional data including the frame index.
- the frame combining unit 5550 includes information indicating the number of combined frames (hereinafter, also referred to as a combined number), information indicating the number of overlapping points existing in a leaf node (hereinafter, also referred to as the number of overlapping points), and a value of a frame index. (Hereinafter, also referred to as combined three-dimensional data).
- the overlapping point existing in the leaf node indicates a three-dimensional point existing in the leaf node, and indicates a three-dimensional point included in the same unit space.
- the frame index encoding unit 5560 acquires the number of combinations, the number of overlapping points, and the frame data including the frame index output by the frame combining unit 5550.
- the frame index encoding unit 5560 converts the frame index into a rank (also referred to as a ranking or a conversion code) which is a numerical value represented by 0 or a positive integer using a predetermined method.
- the frame index encoding unit 5560 determines which of the plurality of three-dimensional data the three-dimensional point included in the leaf node (unit space) belongs to in the combined three-dimensional data in which the plurality of three-dimensional data is combined. Create a bitmap to show.
- the bitmap is digital data represented by 0 and 1.
- the frame index encoding unit 5560 converts the generated bitmap into a rank, for example, using a lookup table described later, in other words, generates a rank from the generated bitmap.
- Frame index encoding section 5560 outputs the number of rank bits (also referred to as rank bit) and the rank to combined data generation section 5570.
- the combined data generation unit 5570 generates combined data in which a rank having a size corresponding to the acquired bit number of the rank and the frame data are combined.
- the above-described processing related to the frame index may be executed by the position information encoding unit 5510, or may be executed by the attribute information encoding unit 5520, and either one may be executed. That is, the frame index generation unit 5521 may include the frame combination unit 5550, the frame index encoding unit 5560, and the combined data generation unit 5570.
- FIG. 78 is a block diagram of a decoding unit according to Embodiment 6. Specifically, FIG. 78 is a block diagram illustrating a decoding unit included in the three-dimensional data decoding device according to the present embodiment that decodes and obtains an encoded frame index.
- the decoding section includes a position information decoding section 5530 and an attribute information decoding section 5540.
- the position information decoding unit 5530 includes an entropy decoding unit 5531 and a frame index acquisition unit 5532.
- the entropy decoding unit 5531 includes a bit stream (encoded data including the number of joints, the number of overlapping points, and the combined data) encoded by the entropy encoding unit 5512 (more specifically, the position information Bit stream), and decodes the encoded data.
- the frame index acquisition unit 5532 acquires a frame index from the encoded data decoded by the entropy decoding unit 5531.
- the attribute information decoding unit 5540 includes an entropy decoding unit 5541 and a frame index acquisition unit 5542.
- the entropy decoding unit 5541 generates a bit stream (encoded data including the number of combinations, the number of overlapping points, and the combined data) encoded by the entropy encoding unit 5522 (more specifically, the attribute information Bit stream), and decodes the encoded data.
- the frame index acquisition unit 5542 acquires a frame index included in the encoded data decoded by the entropy decoding unit 5541.
- FIG. 79 is a block diagram of a frame index acquisition unit 5532 according to Embodiment 6.
- the frame index acquisition unit 5532 acquires the frame index by using a predetermined method. Specifically, the frame index obtaining unit 5532 uses a predetermined method from the number of connections, the number of overlapping points, and the connection data including the rank obtained from the frame combining unit 5550 and the frame index encoding unit 5560. To get the frame index. The frame index acquisition unit 5532 outputs frame data that is data including the value of the frame index.
- processing related to the frame index may be executed by the position information decoding unit 5530 or may be executed by the attribute information decoding unit 5540, and either one may be executed. That is, the processing executed by the frame index acquisition unit 5532 may be executed by the frame index acquisition unit 5542.
- FIG. 80 is a block diagram of frame index coding section 5560 according to Embodiment 6.
- the frame index encoding unit 5560 generates and encodes individual information (individual information of each frame).
- the frame index encoding unit 5560 includes a bitmap generation unit 5561, a lookup table reference unit 5562, and a bit number acquisition unit 5563.
- the bitmap generation unit 5561 generates a bitmap based on the number of connections, the number of overlapping points, and the frame index for each point (three-dimensional point). The number of combinations is determined, for example, using the method of the coding unit in the frame combination described above. In addition, in the division of the tree structure, the bitmap generation unit 5561 counts the number of overlapping points existing for each leaf node, and based on the frame index linked to the overlapping points, for example, by a method shown in FIG. Convert to
- FIG. 81 is a diagram illustrating an example of a leaf node and a bitmap according to the sixth embodiment.
- a bitmap indicates that the value of the frame index includes three-dimensional points of 1, 3, and 5.
- the bitmap generation unit 5561 acquires information indicating the leaf node illustrated in FIG. 81A (in other words, information indicating that the value of the frame index includes three-dimensional points of 1, 3, and 5). Suppose you did. In this case, the bitmap generator 5561 generates the bitmap shown in FIG.
- the lookup table reference unit 5562 converts the bitmap into a rank using a predetermined lookup table. In other words, the lookup table reference unit 5562 generates a rank from the bitmap using the lookup table.
- the look-up table is a table indicating a correspondence between a bitmap value and a rank.
- the lookup table reference unit 5562 has, for example, a memory that stores a lookup table.
- FIG. 82 is a diagram showing an example of a rank according to the sixth embodiment.
- the rank is a numerical value indicating the index or the order within the classified group by classifying the bit map every time indicated by N in the number of 1s included in the bit map shown in FIG.
- FIG. 83 is a diagram illustrating an example of a lookup table used by the lookup table reference unit 5562 according to the sixth embodiment. Specifically, FIG. 83 is a diagram illustrating a lookup table when converting a bitmap into a rank.
- FIG. 83 illustrates a look-up table in the case where the bit map is 8 bits, and is a table corresponding to a combination number of 8 or less.
- the look-up table may be expanded in a similar manner.
- the look-up table only needs to include information indicating the correspondence between the bitmap and the rank, and need not include the information indicating the correspondence between the bitmap and the number of overlapping points.
- the bit number acquiring unit 5563 acquires the bit number of the rank from the number of connections and the number of overlapping points.
- the required number of bits of the rank determined from the maximum number of ranks (the number of bits required to express the rank in binary) is a number uniquely determined from the number of connections and the number of overlapping points.
- information indicating the number of bits of the rank (rank information) is generated by the bit number acquiring unit 5563, and is calculated and encoded at a subsequent stage of the bit number acquiring unit 5563 (not shown).
- bit number acquiring unit 5563 may not send the rank information when the value of the rank is 0. If the rank is not 0, bit number acquiring section 5563 may encode the value of rank-1. Alternatively, when the rank is not 0, the bit number acquiring section 5563 may output the value of rank-1 as rank information.
- the lookup table may be held in the three-dimensional data encoding device in advance, or may be calculated each time by, for example, the lookup table reference unit 5562 using a predetermined calculation formula.
- the maximum number of connections is determined in advance, and a lookup table corresponding to the maximum number of connections is held in both the three-dimensional data encoding device and the three-dimensional data decoding device.
- a look-up table may be used.
- the three-dimensional data decoding device may previously hold a lookup table corresponding to the lookup table held by the three-dimensional data encoding device.
- the three-dimensional data decoding device may hold lookup tables in which the correspondence between the bitmap and the rank is different from each other.
- the three-dimensional data encoding device may transmit additional information (metadata) regarding the type of the lookup table.
- the three-dimensional data decoding device may determine the type of the lookup table used for decoding based on the additional information.
- FIG. 84 is a flowchart of an encoding process according to Embodiment 6.
- the three-dimensional data encoding device generates common information (frame common information) that is information common to a plurality of frames (S5501).
- the common information is information common to a plurality of frames, and is information including, for example, an occupancy code and the number of couplings.
- the three-dimensional data encoding device generates individual information (frame individual information) that is individual information for each of a plurality of frames (S5502).
- the individual information is information individually associated with each of a plurality of frames, and is information including, for example, the number of overlapping points, a frame index in a leaf node, and the like.
- the three-dimensional data encoding device combines the common information and the individual information to generate encoded data (S5503).
- the three-dimensional data encoding device generates and encodes additional information related to frame combination (S5504).
- FIG. 85 is a flowchart of a process of generating encoded data according to Embodiment 6. Specifically, FIG. 84 is a flowchart showing details of steps S5502 and S5503 shown in FIG.
- the three-dimensional data encoding device generates a bitmap indicating the number of overlapping points and the frame index (S5511).
- the three-dimensional data encoding device obtains a rank using a predetermined method (S5512).
- the three-dimensional data encoding device acquires the bitmap by converting the bitmap into a rank using a look-up table.
- the three-dimensional data encoding device acquires the number of bits of the rank that needs to be encoded (S5513).
- the three-dimensional data encoding device encodes the occupancy code, the number of connections, the number of overlapping points, and the rank (S5514). That is, the three-dimensional data encoding device generates encoded data including the encoded occupancy code, the number of connections, the number of overlapping points, and the rank.
- FIG. 86 is a diagram illustrating a syntax example of connection information (information indicating the number of connections) according to Embodiment 6.
- the number of bits in the rank is determined by the number of overlapping points and the number of connections. For example, when the number of connections is 8, that is, in the case of combined data (combined three-dimensional data) combining 8 frames, when the number of overlapping points is 7, the maximum value of the number of bits of the rank is 8.
- the three-dimensional data encoding device may describe the data in the order of the number of overlapping points and rank (including the data in the bit stream).
- FIG. 87 is a block diagram of a frame index acquisition unit 5532 according to Embodiment 6.
- the frame index acquisition unit 5532 decodes the individual information.
- the frame index acquisition unit 5532 includes a bit number acquisition unit 5581, a rank acquisition unit 5582, a look-up table reference unit 5583, and a frame division unit 5584.
- the bit number acquisition unit 5581 decodes the number of couplings from the encoded additional information included in the encoded data, and further extracts the number of overlapping points for each leaf node from the encoded data. Next, the bit number acquiring unit 5581 acquires the bit number of the rank from the number of connections and the number of overlapping points.
- the maximum number of ranks and the required number of bits of ranks are numbers uniquely determined from the number of connections and the number of overlapping points.
- the process of the bit number acquisition unit 5581 is the same as the process in encoding (more specifically, the process of the bit number acquisition unit 5563).
- the rank acquiring unit 5582 acquires ranks for the number of bits acquired above from the various data decoded by the bit number acquiring unit 5581.
- the lookup table reference unit 5585 obtains a bitmap from the number of overlapping points and the rank of the leaf node using a predetermined lookup table.
- FIG. 88 is a diagram showing an example of a look-up table used by a look-up table reference section 5585 according to Embodiment 6.
- the lookup table shown in FIG. 88 is, for example, a table corresponding to the lookup table used by the three-dimensional data encoding device. More specifically, the lookup table shown in FIG. 88 is the same lookup table as the lookup table used by lookup table reference section 5562.
- the lookup table reference unit 5585 obtains the frame index of the overlapping three-dimensional point in the combined three-dimensional data from the bitmap using, for example, the lookup table shown in FIG.
- the three-dimensional data decoding device reconstructs a plurality of three-dimensional data from the combined three-dimensional data using the data of the desired frame index obtained in this way.
- the number of indices in the lookup table may be different between the lookup table of the three-dimensional data encoding device and the lookup table of the three-dimensional data decoding device.
- the three-dimensional data encoding device may store eight different lookup tables so as to be able to handle from 1 bit to 8 bits.
- the three-dimensional data decoding device may store eight different look-up tables so as to correspond to one to four bits. This may reduce the number of lookup tables in the three-dimensional data decoding device.
- the frame division unit 5584 generates and outputs frame data obtained by dividing the combined data into a plurality of frame data based on the frame index.
- FIG. 89 is a flowchart of a frame index decoding process according to Embodiment 6.
- the three-dimensional data decoding device decodes and acquires the common information and the individual information (S5521).
- the three-dimensional data decoding device determines whether or not to decode a single frame (S5522). For example, the three-dimensional data decoding device determines whether to decode a single frame or to decode a plurality of arbitrary frames.
- the three-dimensional data decoding device When determining that a single frame is to be decoded (Yes in S5522), the three-dimensional data decoding device extracts the individual information associated with the designated frame index (that is, the single frame index), and decodes the information. (S5523).
- the three-dimensional data decoding apparatus determines not to decode a single frame, that is, to decode a plurality of frames (No in S5522), it extracts individual information corresponding to a plurality of frame indexes and decodes the information. (S5524).
- the three-dimensional data decoding device divides the data based on the frame index (S5525). That is, when decoding the combined three-dimensional data including the plurality of three-dimensional data (No in S5522), the three-dimensional data decoding device divides the combined three-dimensional data into a plurality of frames based on the frame index in step S5525. .
- FIG. 90 is a flowchart of a process of decoding common information and individual information according to Embodiment 6. Specifically, FIG. 90 is a flowchart showing details of step S5521 shown in FIG.
- the three-dimensional data decoding device decodes the encoded data to decode the acquired encoded combination number and the acquired encoded overlap point number (S5531).
- the three-dimensional data decoding device acquires the number of rank bits using a predetermined method (S5532).
- the three-dimensional data decoding device acquires the rank (S5533).
- the three-dimensional data decoding device obtains a bitmap by using a predetermined method (S5534).
- the three-dimensional data decoding device obtains a bitmap by converting a rank into a bitmap using a lookup table.
- the three-dimensional data decoding device obtains a frame index using the bitmap (S5535).
- three-dimensional points are overlapped when two or more three-dimensional points are originally present in a leaf node of one frame, and when two or more three-dimensional points are different in a leaf node of combined three-dimensional data combined by frame combination. There are cases where there are the above three-dimensional points.
- FIG. 91 is a diagram illustrating a first example of the syntax of a leaf node according to the sixth embodiment. Specifically, FIG. 91 is an example of syntax in a case where the number of overlapping points in one frame and the number of overlapping points of a plurality of frames due to frame combination are indicated using the same field.
- the three-dimensional data encoding apparatus sets the field indicating the number of overlapping points for each leaf node to, for example, 1 and “when there is no overlapping point in one frame” and “when two or more frames are combined” or “1”.
- the number of overlapping points may be calculated only when “there is an overlapping point in the frame” and “when the frame is not combined”. Further, for example, in the case where two or more frames are combined, the three-dimensional data encoding device may delete the overlapping points in one frame and make one when the overlapping points are present in one frame. Alternatively, for example, when there is an overlap point in one frame, the three-dimensional data encoding device does not have to perform frame combining using the one frame.
- FIG. 92 is a diagram illustrating a second example of the syntax of the leaf node according to the sixth embodiment. Specifically, FIG. 92 is an example of syntax in a case where the overlap points in one frame and the number of overlap points of a plurality of frames due to frame combination are indicated using different fields.
- the three-dimensional data encoding device indicates the overlap point in one frame and “combines frames”. In the case of "”, an overlap point due to frame combination is indicated, and in the case of "there is an overlap point in one frame", the number of overlap points for each frame may be indicated.
- FIG. 93 is a diagram showing a first example of the syntax of the position information according to Embodiment 6.
- the leaf node information may indicate the leaf node information for each frame as a loop of the number of frames.
- node information for example, there is information directly indicating the coordinates of each three-dimensional point belonging to the node, that is, the position of the voxel.
- the node information is controlled by directflag shown in FIG.
- FIG. 94 is a diagram illustrating a second example of the syntax of the position information according to Embodiment 6.
- the three-dimensional data encoding apparatus sets directflag to 0 when the number of frames combined is greater than 1, that is, when combining a plurality of frames, and does not apply the above method. Is also good.
- the three-dimensional data encoding device may set directflag to 1 when the number of frames to be combined is one.
- the three-dimensional data encoding apparatus uses a method using directflag by setting directflag to 0 when the number of combined frames is greater than 1 at the time of frame combination, that is, when combining a plurality of frames. By not using it, there is a possibility that the effect of frame combination can be further improved.
- the directflag and the number of bonds are stored in, for example, GPS (Geometry ⁇ Parameter ⁇ Set).
- the three-dimensional data encoding device performs the processing shown in FIG.
- FIG. 95 is a flowchart of the encoding process according to Embodiment 6.
- the three-dimensional data encoding apparatus sets a bit indicating to which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs in the combined three-dimensional data in which the plurality of three-dimensional data (frames) are combined.
- a map is generated (S5541).
- the three-dimensional data encoding device generates, for example, a bitmap indicating to which of a plurality of three-dimensional data a three-dimensional point included in a leaf node in the combined three-dimensional data belongs.
- the bitmap is, for example, the number of digits of the number of the combined three-dimensional data, and is information (map information) indicating a sequence represented by 0 or 1. For example, in the case of combined three-dimensional data in which eight three-dimensional data from the first three-dimensional data to the eighth three-dimensional data are combined, the bitmap has eight digits. Each digit of the bitmap is individually associated with any one of the first three-dimensional data to the eighth three-dimensional data.
- a three-dimensional point belonging to the first three-dimensional data and a three-dimensional point belonging to the second three-dimensional data are located in a predetermined unit space, and any of the three-dimensional data from the third three-dimensional data to the eighth three-dimensional data is located.
- the three-dimensional data encoding device When the three-dimensional point belonging to the original data is not included in the predetermined unit space, the three-dimensional data encoding device generates a bit map “00000011”.
- a three-dimensional point belonging to the first three-dimensional data, a three-dimensional point belonging to the fifth three-dimensional data, and a three-dimensional point belonging to the seventh three-dimensional data are located in a predetermined unit space, and
- the predetermined unit space includes a three-dimensional point belonging to any one of the data, the third three-dimensional data, the fourth three-dimensional data, the sixth three-dimensional data, and the eighth three-dimensional data. If not, the three-dimensional data encoding device generates a bitmap “01050001”.
- the three-dimensional data encoding device may generate combined three-dimensional data in which a plurality of three-dimensional data are combined before executing step S5551.
- the number of three-dimensional data to be combined by the three-dimensional data encoding device is not particularly limited.
- the three-dimensional data encoding device generates a transform code using the bitmap (S5542).
- the conversion code is a value indicating the rank described above.
- the three-dimensional data encoding device generates a rank from a bitmap using, for example, a look-up table.
- the look-up table is a table showing the correspondence between the value of the bitmap and the conversion code.
- Each of the values of the bitmap corresponds to each of the combinations of the transform code and the number of three-dimensional points included in the unit space. For example, as shown in FIG. 83, when the bitmap is “00000001”, the three-dimensional data encoding device generates a rank (that is, a transform code) as 0.
- the bitmap corresponding to the combination having the rank of 0 and the number of three-dimensional points (the number of overlapping points shown in FIG. 83) included in the unit space is 1 is “00000001”.
- each of the values of the bitmap and each of the combinations of the conversion code and the number of the three-dimensional points included in the unit space correspond one by one.
- the three-dimensional data encoding device generates encoded data including overlap point information indicating the number of three-dimensional points included in the unit space and conversion code information indicating a conversion code (S5543).
- generation of a bitmap and generation of a conversion code are also referred to as encoding.
- each of the values of the bitmap corresponds to each of the combinations of the conversion code and the number of three-dimensional points included in the unit space.
- the data amount of the encoded data is reduced as compared with a case where the bitmap value is directly included in the encoded data. it can.
- the encoded data includes three-dimensional point position information and attribute information, and the conversion code information and the overlapping point information are included in the position information.
- the three-dimensional data encoding device generates a position information bitstream including position information and an attribute information bitstream including attribute information as a bitstream.
- the conversion code information and the overlapping point information are included in the position information bit stream.
- the encoded data further includes data number information indicating the number of the plurality of three-dimensional data combined in the combined three-dimensional data.
- the conversion code is 0 or a positive integer.
- the three-dimensional data encoding device when the conversion code is not 0, the three-dimensional data encoding device generates encoded data including conversion code information that is a number obtained by subtracting 1 from the conversion code.
- the conversion code when the conversion code is 0, the three-dimensional data encoding device generates encoded data that does not include the conversion code information.
- the conversion code when the conversion code is 0, since the conversion code is not included in the encoded data, the data amount of the encoded data can be further reduced.
- the three-dimensional data encoding device includes a processor and a memory, and the processor performs the above processing using the memory.
- the three-dimensional data decoding apparatus performs the processing shown in FIG.
- FIG. 96 is a flowchart of a decoding process according to Embodiment 6.
- the three-dimensional data decoding device indicates the number of three-dimensional points included in the unit space in combined three-dimensional data generated by combining a plurality of three-dimensional data by decoding encoded data.
- the overlapping point information and the conversion code information indicating the conversion code are obtained (S5551).
- the three-dimensional data decoding device acquires a bit stream including encoded data, and decodes the encoded data included in the acquired bit stream.
- the three-dimensional data decoding device generates a bitmap indicating to which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs using the overlapping point information and the transform code information ( S5552).
- the three-dimensional data decoding device determines, using the bitmap, to which of the plurality of three-dimensional data the three-dimensional point included in the unit space belongs (S5553). That is, the three-dimensional data decoding device acquires the above-described frame index from the bitmap.
- the three-dimensional data decoding device divides the combined three-dimensional data into a plurality of three-dimensional data using the obtained frame index.
- each of the values of the bitmap corresponds to each of the combinations of the conversion code and the number of three-dimensional points included in the unit space.
- a bitmap can be generated from a rank using a look-up table or the like, and a frame index can be obtained from the generated bitmap. That is, a bitmap indicating the correspondence between the plurality of three-dimensional data and the three-dimensional point in the combined three-dimensional data can be appropriately acquired from the number of three-dimensional points included in the unit space and the conversion code. Also, a plurality of three-dimensional data included in the combined three-dimensional data can be divided using a rank having a smaller data amount than the bitmap. As a result, the combined three-dimensional data can be appropriately divided into a plurality of three-dimensional data before combining while reducing the data amount of the encoded data.
- the encoded data includes three-dimensional point position information and attribute information, and the conversion code information and the overlapping point information are included in the position information.
- the encoded data further includes data number information indicating the number of the plurality of three-dimensional data combined in the combined three-dimensional data.
- the conversion code is 0 or a positive integer.
- the three-dimensional data decoding device obtains a number obtained by adding 1 to the conversion code information as the conversion code.
- the three-dimensional data decoding device acquires 0 as the conversion code.
- the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above processing using the memory.
- the present disclosure is not limited to this embodiment.
- Each processing unit included in the three-dimensional data encoding device, the three-dimensional data decoding device, and the like according to the above embodiment is typically realized as an LSI that is an integrated circuit. These may be individually integrated into one chip, or may be integrated into one chip so as to include some or all of them.
- the integration into a circuit is not limited to an LSI, but may be realized by a dedicated circuit or a general-purpose processor.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- each component may be configured by dedicated hardware, or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
- the present disclosure may be realized as a three-dimensional data encoding method, a three-dimensional data decoding method, or the like executed by the three-dimensional data encoding device, the three-dimensional data decoding device, or the like.
- the division of functional blocks in the block diagram is merely an example, and a plurality of functional blocks can be implemented as one functional block, one functional block can be divided into a plurality of functional blocks, and some functions can be transferred to other functional blocks. You may. Also, the functions of a plurality of functional blocks having similar functions may be processed by a single piece of hardware or software in parallel or time division.
- the three-dimensional data encoding device, the three-dimensional data decoding device, and the like have been described based on the embodiments.
- the present disclosure is not limited to the embodiments. .
- various modifications conceivable by those skilled in the art may be applied to the present embodiment, and a form constructed by combining components in different embodiments may be in the range of one or more aspects. May be included within.
- the present disclosure is applicable to a three-dimensional data encoding device and a three-dimensional data decoding device.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
三次元データ符号化方法は、複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が複数の三次元データのいずれに属するかを示すビットマップを生成(S5541)し、ビットマップを用いて変換符号を生成(S5542)し、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを含む符号化データを生成(S5543)し、ビットマップの値の各々と、変換符号及び単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
Description
本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
三次元データの符号化処理及び復号処理では、三次元データを符号化した符号化データのデータ量を低減することが望まれている。
本開示は、符号化データのデータ量を低減できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供することを目的とする。
本開示の一態様に係る三次元データ符号化方法は、複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて変換符号を生成し、前記単位空間に含まれる三次元点の数を示す重複点情報と、前記変換符号を示す変換符号情報とを含む符号化データを生成し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
本開示の一態様に係る三次元データ復号方法は、符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得し、前記重複点情報と、前記変換符号情報とを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを判定し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
本開示は、符号化データのデータ量を低減できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。
本開示の一態様に係る三次元データ符号化方法は、複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて変換符号を生成し、前記単位空間に含まれる三次元点の数を示す重複点情報と、前記変換符号を示す変換符号情報とを含む符号化データを生成し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、複数の三次元データと結合三次元データにおける三次元点との対応関係を示すビットマップを符号化することでデータ量を削減できる。そのため、三次元データ符号化方法によれば、符号化データのデータ量を低減できる。
例えば、前記符号化データは、前記三次元点の位置情報と属性情報とを含み、前記変換符号情報と前記重複点情報とは、前記位置情報に含まれる。
例えば、前記符号化データは、さらに、前記結合三次元データにおいて結合されている前記複数の三次元データの数を示すデータ数情報を含む。
例えば、前記変換符号は、0又は正の整数であり、前記変換符号が0でない場合には、前記変換符号から1を引いた数である前記変換符号情報を含む前記符号化データを生成し、前記変換符号が0の場合には、前記変換符号情報を含まない前記符号化データを生成する。
これによれば、変換符号が0の場合には、符号化データに変換符号を含めないため、符号化データのデータ量をさらに削減できる。
また、本開示の一態様に係る三次元データ復号方法は、符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得し、前記重複点情報と、前記変換符号情報とを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを判定し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、単位空間に含まれる三次元点の数と変換符号とから、複数の三次元データと結合三次元データにおける三次元点との対応関係を示すビットマップを適切に取得できる。
例えば、前記符号化データは、前記三次元点の位置情報と属性情報とを含み、前記変換符号情報と前記重複点情報とは、前記位置情報に含まれる。
例えば、前記符号化データは、さらに、前記結合三次元データにおいて結合されている前記複数の三次元データの数を示すデータ数情報を含む。
例えば、前記変換符号は、0又は正の整数であり、前記符号化データに前記変換符号情報が含まれている場合には、前記変換符号情報に1を足した数を前記変換符号として取得し、前記符号化データに前記変換符号情報が含まれていない場合には、0を前記変換符号として取得する。
また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて変換符号を生成し、前記単位空間に含まれる三次元点の数を示す重複点情報と、前記変換符号を示す変換符号情報とを含む符号化データを生成し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、三次元データ符号化装置は、複数の三次元データと結合三次元データにおける三次元点との対応関係を示すビットマップを符号化することでデータ量を削減できる。そのため、三次元データ符号化装置によれば、符号化データのデータ量を低減できる。
また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得し、前記重複点情報と、前記変換符号情報とを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、前記ビットマップを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを判定し、前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、三次元データ復号装置は、単位空間含まれる三次元点の数と変換符号とから、複数の三次元データと結合三次元データにおける三次元点との対応関係を示すビットマップを適切に取得できる。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報を送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置、並びに、当該符号化データを多重化する三次元データ多重化方法、並びに、当該符号化データを伝送する三次元データ伝送方法について説明する。
特に、現在、点群データの符号化方法(符号化方式)として第1の符号化方法、及び第2の符号化方法が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、又は、伝送或いは蓄積ができないという課題がある。
また、PCC(Point Cloud Compression)のように、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するフォーマットをサポートする方法はこれまで存在しない。
本実施の形態では、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するPCC符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法について説明する。
まず、本実施の形態に係る三次元データ(点群データ)符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム4601と、三次元データ復号システム4602と、センサ端末4603と、外部接続部4604とを含む。
三次元データ符号化システム4601は、三次元データである点群データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム4601は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム4601に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ符号化システム4601は、点群データ生成システム4611と、提示部4612と、符号化部4613と、多重化部4614と、入出力部4615と、制御部4616とを含む。点群データ生成システム4611は、センサ情報取得部4617と、点群データ生成部4618とを含む。
センサ情報取得部4617は、センサ端末4603からセンサ情報を取得し、センサ情報を点群データ生成部4618に出力する。点群データ生成部4618は、センサ情報から点群データを生成し、点群データを符号化部4613へ出力する。
提示部4612は、センサ情報又は点群データをユーザに提示する。例えば、提示部4612は、センサ情報又は点群データに基づく情報又は画像を表示する。
符号化部4613は、点群データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部4614へ出力する。付加情報は、例えば、センサ情報を含む。
多重化部4614は、符号化部4613から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
入出力部4615(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部4616(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4616は、符号化及び多重化等の制御を行う。
なお、センサ情報が符号化部4613又は多重化部4614へ入力されてもよい。また、入出力部4615は、点群データ又は符号化データをそのまま外部へ出力してもよい。
三次元データ符号化システム4601から出力された伝送信号(多重化データ)は、外部接続部4604を介して、三次元データ復号システム4602に入力される。
三次元データ復号システム4602は、符号化データ又は多重化データを復号することで三次元データである点群データを生成する。なお、三次元データ復号システム4602は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム4602に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ復号システム4602は、センサ情報取得部4621と、入出力部4622と、逆多重化部4623と、復号部4624と、提示部4625と、ユーザインタフェース4626と、制御部4627とを含む。
センサ情報取得部4621は、センサ端末4603からセンサ情報を取得する。
入出力部4622は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部4623へ出力する。
逆多重化部4623は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部4624へ出力する。
復号部4624は、符号化データを復号することで点群データを再構成する。
提示部4625は、点群データをユーザに提示する。例えば、提示部4625は、点群データに基づく情報又は画像を表示する。ユーザインタフェース4626は、ユーザの操作に基づく指示を取得する。制御部4627(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4627は、逆多重化、復号及び提示等の制御を行う。
なお、入出力部4622は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部4625は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部4625は、ユーザインタフェース4626で取得されたユーザの指示に基づき、提示を行ってもよい。
センサ端末4603は、センサで得られた情報であるセンサ情報を生成する。センサ端末4603は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
センサ端末4603で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末4603と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
外部接続部4604は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報を含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
次に、点群データの種類について説明する。図4は、点群データの種類を示す図である。図4に示すように、点群データには、静的オブジェクトと、動的オブジェクトとがある。
静的オブジェクトは、任意の時間(ある時刻)の三次元点群データである。動的オブジェクトは、時間的に変化する三次元点群データである。以降、ある時刻の三次元点群データをPCCフレーム、又はフレームと呼ぶ。
オブジェクトは、通常の映像データのように、ある程度領域が制限されている点群であってもよいし、地図情報のように領域が制限されていない大規模点群であってもよい。
また、様々な密度の点群データがあり、疎な点群データと、密な点群データとが存在してもよい。
以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。点群データ生成部4618は、センサ情報取得部4617で得られたセンサ情報に基づき点群データを生成する。点群データ生成部4618は、点群データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
点群データ生成部4618は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、点群データ生成部4618は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、点群データ生成部4618は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、属性情報をレンダリングしてもよい。
なお、図1では、点群データ生成システム4611は、三次元データ符号化システム4601に含まれるが、三次元データ符号化システム4601の外部に独立して設けられてもよい。
符号化部4613は、点群データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には大きく以下の2種類がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
復号部4624は、符号化データを予め規定された符号化方法に基づき復号することで点群データを復号する。
多重化部4614は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部4614は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部4614は、さらに、センサ情報又は点群データに関連する属性情報を多重してもよい。
多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RMPなどがある。
逆多重化部4623は、多重化データからPCC符号化データ、その他のメディア、及び時刻情報などを抽出する。
入出力部4615は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部4615は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
図5は、第1の符号化方法の符号化を行う符号化部4613の例である第1の符号化部4630の構成を示す図である。図6は、第1の符号化部4630のブロック図である。第1の符号化部4630は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4630は、位置情報符号化部4631と、属性情報符号化部4632と、付加情報符号化部4633と、多重化部4634とを含む。
第1の符号化部4630は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部4630は、属性情報符号化部4632が、位置情報符号化部4631から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、GPCC(Geometry based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部4631に入力され、属性情報は属性情報符号化部4632に入力され、付加情報は付加情報符号化部4633に入力される。
位置情報符号化部4631は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部4631は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
付加情報符号化部4633は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
多重化部4634は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第1の符号化方法の復号を行う復号部4624の例である第1の復号部4640について説明する。図7は、第1の復号部4640の構成を示す図である。図8は、第1の復号部4640のブロック図である。第1の復号部4640は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部4640は、逆多重化部4641と、位置情報復号部4642と、属性情報復号部4643と、付加情報復号部4644とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部4640に入力される。
逆多重化部4641は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
位置情報復号部4642は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部4642は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
属性情報復号部4643は、位置情報復号部4642で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部4643は、位置情報復号部4642で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部4643は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
付加情報復号部4644は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部4640は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
次に、第2の符号化方法の符号化を行う符号化部4613の例である第2の符号化部4650について説明する。図9は、第2の符号化部4650の構成を示す図である。図10は、第2の符号化部4650のブロック図である。
第2の符号化部4650は、点群データを第2の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第2の符号化部4650は、付加情報生成部4651と、位置画像生成部4652と、属性画像生成部4653と、映像符号化部4654と、付加情報符号化部4655と、多重化部4656とを含む。
第2の符号化部4650は、三次元構造を二次元画像に投影することで位置画像及び属性画像を生成し、生成した位置画像及び属性画像を既存の映像符号化方式を用いて符号化するという特徴を有する。第2の符号化方法は、VPCC(Video based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報MetaData)を含む。
付加情報生成部4651は、三次元構造を二次元画像に投影することで、複数の二次元画像のマップ情報を生成する。
位置画像生成部4652は、位置情報と、付加情報生成部4651で生成されたマップ情報とに基づき、位置画像(Geometry Image)を生成する。この位置画像は、例えば、画素値として距離(Depth)が示される距離画像である。なお、この距離画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
属性画像生成部4653は、属性情報と、付加情報生成部4651で生成されたマップ情報とに基づき、属性画像を生成する。この属性画像は、例えば、画素値として属性情報(例えば色(RGB))が示される画像である。なお、この画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
映像符号化部4654は、位置画像及び属性画像を、映像符号化方式を用いて符号化することで、符号化データである符号化位置画像(Compressed Geometry Image)及び符号化属性画像(Compressed Attribute Image)を生成する。なお、映像符号化方式として、公知の任意の符号化方法が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報符号化部4655は、点群データに含まれる付加情報、及びマップ情報等を符号化することで符号化付加情報(Compressed MetaData)を生成する。
多重化部4656は、符号化位置画像、符号化属性画像、符号化付加情報、及び、その他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第2の符号化方法の復号を行う復号部4624の例である第2の復号部4660について説明する。図11は、第2の復号部4660の構成を示す図である。図12は、第2の復号部4660のブロック図である。第2の復号部4660は、第2の符号化方法で符号化された符号化データ(符号化ストリーム)を、第2の符号化方法で復号することで点群データを生成する。この第2の復号部4660は、逆多重化部4661と、映像復号部4662と、付加情報復号部4663と、位置情報生成部4664と、属性情報生成部4665とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第2の復号部4660に入力される。
逆多重化部4661は、符号化データから、符号化位置画像(Compressed Geometry Image)、符号化属性画像(Compressed Attribute Image)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
映像復号部4662は、符号化位置画像及び符号化属性画像を、映像符号化方式を用いて復号することで、位置画像及び属性画像を生成する。なお、映像符号化方式として、公知の任意の符号化方式が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報復号部4663は、符号化付加情報を復号することで、マップ情報等を含む付加情報を生成する。
位置情報生成部4664は、位置画像とマップ情報とを用いて位置情報を生成する。属性情報生成部4665は、属性画像とマップ情報とを用いて属性情報を生成する。
第2の復号部4660は、復号に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
以下、PCC符号化方式における課題を説明する。図13は、PCC符号化データに関わるプロトコルスタックを示す図である。図13には、PCC符号化データに、映像(例えばHEVC)又は音声などの他のメディアのデータを多重し、伝送又は蓄積する例を示す。
多重化方式及びファイルフォーマットは、様々な符号化データを多重し、伝送又は蓄積するための機能を有している。符号化データを伝送又は蓄積するためには、符号化データを多重化方式のフォーマットに変換しなければならない。例えば、HEVCでは、NALユニットと呼ばれるデータ構造に符号化データを格納し、NALユニットをISOBMFFに格納する技術が規定されている。
一方、現在、点群データの符号化方法として第1の符号化方法(Codec1)、及び第2の符号化方法(Codec2)が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、伝送及び蓄積ができないという課題がある。
なお、以降において、特定の符号化方法の記載がなければ、第1の符号化方法、及び第2の符号化方法のいずれかを示すものとする。
(実施の形態2)
本実施の形態では、NALユニットをISOBMFFのファイルに格納する方法について説明する。
本実施の形態では、NALユニットをISOBMFFのファイルに格納する方法について説明する。
ISOBMFF(ISO based media file format)は、ISO/IEC14496-12に規定されるファイルフォーマット規格である。ISOBMFFは、ビデオ、オーディオ、及びテキストなど様々なメディアを多重して格納できるフォーマットを規定しており、メディアに依存しない規格である。
ISOBMFFの基本構造(ファイル)について説明する。ISOBMFFにおける基本単位はボックスである。ボックスはtype、length、dataで構成され、様々なtypeのボックスを組み合わせた集合がファイルである。
図14は、ISOBMFFの基本構造(ファイル)を示す図である。ISOBMFFのファイルは、主に、ファイルのブランドを4CC(4文字コード)で示すftyp、制御情報などのメタデータを格納するmoov、及び、データを格納するmdatなどのボックスを含む。
ISOBMFFのファイルへのメディア毎の格納方法は別途規定されており、例えば、AVCビデオ及びHEVCビデオの格納方法は、ISO/IEC14496-15に規定される。ここで、PCC符号化データを蓄積又は伝送するために、ISOBMFFの機能を拡張して使用することが考えられるが、PCC符号化データをISOBMFFのファイルに格納する規定はまだない。そこで、本実施の形態では、PCC符号化データをISOBMFFのファイルに格納する方法について説明する。
図15は、PCCコーデック共通のNALユニットをISOBMFFのファイルに格納する場合のプロトコルスタックを示す図である。ここでは、PCCコーデック共通のNALユニットがISOBMFFのファイルに格納される。NALユニットはPCCコーデック共通であるが、NALユニットには複数のPCCコーデックが格納されるため、それぞれのコーデックに応じた格納方法(Carriage of Codec1、Carriage of Codec2)を規定することが望ましい。
(実施の形態3)
本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
図16は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は46456に対応する。
符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
図17は、符号化部4801で生成される符号化データの構成例を示す図である。図中の矢印は符号化データの復号に係る依存関係を示しており、矢印の元は矢印の先のデータに依存している。つまり、復号装置は、矢印の先のデータを復号し、その復号したデータを用いて矢印の元のデータを復号する。言い換えると、依存するとは、依存元のデータの処理(符号化又は復号等)において依存先のデータが参照(使用)されることを意味する。
まず、位置情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの位置情報を符号化することで、フレーム毎の符号化位置データ(Compressed Geometry Data)を生成する。また、符号化位置データをG(i)で表す。iはフレーム番号、又はフレームの時刻等を示す。
また、符号化部4801は、各フレームに対応する位置パラメータセット(GPS(i))を生成する。位置パラメータセットは、符号化位置データの復号に使用することが可能なパラメータを含む。また、フレーム毎の符号化位置データは、対応する位置パラメータセットに依存する。
また、複数フレームから成る符号化位置データを位置シーケンス(Geometry Sequence)と定義する。符号化部4801は、位置シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する位置シーケンスパラメータセット(Geometry Sequence PS:位置SPSとも記す)を生成する。位置シーケンスは、位置SPSに依存する。
次に、属性情報の符号化データの生成処理について説明する。符号化部4801は、各フレームの属性情報を符号化することで、フレーム毎の符号化属性データ(Compressed Attribute Data)を生成する。また、符号化属性データをA(i)で表す。また、図17では、属性Xと属性Yとが存在する例を示しており、属性Xの符号化属性データをAX(i)で表し、属性Yの符号化属性データをAY(i)で表す。
また、符号化部4801は、各フレームに対応する属性パラメータセット(APS(i))を生成する。また、属性Xの属性パラメータセットをAXPS(i)で表し、属性Yの属性パラメータセットをAYPS(i)で表す。属性パラメータセットは、符号化属性情報の復号に使用することが可能なパラメータを含む。符号化属性データは、対応する属性パラメータセットに依存する。
また、複数フレームから成る符号化属性データを属性シーケンス(Attribute Sequence)と定義する。符号化部4801は、属性シーケンス内の複数のフレームに対する復号処理に共通に使用するパラメータを格納する属性シーケンスパラメータセット(Attribute Sequence PS:属性SPSとも記す)を生成する。属性シーケンスは、属性SPSに依存する。
また、第1の符号化方法では、符号化属性データは符号化位置データに依存する。
また、図17では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
なお、図17では、位置情報が1種類、属性情報が2種類である例を示しているが、これに限らず、属性情報は1種類であってもよいし、3種類以上であってもよい。この場合も、同様の方法で符号化データを生成できる。また、属性情報を持たない点群データの場合は、属性情報はなくてもよい。その場合は、符号化部4801は、属性情報に関連するパラメータセットを生成しなくてもよい。
次に、付加情報(メタデータ)の生成処理について説明する。符号化部4801は、PCCストリーム全体のパラメータセットであるPCCストリームPS(PCC Stream PS:ストリームPSとも記す)を生成する。符号化部4801は、ストリームPSに、1又は複数の位置シーケンス及び1又は複数の属性シーケンスに対する復号処理に共通に使用することができるパラメータを格納する。例えば、ストリームPSには、点群データのコーデックを示す識別情報、及び符号化に使用されたアルゴリズムを示す情報等が含まれる。位置シーケンス及び属性シーケンスはストリームPSに依存する。
次に、アクセスユニット及びGOFについて説明する。本実施の形態では、新たにアクセスユニット(Access Unit:AU)、及びGOF(Group of Frame)の考え方を導入する。
アクセスユニットは、復号時にデータにアクセスするため基本単位であり、1つ以上のデータ及び1つ以上のメタデータで構成される。例えば、アクセスユニットは、同一時刻の位置情報と1又は複数の属性情報とで構成される。GOFは、ランダムアクセス単位であり、1つ以上のアクセスユニットで構成される。
符号化部4801は、アクセスユニットの先頭を示す識別情報として、アクセスユニットヘッダ(AU Header)を生成する。符号化部4801は、アクセスユニットヘッダに、アクセスユニットに係るパラメータを格納する。例えば、アクセスユニットヘッダは、アクセスユニットに含まれる符号化データの構成又は情報を含む。また、アクセスユニットヘッダは、アクセスユニットに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
なお、符号化部4801は、アクセスユニットヘッダの代わりに、アクセスユニットに係るパラメータを含まないアクセスユニットデリミタを生成してもよい。このアクセスユニットデリミタは、アクセスユニットの先頭を示す識別情報として用いられる。復号装置は、アクセスユニットヘッダ又はアクセスユニットデリミタを検出することにより、アクセスユニットの先頭を識別する。
次に、GOF先頭の識別情報の生成について説明する。符号化部4801は、GOFの先頭を示す識別情報として、GOFヘッダ(GOF Header)を生成する。符号化部4801は、GOFヘッダに、GOFに係るパラメータを格納する。例えば、GOFヘッダは、GOFに含まれる符号化データの構成又は情報を含む。また、GOFヘッダは、GOFに含まれるデータに共通に用いられるパラメータ、例えば、符号化データの復号に係るパラメータなどを含む。
なお、符号化部4801は、GOFヘッダの代わりに、GOFに係るパラメータを含まないGOFデリミタを生成してもよい。このGOFデリミタは、GOFの先頭を示す識別情報として用いられる。復号装置は、GOFヘッダ又はGOFデリミタを検出することにより、GOFの先頭を識別する。
PCC符号化データにおいて、例えば、アクセスユニットはPCCフレーム単位であると定義される。復号装置は、アクセスユニット先頭の識別情報に基づき、PCCフレームにアクセスする。
また、例えば、GOFは1つのランダムアクセス単位であると定義される。復号装置は、GOF先頭の識別情報に基づき、ランダムアクセス単位にアクセスする。例えば、PCCフレームが互いに依存関係がなく、単独で復号可能であれば、PCCフレームをランダムアクセス単位と定義してもよい。
なお、1つのアクセスユニットに2つ以上のPCCフレームが割り当てられてもよいし、1つのGOFに複数のランダムアクセス単位が割り当てられてもよい。
また、符号化部4801は、上記以外のパラメータセット又はメタデータを定義し、生成してもよい。例えば、符号化部4801は、復号時に必ずしも用いない可能性のあるパラメータ(オプションのパラメータ)を格納するSEI(Supplemental Enhancement Information)を生成してもよい。
次に、符号化データの構成、及び符号化データのNALユニットへの格納方法を説明する。
例えば、符号化データの種類毎にデータフォーマットが規定される。図18は、符号化データ及びNALユニットの例を示す図である。
例えば、図18に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図19は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
図19に示すように、pcc_codec_typeがコーデック1(Codec1:第1の符号化方法)である場合、pcc_nal_unit_typeの値0~10は、コーデック1における、符号化位置データ(Geometry)、符号化属性Xデータ(AttributeX)、符号化属性Yデータ(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrX.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AUヘッダ(AU Header)、GOFヘッダ(GOF Header)に割り当てられる。また、値11以降は、コーデック1の予備に割り当てられる。
pcc_codec_typeがコーデック2(Codec2:第2の符号化方法)である場合、pcc_nal_unit_typeの値0~2は、コーデックのデータA(DataA)、メタデータA(MetaDataA)、メタデータB(MetaDataB)に割り当てられる。また、値3以降は、コーデック2の予備に割り当てられる。
次に、データの送出順序について説明する。以下、NALユニットの送出順序の制約について説明する。
多重化部4802は、NALユニットをGOF又はAU単位でまとめて送出する。多重化部4802は、GOFの先頭にGOFヘッダを配置し、AUの先頭にAUヘッダを配置する。
パケットロスなどでデータが失われた場合でも、復号装置が次のAUから復号できるように、多重化部4802は、シーケンスパラメータセット(SPS)を、AU毎に配置してもよい。
符号化データに復号に係る依存関係がある場合には、復号装置は、参照先のデータを復号した後に、参照元のデータを復号する。復号装置において、データを並び替ることなく、受信した順番に復号できるようにするために、多重化部4802は、参照先のデータを先に送出する。
図20は、NALユニットの送出順の例を示す図である。図20は、位置情報優先と、パラメータ優先と、データ統合との3つの例を示す。
位置情報優先の送出順序は、位置情報に関する情報と、属性情報に関する情報との各々をまとめて送出する例である。この送出順序の場合、位置情報に関する情報の送出が属性情報に関する情報の送出よりも早く完了する。
例えば、この送出順序を用いることで、属性情報を復号しない復号装置は、属性情報の復号を無視することで、処理しない時間を設けることができる可能性がある。また、例えば、位置情報を早く復号したい復号装置の場合、位置情報の符号化データを早く得ることにより、より早く位置情報を復号することができる可能性がある。
なお、図20では、属性XSPSと属性YSPSを統合し、属性SPSと記載しているが、属性XSPSと属性YSPSとを個別に配置してもよい。
パラメータセット優先の送出順序では、パラメータセットが先に送出され、データが後で送出される。
以上のようにNALユニット送出順序の制約に従えば、多重化部4802は、NALユニットをどのような順序で送出してもよい。例えば、順序識別情報が定義され、多重化部4802は、複数パターンの順序でNALユニットを送出する機能を有してもよい。例えばストリームPSにNALユニットの順序識別情報が格納される。
三次元データ復号装置は、順序識別情報に基づき復号を行ってもよい。三次元データ復号装置から三次元データ符号化装置に所望の送出順序が指示され、三次元データ符号化装置(多重化部4802)は、指示された送出順序に従って送出順序を制御してもよい。
なお、多重化部4802は、データ統合の送出順序のように、送出順序の制約に従う範囲であれば、複数の機能をマージした符号化データを生成してもよい。例えば、図20に示すように、GOFヘッダとAUヘッダとを統合してもよいし、AXPSとAYPSとを統合してもよい。この場合、pcc_nal_unit_typeには、複数の機能を有するデータであることを示す識別子が定義される。
以下、本実施の形態の変形例について説明する。フレームレベルのPS、シーケンスレベルのPS、PCCシーケンスレベルのPSのように、PSにはレベルがあり、PCCシーケンスレベルを上位のレベルとし、フレームレベルを下位のレベルとすると、パラメータの格納方法には下記の方法を用いてもよい。
デフォルトのPSの値をより上位のPSで示す。また、下位のPSの値が上位のPSの値と異なる場合には、下位のPSでPSの値が示される。または、上位ではPSの値を記載せず、下位のPSにPSの値を記載する。または、PSの値を、下位のPSで示すか、上位のPSで示すか、両方で示すかの情報を、下位のPSと上位のPSのいずれか一方又は両方に示す。または、下位のPSを上位のPSにマージしてもよい。または、下位のPSと上位のPSとが重複する場合には、多重化部4802は、いずれか一方の送出を省略してもよい。
なお、符号化部4801又は多重化部4802は、データをスライス又はタイルなどに分割し、分割したデータを送出してもよい。分割したデータには、分割したデータを識別するための情報が含まれ、分割データの復号に使用するパラメータがパラメータセットに含まれる。この場合、pcc_nal_unit_typeには、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
(実施の形態4)
HEVC符号化では復号装置における並列処理を可能とするために、スライス又はタイルといったデータ分割のツールがあるが、PCC(Point Cloud Compression)符号化ではまだない。
HEVC符号化では復号装置における並列処理を可能とするために、スライス又はタイルといったデータ分割のツールがあるが、PCC(Point Cloud Compression)符号化ではまだない。
PCCでは、並列処理、圧縮効率、及び圧縮アルゴリズムによって、様々なデータ分割方法が考えられる。ここでは、スライス及びタイルの定義、データ構造及び送受信方法について説明する。
図21は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部4910の構成を示すブロック図である。第1の符号化部4910は、点群データを第1の符号化方法(GPCC(Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4910は、分割部4911と、複数の位置情報符号化部4912と、複数の属性情報符号化部4913と、付加情報符号化部4914と、多重化部4915とを含む。
分割部4911は、点群データを分割することで複数の分割データを生成する。具体的には、分割部4911は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部4911は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部4911は、分割に関する付加情報を生成する。
複数の位置情報符号化部4912は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部4912は、複数の分割位置情報を並列処理する。
複数の属性情報符号化部4913は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部4913は、複数の分割属性情報を並列処理する。
付加情報符号化部4914は、点群データに含まれる付加情報と、分割部4911で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
多重化部4915は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
なお、図21では、位置情報符号化部4912及び属性情報符号化部4913の数がそれぞれ2つの例を示しているが、位置情報符号化部4912及び属性情報符号化部4913の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
図22は、第1の復号部4920の構成を示すブロック図である。第1の復号部4920は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部4920は、逆多重化部4921と、複数の位置情報復号部4922と、複数の属性情報復号部4923と、付加情報復号部4924と、結合部4925とを含む。
逆多重化部4921は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
複数の位置情報復号部4922は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部4922は、複数の符号化位置情報を並列処理する。
複数の属性情報復号部4923は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部4923は、複数の符号化属性情報を並列処理する。
複数の付加情報復号部4924は、符号化付加情報を復号することで付加情報を生成する。
結合部4925は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部4925は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。
なお、図22では、位置情報復号部4922及び属性情報復号部4923の数がそれぞれ2つの例を示しているが、位置情報復号部4922及び属性情報復号部4923の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
次に、分割部4911の構成を説明する。図23は、分割部4911のブロック図である。分割部4911は、スライス分割部4931(Slice Divider)と、位置情報タイル分割部4932(Geometry Tile Divider)と、属性情報タイル分割部4933(Attribute Tile Divider)とを含む。
スライス分割部4931は、位置情報(Position(Geometry))をスライスに分割することで複数のスライス位置情報を生成する。また、スライス分割部4931は、属性情報(Attribute)をスライスに分割することで複数のスライス属性情報を生成する。また、スライス分割部4931は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(Slice MetaData)を出力する。
位置情報タイル分割部4932は、複数のスライス位置情報をタイルに分割することで複数の分割位置情報(複数のタイル位置情報)を生成する。また、位置情報タイル分割部4932は、位置情報のタイル分割に係る情報、及び位置情報のタイル分割において生成された情報を含む位置タイル付加情報(Geometry Tile MetaData)を出力する。
属性情報タイル分割部4933は、複数のスライス属性情報をタイルに分割することで複数の分割属性情報(複数のタイル属性情報)を生成する。また、属性情報タイル分割部4933は、属性情報のタイル分割に係る情報、及び属性情報のタイル分割において生成された情報を含む属性タイル付加情報(Attribute Tile MetaData)を出力する。
なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割を行わなくてもよい。
また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
以下、点群データの分割方法について説明する。図24は、スライス及びタイル分割の例を示す図である。
まず、スライス分割の方法について説明する。分割部4911は、三次元点群データを、スライス単位で、任意の点群に分割する。分割部4911は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、分割部4911は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
また、分割部4911は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
次に、タイル分割の方法について説明する。分割部4911は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
なお、図24では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
また、分割部4911は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、分割部4911は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
また、分割部4911は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
次に、点群データをスライス又はタイルに分割する方法の例を説明する。分割部4911は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
スライス分割時には、分割部4911は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、分割部4911は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、分割部4911は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、分割部4911は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、分割部4911は、一つのオブジェクトを複数のスライスに分割する。
この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
また、分割部4911は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
タイル分割時には、分割部4911は、位置情報と属性情報とを独立に分割する。例えば、分割部4911は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、分割部4911は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。分割部4911は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。分割部4911は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
例えば、分割部4911は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
また、分割部4911は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、分割部4911は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
図25は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
次に、分割データの符号化方法について説明する。三次元データ符号化装置(第1の符号化部4910)は、分割されたデータを、それぞれ符号化する。三次元データ符号化装置は、属性情報を符号化する際に、どの構成情報(位置情報、付加情報又は他の属性情報)に基づき符号化を行ったかを示す依存関係情報を付加情報として生成する。つまり、依存関係情報は、例えば、参照先(依存先)の構成情報を示す。この場合、三次元データ符号化装置は、属性情報の分割形状に対応する構成情報に基づき依存関係情報を生成する。なお、三次元データ符号化装置は、複数の分割形状に対応する構成情報に基づき依存関係情報を生成してもよい。
依存関係情報は三次元データ符号化装置で生成され、生成された依存関係情報が三次元データ復号装置に送出されてもよい。または、三次元データ復号装置が依存関係情報を生成し、三次元データ符号化装置は依存関係情報を送出しなくてもよい。また、三次元データ符号化装置が使用する依存関係を、予め定めておき、三次元データ符号化装置は、依存関係情報を送出しなくてもよい。
図26は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。三次元データ復号装置は、依存先から依存元の順でデータを復号する。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gs1は、スライス番号1の位置情報を示し、Gs2は、スライス番号2の位置情報を示す。Gs1t1は、スライス番号1かつタイル番号1の位置情報を示し、Gs1t2は、スライス番号1かつタイル番号2の位置情報を示し、Gs2t1は、スライス番号2かつタイル番号1の位置情報を示し、Gs2t2は、スライス番号2かつタイル番号2の位置情報を示す。同様に、As1は、スライス番号1の属性情報を示し、As2は、スライス番号2の属性情報を示す。As1t1は、スライス番号1かつタイル番号1の属性情報を示し、As1t2は、スライス番号1かつタイル番号2の属性情報を示し、As2t1は、スライス番号2かつタイル番号1の属性情報を示し、As2t2は、スライス番号2かつタイル番号2の属性情報を示す。
Msliceは、スライス付加情報を示し、MGtileは、位置タイル付加情報を示し、MAtileは、属性タイル付加情報を示す。Ds1t1は属性情報As1t1の依存関係情報を示し、Ds2t1は属性情報As2t1の依存関係情報を示す。
また、三次元データ符号化装置は、三次元データ復号装置においてデータを並び替える必要がないように、データを復号順に並び替えてもよい。なお、三次元データ復号装置においてデータを並び替えてもよいし、三次元データ符号化装置と三次元データ復号装置との両方でデータを並び替えてもよい。
図27は、データの復号順の例を示す図である。図27の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
図28は、三次元データ符号装置による処理の流れを示すフローチャートである。まず、三次元データ符号化装置は、上記のように複数のスライス又はタイルのデータを符号化する(S4901)。次に、三次元データ符号化装置は、図27に示すように、依存先のデータが先になるようにデータを並び替える(S4902)。次に、三次元データ符号化装置は、並び替え後のデータを多重化(NALユニット化)する(S4903)。
次に、第1の復号部4920に含まれる結合部4925の構成を説明する。図29は、結合部4925の構成を示すブロック図である。結合部4925は、位置情報タイル結合部4941(Geometry Tile Combiner)と、属性情報タイル結合部4942(Attribute Tile Combiner)と、スライス結合部(Slice Combiner)とを含む。
位置情報タイル結合部4941は、位置タイル付加情報を用いて複数の分割位置情報を結合することで複数のスライス位置情報を生成する。属性情報タイル結合部4942は、属性タイル付加情報を用いて複数の分割属性情報を結合することで複数のスライス属性情報を生成する。
スライス結合部4943は、スライス付加情報を用いて複数のスライス位置情報を結合することで位置情報を生成する。また、スライス結合部4943は、スライス付加情報を用いて複数のスライス属性情報を結合することで属性情報を生成する。
なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割が行われていなくてもよい。
また、ここでは、スライス分割後にタイル分割が行われる例を示したが、タイル分割後にスライス分割が行われてもよい。また、スライス及びタイルに加え新たな分割種別を定義し、3つ以上の分割種別で分割が行われてもよい。
次に、スライス分割又はタイル分割された符号化データの構成、及び符号化データのNALユニットへの格納方法(多重化方法)を説明する。図30は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
符号化データ(分割位置情報及び分割属性情報)は、NALユニットのペイロードに格納される。
符号化データは、ヘッダとペイロードとを含む。ヘッダは、ペイロードに含まれるデータを特定するための識別情報を含む。この識別情報は、例えば、スライス分割或いはタイル分割の種別(slice_type、tile_type)、スライス或いはタイルを特定するためのインデックス情報(slice_idx、tile_idx)、データ(スライス或いはタイル)の位置情報、又はデータのアドレス(address)などを含む。スライスを特定するためのインデックス情報は、スライスインデックス(SliceIndex)とも記す。タイルを特定するためのインデックス情報は、タイルインデックス(TileIndex)とも記す。また、分割の種別とは、例えば、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。
なお、上記の情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一の分割方法が用いられる場合には、位置情報と属性情報とで分割の種別(slice_type、tile_type)及びインデックス情報(slice_idx、tile_idx)は同一である。よって、位置情報と属性情報の一方のヘッダにこれらの情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらの情報が含まれ、属性情報のヘッダにはこれらの情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライス又はタイルと同一のスライス又はタイルに依存元の属性情報が属すると判断する。
また、スライス分割又はタイル分割に係る付加情報(スライス付加情報、位置タイル付加情報又は属性タイル付加情報)、及び依存関係を示す依存関係情報等は、既存のパラメータセット(GPS、APS、位置SPS又は属性SPSなど)に格納されて送出されてもよい。分割方法がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)に分割方法を示す情報が格納されてもよい。シーケンス内で分割方法が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)に分割方法を示す情報が格納されてもよい。さらに、位置情報と属性情報とで同じ分割方法が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)に分割方法を示す情報が格納されてもよい。
また、上記の情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル分割又はスライス分割用のパラメータセットを定義し、当該パラメータセットに上記の情報を格納してもよい。また、これらの情報は、符号化データのヘッダに格納されてもよい。
また、符号化データのヘッダは、依存関係を示す識別情報を含む。つまり、当該ヘッダは、データ間に依存関係がある場合は、依存元から依存先を参照するための識別情報を含む。例えば、依存先のデータのヘッダには、当該データを特定するための識別情報が含まれる。依存元のデータのヘッダには、依存先を示す識別情報が含まれる。なお、データを特定するための識別情報、スライス分割又はタイル分割に係る付加情報、及び依存関係を示す識別情報を、他の情報から識別可能又は導出可能である場合は、これらの情報を省略してもよい。
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図31は、本実施の形態に係る点群データの符号化処理のフローチャートである。
まず、三次元データ符号化装置は、使用する分割方法を決定する(S4911)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
スライス分割が行われる場合(S4912でYes)、三次元データ符号化装置は、位置情報と属性情報とを一括で分割することで複数のスライス位置情報及び複数のスライス属性情報を生成する(S4913)。また、三次元データ符号化装置は、スライス分割に係るスライス付加情報を生成する。なお、三次元データ符号化装置は、位置情報と属性情報とを独立に分割してもよい。
タイル分割が行われる場合(S4914でYes)、三次元データ符号化装置は、複数のスライス位置情報及び複数のスライス属性情報(又は位置情報及び属性情報)を独立に分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S4915)。また、三次元データ符号化装置は、タイル分割に係る位置タイル付加情報及び属性タイル付加情報を生成する。なお、三次元データ符号化装置は、スライス位置情報とスライス属性情報とを一括で分割してもよい。
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S4916)。また、三次元データ符号化装置は、依存関係情報を生成する。
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S4917)。また、三次元データ符号化装置は、生成した符号化データを送出する。
図32は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(スライス付加情報、位置タイル付加情報及び属性タイル付加情報)を解析することで、分割方法を判定する(S4921)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S4922)。
付加情報によりタイル分割が行われていることが示される場合(S4923でYes)、三次元データ復号装置は、位置タイル付加情報及び属性タイル付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを、それぞれの方法で結合することで、複数のスライス位置情報及び複数のスライス属性情報を生成する(S4924)。なお、三次元データ復号装置は、複数の分割位置情報と、複数の分割属性情報とを同一の方法で結合してもよい。
付加情報によりスライス分割が行われていることが示される場合(S4925でYes)、三次元データ復号装置は、スライス付加情報に基づき、複数のスライス位置情報及び複数のスライス属性情報(複数の分割位置情報及び複数の分割属性情報)を同一の方法で結合することで位置情報及び属性情報を生成する(S4926)。なお、三次元データ復号装置は、複数のスライス位置情報と複数のスライス属性情報とを、それぞれ異なる方法で結合してもよい。
以上のように、本実施の形態に係る三次元データ符号化装置は、図33に示す処理を行う。まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間が分割された複数のサブ空間(例えばスライス)に含まれ、各々が1以上の三次元点を含む複数の分割データ(例えばタイル)に分割する。ここで、分割データは、サブ空間に含まれ、1以上の三次元点を含む1以上のデータ集合体である。また、分割データは空間でもあり、三次元点を含まない空間を含んでいてもよい。また、1つのサブ空間に複数の分割データが含まれてもよいし、1つのサブ空間に1つの分割データが含まれてもよい。なお、対象空間に複数のサブ空間が設定されてもよいし、対象空間に1つのサブ空間が設定されてもよい。
次に、三次元データ符号化装置は、複数の分割データの各々を符号化することで、複数の分割データの各々に対応する複数の符号化データを生成する(S4931)。三次元データ符号化装置は、複数の符号化データと、複数の符号化データの各々に対する複数の制御情報(例えば図30に示すヘッダ)とを含むビットストリームを生成する(S4932)。複数の制御情報の各々には、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子(例えばslice_idx)と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子(例えばtile_idx)とが格納される。
これによれば、三次元データ符号化装置で生成されたビットストリームを復号する三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データのデータを結合して対象空間を容易に復元できる。よって、三次元データ復号装置における処理量を低減できる。
例えば、三次元データ符号化装置は、前記符号化では、複数の分割データの各々に含まれる三次元点の位置情報と属性情報とを符号化する。複数の符号化データの各々は、位置情報の符号化データと、属性情報の符号化データとを含む。複数の制御情報の各々は、位置情報の符号化データの制御情報と、属性情報の符号化データの制御情報とを含む。第1識別子及び第2識別子は、位置情報の符号化データの制御情報に格納される。
例えば、ビットストリームにおいて、複数の制御情報の各々は、当該制御情報に対応する符号化データの前に配置されている。
また、三次元データ符号化装置は、複数の三次元点が含まれる対象空間が1以上のサブ空間に設定され、前記サブ空間に1以上の三次元点を含む1以上の分割データが含まれ、前記分割データの各々を符号化することで、前記複数の分割データの各々に対応する複数の符号化データを生成し、前記複数の符号化データと、前記複数の符号化データの各々に対する複数の制御情報とを含むビットストリームを生成し、前記複数の制御情報の各々には、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子とが格納されてもよい。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図34に示す処理を行う。まず、三次元データ復号装置は、複数の三次元点が含まれる対象空間が分割された複数のサブ空間(例えばスライス)に含まれ、各々が1以上の三次元点を含む複数の分割データ(例えばタイル)の各々が符号化されることで生成された複数の符号化データと、複数の符号化データの各々に対する複数の制御情報(例えば図30に示すヘッダ)とを含むビットストリームから、前記複数の制御情報に格納されている、当該制御情報に対応する符号化データに対応するサブ空間を示す第1識別子(例えばslice_idx)と、当該制御情報に対応する符号化データに対応する分割データを示す第2識別子(例えばtile_idx)とを取得する(S4941)。次に、三次元データ復号装置は、複数の符号化データを復号することで複数の分割データを復元する(S4942)。次に、三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データを結合することで対象空間を復元する(S4943)。例えば、三次元データ符号化装置は、第2識別子を用いて複数の分割データを結合することで複数のサブ空間を復元し、第1識別子を用いて複数のサブ空間を結合することで対象空間(複数の三次元点)を復元する。なお、三次元データ復号装置は、第1識別子及び第2識別子の少なくとも一方を用いて、所望のサブ空間又は分割データの符号化データをビットストリームから取得し、取得した符号化データを選択的に復号、又は優先的に復号してもよい。
これによれば、三次元データ復号装置は、第1識別子及び第2識別子を用いて、複数の分割データのデータを結合して対象空間を容易に復元できる。よって、三次元データ復号装置における処理量を低減できる。
例えば、複数の符号化データの各々は、対応する分割データに含まれる三次元点の位置情報と属性情報とが符号化されることで生成され、位置情報の符号化データと、属性情報の符号化データとを含む。複数の制御情報の各々は、位置情報の符号化データの制御情報と、属性情報の符号化データの制御情報とを含む。第1識別子及び第2識別子は、位置情報の符号化データの制御情報に格納されている。
例えば、ビットストリームにおいて、制御情報は、対応する符号化データの前に配置されている。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態5)
隣接依存を用いた位置情報符号化では、点群の密度が高いほど符号化効率が向上する可能性がある。本実施の形態では、三次元データ符号化装置は、連続するフレームの点群データを結合することで、連続するフレームの点群データをまとめて符号化する。このとき、三次元データ符号化装置は、結合後の点群データに含まれるリーフノードの各々が属するフレームを識別するための情報を加えた符号化データを生成する。
隣接依存を用いた位置情報符号化では、点群の密度が高いほど符号化効率が向上する可能性がある。本実施の形態では、三次元データ符号化装置は、連続するフレームの点群データを結合することで、連続するフレームの点群データをまとめて符号化する。このとき、三次元データ符号化装置は、結合後の点群データに含まれるリーフノードの各々が属するフレームを識別するための情報を加えた符号化データを生成する。
ここで、連続するフレームの点群データは類似する可能性が高い。よって、連続するフレームで、オキュパンシー符号の上位レベルが同一になる可能性が高い。つまり、連続するフレームをまとめて符号化することで、オキュパンシー符号の上位レベルを共用できる。
また、点群がどのフレームに属するかの区別は、フレームのインデックスを符号化することにより、リーフノードで行われる。
図35は、N個のPCC(Point Cloud Compression)フレームの点群データからツリー構造及びオキュパンシー符号(Occupancy Code)を生成するイメージを示す図である。同図において、矢印中の点は、それぞれのPCCフレームに属する点を示している。初めに、それぞれのPCCフレームに属する点には、フレームを特定するためのフレームインデックスが付与される。
次に、N個のフレームに属する点をツリー構造に変換し、オキュパンシー符号が生成される。具体的には、点ごとに、点がツリー構造におけるどのリーフノードに属するかが判定される。同図では、木構造(Tree Structure)はノードの集合を示している。上位のノードから順番に、点がどのノードに属するかが判定される。ノードごとの判定結果がオキュパンシー符号として符号化される。オキュパンシー符号はN個のフレームで共通である。
ノードには、異なるフレームインデックスが付与された、異なるフレームの点が混在する場合がある。なお、8分木(Octree)の分解能が小さい場合は、同一のフレームインデックスが付与された同一フレームの点が混在することもある。
最下層のノード(リーフノード)には、複数のフレームに属する点が混在(重複)することがある。
ツリー構造及びオキュパンシー符号において、上位のレベルのツリー構造及びオキュパンシー符号は、全てのフレームにおいて共通成分である可能性があり、下位のレベルのツリー構造及びオキュパンシー符号はフレーム毎の個別成分、又は共通成分と個別成分とが混在する可能性がある。
例えば、リーフノードなどの最下層のノードには、フレームインデックスを持つ0以上の点が生成され、点の数を示す情報、及び各点に対するフレームインデックスの情報が生成される。これらの情報は、フレームにおいて個別の情報であるともいえる。
図36は、フレーム結合の例を示す図である。図36の(a)に示すように、複数フレームをまとめてツリー構造を生成することにより、同一のノードに含まれるフレームの点の密度が増える。また、ツリー構造を共有することによりオキュパンシー符号のデータ量を削減できる。これらにより、符号化率を向上できる可能性がある。
また、図36の(b)に示すように、ツリー構造におけるオキュパンシー符号の個別成分がより密になることにより、算術符号化の効果が高まるので、符号化率を向上できる可能性がある。
以降、時間的に異なる複数のPCCフレームの結合を例に説明するが、複数フレームでない場合、つまりフレームを結合しない場合(N=1)にも適用可能である。また、結合する複数の点群データは、複数フレーム、つまり、同一対象物の時刻の異なる点群データに限らない。つまり、以下の手法は、空間的、又は時空間的に異なる複数の点群データの結合にも適用可能である。また、以下の手法は、コンテンツの異なる点群データ又は点群ファイルの結合にも適用可能である。
図37は、時間的に異なる複数のPCCフレームの結合の例を示す図である。図37は、自動車が移動しながら、LiDARなどのセンサで点群データを取得する例を示す。点線は、フレーム毎のセンサの取得範囲、すなわち点群データの領域を示している。センサの取得範囲が大きい場合は、点群データの範囲も大きくなる。
点群データを結合して符号化する手法は、以下のような点群データに対して有効である。例えば、図37に示す例では、自動車は移動しており、フレームは自動車の周辺の360°のスキャンにより識別される。つまり、次のフレームであるフレーム2は、車両がX方向への移動した後の別の360°のスキャンに対応する。
この場合、フレーム1とフレーム2とには、重複する領域が存在するため同一の点群データが含まれる可能性がある。よって、フレーム1とフレーム2とを結合して符号化することで符号化効率を向上できる可能性がある。なお、より多くのフレームを結合することも考えられる。ただし、結合するフレーム数を増やすと、リーフノードに付加されるフレームインデックスの符号化に必要なビット数が増加する。
また、異なる位置のセンサによって点群データが取得されてもよい。それにより、それぞれの位置から取得されたそれぞれの点群データがそれぞれフレームとして用いられてもよい。つまり、複数のフレームは、単一のセンサで取得された点群データであってもよいし、複数のセンサで取得された点群データであってもよい。また、複数のフレーム間において、一部又は全ての対象物が同一であってもよいし、異なってもよい。
次に、本実施の形態に係る三次元データ符号化処理の流れを説明する。図38は、三次元データ符号化処理のフローチャートである。三次元データ符号化装置は、結合を行うフレームの数である結合フレーム数Nに基づき、N個全てのフレームの点群データを読み込む。
まず、三次元データ符号化装置は、結合フレーム数Nを決定する(S5401)。例えば、この結合フレーム数Nはユーザにより指定される。
次に、三次元データ符号化装置は、点群データを取得する(S5402)。次に、三次元データ符号化装置は、取得した点群データのフレームインデックスを記録する(S5403)。
N個のフレームを処理済みでない場合(S5404でNo)、三次元データ符号化装置は、次の点群データを指定し(S5405)、指定された点群データに対してステップS5402以降の処理を行う。
一方、N個のフレームを処理済みである場合(S5404でYes)、三次元データ符号化装置は、N個のフレームを結合し、結合後のフレームを符号化する(S5406)。
図39は、符号化処理(S5406)のフローチャートである。まず、三次元データ符号化装置は、N個のフレームに共通の共通情報を生成する(S5411)。例えば、共通情報は、オキュパンシー符号、及び結合フレーム数Nを示す情報を含む。
次に、三次元データ符号化装置は、フレーム毎に個別の情報である個別情報を生成する(S5412)。例えば、個別情報は、リーフノードに含まれる点の数、及びリーフノードに含まれる点のフレームインデックスを含む。
次に、三次元データ符号化装置は、共通情報と個別情報とを結合し、結合後の情報を符号化することで符号化データを生成する(S5413)。次に、三次元データ符号化装置は、フレーム結合に係る付加情報(メタデータ)を生成し、生成した付加情報を符号化する(S5414)。
次に、本実施の形態に係る三次元データ復号処理の流れを説明する。図40は、三次元データ復号処理のフローチャートである。
まず、三次元データ復号装置は、ビットストリームから結合フレーム数Nを取得する(S5421)。次に、三次元データ符号化装置は、ビットストリームから符号化データを取得する(S5422)。次に、三次元データ復号装置は、符号化データを復号することで点群データとフレームインデックスと取得する(S5423)。最後に、三次元データ復号装置は、復号された点群データをフレームインデックスを用いて分割する(S5424)。
図41は、復号及び分割処理(S5423及びS5424)のフローチャートである。まず、三次元データ復号装置は、符号化データ(ビットストリーム)から共通情報及び個別情報を復号(取得)する(S5431)。
次に、三次元データ復号装置は、単一のフレームを復号するか複数のフレームを復号するかを決定する(S5432)。例えば、単一のフレームを復号するか複数のフレームを復号するかは外部から指定されてもよい。ここで、複数のフレームとは、結合されたフレームの全てのフレームであってもよいし、一部のフレームであってもよい。例えば、三次元データ復号装置は、アプリケーションが必要とする特定のフレームを復号すると決定し、必要としないフレームを復号しないと決定してもよい。または、リアルタイムな復号が要求される場合には、三次元データ復号装置は、結合された複数フレームのうち単一のフレームを復号すると決定してもよい。
単一のフレームを復号する場合(S5432でYes)、三次元データ復号装置は、復号した個別情報から指定された単一のフレームインデックスに対応する個別情報を抽出し、抽出した個別情報を復号することで、指定されたフレームインデックスに対応するフレームの点群データを復元する(S5433)。
一方、複数フレームを復号する場合(S5432でNo)、三次元データ復号装置は、指定された複数のフレーム(又は全てのフレーム)のフレームインデックスに対応する個別情報を抽出し、抽出した個別情報を復号することで、指定された複数フレームの点群データを復元する(S5434)。次に、三次元データ復号装置は、フレームインデックスに基づき、復号した点群データ(個別情報)を分割する(S5435)。つまり、三次元データ復号装置は、復号した点群データを複数フレームに分割する。
なお、三次元データ復号装置は、結合された全てのフレームのデータを一括で復号し、復号したデータを各フレームに分割してもよいし、結合された全てのフレームのうち、任意の一部のフレームを一括で復号し、復号したデータを各フレームに分割してもよい。また、三次元データ復号装置は、複数フレームからなる予め定められた単位フレームを単独で復号してもよい。
以下、本実施の形態に係る三次元データ符号化装置の構成を説明する。図42は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部5410の構成を示すブロック図である。符号化部5410は、点群データ(ポイントクラウド)を符号化することで符号化データ(符号化ストリーム)を生成する。この符号化部5410は、分割部5411と、複数の位置情報符号化部5412と、複数の属性情報符号化部5413と、付加情報符号化部5414と、多重化部5415とを含む。
分割部5411は、複数フレームの点群データを分割することで複数フレームの複数の分割データを生成する。具体的には、分割部5411は、各フレームの点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報(色又は反射率等)、及び付加情報を含む。また、分割部5411には、フレーム番号が入力される。分割部5411は、各フレームの位置情報を複数の分割位置情報に分割し、各フレームの属性情報を複数の分割属性情報に分割する。また、分割部5411は、分割に関する付加情報を生成する。
例えば、分割部5411は、まず、点群をタイルに分割する。次に、分割部5411は、得られたタイルを、さらにスライスに分割する。
複数の位置情報符号化部5412は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、位置情報符号化部5412は、8分木等のN分木構造を用いて分割位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。例えば、複数の位置情報符号化部5412は、複数の分割位置情報を並列処理する。
属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、位置情報又は属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
複数の属性情報符号化部5413は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部5413は、複数の分割属性情報を並列処理する。
付加情報符号化部5414は、点群データに含まれる付加情報と、分割部5411で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
多重化部5415は、複数フレームの、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
図43は、分割部5411のブロック図である。分割部5411は、タイル分割部5421と、スライス分割部5422とを含む。
タイル分割部5421は、複数フレームの位置情報(Position(Geometry))の各々をタイルに分割することで複数のタイル位置情報を生成する。また、タイル分割部5421は、複数フレームの属性情報(Attribute)の各々をタイルに分割することで複数のタイル属性情報を生成する。また、タイル分割部5421は、タイル分割に係る情報、及びタイル分割において生成された情報を含むタイル付加情報(Tile MetaData)を出力する。
スライス分割部5422は、複数のタイル位置情報をスライスに分割することで複数の分割位置情報(複数のスライス位置情報)を生成する。また、スライス分割部5422は、複数のタイル属性情報をスライスに分割することで複数の分割属性情報(複数のスライス属性情報)を生成する。また、スライス分割部5422は、スライス分割に係る情報、及びスライス分割において生成された情報を含むスライス付加情報(Slice MetaData)を出力する。
また、分割部5411は、分割処理において、原点座標及び属性情報等を示すために、フレーム番号(フレームインデックス)を用いる。
図44は、位置情報符号化部5412のブロック図である。位置情報符号化部5412は、フレームインデックス生成部5431と、エントロピー符号化部5432とを含む。
フレームインデックス生成部5431は、フレーム番号に基づきフレームインデックスの値を決定し、決定したフレームインデックスを位置情報に付加する。エントロピー符号化部5432は、フレームインデックスが付加された分割位置情報をエントロピー符号化することで符号化位置情報を生成する。
図45は、属性情報符号化部5413のブロック図である。属性情報符号化部5413は、フレームインデックス生成部5441と、エントロピー符号化部5442とを含む。
フレームインデックス生成部5441は、フレーム番号に基づきフレームインデックスの値を決定し、決定したフレームインデックスを属性情報に付加する。エントロピー符号化部5442は、フレームインデックスが付加された分割属性情報をエントロピー符号化することで符号化属性情報を生成する。
次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図46は、本実施の形態に係る点群データの符号化処理のフローチャートである。
まず、三次元データ符号化装置は、使用する分割方法を決定する(S5441)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
タイル分割が行われる場合(S5442でYes)、三次元データ符号化装置は、位置情報と属性情報とを分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する(S5443)。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。
スライス分割が行われる場合(S5444でYes)、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報(又は位置情報及び属性情報)を分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S5445)。また、三次元データ符号化装置は、スライス分割に係るスライス付加情報を生成する。
次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々をフレームインデックスと符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S5446)。また、三次元データ符号化装置は、依存関係情報を生成する。
次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S5447)。また、三次元データ符号化装置は、生成した符号化データを送出する。
図47は、符号化処理(S5446)のフローチャートである。まず、三次元データ符号化装置は、分割位置情報を符号化する(S5451)。次に、三次元データ符号化装置は、分割位置情報用のフレームインデックスを符号化する(S5452)。
分割属性情報が存在する場合(S5453でYes)、三次元データ符号化装置は、分割属性情報を符号化し(S5454)、分割属性情報用のフレームインデックスを符号化する(S5455)。一方、分割属性情報が存在しない場合(S5453でNo)、三次元データ符号化装置は、分割属性情報の符号化、及び分割属性情報用のフレームインデックスの符号化を行わない。なお、フレームインデックスは分割位置情報と分割属性情報のいずれか一方または両方に格納されてもよい。
なお、三次元データ符号化装置は、属性情報を、フレームインデックスを用いて符号化してもよいし、フレームインデックスを用いずに符号化してもよい。つまり、三次元データ符号化装置は、フレームインデックスを用いて、それぞれの点が属するフレームを識別し、フレーム毎に符号化してもよいし、フレームを識別せずに、全てのフレームに属する点を符号化してもよい。
以下、本実施の形態に係る三次元データ復号装置の構成を説明する。図48は、復号部5450の構成を示すブロック図である。復号部5450は、点群データが符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この復号部5450は、逆多重化部5451と、複数の位置情報復号部5452と、複数の属性情報復号部5453と、付加情報復号部5454と、結合部5455とを含む。
逆多重化部5451は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
複数の位置情報復号部5452は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部5452は、複数の符号化位置情報を並列処理する。
複数の属性情報復号部5453は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部5453は、複数の符号化属性情報を並列処理する。
複数の付加情報復号部5454は、符号化付加情報を復号することで付加情報を生成する。
結合部5455は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部5455は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。また、結合部5455は、フレームインデックスを用いて位置情報及び属性情報を複数フレームの位置情報及び複数フレームの属性情報に分割する。
図49は、位置情報復号部5452のブロック図である。位置情報復号部5452は、エントロピー復号部5461と、フレームインデックス取得部5462とを含む。エントロピー復号部5461は、符号化位置情報をエントロピー復号することで分割位置情報を生成する。フレームインデックス取得部5462は、分割位置情報からフレームインデックを取得する。
図50は、属性情報復号部5453のブロック図である。属性情報復号部5453は、エントロピー復号部5471と、フレームインデックス取得部5472とを含む。エントロピー復号部5471は、符号化属性情報をエントロピー復号することで分割属性情報を生成する。フレームインデックス取得部5472は、分割属性情報からフレームインデックを取得する。
図51は、結合部5455の構成を示す図である。結合部5455は、複数の分割位置情報を結合することで位置情報を生成する。結合部5455は、複数の分割属性情報を結合することで属性情報を生成する。また、結合部5455は、フレームインデックスを用いて位置情報及び属性情報を複数フレームの位置情報及び複数フレームの属性情報に分割する。
図52は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(スライス付加情報、及びタイル付加情報)を解析することで、分割方法を判定する(S5461)。この分割方法は、スライス分割を行うか否か、タイル分割を行うか否かを含む。また、分割方法は、スライス分割又はタイル分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S5462)。
付加情報によりスライス分割が行われていることが示される場合(S5463でYes)、三次元データ復号装置は、スライス付加情報に基づき、複数の分割位置情報を結合することで複数のタイル位置情報を生成し、複数の分割属性情報を結合することで複数のタイル属性情報を生成する(S5464)。ここで、複数の分割位置情報、複数の分割属性情報、複数のタイル位置情報、及び複数のタイル属性情報は、フレームインデックスを含む。
付加情報によりタイル分割が行われていることが示される場合(S5465でYes)、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報(複数の分割位置情報)を結合することで位置情報を生成し、複数のタイル属性情報(複数の分割属性情報)を結合することで属性情報を生成する(S5466)。ここで、複数のタイル位置情報、複数のタイル属性情報、位置情報及び属性情報は、フレームインデックスを含む。
図53は、復号処理(S5464又はS5466)のフローチャートである。まず、三次元データ復号装置は、分割位置情報(スライス位置情報)を復号する(S5471)。次に、三次元データ復号装置は、分割位置情報用のフレームインデックスを復号する(S5472)。
分割属性情報が存在する場合(S5473でYes)、三次元データ復号装置は、分割属性情報を復号し(S5474)、分割属性情報用のフレームインデックスを復号する(S5475)。一方、分割属性情報が存在しない場合(S5473でNo)、三次元データ復号装置は、分割属性情報の復号、及び分割属性情報用のフレームインデックスの復号を行わない。
なお、三次元データ復号装置は、属性情報を、フレームインデックスを用いて復号してもよいし、フレームインデックスを用いずに復号してもよい。
以下、フレーム結合における符号化単位について説明する。図54は、フレームの結合パターンの例を示す図である。同図の例は、例えば、PCCフレームが時系列であり、リアルタイムにデータの生成及び符号化が行われる場合の例である。
図54の(a)は、固定的に4フレームを結合する場合を示している。三次元データ符号化装置は、4フレーム分のデータの生成を待ってから符号化データを生成する。
図54の(b)は、適応的にフレーム数が変化する場合を示している。例えば、三次元データ符号化装置は、レート制御において符号化データの符号量を調整するために結合フレーム数を変化させる。
なお、三次元データ符号化装置は、フレーム結合による効果がない可能性がある場合は、フレームを結合しなくてもよい。また、三次元データ符号化装置は、フレーム結合する場合とフレーム結合しない場合とを切り替えてもよい。
図54の(c)は、結合する複数のフレームの一部が次に結合する複数のフレームの一部と重複する場合の例である。この例は、符号化できたものから順次送出するなど、リアルタイム性、又は低遅延が要求される場合に有用である。
図55は、PCCフレームの構成例を示す図である。三次元データ符号化装置は、結合するフレームを、少なくとも単独で復号できるデータ単位を含むように構成してもよい。例えば、図55の(a)に示すように、PCCフレームが全てイントラ符号化されており、PCCフレームを単独で復号可能な場合には、上記のいずれのパターンも適用可能である。
また、図55の(b)に示すように、インター予測が適用されている場合などにおいてGOF(グループオブフレーム)などのランダムアクセス単位が設定される場合は、三次元データ符号化装置は、そのGOF単位を最小単位として、データを結合してもよい。
なお、三次元データ符号化装置は、共通情報と個別情報とを一括で符号化してもよいし、それぞれを別に符号化してもよい。また、三次元データ符号化装置は、共通情報と個別情報とに共通のデータ構造を用いてもよいし別のデータ構造を用いてもよい。
また、三次元データ符号化装置は、フレーム毎にオキュパンシー符号を生成した後に、複数フレームのオキュパンシー符号を比較し、例えば、所定の基準で複数フレームのオキュパンシー符号間で共通部分が多いか否かを判定し、共通部分が多い場合に共通情報を生成してもよい。あるいは、三次元データ符号化装置は、共通部分が多いか否に基づき、フレーム結合するかどうか、どのフレームを結合するか、又は結合フレーム数を決定してもよい。
次に、符号化位置情報の構成を説明する。図56は、符号化位置情報の構成を示す図である。符号化位置情報は、ヘッダとペイロードとを含む。
図57は、符号化位置情報のヘッダ(Geometry_header)のシンタックス例を示す図である。符号化位置情報のヘッダは、GPSインデックス(gps_idx)と、オフセット情報(offset)と、その他の情報(other_geometry_information)と、フレーム結合フラグ(combine_frame_flag)と、結合フレーム数(number_of_combine_frame)とを含む。
GPSインデックスは、符号化位置情報に対応するパラメータセット(GPS)の識別子(ID)を示す。GPSは、1フレーム又は複数のフレームの符号化位置情報のパラメータセットである。なお、1フレーム毎にパラメータセットが存在する場合は、複数のパラメータセットの識別子がヘッダに示されてもよい。
オフセット情報は、結合データを取得するためのオフセット位置を示す。その他の情報は、位置情報に関するその他の情報(例えば、量子化パラメータの差分値(QPdelta)など)を示す。フレーム結合フラグは、符号化データがフレーム結合されているか否かを示すフラグである。結合フレーム数は、結合されているフレームの数を示す。
なお、上記の情報の一部又は全てがSPS又はGPSに記載されてもよい。なお、SPSとは、シーケンス(複数フレーム)単位のパラメータセットであり、符号化位置情報と符号化属性情報とに共通に用いられるパラメータセットである。
図58は、符号化位置情報のペイロード(Geometry_data)のシンタックス例を示す図である。符号化位置情報のペイロードは、共通情報と、リーフノード情報とを含む。
共通情報は、1以上のフレーム結合したデータであり、オキュパンシー符号(occupancy_Code)等を含む。
リーフノード情報(combine_information)は、各リーフノードの情報である。フレーム数のループとして、フレーム毎にリーフノード情報が示されてもよい。
リーフノードに含まれる点のフレームインデックスを示す方法としては、方法1と方法2とのいずれかを用いることができる。図59は、方法1の場合のリーフノード情報の例を示す図である。図59に示すリーフノード情報は、ノードに含まれる点の数を示す三次元点数(NumberOfPoints)と、点ごとのフレームインデックス(FrameIndex)とを含む。
図60は、方法2の場合のリーフノード情報の例を示す図である。図60に示す例では、リーフノード情報は、ビットマップにより複数の点のフレームインデックを示すビットマップ情報(bitmapIsFramePointsFlag)を含む。図61は、ビットマップ情報の例を示す図である。この例では、ビットマップにより、リーフノードがフレームインデックス1と3と5の三次元点を含むことが示される。
なお、量子化の分解能が低い場合は、同一フレームに重複点が存在する場合がある。この場合、三次元点数(NumberOfPoints)を共有化し、各フレームの三次元点の数と複数フレームの合計の三次元点の数とが示されてもよい。
また、不可逆圧縮が用いられる場合、三次元データ符号化装置は、重複点を削除し、情報量を削減してもよい。三次元データ符号化装置は、フレーム結合前に重複点を削除してもよいし、フレーム結合後に重複点を削除してもよい。
次に、符号化属性情報の構成を説明する。図62は、符号化属性情報の構成を示す図である。符号化属性情報は、ヘッダとペイロードとを含む。
図63は、符号化属性情報のヘッダ(Attribute_header)のシンタックス例を示す図である。符号化属性情報のヘッダは、APSインデックス(aps_idx)と、オフセット情報(offset)と、その他の情報(other_attribute_information)と、フレーム結合フラグ(combine_frame_flag)と、結合フレーム数(number_of_combine_frame)とを含む。
APSインデックスは、符号化属性情報に対応するパラメータセット(APS)の識別子(ID)を示す。APSは、1フレーム又は複数のフレームの符号化属性情報のパラメータセットである。なお、1フレーム毎にパラメータセットが存在する場合は、複数のパラメータセットの識別子がヘッダに示されてもよい。
オフセット情報は、結合データを取得するためのオフセット位置を示す。その他の情報は、属性情報に関するその他の情報(例えば、量子化パラメータの差分値(QPdelta)など)を示す。フレーム結合フラグは、符号化データがフレーム結合されているか否かを示すフラグである。結合フレーム数は、結合されているフレームの数を示す。
なお、上記の情報の一部又は全てがSPS又はAPSに記載されてもよい。
図64は、符号化属性情報のペイロード(Attribute_data)のシンタックス例を示す図である。符号化属性情報のペイロードは、リーフノード情報(combine_information)を含む。例えば、このリーフノード情報の構成は、符号化位置情報のペイロードに含まれるリーフノード情報と同様である。つまり、リーフノード情報(フレームインデックス)は、属性情報に含まれてもよい。
また、リーフノード情報(フレームインデックス)は、符号化位置情報と符号化属性情報との一方に格納され、他方に格納されてなくてもよい。この場合、符号化位置情報と符号化属性情報との一方に格納されているリーフノード情報(フレームインデックス)が他方の情報の復号時に参照される。また、参照先を示す情報が符号化位置情報又は符号化属性情報に含まれてもよい。
次に、符号化データの送出順及び復号順の例を説明する。図65は、符号化データの構成を示す図である。符号化データはヘッダとペイロードとを含む。
図66~図68は、データの送出順と、データの参照関係を示す図である。同図において、G(1)等は、符号化位置情報を示し、GPS(1)等は、符号化位置情報のパラメータセットを示し、SPSは、シーケンス(複数フレーム)のパラメータセットを示す。また、()内の数字はフレームインデックスの値を示す。なお、三次元データ符号化装置は、データを復号順で送出してもよい。
図66はフレームを結合しない場合の送出順の例を示す図である。図67はフレームを結合する場合であって、PCCフレーム毎にメタデータ(パラメータセット)が付加される場合の例を示す図である。図68はフレームを結合する場合であって、結合する単位でメタデータ(パラメータセット)が付加される場合の例を示す図である。
フレーム結合されたデータのヘッダには、当該フレームのメタデータを得るために、参照先のメタデータの識別子が格納される。図68のように、複数フレーム毎のメタデータをまとめてもよい。フレーム結合された複数のフレームに共通のパラメータは一つにまとめてもよい。フレームに共通でないパラメータは各フレームに対する値を示す。
フレーム毎の情報(フレームで共通でないパラメータ)とは、例えば、フレームデータの生成時刻、符号化時刻、又は復号時刻などを示すタイムスタンプである。また、フレーム毎の情報は、フレームデータを取得したセンサの情報(センサのスピード、加速度、位置情報、センサの向き、その他のセンサ情報など)を含んでもよい。
図69は、図67に示す例において、一部のフレームを復号する例を示す図である。図69に示すように、フレーム結合データ内で、フレーム間に依存関係がなければ、三次元データ復号装置は、各データを独立に復号できる。
点群データが属性情報を有する場合、三次元データ符号化装置は、属性情報をフレーム結合してもよい。属性情報は、位置情報を参照して符号化及び復号される。参照される位置情報は、フレーム結合する前の位置情報であってもよいし、フレーム結合した後の位置情報であってもよい。位置情報の結合フレーム数と属性情報の結合フレーム数とは共通(同じ)であってもよいし、独立していて(異なって)もよい。
図70~図73は、データの送出順と、データの参照関係を示す図である。図70及び図71は、位置情報と属性情報とを共に4フレームで結合する例を示す。図70では、PCCフレーム毎にメタデータ(パラメータセット)が付加される。図71では、結合する単位でメタデータ(パラメータセット)が付加される。同図において、A(1)等は、符号化属性情報を示し、APS(1)等は、符号化属性情報のパラメータセットを示す。また、()内の数字はフレームインデックスの値を示す。
図72は、位置情報を4フレームで結合し、属性情報を結合しない例を示す。図72に示すように位置情報をフレーム結合し、属性情報をフレーム結合しなくてもよい。
図73は、フレーム結合とタイル分割とを組み合わせた例を示す。図73に示すようにタイル分割を行う場合には、各タイル位置情報のヘッダは、GPSインデックス(gps_idx)、及び結合フレーム数(number_of_combine_frame)等の情報を含む。また、各タイル位置情報のヘッダは、タイルを識別するためのタイルインデックス(tile_idx)を含む。
以上のように、本実施の形態に係る三次元データ符号化装置は、図74に示す処理を行う。まず、三次元データ符号化装置は、第1点群データと第2点群データとを結合することで第3点群データを生成する(S5481)。次に、三次元データ符号化装置は、第3点群データを符号化することで符号化データを生成する(S5482)。また、符号化データは、第3点群データに含まれる複数の三次元点の各々が第1点群データと第2点群データとのいずれに属するかを示す識別情報(例えばフレームインデックス)を含む。
これによれば、三次元データ符号化装置は、複数の点群データをまとめて符号化することにより符号化効率を向上できる。
例えば、第1点群データと第2点群データとは、異なる時刻の点群データ(例えばPCCフレーム)である。例えば、第1点群データと第2点群データとは、同一の対象物の異なる時刻の点群データ(例えばPCCフレーム)である。
符号化データは、第3点群データに含まれる複数の三次元点の各々の位置情報と属性情報とを含み、識別情報は、属性情報に含まれる。
例えば、符号化データは、第3点群データに含まれる複数の三次元点の各々の位置をN(Nは2以上の整数)分木を用いて表した位置情報(例えばオキュパンシー符号)を含む。
例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図75に示す処理を行う。まず、三次元データ復号装置は、符号化データを復号することで、第1点群データと第2点群データとが結合されることで生成された第3点群データと、第3点群データに含まれる複数の三次元点の各々が第1点群データと第2点群データとのいずれに属するかを示す識別情報とを取得する(S5491)。次に、三次元データ復号装置は、識別情報を用いて、第3点群データから第1点群データと第2点群データとを分離する(S5492)。
これによれば、三次元データ復号装置は、複数の点群データをまとめて符号化することにより符号化効率を向上した符号化データを復号できる。
例えば、第1点群データと第2点群データとは、異なる時刻の点群データ(例えばPCCフレーム)である。例えば、第1点群データと第2点群データとは、同一の対象物の異なる時刻の点群データ(例えばPCCフレーム)である。
符号化データは、第3点群データに含まれる複数の三次元点の各々の位置情報と属性情報とを含み、識別情報は、属性情報に含まれる。
例えば、符号化データは、第3点群データに含まれる複数の三次元点の各々の位置をN(Nは2以上の整数)分木を用いて表した位置情報(例えばオキュパンシー符号)を含む。
例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
(実施の形態6)
上記では、リーフノードにある点のフレームインデックス情報を示す方法を説明した。フレームインデックス情報を示す方法として、上記では、ノードに含まれる点の数と、点ごとのフレームインデックスの値とをそれぞれ示す方法と、ビットマップで示す方法などを説明した。
上記では、リーフノードにある点のフレームインデックス情報を示す方法を説明した。フレームインデックス情報を示す方法として、上記では、ノードに含まれる点の数と、点ごとのフレームインデックスの値とをそれぞれ示す方法と、ビットマップで示す方法などを説明した。
以下では、さらに符号化率の向上を期待できる三次元データ符号化方法について説明する。以下で説明する三次元データ符号化方法を用いることにより、算術符号化後の符号化データ(符号化データのビット数)を削減できる可能性があり、フレーム結合による符号化効率向上の効果を高めることが可能となる。
図76は、本実施の形態に係る符号化部のブロック図である。具体的には、図76は、フレームインデックスの値(以下、単にフレームインデックスともいう)を符号化する符号化部を示すブロック図である。本実施の形態に係る三次元データ符号化装置が備える符号化部は、位置情報符号化部5510と、属性情報符号化部5520と、を有する。位置情報符号化部5510は、フレームインデックス生成部5511と、エントロピー符号化部5512と、を備える。
フレームインデックス生成部5511は、三次元点の位置情報のフレームインデックス(複数のフレーム(三次元データ)のいずれに属するかを示す値である識別子)を決定して変換する。
エントロピー符号化部5512は、フレームインデックス生成部5511で変換したフレームインデックスをエントロピー符号化する。エントロピー符号化部5512は、符号化したフレームインデックスを含む符号化データを含むビットストリームを生成して出力する。より具体的には、エントロピー符号化部5512は、符号化したフレームインデックス及び符号化した位置情報を含む符号化データを含む位置情報ビットストリームを出力する。
属性情報符号化部5520は、フレームインデックス生成部5521と、エントロピー符号化部5522と、を備える。
フレームインデックス生成部5521は、属性情報のフレームインデックスを決定して変換する。
エントロピー符号化部5522は、フレームインデックス生成部5521で変換したフレームインデックスをエントロピー符号化する。エントロピー符号化部5522は、符号化したフレームインデックスを含む符号化データを含むビットストリームを出力する。より具体的には、エントロピー符号化部5522は、符号化したフレームインデックス及び符号化した属性情報を含む符号化データを含む属性情報ビットストリームを出力する。
図77は、実施の形態6に係るフレームインデックス生成部5511のブロック図である。
フレームインデックス生成部5511は、フレーム結合部5550と、フレームインデックス符号化部5560と、結合データ生成部5570と、を備える。
フレーム結合部5550は、複数のフレームを取得し、取得した複数のフレームを結合することで結合三次元データを生成する。具体的には、フレーム結合部5550は、複数のフレームのそれぞれにフレームインデックスを紐づけたフレームデータ、言い換えると、フレームインデックスを含む結合三次元データを生成する。フレーム結合部5550は、フレームの結合数を示す情報(以下、結合数ともいう)と、リーフノードに存在する重複するポイントの数を示す情報(以下、重複点数ともいう)と、フレームインデックスの値を含むフレームデータ(以下、結合三次元データともいう)と、を出力する。
なお、リーフノードに存在する重複するポイントとは、リーフノードに存在する三次元点を示し、同じ単位空間に含まれる三次元点を示す。
フレームインデックス符号化部5560は、フレーム結合部5550が出力した、結合数と、重複点数と、フレームインデックスを含むフレームデータと、を取得する。フレームインデックス符号化部5560は、フレームインデックスを予め定められた方法を用いて0又は正の整数で表される数値であるランク(ランキング又は変換符号ともいう)に変換する。例えば、フレームインデックス符号化部5560は、複数の三次元データが結合された結合三次元データにおける、リーフノード(単位空間)に含まれる三次元点が当該複数の三次元データのいずれに属するかを示すビットマップを生成する。ビットマップは、0と1とで表されるデジタルデータである。ビットマップと、変換符号及び単位空間に含まれる三次元点の数とは、1対1対応である。フレームインデックス符号化部5560は、例えば、後述するルックアップテーブルを用いて、生成したビットマップをランクに変換、言い換えると、生成したビットマップからランクを生成する。フレームインデックス符号化部5560は、ランクのビット数(ランクビットともいう)と、ランクとを結合データ生成部5570に出力する。
結合データ生成部5570は、取得したランクのビット数に応じたサイズのランクとフレームデータとを結合した結合データを生成する。
なお、上記したフレームインデックスに係る処理は、位置情報符号化部5510が実行してもよいし、属性情報符号化部5520が実行してもよく、いずれか一方が実行すればよい。つまり、フレーム結合部5550、フレームインデックス符号化部5560、及び、結合データ生成部5570は、フレームインデックス生成部5521が備えてもよい。
図78は、実施の形態6に係る復号部のブロック図である。具体的には、図78は、本実施の形態に係る三次元データ復号装置が備える、符号化されたフレームインデックスを復号して取得する復号部を示すブロック図である。復号部は、位置情報復号部5530と、属性情報復号部5540と、を備える。
位置情報復号部5530は、エントロピー復号部5531と、フレームインデックス取得部5532と、を備える。
エントロピー復号部5531は、エントロピー符号化部5512がエントロピー符号化した符号化データ(結合数と、重複点数と、結合データとを含む符号化データ)を含むビットストリーム(より具体的には、位置情報ビットストリーム)を取得して、当該符号化データを復号する。
フレームインデックス取得部5532は、エントロピー復号部5531が復号した符号化データからフレームインデックスを取得する。
属性情報復号部5540は、エントロピー復号部5541と、フレームインデックス取得部5542と、を備える。
エントロピー復号部5541は、エントロピー符号化部5522がエントロピー符号化した符号化データ(結合数と、重複点数と、結合データとを含む符号化データ)を含むビットストリーム(より具体的には、属性情報ビットストリーム)を取得して、当該符号化データを復号する。
フレームインデックス取得部5542は、エントロピー復号部5541が復号した符号化データに含まれるフレームインデックスを取得する。
図79は、実施の形態6に係るフレームインデックス取得部5532のブロック図である。
フレームインデックス取得部5532は、予め定められた方法を用いてフレームインデックスを取得する。具体的には、フレームインデックス取得部5532は、フレーム結合部5550及びフレームインデックス符号化部5560から取得した、結合数と、重複点数と、ランクを含む結合データとから、予め定められた方法を用いてフレームインデックスを取得する。フレームインデックス取得部5532は、フレームインデックスの値を含むデータであるフレームデータを出力する。
なお、上記したフレームインデックスに係る処理は、位置情報復号部5530が実行してもよいし、属性情報復号部5540が実行してもよく、いずれか一方が実行すればよい。つまり、フレームインデックス取得部5532が実行する処理は、フレームインデックス取得部5542が実行してもよい。
続いて、ビットマップからランクを取得するためのルックアップテーブル(LUT)について説明する。
図80は、実施の形態6に係るフレームインデックス符号化部5560のブロック図である。
フレームインデックス符号化部5560は、個別情報(各フレームの個別情報)を生成し、符号化する。
フレームインデックス符号化部5560は、ビットマップ生成部5561と、ルックアップテーブル参照部5562と、ビット数取得部5563と、を備える。
まず、ビットマップ生成部5561は、結合数と、重複点数と、ポイント(三次元点)毎のフレームインデックスとに基づき、ビットマップを生成する。結合数は、例えば、上記したフレーム結合における符号化単位の方法を用いて決定する。また、ビットマップ生成部5561は、ツリー構造の分割において、リーフノード毎に存在する重複点数をカウントするとともに、重複する点に紐づくフレームインデックスに基づいて、例えば、図81に示す方法でビットマップに変換する。
図81は、実施の形態6に係るリーフノード及びビットマップの一例を示す図である。
例えば、フレームインデックスの値が1と3と5との三次元点を含むことをビットマップで示すとする。
例えば、ビットマップ生成部5561は、図81の(a)に示すリーフノードを示す情報(言い換えると、フレームインデックスの値が1と3と5との三次元点を含むことを示す情報)を取得したとする。この場合、ビットマップ生成部5561は、図81の(b)に示すビットマップを生成する。
次に、ルックアップテーブル参照部5562は、ビットマップを所定のルックアップテーブルを用いてランクに変換する。言い換えると、ルックアップテーブル参照部5562は、ルックアップテーブルを用いてビットマップからランクを生成する。ルックアップテーブルは、ビットマップの値とランクとの対応関係を示すテーブルである。ルックアップテーブル参照部5562は、例えば、ルックアップテーブルを記憶しているメモリを有する。
図82は、実施の形態6に係るランクの一例を示す図である。
ランクとは、ビットマップを、図82に示すビットマップに含まれる1の数ではNで示す毎に分類し、分類したグループ内でのインデックス又は順序を示す数値である。
図83は、実施の形態6に係るルックアップテーブル参照部5562が用いるルックアップテーブルの一例を示す図である。具体的には、図83は、ビットマップをランクに変換する際のルックアップテーブルを示す図である。
例えば、No.0~No.7の中で、ビットマップに含まれる1の数が1つであるのは、No.1、No.2、及び、No.4である。また、ランクは、順に0、1、2となる。
なお、図83は、ビットマップが8ビットの場合におけるルックアップテーブルを例示しており、結合数が8以下に対応するテーブルである。結合数が8より小さい場合は、図83に示すルックアップテーブルの一部を用いてもよく、フレームの結合数が8より大きい場合には、同様の方法でルックアップテーブルを拡張してもよい。例えば、ルックアップテーブルには、ビットマップとランクとの対応関係を示す情報が含まれていればよく、ビットマップと重複点数との対応関係を示す情報が含まれていなくてもよい。
ビット数取得部5563は、結合数及び重複点数から、ランクのビット数を取得する。なお、ランクの最大数から決定されるランクの所要ビット数(ランクを2進数で表現するために必要とされるビット数)は、結合数及び重複点数から一意に決まる数である。三次元データ符号化装置は、ビット数取得部5563でランクのビット数を示す情報(ランク情報)を生成し、図示しないビット数取得部5563の後段にて算出符号化する。
なお、ビット数取得部5563は、ランクの値が0の場合には、ランク情報を送らないとしてもよい。また、ビット数取得部5563では、ランクが0ではない場合、ランク-1の値を符号化するとしてもよい。或いは、ビット数取得部5563は、ランクが0ではない場合、ランク-1の値をランク情報として出力してもよい。
なお、ルックアップテーブルは、予め三次元データ符号化装置が保持していてもよいし、例えば、ルックアップテーブル参照部5562が所定の計算式を用いて都度算出してもよい。
また、最大の結合数を予め定め、最大の結合数に対応するルックアップテーブルを三次元データ符号化装置と三次元データ復号装置との双方で保持し、結合数が最大より小さい場合でも同一のルックアップテーブルを用いてもよい。
また、三次元データ復号装置は、三次元データ符号化装置が保持するルックアップテーブルに対応するルックアップテーブルを予め保持していてもよい。或いは、三次元データ復号装置は、ビットマップとランクとの対応関係が互いに異なるルックアップテーブルを保持していてもよい。この場合、例えば、三次元データ符号化装置は、ルックアップテーブルの種類に関する付加情報(メタデータ)を送出してもよい。また、この場合、三次元データ復号装置は、付加情報に基づいて復号に用いるルックアップテーブルの種類を判定してもよい。
続いて、フレームインデックスの符号化処理について説明する。
図84は、実施の形態6に係る符号化処理のフローチャートである。
まず、三次元データ符号化装置は、複数のフレームで共通の情報である共通情報(フレーム共通情報)を生成する(S5501)。共通情報は、複数のフレームに共通の情報であり、例えば、オキュパンシー符号、及び、結合数等を含む情報である。
次に、三次元データ符号化装置は、複数のフレーム毎に個別の情報である個別情報(フレーム個別情報)を生成する(S5502)。個別情報は、複数のフレームごとに個別に対応付けられた情報であり、例えば、重複点数、及び、リーフノードにおけるフレームインデックス等を含む情報である。
次に、三次元データ符号化装置は、共通情報と個別情報とを結合し、符号化データを生成する(S5503)。
次に、三次元データ符号化装置は、フレーム結合に係る付加情報を生成し、符号化する(S5504)。
図85は、実施の形態6に係る符号化データの生成処理のフローチャートである。具体的には、図84に示すステップS5502及びステップS5503の詳細を示すフローチャートである。
まず、三次元データ符号化装置は、重複点数及びフレームインデックスを示すビットマップを生成する(S5511)。
次に、三次元データ符号化装置は、予め定められた方法を用いてランクを取得する(S5512)。本実施の形態では、三次元データ符号化装置は、ルックアップテーブルを用いて、ビットマップをランクに変換することで取得する。
次に、三次元データ符号化装置は、符号化する必要があるランクのビット数を取得する(S5513)。
次に、三次元データ符号化装置は、オキュパンシー符号、結合数、重複点数、及び、ランクを符号化する(S5514)。つまり、三次元データ符号化装置は、符号化したオキュパンシー符号、結合数、重複点数、及び、ランクを含む符号化データを生成する。
図86は、実施の形態6に係る結合情報(結合数を示す情報)のシンタックス例を示す図である。
ランクのビット数は、重複点数と結合数とにより決定される。例えば、結合数が8、つまり、8つのフレームを結合した結合データ(結合三次元データ)の場合に、重複点数が7のとき、ランクのビット数の最大値は、8となる。
三次元データ復号装置では、ランクのビット数を取得するために重複点数が必要である。そのため、三次元データ符号化装置は、重複点数、ランクの順に記述する(データをビットストリームに含める)としてもよい。
続いて、三次元データ復号装置がランクからビットマップを取得するルックアップテーブルについて説明する。
図87は、実施の形態6に係るフレームインデックス取得部5532のブロック図である。
フレームインデックス取得部5532は、個別情報を復号する。
フレームインデックス取得部5532は、ビット数取得部5581と、ランク取得部5582と、ルックアップテーブル参照部5583と、フレーム分割部5584と、を備える。
ビット数取得部5581は、符号化データに含まれる符号化された付加情報から結合数を復号し、さらに、符号化データから、リーフノード毎の重複点数を抽出する。次に、ビット数取得部5581は、結合数及び重複点数から、ランクのビット数を取得する。
なお、ランクの最大数及びランクの所要ビット数は、結合数及び重複点数から一意に決まる数である。また、ビット数取得部5581の処理は、符号化における処理(より具体的には、ビット数取得部5563の処理)を同じである。
ランク取得部5582は、ビット数取得部5581が復号した各種データから、上記で取得したビット数分のランクを取得する。
ルックアップテーブル参照部5583は、リーフノードの重複点数及びランクから所定のルックアップテーブルを用いてビットマップを取得する。
図88は、実施の形態6に係るルックアップテーブル参照部5583が用いるルックアップテーブルの一例を示す図である。
図88に示すルックアップテーブルは、例えば、三次元データ符号化装置が用いたルックアップテーブルに対応するテーブルである。より具体的には、図88に示すルックアップテーブルは、ルックアップテーブル参照部5562が用いたルックアップテーブルと同じルックアップテーブルである。ルックアップテーブル参照部5583は、例えば、図88に示すルックアップテーブルを用いてビットマップから結合三次元データにおける重複する三次元点のフレームインデックスを取得する。
三次元データ復号装置は、このように取得された所望のフレームインデックスのデータを用いて結合三次元データから複数の三次元データを再構成する。
なお、ルックアップテーブルにおけるインデックスの数は、三次元データ符号化装置のルックアップテーブルと三次元データ復号装置のルックアップテーブルとで異なる可能性がある。例えば、三次元データ符号化装置は、1ビットから8ビットまで対応できるように、8つの互いに異なるルックアップテーブルを記憶していてもよい。この場合、三次元データ復号装置は、1ビットから4ビットまで対応できるように、8つの互いに異なるルックアップテーブルを記憶していてもよい。これにより、三次元データ復号装置のルックアップテーブルの数を少なくできる可能性がある。
フレーム分割部5584は、フレームインデックスに基づいて結合データを複数のフレームデータに分割したフレームデータを生成して出力する。
続いて、符号化されたフレームインデックスの復号処理について説明する。
図89は、実施の形態6に係るフレームインデックスの復号処理のフローチャートである。
まず、三次元データ復号装置は、共通情報及び個別情報を復号して取得する(S5521)。
次に、三次元データ復号装置は、単一のフレームを復号するか否かを判定する(S5522)。例えば、三次元データ復号装置は、単一のフレームを復号するか、任意の複数のフレームを復号するかを判定する。
三次元データ復号装置は、単一のフレームを復号すると判定した場合(S5522でYes)、指定されたフレームインデックス(つまり、上記単一のフレームインデックス)に対応付けられた個別情報を抽出し、復号する(S5523)。
一方、三次元データ復号装置は、単一のフレームを復号しない、つまり、複数のフレームを復号すると判定した場合(S5522でNo)、複数のフレームインデックスに対応するそれぞれの個別情報を抽出し、復号する(S5524)。
次に、三次元データ復号装置は、フレームインデックスに基づきデータを分割する(S5525)。つまり、三次元データ復号装置は、複数の三次元データからなる結合三次元データを復号する場合(S5522でNo)、ステップS5525では、結合三次元データをフレームインデックスに基づいて複数のフレームに分割する。
図90は、実施の形態6に係る共通情報及び個別情報の復号処理のフローチャートである。具体的には、図90は、図89に示すステップS5521の詳細を示すフローチャートである。
まず、三次元データ復号装置は、符号化データを復号することで、取得した符号化された結合数及び取得した符号化された重複点数を復号する(S5531)。
次に、三次元データ復号装置は、予め定められた方法を用いてランクのビット数を取得する(S5532)。
次に、三次元データ復号装置は、ランクを取得する(S5533)。
次に、三次元データ復号装置は、予め定められた方法を用いてビットマップを取得する(S5534)。本実施の形態では、三次元データ復号装置は、ルックアップテーブルを用いてランクをビットマップに変換することで、ビットマップを取得する。
次に、三次元データ復号装置は、ビットマップを用いてフレームインデックスを取得する(S5535)。
続いて、重複点数の決定方法について説明する。
リーフノードにおいて、三次元点が重複するケースは、元々1フレームのリーフノードに2以上の三次元点がある場合と、フレーム結合により結合された結合三次元データのリーフノードにフレームインデックスの異なる2以上の三次元点がある場合がある。
フレーム結合を適用する場合の上記の重複点を示す方法及び符号化の制約について説明する。
図91は、実施の形態6に係るリーフノードのシンタックスの第1例を示す図である。具体的には、図91は、1フレーム内の重複点数と、フレーム結合による複数のフレームの重複点数とを同じフィールドを用いて示す場合のシンタックス例である。
三次元データ符号化装置は、リーフノード毎の重複点数を示すフィールドについて、例えば、1とし、「1フレーム内に重複点がない」かつ「2以上のフレーム結合をする場合」、又は、「1フレーム内に重複点がある場合」かつ「フレーム結合をしない場合」に限り、重複点数を算出してもよい。また、例えば、三次元データ符号化装置は、2フレーム以上フレーム結合する場合において、1フレーム内に重複点がある場合は、1フレーム内の重複点は削除し、1つにしてもよい。或いは、例えば、三次元データ符号化装置は、1フレーム内に重複点がある場合は、当該1フレームを用いたフレーム結合をしなくてもよい。
図92は、実施の形態6に係るリーフノードのシンタックスの第2例を示す図である。具体的には、図92は、1フレーム内の重複点と、フレーム結合による複数のフレームの重複点数とを別のフィールドを用いて示す場合のシンタックス例である。
図92に示すように、三次元データ符号化装置は、「フレーム結合をしない」かつ「1フレーム内に重複点がある」場合には、1フレーム内の重複点を示し、「フレーム結合をする」場合には、フレーム結合による重複点を示し、さらに、「1フレーム内に重複点がある」場合には、フレーム毎の重複点数を示してもよい。
図93は、実施の形態6に係る位置情報のシンタックスの第1例を示す図である。
図93に示すように、リーフノードの情報は、フレーム数のループとして、フレーム毎にリーフノードの情報を示すとしてもよい。
続いて、ノード情報について説明する。
Octree分割などのツリー分割において、最下位層のリーフノードまで分割せず、リーフノードの情報の代わりに、分割した深さのノードの情報を示す方法がある。ノード情報としては、例えば、ノードに属する三次元点毎の座標、つまり、ボクセルの位置を直接示す情報がある。この場合、ノード情報は、図94に示すdirectflagによって制御される。
続いて、上記directflagを用いた方法とフレーム結合とを適用する場合のシグナリング方法及び符号化の制約について説明する。
図94は、実施の形態6に係る位置情報のシンタックスの第2例を示す図である。
図94に示すように、三次元データ符号化装置は、フレームの結合数が1より大きい場合、つまり、複数のフレームをフレーム結合する場合には、directflagを0とし、上記方法を適用しなくてもよい。
一方、例えば、三次元データ符号化装置は、フレームの結合数が1の場合は、directflagを1としてもよい。
これにより、三次元データ符号化装置は、フレーム結合の際に、フレームの結合数が1より大きい場合、つまり、複数のフレームをフレーム結合する場合には、directflagを0としてdirectflagを利用した方法を用いないことにより、フレーム結合の効果をさらに向上できる可能性がある。
また、directflag及び結合数は、例えば、GPS(Geometry Parameter Set)に格納される。
以上のように、本実施の形態に係る三次元データ符号化装置は、図95に示す処理を行う。
図95は、実施の形態6に係る符号化処理のフローチャートである。
まず、三次元データ符号化装置は、複数の三次元データ(フレーム)が結合された結合三次元データにおける、単位空間に含まれる三次元点が複数の三次元データのいずれに属するかを示すビットマップを生成する(S5541)。三次元データ符号化装置は、例えば、結合三次元データにおける、リーフノードに含まれる三次元点が複数の三次元データのいずれに属するかを示すビットマップを生成する。
ビットマップは、例えば、結合された複数の三次元データの数の桁数であり、0又は1で表された数列を示す情報(マップ情報)である。例えば、第1三次元データから第8三次元データまでの8つの三次元データが結合された結合三次元データの場合、ビットマップは、8桁である。ビットマップの各桁は、第1三次元データから第8三次元データまでのいずれかに個別に対応付けられている。
例えば、所定の単位空間に第1三次元データに属する三次元点と第2三次元データに属する三次元点とが位置し、第3三次元データから第8三次元データまでのいずれかの三次元データに属する三次元点が当該所定の単位空間に含まれていない場合、三次元データ符号化装置は、「00000011」というビットマップを生成する。
或いは、例えば、所定の単位空間に第1三次元データに属する三次元点と第5三次元データに属する三次元点と第7三次元データに属する三次元点とが位置し、第2三次元データ、第3三次元データ、第4三次元データ、第6三次元データ、及び、第8三次元データまでのいずれかの三次元データに属する三次元点が当該所定の単位空間に含まれていない場合、三次元データ符号化装置は、「01050001」というビットマップを生成する。
なお、三次元データ符号化装置は、ステップS5551を実行する前に、複数の三次元データを結合した結合三次元データを生成してもよい。三次元データ符号化装置が結合する三次元データの数は、特に限定されない。
次に、三次元データ符号化装置は、ビットマップを用いて変換符号を生成する(S5542)。変換符号は、上記したランクを示す値である。三次元データ符号化装置は、例えば、ルックアップテーブルを用いて、ビットマップからランクを生成する。
ルックアップテーブルは、ビットマップの値と変換符号との対応関係を示すテーブルである。ビットマップの値の各々と、変換符号及び単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。例えば、図83に示すように、三次元データ符号化装置は、ビットマップが「00000001」である場合、ランク(つまり、変換符号)を0として生成する。また、ルックアップテーブルにおいて、ランクが0であり、且つ、単位空間に含まれる三次元点の数(図83に示す重複点数)が1である組み合わせに対応するビットマップは、「00000001」である。このように、ルックアップテーブルにおいて、ランクと単位空間に含まれる三次元点の数と組み合わせに対応するビットマップは、1つ存在する。例えば、ルックアップテーブルでは、ビットマップの値の各々と、変換符号及び単位空間に含まれる三次元点の数の組み合わせの各々とは、1体1で対応している。
次に、三次元データ符号化装置は、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを含む符号化データを生成する(S5543)。なお、本実施の形態では、ビットマップの生成及び変換符号の生成を符号化ともいう。
また、上記した通り、ビットマップの値の各々と、変換符号及び単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、例えば、ルックアップテーブルを用いるなどしてビットマップをランクに変換するために、符号化データにビットマップの値をそのまま含める場合と比較して、符号化データのデータ量を削減できる。
また、例えば、符号化データは、三次元点の位置情報と属性情報とを含み、変換符号情報と重複点情報とは、位置情報に含まれる。三次元データ符号化装置は、位置情報を含む位置情報ビットストリームと、属性情報を含む属性情報ビットストリームとをビットストリームとして生成する。変換符号情報と、重複点情報とは、位置情報ビットストリームに含まれる。
また、例えば、符号化データは、さらに、結合三次元データにおいて結合されている複数の三次元データの数を示すデータ数情報を含む。
また、例えば、変換符号は、0又は正の整数である。三次元データ符号化装置は、例えば、変換符号が0でない場合には、変換符号から1を引いた数である変換符号情報を含む符号化データを生成する。一方、三次元データ符号化装置は、例えば、変換符号が0の場合には、変換符号情報を含まない符号化データを生成する。
これによれば、変換符号が0の場合には、符号化データに変換符号を含めないため、符号化データのデータ量をさらに削減できる。
また、例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
また、本実施の形態に係る三次元データ復号装置は、図96に示す処理を行う。
図96は、実施の形態6に係る復号処理のフローチャートである。
まず、三次元データ復号装置は、符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得する(S5551)。例えば、三次元データ復号装置は、符号化データを含むビットストリームを取得し、取得したビットストリームに含まれる符号化データを復号する。
次に、三次元データ復号装置は、重複点情報と、変換符号情報とを用いて、単位空間に含まれる三次元点が複数の三次元データのいずれに属するかを示すビットマップを生成する(S5552)。
次に、三次元データ復号装置は、ビットマップを用いて、単位空間に含まれる三次元点が複数の三次元データのいずれに属するかを判定する(S5553)。つまり、三次元データ復号装置は、ビットマップから上記したフレームインデックスを取得する。
例えば、次に、三次元データ復号装置は、取得したフレームインデックスを用いて、結合三次元データを複数の三次元データに分割する。
また、上記した通り、ビットマップの値の各々と、変換符号及び単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している。
これによれば、例えば、ルックアップテーブルなどを用いてランクからビットマップを生成して、生成したビットマップからフレームインデックスを取得できる。つまり、単位空間含まれる三次元点の数と変換符号とから、複数の三次元データと結合三次元データにおける三次元点との対応関係を示すビットマップを適切に取得できる。また、ビットマップよりデータ量が少ないランクを用いて、結合三次元データに含まれる複数の三次元データを分割できる。これにより、符号化データのデータ量を削減しつつ、且つ、適切に結合三次元データを結合前の複数の三次元データに分割できる。
また、例えば、符号化データは、三次元点の位置情報と属性情報とを含み、変換符号情報と重複点情報とは、位置情報に含まれる。
また、例えば、符号化データは、さらに、結合三次元データにおいて結合されている複数の三次元データの数を示すデータ数情報を含む。
また、例えば、変換符号は、0又は正の整数である。三次元データ復号装置は、例えば、符号化データに変換符号情報が含まれている場合には、変換符号情報に1を足した数を変換符号として取得する。一方、三次元データ復号装置は、例えば、符号化データに変換符号情報が含まれていない場合には、0を変換符号として取得する。
また、例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、本開示は、三次元データ符号化装置及び三次元データ復号装置等により実行される三次元データ符号化方法又は三次元データ復号方法等として実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る三次元データ符号化装置及び三次元データ復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
本開示は、三次元データ符号化装置及び三次元データ復号装置に適用できる。
4601 三次元データ符号化システム
4602 三次元データ復号システム
4603 センサ端末
4604 外部接続部
4611 点群データ生成システム
4612 提示部
4613 符号化部
4614 多重化部
4615 入出力部
4616 制御部
4617 センサ情報取得部
4618 点群データ生成部
4621 センサ情報取得部
4622 入出力部
4623 逆多重化部
4624 復号部
4625 提示部
4626 ユーザインタフェース
4627 制御部
4630 第1の符号化部
4631 位置情報符号化部
4632 属性情報符号化部
4633 付加情報符号化部
4634 多重化部
4640 第1の復号部
4641 逆多重化部
4642 位置情報復号部
4643 属性情報復号部
4644 付加情報復号部
4650 第2の符号化部
4651 付加情報生成部
4652 位置画像生成部
4653 属性画像生成部
4654 映像符号化部
4655 付加情報符号化部
4656 多重化部
4660 第2の復号部
4661 逆多重化部
4662 映像復号部
4663 付加情報復号部
4664 位置情報生成部
4665 属性情報生成部
4801 符号化部
4802 多重化部
4910 第1の符号化部
4911 分割部
4912 位置情報符号化部
4913 属性情報符号化部
4914 付加情報符号化部
4915 多重化部
4920 第1の復号部
4921 逆多重化部
4922 位置情報復号部
4923 属性情報復号部
4924 付加情報復号部
4925 結合部
4931 スライス分割部
4932 位置情報タイル分割部
4933 属性情報タイル分割部
4941 位置情報タイル結合部
4942 属性情報タイル結合部
4943 スライス結合部
5410 符号化部
5411 分割部
5412 位置情報符号化部
5413 属性情報符号化部
5414 付加情報符号化部
5415 多重化部
5421 タイル分割部
5422 スライス分割部
5431、5441 フレームインデックス生成部
5432、5442 エントロピー符号化部
5450 復号部
5451 逆多重化部
5452 位置情報復号部
5453 属性情報復号部
5454 付加情報復号部
5455 結合部
5461、5471 エントロピー復号部
5462、5472 フレームインデックス取得部
5510 位置情報符号化部
5511、5521 フレームインデックス生成部
5512、5522 エントロピー符号化部
5520 属性情報符号化部
5530 位置情報復号部
5531、5541 エントロピー復号部
5532、5542 フレームインデックス取得部
5540 属性情報復号部
5550 フレーム結合部
5560 フレームインデックス符号化部
5561 ビットマップ生成部
5562、5583 ルックアップテーブル参照部
5563、5581 ビット数取得部
5570 結合データ生成部
5582 ランク取得部
5584 フレーム分割部
4602 三次元データ復号システム
4603 センサ端末
4604 外部接続部
4611 点群データ生成システム
4612 提示部
4613 符号化部
4614 多重化部
4615 入出力部
4616 制御部
4617 センサ情報取得部
4618 点群データ生成部
4621 センサ情報取得部
4622 入出力部
4623 逆多重化部
4624 復号部
4625 提示部
4626 ユーザインタフェース
4627 制御部
4630 第1の符号化部
4631 位置情報符号化部
4632 属性情報符号化部
4633 付加情報符号化部
4634 多重化部
4640 第1の復号部
4641 逆多重化部
4642 位置情報復号部
4643 属性情報復号部
4644 付加情報復号部
4650 第2の符号化部
4651 付加情報生成部
4652 位置画像生成部
4653 属性画像生成部
4654 映像符号化部
4655 付加情報符号化部
4656 多重化部
4660 第2の復号部
4661 逆多重化部
4662 映像復号部
4663 付加情報復号部
4664 位置情報生成部
4665 属性情報生成部
4801 符号化部
4802 多重化部
4910 第1の符号化部
4911 分割部
4912 位置情報符号化部
4913 属性情報符号化部
4914 付加情報符号化部
4915 多重化部
4920 第1の復号部
4921 逆多重化部
4922 位置情報復号部
4923 属性情報復号部
4924 付加情報復号部
4925 結合部
4931 スライス分割部
4932 位置情報タイル分割部
4933 属性情報タイル分割部
4941 位置情報タイル結合部
4942 属性情報タイル結合部
4943 スライス結合部
5410 符号化部
5411 分割部
5412 位置情報符号化部
5413 属性情報符号化部
5414 付加情報符号化部
5415 多重化部
5421 タイル分割部
5422 スライス分割部
5431、5441 フレームインデックス生成部
5432、5442 エントロピー符号化部
5450 復号部
5451 逆多重化部
5452 位置情報復号部
5453 属性情報復号部
5454 付加情報復号部
5455 結合部
5461、5471 エントロピー復号部
5462、5472 フレームインデックス取得部
5510 位置情報符号化部
5511、5521 フレームインデックス生成部
5512、5522 エントロピー符号化部
5520 属性情報符号化部
5530 位置情報復号部
5531、5541 エントロピー復号部
5532、5542 フレームインデックス取得部
5540 属性情報復号部
5550 フレーム結合部
5560 フレームインデックス符号化部
5561 ビットマップ生成部
5562、5583 ルックアップテーブル参照部
5563、5581 ビット数取得部
5570 結合データ生成部
5582 ランク取得部
5584 フレーム分割部
Claims (10)
- 複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、
前記ビットマップを用いて変換符号を生成し、
前記単位空間に含まれる三次元点の数を示す重複点情報と、前記変換符号を示す変換符号情報とを含む符号化データを生成し、
前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している
三次元データ符号化方法。 - 前記符号化データは、前記三次元点の位置情報と属性情報とを含み、前記変換符号情報と前記重複点情報とは、前記位置情報に含まれる
請求項1に記載の三次元データ符号化方法。 - 前記符号化データは、さらに、前記結合三次元データにおいて結合されている前記複数の三次元データの数を示すデータ数情報を含む
請求項1又は2に記載の三次元データ符号化方法。 - 前記変換符号は、0又は正の整数であり、
前記変換符号が0でない場合には、前記変換符号から1を引いた数である前記変換符号情報を含む前記符号化データを生成し、
前記変換符号が0の場合には、前記変換符号情報を含まない前記符号化データを生成する
請求項1~3のいずれか1項に記載の三次元データ符号化方法。 - 符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得し、
前記重複点情報と、前記変換符号情報とを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、
前記ビットマップを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを判定し、
前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している
三次元データ復号方法。 - 前記符号化データは、前記三次元点の位置情報と属性情報とを含み、前記変換符号情報と前記重複点情報とは、前記位置情報に含まれる
請求項5に記載の三次元データ復号方法。 - 前記符号化データは、さらに、前記結合三次元データにおいて結合されている前記複数の三次元データの数を示すデータ数情報を含む
請求項5又は6に記載の三次元データ復号方法。 - 前記変換符号は、0又は正の整数であり、
前記符号化データに前記変換符号情報が含まれている場合には、前記変換符号情報に1を足した数を前記変換符号として取得し、
前記符号化データに前記変換符号情報が含まれていない場合には、0を前記変換符号として取得する
請求項5~7のいずれか1項に記載の三次元データ復号方法。 - プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
複数の三次元データが結合された結合三次元データにおける、単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、
前記ビットマップを用いて変換符号を生成し、
前記単位空間に含まれる三次元点の数を示す重複点情報と、前記変換符号を示す変換符号情報とを含む符号化データを生成し、
前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している
三次元データ符号化装置。 - プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
符号化データを復号することで、複数の三次元データが結合されることで生成された結合三次元データにおける、単位空間に含まれる三次元点の数を示す重複点情報と、変換符号を示す変換符号情報とを取得し、
前記重複点情報と、前記変換符号情報とを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを示すビットマップを生成し、
前記ビットマップを用いて、前記単位空間に含まれる三次元点が前記複数の三次元データのいずれに属するかを判定し、
前記ビットマップの値の各々と、前記変換符号及び前記単位空間に含まれる三次元点の数の組み合わせの各々とは、対応している
三次元データ復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/154,406 US11423581B2 (en) | 2018-10-02 | 2021-01-21 | 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 |
---|---|---|---|
US201862740091P | 2018-10-02 | 2018-10-02 | |
US62/740,091 | 2018-10-02 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/154,406 Continuation US11423581B2 (en) | 2018-10-02 | 2021-01-21 | 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 |
---|---|
WO2020071416A1 true WO2020071416A1 (ja) | 2020-04-09 |
Family
ID=70055623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/038883 WO2020071416A1 (ja) | 2018-10-02 | 2019-10-02 | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11423581B2 (ja) |
WO (1) | WO2020071416A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
US10867414B2 (en) | 2018-04-10 | 2020-12-15 | Apple Inc. | Point cloud attribute transfer algorithm |
US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
US11711544B2 (en) | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
WO2021002592A1 (ko) * | 2019-07-03 | 2021-01-07 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
US11625866B2 (en) | 2020-01-09 | 2023-04-11 | Apple Inc. | Geometry encoding using octrees and predictive trees |
US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
GB2623524A (en) * | 2022-10-17 | 2024-04-24 | Canon Kk | Method, device, and computer program for improving transmission and/or storage of point cloud data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11215496A (ja) * | 1998-01-29 | 1999-08-06 | Fujitsu Ltd | 3次元データ圧縮装置、3次元データ復元装置および記録媒体 |
JP2007004578A (ja) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | 三次元形状取得方法、三次元形状取得装置、及びプログラムの記録媒体 |
JP2014115904A (ja) * | 2012-12-11 | 2014-06-26 | Toyota Central R&D Labs Inc | 交差点道路境界検出装置及びプログラム |
WO2016157428A1 (ja) * | 2015-03-31 | 2016-10-06 | パイオニア株式会社 | 計測装置、計測方法、及び、プログラム |
JP2017050731A (ja) * | 2015-09-02 | 2017-03-09 | 日本電信電話株式会社 | 動画像フレーム補間装置、動画像フレーム補間方法及び動画像フレーム補間プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5762637B2 (ja) | 2012-07-30 | 2015-08-12 | 三菱電機株式会社 | 地図表示装置 |
US10861196B2 (en) * | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
US10796458B2 (en) * | 2018-04-23 | 2020-10-06 | Qualcomm Incorporated | Compression of point clouds via a novel hybrid coder |
-
2019
- 2019-10-02 WO PCT/JP2019/038883 patent/WO2020071416A1/ja active Application Filing
-
2021
- 2021-01-21 US US17/154,406 patent/US11423581B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11215496A (ja) * | 1998-01-29 | 1999-08-06 | Fujitsu Ltd | 3次元データ圧縮装置、3次元データ復元装置および記録媒体 |
JP2007004578A (ja) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | 三次元形状取得方法、三次元形状取得装置、及びプログラムの記録媒体 |
JP2014115904A (ja) * | 2012-12-11 | 2014-06-26 | Toyota Central R&D Labs Inc | 交差点道路境界検出装置及びプログラム |
WO2016157428A1 (ja) * | 2015-03-31 | 2016-10-06 | パイオニア株式会社 | 計測装置、計測方法、及び、プログラム |
JP2017050731A (ja) * | 2015-09-02 | 2017-03-09 | 日本電信電話株式会社 | 動画像フレーム補間装置、動画像フレーム補間方法及び動画像フレーム補間プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20210166432A1 (en) | 2021-06-03 |
US11423581B2 (en) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020071416A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
JP7401454B2 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
WO2020075780A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
WO2020116563A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
WO2020075781A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
WO2020059826A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
KR102662068B1 (ko) | 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치 | |
WO2020032248A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
US11936919B2 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
WO2020032136A1 (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: 19868925 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: 19868925 Country of ref document: EP Kind code of ref document: A1 |