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

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

Info

Publication number
WO2020045590A1
WO2020045590A1 PCT/JP2019/034002 JP2019034002W WO2020045590A1 WO 2020045590 A1 WO2020045590 A1 WO 2020045590A1 JP 2019034002 W JP2019034002 W JP 2019034002W WO 2020045590 A1 WO2020045590 A1 WO 2020045590A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
unit
encoding
dimensional data
Prior art date
Application number
PCT/JP2019/034002
Other languages
English (en)
French (fr)
Inventor
チー ワン
ポンサク ラサン
チャン ディーン ハン
賀敬 井口
敏康 杉尾
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to EP19853574.2A priority Critical patent/EP3846133A4/en
Priority to JP2020539600A priority patent/JP7463278B2/ja
Priority to CN201980055810.8A priority patent/CN112639884A/zh
Publication of WO2020045590A1 publication Critical patent/WO2020045590A1/ja
Priority to US17/154,589 priority patent/US20210168392A1/en
Priority to JP2024050915A priority patent/JP2024083380A/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

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.
  • the spread of devices or services utilizing three-dimensional data is expected 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 improve encoding efficiency.
  • the three-dimensional data encoding method generates a plurality of pieces of encoded data by encoding a plurality of sub-spaces obtained by dividing a target space including a plurality of three-dimensional points, A bit stream including encoded data and first information indicating a shape of the plurality of subspaces is generated.
  • the three-dimensional data decoding method includes a plurality of codes generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points included in a bitstream. Decoding the decoded data to restore the plurality of subspaces, and combining the plurality of subspaces using first information included in the bit stream and indicating a shape of the plurality of subspaces, thereby Restore 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 improve encoding efficiency.
  • 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 block diagram of an encoding unit according to Embodiment 1.
  • FIG. 15 is a block diagram of a decoding unit according to Embodiment 1.
  • FIG. 15 is a block diagram of a decoding unit according to Embodiment 1.
  • FIG. 16 is a flowchart of the encoding process according to Embodiment 1.
  • FIG. 17 is a flowchart of the decoding process according to Embodiment 1.
  • FIG. 18 is a diagram illustrating a basic structure of the ISOBMFF according to the second embodiment.
  • FIG. 19 is a diagram illustrating a protocol stack according to the second embodiment.
  • FIG. 20 is a diagram illustrating an example in which the NAL unit according to the second embodiment is stored in a file for codec 1.
  • FIG. 21 is a diagram illustrating an example in which the NAL unit according to the second embodiment is stored in a file for codec 2.
  • FIG. 22 is a diagram illustrating a configuration of a first multiplexing unit according to Embodiment 2.
  • FIG. 22 is a diagram illustrating a configuration of a first multiplexing unit according to Embodiment 2.
  • FIG. 23 is a diagram illustrating a configuration of a first demultiplexing unit according to Embodiment 2.
  • FIG. 24 is a diagram illustrating a configuration of a second multiplexing unit according to Embodiment 2.
  • FIG. 25 is a diagram illustrating a configuration of a second demultiplexing unit according to Embodiment 2.
  • FIG. 26 is a flowchart of a process performed by the first multiplexing unit according to Embodiment 2.
  • FIG. 27 is a flowchart of processing by the second multiplexing unit according to Embodiment 2.
  • FIG. 28 is a flowchart of a process performed by the first demultiplexing unit and the first decoding unit according to Embodiment 2.
  • FIG. 29 is a flowchart of a process performed by the second demultiplexing unit and the second decoding unit according to Embodiment 2.
  • FIG. 30 is a diagram illustrating configurations of an encoding unit and a third multiplexing unit according to Embodiment 3.
  • FIG. 31 is a diagram illustrating a configuration of a third demultiplexing unit and a decoding unit according to Embodiment 3.
  • FIG. 32 is a flowchart of processing by the third multiplexing unit according to Embodiment 3.
  • FIG. 33 is a flowchart of a process performed by the third demultiplexing unit and the decoding unit according to Embodiment 3.
  • FIG. 34 is a flowchart of a process performed by the three-dimensional data storage device according to the third embodiment.
  • FIG. 30 is a diagram illustrating configurations of an encoding unit and a third multiplexing unit according to Embodiment 3.
  • FIG. 31 is a diagram illustrating a configuration of a third demultiplexing
  • FIG. 35 is a flowchart of a process performed by the three-dimensional data acquisition device according to the third embodiment.
  • FIG. 36 is a diagram illustrating configurations of an encoding unit and a multiplexing unit according to Embodiment 4.
  • FIG. 37 is a diagram illustrating a configuration example of encoded data according to Embodiment 4.
  • FIG. 38 is a diagram illustrating a configuration example of encoded data and a NAL unit according to Embodiment 4.
  • FIG. 39 is a diagram illustrating an example of semantics of pcc_nal_unit_type according to the fourth embodiment.
  • FIG. 40 is a diagram illustrating an example of a transmission order of NAL units according to Embodiment 4.
  • FIG. 40 is a diagram illustrating an example of a transmission order of NAL units according to Embodiment 4.
  • FIG. 41 is a flowchart of a process performed by the three-dimensional data encoding device according to the fourth embodiment.
  • FIG. 42 is a flowchart of a process performed by the three-dimensional data decoding device according to the fourth embodiment.
  • FIG. 43 is a flowchart of the multiplexing process according to the fourth embodiment.
  • FIG. 44 is a flowchart of the demultiplexing process according to Embodiment 4.
  • FIG. 45 is a flowchart of a process performed by the three-dimensional data encoding device according to Embodiment 4.
  • FIG. 46 is a flowchart of a process performed by the three-dimensional data decoding device according to the fourth embodiment.
  • FIG. 47 is a diagram illustrating a division example of slices and tiles according to the fifth embodiment.
  • FIG. 48 is a diagram illustrating an example of a division pattern of slices and tiles according to the fifth embodiment.
  • FIG. 49 is a block diagram of a first encoding unit according to Embodiment 6.
  • FIG. 50 is a block diagram of a first decoding unit according to Embodiment 6.
  • FIG. 51 is a diagram illustrating an example of a tile shape according to the sixth embodiment.
  • FIG. 52 is a diagram illustrating an example of tiles and slices according to Embodiment 6.
  • FIG. 53 is a block diagram of a dividing unit according to the sixth embodiment.
  • FIG. 54 is a diagram illustrating an example of a map in which the point cloud data according to Embodiment 6 is viewed from above.
  • FIG. 55 is a diagram illustrating an example of tile division according to the sixth embodiment.
  • FIG. 56 is a diagram illustrating an example of tile division according to Embodiment 6.
  • FIG. 57 is a diagram illustrating an example of tile division according to Embodiment 6.
  • FIG. 58 is a diagram illustrating an example of tile data stored in the server according to the sixth embodiment.
  • FIG. 59 is a diagram showing a system related to tile division according to the sixth embodiment.
  • FIG. 60 is a diagram illustrating an example of slice division according to the sixth embodiment.
  • FIG. 61 is a diagram illustrating an example of a dependency relationship according to the sixth embodiment.
  • FIG. 62 is a diagram illustrating an example of a decoding order of data according to Embodiment 6.
  • FIG. 63 is a diagram illustrating an example of encoded data of a tile according to Embodiment 6.
  • FIG. 64 is a block diagram of a coupling unit according to the sixth embodiment.
  • FIG. 65 is a diagram illustrating a configuration example of encoded data and a NAL unit according to Embodiment 6.
  • FIG. 66 is a flowchart of the encoding process according to Embodiment 6.
  • FIG. 67 is a flowchart of a decoding process according to Embodiment 6.
  • FIG. 68 is a diagram illustrating a syntax example of tile additional information according to Embodiment 6.
  • FIG. 69 is a block diagram of an encoding / decoding system according to Embodiment 6.
  • FIG. 70 is a diagram illustrating an example of syntax of slice additional information according to Embodiment 6.
  • FIG. 71 is a flowchart of the encoding process according to Embodiment 6.
  • FIG. 72 is a flowchart of a decoding process according to Embodiment 6.
  • FIG. 73 is a flowchart of the encoding process according to Embodiment 6.
  • FIG. 74 is a flowchart of a decoding process according to Embodiment 6.
  • the three-dimensional data encoding method generates a plurality of pieces of encoded data by encoding a plurality of sub-spaces obtained by dividing a target space including a plurality of three-dimensional points, A bit stream including encoded data and first information indicating a shape of the plurality of subspaces is generated.
  • an arbitrary shape can be selected from a plurality of types of subspace shapes, so that encoding efficiency can be improved.
  • the shape may be a two-dimensional shape or a three-dimensional shape of the plurality of sub-spaces.
  • the shape may be a rectangle or a circle.
  • the bit stream may include second information indicating whether the plurality of sub-sections overlap.
  • the subspace can be generated without complicating the shape of the subspace.
  • the bit stream may include third information indicating whether the method of dividing the plurality of sub-sections is a division method using a top view.
  • the bit stream may include fourth information indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-sections.
  • the bit stream may include fifth information indicating a position of each of the plurality of sub-intervals.
  • the bit stream may include sixth information indicating the number of the plurality of sub-sections.
  • the bit stream may include seventh information indicating an interval between the plurality of sub-intervals.
  • the three-dimensional data decoding method includes a plurality of codes generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points included in a bitstream. Decoding the decoded data to restore the plurality of subspaces, and combining the plurality of subspaces using first information included in the bit stream and indicating a shape of the plurality of subspaces, thereby Restore space.
  • the three-dimensional data decoding method can decode a bit stream with improved encoding efficiency generated by selecting an arbitrary shape from a plurality of types of sub-space shapes.
  • the shape may be a two-dimensional shape or a three-dimensional shape of the plurality of sub-spaces.
  • the shape may be a rectangle or a circle.
  • the bit stream includes second information indicating whether or not the plurality of sub-intervals overlap, and in restoring the target space, the plurality of sub-spaces are combined by further using the second information. Is also good.
  • the bit stream includes third information indicating whether the division method of the plurality of sub-intervals is a division method using a top view.
  • the division method of the plurality of sub-intervals is In a case where it is indicated that the division method is based on visual observation, the plurality of subspaces may be combined using the first information.
  • the bit stream includes fourth information indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-intervals.
  • the bit stream further includes the fourth information.
  • a plurality of subspaces may be combined.
  • the bit stream may include fifth information indicating a position of each of the plurality of sub-intervals, and in restoring the target space, the plurality of sub-spaces may be combined using the fifth information. .
  • the bit stream may include sixth information indicating the number of the plurality of sub-intervals, and in restoring the target space, the plurality of sub-spaces may be combined using the sixth information.
  • the bit stream may include seventh information indicating an interval between the plurality of sub-intervals, and in restoring the target space, the plurality of sub-spaces may be combined using the seventh information.
  • a three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to divide a target space including a plurality of three-dimensional points into a plurality of divided target spaces.
  • a plurality of encoded data is generated by encoding the subspace, and a bit stream including the plurality of encoded data and first information indicating a shape of the plurality of subspaces is generated.
  • the three-dimensional data encoding device can select an arbitrary shape from a plurality of types of subspace shapes, thereby improving the encoding efficiency.
  • a three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to include a target space including a plurality of three-dimensional points included in a bit stream.
  • the sub-spaces are restored by decoding a plurality of encoded data generated by encoding a plurality of sub-spaces obtained by dividing the sub-spaces, and included in the bit stream.
  • the target space is reconstructed by combining the plurality of subspaces using the first information indicating.
  • the three-dimensional data decoding device can decode a bit stream having an improved encoding efficiency generated by selecting an arbitrary shape from a plurality of types of sub-space shapes.
  • 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.
  • one format NAL unit is defined for one codec.
  • PCC codec two codecs of a first encoding method and a second encoding method
  • an encoding unit 4670 having both functions of the above-described first encoding unit 4630 and second encoding unit 4650, and both functions of the first decoding unit 4640 and the second decoding unit 4660 are used.
  • the decoding unit 4680 provided will be described.
  • FIG. 14 is a block diagram of encoding section 4670 according to the present embodiment.
  • This encoding section 4670 includes the above-described first encoding section 4630 and second encoding section 4650, and multiplexing section 4671.
  • Multiplexing section 4671 multiplexes the encoded data generated by first encoding section 4630 and the encoded data generated by second encoding section 4650, and outputs the resulting encoded data.
  • FIG. 15 is a block diagram of decoding section 4680 according to the present embodiment.
  • This decoding section 4680 includes the above-described first decoding section 4640 and second decoding section 4660, and demultiplexing section 4681.
  • the demultiplexing unit 4681 extracts, from the input encoded data, encoded data using the first encoding method and encoded data using the second encoding method.
  • the demultiplexing unit 4681 outputs the encoded data using the first encoding method to the first decoding unit 4640, and outputs the encoded data using the second encoding method to the second decoding unit 4640. Output to decoding section 4660.
  • the encoding unit 4670 can encode the point cloud data by selectively using the first encoding method and the second encoding method.
  • the decoding unit 4680 is configured to encode the encoded data using the first encoding method, the encoded data encoded using the second encoding method, and the first encoding method. Encoded data encoded using both the second encoding method and the second encoding method can be decoded.
  • the encoding unit 4670 may switch the encoding method (the first encoding method and the second encoding method) in units of point cloud data or in units of frames. Further, encoding section 4670 may switch the encoding method in units that can be encoded.
  • the coding unit 4670 generates, for example, coded data (coded stream) including PCC codec identification information.
  • the demultiplexing unit 4681 included in the decoding unit 4680 identifies data using, for example, PCC codec identification information.
  • the demultiplexing unit 4681 outputs the data to the first decoding unit 4640, and outputs the data to the second encoding method.
  • the data is output to the second decoding unit 4660.
  • the encoding unit 4670 may transmit, as control information, information indicating whether both encoding methods are used or whether one of the encoding methods is used, in addition to the identification information of the PCC codec.
  • FIG. 16 is a flowchart of the encoding process according to the present embodiment.
  • the encoding unit 4670 encodes the PCC data using one or both codecs of the first encoding method and the second encoding method (S4681).
  • the encoding unit 4670 When the used codec is the second encoding method (the second encoding method in S4682), the encoding unit 4670 replaces the pcc_codec_type included in the NAL unit header with the data included in the payload of the NAL unit in the second. The value is set to a value indicating that the data is encoded by the encoding method (S4683). Next, the encoding unit 4670 sets the identifier of the NAL unit for the second encoding method to pcc_nal_unit_type of the NAL unit header (S4684). Then, encoding section 4670 has a set NAL unit header, and generates a NAL unit including encoded data in the payload. Then, encoding section 4670 transmits the generated NAL unit (S4685).
  • the encoding unit 4670 replaces the pcc_codec_type included in the NAL unit header with the data included in the payload of the NAL unit.
  • the value is set to a value indicating that the data is encoded by the encoding method 1 (S4686).
  • the encoding unit 4670 sets the identifier of the NAL unit for the first encoding method to pcc_nal_unit_type included in the NAL unit header (S4687).
  • encoding section 4670 has a set NAL unit header, and generates a NAL unit including encoded data in the payload. Then, encoding section 4670 transmits the generated NAL unit (S4685).
  • FIG. 17 is a flowchart of the decoding process according to the present embodiment.
  • the decoding unit 4680 receives the NAL unit (S4691).
  • this NAL unit is generated by the above-described processing in the encoding unit 4670.
  • the decoding unit 4680 determines whether pcc_codec_type included in the NAL unit header indicates the first coding method or the second coding method (S4692).
  • decoding section 4680 When pcc_codec_type indicates the second encoding method (the second encoding method in S4692), decoding section 4680 has data included in the payload of the NAL unit encoded by the second encoding method. Is determined (S4693). Then, the second decoding unit 4660 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the second encoding method (S4694). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the second encoding method (S4695).
  • decoding section 4680 determines that the data included in the payload of the NAL unit is the data encoded by the first encoding method. Is determined (S4696). Then, the decoding unit 4680 identifies the data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the first encoding method (S4697). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the first encoding method (S4698).
  • the three-dimensional data encoding device generates an encoded stream by encoding three-dimensional data (for example, point cloud data), and generates control information ( For example, information (for example, codec identification information) indicating the encoding method used for the encoding among the first encoding method and the second encoding method is stored in the parameter set.
  • control information For example, information (for example, codec identification information) indicating the encoding method used for the encoding among the first encoding method and the second encoding method is stored in the parameter set.
  • the three-dimensional data decoding device uses the information stored in the control information to perform the encoding used for the encoding.
  • the method can be determined. Therefore, the three-dimensional data decoding device can correctly decode the encoded stream even when a plurality of encoding methods are used.
  • the three-dimensional data includes position information.
  • the three-dimensional data encoding device encodes the position information in the encoding.
  • the three-dimensional data encoding device in the storing, indicates, in the control information of the position information, an encoding method used for encoding the position information among the first encoding method and the second encoding method. Stores information.
  • the three-dimensional data includes position information and attribute information.
  • the three-dimensional data encoding device encodes the position information and the attribute information.
  • the three-dimensional data encoding device in the storing, indicates, in the control information of the position information, an encoding method used for encoding the position information among the first encoding method and the second encoding method.
  • Information is stored, and information indicating the encoding method used for encoding the attribute information, out of the first encoding method and the second encoding method, is stored in the control information of the attribute information.
  • the three-dimensional data encoding method further stores the encoded stream in one or more units (for example, NAL units).
  • the unit has a format common to the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition independent of the second encoding method (for example, pcc_nal_unit_type).
  • the unit has an independent format for the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition independent of the second encoding method (for example, codec1_nal_unit_type or codec2_nal_unit_type).
  • the unit has a format common to the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition common to the second encoding method (for example, pcc_nal_unit_type).
  • 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 includes a first encoding method and a first encoding method included in control information (for example, a parameter set) of an encoded stream generated by encoding three-dimensional data.
  • control information for example, a parameter set
  • the encoding method used for encoding the encoded stream is determined based on information (eg, codec identification information) indicating the encoding method used for encoding the three-dimensional data. Then, the coded stream is decoded using the determined coding method.
  • the three-dimensional data decoding device when decoding the encoded stream, can determine the encoding method used for encoding using the information stored in the control information. Therefore, the three-dimensional data decoding device can correctly decode the encoded stream even when a plurality of encoding methods are used.
  • the three-dimensional data includes position information
  • the encoded stream includes encoded data of the position information.
  • the three-dimensional data decoding apparatus may include, among the first encoding method and the second encoding method, encoding of the position information included in control information of the position information included in the encoded stream.
  • the encoding method used for encoding the position information is determined based on the information indicating the encoding method used for (1).
  • the three-dimensional data decoding device decodes the encoded data of the position information using an encoding method used for encoding the determined position information.
  • the three-dimensional data includes position information and attribute information
  • the encoded stream includes encoded data of the position information and encoded data of the attribute information.
  • the three-dimensional data decoding apparatus may include, among the first encoding method and the second encoding method, encoding of the position information included in control information of the position information included in the encoded stream. Determining the encoding method used for encoding the position information based on information indicating the encoding method used for the first method, and determining the first method included in the control information of the attribute information included in the encoded stream.
  • the encoding method used for encoding the attribute information is determined based on information indicating the encoding method used for encoding the attribute information.
  • the three-dimensional data decoding apparatus decodes the encoded data of the position information using the encoding method used for encoding the determined position information, and uses the encoded data of the determined attribute information for encoding.
  • the encoded data of the attribute information is decoded by using the obtained encoding method.
  • the encoded stream is stored in one or more units (for example, NAL units), and the three-dimensional data decoding device further acquires the encoded stream from the one or more units.
  • units for example, NAL units
  • the unit has a format common to the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition independent of the second encoding method (for example, pcc_nal_unit_type).
  • the unit has an independent format for the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition independent of the second encoding method (for example, codec1_nal_unit_type or codec2_nal_unit_type).
  • the unit has a format common to the first encoding method and the second encoding method, and is information indicating a type of data included in the unit.
  • the information includes information having a definition common to the second encoding method (for example, pcc_nal_unit_type).
  • the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
  • ISOBMFF ISO based media file format
  • ISOBMFF defines 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. 18 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. 19 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, a plurality of PCC codecs are stored in the NAL unit. Therefore, it is desirable to define a storage method (Carrier of codec1, Carrier of codec2) corresponding to each codec.
  • FIG. 20 is a diagram illustrating an example in which a common PCC @ NAL unit is stored in an ISOBMFF file according to the storage method of the codec 1 (Carriage of Codec 1).
  • FIG. 21 is a diagram illustrating an example in which a common PCC @ NAL unit is stored in an ISOBMFF file according to a storage method of the codec 2 (Carriage of Codec2).
  • ftyp is important information for identifying a file format, and a different identifier is defined for each codec for ftyp.
  • ftyp pcc1
  • pcc1 indicates that Codec 1 (first encoding method) of PCC is used.
  • pcc2 indicates that Codec 2 (second encoding method) of PCC is used. That is, pcc1 and pcc2 indicate that the data is PCC (code data of three-dimensional data (point cloud data)) and indicate the PCC codec (first encoding method and second encoding method). .
  • the multiplexing unit stores the NAL unit in, for example, moov or mdat by a predetermined method.
  • the multiplexing unit stores the NAL unit in, for example, moov or mdat by a predetermined method.
  • the multiplexing unit may store the NAL unit size in the NAL unit as in the case of HEVC.
  • the PCC encoded data is encoded by the first encoding method or encoded by the second encoding method. It is possible to determine whether the data has been converted. Further, as described above, by determining whether the PCC encoded data has been encoded by the first encoding method or the second encoding method, the PCC encoded data has been encoded by both encoding methods. Encoded data encoded by one of the encoding methods can be extracted from data in which encoded data is mixed. This makes it possible to suppress the amount of data to be transmitted when transmitting encoded data. Further, according to this storage method, a common data format can be used between the first encoding method and the second encoding method without setting different data (file) formats.
  • the multiplexing unit may store the NAL unit from which pcc_nal_unit_type has been deleted in the file of ISOBMFF.
  • the multiplexing unit included in the three-dimensional data encoding system (three-dimensional data encoding device) according to the present embodiment and the three-dimensional data decoding system (three-dimensional data decoding device) according to the present embodiment include The configuration and operation of the demultiplexer provided will be described.
  • FIG. 22 is a diagram showing a configuration of the first multiplexing section 4710.
  • the first multiplexing unit 4710 stores the encoded data and the control information (NAL unit) generated by the first encoding unit 4630 in an ISOBMFF file to generate multiplexed data (file).
  • a part 4711 is provided.
  • the first multiplexing section 4710 is included in, for example, the multiplexing section 4614 shown in FIG.
  • FIG. 23 is a diagram showing a configuration of the first demultiplexing unit 4720.
  • First demultiplexing section 4720 obtains encoded data and control information (NAL unit) from multiplexed data (file), and outputs the obtained encoded data and control information to first decoding section 4640
  • An inverse conversion unit 4721 is provided.
  • the first demultiplexer 4720 is included in, for example, the demultiplexer 4623 shown in FIG.
  • FIG. 24 is a diagram showing a configuration of the second multiplexing unit 4730.
  • the second multiplexing unit 4730 stores the encoded data and control information (NAL unit) generated by the second encoding unit 4650 in an ISOBMFF file to generate multiplexed data (file).
  • NAL unit encoded data and control information
  • a part 4731 is provided.
  • This second multiplexing section 4730 is included in, for example, multiplexing section 4614 shown in FIG.
  • FIG. 25 is a diagram showing a configuration of the second demultiplexing unit 4740.
  • the second demultiplexing unit 4740 obtains encoded data and control information (NAL unit) from the multiplexed data (file), and outputs the obtained encoded data and control information to the second decoding unit 4660.
  • An inverse conversion section 4741 is provided.
  • the second demultiplexer 4740 is included in, for example, the demultiplexer 4623 shown in FIG.
  • FIG. 26 is a flowchart of the multiplexing process by the first multiplexing unit 4710.
  • first multiplexing section 4710 analyzes pcc_codec_type included in the NAL unit header to determine whether the used codec is the first encoding method or the second encoding method. A determination is made (S4701).
  • first multiplexing section 4710 does not process the NAL unit (S4703).
  • first multiplexing section 4710 describes pccc1 in ftyp (S4704). That is, the first multiplexing unit 4710 describes, in ftyp, information indicating that data encoded by the first encoding method is stored in the file.
  • the first multiplexing unit 4710 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov or mdat or the like) by a predetermined method according to the data type indicated by pcc_nal_unit_type (S4705). ). Then, the first multiplexing unit 4710 creates an ISOBMFF file including the ftyp and the box (S4706).
  • FIG. 27 is a flowchart of the multiplexing process by the second multiplexing unit 4730.
  • second multiplexing section 4730 analyzes pcc_codec_type included in the NAL unit header to determine whether the used codec is the first encoding method or the second encoding method. A determination is made (S4711).
  • second multiplexing section 4730 describes pcc2 in ftype (S4713). That is, the second multiplexing unit 4730 describes, in ftyp, information indicating that data encoded by the second encoding method is stored in the file.
  • the second multiplexing unit 4730 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov or mdat or the like) by a predetermined method corresponding to the data type indicated by pcc_nal_unit_type (S4714). ). Then, the second multiplexing unit 4730 creates an ISOBMFF file including the ftyp and the box (S4715).
  • second multiplexing section 4730 does not process the NAL unit (S4716).
  • the above process shows an example in which PCC data is encoded by one of the first encoding method and the second encoding method.
  • the first multiplexing unit 4710 and the second multiplexing unit 4730 store a desired NAL unit in a file by identifying the codec type of the NAL unit. If identification information of the PCC codec is included in addition to the NAL unit header, the first multiplexing unit 4710 and the second multiplexing unit 4730 are included in steps S4701 and S4711 other than the NAL unit header.
  • the codec type (the first encoding method or the second encoding method) may be identified using the identification information of the PCC codec.
  • first multiplexing unit 4710 and the second multiplexing unit 4730 may delete pcc_nal_unit_type from the NAL unit header and store the data in the file when storing the data in the file in steps S4706 and S4714. Good.
  • FIG. 28 is a flowchart showing processing by first demultiplexing section 4720 and first decoding section 4640.
  • the first demultiplexing unit 4720 analyzes ftyp included in the ISOBMFF file (S4721). If the codec indicated by ftyp is the second encoding method (pcc2) (second encoding method in S4722), first demultiplexing section 4720 determines that the data included in the payload of the NAL unit is the second encoding method. (S 4723). Also, first demultiplexing section 4720 transmits the result of the determination to first decoding section 4640. The first decoding unit 4640 does not process the NAL unit (S4724).
  • first demultiplexing section 4720 determines whether the data included in the payload of the NAL unit is It is determined that the data is data encoded by the first encoding method (S4725). Also, first demultiplexing section 4720 transmits the result of the determination to first decoding section 4640.
  • the first decoding unit 4640 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the first encoding method (S4726). Then, the first decoding unit 4640 decodes the PCC data using the decoding process of the first encoding method (S4727).
  • FIG. 29 is a flowchart showing the processing by the second demultiplexer 4740 and the second decoder 4660.
  • the second demultiplexer 4740 analyzes ftyp included in the ISOBMFF file (S4731). If the codec indicated by ftyp is the second encoding method (pcc2) (the second encoding method in S4732), the second demultiplexing unit 4740 determines that the data included in the payload of the NAL unit is the second encoding method. It is determined that the data is encoded by the encoding method (S4733). Also, second demultiplexing section 4740 transmits the result of the determination to second decoding section 4660.
  • ⁇ Second decoding unit 4660 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the second encoding method (S4734). Then, second decoding section 4660 decodes the PCC data using the decoding processing of the second encoding method (S4735).
  • second demultiplexing section 4740 determines that the data included in the payload of the NAL unit is It is determined that the data is data encoded by the first encoding method (S4736). Also, second demultiplexing section 4740 transmits the result of the determination to second decoding section 4660. The second decoding unit 4660 does not process the NAL unit (S4737).
  • the codec type of the NAL unit can be identified at an early stage by identifying the codec type of the NAL unit. Further, a desired NAL unit can be input to the first decoding unit 4640 or the second decoding unit 4660, and unnecessary NAL units can be removed. In this case, the process of analyzing the identification information of the codec in the first decoding unit 4640 or the second decoding unit 4660 may become unnecessary. Note that the first decoding unit 4640 or the second decoding unit 4660 may execute a process of analyzing the codec identification information with reference to the NAL unit type again.
  • pcc_nal_unit_type is deleted from the NAL unit header in the first multiplexing unit 4710 or the second multiplexing unit 4730, the first demultiplexing unit 4720 or the second demultiplexing unit 4740 , To the first decoding unit 4640 or the second decoding unit 4660 after adding pcc_nal_unit_type to the NAL unit.
  • FIG. 30 is a diagram illustrating configurations of encoding section 4670 and third multiplexing section 4750 according to the present embodiment.
  • the encoding unit 4670 encodes the point cloud data using one or both of the first encoding method and the second encoding method.
  • the encoding unit 4670 may switch the encoding method (the first encoding method and the second encoding method) in units of point cloud data or in units of frames. Further, encoding section 4670 may switch the encoding method in units that can be encoded.
  • Encoding section 4670 generates encoded data (encoded stream) including PCC codec identification information.
  • the third multiplexing unit 4750 includes a file conversion unit 4751.
  • File conversion section 4751 converts the NAL unit output from encoding section 4670 into a PCC data file.
  • the file conversion unit 4751 analyzes the codec identification information included in the NAL unit header, and determines whether the PCC encoded data is data encoded by the first encoding method or encoded by the second encoding method. It is determined whether the data is encoded data or data encoded by both methods.
  • the file conversion unit 4751 describes a brand name that can identify the codec in ftyp. For example, when it is indicated that the encoding is performed by both methods, pcc3 is described in ftyp.
  • file conversion section 4751 may determine the PCC codec (encoding method) using the identification information. .
  • FIG. 31 is a diagram showing a configuration of the third demultiplexing unit 4760 and the decoding unit 4680 according to the present embodiment.
  • the third demultiplexing unit 4760 includes a file reverse conversion unit 4761.
  • the file inverse conversion unit 4761 analyzes the ftyp included in the file, and determines whether the PCC encoded data is data encoded by the first encoding method or data encoded by the second encoding method. , Or data encoded by both methods.
  • the data is input to the corresponding one of the first decoding unit 4640 and the second decoding unit 4660, and the other is decoded. No data is input to the section.
  • the data is input to the decoding unit 4680 corresponding to both methods.
  • Decoding section 4680 decodes PCC encoded data using one or both of the first encoding method and the second encoding method.
  • FIG. 32 is a flowchart showing processing by third multiplexing section 4750 according to the present embodiment.
  • the third multiplexing unit 4750 analyzes pcc_codec_type included in the NAL unit header to determine whether the codec used is the first encoding method or the second encoding method. It is determined whether both are the first encoding method and the second encoding method (S4741).
  • third multiplexing section 4750 describes pcc2 in ftyp (S4744). That is, the third multiplexing unit 4750 describes information indicating that the data encoded by the second encoding method is stored in the file in ftyp.
  • the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov or mdat or the like) by a predetermined method according to the data type indicated by pcc_unit_type (S4745). ). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the ftyp and the box (S4746).
  • the third multiplexing unit 4750 describes pccc1 in ftyp (S4747). That is, third multiplexing section 4750 describes information indicating that data encoded by the first encoding method is stored in the file in ftyp.
  • the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov or mdat or the like) by a predetermined method according to the data type indicated by pcc_unit_type (S4748). ). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the ftyp and the box (S4746).
  • third multiplexing section 4750 describes pcc3 in ftyp ( S4749). That is, third multiplexing section 4750 describes information indicating that data encoded by both encoding methods is stored in the file in ftyp.
  • the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov or mdat or the like) by a predetermined method according to the data type indicated by pcc_unit_type (S4750). ). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the ftyp and the box (S4746).
  • FIG. 33 is a flowchart showing the processing by the third demultiplexer 4760 and the decoder 4680.
  • the third demultiplexing unit 4760 analyzes ftyp included in the ISOBMFF file (S4761). If the codec indicated by ftyp is the second encoding method (pcc2) (Yes in S4762 and the second encoding method in S4763), the third demultiplexer 4760 includes the codec in the payload of the NAL unit. It is determined that the data to be encoded is the data encoded by the second encoding method (S4764). Also, third demultiplexing section 4760 transmits the result of the determination to decoding section 4680.
  • the decoding unit 4680 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the second encoding method (S4765). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the second encoding method (S4766).
  • the third demultiplexer 4760 outputs the payload of the NAL unit. Is determined to be data encoded by the first encoding method (S4767). Also, third demultiplexing section 4760 transmits the result of the determination to decoding section 4680.
  • the decoding unit 4680 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of the NAL unit for the first encoding method (S4768). Then, the decoding unit 4680 decodes the PCC data by using the decoding process of the first encoding method (S4769).
  • third demultiplexing section 4760 determines that the data included in the payload of the NAL unit is the first data. It is determined that the data is encoded by both the encoding method and the second encoding method (S4770). Also, third demultiplexing section 4760 transmits the result of the determination to decoding section 4680.
  • the decoding unit 4680 identifies data as pcc_nal_unit_type included in the NAL unit header as an identifier of a codec NAL unit described in pcc_codec_type (S 4771). Then, decoding section 4680 decodes the PCC data using the decoding processing of both encoding methods (S 4772). That is, the decoding unit 4680 decodes the data encoded by the first encoding method using the decoding process of the first encoding method, and decodes the data encoded by the second encoding method. Decoding is performed using the decoding processing of the second encoding method.
  • identification information may be indicated by identification information as the types of brands indicated by ftyp. Further, a plurality of types of combinations described below may be indicated by the identification information.
  • the identification information may indicate whether the object of the original data before PCC encoding is a point cloud whose area is restricted or a large-scale point cloud whose area is not restricted like map information. .
  • the identification information may indicate whether the original data before PCC encoding is a static object or a dynamic object.
  • the identification information may indicate whether the PCC encoded data is data encoded by the first encoding method or data encoded by the second encoding method. Good.
  • the identification information may indicate an algorithm used in PCC encoding.
  • the algorithm is, for example, an encoding method that can be used in the first encoding method or the second encoding method.
  • the identification information may indicate a difference in a method of storing the PCC encoded data in the ISOBMFF file.
  • the identification information may indicate whether the storage method used is a storage method for storage or a storage method for real-time transmission such as dynamic streaming.
  • Metadata such as identification information is stored in ftyp.
  • these metadata may be stored in addition to ftyp.
  • these metadata may be stored in moov.
  • the three-dimensional data storage device (or three-dimensional data multiplexing device or three-dimensional data encoding device) performs the processing shown in FIG.
  • the three-dimensional data storage device (including, for example, the first multiplexing unit 4710, the second multiplexing unit 4730, or the third multiplexing unit 4750) transmits a coded stream in which point cloud data is coded.
  • One or more stored units (for example, NAL units) are acquired (S4781).
  • the three-dimensional data storage device stores one or more units in a file (for example, an ISOBMFF file) (S4782).
  • the three-dimensional data storage device stores information (for example, pcc1, pcc2, or pcc3) indicating that the data stored in the file is data obtained by encoding point cloud data. It is stored in the control information (for example, ftyp) of the file.
  • the data stored in the file is encoded data of the point cloud data with reference to the control information of the file. It can be determined early whether or not. Therefore, it is possible to reduce the processing amount of the apparatus or increase the processing speed.
  • the information further indicates an encoding method used for encoding the point cloud data, of the first encoding method and the second encoding method.
  • the data stored in the file is the data obtained by encoding the point cloud data, and the code used for encoding the point cloud data among the first encoding method and the second encoding method.
  • the conversion method may be indicated by single information or may be indicated by different information.
  • the codec used for the data stored in the file can be determined early by referring to the control information of the file. Therefore, it is possible to reduce the processing amount of the apparatus or increase the processing speed.
  • the first encoding method encodes position information in which the position of point cloud data is represented by an N (N is an integer of 2 or more) binary tree, and encodes attribute information using the position information (GPCC), and the second encoding method is a method (VPCC) of generating a two-dimensional image from point cloud data and encoding the two-dimensional image using a video encoding method.
  • N is an integer of 2 or more
  • GPCC position information
  • the file conforms to ISOBMFF (ISO based media file format).
  • the three-dimensional data storage device includes a processor and a memory, and the processor performs the above-described processing using the memory.
  • the three-dimensional data acquisition device (or the three-dimensional data demultiplexing device or the three-dimensional data decoding device) performs the processing illustrated in FIG.
  • the three-dimensional data acquisition device (for example, including the first demultiplexing unit 4720, the second demultiplexing unit 4740, or the third demultiplexing unit 4760) outputs a coded stream in which the point cloud data is coded.
  • a file for example, an ISOBMFF file
  • units for example, a NAL unit
  • the three-dimensional data acquisition device acquires one or more units from the file (S4792).
  • the file control information (for example, ftyp) includes information (for example, pcc1, pcc2, or pcc3) indicating that the data stored in the file is data obtained by encoding point cloud data.
  • the three-dimensional data acquisition device refers to the information and determines whether the data stored in the file is the data obtained by encoding the point cloud data. Further, when the three-dimensional data acquisition device determines that the data stored in the file is the encoded data of the point cloud data, the encoded data of the point cloud data included in the one or more units is obtained. Is generated to generate point cloud data. Alternatively, when the three-dimensional data acquisition device determines that the data stored in the file is the data obtained by encoding the point cloud data, the data included in one or more units is converted to the point cloud data. The information indicating that the data is the output data is output (notified) to a subsequent processing unit (for example, the first decoding unit 4640, the second decoding unit 4660, or the decoding unit 4680).
  • a subsequent processing unit for example, the first decoding unit 4640, the second decoding unit 4660, or the decoding unit 4680.
  • the three-dimensional data acquisition device can early determine whether or not the data stored in the file is encoded data of the point cloud data with reference to the control information of the file. Therefore, it is possible to reduce the processing amount or increase the processing speed of the three-dimensional data acquisition device or the subsequent device.
  • the information further indicates the encoding method used for the encoding, of the first encoding method and the second encoding method.
  • the data stored in the file is the data obtained by encoding the point cloud data, and the code used for encoding the point cloud data among the first encoding method and the second encoding method.
  • the conversion method may be indicated by single information or may be indicated by different information.
  • the three-dimensional data acquisition device can early determine the codec used for the data stored in the file with reference to the control information of the file. Therefore, it is possible to reduce the processing amount or increase the processing speed of the three-dimensional data acquisition device or the subsequent device.
  • the three-dimensional data acquisition device may select any of the encoded point cloud data including the data encoded by the first encoding method and the data encoded by the second encoding method. Data encoded by one of the encoding methods is acquired.
  • the first encoding method encodes position information in which the position of point cloud data is represented by an N (N is an integer of 2 or more) binary tree, and encodes attribute information using the position information (GPCC), and the second encoding method is a method (VPCC) of generating a two-dimensional image from point cloud data and encoding the two-dimensional image using a video encoding method.
  • N is an integer of 2 or more
  • GPCC position information
  • the file conforms to ISOBMFF (ISO based media file format).
  • the three-dimensional data acquisition device includes a processor and a memory, and the processor performs the above-described processing using the memory.
  • 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. 36 is a diagram showing a configuration of an encoding unit 4801 and a 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. 37 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. 37 shows an example in which the attribute X and the attribute Y exist.
  • 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. 37 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. 37 shows an example in which the position information is one type and the attribute information is two types.
  • the present invention is not limited to this, and the attribute information may be one type or three or more types. Good.
  • encoded data can be generated in a similar manner.
  • 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. 38 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. 39 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 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. 40 is a diagram showing an example of the transmission order of NAL units.
  • FIG. 40 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.
  • 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.
  • the GOF header and the AU header may be integrated, or the AXPS and the 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. 41 is a flowchart of a process performed by the three-dimensional data encoding device (the encoding unit 4801 and the multiplexing unit 4802) according to the transmission order of the NAL units.
  • the three-dimensional data encoding device determines the NAL unit transmission order (positional information priority or parameter set priority) (S4801). For example, the three-dimensional data encoding device determines the transmission order based on a designation from a user or an external device (for example, a three-dimensional data decoding device).
  • the three-dimensional data encoding device sets the order identification information included in the stream PS to position information priority (S4803). That is, in this case, the order identification information indicates that the NAL units are transmitted in the order of position information priority. Then, the three-dimensional data encoding device sends out the NAL units in the order of position information priority (S4804).
  • the three-dimensional data encoding device sets the order identification information included in the stream PS to the parameter set priority (S4805). That is, in this case, the order identification information indicates that NAL units are transmitted in the order of parameter set priority. Then, the three-dimensional data encoding device sends the NAL units in the order of the parameter set and the parameter set priority (S4806).
  • FIG. 42 is a flowchart of a process performed by the three-dimensional data decoding device according to the transmission order of the NAL units.
  • the three-dimensional data decoding device analyzes the order identification information included in the stream PS (S4811).
  • the three-dimensional data decoding device decodes the NAL unit assuming that the transmission order of NAL units is position information priority (S4812). S4813).
  • the three-dimensional data decoding device decodes the NAL unit assuming that the transmission order of NAL units is parameter set priority. (S4814).
  • step S4813 the three-dimensional data decoding device obtains the NAL unit related to the position information without obtaining all the NAL units, and decodes the position information from the obtained NAL unit. Is also good.
  • FIG. 43 is a flowchart of a process performed by the three-dimensional data encoding device (multiplexing unit 4802) regarding AU and GOF generation in multiplexing of NAL units.
  • the three-dimensional data encoding device determines the type of encoded data (S4821). Specifically, the three-dimensional data encoding device determines whether the encoded data to be processed is the data at the head of the AU, the data at the head of the GOF, or any other data.
  • the three-dimensional data encoding device When the encoded data is the data at the head of the GOF (GOF head in S4822), the three-dimensional data encoding device generates a NAL unit by arranging the GOF header and the AU header at the head of the encoded data belonging to the GOF ( S4823).
  • the three-dimensional data encoding device arranges the AU header at the head of the encoded data belonging to the AU and generates a NAL unit (S4824).
  • the three-dimensional data encoding device places the encoded data after the AU header of the AU to which the encoded data belongs. Then, a NAL unit is generated (S4825).
  • FIG. 44 is a flowchart of a process of the three-dimensional data decoding device relating to access of the AU and the GOF in demultiplexing of the NAL unit.
  • the three-dimensional data decoding device determines the type of encoded data included in the NAL unit by analyzing nal_unit_type included in the NAL unit (S4831). Specifically, the three-dimensional data decoding device determines whether the encoded data included in the NAL unit is the data at the head of the AU, the data at the head of the GOF, or any other data.
  • the three-dimensional data decoding device determines that the NAL unit is the start position of random access and accesses the NAL unit. Then, the decoding process is started (S4833).
  • the three-dimensional data decoding device determines that the NAL unit is the head of the AU, And decrypts the AU (S4834).
  • the three-dimensional data decoding device does not process the NAL unit.
  • the three-dimensional data encoding device performs the processing shown in FIG.
  • the three-dimensional data encoding apparatus encodes time-series three-dimensional data (for example, point cloud data of a dynamic object).
  • the three-dimensional data includes position information and attribute information for each time.
  • the three-dimensional data encoding device encodes the position information (S4841).
  • the three-dimensional data encoding apparatus encodes the processing target attribute information with reference to the position information at the same time as the processing target attribute information (S4842).
  • the position information and the attribute information at the same time constitute an access unit (AU). That is, the three-dimensional data encoding device encodes the processing target attribute information with reference to the position information included in the same access unit as the processing target attribute information.
  • the three-dimensional data encoding device can easily control reference in encoding using the access unit. Therefore, the three-dimensional data encoding device can reduce the amount of encoding processing.
  • the three-dimensional data encoding device may encode the encoded position information (encoded position data), the encoded attribute information (encoded attribute data), and the position information of the reference destination of the attribute information to be processed. And generating a bit stream including the indicated information.
  • the bit stream includes a position parameter set (position PS) including control information of position information at each time, and an attribute parameter set (attribute PS) including control information of attribute information at each time.
  • position PS position parameter set
  • attribute PS attribute parameter set
  • a bit stream includes a position sequence parameter set (position SPS) including control information common to position information at a plurality of times and an attribute sequence parameter set (attribute SPS) including control information common to attribute information at a plurality of times.
  • position SPS position sequence parameter set
  • attribute SPS attribute sequence parameter set
  • the bit stream includes a stream parameter set (stream PS) including control information common to a plurality of time position information and a plurality of time attribute information.
  • stream PS stream parameter set
  • the bit stream includes an access unit header (AU header) including control information common in the access unit.
  • AU header access unit header
  • the three-dimensional data encoding device encodes a GOF (Group of Frame) composed of one or more access units so that it can be decoded independently. That is, GOF is a random access unit.
  • a bit stream includes a GOF header that includes control information common within the GOF.
  • 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.
  • the three-dimensional data decoding device decodes time-series three-dimensional data (for example, point cloud data of a dynamic object).
  • the three-dimensional data includes position information and attribute information for each time.
  • the position information and attribute information at the same time constitute an access unit (AU).
  • AU access unit
  • the three-dimensional data decoding device decodes position information from the bit stream (S4851). That is, the three-dimensional data decoding device generates position information by decoding the encoded position information (encoded position data) included in the bit stream.
  • the three-dimensional data decoding device decodes the attribute information to be processed from the bit stream with reference to the position information at the same time as the attribute information to be processed (S4852). That is, the three-dimensional data decoding device generates attribute information by decoding encoded attribute information (encoded attribute data) included in the bit stream. At this time, the three-dimensional data decoding device refers to the decoded position information included in the same access unit as the attribute information.
  • the three-dimensional data decoding device can easily control reference in decoding using the access unit. Therefore, the three-dimensional data decoding method can reduce the amount of decoding processing.
  • the three-dimensional data decoding apparatus obtains, from the bit stream, information indicating the position information of the reference destination of the attribute information of the processing target, and refers to the position information of the reference destination indicated by the obtained information to obtain the attribute of the processing target. Decrypt information.
  • the bit stream includes a position parameter set (position PS) including control information of position information at each time, and an attribute parameter set (attribute PS) including control information of attribute information at each time. That is, the three-dimensional data decoding apparatus decodes the position information of the processing target time using the control information included in the position parameter set of the processing target time, and uses the control information included in the attribute parameter set of the processing target time. , And decodes the attribute information of the processing target time.
  • position PS position parameter set
  • attribute PS attribute parameter set
  • a bit stream includes a position sequence parameter set (position SPS) including control information common to position information at a plurality of times and an attribute sequence parameter set (attribute SPS) including control information common to attribute information at a plurality of times.
  • position SPS position sequence parameter set
  • attribute SPS attribute sequence parameter set
  • the three-dimensional data decoding device decodes the position information of a plurality of times using the control information included in the position sequence parameter set, and decodes the attribute information of the plurality of times using the control information included in the attribute sequence parameter set. Decrypt information.
  • the bit stream includes a stream parameter set (stream PS) including control information common to a plurality of time position information and a plurality of time attribute information. That is, the three-dimensional data decoding device decodes the position information at a plurality of times and the attribute information at a plurality of times using the control information included in the stream parameter set.
  • stream PS stream parameter set
  • the bit stream includes an access unit header (AU header) including control information common in the access unit. That is, the three-dimensional data decoding device decodes the position information and the attribute information included in the access unit using the control information included in the access unit header.
  • AU header access unit header
  • the three-dimensional data decoding device independently decodes a GOF (group of frames) composed of one or more access units. That is, GOF is a random access unit.
  • a bit stream includes a GOF header that includes control information common within the GOF. That is, the three-dimensional data decoding device decodes the position information and the attribute information included in the GOF using the control information included in the GOF header.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above-described processing using the memory.
  • FIG. 47 is a diagram illustrating an example of slice and tile division.
  • the three-dimensional data encoding device divides the three-dimensional point group data into arbitrary point groups in slice units.
  • the three-dimensional data encoding apparatus does not divide the position information and the attribute information constituting the point, but divides the position information and the attribute information collectively. That is, the three-dimensional data encoding device 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 three-dimensional data encoding device 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 three-dimensional data encoding device divides the slice-divided data into slice position information (G slice) and slice attribute information (A slice), and divides the slice position information and slice attribute information into tile units.
  • FIG. 47 shows an example in which division is performed using an octree structure, but any number of division methods and division methods may be used.
  • the three-dimensional data encoding device may divide the position information and the attribute information by different division methods, or may divide them by the same division method. Further, the three-dimensional data encoding device may divide the plurality of slices into tiles using different division methods, or divide the slice into tiles using the same division method.
  • the three-dimensional data encoding device generates tile additional information relating to the number of divisions and the division method at the time of tile division.
  • 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 three-dimensional data encoding device may use a predetermined method as a slice or tile division method, or may adaptively switch a method to be used according to the point cloud data.
  • the three-dimensional data encoding device divides the three-dimensional space collectively for position information and attribute information. For example, the three-dimensional data encoding device determines the shape of the object, and divides the three-dimensional space into slices according to the shape of the object. For example, the three-dimensional data encoding device extracts an object such as a tree or a building and divides the object into units. For example, the three-dimensional data encoding device performs slice division so that one or a plurality of objects are entirely included in one slice. Alternatively, the three-dimensional data encoding device 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 three-dimensional data encoding device may perform slice division based on map information or position information such that each slice corresponds to a predetermined coordinate space.
  • the three-dimensional data encoding device divides position information and attribute information independently. For example, the three-dimensional data encoding device divides a slice into tiles according to a data amount or a processing amount. For example, the three-dimensional data encoding device 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 three-dimensional data encoding device divides the slice into tiles. The three-dimensional data encoding device does not divide the slice into tiles when the data amount of the slice is smaller than the threshold.
  • the three-dimensional data encoding device divides the slice into tiles so that the processing amount or the 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 three-dimensional data encoding device when the processing amount is different between the position information and the attribute information, for example, when the processing amount of the position information is larger than the processing amount of the attribute information, the division number of the position information, Make more than the number of divisions.
  • the three-dimensional data encoding device may divide the position information.
  • the number 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. 48 is a diagram showing an example of a pattern of dividing a slice and a tile.
  • 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.
  • FIG. 49 is a block diagram showing a configuration of first encoding section 5010 included in the three-dimensional data encoding device according to the present embodiment.
  • the first encoding unit 5010 generates encoded data (encoded stream) by encoding the point cloud data using a first encoding method (GPCC (Geometry @ based @ PCC)).
  • the first encoding unit 5010 includes a division unit 5011, a plurality of position information encoding units 5012, a plurality of attribute information encoding units 5013, an additional information encoding unit 5014, and a multiplexing unit 5015. .
  • the dividing unit 5011 generates a plurality of divided data by dividing the point cloud data. Specifically, the dividing unit 5011 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 division unit 5011 divides the position information into a plurality of division position information, and divides the attribute information into a plurality of division attribute information. Further, the division unit 5011 generates additional information regarding division.
  • the dividing unit 5011 first divides the point group into tiles. Next, the dividing unit 5011 further divides the obtained tile into slices.
  • the plurality of position information encoding units 5012 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 5012 process a plurality of divided position information in parallel.
  • the plurality of attribute information encoding units 5013 generate 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 5013 process a plurality of pieces of divided attribute information in parallel.
  • the additional information encoding unit 5014 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 5011.
  • the multiplexing unit 5015 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. 49 illustrates an example in which the number of the position information encoding unit 5012 and the number of the attribute information encoding units 5013 are each two, but the numbers of the position information encoding unit 5012 and the attribute information encoding unit 5013 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. 50 is a block diagram showing a configuration of first decoding section 5020.
  • the first decoding unit 5020 restores the point cloud data by decoding the coded data (coded stream) generated by encoding the point cloud data by the first coding method (GPCC). .
  • the first decoding unit 5020 includes a demultiplexing unit 5021, a plurality of position information decoding units 5022, a plurality of attribute information decoding units 5023, an additional information decoding unit 5024, and a combining unit 5025.
  • the demultiplexing unit 5021 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 plural position information decoding units 5022 generate plural pieces of division position information by decoding plural pieces of encoded position information. For example, the plurality of position information decoding units 5022 process a plurality of encoded position information in parallel.
  • the plural attribute information decoding units 5023 generate plural pieces of divided attribute information by decoding plural pieces of encoded attribute information. For example, the plurality of attribute information decoding units 5023 process a plurality of pieces of encoded attribute information in parallel.
  • the plurality of additional information decoding units 5024 generate additional information by decoding the encoded additional information.
  • the combining unit 5025 generates position information by combining a plurality of pieces of divided position information using the additional information.
  • the combining unit 5025 generates attribute information by combining a plurality of pieces of divided attribute information using the additional information. For example, the combining unit 5025 first generates the point cloud data corresponding to the tile by combining the decoded point cloud data for the slice using the slice additional information. Next, the combining unit 5025 restores the original point group data by combining the point group data corresponding to the tiles using the tile additional information.
  • FIG. 49 illustrates an example in which the number of the position information decoding unit 5022 and the number of the attribute information decoding units 5023 are each two, but the number of the position information decoding unit 5022 and the number of the attribute information decoding units 5023 is 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.
  • point cloud data in an area around the vehicle or in an area in the traveling direction of the vehicle is required instead of point cloud data in all areas.
  • FIG. 51 is a diagram illustrating an example of the shape of a tile. As shown in FIG. 51, various shapes such as a circle, a rectangle, or an ellipse may be used as the shape of the tile.
  • FIG. 52 is a diagram showing an example of tiles and slices.
  • the configuration of slices may differ between tiles.
  • the configuration of a tile or slice may be optimized based on the amount of data.
  • the configuration of tiles or slices may be optimized based on the decoding speed.
  • tile division may be performed based on position information.
  • the attribute information is divided in the same manner as the corresponding position information.
  • the position information and the attribute information may be divided into slices by a different method.
  • a method of slice division in each tile may be selected according to a request from an application.
  • a different slice division method or tile division method may be used based on a request from an application.
  • the dividing unit 5011 divides the point cloud data into one or more tiles based on position information such as map information in a two-dimensional shape of the three-dimensional point cloud data viewed from above. After that, the dividing unit 5011 divides each tile into one or more slices.
  • the dividing unit 5011 may divide the position information (Geometry) and the attribute information (Attribute) into slices by the same method.
  • the position information and the attribute information may each be one type or two or more types. Further, in the case of point cloud data having no attribute information, there is no need to have attribute information.
  • FIG. 53 is a block diagram of the dividing unit 5011.
  • the division unit 5011 includes a tile division unit 5031 (Tile Divider), a position information slice division unit 5032 (Geometry Slice Divider), and an attribute information slice division unit 5033 (Attribute ⁇ Slice Divider).
  • the tile division unit 5031 divides the position information (Position (Geometry)) into tiles to generate a plurality of pieces of tile position information.
  • the tile division unit 5031 generates a plurality of pieces of tile attribute information by dividing the attribute information (Attribute) into tiles. Further, the tile division unit 5031 outputs information related to the tile division and additional tile information (TileMetaData) including information generated in the tile division.
  • the position information slice division unit 5032 generates a plurality of division position information (a plurality of slice position information) by dividing a plurality of tile position information into slices.
  • the position information slice division unit 5032 outputs position slice additional information (Geometry ⁇ Slice ⁇ MetaData) including the information related to the slice division of the position information and the information generated in the slice division of the position information.
  • the attribute information slice division unit 5033 generates a plurality of pieces of attribute information (a plurality of pieces of slice attribute information) by dividing a plurality of pieces of tile attribute information into slices.
  • the attribute information slice division unit 5033 outputs attribute slice additional information (Attribute ⁇ Slice ⁇ MetaData) including information related to the slice division of the attribute information and the information generated in the slice division of the attribute information.
  • the entire three-dimensional map (3D map) is divided into a plurality of tiles.
  • the data of the plurality of tiles is selectively transmitted to the three-dimensional data decoding device.
  • the data is transmitted to the three-dimensional data decoding device in order from the data having the highest importance among the data of the plurality of tiles.
  • the shape of the tile may be selected from a plurality of shapes depending on the situation.
  • FIG. 54 is a diagram showing an example of a map in which the point cloud data obtained by LiDAR is viewed from above.
  • the example shown in FIG. 54 is point cloud data of a highway, and includes a three-dimensional intersection (Flyover).
  • FIG. 55 is a diagram showing an example in which the point cloud data shown in FIG. 54 is divided into square tiles. Such a division of the square can be easily performed in the map server.
  • the height of the tile is set low for a normal road. At a grade separation point, the height of the tile is set higher than a normal road so that the tile includes the grade separation part.
  • FIG. 56 is a diagram showing an example in which the point cloud data shown in FIG. 54 is divided into circular tiles. In this case, adjacent tiles may overlap in plan view.
  • the three-dimensional data encoding device transmits the point cloud data in the area of the column (circle in top view) around the vehicle to the vehicle.
  • the height of the tile is set low for a normal road. At a grade separation point, the height of the tile is set higher than a normal road so that the tile includes the grade separation part.
  • the three-dimensional data encoding device may change the height of the tile according to, for example, the shape or height of a road or a building. Further, the three-dimensional data encoding device may change the height of the tile according to the position information or the area information. Further, the three-dimensional data encoding device may change the height of each tile for each tile. Alternatively, the three-dimensional data encoding device may change the height of a tile for each section including a plurality of tiles. That is, the three-dimensional data encoding device may make the heights of the plurality of tiles in the section the same. Also, tiles of different heights may overlap in top view.
  • FIG. 57 is a diagram showing an example of tile division when tiles of various shapes, sizes, or heights are used.
  • the shape of the tile may be any shape, any size, or a combination thereof.
  • the three-dimensional data encoding device performs the division with the overlapping square tiles as well as the example of dividing with the square tiles without overlapping as described above and the example of dividing with the overlapping circular tiles. Is also good.
  • the shape of the tile is not limited to a square or a circle, and a polygon having three or more vertices may be used, or a shape having no vertices may be used.
  • the shapes of the tiles may be two or more types, or tiles of different shapes may overlap. Further, the number of types of tile shapes is one or more, and shapes having different sizes may be combined in the same shape to be divided, or they may overlap.
  • the three-dimensional data encoding device may adaptively change the shape or size of the tile according to the object.
  • the three-dimensional data encoding device sets the tiles in the traveling direction to a large size because it is highly likely that it is necessary to read tiles in the traveling direction of the automobile (vehicle), which are far ahead of the automobile. Since it is unlikely that the vehicle will advance to the side of the vehicle, the size of the tiles on the side may be set smaller than the size of the tiles in the traveling direction.
  • FIG. 58 is a diagram showing an example of tile data stored in the server.
  • the point cloud data is tile-divided and encoded in advance, and the encoded data obtained is stored in the server.
  • the user acquires desired tile data from the server when necessary.
  • the server three-dimensional data encoding device
  • the server determines the shape and size of the tile based on the vehicle speed estimated in advance (for example, the legal speed of the road, the vehicle speed estimated from the width and shape of the road, or the statistical speed). Then, tile division may be performed.
  • the server may encode tiles of a plurality of shapes or sizes in advance and store the obtained data.
  • the moving object may acquire tile data of an appropriate shape and size according to the traveling direction and speed of the moving object.
  • FIG. 59 is a diagram illustrating an example of a system related to tile division.
  • the shape and area of a tile may be determined based on the position of an antenna (base station), which is communication means for transmitting point cloud data, or a communication area supported by the antenna.
  • the shape and area of the tile may be determined based on the position of the sensor or the target range (detection range) of the sensor.
  • One tile may be assigned to one antenna or sensor, or one tile may be assigned to a plurality of antennas or sensors. Multiple tiles may be assigned to one antenna or sensor.
  • the antenna or sensor may be fixed or movable.
  • encoded data divided into tiles may be managed by a server connected to an antenna or a sensor for an area allocated to the tile.
  • the server may manage the encoded data of its own area and the tile information of the adjacent area.
  • a centralized management server (cloud) that manages a plurality of servers corresponding to each tile, a plurality of encoded data of a plurality of tiles may be managed.
  • an antenna or a sensor may be directly connected to the central management server without providing a server corresponding to the tile.
  • the target range of the antenna or the sensor may be different depending on the electric power of the radio wave, the difference of the device, and the installation condition, and the shape and size of the tile may be changed according to these.
  • a slice may be assigned instead of a tile, or a PCC frame may be assigned based on the target area of the antenna or the sensor.
  • Coding efficiency can be improved by assigning similar objects to the same slice.
  • the three-dimensional data encoding device may perform slice division by recognizing objects (roads, buildings, trees, and the like) using features of the point cloud data, and clustering the point cloud for each object.
  • objects roads, buildings, trees, and the like
  • the three-dimensional data encoding apparatus may perform slice division by grouping objects having the same attribute and assigning a slice to each group.
  • the attribute is, for example, information on movement, such as dynamic information on pedestrians and cars, quasi-dynamic information on accidents and traffic jams, quasi-static information on traffic regulations and road works, Grouping is performed by classifying objects into static information such as structures.
  • data may overlap in a plurality of slices.
  • slice division is performed for each of a plurality of object groups, an arbitrary object may belong to one object group, or may belong to two or more object groups.
  • FIG. 60 is a diagram showing an example of this slice division.
  • the tile is a rectangular parallelepiped.
  • the tile may have a columnar shape or another shape.
  • Point groups included in tiles are grouped into object groups such as roads, buildings, and trees. Then, slicing is performed so that each object group is included in one slice. Then, each slice is individually encoded.
  • the three-dimensional data encoding device (first encoding unit 5010) 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. 61 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 t1 indicates the position information of the tile number 1
  • G t2 indicates the position information of the tile number 2.
  • G t1s1 indicates the position information of tile number 1 and slice number 1
  • G t1s2 indicates the position information of tile number 1 and slice number 2
  • G t2s1 indicates the position information of tile number 2 and slice number 1.
  • G t2s2 indicate the position information of the tile number 2 and the slice number 2.
  • a t1 indicates the attribute information of the tile number 1
  • a t2 indicates the attribute information of the tile number 2.
  • At1s1 indicates attribute information of tile number 1 and slice number 1
  • At1s2 indicates attribute information of tile number 1 and slice number 2
  • At2s1 indicates attribute information of tile number 2 and slice number 1.
  • At2s2 indicate attribute information of tile number 2 and slice number 2.
  • Mtile indicates tile additional information
  • MGslice indicates position slice additional information
  • MAslice indicates attribute slice additional information.
  • D T1S1 shows the dependency information of the attribute information A t1s1
  • D t2s1 shows the dependency information of the attribute information A T2s1.
  • tile division or slice division structure may be used depending on an application or the like.
  • 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. 62 is a diagram showing an example of the decoding order of data.
  • 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.
  • the three-dimensional data decoding device may selectively decode tiles based on a request from an application and information obtained from a NAL unit header.
  • FIG. 63 is a diagram illustrating an example of encoded data of a tile.
  • the decoding order of tiles is arbitrary. That is, there is no need for a dependency between tiles.
  • FIG. 64 is a block diagram illustrating a configuration of the combining unit 5025.
  • the combining unit 5025 includes a position information slice combining unit 5041 (Geometry @ Slice @ Combiner), an attribute information slice combining unit 5042 (Attribute @ Slice @ Combiner), and a tile combining unit (Tile @ Combiner).
  • the position information slice combination unit 5041 generates a plurality of pieces of tile position information by combining a plurality of pieces of division position information using the position slice additional information.
  • the attribute information slice combining unit 5042 generates a plurality of tile attribute information by combining a plurality of division attribute information using the attribute slice additional information.
  • the tile combining unit 5043 generates position information by combining a plurality of pieces of tile position information using the additional tile information.
  • the tile combining unit 5043 combines the plurality of pieces of tile attribute information using the tile additional information to generate attribute 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.
  • FIG. 65 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.
  • 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. 66 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 (S5011).
  • This division method includes whether to perform tile division and whether to perform slice division. Further, the division method may include the number of divisions when tile division or slice division is performed, 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 tile division is performed (Yes in S5012), the three-dimensional data encoding device generates a plurality of tile position information and a plurality of tile attribute information by dividing the position information and the attribute information collectively (S5013). Further, the three-dimensional data encoding device generates tile additional information relating to tile 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 slice division is performed (Yes in S5014), the three-dimensional data encoding device separately divides the plurality of tile position information and the plurality of tile 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 (S5015). Further, the three-dimensional data encoding device generates position slice additional information and attribute slice additional information related to slice division. Note that the three-dimensional data encoding device may divide the tile position information and the tile 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 (S5016). 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 ( S5017). Further, the three-dimensional data encoding device sends out the generated encoded data.
  • FIG. 67 is a flowchart of point cloud data decoding processing according to the present embodiment.
  • the three-dimensional data decoding apparatus analyzes the additional information (tile additional information, position slice additional information, and attribute slice additional information) related to the division method included in the encoded data (encoded stream), thereby performing the division method. Is determined (S5021).
  • This division method includes whether to perform tile division and whether to perform slice division. Further, the division method may include the number of divisions when tile division or slice division is performed, 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 (S5022).
  • the three-dimensional data decoding device determines a plurality of division position information and a plurality of divisions based on the position slice additional information and the attribute slice additional information. By combining the attribute information with the respective methods, a plurality of tile position information and a plurality of tile attribute information are generated (S5024). 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 tile position information and a plurality of pieces of tile attribute information (a plurality of pieces of divided position information) based on the additional tile information. Information and attribute information are combined by the same method to generate position information and attribute information (S5026). Note that the three-dimensional data decoding device may combine the plurality of tile position information and the plurality of tile attribute information by different methods.
  • the three-dimensional data encoding device generates tile additional information that is metadata relating to a tile division method, and transmits the generated tile additional information to the three-dimensional data decoding device.
  • FIG. 68 is a diagram illustrating a syntax example of tile additional information (TileMetaData).
  • the tile additional information includes division method information (type_of_divide), shape information (topview_shape), a duplication flag (tile_overlap_flag), duplication information (type_of_overlap), and height information (type_height).
  • Tile number (tile_number), and tile position information (global_position, relative_position).
  • Division method information indicates a tile division method.
  • the division method information indicates whether the tile division method is division based on map information, that is, division (top_view) based on top view or other (other).
  • the shape information (topview_shape) is included in the tile additional information, for example, when the tile division method is division based on top view.
  • the shape information indicates the shape of the tile as viewed from above.
  • this shape includes a square and a circle.
  • this shape may include a polygon other than an ellipse, a rectangle, or a square, and may include other shapes.
  • the shape information is not limited to the shape of the tile when viewed from above, and may indicate a three-dimensional shape (for example, a cube or a cylinder) of the tile.
  • the overlap flag indicates whether or not tiles overlap.
  • the overlap flag is included in the tile additional information when the tile division method is division based on top view.
  • the overlap flag indicates whether or not tiles overlap when viewed from above.
  • the overlap flag may indicate whether tiles overlap in the three-dimensional space.
  • the overlap information (type_of_overlap) is included in the tile additional information when, for example, tiles overlap.
  • the overlap information indicates how tiles are overlapped. For example, the overlap information indicates the size of the overlapping area and the like.
  • the height information indicates the height of the tile.
  • the height information may include information indicating the shape of the tile. For example, when the shape of the tile in a top view is a rectangle, the information may indicate the length (vertical length and horizontal length) of the side of the rectangle. In addition, when the shape of the tile in a top view is a circle, the information may indicate a diameter or a radius of the circle.
  • the height information may indicate the height of each tile, or may indicate a common height for a plurality of tiles. Also, a plurality of height types such as a road and a grade separation portion may be set in advance, and the height information may indicate the height of each height type and the height type of each tile. Alternatively, the height of each height type may be defined in advance, and the height information may indicate the height type of each tile. That is, the height of each height type need not be indicated by the height information.
  • the number of tiles indicates the number of tiles.
  • the tile additional information may include information indicating a tile interval.
  • Tile position information (global_position, relative_position) is information for specifying the position of each tile.
  • the tile position information indicates absolute coordinates or relative coordinates of each tile.
  • part or all of the above information may be provided for each tile, or may be provided for each of a plurality of tiles (for example, for each frame or each of a plurality of frames).
  • the three-dimensional data encoding device may transmit the tile additional information included in the SEI (Supplemental Enhancement Information).
  • the three-dimensional data encoding device may store the tile additional information in an existing parameter set (PPS, GPS, APS, or the like) and send it.
  • the tile additional information when the tile additional information changes for each frame, the tile additional information may be stored in a parameter set (such as GPS or APS) for each frame. If the tile additional information does not change in the sequence, the tile additional information may be stored in a parameter set (position SPS or attribute SPS) for each sequence. Further, when the same tile division information is used for the position information and the attribute information, the tile additional information may be stored in the parameter set (stream PS) of the PCC stream.
  • a parameter set such as GPS or APS
  • the tile additional information may be stored in a parameter set (position SPS or attribute SPS) for each sequence.
  • the tile additional information may be stored in the parameter set (stream PS) of the PCC stream.
  • the tile additional information may be stored in any of the above parameter sets, or may be stored in a plurality of parameter sets. Further, the tile additional information may be stored in a header of the encoded data. Further, the tile additional information may be stored in a header of the NAL unit.
  • All or a part of the tile additional 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 tile additional information may be included in one of the headers of the position information and the attribute information.
  • the attribute information depends on the position information, the position information is processed first. Therefore, the tile additional information may be included in the header of the position information, and the additional tile information may not be included in the header of the attribute information.
  • the three-dimensional data decoding device determines that the attribute information of the dependence source belongs to the same tile as the tile of the position information of the dependence destination.
  • the three-dimensional data decoding device reconstructs the tiled point group data based on the tile additional information.
  • the three-dimensional data decoding device identifies a plurality of overlapping point cloud data, selects one of them, or merges the plurality of point cloud data.
  • the three-dimensional data decoding device may perform decoding using the tile additional information. For example, when a plurality of tiles overlap, the three-dimensional data decoding apparatus performs decoding for each tile, performs processing (eg, smoothing or filtering) using the decoded plurality of data, and generates point cloud data. May be generated. As a result, highly accurate decoding may be possible.
  • processing eg, smoothing or filtering
  • FIG. 69 is a diagram illustrating a configuration example of a system including a three-dimensional data encoding device and a three-dimensional data decoding device.
  • the tile division unit 5051 divides point cloud data including position information and attribute information into a first tile and a second tile. Also, the tile division unit 5051 sends tile additional information related to tile division to the decoding unit 5053 and the tile combination unit 5054.
  • the coding unit 5052 generates coded data by coding the first tile and the second tile.
  • the decoding unit 5053 restores the first tile and the second tile by decoding the encoded data generated by the encoding unit 5052.
  • the tile combining unit 5054 combines the first tile and the second tile using the tile additional information to restore the point cloud data (position information and attribute information).
  • the three-dimensional data encoding device generates slice additional information, which is metadata relating to a slice division method, and transmits the generated slice additional information to the three-dimensional data decoding device.
  • FIG. 70 is a diagram illustrating an example of the syntax of slice additional information (SliceMetaData).
  • the slice additional information includes division method information (type_of_divide), a duplication flag (slice_overlap_flag), duplication information (type_of_overlap), the number of slices (slice_number_slice), and slice position information (globalviopsi). ) And slice size information (slice_bounding_box_size).
  • Division method information indicates a slice division method.
  • the division method information indicates whether or not the division method of the slice is division (object) based on object information as shown in FIG.
  • the slice additional information may include information indicating a method of dividing the object. For example, this information indicates whether one object is divided into a plurality of slices or assigned to one slice. This information may indicate the number of divisions when one object is divided into a plurality of slices.
  • the overlap flag indicates whether slices overlap.
  • the overlap information (type_of_overlap) is included in the slice additional information, for example, when the slices overlap.
  • the duplication information indicates how slices are duplicated. For example, the overlap information indicates the size of the overlapping area and the like.
  • the number of slices indicates the number of slices.
  • Slice position information (global_position, relative_position) and slice size information (slice_bounding_box_size) are information relating to a slice area.
  • the slice position information is information for specifying the position of each slice. For example, the slice position information indicates absolute coordinates or relative coordinates of each slice.
  • the slice size information (slice_bounding_box_size) indicates the size of each slice. For example, the slice size information indicates the size of the bounding box of each slice.
  • the three-dimensional data encoding device may transmit the slice additional information included in the SEI.
  • the three-dimensional data encoding device may store the slice additional information in an existing parameter set (PPS, GPS, APS, or the like) and transmit the information.
  • PPS personal positioning system
  • GPS global positioning system
  • APS APS
  • the slice additional information when the slice additional information changes for each frame, the slice additional information may be stored in a parameter set (such as GPS or APS) for each frame. If the slice additional information does not change in the sequence, the slice additional information may be stored in a parameter set (position SPS or attribute SPS) for each sequence. Further, when the same slice division information is used for the position information and the attribute information, the slice additional information may be stored in the parameter set (stream PS) of the PCC stream.
  • a parameter set such as GPS or APS
  • the slice additional information may be stored in a parameter set (position SPS or attribute SPS) for each sequence.
  • the slice additional information may be stored in the parameter set (stream PS) of the PCC stream.
  • the slice additional information may be stored in any of the above parameter sets, or may be stored in a plurality of parameter sets. Further, the slice additional information may be stored in a header of the encoded data. Further, the slice additional information may be stored in a header of the NAL unit.
  • All or part of the slice additional information is stored in one of the header of the division position information and the header of the division attribute information, and need not be stored in the other.
  • one of the headers of the position information and the attribute information may include the slice additional information.
  • the slice additional information may be included in the position information header, and the slice additional information may not be included in the attribute information header.
  • the three-dimensional data decoding device determines, for example, that the attribute information of the dependence source belongs to the same slice as the slice of the position information of the dependence destination.
  • the three-dimensional data decoding device reconstructs the sliced point group data based on the slice additional information.
  • the three-dimensional data decoding device identifies a plurality of overlapping point cloud data, selects one of them, or merges the plurality of point cloud data.
  • the three-dimensional data decoding device may perform decoding using the slice additional information. For example, when a plurality of slices overlap, the three-dimensional data decoding apparatus performs decoding for each slice, performs processing (for example, smoothing or filtering) using the decoded plurality of data, and converts the point cloud data. May be generated. As a result, highly accurate decoding may be possible.
  • FIG. 71 is a flowchart of a three-dimensional data encoding process including a tile additional information generation process by the three-dimensional data encoding device according to the present embodiment.
  • the three-dimensional data encoding device determines a tile dividing method (S5031). Specifically, the three-dimensional data encoding device determines whether to use a division method based on top view (top_view) or another method (other) as a tile division method. In addition, the three-dimensional data encoding device determines the shape of the tile when the division method based on the top view is used. Further, the three-dimensional data encoding device determines whether a tile overlaps with another tile.
  • the three-dimensional data encoding device requires that the tile division method be a top method (top_view) based on top view. Is described in the tile additional information (S5033).
  • the three-dimensional data encoding device sets the tile division method based on top view (top_view).
  • the method other than the above is described in the tile additional information (S5034).
  • the three-dimensional data encoding device describes in the tile additional information that the shape of the tile as viewed from above is a square. (S5036).
  • the shape of the tile as viewed from above, which is determined in step S5031 is a circle (circle in S5035)
  • the three-dimensional data encoding device describes in the tile additional information that the shape of the tile as viewed from above is a circle. (S5037).
  • the three-dimensional data encoding device determines whether the tile overlaps with another tile (S5038). When the tile overlaps with another tile (Yes in S5038), the three-dimensional data encoding device describes that the tile is overlapped in the tile additional information (S5039). On the other hand, when the tile does not overlap with another tile (No in S5038), the three-dimensional data encoding device describes in the tile additional information that the tile does not overlap (S5040).
  • the three-dimensional data encoding device divides the tiles based on the tile division method determined in step S5031, encodes each tile, and sends out the generated encoded data and additional tile information (S5041).
  • FIG. 72 is a flowchart of a three-dimensional data decoding process using the tile additional information by the three-dimensional data decoding device according to the present embodiment.
  • the three-dimensional data decoding device analyzes the tile additional information included in the bit stream (S5051).
  • the three-dimensional data decoding device When the tile addition information indicates that the tile does not overlap with another tile (No in S5052), the three-dimensional data decoding device generates point group data of each tile by decoding each tile (S5053). ). Next, the three-dimensional data decoding device reconstructs the point cloud data from the point cloud data of each tile based on the tile division method and the tile shape indicated by the tile additional information (S5054).
  • the three-dimensional data decoding device when the tile addition information indicates that the tile overlaps with another tile (Yes in S5052), the three-dimensional data decoding device generates the point cloud data of each tile by decoding each tile. . In addition, the three-dimensional data decoding device specifies an overlapping portion of the tile based on the tile additional information (S5055). Note that the three-dimensional data decoding device may perform the decoding process on the overlapping part using a plurality of overlapping information. Next, the three-dimensional data decoding device reconstructs point cloud data from the point cloud data of each tile based on the tile division method, tile shape, and overlap information indicated by the tile additional information (S5056).
  • the three-dimensional data encoding device may transmit information indicating the type of object (road, building, tree, etc.) or attribute (dynamic information, static information, etc.) as additional information.
  • the encoding parameters may be defined in advance according to the object, and the three-dimensional data encoding device may notify the encoding parameter to the three-dimensional data decoding device by transmitting the type or attribute of the object.
  • the three-dimensional data encoding device may encode slice data in order from data in which object recognition or clustering is easy.
  • the three-dimensional data encoding device may perform encoding in order from slice data on which clustering has been completed earlier.
  • the three-dimensional data encoding device may transmit the encoded slice data in order.
  • the three-dimensional data encoding device may transmit slice data in descending order of decoding priority in the application. For example, when the priority of decoding dynamic information is high, the three-dimensional data encoding device may transmit slice data in order from slices grouped by dynamic information.
  • the three-dimensional data encoding apparatus may reorder the encoded data and then transmit the data. Further, when accumulating encoded data, the three-dimensional data encoding device may arrange the encoded data and then accumulate the encoded data.
  • the application requests the server (the three-dimensional data encoding device) to transmit a slice including desired data.
  • the server may transmit slice data required by the application, and may not transmit unnecessary slice data.
  • the application requests the server to send a tile containing desired data.
  • the server may transmit tile data required by the application, and may not transmit unnecessary tile data.
  • the three-dimensional data encoding device performs the processing shown in FIG. First, the three-dimensional data encoding device generates a plurality of encoded data by encoding a plurality of subspaces (for example, tiles) obtained by dividing a target space including a plurality of three-dimensional points (S5061). The three-dimensional data encoding device generates a bit stream including the plurality of encoded data and first information (for example, topview_shape) indicating the shape of the plurality of subspaces (S5062).
  • first information for example, topview_shape
  • the three-dimensional data encoding device can select an arbitrary shape from a plurality of types of subspace shapes, so that the encoding efficiency can be improved.
  • the shape is a shape in two dimensions or a shape in three dimensions of the plurality of subspaces.
  • the shape is a shape in which the plurality of sub-spaces are viewed from above. That is, the first information indicates the shape of the subspace as viewed from a specific direction (for example, from above). In other words, the first information indicates a shape in which the sub space is overlooked.
  • the shape is a rectangle or a circle.
  • the bit stream includes second information (for example, tile_overlap_flag) indicating whether or not the plurality of sub-sections overlap.
  • second information for example, tile_overlap_flag
  • the three-dimensional data encoding device can overlap the subspaces, the three-dimensional data encoding device can generate the subspace without complicating the shape of the subspace.
  • the bit stream includes third information (for example, type_of_divide) indicating whether the division method of the plurality of sub-sections is a division method using a top view.
  • third information for example, type_of_divide
  • the bit stream includes fourth information (for example, tile_height) indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-sections.
  • fourth information for example, tile_height
  • the bit stream includes fifth information (for example, global_position or relative_position) indicating a position of each of the plurality of sub-intervals.
  • fifth information for example, global_position or relative_position
  • the bit stream includes sixth information (for example, tile_number) indicating the number of the plurality of sub-intervals.
  • the bit stream includes seventh information indicating an interval between the plurality of sub-intervals.
  • 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 generates a plurality of encodings generated by encoding a plurality of sub-spaces (eg, tiles) obtained by dividing a target space including a plurality of three-dimensional points included in a bit stream.
  • the plurality of subspaces are restored by decoding data (S5071).
  • the three-dimensional data decoding apparatus restores the target space by combining the plurality of subspaces using first information (for example, topview_shape) indicating a shape of the plurality of subspaces included in the bitstream ( S5072).
  • first information for example, topview_shape
  • the three-dimensional data decoding device can recognize the position and range of each subspace in the target space by recognizing the shapes of the plurality of subspaces using the first information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces that are recognized.
  • the three-dimensional data decoding device can correctly combine a plurality of subspaces.
  • the shape is a shape in two dimensions or a shape in three dimensions of the plurality of subspaces.
  • the shape is a rectangle or a circle.
  • the bit stream includes second information (for example, tile_overlap_flag) indicating whether or not the plurality of sub-sections overlap.
  • the three-dimensional data decoding device combines the plurality of subspaces using the second information. For example, the three-dimensional data decoding device determines, using the second information, whether the subspaces overlap. When the subspaces overlap, the three-dimensional data decoding apparatus specifies an overlapping area, and performs a predetermined response to the specified overlapping area.
  • the bit stream includes third information (for example, type_of_divide) indicating whether the division method of the plurality of sub-sections is a division method using a top view.
  • third information for example, type_of_divide
  • the three-dimensional data decoding device when the third information indicates that the division method of the plurality of sub-sections is a division method using a top view, uses the first information to divide the plurality of sub-spaces. Join.
  • the bit stream includes fourth information (for example, tile_height) indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-sections.
  • fourth information for example, tile_height
  • the three-dimensional data decoding device combines the plurality of sub-spaces by further using the fourth information.
  • the three-dimensional data decoding device can recognize the height and the height of the plurality of subspaces using the fourth information, so that the position and range of each subspace in the target space can be grasped.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces that are recognized.
  • the bit stream includes fifth information (for example, global_position or relative_position) indicating a position of each of the plurality of sub-intervals.
  • the three-dimensional data decoding device combines the plurality of subspaces using the fifth information.
  • the three-dimensional data decoding device can recognize the position of each subspace in the target space by recognizing the positions of the plurality of subspaces using the fifth information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions of the plurality of subspaces that have been determined.
  • the bit stream includes sixth information (for example, tile_number) indicating the number of the plurality of sub-intervals.
  • the three-dimensional data decoding device combines the plurality of subspaces using the sixth information.
  • the bit stream includes seventh information indicating an interval between the plurality of sub-intervals.
  • the three-dimensional data decoding apparatus combines the plurality of subspaces using the seventh information.
  • the three-dimensional data decoding device can recognize the position and range of each subspace in the target space by recognizing the intervals of the plurality of subspaces using the seventh information.
  • the three-dimensional data decoding device can combine a plurality of subspaces based on the positions and ranges of the plurality of subspaces that are recognized.
  • the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above-described 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 to those skilled in the art may be applied to the present embodiment, and a configuration 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)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

三次元データ符号化方法は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し(S5061)、複数の符号化データと、複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する(S5062)。例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状であってもよい。例えば、前記形状は、矩形又は円であってもよい。例えば、ビットストリームは、複数のサブ区間が重複するか否かを示す第2情報を含んでもよい。

Description

三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
 本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 三次元データの符号化処理及び復号処理では、符号化効率を向上できることが望まれている。
 本開示は、符号化効率を向上できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供することを目的とする。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し、前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元し、前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報を用いて前記複数のサブ空間を結合することで前記対象空間を復元する。
 本開示は、符号化効率を向上できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。
図1は、実施の形態1に係る三次元データ符号化復号システムの構成を示す図である。 図2は、実施の形態1に係る点群データの構成例を示す図である。 図3は、実施の形態1に係る点群データ情報が記述されたデータファイルの構成例を示す図である。 図4は、実施の形態1に係る点群データの種類を示す図である。 図5は、実施の形態1に係る第1の符号化部の構成を示す図である。 図6は、実施の形態1に係る第1の符号化部のブロック図である。 図7は、実施の形態1に係る第1の復号部の構成を示す図である。 図8は、実施の形態1に係る第1の復号部のブロック図である。 図9は、実施の形態1に係る第2の符号化部の構成を示す図である。 図10は、実施の形態1に係る第2の符号化部のブロック図である。 図11は、実施の形態1に係る第2の復号部の構成を示す図である。 図12は、実施の形態1に係る第2の復号部のブロック図である。 図13は、実施の形態1に係るPCC符号化データに関わるプロトコルスタックを示す図である。 図14は、実施の形態1に係る符号化部のブロック図である。 図15は、実施の形態1に係る復号部のブロック図である。 図16は、実施の形態1に係る符号化処理のフローチャートである。 図17は、実施の形態1に係る復号処理のフローチャートである。 図18は、実施の形態2に係るISOBMFFの基本構造を示す図である。 図19は、実施の形態2に係るプロトコルスタックを示す図である。 図20は、実施の形態2に係るNALユニットをコーデック1用のファイルに格納する例を示す図である。 図21は、実施の形態2に係るNALユニットをコーデック2用のファイルに格納する例を示す図である。 図22は、実施の形態2に係る第1の多重化部の構成を示す図である。 図23は、実施の形態2に係る第1の逆多重化部の構成を示す図である。 図24は、実施の形態2に係る第2の多重化部の構成を示す図である。 図25は、実施の形態2に係る第2の逆多重化部の構成を示す図である。 図26は、実施の形態2に係る第1の多重化部による処理のフローチャートである。 図27は、実施の形態2に係る第2の多重化部による処理のフローチャートである。 図28は、実施の形態2に係る第1の逆多重化部及び第1の復号部による処理のフローチャートである。 図29は、実施の形態2に係る第2の逆多重化部及び第2の復号部による処理のフローチャートである。 図30は、実施の形態3に係る符号化部及び第3の多重化部の構成を示す図である。 図31は、実施の形態3に係る第3の逆多重化部及び復号部の構成を示す図である。 図32は、実施の形態3に係る第3の多重化部による処理のフローチャートである。 図33は、実施の形態3に係る第3の逆多重化部及び復号部による処理のフローチャートである。 図34は、実施の形態3に係る三次元データ格納装置による処理のフローチャートである。 図35は、実施の形態3に係る三次元データ取得装置による処理のフローチャートである。 図36は、実施の形態4に係る符号化部及び多重化部の構成を示す図である。 図37は、実施の形態4に係る符号化データの構成例を示す図である。 図38は、実施の形態4に係る符号化データ及びNALユニットの構成例を示す図である。 図39は、実施の形態4に係るpcc_nal_unit_typeのセマンティクス例を示す図である。 図40は、実施の形態4に係るNALユニットの送出順序の例を示す図である。 図41は、実施の形態4に係る三次元データ符号化装置による処理のフローチャートである。 図42は、実施の形態4に係る三次元データ復号装置による処理のフローチャートである。 図43は、実施の形態4に係る多重化処理のフローチャートである。 図44は、実施の形態4に係る逆多重化処理のフローチャートである。 図45は、実施の形態4に係る三次元データ符号化装置による処理のフローチャートである。 図46は、実施の形態4に係る三次元データ復号装置による処理のフローチャートである。 図47は、実施の形態5に係るスライス及びタイルの分割例を示す図である。 図48は、実施の形態5に係るスライス及びタイルの分割パターンの例を示す図である。 図49は、実施の形態6に係る第1の符号化部のブロック図である。 図50は、実施の形態6に係る第1の復号部のブロック図である。 図51は、実施の形態6に係るタイルの形状の例を示す図である。 図52は、実施の形態6に係るタイル及びスライスの例を示す図である。 図53は、実施の形態6に係る分割部のブロック図である。 図54は、実施の形態6に係る点群データを上面視した地図の例を示す図である。 図55は、実施の形態6に係るタイル分割の例を示す図である。 図56は、実施の形態6に係るタイル分割の例を示す図である。 図57は、実施の形態6に係るタイル分割の例を示す図である。 図58は、実施の形態6に係るサーバに保存されるタイルのデータの例を示す図である。 図59は、実施の形態6に係るタイル分割に関するシステムを示す図である。 図60は、実施の形態6に係るスライス分割の例を示す図である。 図61は、実施の形態6に係る依存関係の例を示す図である。 図62は、実施の形態6に係るデータの復号順の例を示す図である。 図63は、実施の形態6に係るタイルの符号化データの例を示す図である。 図64は、実施の形態6に係る結合部のブロック図である。 図65は、実施の形態6に係る符号化データ及びNALユニットの構成例を示す図である。 図66は、実施の形態6に係る符号化処理のフローチャートである。 図67は、実施の形態6に係る復号処理のフローチャートである。 図68は、実施の形態6に係るタイル付加情報のシンタックス例を示す図である。 図69は、実施の形態6に係る符号化復号システムのブロック図である。 図70は、実施の形態6に係るスライス付加情報のシンタックス例を示す図である。 図71は、実施の形態6に係る符号化処理のフローチャートである。 図72は、実施の形態6に係る復号処理のフローチャートである。 図73は、実施の形態6に係る符号化処理のフローチャートである。 図74は、実施の形態6に係る復号処理のフローチャートである。
 本開示の一態様に係る三次元データ符号化方法は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し、前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する。
 これによれば、当該三次元データ符号化方法は、複数種類のサブ空間の形状から任意の形状を選択できるので符号化効率を向上できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状であってもよい。
 例えば、前記形状は、矩形又は円であってもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報を含んでもよい。
 これによれば、当該三次元データ符号化方法は、サブ空間を重複させることができるので、サブ空間の形状を複雑にすることなくサブ空間を生成できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報を含んでもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報を含んでもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報を含んでもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報を含んでもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含んでもよい。
 本開示の一態様に係る三次元データ復号方法は、ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元し、前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報を用いて前記複数のサブ空間を結合することで前記対象空間を復元する。
 これによれば、当該三次元データ復号方法は、複数種類のサブ空間の形状から任意の形状を選択して生成された符号化効率が向上されたビットストリームを復号できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状であってもよい。
 例えば、前記形状は、矩形又は円であってもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報を含み、前記対象空間の復元では、前記第2情報をさらに用いて前記複数のサブ空間を結合してもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報を含み、前記第3情報により、前記複数のサブ区間の分割方法が上面視を用いた分割方法であることが示される場合、前記第1情報を用いて前記複数のサブ空間を結合してもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報を含み、前記対象空間の復元では、前記第4情報をさらに用いて前記複数のサブ空間を結合してもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報を含み、前記対象空間の復元では、前記第5情報をさらに用いて前記複数のサブ空間を結合してもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報を含み、前記対象空間の復元では、前記第6情報をさらに用いて前記複数のサブ空間を結合してもよい。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含み、前記対象空間の復元では、前記第7情報をさらに用いて前記複数のサブ空間を結合してもよい。
 また、本開示の一態様に係る三次元データ符号化装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し、前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する。
 これによれば、当該三次元データ符号化装置は、複数種類のサブ空間の形状から任意の形状を選択できるので符号化効率を向上できる。
 また、本開示の一態様に係る三次元データ復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元し、前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報を用いて前記複数のサブ空間を結合することで前記対象空間を復元する。
 これによれば、当該三次元データ復号装置は、複数種類のサブ空間の形状から任意の形状を選択して生成された符号化効率が向上されたビットストリームを復号できる。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 ポイントクラウドの符号化データを実際の装置又はサービスにおいて使用する際には、ネットワーク帯域を抑制するために用途に応じて必要な情報を送受信することが望ましい。しかしながら、これまで、三次元データの符号化構造にはそのような機能が存在せず、そのための符号化方法も存在しなかった。
 本実施の形態では、三次元のポイントクラウドの符号化データにおいて用途に応じて必要な情報を送受信する機能を提供するための三次元データ符号化方法及び三次元データ符号化装置、並びに、当該符号化データを復号する三次元データ復号方法及び三次元データ復号装置、並びに、当該符号化データを多重化する三次元データ多重化方法、並びに、当該符号化データを伝送する三次元データ伝送方法について説明する。
 特に、現在、点群データの符号化方法(符号化方式)として第1の符号化方法、及び第2の符号化方法が検討されているが、符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法が定義されておらず、このままでは符号化部におけるMUX処理(多重化)、又は、伝送或いは蓄積ができないという課題がある。
 また、PCC(Point Cloud Compression)のように、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するフォーマットをサポートする方法はこれまで存在しない。
 本実施の形態では、第1の符号化方法と第2の符号化方法の2つのコーデックが混在するPCC符号化データの構成、及び符号化データをシステムフォーマットへ格納する方法について説明する。
 まず、本実施の形態に係る三次元データ(点群データ)符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム4601と、三次元データ復号システム4602と、センサ端末4603と、外部接続部4604とを含む。
 三次元データ符号化システム4601は、三次元データである点群データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム4601は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム4601に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ符号化システム4601は、点群データ生成システム4611と、提示部4612と、符号化部4613と、多重化部4614と、入出力部4615と、制御部4616とを含む。点群データ生成システム4611は、センサ情報取得部4617と、点群データ生成部4618とを含む。
 センサ情報取得部4617は、センサ端末4603からセンサ情報を取得し、センサ情報を点群データ生成部4618に出力する。点群データ生成部4618は、センサ情報から点群データを生成し、点群データを符号化部4613へ出力する。
 提示部4612は、センサ情報又は点群データをユーザに提示する。例えば、提示部4612は、センサ情報又は点群データに基づく情報又は画像を表示する。
 符号化部4613は、点群データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部4614へ出力する。付加情報は、例えば、センサ情報を含む。
 多重化部4614は、符号化部4613から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
 入出力部4615(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部4616(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4616は、符号化及び多重化等の制御を行う。
 なお、センサ情報が符号化部4613又は多重化部4614へ入力されてもよい。また、入出力部4615は、点群データ又は符号化データをそのまま外部へ出力してもよい。
 三次元データ符号化システム4601から出力された伝送信号(多重化データ)は、外部接続部4604を介して、三次元データ復号システム4602に入力される。
 三次元データ復号システム4602は、符号化データ又は多重化データを復号することで三次元データである点群データを生成する。なお、三次元データ復号システム4602は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム4602に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ復号システム4602は、センサ情報取得部4621と、入出力部4622と、逆多重化部4623と、復号部4624と、提示部4625と、ユーザインタフェース4626と、制御部4627とを含む。
 センサ情報取得部4621は、センサ端末4603からセンサ情報を取得する。
 入出力部4622は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部4623へ出力する。
 逆多重化部4623は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部4624へ出力する。
 復号部4624は、符号化データを復号することで点群データを再構成する。
 提示部4625は、点群データをユーザに提示する。例えば、提示部4625は、点群データに基づく情報又は画像を表示する。ユーザインタフェース4626は、ユーザの操作に基づく指示を取得する。制御部4627(またはアプリ実行部)は、各処理部を制御する。つまり、制御部4627は、逆多重化、復号及び提示等の制御を行う。
 なお、入出力部4622は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部4625は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部4625は、ユーザインタフェース4626で取得されたユーザの指示に基づき、提示を行ってもよい。
 センサ端末4603は、センサで得られた情報であるセンサ情報を生成する。センサ端末4603は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
 センサ端末4603で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末4603と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
 外部接続部4604は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
 次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
 点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報とを含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
 三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
 1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
 図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
 位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
 次に、点群データの種類について説明する。図4は、点群データの種類を示す図である。図4に示すように、点群データには、静的オブジェクトと、動的オブジェクトとがある。
 静的オブジェクトは、任意の時間(ある時刻)の三次元点群データである。動的オブジェクトは、時間的に変化する三次元点群データである。以降、ある時刻の三次元点群データをPCCフレーム、又はフレームと呼ぶ。
 オブジェクトは、通常の映像データのように、ある程度領域が制限されている点群であってもよいし、地図情報のように領域が制限されていない大規模点群であってもよい。
 また、様々な密度の点群データがあり、疎な点群データと、密な点群データとが存在してもよい。
 以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。点群データ生成部4618は、センサ情報取得部4617で得られたセンサ情報に基づき点群データを生成する。点群データ生成部4618は、点群データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
 点群データ生成部4618は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、点群データ生成部4618は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、点群データ生成部4618は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、属性情報をレンダリングしてもよい。
 なお、図1では、点群データ生成システム4611は、三次元データ符号化システム4601に含まれるが、三次元データ符号化システム4601の外部に独立して設けられてもよい。
 符号化部4613は、点群データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には大きく以下の2種類がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
 復号部4624は、符号化データを予め規定された符号化方法に基づき復号することで点群データを復号する。
 多重化部4614は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部4614は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部4614は、さらに、センサ情報又は点群データに関連する属性情報を多重してもよい。
 多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RMPなどがある。
 逆多重化部4623は、多重化データからPCC符号化データ、その他のメディア、及び時刻情報などを抽出する。
 入出力部4615は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部4615は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
 通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
 有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
 また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
 図5は、第1の符号化方法の符号化を行う符号化部4613の例である第1の符号化部4630の構成を示す図である。図6は、第1の符号化部4630のブロック図である。第1の符号化部4630は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部4630は、位置情報符号化部4631と、属性情報符号化部4632と、付加情報符号化部4633と、多重化部4634とを含む。
 第1の符号化部4630は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部4630は、属性情報符号化部4632が、位置情報符号化部4631から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、GPCC(Geometry based PCC)とも呼ばれる。
 点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部4631に入力され、属性情報は属性情報符号化部4632に入力され、付加情報は付加情報符号化部4633に入力される。
 位置情報符号化部4631は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部4631は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
 属性情報符号化部4632は、位置情報符号化部4631で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部4632は、位置情報符号化部4631で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部4632は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
 付加情報符号化部4633は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
 多重化部4634は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
 次に、第1の符号化方法の復号を行う復号部4624の例である第1の復号部4640について説明する。図7は、第1の復号部4640の構成を示す図である。図8は、第1の復号部4640のブロック図である。第1の復号部4640は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部4640は、逆多重化部4641と、位置情報復号部4642と、属性情報復号部4643と、付加情報復号部4644とを含む。
 図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部4640に入力される。
 逆多重化部4641は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
 位置情報復号部4642は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部4642は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
 属性情報復号部4643は、位置情報復号部4642で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部4643は、位置情報復号部4642で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部4643は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
 また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
 付加情報復号部4644は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部4640は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
 次に、第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の符号化方法のいずれかを示すものとする。
 以下、本実施の形態に係るNALユニットの定義方法について説明する。例えば、HEVCなどの、これまでのコーデックでは、1つのコーデックに対して、1つのフォーマットのNALユニットが定義されている。しかし、PCCのように、第1の符号化方法と第2の符号化方法との2つのコーデック(以降、PCCコーデックと称する)が混在するフォーマットをサポートする方法はこれまで存在しない。
 まず、上述した第1の符号化部4630及び第2の符号化部4650の両方の機能を持つ符号化部4670、並びに、第1の復号部4640及び第2の復号部4660の両方の機能を持つ復号部4680について説明する。
 図14は、本実施の形態に係る符号化部4670のブロック図である。この符号化部4670は、上述した第1の符号化部4630及び第2の符号化部4650と、多重化部4671とを含む。多重化部4671は、第1の符号化部4630で生成された符号化データと第2の符号化部4650で生成された符号化データとを多重化し、得られた符号化データを出力する。
 図15は、本実施の形態に係る復号部4680のブロック図である。この復号部4680は、上述した第1の復号部4640及び第2の復号部4660と、逆多重化部4681とを含む。逆多重化部4681は、入力された符号化データから、第1の符号化方法が用いられている符号化データと、第2の符号化方法が用いられている符号化データとを抽出する。逆多重化部4681は、第1の符号化方法が用いられている符号化データを第1の復号部4640に出力し、第2の符号化方法が用いられている符号化データを第2の復号部4660に出力する。
 上記の構成により、符号化部4670は、第1の符号化方法及び第2の符号化方法を選択的に用いて点群データを符号化することができる。また、復号部4680は、第1の符号化方法を用いて符号化された符号化データ、第2の符号化方法を用いて符号化された符号化データ、及び、第1の符号化方法と第2の符号化方法との両方を用いて符号化された符号化データを復号できる。
 例えば、符号化部4670は、点群データ単位、又はフレーム単位で符号化方法(第1の符号化方法及び第2の符号化方法)を切り替えてもよい。また、符号化部4670は、符号化可能な単位で符号化方法を切り替えてもよい。
 符号化部4670は、例えば、PCCコーデックの識別情報を含む符号化データ(符号化ストリーム)を生成する。
 復号部4680に含まれる逆多重化部4681は、例えば、PCCコーデックの識別情報を用いて、データを識別する。逆多重化部4681は、当該データが第1の符号化方法で符号化されたデータである場合には、第1の復号部4640に当該データを出力し、当該データが第2の符号化方法で符号化されたデータである場合には、当該データを第2の復号部4660に出力する。
 なお、符号化部4670は、PCCコーデックの識別情報以外にも、両方の符号化方法を用いたか、いずれか一方の符号化方法を用いたかを示す情報を制御情報として送出してもよい。
 次に、本実施の形態に係る符号化処理について説明する。図16は、本実施の形態に係る符号化処理のフローチャートである。PCCコーデックの識別情報を用いることにより、複数コーデックに対応した符号化処理が可能となる。
 まず、符号化部4670は、PCCデータを第1の符号化方法、第2の符号化方法のいずれか一方又は両方のコーデックで符号化する(S4681)。
 使用したコーデックが第2の符号化方法である場合(S4682で第2の符号化方法)、符号化部4670は、NALユニットヘッダに含まれるpcc_codec_typeをNALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであることを示す値に設定する(S4683)。次に、符号化部4670は、NALユニットヘッダのpcc_nal_unit_typeに第2の符号化方法用のNALユニットの識別子を設定する(S4684)。そして、符号化部4670は、設定したNALユニットヘッダを有し、ペイロードに符号化データを含むNALユニットを生成する。そして、符号化部4670は、生成したNALユニットを送信する(S4685)。
 一方、使用したコーデックが第1の符号化方法である場合(S4682で第1の符号化方法)、符号化部4670は、NALユニットヘッダに含まれるpcc_codec_typeをNALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであることを示す値に設定する(S4686)。次に、符号化部4670は、NALユニットヘッダに含まれるpcc_nal_unit_typeに第1の符号化方法用のNALユニットの識別子を設定する(S4687)。次に、符号化部4670は、設定したNALユニットヘッダを有し、ペイロードに符号化データを含むNALユニットを生成する。そして、符号化部4670は、生成したNALユニットを送信する(S4685)。
 次に、本実施の形態に係る復号処理について説明する。図17は、本実施の形態に係る復号処理のフローチャートである。PCCコーデックの識別情報を用いることにより、複数コーデックに対応した復号処理が可能となる。
 まず、復号部4680は、NALユニットを受信する(S4691)。例えば、このNALユニットは、上述した符号化部4670における処理で生成されたものである。
 次に、復号部4680は、NALユニットヘッダに含まれるpcc_codec_typeが第1の符号化方法を示すか、第2の符号化方法を示すかを判定する(S4692)。
 pcc_codec_typeが第2の符号化方法を示す場合(S4692で第2の符号化方法)、復号部4680は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4693)。そして、第2の復号部4660は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4694)。そして、復号部4680は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4695)。
 一方、pcc_codec_typeが第1の符号化方法を示す場合(S4692で第1の符号化方法)、復号部4680は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4696)。そして、復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4697)。そして、復号部4680は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4698)。
 以上のように、本開示の一態様に係る三次元データ符号化装置は、三次元データ(例えば点群データ)を符号化することで符号化ストリームを生成し、前記符号化ストリームの制御情報(例えば、パラメータセット)に、第1符号化方法と第2符号化方法のうち、前記符号化に用いた符号化方法を示す情報(例えば、コーデックの識別情報)を格納する。
 これによれば、三次元データ復号装置は、当該三次元データ符号化装置で生成された符号化ストリームを復号する際に、制御情報に格納された情報を用いて符号化に用いられた符号化方法を判定できる。よって、三次元データ復号装置は、複数の符号化方法が用いられる場合においても正しく符号化ストリームを復号できる。
 例えば、前記三次元データは、位置情報を含む。三次元データ符号化装置は、前記符号化では、前記位置情報を符号化する。三次元データ符号化装置は、前記格納では、前記位置情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いた符号化方法を示す情報を格納する。
 例えば、前記三次元データは、位置情報と属性情報とを含む。三次元データ符号化装置は、前記符号化では、前記位置情報と前記属性情報とを符号化する。三次元データ符号化装置は、前記格納では、前記位置情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いた符号化方法を示す情報を格納し、前記属性情報の制御情報に、前記第1符号化方法と前記第2符号化方法のうち、前記属性情報の符号化に用いた符号化方法を示す情報を格納する。
 これによれば、位置情報と属性情報とに異なる符号化方法を用いることができるので、符号化効率を向上できる。
 例えば、前記三次元データ符号化方法は、さらに、前記符号化ストリームを1以上のユニット(例えば、NALユニット)に格納する。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで独立したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、codec1_nal_unit_type又はcodec2_nal_unit_type)を含む。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで共通した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、三次元データを符号化することで生成された符号化ストリームの制御情報(例えば、パラメータセット)に含まれる、第1符号化方法と第2符号化方法のうち、前記三次元データの符号化に用いられた符号化方法を示す情報(例えば、コーデックの識別情報)に基づき、符号化ストリームの符号化に用いられた符号化方法を判定し、判定した前記符号化方法を用いて前記符号化ストリームを復号する。
 これによれば、三次元データ復号装置は、符号化ストリームを復号する際に、制御情報に格納された情報を用いて符号化に用いられた符号化方法を判定できる。よって、三次元データ復号装置は、複数の符号化方法が用いられる場合においても正しく符号化ストリームを復号できる。
 例えば、前記三次元データは、位置情報を含み、前記符号化ストリームは、前記位置情報の符号化データを含む。三次元データ復号装置は、前記判定では、前記符号化ストリームに含まれる前記位置情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いられた符号化方法を示す情報に基づき、前記位置情報の符号化に用いられた符号化方法を判定する。三次元データ復号装置は、前記復号では、判定した前記位置情報の符号化に用いられた符号化方法を用いて前記位置情報の符号化データを復号する。
 例えば、前記三次元データは、位置情報と属性情報とを含み、前記符号化ストリームは、前記位置情報の符号化データと前記属性情報の符号化データとを含む。三次元データ復号装置は、前記判定では、前記符号化ストリームに含まれる前記位置情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記位置情報の符号化に用いられた符号化方法を示す情報に基づき、前記位置情報の符号化に用いられた符号化方法を判定し、前記符号化ストリームに含まれる前記属性情報の制御情報に含まれる、前記第1符号化方法と前記第2符号化方法のうち、前記属性情報の符号化に用いられた符号化方法を示す情報に基づき、前記属性情報の符号化に用いられた符号化方法を判定する。三次元データ復号装置は、前記復号では、判定した前記位置情報の符号化に用いられた符号化方法を用いて前記位置情報の符号化データを復号し、判定した前記属性情報の符号化に用いられた符号化方法を用いて前記属性情報の符号化データを復号する。
 これによれば、位置情報と属性情報とに異なる符号化方法を用いることができるので、符号化効率を向上できる。
 例えば、前記符号化ストリームは1以上のユニット(例えば、NALユニット)に格納されており、三次元データ復号装置は、さらに、前記1以上のユニットから前記符号化ストリームを取得する。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで独立したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで独立した定義を有する情報(例えば、codec1_nal_unit_type又はcodec2_nal_unit_type)を含む。
 例えば、前記ユニットは、前記第1符号化方法と前記第2符号化方法とで共通したフォーマットを有し、前記ユニットに含まれるデータの種別を示す情報であって、前記第1符号化方法と前記第2符号化方法とで共通した定義を有する情報(例えば、pcc_nal_unit_type)を含む。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態2)
 本実施の形態では、NALユニットをISOBMFFのファイルに格納する方法について説明する。
 ISOBMFF(ISO based media file format)は、ISO/IEC14496-12に規定されるファイルフォーマット規格である。ISOBMFFは、ビデオ、オーディオ、及びテキストなど様々なメディアを多重して格納できるフォーマットを規定しており、メディアに依存しない規格である。
 ISOBMFFの基本構造(ファイル)について説明する。ISOBMFFにおける基本単位はボックスである。ボックスはtype、length、dataで構成され、様々なtypeのボックスを組み合わせた集合がファイルである。
 図18は、ISOBMFFの基本構造(ファイル)を示す図である。ISOBMFFのファイルは、主に、ファイルのブランドを4CC(4文字コード)で示すftyp、制御情報などのメタデータを格納するmoov、及び、データを格納するmdatなどのボックスを含む。
 ISOBMFFのファイルへのメディア毎の格納方法は別途規定されており、例えば、AVCビデオ及びHEVCビデオの格納方法は、ISO/IEC14496-15に規定される。ここで、PCC符号化データを蓄積又は伝送するために、ISOBMFFの機能を拡張して使用することが考えられるが、PCC符号化データをISOBMFFのファイルに格納する規定はまだない。そこで、本実施の形態では、PCC符号化データをISOBMFFのファイルに格納する方法について説明する。
 図19は、PCCコーデック共通のNALユニットをISOBMFFのファイルに格納する場合のプロトコルスタックを示す図である。ここでは、PCCコーデック共通のNALユニットがISOBMFFのファイルに格納される。NALユニットはPCCコーデック共通であるが、NALユニットには複数のPCCコーデックが格納されるため、それぞれのコーデックに応じた格納方法(Carriage of Codec1、Carriage of Codec2)を規定することが望ましい。
 次に、複数のPCCコーデックをサポートする共通のPCC NALユニットをISOBMFFのファイルへ格納する方法について説明する。図20は、共通のPCC NALユニットをコーデック1の格納方法(Carriage of Codec1)のISOBMFFのファイルに格納する例を示す図である。図21は、共通のPCC NALユニットをコーデック2の格納方法(Carriage of Codec2)のISOBMFFのファイルに格納する例を示す図である。
 ここで、ftypは、ファイルフォーマットを識別するための重要な情報であり、ftyp用に、コーデック毎に異なる識別子が定義される。第1の符号化方法(符号化方式)で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc1に設定される。第2の符号化方法で符号化されたPCC符号化データがファイルに格納される場合は、ftyp=pcc2に設定される。
 ここで、pcc1は、PCCのコーデック1(第1の符号化方法)が用いられることを示す。pcc2は、PCCのコーデック2(第2の符号化方法)が用いられることを示す。つまり、pcc1及びpcc2は、データがPCC(三次元データ(点群データ)の符号データ)であることを示し、かつ、PCCコーデック(第1の符号化方法及び第2の符号化方法)を示す。
 以下、NALユニットをISOBMFFのファイルへ格納する方法について説明する。多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec1である場合にはISOBMFFのftypにpcc1を記載する。
 また、多重化部は、NALユニットヘッダを解析し、pcc_codec_type=Codec2である場合にはISOBMFFのftypにpcc2を記載する。
 また、多重化部は、pcc_nal_unit_typeがメタデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。多重化部は、pcc_nal_unit_typeがデータである場合は、NALユニットを所定の方法で、例えばmoov又はmdatに格納する。
 例えば、多重化部は、HEVCと同様にNALユニットにNALユニットサイズを格納してもよい。
 本格納方法により、逆多重化部(システムレイヤ)においてファイルに含まれるftypを解析することで、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することが可能となる。さらに、上記の通り、PCC符号化データが第1の符号化方法で符号化されたか、第2の符号化方法で符号化されたかを判定することで、両方の符号化方法で符号化された符号化データが混在するデータからいずれか一方の符号化方法で符号化された符号化データを抽出することができる。これにより、符号化データを伝送する際に、伝送されるデータ量を抑制することができる。また、本格納方法により、第1の符号化方法と第2の符号化方法とで、異なるデータ(ファイル)フォーマットを設定することなく、共通のデータフォーマットを用いることができる。
 なお、ISOBMFFにおけるftypなど、システムレイヤのメタデータにコーデックの識別情報が示される場合は、多重化部は、pcc_nal_unit_typeを削除したNALユニットをISOBMFFのファイルに格納してもよい。
 次に、本実施の形態に係る三次元データ符号化システム(三次元データ符号化装置)が備える多重化部、及び、本実施の形態に係る三次元データ復号システム(三次元データ復号装置)が備える逆多重化部の構成及び動作について説明する。
 図22は、第1の多重化部4710の構成を示す図である。第1の多重化部4710は、第1の符号化部4630で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4711を備える。この第1の多重化部4710は、例えば、図1に示す多重化部4614に含まれる。
 図23は、第1の逆多重化部4720の構成を示す図である。第1の逆多重化部4720は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第1の復号部4640に出力するファイル逆変換部4721を備える。この第1の逆多重化部4720は、例えば、図1に示す逆多重化部4623に含まれる。
 図24は、第2の多重化部4730の構成を示す図である。第2の多重化部4730は、第2の符号化部4650で生成された符号化データ及び制御情報(NALユニット)をISOBMFFのファイルに格納することで多重化データ(ファイル)を生成するファイル変換部4731を備える。この第2の多重化部4730は、例えば、図1に示す多重化部4614に含まれる。
 図25は、第2の逆多重化部4740の構成を示す図である。第2の逆多重化部4740は、多重化データ(ファイル)から符号化データ及び制御情報(NALユニット)を取得し、取得した符号化データ及び制御情報を第2の復号部4660に出力するファイル逆変換部4741を備える。この第2の逆多重化部4740は、例えば、図1に示す逆多重化部4623に含まれる。
 図26は、第1の多重化部4710による多重化処理のフローチャートである。まず、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4701)。
 pcc_codec_typeが第2の符号化方法を示す場合(S4702で第2の符号化方法)、第1の多重化部4710は、当該NALユニットを処理しない(S4703)。
 一方、pcc_codec_typeが第2の符号化方法を示す場合(S4702で第1の符号化方法)、第1の多重化部4710は、ftypにpcc1を記載する(S4704)。つまり、第1の多重化部4710は、第1の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第1の多重化部4710は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4705)。そして、第1の多重化部4710は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4706)。
 図27は、第2の多重化部4730による多重化処理のフローチャートである。まず、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるかを判定する(S4711)。
 pcc_unit_typeが第2の符号化方法を示す場合(S4712で第2の符号化方法)、第2の多重化部4730は、ftypにpcc2を記載する(S4713)。つまり、第2の多重化部4730は、第2の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第2の多重化部4730は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_nal_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4714)。そして、第2の多重化部4730は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4715)。
 一方、pcc_unit_typeが第1の符号化方法を示す場合(S4712で第1の符号化方法)、第2の多重化部4730は、当該NALユニットを処理しない(S4716)。
 なお、上記処理は、PCCデータを第1の符号化方法、及び第2の符号化方法のいずれか一方で符号化する例を示している。第1の多重化部4710及び第2の多重化部4730は、NALユニットのコーデックタイプを識別することにより、所望のNALユニットをファイルに格納する。なお、NALユニットヘッダ以外に、PCCコーデックの識別情報が含まれる場合には、第1の多重化部4710及び第2の多重化部4730は、ステップS4701及びS4711において、NALユニットヘッダ以外に含まれるPCCコーデックの識別情報を用いて、コーデックタイプ(第1の符号化方法又は第2の符号化方法)を識別してもよい。
 また、第1の多重化部4710及び第2の多重化部4730は、ステップS4706及びS4714において、データをファイルに格納する際に、NALユニットヘッダからpcc_nal_unit_typeを削除したうえでファイルに格納してもよい。
 図28は、第1の逆多重化部4720及び第1の復号部4640による処理を示すフローチャートである。まず、第1の逆多重化部4720は、ISOBMFFのファイルに含まれるftypを解析する(S4721)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4722で第2の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4723)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。第1の復号部4640は、当該NALユニットを処理しない(S4724)。
 一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4722で第1の符号化方法)、第1の逆多重化部4720は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4725)。また、第1の逆多重化部4720は、判断の結果を第1の復号部4640に伝達する。
 第1の復号部4640は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4726)。そして、第1の復号部4640は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4727)。
 図29は、第2の逆多重化部4740及び第2の復号部4660による処理を示すフローチャートである。まず、第2の逆多重化部4740は、ISOBMFFのファイルに含まれるftypを解析する(S4731)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4732で第2の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4733)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。
 第2の復号部4660は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4734)。そして、第2の復号部4660は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4735)。
 一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4732で第1の符号化方法)、第2の逆多重化部4740は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4736)。また、第2の逆多重化部4740は、判断の結果を第2の復号部4660に伝達する。第2の復号部4660は、当該NALユニットを処理しない(S4737)。
 このように、例えば、第1の逆多重化部4720又は第2の逆多重化部4740において、NALユニットのコーデックタイプを識別することにより、早い段階でコーデックタイプを識別できる。さらに、所望のNALユニットを第1の復号部4640又は第2の復号部4660に入力し、不要なNALユニットを取り除くことができる。この場合、第1の復号部4640又は第2の復号部4660において、コーデックの識別情報を解析する処理は不要になる可能性がある。なお、第1の復号部4640又は第2の復号部4660で再度NALユニットタイプを参照してコーデックの識別情報を解析する処理を実施してもよい。
 また、第1の多重化部4710又は第2の多重化部4730においてNALユニットヘッダからpcc_nal_unit_typeを削除されている場合には、第1の逆多重化部4720又は第2の逆多重化部4740は、NALユニットにpcc_nal_unit_typeを付与したうえで第1の復号部4640又は第2の復号部4660へ出力してもよい。
 (実施の形態3)
 本実施の形態では、実施の形態1で説明した、複数のコーデックに対応した符号化部4670及び復号部4680に対応する、多重化部および逆多重化部について説明する。図30は、本実施の形態に係る符号化部4670及び第3の多重化部4750の構成を示す図である。
 符号化部4670は、点群データを、第1の符号化方法、及び第2の符号化方法のいずれか一方又は両方の方式を用いて符号化する。符号化部4670は、点群データ単位、又はフレーム単位で符号化方法(第1の符号化方法及び第2の符号化方法)を切り替えてもよい。また、符号化部4670は、符号化可能な単位で符号化方法を切り替えてもよい。
 符号化部4670は、PCCコーデックの識別情報を含む符号化データ(符号化ストリーム)を生成する。
 第3の多重化部4750は、ファイル変換部4751を備える。ファイル変換部4751は、符号化部4670から出力されたNALユニットをPCCデータのファイルに変換する。ファイル変換部4751は、NALユニットヘッダに含まれるコーデック識別情報を解析し、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるか、両方の方式で符号化されたデータであるかを判定する。ファイル変換部4751は、ftypにコーデックを識別可能なブランド名を記載する。例えば、両方の方式で符号化されたことを示す場合、ftypにpcc3が記載される。
 なお、符号化部4670が、NALユニット以外にPCCコーデックの識別情報を記載している場合、ファイル変換部4751は、当該識別情報を用いて、PCCコーデック(符号化方法)を判定してもよい。
 図31は、本実施の形態に係る第3の逆多重化部4760及び復号部4680の構成を示す図である。
 第3の逆多重化部4760は、ファイル逆変換部4761を備える。ファイル逆変換部4761は、ファイルに含まれるftypを解析し、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるか、両方の方式で符号化されたデータであるかを判定する。
 PCC符号化データがいずれか一方の符号化方法で符号化されている場合、第1の復号部4640及び第2の復号部4660のうち、対応する復号部にデータが入力され、もう一方の復号部にはデータが入力されない。PCC符号化データが両方の符号化方法で符号化されている場合、両方式に対応する復号部4680にデータが入力される。
 復号部4680は、PCC符号化データを、第1の符号化方法及び第2の符号化方法のいずれか一方又は両方の方式を用いて復号する。
 図32は、本実施の形態に係る第3の多重化部4750による処理を示すフローチャートである。
 まず、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_codec_typeを解析することで、使用されているコーデックが第1の符号化方法であるか、第2の符号化方法であるか、第1の符号化方法及び第2の符号化方法の両方であるかを判定する(S4741)。
 第2の符号化方法が使用されている場合(S4742でYes、かつ、S4743で第2の符号化方法)、第3の多重化部4750は、ftypにpcc2を記載する(S4744)。つまり、第3の多重化部4750は、第2の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4745)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
 一方、第1の符号化方法が使用されている場合(S4742でYes、かつ、S4743で第1の符号化方法)、第3の多重化部4750は、ftypにpcc1を記載する(S4747)。つまり、第3の多重化部4750は、第1の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4748)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
 一方、第1の符号化方法と第2の符号化方法との両方の符号化方法が使用されている場合(S4742でNo)、第3の多重化部4750は、ftypにpcc3を記載する(S4749)。つまり、第3の多重化部4750は、両方の符号化方法で符号化されたデータがファイルに格納されていることを示す情報をftypに記載する。
 次に、第3の多重化部4750は、NALユニットヘッダに含まれるpcc_nal_unit_typeを解析し、pcc_unit_typeで示されるデータタイプに応じた所定の方法でデータをボックス(moov又はmdat等)に格納する(S4750)。そして、第3の多重化部4750は、上記ftyp及び上記ボックスを含むISOBMFFのファイルを作成する(S4746)。
 図33は、第3の逆多重化部4760及び復号部4680による処理を示すフローチャートである。まず、第3の逆多重化部4760は、ISOBMFFのファイルに含まれるftypを解析する(S4761)。ftypで示されるコーデックが第2の符号化方法(pcc2)である場合(S4762でYes、かつS4763で第2の符号化方法)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが第2の符号化方法で符号化されたデータであると判断する(S4764)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
 復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第2の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4765)。そして、復号部4680は、第2の符号化方法の復号処理を用いてPCCデータを復号する(S4766)。
 一方、ftypで示されるコーデックが第1の符号化方法(pcc1)である場合(S4762でYes、かつS4763で第1の符号化方法)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが第1の符号化方法で符号化されたデータであると判断する(S4767)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
 復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、第1の符号化方法用のNALユニットの識別子であるとしてデータを識別する(S4768)。そして、復号部4680は、第1の符号化方法の復号処理を用いてPCCデータを復号する(S4769)。
 一方、ftypで両方の符号化方法が用いられていること(pcc3)が示される場合(S4762でNo)、第3の逆多重化部4760は、NALユニットのペイロードに含まれるデータが、第1の符号化方法と第2符号化方法との両方の符号化方法で符号化されたデータであると判断する(S4770)。また、第3の逆多重化部4760は、判断の結果を復号部4680に伝達する。
 復号部4680は、NALユニットヘッダに含まれるpcc_nal_unit_typeが、pcc_codec_typeに記載されるコーデック用のNALユニットの識別子であるとしてデータを識別する(S4771)。そして、復号部4680は、両方の符号化方法の復号処理を用いてPCCデータを復号する(S4772)。つまり、復号部4680は、第1の符号化方法で符号化されたデータを、第1の符号化方法の復号処理を用いて復号し、第2の符号化方法で符号化されたデータを、第2の符号化方法の復号処理を用いて復号する。
 以下、本実施の形態の変形例を説明する。ftypに示されるブランドの種類として、以下の種類が識別情報で示されてもよい。また、以下に示す複数の種類の組み合わせが識別情報で示されてもよい。
 識別情報は、PCC符号化前の元データのオブジェクトが、領域が制限されている点群であるか、地図情報のように領域が制限されていない大規模点群であるかを示してもよい。
 識別情報は、PCC符号化前の元データが、静的オブジェクトであるか、動的オブジェクトであるかを示してもよい。
 上述のように、識別情報は、PCC符号化データが、第1の符号化方法で符号化されたデータであるか、第2の符号化方法で符号化されたデータであるかを示してもよい。
 識別情報は、PCC符号化において用いたアルゴリズムを示してもよい。ここで、アルゴリズムとは、例えば、第1の符号化方法又は第2の符号化方法において使用可能な符号化方法である。
 識別情報は、PCC符号化データのISOBMFFのファイルへの格納方法の違いを示してもよい。例えば、識別情報は、使用された格納方法が、蓄積用の格納方法であるか、ダイナミックストリーミングのようなリアルタイム送出用の格納方法であるかを示してもよい。
 また、実施の形態2及び実施の形態3では、ファイルフォーマットとしてISOBMFFが用いられる例に説明したが、その他の方式が用いられてもよい。例えば、MPEG-2 TS Systems、MPEG-DASH、MMT、又はRMPにPCC符号化データを格納する際にも本実施の形態と同様の方法を用いてもよい。
 また、上記では、ftypに識別情報等のメタデータを格納する例を示したが、ftyp以外にこれらのメタデータが格納されてもよい。例えば、これらのメタデータがmoovに格納されてもよい。
 以上のように、三次元データ格納装置(又は三次元データ多重化装置、又は三次元データ符号化装置)は、図34に示す処理を行う。
 まず、三次元データ格納装置(例えば、第1の多重化部4710、第2の多重化部4730又は第3の多重化部4750を含む)は、点群データが符号化された符号化ストリームが格納された1以上のユニット(例えばNALユニット)を取得する(S4781)。次に、三次元データ格納装置は、1以上のユニットをファイル(例えばISOBMFFのファイル)に格納する(S4782)。また、三次元データ格納装置は、前記格納(S4782)では、ファイルに格納されているデータが、点群データが符号化されたデータであることを示す情報(例えばpcc1、pcc2又はpcc3)を、前記ファイルの制御情報(例えばftyp)に格納する。
 これによれば、当該三次元データ格納装置で生成されたファイルを処理する装置では、ファイルの制御情報を参照して、当該ファイルに格納されているデータが点群データの符号化データであるか否かを早期に判定できる。よって、当該装置の処理量の低減又は処理の高速化を実現できる。
 例えば、前記情報は、さらに、第1符号化方法と第2符号化方法のうち、前記点群データの符号化に用いられた符号化方法を示す。なお、ファイルに格納されているデータが、点群データが符号化されたデータであることと、第1符号化方法と第2符号化方法のうち、点群データの符号化に用いられた符号化方法とは、単一の情報で示されてもよいし、異なる情報で示されてもよい。
 これによれば、当該三次元データ格納装置で生成されたファイルを処理する装置では、ファイルの制御情報を参照して、当該ファイルに格納されているデータに使用されたコーデックを早期に判定できる。よって、当該装置の処理量の低減又は処理の高速化を実現できる。
 例えば、前記第1符号化方法は、点群データの位置をN(Nは2以上の整数)分木で表した位置情報を符号化し、前記位置情報を用いて属性情報を符号化する方式(GPCC)であり、前記第2符号化方法は、点群データから二次元画像を生成し、前記二次元画像を映像符号化方法を用いて符号化する方式(VPCC)である。
 例えば、前記ファイルは、ISOBMFF(ISO based media file format)に準拠する。
 例えば、三次元データ格納装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、以上のように、三次元データ取得装置(又は三次元データ逆多重化装置、又は三次元データ復号装置)は、図35に示す処理を行う。
 三次元データ取得装置(例えば、第1の逆多重化部4720、第2の逆多重化部4740又は第3の逆多重化部4760を含む)は、点群データが符号化された符号化ストリームが格納された1以上のユニット(例えばNALユニット)が格納されたファイル(例えばISOBMFFのファイル)を取得する(S4791)。次に、三次元データ取得装置は、ファイルから、1以上のユニットを取得する(S4792)。また、ファイルの制御情報(例えばftyp)は、ファイルに格納されているデータが、点群データが符号化されたデータであることを示す情報(例えばpcc1、pcc2又はpcc3)を含む。
 例えば、三次元データ取得装置は、前記情報を参照して、ファイルに格納されているデータが、点群データが符号化されたデータであるか否かを判定する。また、三次元データ取得装置は、ファイルに格納されているデータが、点群データが符号化されたデータであると判定した場合、1以上のユニットに含まれる点群データが符号化されたデータを復号することで点群データを生成する。または、三次元データ取得装置は、ファイルに格納されているデータが、点群データが符号化されたデータであると判定した場合、1以上のユニットに含まれるデータが、点群データが符号化されたデータであることを示す情報を、後段の処理部(例えば、第1の復号部4640、第2の復号部4660又は復号部4680)に出力(通知)する。
 これによれば、当該三次元データ取得装置は、ファイルの制御情報を参照して、当該ファイルに格納されているデータが点群データの符号化データであるか否かを早期に判定できる。よって、当該三次元データ取得装置又は後段の装置の処理量の低減又は処理の高速化を実現できる。
 例えば、前記情報は、さらに、第1符号化方法と第2符号化方法のうち、前記符号化に用いた符号化方法を示す。なお、ファイルに格納されているデータが、点群データが符号化されたデータであることと、第1符号化方法と第2符号化方法のうち、点群データの符号化に用いられた符号化方法とは、単一の情報で示されてもよいし、異なる情報で示されてもよい。
 これによれば、当該三次元データ取得装置は、ファイルの制御情報を参照して、当該ファイルに格納されているデータに使用されたコーデックを早期に判定できる。よって、当該三次元データ取得装置又は後段の装置の処理量の低減又は処理の高速化を実現できる。
 例えば、三次元データ取得装置は、前記情報に基づき、第1符号化方法で符号化されたデータと第2符号化方法で符号化されたデータとを含む符号化された点群データから、いずれか一方の符号化方法で符号化されたデータを取得する。
 例えば、前記第1符号化方法は、点群データの位置をN(Nは2以上の整数)分木で表した位置情報を符号化し、前記位置情報を用いて属性情報を符号化する方式(GPCC)であり、前記第2符号化方法は、点群データから二次元画像を生成し、前記二次元画像を映像符号化方法を用いて符号化する方式(VPCC)である。
 例えば、前記ファイルは、ISOBMFF(ISO based media file format)に準拠する。
 例えば、三次元データ取得装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態4)
 本実施の形態では、上述した第1の符号化部4630、又は第2の符号化部4650で生成される符号化データ(位置情報(Geometry)、属性情報(Attribute)、付加情報(Metadata))の種別、及び付加情報(メタデータ)の生成方法、及び多重化部における多重処理について説明する。なお、付加情報(メタデータ)は、パラメータセット、又は制御情報と表記することもある。
 本実施の形態では、図4で説明した動的オブジェクト(時間的に変化する三次元点群データ)を例に説明するが、静的オブジェクト(任意の時刻の三次元点群データ)の場合でも同様の方法を用いてもよい。
 図36は、本実施の形態に係る三次元データ符号化装置に含まれる符号化部4801及び多重化部4802の構成を示す図である。符号化部4801は、例えば、上述した第1の符号化部4630又は第2の符号化部4650に対応する。多重化部4802は、上述した多重化部4634又は46456に対応する。
 符号化部4801は、複数のPCC(Point Cloud Compression)フレームの点群データを符号化し、複数の位置情報、属性情報及び付加情報の符号化データ(Multiple Compressed Data)を生成する。
 多重化部4802は、複数のデータ種別(位置情報、属性情報及び付加情報)のデータをNALユニット化することで、データを復号装置におけるデータアクセスを考慮したデータ構成に変換する。
 図37は、符号化部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)で表す。また、図37では、属性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の符号化方法では、符号化属性データは符号化位置データに依存する。
 また、図37では2種類の属性情報(属性Xと属性Y)が存在する場合の例を示している。2種類の属性情報がある場合は、例えば、2つの符号化部により、それぞれのデータ及びメタデータが生成される。また、例えば、属性情報の種類毎に属性シーケンスが定義され、属性情報の種類毎に属性SPSが生成される。
 なお、図37では、位置情報が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ユニットへの格納方法を説明する。
 例えば、符号化データの種類毎にデータフォーマットが規定される。図38は、符号化データ及びNALユニットの例を示す図である。
 例えば、図38に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。また、符号化データは、ヘッダを含まなくてもよい。
 ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
 ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
 なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
 多重化部4802は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図39は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
 図39に示すように、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は、参照先のデータを先に送出する。
 図40は、NALユニットの送出順の例を示す図である。図40は、位置情報優先と、パラメータ優先と、データ統合との3つの例を示す。
 位置情報優先の送出順序は、位置情報に関する情報と、属性情報に関する情報との各々をまとめて送出する例である。この送出順序の場合、位置情報に関する情報の送出が属性情報に関する情報の送出よりも早く完了する。
 例えば、この送出順序を用いることで、属性情報を復号しない復号装置は、属性情報の復号を無視することで、処理しない時間を設けることができる可能性がある。また、例えば、位置情報を早く復号したい復号装置の場合、位置情報の符号化データを早く得ることにより、より早く位置情報を復号することができる可能性がある。
 なお、図40では、属性XSPSと属性YSPSを統合し、属性SPSと記載しているが、属性XSPSと属性YSPSとを個別に配置してもよい。
 パラメータセット優先の送出順序では、パラメータセットが先に送出され、データが後で送出される。
 以上のようにNALユニット送出順序の制約に従えば、多重化部4802は、NALユニットをどのような順序で送出してもよい。例えば、順序識別情報が定義され、多重化部4802は、複数パターンの順序でNALユニットを送出する機能を有してもよい。例えばストリームPSにNALユニットの順序識別情報が格納される。
 三次元データ復号装置は、順序識別情報に基づき復号を行ってもよい。三次元データ復号装置から三次元データ符号化装置に所望の送出順序が指示され、三次元データ符号化装置(多重化部4802)は、指示された送出順序に従って送出順序を制御してもよい。
 なお、多重化部4802は、データ統合の送出順序のように、送出順序の制約に従う範囲であれば、複数の機能をマージした符号化データを生成してもよい。例えば、図40に示すように、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には、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
 以下、順序識別情報に係る処理について説明する。図41は、NALユニットの送出順序に係る三次元データ符号化装置(符号化部4801及び多重化部4802)による処理のフローチャートである。
 まず、三次元データ符号化装置は、NALユニットの送出順序(位置情報優先又はパラメータセット優先)を決定する(S4801)。例えば、三次元データ符号化装置は、ユーザ又は外部装置(例えば三次元データ復号装置)からの指定に基づき送出順序を決定する。
 決定された送出順序が位置情報優先である場合(S4802で位置情報優先)、三次元データ符号化装置は、ストリームPSに含まれる順序識別情報を、位置情報優先に設定する(S4803)。つまり、この場合、順序識別情報は、位置情報優先の順序でNALユニットが送出されることを示す。そして、三次元データ符号化装置は、位置情報優先の順序でNALユニットを送出する(S4804)。
 一方、決定された送出順序がパラメータセット優先である場合(S4802でパラメータセット優先)、三次元データ符号化装置は、ストリームPSに含まれる順序識別情報をパラメータセット優先に設定する(S4805)。つまり、この場合、順序識別情報は、パラメータセット優先の順序でNALユニットが送出されることを示す。そして、三次元データ符号化装置は、パラメータセットパラメータセット優先の順序でNALユニットを送出する(S4806)。
 図42は、NALユニットの送出順序に係る三次元データ復号装置による処理のフローチャートである。まず、三次元データ復号装置は、ストリームPSに含まれる順序識別情報を解析する(S4811)。
 順序識別情報で示される送出順序が位置情報優先である場合(S4812で位置情報優先)、三次元データ復号装置は、NALユニットの送出順序が位置情報優先であるものとして、NALユニットを復号する(S4813)。
 一方、順序識別情報で示される送出順序がパラメータセット優先である場合(S4812でパラメータセット優先)、三次元データ復号装置は、NALユニットの送出順序がパラメータセット優先であるものとして、NALユニットを復号する(S4814)。
 例えば、三次元データ復号装置は、属性情報を復号しない場合、ステップS4813において、全てのNALユニットを取得せずに、位置情報に関するNALユニットを取得し、取得したNALユニットから位置情報を復号してもよい。
 次に、AU及びGOFの生成に係る処理について説明する。図43は、NALユニットの多重化におけるAU及びGOF生成に係る三次元データ符号化装置(多重化部4802)による処理のフローチャートである。
 まず、三次元データ符号化装置は、符号化データの種類を判定する(S4821)。具体的には、三次元データ符号化装置は、処理対象の符号化データがAU先頭のデータであるか、GOF先頭のデータであるか、それ以外のデータであるかを判定する。
 符号化データがGOF先頭のデータである場合(S4822でGOF先頭)、三次元データ符号化装置は、GOFヘッダ及びAUヘッダをGOFに属する符号化データの先頭に配置してNALユニットを生成する(S4823)。
 符号化データがAU先頭のデータである場合(S4822でAU先頭)、三次元データ符号化装置は、AUヘッダをAUに属する符号化データの先頭に配置してNALユニットを生成する(S4824)。
 符号化データがGOF先頭及びAU先頭のいずれでもない場合(S4822でGOF先頭、AU先頭以外)、三次元データ符号化装置は、符号化データが属するAUのAUヘッダの後に符号化データを配置してNALユニットを生成する(S4825)。
 次に、AU及びGOFへのアクセスに係る処理について説明する。図44は、NALユニットの逆多重化におけるAU及びGOFのアクセスに係る三次元データ復号装置の処理のフローチャートである。
 まず、三次元データ復号装置は、NALユニットに含まれるnal_unit_typeを解析することでNALユニットに含まれる符号化データの種類を判定する(S4831)。具体的には、三次元データ復号装置は、NALユニットに含まれる符号化データが、AU先頭のデータであるか、GOF先頭のデータであるか、それ以外のデータであるかを判定する。
 NALユニットに含まれる符号化データがGOF先頭のデータである場合(S4832のGOF先頭)、三次元データ復号装置は、NALユニットがランダムアクセスの開始位置であると判断して、当該NALユニットにアクセスし、復号処理を開始する(S4833)。
 一方、NALユニットに含まれる符号化データがAU先頭のデータである場合(S4832でAU先頭)、三次元データ復号装置は、NALユニットがAU先頭であると判断して、NALユニットに含まれるデータにアクセスし、当該AUを復号する(S4834)。
 一方、NALユニットに含まれる符号化データが、GOF先頭及びAU先頭のいずれでもない場合(S4832でGOF先頭、AU先頭以外)、三次元データ復号装置は、当該NALユニットを処理しない。
 以上のように、三次元データ符号化装置は、図45に示す処理を行う。三次元データ符号化装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を符号化する。三次元データは、時刻毎の位置情報と属性情報とを含む。
 まず、三次元データ符号化装置は、位置情報を符号化する(S4841)。次に、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して符号化する(S4842)。ここで、図37に示すように、同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。つまり、三次元データ符号化装置は、処理対象の属性情報を、当該処理対象の属性情報と同じアクセスユニットに含まれる位置情報を参照して符号化する。
 これによれば、三次元データ符号化装置は、アクセスユニットを用いて符号化における参照の制御を容易化できる。よって、三次元データ符号化装置は符号化処理の処理量を低減できる。
 例えば、三次元データ符号化装置は、符号化された位置情報(符号化位置データ)と、符号化された属性情報(符号化属性データ)と、処理対象の属性情報の参照先の位置情報を示す情報とを含むビットストリームを生成する。
 例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。
 例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。
 例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。
 例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。
 例えば、三次元データ符号化装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号可能なように符号化する。つまり、GOFはランダムアクセス単位である。
 例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、以上のように、三次元データ復号装置は、図46に示す処理を行う。三次元データ復号装置は、時系列の三次元データ(例えば動的オブジェクトの点群データ)を復号する。三次元データは、時刻毎の位置情報と属性情報とを含む。同一時刻の位置情報と属性情報とはアクセスユニット(AU)を構成する。
 まず、三次元データ復号装置は、ビットストリームから位置情報を復号する(S4851)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された位置情報(符号化位置データ)を復号することで位置情報を生成する。
 次に、三次元データ復号装置は、ビットストリームから、処理対象の属性情報を、当該処理対象の属性情報と同一時刻の位置情報を参照して復号する(S4852)。つまり、三次元データ復号装置は、ビットストリームに含まれる符号化された属性情報(符号化属性データ)を復号することで属性情報を生成する。このとき、三次元データ復号装置は、属性情報と同じアクセスユニットに含まれる復号済みの位置情報を参照する。
 これによれば、三次元データ復号装置は、アクセスユニットを用いて復号における参照の制御を容易化できる。よって、当該三次元データ復号方法は復号処理の処理量を低減できる。
 例えば、三次元データ復号装置は、ビットストリームから、処理対象の属性情報の参照先の位置情報を示す情報を取得し、取得した情報で示される参照先の位置情報を参照して処理対象の属性情報を復号する。
 例えば、ビットストリームは、各時刻の位置情報の制御情報を含む位置パラメータセット(位置PS)と、各時刻の属性情報の制御情報を含む属性パラメータセット(属性PS)とを含む。つまり、三次元データ復号装置は、処理対象時刻の位置パラメータセットに含まれる制御情報を用いて、処理対象時刻の位置情報を復号し、処理対象時刻の属性パラメータセットに含まれる制御情報を用いて、処理対象時刻の属性情報を復号する。
 例えば、ビットストリームは、複数の時刻の位置情報に共通の制御情報を含む位置シーケンスパラメータセット(位置SPS)と、複数の時刻の属性情報に共通の制御情報を含む属性シーケンスパラメータセット(属性SPS)とを含む。つまり、三次元データ復号装置は、位置シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報を復号し、属性シーケンスパラメータセットに含まれる制御情報を用いて、複数の時刻の属性情報を復号する。
 例えば、ビットストリームは、複数の時刻の位置情報及び複数の時刻の属性情報に共通の制御情報を含むストリームパラメータセット(ストリームPS)を含む。つまり、三次元データ復号装置は、ストリームパラメータセットに含まれる制御情報を用いて、複数の時刻の位置情報及び複数時刻の属性情報を復号する。
 例えば、ビットストリームは、アクセスユニット内で共通の制御情報を含むアクセスユニットヘッダ(AUヘッダ)を含む。つまり、三次元データ復号装置は、アクセスユニットヘッダに含まれる制御情報を用いて、アクセスユニットに含まれる位置情報及び属性情報を復号する。
 例えば、三次元データ復号装置は、1以上のアクセスユニットで構成されるGOF(グループオブフレーム)を独立して復号する。つまり、GOFはランダムアクセス単位である。
 例えば、ビットストリームは、GOF内で共通の制御情報を含むGOFヘッダを含む。つまり、三次元データ復号装置は、GOFヘッダに含まれる制御情報を用いて、GOFに含まれる位置情報及び属性情報を復号する。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 (実施の形態5)
 以下、点群データの分割方法について説明する。図47は、スライス及びタイル分割の例を示す図である。
 まず、スライス分割の方法について説明する。三次元データ符号化装置は、三次元点群データを、スライス単位で、任意の点群に分割する。三次元データ符号化装置は、スライス分割において、点を構成する位置情報と属性情報とを分割せず、位置情報と属性情報とを一括で分割する。すなわち、三次元データ符号化装置は、任意の点における位置情報と属性情報とが同じスライスに属するようにスライス分割を行う。なお、これらに従えば、分割数、及び分割方法はどのような方法でもよい。また、分割の最小単位は点である。例えば、位置情報と属性情報との分割数は同一である。例えば、スライス分割後の位置情報に対応する三次元点と、属性情報に対応する三次元点とは同一のスライスに含まれる。
 また、三次元データ符号化装置は、スライス分割時に分割数及び分割方法に係る付加情報であるスライス付加情報を生成する。スライス付加情報は、位置情報と属性情報とで同一である。例えば、スライス付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、スライス付加情報は、分割数、及び分割タイプなどを示す情報を含む。
 次に、タイル分割の方法について説明する。三次元データ符号化装置は、スライス分割されたデータを、スライス位置情報(Gスライス)とスライス属性情報(Aスライス)とに分割し、スライス位置情報とスライス属性情報をそれぞれタイル単位に分割する。
 なお、図47では8分木構造で分割する例を示しているが、分割数及び分割方法はどのような方法でもよい。
 また、三次元データ符号化装置は、位置情報と属性情報とを異なる分割方法で分割してもよいし、同一の分割方法で分割してもよい。また、三次元データ符号化装置は、複数のスライスを異なる分割方法でタイルに分割してもよいし、同一の分割方法でタイルに分割してもよい。
 また、三次元データ符号化装置は、タイル分割時に分割数及び分割方法に係るタイル付加情報を生成する。タイル付加情報(位置タイル付加情報及び属性タイル付加情報)は、位置情報と属性情報とで独立している。例えば、タイル付加情報は、分割後のバウンディングボックスの基準座標位置、大きさ、又は辺の長さを示す情報を含む。また、タイル付加情報は、分割数、及び分割タイプなど示す情報を含む。
 次に、点群データをスライス又はタイルに分割する方法の例を説明する。三次元データ符号化装置は、スライス又はタイル分割の方法として、予め定められた方法を用いてもよいし、点群データに応じて使用する方法を適応的に切り替えてもよい。
 スライス分割時には、三次元データ符号化装置は、位置情報と属性情報とに対して一括で三次元空間を分割する。例えば、三次元データ符号化装置は、オブジェクトの形状を判定し、オブジェクトの形状に応じて三次元空間をスライスに分割する。例えば、三次元データ符号化装置は、木又は建物などのオブジェクトを抽出し、オブジェクト単位で分割を行う。例えば、三次元データ符号化装置は、1又は複数のオブジェクトの全体が1つのスライスに含まれるようにスライス分割を行う。または、三次元データ符号化装置は、一つのオブジェクトを複数のスライスに分割する。
 この場合、符号化装置は、例えば、スライス毎に符号化方法を変えてもよい。例えば、符号化装置は、特定のオブジェクト、又はオブジェクトの特定の一部に対して、高品質な圧縮方法を用いてもよい。この場合、符号化装置は、スライス毎の符号化方法を示す情報を付加情報(メタデータ)に格納してもよい。
 また、三次元データ符号化装置は、地図情報又は位置情報に基づき、各スライスが予め定められた座標空間に対応するようにスライス分割を行ってもよい。
 タイル分割時には、三次元データ符号化装置は、位置情報と属性情報とを独立に分割する。例えば、三次元データ符号化装置は、データ量又は処理量に応じてスライスをタイルに分割する。例えば、三次元データ符号化装置は、スライスのデータ量(例えばスライスに含まれる三次元点の数)が予め定められた閾値より多いかを判定する。三次元データ符号化装置は、スライスのデータ量が閾値より多い場合にはスライスをタイルに分割する。三次元データ符号化装置は、スライスのデータ量が閾値より少ないときにはスライスをタイルに分割しない。
 例えば、三次元データ符号化装置は、復号装置での処理量又は処理時間が一定の範囲(予め定められた値以下)となるよう、スライスをタイルに分割する。これにより、復号装置におけるタイル当たりの処理量が一定となり、復号装置における分散処理が容易となる。
 また、三次元データ符号化装置は、位置情報と属性情報とで処理量が異なる場合、例えば、位置情報の処理量が属性情報の処理量より多い場合、位置情報の分割数を、属性情報の分割数より多くする。
 また、例えば、コンテンツによって、復号装置で、位置情報を早く復号して表示し、属性情報を後でゆっくり復号して表示してもよい場合に、三次元データ符号化装置は、位置情報の分割数を、属性情報の分割数より多くしてもよい。これにより、復号装置は、位置情報の並列数を多くできるので、位置情報の処理を属性情報の処理より高速化できる。
 なお、復号装置は、スライス化又はタイル化されているデータを必ずしも並列処理する必要はなく、復号処理部の数又は能力に応じて、これらを並列処理するかどうかを判定してもよい。
 以上のような方法で分割することにより、コンテンツ又はオブジェクトに応じた、適応的な符号化を実現できる。また、復号処理における並列処理を実現できる。これにより、点群符号化システム又は点群復号システムの柔軟性が向上する。
 図48は、スライス及びタイルの分割のパターンの例を示す図である。図中のDUはデータ単位(DataUnit)であり、タイル又はスライスのデータを示す。また、各DUは、スライスインデックス(SliceIndex)とタイルインデックス(TileIndex)を含む。図中のDUの右上の数値がスライスインデックスを示し、DUの左下の数値がタイルインデックスを示す。
 パターン1では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間では同一の分割数及び分割方法が用いられる。複数のAスライス間では同一の分割数及び分割方法が用いられる。
 パターン2では、スライス分割において、GスライスとAスライスとで分割数及び分割方法は同じである。タイル分割において、Gスライスに対する分割数及び分割方法とAスライスに対する分割数及び分割方法とは異なる。また、複数のGスライス間で分割数及び分割方法が異なる。複数のAスライス間で分割数及び分割方法が異なる。
 (実施の形態6)
 以下、タイル分割後にスライス分割を行う例について説明する。車両の自動運転等の自律型のアプリケーションでは、全ての領域の点群データではなく、車両の周辺の領域、又は車両の進行方向の地域の点群データが必要である。ここで、元の点群データを選択的に復号するためにタイル及びスライスを用いることができる。三次元点群データをタイルに分割し、さらにスライスを分割することで、符号化効率の向上、又は並列処理を実現できる。データを分割する際には、付加情報(メタデータ)が生成され、生成された付加情報は、多重化部に送られる。
 図49は、本実施の形態に係る三次元データ符号化装置に含まれる第1の符号化部5010の構成を示すブロック図である。第1の符号化部5010は、点群データを第1の符号化方法(GPCC(Geometry based PCC))で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部5010は、分割部5011と、複数の位置情報符号化部5012と、複数の属性情報符号化部5013と、付加情報符号化部5014と、多重化部5015とを含む。
 分割部5011は、点群データを分割することで複数の分割データを生成する。具体的には、分割部5011は、点群データの空間を複数のサブ空間に分割することで複数の分割データを生成する。ここでサブ空間とは、タイル及びスライスの一方、又はタイル及びスライスの組み合わせである。より具体的には、点群データは、位置情報、属性情報、及び付加情報を含む。分割部5011は、位置情報を複数の分割位置情報に分割し、属性情報を複数の分割属性情報に分割する。また、分割部5011は、分割に関する付加情報を生成する。
 例えば、分割部5011は、まず、点群をタイルに分割する。次に、分割部5011は、得られたタイルを、さらにスライスに分割する。
 複数の位置情報符号化部5012は、複数の分割位置情報を符号化することで複数の符号化位置情報を生成する。例えば、複数の位置情報符号化部5012は、複数の分割位置情報を並列処理する。
 複数の属性情報符号化部5013は、複数の分割属性情報を符号化することで複数の符号化属性情報を生成する。例えば、複数の属性情報符号化部5013は、複数の分割属性情報を並列処理する。
 付加情報符号化部5014は、点群データに含まれる付加情報と、分割部5011で分割時に生成された、データ分割に関する付加情報とを符号化することで符号化付加情報を生成する。
 多重化部5015は、複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を多重化することで符号化データ(符号化ストリーム)を生成し、生成した符号化データを送出する。また、符号化付加情報は復号時に使用される。
 なお、図49では、位置情報符号化部5012及び属性情報符号化部5013の数がそれぞれ2つの例を示しているが、位置情報符号化部5012及び属性情報符号化部5013の数は、それぞれ1つであってもよいし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよいし、複数チップの複数コアで並列処理されてもよい。
 次に、復号処理について説明する。図50は、第1の復号部5020の構成を示すブロック図である。第1の復号部5020は、点群データが第1の符号化方法(GPCC)で符号化されることで生成された符号化データ(符号化ストリーム)を復号することで点群データを復元する。この第1の復号部5020は、逆多重化部5021と、複数の位置情報復号部5022と、複数の属性情報復号部5023と、付加情報復号部5024と、結合部5025とを含む。
 逆多重化部5021は、符号化データ(符号化ストリーム)を逆多重化することで複数の符号化位置情報、複数の符号化属性情報及び符号化付加情報を生成する。
 複数の位置情報復号部5022は、複数の符号化位置情報を復号することで複数の分割位置情報を生成する。例えば、複数の位置情報復号部5022は、複数の符号化位置情報を並列処理する。
 複数の属性情報復号部5023は、複数の符号化属性情報を復号することで複数の分割属性情報を生成する。例えば、複数の属性情報復号部5023は、複数の符号化属性情報を並列処理する。
 複数の付加情報復号部5024は、符号化付加情報を復号することで付加情報を生成する。
 結合部5025は、付加情報を用いて複数の分割位置情報を結合することで位置情報を生成する。結合部5025は、付加情報を用いて複数の分割属性情報を結合することで属性情報を生成する。例えば、結合部5025は、まず、スライス付加情報を用いて、スライスに対する復号された点群データを結合することでタイルに対応する点群データを生成する。次に、結合部5025は、タイル付加情報を用いて、タイルに対応する点群データを結合することで元の点群データを復元する。
 なお、図49では、位置情報復号部5022及び属性情報復号部5023の数がそれぞれ2つの例を示しているが、位置情報復号部5022及び属性情報復号部5023の数は、それぞれ1つであってもよし、3つ以上であってもよい。また、複数の分割データは、CPU内の複数コアのように同一チップ内で並列処理されてもよいし、複数のチップのコアで並列処理されてもよい、複数チップの複数コアで並列処理されてもよい。
 次に、点群データの分割方法について説明する。車両の自動運転等の自律型のアプリケーションでは、全ての領域の点群データではなく、車両の周辺の領域、又は車両の進行方向の地域の点群データが必要である。
 図51は、タイルの形状の例を示す図である。図51に示すように、タイルの形状として、円、矩形又は楕円等の様々な形状が用いられてもよい。
 図52は、タイル及びスライスの例を示す図である。スライスの構成はタイル間で異なってもよい。例えば、タイル又はスライスの構成は、データ量に基づき最適化されてもよい。または、タイル又はスライスの構成は、復号速度に基づき最適化されてもよい。
 また、位置情報に基づきタイル分割が行われてもよい。この場合、属性情報は、対応する位置情報と同様に分割される。
 また、タイル分割後のスライス分割において、位置情報と属性情報とは異なる方法によりスライスに分割されてもよい。例えば、各タイルにおけるスライス分割の方法は、アプリケーションからの要求に応じて選択されてもよい。アプリケーションからの要求に基づき、異なるスライス分割の方法、又は、タイル分割の方法が用いられてもよい。
 例えば、分割部5011は、三次元点群データを上から見た二次元形状において、地図情報などの位置情報に基づき、点群データを1以上のタイルに分割する。その後、分割部5011は、それぞれのタイルを1以上のスライスに分割する。
 なお、分割部5011は、位置情報(Geometry)と属性情報(Attribute)とを同じ方法でスライスに分割してもよい。
 なお、位置情報及び属性情報はそれぞれ1種類であってもよいし、2種類以上であってもよい。また、属性情報を持たない点群データの場合は、属性情報がなくてもよい。
 図53は、分割部5011のブロック図である。分割部5011は、タイル分割部5031(Tile Divider)と、位置情報スライス分割部5032(Geometry Slice Divider)と、属性情報スライス分割部5033(Attribute Slice Divider)とを含む。
 タイル分割部5031は、位置情報(Position(Geometry))をタイルに分割することで複数のタイル位置情報を生成する。また、タイル分割部5031は、属性情報(Attribute)をタイルに分割することで複数のタイル属性情報を生成する。また、タイル分割部5031は、タイル分割に係る情報、及びタイル分割において生成された情報を含むタイル付加情報(TileMetaData)を出力する。
 位置情報スライス分割部5032は、複数のタイル位置情報をスライスに分割することで複数の分割位置情報(複数のスライス位置情報)を生成する。また、位置情報スライス分割部5032は、位置情報のスライス分割に係る情報、及び位置情報のスライス分割において生成された情報を含む位置スライス付加情報(Geometry Slice MetaData)を出力する。
 属性情報スライス分割部5033は、複数のタイル属性情報をスライスに分割することで複数の分割属性情報(複数のスライス属性情報)を生成する。また、属性情報スライス分割部5033は、属性情報のスライス分割に係る情報、及び属性情報のスライス分割において生成された情報を含む属性スライス付加情報(Attribute Slice MetaData)を出力する。
 次に、タイルの形状の例について説明する。三次元地図(3Dマップ)の全体は、複数のタイルに分割される。複数のタイルのデータは、選択的に三次元データ復号装置に送信される。または、複数のタイルのデータのうち重要度の高いデータから順に三次元データ復号装置に送信される。状況に応じてタイルの形状は複数の形状から選択されてもよい。
 図54は、LiDARで得られた点群データを上面視した地図の一例を示す図である。図54に示す例は、高速道路の点群データであり、立体交差部分(Flyover)を含む。
 図55は、図54に示す点群データを正方形のタイルに分割した例を示す図である。このような正方形の分割は地図サーバにおいて容易に行うことができる。また、通常の道路に対しては、タイルの高さは低く設定される。立体交差部分では、タイルが立体交差部分を包含するように、タイルの高さは通常の道路よりも高く設定される。
 図56は、図54に示す点群データを円形のタイルに分割した例を示す図である。この場合、隣接するタイルが平面視において重複する場合がある。三次元データ符号化装置は、車両が周辺領域の点群データを必要な場合、車両の周辺の円柱(上面視における円)の領域の点群データを車両に送信する。
 また、図55の例と同様に、通常の道路に対しては、タイルの高さは低く設定される。立体交差部分では、タイルが立体交差部分を包含するように、タイルの高さは通常の道路よりも高く設定される。
 三次元データ符号化装置は、タイルの高さを、例えば、道路又は建物の形状又は高さに応じて変えてもよい。また、三次元データ符号化装置は、位置情報又はエリア情報に応じてタイルの高さを変えてもよい。また、三次元データ符号化装置は、タイルの高さを、タイル毎に変えてもよい。または、三次元データ符号化装置は、複数のタイルを含む区間毎にタイルの高さを変えてもよい。つまり、三次元データ符号化装置は、区間内の複数のタイルの高さを同一にしてもよい。また、異なる高さのタイルが上面視において重複してもよい。
 図57は、様々な形状、大きさ又は高さのタイルを用いた場合のタイル分割の例を示す図である。タイルの形状はどのような形状であってもよいし、どのような大きさであってもよいし、これらの組み合わせであってもよい。
 例えば、上述したような重複することなく正方形のタイルで分割する例、及び重複した円形のタイルで分割する例だけでなく、三次元データ符号化装置は、重複した正方形のタイルで分割を行ってもよい。また、タイルの形状は、正方形及び円形でなくてもよく、3以上の頂点を持つ多角形が用いられてもよいし、頂点を持たない形状が用いられてもよい。
 また、タイルの形状は、2種類以上であってもよいし、異なる形状のタイルが重複してもよい。また、タイルの形状の種類は1以上であり、分割する同一形状において、大きさの異なる形状を組み合わせてもよいし、それらが、重複してもよい。
 例えば、道路などのオブジェクトがない領域には、オブジェクトが存在する領域よりも大きなタイルが用いられる。また、三次元データ符号化装置は、オブジェクトに応じてタイルの形状又は大きさを適応的に変えてもよい。
 また、例えば、三次元データ符号化装置は、自動車(車両)の進行方向である、自動車の前方遠方のタイルの読み込みが必要となる可能性が高いため、進行方向のタイルを大きいサイズに設定し、自動車の側方に自動車が進む可能性が低いため、側方のタイルを進行方向のタイルよりも小さいサイズに設定してもよい。
 図58は、サーバに保存されるタイルのデータの例を示す図である。例えば、予め点群データがタイル分割して符号化され、得られた符号化データがサーバに保存される。ユーザーは、必要なときに所望のタイルのデータをサーバから取得する。または、サーバ(三次元データ符号化装置)は、ユーザーの指示に応じてユーザーが所望するデータを含むようにタイル分割及び符号化を行ってもよい。
 例えば、移動体(車両)の移動速度が速い場合は、より広範囲な点群データが必要になることが考えられる。よって、サーバは、予め推測される車の速度(例えば、道路の法定速度、道路の幅及び形状から推測できる車の速度、又は統計上の速度等)に基づき、タイルの形状及び大きさを決定し、タイル分割を行ってもよい。あるいは、図58に示すように、サーバは、予め複数の形状又は大きさのタイルを符号化し、得られたデータを保存しておいてもよい。移動体は、当該移動体の進行方向及び速度に応じて、適切な形状及び大きさのタイルのデータを取得してもよい。
 図59は、タイル分割に関するシステムの例を示す図である。図59に示すように、タイルの形状及び領域は、点群データを伝送する通信手段であるアンテナ(基地局)の位置、又はアンテナのサポートする通信エリアに基づいて決定されてもよい。あるいは、点群データをカメラなどのセンサで生成する場合、タイルの形状及び領域は、センサの位置又はセンサの対象範囲(検知範囲)に基づいて決定されてもよい。
 1つのアンテナ又はセンサに対して1つのタイルが割り当てられてもよいし、複数のアンテナ又はセンサに対して1つのタイルが割り当てられてもよい。1つのアンテナ又はセンサに対して複数のタイルが割り当てられてもよい。アンテナ又はセンサは固定されていてもよいし、移動可能であってもよい。
 例えば、タイルに分割された符号化データは、タイルに割り当てたエリアに対するアンテナ又はセンサに接続されたサーバで管理されてもよい。サーバは、自エリアの符号化データと、隣接するエリアのタイル情報とを管理してもよい。それぞれのタイルに対応する複数のサーバを管理する集中管理サーバ(クラウド)において、複数のタイルの複数の符号化データが管理されてもよい。または、タイルに対応するサーバを設けず、アンテナ又はセンサが集中管理サーバに直接接続されてもよい。
 なお、アンテナ又はセンサの対象範囲は、電波の電力、機器の違い、及び設置条件により異なる可能性があり、タイルの形状及び大きさも、これらに合わせて変化してもよい。アンテナ又はセンサの対象範囲に基づき、タイルではなく、スライスが割り当てられてもよいし、PCCフレームが割り当てられてもよい。
 次に、タイルをスライスに分割する手法について説明する。類似するオブジェクトを同じスライスに割り当てることで符号化効率を向上できる。
 例えば、三次元データ符号化装置は、点群データの特徴を用いてオブジェクト(道路、ビル、木など)を認識し、オブジェクト毎に点群をクラスタリングすることでスライス分割を行ってもよい。
 あるいは、三次元データ符号化装置は、同じ属性を持つオブジェクトをグループ化し、各グループにスライスを割り当てることでスライス分割を行ってもよい。ここで属性とは、例えば、動きに関する情報であり、歩行者及び車などの動的情報と、事故及び渋滞などの準動的情報と、交通規制及び道路工事などの準静的情報と、路面及び構造物などの静的情報とにオブジェクトを分類することでグループ化を行う。
 なお、複数のスライスにおいてデータが重複してもよい。例えば、複数のオブジェクトグループ毎にスライス分割する場合、任意のオブジェクトは1つのオブジェクトグループに属してもよいし、2以上の複数のオブジェクトグループに属してもよい。
 図60は、このスライス分割の例を示す図である。例えば、図60に示す例では、タイルは直方体である。なお、タイルは円柱状であってもよいし、その他の形状であってもよい。
 タイルに含まれる点群は、例えば、道、建物、木等のオブジェクトグループにグループ化される。そして、各オブジェクトグループが一つのスライスに含まれるようにスライス化が行われる。そして、各スライスは個別に符号化される。
 次に、分割データの符号化方法について説明する。三次元データ符号化装置(第1の符号化部5010)は、分割されたデータを、それぞれ符号化する。三次元データ符号化装置は、属性情報を符号化する際に、どの構成情報(位置情報、付加情報又は他の属性情報)に基づき符号化を行ったかを示す依存関係情報を付加情報として生成する。つまり、依存関係情報は、例えば、参照先(依存先)の構成情報を示す。この場合、三次元データ符号化装置は、属性情報の分割形状に対応する構成情報に基づき依存関係情報を生成する。なお、三次元データ符号化装置は、複数の分割形状に対応する構成情報に基づき依存関係情報を生成してもよい。
 依存関係情報は三次元データ符号化装置で生成され、生成された依存関係情報が三次元データ復号装置に送出されてもよい。または、三次元データ復号装置が依存関係情報を生成し、三次元データ符号化装置は依存関係情報を送出しなくてもよい。また、三次元データ符号化装置が使用する依存関係を、予め定めておき、三次元データ符号化装置は、依存関係情報を送出しなくてもよい。
 図61は、各データの依存関係の一例を示す図である。図中の矢印の先は依存先を示し、矢印の元は依存元を示している。三次元データ復号装置は、依存先から依存元の順でデータを復号する。また、図中に実線で示すデータは実際に送出されるデータであり、点線で示すデータは送出されないデータである。
 また、同図において、Gは位置情報を示し、Aは属性情報を示す。Gt1は、タイル番号1の位置情報を示し、Gt2は、タイル番号2の位置情報を示す。Gt1s1は、タイル番号1かつスライス番号1の位置情報を示し、Gt1s2は、タイル番号1かつスライス番号2の位置情報を示し、Gt2s1は、タイル番号2かつスライス番号1の位置情報を示し、Gt2s2は、タイル番号2かつスライス番号2の位置情報を示す。同様に、At1は、タイル番号1の属性情報を示し、At2は、タイル番号2の属性情報を示す。At1s1は、タイル番号1かつスライス番号1の属性情報を示し、At1s2は、タイル番号1かつスライス番号2の属性情報を示し、At2s1は、タイル番号2かつスライス番号1の属性情報を示し、At2s2は、タイル番号2かつスライス番号2の属性情報を示す。
 Mtileは、タイル付加情報を示し、MGsliceは、位置スライス付加情報を示し、MAsliceは、属性スライス付加情報を示す。Dt1s1は属性情報At1s1の依存関係情報を示し、Dt2s1は属性情報At2s1の依存関係情報を示す。
 なお、アプリケーション等に応じて、異なるタイル分割又はスライス分割の構造が用いられてもよい。
 また、三次元データ符号化装置は、三次元データ復号装置においてデータを並び替える必要がないように、データを復号順に並び替えてもよい。なお、三次元データ復号装置においてデータを並び替えてもよいし、三次元データ符号化装置と三次元データ復号装置との両方でデータを並び替えてもよい。
 図62は、データの復号順の例を示す図である。図62の例では、左のデータから順に復号が行われる。三次元データ復号装置は、依存関係にあるデータ間では、依存先のデータから先に復号する。例えば、三次元データ符号化装置は、この順序となるようにデータを予め並び替えて送出する。なお、依存先のデータが先になる順序であれば、どのような順序でもよい。また、三次元データ符号化装置は、付加情報及び依存関係情報をデータより先に送出してもよい。
 また、三次元データ復号装置は、アプリケーションからの要求、及びNALユニットヘッダから得られた情報に基づき、選択的にタイルを復号してもよい。図63は、タイルの符号化データの例を示す図である。例えば、タイルの復号順は任意である。つまり、タイル間に依存関係がなくてもよい。
 次に、第1の復号部5020に含まれる結合部5025の構成を説明する。図64は、結合部5025の構成を示すブロック図である。結合部5025は、位置情報スライス結合部5041(Geometry Slice Combiner)と、属性情報スライス結合部5042(Attribute Slice Combiner)と、タイル結合部(Tile Combiner)とを含む。
 位置情報スライス結合部5041は、位置スライス付加情報を用いて複数の分割位置情報を結合することで複数のタイル位置情報を生成する。属性情報スライス結合部5042は、属性スライス付加情報を用いて複数の分割属性情報を結合することで複数のタイル属性情報を生成する。
 タイル結合部5043は、タイル付加情報を用いて複数のタイル位置情報を結合することで位置情報を生成する。また、タイル結合部5043は、タイル付加情報を用いて複数のタイル属性情報を結合することで属性情報を生成する。
 なお、分割されるスライス又はタイルの数は1以上である。つまり、スライス又はタイルの分割が行われていなくてもよい。
 次に、スライス分割又はタイル分割された符号化データの構成、及び符号化データのNALユニットへの格納方法(多重化方法)を説明する。図65は、符号化データの構成及び符号化データのNALユニットへの格納方法を示す図である。
 符号化データ(分割位置情報及び分割属性情報)は、NALユニットのペイロードに格納される。
 符号化データは、ヘッダとペイロードとを含む。ヘッダは、ペイロードに含まれるデータを特定するための識別情報を含む。この識別情報は、例えば、スライス分割或いはタイル分割の種別(slice_type、tile_type)、スライス或いはタイルを特定するためのインデックス情報(slice_idx、tile_idx)、データ(スライス或いはタイル)の位置情報、又はデータのアドレス(address)などを含む。スライスを特定するためのインデックス情報は、スライスインデックス(SliceIndex)とも記す。タイルを特定するためのインデックス情報は、タイルインデックス(TileIndex)とも記す。また、分割の種別とは、例えば、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。
 また、符号化データのヘッダは、依存関係を示す識別情報を含む。つまり、当該ヘッダは、データ間に依存関係がある場合は、依存元から依存先を参照するための識別情報を含む。例えば、依存先のデータのヘッダには、当該データを特定するための識別情報が含まれる。依存元のデータのヘッダには、依存先を示す識別情報が含まれる。なお、データを特定するための識別情報、スライス分割又はタイル分割に係る付加情報、及び依存関係を示す識別情報を、他の情報から識別可能又は導出可能である場合は、これらの情報を省略してもよい。
 次に、本実施の形態に係る点群データの符号化処理及び復号処理の流れについて説明する。図66は、本実施の形態に係る点群データの符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、使用する分割方法を決定する(S5011)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。分割の種別とは、上述したようなオブジェクト形状に基づく手法、地図情報或いは位置情報に基づく手法、又は、データ量或いは処理量に基づく手法等である。なお、分割方法は、予め定められていてもよい。
 タイル分割が行われる場合(S5012でYes)、三次元データ符号化装置は、位置情報と属性情報とを一括で分割することで複数のタイル位置情報及び複数のタイル属性情報を生成する(S5013)。また、三次元データ符号化装置は、タイル分割に係るタイル付加情報を生成する。なお、三次元データ符号化装置は、位置情報と属性情報とを独立に分割してもよい。
 スライス分割が行われる場合(S5014でYes)、三次元データ符号化装置は、複数のタイル位置情報及び複数のタイル属性情報(又は位置情報及び属性情報)を独立に分割することで複数の分割位置情報及び複数の分割属性情報を生成する(S5015)。また、三次元データ符号化装置は、スライス分割に係る位置スライス付加情報及び属性スライス付加情報を生成する。なお、三次元データ符号化装置は、タイル位置情報とタイル属性情報とを一括で分割してもよい。
 次に、三次元データ符号化装置は、複数の分割位置情報及び複数の分割属性情報の各々を符号化することで、複数の符号化位置情報及び複数の符号化属性情報を生成する(S5016)。また、三次元データ符号化装置は、依存関係情報を生成する。
 次に、三次元データ符号化装置は、複数の符号化位置情報、複数の符号化属性情報及び付加情報をNALユニット化(多重化)することで符号化データ(符号化ストリーム)を生成する(S5017)。また、三次元データ符号化装置は、生成した符号化データを送出する。
 図67は、本実施の形態に係る点群データの復号処理のフローチャートである。まず、三次元データ復号装置は、符号化データ(符号化ストリーム)に含まれる、分割方法に係る付加情報(タイル付加情報、位置スライス付加情報及び属性スライス付加情報)を解析することで、分割方法を判定する(S5021)。この分割方法は、タイル分割を行うか否か、スライス分割を行うか否かを含む。また、分割方法は、タイル分割又はスライス分割を行う場合の分割数、及び、分割の種別等を含んでもよい。
 次に、三次元データ復号装置は、符号化データに含まれる複数の符号化位置情報及び複数の符号化属性情報を、符号化データに含まれる依存関係情報を用いて復号することで分割位置情報及び分割属性情報を生成する(S5022)。
 付加情報によりスライス分割が行われていることが示される場合(S5023でYes)、三次元データ復号装置は、位置スライス付加情報及び属性スライス付加情報に基づき、複数の分割位置情報と、複数の分割属性情報とを、それぞれの方法で結合することで、複数のタイル位置情報及び複数のタイル属性情報を生成する(S5024)。なお、三次元データ復号装置は、複数の分割位置情報と、複数の分割属性情報とを同一の方法で結合してもよい。
 付加情報によりタイル分割が行われていることが示される場合(S5025でYes)、三次元データ復号装置は、タイル付加情報に基づき、複数のタイル位置情報及び複数のタイル属性情報(複数の分割位置情報及び複数の分割属性情報)を同一の方法で結合することで位置情報及び属性情報を生成する(S5026)。なお、三次元データ復号装置は、複数のタイル位置情報と複数のタイル属性情報とを、それぞれ異なる方法で結合してもよい。
 次に、タイル付加情報について説明する。三次元データ符号化装置は、タイルの分割方法に関するメタデータであるタイル付加情報を生成し、生成したタイル付加情報を三次元データ復号装置に送信する。
 図68は、タイル付加情報(TileMetaData)のシンタックス例を示す図である。図68に示すように、例えば、タイル付加情報は、分割方法情報(type_of_divide)と、形状情報(topview_shape)と、重複フラグ(tile_overlap_flag)と、重複情報(type_of_overlap)と、高さ情報(tile_height)と、タイル数(tile_number)と、タイル位置情報(global_position、relative_position)と、を含む。
 分割方法情報(type_of_divide)は、タイルの分割方法を示す。例えば、分割方法情報は、タイルの分割方法が、地図の情報に基づいた分割であるか、つまり上面視に基づく分割(top_view)であるか、それ以外(other)であるかを示す。
 形状情報(topview_shape)は、例えば、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。形状情報は、タイルを上面視した形状を示す。例えば、この形状は、正方形及び円を含む。なお、この形状は、楕円、矩形又は四角形以外の多角形を含んでもよいし、それ以外の形状を含んでもよい。なお、形状情報は、タイルを上面視した形状に限らず、タイルの三次元形状(例えば、立方体及び円柱等)を示してもよい。
 重複フラグ(tile_overlap_flag)は、タイルが重複するか否かを示す。例えば、重複フラグは、タイルの分割方法が上面視に基づく分割である場合に、タイル付加情報に含まれる。この場合、重複フラグは、上面視において、タイルが重複するか否かを示す。なお、重複フラグは、三次元空間においてタイルが重複するか否かを示してもよい。
 重複情報(type_of_overlap)は、例えば、タイルが重複する場合に、タイル付加情報に含まれる。重複情報は、タイルの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
 高さ情報(tile_height)は、タイルの高さを示す。なお、高さ情報は、タイルの形状を示す情報を含んでもよい。例えば、当該情報は、タイルの上面視における形状が矩形の場合には、当該の矩形の辺の長さ(縦の長さ及び横の長さ)を示してもよい。また、当該情報は、タイルの上面視における形状が円の場合には、当該円の直径又は半径を示してもよい。
 また、高さ情報は、各タイルの高さを示してもよし、複数のタイルで共通の高さを示してもよい。また、予め道路及び立体交差部分等の複数の高さタイプが設定され、高さ情報により、各高さタイプの高さと、各タイルの高さタイプとが示されてもよい。または、各高さタイプの高さは予め定義されており、高さ情報により、各タイルの高さタイプが示されてもよい。つまり、各高さタイプの高さは、高さ情報で示されなくてもよい。
 タイル数(tile_number)は、タイルの数を示す。なお、タイル付加情報は、タイルの間隔を示す情報を含んでもよい。
 タイル位置情報(global_position、relative_position)は、各タイルの位置を特定するための情報である。例えば、タイル位置情報は、各タイルの絶対座標又は相対座標を示す。
 なお、上記の情報の一部又は全ては、タイル毎に設けられてもよいし、複数のタイル毎(例えばフレーム毎又は複数フレーム毎)に設けられてもよい。
 三次元データ符号化装置は、タイル付加情報を、SEI(Supplemental Enhancement Information)に含めて送出してもよい。または、三次元データ符号化装置は、タイル付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
 例えば、タイル付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にタイル付加情報が格納されてもよい。シーケンス内でタイル付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にタイル付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じタイル分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にタイル付加情報が格納されてもよい。
 また、タイル付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、タイル付加情報は、符号化データのヘッダに格納されてもよい。また、タイル付加情報は、NALユニットのヘッダに格納されてもよい。
 また、タイル付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のタイル付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにタイル付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのタイル付加情報が含まれ、属性情報のヘッダにはタイル付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のタイルと同一のタイルに依存元の属性情報が属すると判断する。
 三次元データ復号装置は、タイル付加情報に基づき、タイル分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
 また、三次元データ復号装置は、タイル付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のタイルが重複する場合は、タイル毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング等)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
 図69は、三次元データ符号化装置及び三次元データ復号装置を含むシステムの構成例を示す図である。タイル分割部5051は、位置情報及び属性情報を含む点群データを第1タイルと第2タイルとに分割する。また、タイル分割部5051は、タイル分割に係るタイル付加情報を復号部5053及びタイル結合部5054に送る。
 符号化部5052は、第1タイル及び第2タイルを符号化することで符号化データを生成する。
 復号部5053は、符号化部5052で生成された符号化データを復号することで第1タイル及び第2タイルを復元する。タイル結合部5054は、タイル付加情報を用いて、第1タイル及び第2タイルを結合することで点群データ(位置情報及び属性情報)を復元する。
 次に、スライス付加情報について説明する。三次元データ符号化装置は、スライスの分割方法に関するメタデータであるスライス付加情報を生成し、生成したスライス付加情報を三次元データ復号装置に送信する。
 図70は、スライス付加情報(SliceMetaData)のシンタックス例を示す図である。図70に示すように、例えば、スライス付加情報は、分割方法情報(type_of_divide)と、重複フラグ(slice_overlap_flag)と、重複情報(type_of_overlap)と、スライス数(slice_number)と、スライス位置情報(global_position、relative_position)と、スライスサイズ情報(slice_bounding_box_size)とを含む。
 分割方法情報(type_of_divide)は、スライスの分割方法を示す。例えば、分割方法情報は、スライスの分割方法が、図60で示すようなオブジェクトの情報に基づいた分割である(object)か否かを示す。なお、スライス付加情報は、オブジェクト分割の方法を示す情報を含んでもよい。例えば、この情報は、1つのオブジェクトを複数のスライスに分割するか、1つのスライスに割り当てるかを示す。また、この情報は、1つのオブジェクトを複数のスライスに分割する場合の分割数等を示してもよい。
 重複フラグ(slice_overlap_flag)は、スライスが重複するか否かを示す。重複情報(type_of_overlap)は、例えば、スライスが重複する場合に、スライス付加情報に含まれる。重複情報は、スライスの重複のしかた等を示す。例えば、重複情報は、重複する領域の大きさ等を示す。
 スライス数(slice_number)は、スライスの数を示す。
 スライス位置情報(global_position、relative_position)、及びスライスサイズ情報(slice_bounding_box_size)は、スライスの領域に関する情報である。スライス位置情報は、各スライスの位置を特定するための情報である。例えば、スライス位置情報は、各スライスの絶対座標又は相対座標を示す。スライスサイズ情報(slice_bounding_box_size)は、各スライスのサイズを示す。例えば、スライスサイズ情報は、各スライスのバウンディングボックスのサイズを示す。
 三次元データ符号化装置は、スライス付加情報をSEIに含めて送出してもよい。または、三次元データ符号化装置は、スライス付加情報を、既存のパラメータセット(PPS、GPS、又はAPS等)に格納して送出してもよい。
 例えば、スライス付加情報がフレーム毎に変化する場合は、フレーム毎のパラメータセット(GPS又はAPS等)にスライス付加情報が格納されてもよい。シーケンス内でスライス付加情報が変化しない場合は、シーケンス毎のパラメータセット(位置SPS又は属性SPS)にスライス付加情報が格納されてもよい。さらに、位置情報と属性情報とで同じスライス分割情報が用いられる場合は、PCCストリームのパラメータセット(ストリームPS)にスライス付加情報が格納されてもよい。
 また、スライス付加情報は、上記のいずれかのパラメータセットに格納されてもよいし、複数のパラメータセットに格納されてもよい。また、スライス付加情報は、符号化データのヘッダに格納されてもよい。また、スライス付加情報は、NALユニットのヘッダに格納されてもよい。
 また、スライス付加情報の全て又は一部は、分割位置情報のヘッダ及び分割属性情報のヘッダの一方に格納され、他方に格納されてなくてもよい。例えば、位置情報と属性情報とで同一のスライス付加情報が用いられる場合には、位置情報と属性情報の一方のヘッダにスライス付加情報が含まれてもよい。例えば、位置情報に属性情報が依存する場合には、位置情報が先に処理される。よって、位置情報のヘッダにこれらのスライス付加情報が含まれ、属性情報のヘッダにはスライス付加情報が含まれなくてもよい。この場合、三次元データ復号装置は、例えば、依存先の位置情報のスライスと同一のスライスに依存元の属性情報が属すると判断する。
 三次元データ復号装置は、スライス付加情報に基づき、スライス分割された点群データを再構成する。三次元データ復号装置は、重複する点群データがある場合は、重複する複数の点群データを特定し、いずれかを選択、又は複数の点群データをマージする。
 また、三次元データ復号装置は、スライス付加情報を用いて復号を行ってもよい。例えば、三次元データ復号装置は、複数のスライスが重複する場合は、スライス毎に復号を行い、復号された複数のデータを用いた処理(例えば平滑化、又はフィルタリング)を行い、点群データを生成してもよい。これにより精度の高い復号が可能となる可能性がある。
 図71は、本実施の形態に係る三次元データ符号化装置による、タイル付加情報の生成処理を含む三次元データ符号化処理のフローチャートである。
 まず、三次元データ符号化装置は、タイルの分割方法を決定する(S5031)。具体的には、三次元データ符号化装置は、タイルの分割方法として、上面視に基づく分割方法(top_view)を用いるか、それ以外(other)を用いるかを決定する。また、三次元データ符号化装置は、上面視に基づく分割方法を用いる場合のタイルの形状を決定する。また、三次元データ符号化装置は、タイルが他のタイルと重複するか否かを決定する。
 ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法である場合(S5032でYes)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)であることをタイル付加情報に記載する(S5033)。
 一方、ステップS5031で決定したタイルの分割方法が上面視に基づく分割方法以外である場合(S5032でNo)、三次元データ符号化装置は、タイルの分割方法が上面視に基づく分割方法(top_view)以外の方法であることをタイル付加情報に記載する(S5034)。
 また、ステップS5031で決定した、タイルを上面視した形状が正方形である場合(S5035で正方形)、三次元データ符号化装置は、タイルを上面視した形状が正方形であることをタイル付加情報に記載する(S5036)。一方、ステップS5031で決定した、タイルを上面視した形状が円である場合(S5035で円)、三次元データ符号化装置は、タイルを上面視した形状が円であることをタイル付加情報に記載する(S5037)。
 次に、三次元データ符号化装置は、タイルが他のタイルと重複するかを判定する(S5038)。タイルが他のタイルと重複している場合(S5038でYes)、三次元データ符号化装置は、タイルが重複していることをタイル付加情報に記載する(S5039)。一方、タイルが他のタイルと重複していない場合(S5038でNo)、三次元データ符号化装置は、タイルが重複していないことをタイル付加情報に記載する(S5040)。
 次に、三次元データ符号化装置は、ステップS5031で決定したタイルの分割方法に基づきタイルを分割し、各タイルを符号化し、生成された符号化データ及びタイル付加情報を送出する(S5041)。
 図72は、本実施の形態に係る三次元データ復号装置による、タイル付加情報を用いた三次元データ復号処理のフローチャートである。
 まず、三次元データ復号装置は、ビットストリームに含まれるタイル付加情報を解析する(S5051)。
 タイル付加情報によりタイルが他のタイルと重複していないことが示される場合(S5052でNo)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する(S5053)。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法及びタイルの形状に基づき、各タイルの点群データから点群データを再構成する(S5054)。
 一方、タイル付加情報によりタイルが他のタイルと重複していることが示される場合(S5052でYes)、三次元データ復号装置は、各タイルを復号することで各タイルの点群データを生成する。また、三次元データ復号装置は、タイル付加情報に基づき、タイルの重複部分を特定する(S5055)。なお、三次元データ復号装置は、重複部分については重複する複数の情報を用いて復号処理を行ってもよい。次に、三次元データ復号装置は、タイル付加情報で示されるタイルの分割方法、タイルの形状、及び重複情報に基づき、各タイルの点群データから点群データを再構成する(S5056)。
 以下、スライスに関する変形例等を説明する。三次元データ符号化装置は、オブジェクトの種類(道、建物、木等)又は属性(動的情報、静的情報等)を示す情報を付加情報として送信してもよい。または、オブジェクトに応じて符号化のパラメータが予め規定され、三次元データ符号化装置は、オブジェクトの種類又は属性を送出することにより符号化パラメータを三次元データ復号装置へ通知してもよい。
 スライスデータの符号化順及び送出順について以下の方法を用いてもよい。例えば、三次元データ符号化装置は、オブジェクトの認識又はクラスタリングが容易なデータから順にスライスデータを符号化してもよい。または、三次元データ符号化装置は、早くクラスタリングが終わったスライスデータから順に符号化を行ってもよい。また、三次元データ符号化装置は、符号化されたスライスデータから順に送出してもよい。または、三次元データ符号化装置は、アプリケーションにおいて復号の優先度の高い順にスライスデータを送出してもよい。例えば、動的情報の復号の優先度が高い場合には、三次元データ符号化装置は、動的情報でグループ化されたスライスから順にスライスデータを送出してもよい。
 また、三次元データ符号化装置は、符号化データの順番と、復号の優先度の順番とが異なる場合には、符号化データを並び替えた後に送出してもよい。また、三次元データ符号化装置は、符号化データを蓄積する際には、符号化データを並び替えた後に蓄積してもよい。
 アプリケーション(三次元データ復号装置)は、所望のデータを含むスライスの送出をサーバ(三次元データ符号化装置)に要求する。サーバはアプリケーションが必要とするスライスデータを送出し、不要なスライスデータは送出しなくてもよい。
 アプリケーションは、所望のデータを含むタイルの送出をサーバに要求する。サーバはアプリケーションが必要とするタイルデータを送出し、不要なタイルデータは送出しなくてもよい。
 以上のように、本実施の形態に係る三次元データ符号化装置は、図73に示す処理を行う。まず、三次元データ符号化装置は、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル)を符号化することで複数の符号化データを生成する(S5061)。三次元データ符号化装置は、前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報(例えばtopview_shape)とを含むビットストリームを生成する(S5062)。
 これによれば、三次元データ符号化装置は、複数種類のサブ空間の形状から任意の形状を選択できるので符号化効率を向上できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である。例えば、前記形状は、前記複数のサブ空間を上面視した形状である。つまり、第1情報は、サブ空間を特定の方向(例えば上方向)から見た形状を示す。言い換えると、第1情報は、サブ空間を俯瞰した形状を示す。例えば、前記形状は、矩形又は円である。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報(例えばtile_overlap_flag)を含む。
 これによれば、三次元データ符号化装置は、サブ空間を重複させることができるので、サブ空間の形状を複雑にすることなくサブ空間を生成できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報(例えばtype_of_divide)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報(例えばtile_height)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報(例えばglobal_position又はrelative_position)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報(例えばtile_number)を含む。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含む。
 例えば、三次元データ符号化装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 また、本実施の形態に係る三次元データ復号装置は、図74に示す処理を行う。まず、三次元データ復号装置は、ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間(例えばタイル)が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元する(S5071)。三次元データ復号装置は、前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報(例えばtopview_shape)を用いて前記複数のサブ空間を結合することで前記対象空間を復元する(S5072)。例えば、三次元データ復号装置は、第1情報を用いて、複数のサブ空間の形状を認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。これにより、三次元データ復号装置は、複数のサブ空間を正しく結合できる。
 例えば、前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である。例えば、前記形状は、矩形又は円である。
 例えば、前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報(例えばtile_overlap_flag)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第2情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第2情報を用いて、サブ空間が重複している否かを判定する。三次元データ復号装置は、サブ空間が重複している場合には、重複領域を特定し、特定した重複領域に対しては、所定の対応を行う。
 例えば、前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報(例えばtype_of_divide)を含む。三次元データ復号装置は、前記第3情報により、前記複数のサブ区間の分割方法が上面視を用いた分割方法であることが示される場合、前記第1情報を用いて前記複数のサブ空間を結合する。
 例えば、前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報(例えばtile_height)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第4情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第4情報を用いて、複数のサブ空間の高さを認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報(例えばglobal_position又はrelative_position)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第5情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第5情報を用いて、複数のサブ空間の位置を認識することで、各サブ空間の対象空間内の位置を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置に基づき複数のサブ空間を結合できる。
 例えば、前記ビットストリームは、前記複数のサブ区間の数を示す第6情報(例えばtile_number)を含む。三次元データ復号装置は、前記対象空間の復元では、前記第6情報をさらに用いて前記複数のサブ空間を結合する。
 例えば、前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含む。三次元データ復号装置は、前記対象空間の復元では、前記第7情報をさらに用いて前記複数のサブ空間を結合する。例えば、三次元データ復号装置は、第7情報を用いて、複数のサブ空間の間隔を認識することで、各サブ空間の対象空間内の位置及び範囲を把握できる。三次元データ復号装置は、把握した複数のサブ空間の位置及び範囲に基づき複数のサブ空間を結合できる。
 例えば、三次元データ復号装置は、プロセッサと、メモリとを備え、プロセッサは、メモリを用いて、上記の処理を行う。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等に含まれる各処理部は典型的には集積回路である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 属性情報生成部
 4670 符号化部
 4671 多重化部
 4680 復号部
 4681 逆多重化部
 4710 第1の多重化部
 4711 ファイル変換部
 4720 第1の逆多重化部
 4721 ファイル逆変換部
 4730 第2の多重化部
 4731 ファイル変換部
 4740 第2の逆多重化部
 4741 ファイル逆変換部
 4750 第3の多重化部
 4751 ファイル変換部
 4760 第3の逆多重化部
 4761 ファイル逆変換部
 4801 符号化部
 4802 多重化部
 5010 第1の符号化部
 5011 分割部
 5012 位置情報符号化部
 5013 属性情報符号化部
 5014 付加情報符号化部
 5015 多重化部
 5020 第1の復号部
 5021 逆多重化部
 5022 位置情報復号部
 5023 属性情報復号部
 5024 付加情報復号部
 5025 結合部
 5031 タイル分割部
 5032 位置情報スライス分割部
 5033 属性情報スライス分割部
 5041 位置情報スライス結合部
 5042 属性情報スライス結合部
 5043 タイル結合部
 5051 タイル分割部
 5052 符号化部
 5053 復号部
 5054 タイル結合部

Claims (20)

  1.  複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し、
     前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する
     三次元データ符号化方法。
  2.  前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である
     請求項1記載の三次元データ符号化方法。
  3.  前記形状は、矩形又は円である
     請求項1記載の三次元データ符号化方法。
  4.  前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報を含む
     請求項1~3のいずれか1項に記載の三次元データ符号化方法。
  5.  前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報を含む
     請求項1~4のいずれか1項に記載の三次元データ符号化方法。
  6.  前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報を含む
     請求項1~5のいずれか1項に記載の三次元データ符号化方法。
  7.  前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報を含む
     請求項1~6のいずれか1項に記載の三次元データ符号化方法。
  8.  前記ビットストリームは、前記複数のサブ区間の数を示す第6情報を含む
     請求項1~7のいずれか1項に記載の三次元データ符号化方法。
  9.  前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含む
     請求項1~8のいずれか1項に記載の三次元データ符号化方法。
  10.  ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元し、
     前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報を用いて前記複数のサブ空間を結合することで前記対象空間を復元する
     三次元データ復号方法。
  11.  前記形状は、前記複数のサブ空間の二次元における形状、又は三次元における形状である
     請求項10記載の三次元データ復号方法。
  12.  前記形状は、矩形又は円である
     請求項10記載の三次元データ復号方法。
  13.  前記ビットストリームは、前記複数のサブ区間が重複するか否かを示す第2情報を含み、
     前記対象空間の復元では、前記第2情報をさらに用いて前記複数のサブ空間を結合する
     請求項10~12のいずれか1項に記載の三次元データ復号方法。
  14.  前記ビットストリームは、前記複数のサブ区間の分割方法が上面視を用いた分割方法であるかを示す第3情報を含み、
     前記第3情報により、前記複数のサブ区間の分割方法が上面視を用いた分割方法であることが示される場合、前記第1情報を用いて前記複数のサブ空間を結合する
     請求項10~13のいずれか1項に記載の三次元データ復号方法。
  15.  前記ビットストリームは、前記複数のサブ区間の高さ、幅、奥行き及び半径のうち少なくとも1つを示す第4情報を含み、
     前記対象空間の復元では、前記第4情報をさらに用いて前記複数のサブ空間を結合する
     請求項10~14のいずれか1項に記載の三次元データ復号方法。
  16.  前記ビットストリームは、前記複数のサブ区間の各々の位置を示す第5情報を含み、
     前記対象空間の復元では、前記第5情報をさらに用いて前記複数のサブ空間を結合する
     請求項10~15のいずれか1項に記載の三次元データ復号方法。
  17.  前記ビットストリームは、前記複数のサブ区間の数を示す第6情報を含み、
     前記対象空間の復元では、前記第6情報をさらに用いて前記複数のサブ空間を結合する
     請求項10~16のいずれか1項に記載の三次元データ復号方法。
  18.  前記ビットストリームは、前記複数のサブ区間の間隔を示す第7情報を含み、
     前記対象空間の復元では、前記第7情報をさらに用いて前記複数のサブ空間を結合する
     請求項10~17のいずれか1項に記載の三次元データ復号方法。
  19.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     複数の三次元点が含まれる対象空間を分割した複数のサブ空間を符号化することで複数の符号化データを生成し、
     前記複数の符号化データと、前記複数のサブ空間の形状を示す第1情報とを含むビットストリームを生成する
     三次元データ符号化装置。
  20.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに含まれる、複数の三次元点が含まれる対象空間を分割した複数のサブ空間が符号化されることで生成された複数の符号化データを復号することで前記複数のサブ空間を復元し、
     前記ビットストリームに含まれる、前記複数のサブ空間の形状を示す第1情報を用いて前記複数のサブ空間を結合することで前記対象空間を復元する
     三次元データ復号装置。
PCT/JP2019/034002 2018-08-30 2019-08-29 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 WO2020045590A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP19853574.2A EP3846133A4 (en) 2018-08-30 2019-08-29 THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
JP2020539600A JP7463278B2 (ja) 2018-08-30 2019-08-29 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN201980055810.8A CN112639884A (zh) 2018-08-30 2019-08-29 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
US17/154,589 US20210168392A1 (en) 2018-08-30 2021-01-21 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
JP2024050915A JP2024083380A (ja) 2018-08-30 2024-03-27 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862724856P 2018-08-30 2018-08-30
US62/724,856 2018-08-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/154,589 Continuation US20210168392A1 (en) 2018-08-30 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
WO2020045590A1 true WO2020045590A1 (ja) 2020-03-05

Family

ID=69642812

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/034002 WO2020045590A1 (ja) 2018-08-30 2019-08-29 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Country Status (5)

Country Link
US (1) US20210168392A1 (ja)
EP (1) EP3846133A4 (ja)
JP (2) JP7463278B2 (ja)
CN (1) CN112639884A (ja)
WO (1) WO2020045590A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220198719A1 (en) * 2019-10-03 2022-06-23 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
JP2022531110A (ja) * 2020-04-02 2022-07-06 テンセント・アメリカ・エルエルシー 点群符号化のための方法および装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
WO2017161054A1 (en) * 2016-03-15 2017-09-21 Solfice Research, Inc. Systems and methods for providing vehicle cognition
WO2019142665A1 (ja) * 2018-01-16 2019-07-25 ソニー株式会社 情報処理装置および方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP095997A0 (en) * 1997-12-16 1998-01-15 Silverbrook Research Pty Ltd A data processing method and apparatus (art 68)
KR100446635B1 (ko) * 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
KR100970726B1 (ko) * 2003-10-04 2010-07-16 삼성전자주식회사 계층적 움직임 추정 방법
EP1696673A1 (en) * 2004-09-01 2006-08-30 Mitsubishi Electric Information Technology Centre Europe B.V. Intra-frame prediction for high-pass temporal-filtered frames in wavelet video coding
CN101223579B (zh) * 2005-05-26 2013-02-06 Lg电子株式会社 用于对音频信号进行编码和解码的方法
CN102238387B (zh) * 2011-05-25 2017-07-18 深圳市云宙多媒体技术有限公司 一种视频熵编码、熵解码方法、装置
JP5776546B2 (ja) * 2011-12-28 2015-09-09 富士通株式会社 路面調査プログラム及び路面調査装置
CN103686179B (zh) * 2012-09-26 2019-05-07 中兴通讯股份有限公司 使用参数集的编码、解码方法及装置、电子设备
CN103517070B (zh) * 2013-07-19 2017-09-29 清华大学 图像的编解码方法和装置
CN105323032B (zh) * 2014-06-18 2019-02-05 中国移动通信集团公司 一种三维预编码矩阵的生成方法、基站及终端
KR102292923B1 (ko) * 2014-12-15 2021-08-24 삼성전자주식회사 3d 렌더링 방법 및 장치
US9866815B2 (en) * 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
CN105160705B (zh) * 2015-09-10 2018-02-23 李晓强 一种基于三维引擎对移动终端三维图像数据的处理方法
EP3429207A1 (en) * 2017-07-13 2019-01-16 Thomson Licensing A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
EP3489900A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Method, apparatus and stream for encoding/decoding volumetric video
CN112313703B (zh) * 2018-06-15 2024-05-28 宝马股份公司 点云的增量分割

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
WO2017161054A1 (en) * 2016-03-15 2017-09-21 Solfice Research, Inc. Systems and methods for providing vehicle cognition
WO2019142665A1 (ja) * 2018-01-16 2019-07-25 ソニー株式会社 情報処理装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NAKAYAMA, RIKI: "The new 3D data format which is defined a set of voxels with 'FAV' attribute", NIKKEI MONOZUKURI, 1 September 2016 (2016-09-01), pages 111 - 115, XP009525634, ISSN: 1349-2772 *
See also references of EP3846133A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220198719A1 (en) * 2019-10-03 2022-06-23 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
JP2022531110A (ja) * 2020-04-02 2022-07-06 テンセント・アメリカ・エルエルシー 点群符号化のための方法および装置
JP7325534B2 (ja) 2020-04-02 2023-08-14 テンセント・アメリカ・エルエルシー 点群符号化のための方法および装置
US11741635B2 (en) 2020-04-02 2023-08-29 Tencent America LLC Partitioning a 3D space based on dimensions of the 3D space

Also Published As

Publication number Publication date
JP7463278B2 (ja) 2024-04-08
CN112639884A (zh) 2021-04-09
EP3846133A1 (en) 2021-07-07
EP3846133A4 (en) 2021-10-20
US20210168392A1 (en) 2021-06-03
JPWO2020045590A1 (ja) 2021-09-09
JP2024083380A (ja) 2024-06-21

Similar Documents

Publication Publication Date Title
WO2020101021A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7509694B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7441798B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020059826A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021066163A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020032248A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024083380A (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024096165A (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020251019A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024055951A (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020116619A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021261514A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020032136A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2021060526A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022025275A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022025280A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024120055A (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: 19853574

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020539600

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019853574

Country of ref document: EP

Effective date: 20210330