Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

The method and device optimize three-dimensional data encoding and decoding by structuring data units with position and attribute information, reducing processing demands and enhancing efficiency.

JP7714730B2Active Publication Date: 2025-07-29PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA

Patent Information

Application Number
JP2024079641
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-08-08
Filing Date
2024-05-15
Publication Date
2025-07-29
Estimated Expiration
2039-08-07

AI Technical Summary

Technical Problem

Existing three-dimensional data encoding and decoding processes are inefficient, leading to high processing demands.

Method used

A method and device for encoding and decoding three-dimensional data by generating data units with specific types that include encoded position and attribute information, allowing for efficient processing through the use of access units.

Benefits of technology

Reduces the processing amount and throughput requirements for three-dimensional data encoding and decoding, facilitating efficient data transmission and reception.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007714730000001
    Figure 0007714730000001
  • Figure 0007714730000002
    Figure 0007714730000002
  • Figure 0007714730000003
    Figure 0007714730000003
Patent Text Reader

Abstract

To provide a three-dimensional data encoding method capable of reducing processing volume.SOLUTION: The method includes the steps of; encoding a data unit that represents a first type including a piece of positional information; encoding a data unit that represents a second type corresponding the data unit, and includes the positional information including a piece of attribute information; encoding data unit that represents a third type including a first parameter that is used for encoding the data unit including the positional information; and encoding a data unit that represents a fourth type including a second parameter that is used for encoding the data unit including the attribute information.SELECTED DRAWING: Figure 55
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding apparatus, and a three-dimensional data decoding apparatus.

Background Art

[0002] In the future, the spread of devices or services that utilize three-dimensional data is expected in a wide range of fields such as computer vision, map information, monitoring, infrastructure inspection, or video distribution for autonomous operation of automobiles or robots. Three-dimensional data is acquired 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.

[0003] As one of the methods for expressing three-dimensional data, there is a method called point cloud that represents the shape of a three-dimensional structure by a point group in a three-dimensional space. In a point cloud, the positions and colors of the point group are stored. Although point cloud is expected to become the mainstream as a method for expressing three-dimensional data, the amount of data of the point group is very large. Therefore, in the accumulation or transmission of three-dimensional data, compression of the amount of data by encoding is essential, similar to two-dimensional moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG).

[0004] In addition, regarding the compression of point cloud, it is partially supported by a publicly available library (Point Cloud Library) that performs point cloud-related processing.

[0005] In addition, a technique is known for searching for and displaying facilities located around a vehicle using three-dimensional map data (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0006]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0007] In the encoding process and decoding process of three-dimensional data, it is desired to reduce the processing amount.

[0008] An object of the present disclosure is to provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device capable of reducing the processing amount.

Means for Solving the Problems

[0009] The three-dimensional data encoding method according to one aspect of the present disclosure indicates the first The data type su data unit Generate and indicates the second The data type su data unit Generate and indicates the third The data type su data unit including the first parameter used for encoding the data unit Generate and indicates the fourth The data type su data unit Generate, and the data unit indicating the first data type includes encoded position information, the data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, the data unit indicating the third data type includes a first parameter used for decoding the data unit including the encoded position information, and the data unit indicating the fourth data type includes a second parameter used for decoding the data unit including the encoded attribute information .

[0010] The three-dimensional data decoding method according to one aspect of the present disclosure decodes the first The data type su data unit, decodes the second The data type su data unit, decodes the third The data type su data unit, and decodes the fourth The data type su data unit Generate, and the data unit indicating the first data type includes encoded position information, the data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, the data unit indicating the third data type includes a first parameter used for decoding the data unit including the encoded position information, and the data unit indicating the fourth data type includes a second parameter used for decoding the data unit including the encoded attribute information .

Advantages of the Invention

[0011] The present disclosure can provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding apparatus, or a three-dimensional data decoding apparatus capable of reducing throughput.

Brief Description of the Drawings

[0012]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Figure 39

Figure 40

Figure 41

Figure 42

Figure 43

Figure 44

Figure 45

Figure 46

Figure 47

Figure 48

Figure 49

Figure 50

Figure 51

Figure 52

Figure 53

Figure 54

Figure 55

Figure 56

Figure 57

Figure 58

Figure 59

Figure 60

Figure 61

Figure 62

Figure 63

Figure 64

Figure 65

Figure 66

Figure 67

Figure 68

Figure 69

Figure 70

Figure 71

[0013] A three-dimensional data encoding method according to one aspect of the present disclosure is a three-dimensional data encoding method for encoding time-series three-dimensional data, wherein the three-dimensional data includes position information and attribute information for each time, and the three-dimensional data encoding method encodes the position information and encodes the attribute information to be processed by referring to position information at the same time as the attribute information to be processed, and the position information and attribute information at the same time constitute an access unit.

[0014] According to this, the three-dimensional data encoding method can easily control references in encoding using access units, thereby reducing the amount of processing required for encoding.

[0015] For example, the three-dimensional data encoding method may further generate a bitstream including the encoded position information, the encoded attribute information, and information indicating the position information referenced by the attribute information to be processed.

[0016] For example, the bitstream may include a position parameter set including control information for position information at each time, and an attribute parameter set including control information for attribute information at each time.

[0017] For example, the bitstream may include a position sequence parameter set including control information common to position information at a plurality of times, and an attribute sequence parameter set including control information common to attribute information at a plurality of times.

[0018] For example, the bitstream may include a stream parameter set including control information common to position information of a plurality of times and attribute information of a plurality of times.

[0019] For example, the bitstream may include an access unit header that contains control information that is common within the access unit.

[0020] For example, a GOF (Group of Frames) consisting of one or more of the access units may be coded so that it can be decoded independently.

[0021] For example, the bitstream may include a GOF header that contains control information that is common within the GOF.

[0022] A three-dimensional data decoding method according to one aspect of the present disclosure is a three-dimensional data decoding method for decoding time-series three-dimensional data, wherein the three-dimensional data includes position information and attribute information for each time, and the position information and attribute information for the same time constitute an access unit, and the three-dimensional data decoding method decodes the position information from a bit stream, and decodes the attribute information to be processed from the bit stream by referring to the position information for the same time as the attribute information to be processed.

[0023] According to this, the three-dimensional data decoding method can easily control references in decoding using access units, thereby reducing the amount of processing required for decoding.

[0024] For example, the three-dimensional data decoding method may further acquire information indicating the location information of the reference destination of the attribute information to be processed from the bit stream, and decode the attribute information to be processed by referring to the location information of the reference destination indicated in the acquired information.

[0025] For example, the bitstream may include a position parameter set including control information for position information at each time, and an attribute parameter set including control information for attribute information at each time.

[0026] For example, the bitstream may include a position sequence parameter set including control information common to position information at a plurality of times, and an attribute sequence parameter set including control information common to attribute information at a plurality of times.

[0027] For example, the bitstream may include a stream parameter set including control information common to position information of a plurality of times and attribute information of a plurality of times.

[0028] For example, the bitstream may include an access unit header that contains control information that is common within the access unit.

[0029] For example, a group of frames (GOF) consisting of one or more of the access units may be decoded independently.

[0030] For example, the bitstream may include a GOF header that contains control information that is common within the GOF.

[0031] Furthermore, a three-dimensional data encoding device according to one aspect of the present disclosure is a three-dimensional data encoding device that encodes time-series three-dimensional data, and is equipped with a processor and a memory, wherein the three-dimensional data includes position information and attribute information for each time, and the processor uses the memory to encode the position information and encodes the attribute information to be processed by referring to position information at the same time as the attribute information to be processed, and the position information and attribute information at the same time constitute an access unit.

[0032] This allows the three-dimensional data encoding device to easily control references during encoding using access units, thereby reducing the amount of processing required for encoding.

[0033] Furthermore, a three-dimensional data decoding device according to one aspect of the present disclosure is a three-dimensional data decoding device that decodes time-series three-dimensional data, and is equipped with a processor and a memory, wherein the three-dimensional data includes position information and attribute information for each time, and the position information and attribute information for the same time constitute an access unit, and the processor uses the memory to decode the position information from the bit stream, and decodes the attribute information to be processed from the bit stream by referring to the position information for the same time as the attribute information to be processed.

[0034] This allows the three-dimensional data decoding device to easily control references during decoding using the access unit, thereby reducing the amount of decoding processing required by the three-dimensional data decoding device.

[0035] Note that these general or specific aspects may be implemented in a system, method, integrated circuit, computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented by any combination of a system, method, integrated circuit, computer program, and recording medium.

[0036] Hereinafter, embodiments will be specifically described with reference to the drawings. Note that all of the embodiments described below show a specific example of the present disclosure. The numerical values, shapes, materials, components, arrangement positions and connection forms of the components, steps, order of steps, etc. shown in the following embodiments are merely examples and are not intended to limit the present disclosure. In addition, among the components in the following embodiments, components not described in the independent claims indicating the most general concept are described as optional components.

[0037] (Embodiment 1) When using the encoded data of the point cloud in an actual device or service, it is desirable to transmit and receive the necessary information according to the application in order to suppress the network bandwidth. However, hitherto, such a function has not existed in the encoding structure of three-dimensional data, nor has there been an encoding method therefor.

[0038] In this embodiment, a three-dimensional data encoding method and a three-dimensional data encoding device for providing a function of transmitting and receiving the necessary information according to the application in the encoded data of a three-dimensional point cloud, a three-dimensional data decoding method and a three-dimensional data decoding device for decoding the encoded data, a three-dimensional data multiplexing method for multiplexing the encoded data, and a three-dimensional data transmission method for transmitting the encoded data will be described.

[0039] In particular, two encoding methods (encoding schemes) are currently being considered as encoding methods (encoding systems) for point cloud data; however, the structure of the encoded data and the method for storing the encoded data in a system format have not been defined, and as things stand, there is a problem that MUX processing (multiplexing) in the encoding unit, or transmission or storage, is not possible.

[0040] Furthermore, there has been no method to date that supports a format in which two codecs, a first encoding method and a second encoding method, are mixed, such as PCC (Point Cloud Compression).

[0041] In this embodiment, a description will be given of the structure of PCC encoded data in which two codecs, a first encoding method and a second encoding method, are mixed, and a method of storing the encoded data in a system format.

[0042] First, the configuration of a three-dimensional data (point cloud data) encoding / decoding system according to this embodiment will be described. Fig. 1 is a diagram showing an example of the configuration of a three-dimensional data encoding / decoding system according to this embodiment. As shown in Fig. 1, 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.

[0043] The three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data, which is three-dimensional data. Note that 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 multiple devices. Furthermore, the three-dimensional data encoding device may include some of the multiple processing units included in the three-dimensional data encoding system 4601.

[0044] 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.

[0045] 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.

[0046] The presentation unit 4612 presents the sensor information or the point cloud data to the user. For example, the presentation unit 4612 displays information or an image based on the sensor information or the point cloud data.

[0047] 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.

[0048] The multiplexing unit 4614 generates multiplexed data by multiplexing the encoded data, the control information, and the additional information input from the encoding unit 4613. The format of the multiplexed data is, for example, a file format for storage or a packet format for transmission.

[0049] The input / output unit 4615 (for example, a communication unit or an interface) outputs the multiplexed data to the outside. Alternatively, the multiplexed data is stored in a storage unit such as an internal memory. The control unit 4616 (or an application execution unit) controls each processing unit. That is, the control unit 4616 performs control such as encoding and multiplexing.

[0050] Note that the sensor information may be input to the encoding unit 4613 or the multiplexing unit 4614. Also, the input / output unit 4615 may output the point cloud data or the encoded data as it is to the outside.

[0051] 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 .

[0052] The three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding the encoded data or multiplexed data. Note that 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 multiple devices. Furthermore, the three-dimensional data decoding device may include some of the multiple processing units included in the three-dimensional data decoding system 4602.

[0053] 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 .

[0054] The sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603 .

[0055] The input / output unit 4622 acquires the transmission signal, decodes the multiplexed data (file format or packets) from the transmission signal, and outputs the multiplexed data to the demultiplexer 4623.

[0056] The demultiplexing unit 4623 obtains the coded data, control information, and additional information from the multiplexed data, and outputs the coded data, control information, and additional information to the decoding unit 4624.

[0057] The decoding unit 4624 reconstructs the point cloud data by decoding the encoded data.

[0058] The presentation unit 4625 presents the point cloud data to the user. For example, the presentation unit 4625 displays information or an image based on the point cloud data. The user interface 4626 acquires instructions based on the user's operations. The control unit 4627 (or the app execution unit) controls each processing unit. That is, the control unit 4627 performs controls such as demultiplexing, decoding, and presentation.

[0059] Note that the input / output unit 4622 may directly acquire point cloud data or encoded data from the outside. Also, 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 presentation based on the user's instructions acquired by the user interface 4626.

[0060] The sensor terminal 4603 generates sensor information, which is information obtained by sensors. The sensor terminal 4603 is a terminal equipped with sensors or a camera, and examples include moving bodies such as automobiles, flying objects such as airplanes, mobile terminals, or cameras.

[0061] The sensor information that can be acquired by the sensor terminal 4603 includes, for example, (1) the distance between the sensor terminal 4603 and an object or the reflectivity of the object obtained from a LIDAR, millimeter-wave radar, or infrared sensor, (2) the distance between a camera and an object or the reflectivity of the object obtained from a plurality of monocular camera images or stereo camera images. Also, the sensor information may include the attitude, orientation, gyro (angular velocity), position (GPS information or altitude), speed, or acceleration of the sensor. Further, the sensor information may include temperature, atmospheric pressure, humidity, or magnetism.

[0062] The external connection unit 4604 is realized by an integrated circuit (LSI or IC), an external storage unit, communication with a cloud server via the Internet, or broadcasting.

[0063] Next, the point cloud data will be described. FIG. 2 is a diagram showing the configuration of the point cloud data. FIG. 3 is a diagram showing a configuration example of a data file in which the information of the point cloud data is described.

[0064] Point cloud data includes data on multiple points. The data on each point includes location information (three-dimensional coordinates) and attribute information for that location information. A collection of multiple points is called a point cloud. For example, a point cloud can represent the three-dimensional shape of an object.

[0065] Position information such as three-dimensional coordinates is sometimes called geometry. Data for each point may also include attribute information of multiple attribute types. Attribute types include, for example, color or reflectance.

[0066] One piece of attribute information may be associated with one piece of location information, or multiple pieces of attribute information with different attribute types may be associated with one piece of location information, or multiple pieces of attribute information of the same attribute type may be associated with one piece of location information.

[0067] The configuration example of the data file shown in FIG. 3 is an example in which there is a one-to-one correspondence between position information and attribute information, and shows the position information and attribute information of N points that make up the point cloud data.

[0068] The position information is, for example, information on the three axes x, y, and z. The attribute information is, for example, RGB color information. A typical data file is a ply file.

[0069] Next, the types of point cloud data will be explained. Fig. 4 is a diagram showing the types of point cloud data. As shown in Fig. 4, point cloud data includes static objects and dynamic objects.

[0070] A static object is 3D point cloud data at any time (a certain time). A dynamic object is 3D point cloud data that changes over time. Hereinafter, 3D point cloud data at a certain time will be referred to as a PCC frame, or simply a frame.

[0071] The object may be a point cloud with a certain area restriction, such as ordinary video data, or a large-scale point cloud with no area restriction, such as map information.

[0072] Furthermore, there may be point cloud data of various densities, such as sparse point cloud data and dense point cloud data.

[0073] Each processing unit will be described in detail below. Sensor information is acquired by various methods, such as a distance sensor such as a LIDAR or a range finder, a stereo camera, or a combination of multiple monocular cameras. The point cloud data generation unit 4618 generates point cloud data based on the sensor information acquired by the sensor information acquisition unit 4617. The point cloud data generation unit 4618 generates position information as point cloud data, and adds attribute information for the position information to the position information.

[0074] The point cloud data generation unit 4618 may process the point cloud data when generating position information or adding attribute information. For example, the point cloud data generation unit 4618 may reduce the amount of data by deleting point clouds with overlapping positions. In addition, the point cloud data generation unit 4618 may convert (position shift, rotation, normalization, etc.) the position information or render the attribute information.

[0075] In FIG. 1, the point cloud data generation system 4611 is included in the three-dimensional data encoding system 4601, but it may be provided independently outside the three-dimensional data encoding system 4601.

[0076] The encoding unit 4613 generates encoded data by encoding the point cloud data based on a predetermined encoding method. There are two main types of encoding methods: the first is an encoding method that uses position information, and this encoding method will be referred to as the first encoding method hereinafter; and the second is an encoding method that uses a video codec, and this encoding method will be referred to as the second encoding method hereinafter.

[0077] The decoding unit 4624 decodes the coded data based on a predetermined coding method to decode the point group data.

[0078] 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. In addition to the PCC encoded data, the multiplexing unit 4614 multiplexes other media such as video, audio, subtitles, applications, and files, or reference time information. The multiplexing unit 4614 may also multiplex attribute information related to sensor information or point cloud data.

[0079] Multiplexing methods or file formats include ISOBMFF, MPEG-DASH, which is an ISOBMFF-based transmission method, MMT, MPEG-2 TS Systems, and RMP.

[0080] The demultiplexer 4623 extracts PCC encoded data, other media, time information, and the like from the multiplexed data.

[0081] The input / output unit 4615 transmits the multiplexed data using a method suited to the transmission medium or storage medium, such as broadcasting or communication. The input / output unit 4615 may communicate with other devices via the Internet, or may communicate with a storage unit such as a cloud server.

[0082] The communication protocol used may be http, ftp, TCP, UDP, etc. A PULL type communication method or a PUSH type communication method may be used.

[0083] Either wired or wireless transmission may be used. For wired transmission, Ethernet (registered trademark), USB, RS-232C, HDMI (registered trademark), coaxial cable, etc. are used. For wireless transmission, wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter waves, etc. are used.

[0084] As a broadcasting system, for example, DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 is used.

[0085] Fig. 5 is a diagram showing the configuration of a first encoding unit 4630, which is an example of the encoding unit 4613 that performs encoding using 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 point cloud data using the first encoding method. This first encoding unit 4630 includes a position information encoding unit 4631, an attribute information encoding unit 4632, an additional information encoding unit 4633, and a multiplexing unit 4634.

[0086] The first encoding unit 4630 is characterized in that it performs encoding taking into consideration a three-dimensional structure. The first encoding unit 4630 is also characterized in that the attribute information encoding unit 4632 performs encoding using information obtained from the position information encoding unit 4631. The first encoding method is also called GPCC (Geometry based PCC).

[0087] 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). The position information is input to a position information encoder 4631, the attribute information is input to an attribute information encoder 4632, and the additional information is input to an additional information encoder 4633.

[0088] The position information encoding unit 4631 encodes the position information to generate encoded position information (Compressed Geometry), which is encoded data. For example, the position information encoding unit 4631 encodes the position information using an N-ary tree structure such as an octree. Specifically, in an octree, the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not a point cloud is included in each node is generated. Furthermore, the node including the point cloud is further divided into eight nodes, and 8-bit information indicating whether or not a point cloud is included in each of the eight nodes is generated. This process is repeated until the number of point clouds included in a predetermined layer or node falls below a threshold.

[0089] The attribute information encoding unit 4632 generates encoded attribute information (Compressed Attribute) that is encoded data by encoding using the configuration information generated by the position information encoding unit 4631. For example, the attribute information encoding unit 4632 determines a reference point (reference node) to be referenced when encoding a target point (target node) to be processed, based on the octree structure generated by the position information encoding unit 4631. For example, the attribute information encoding unit 4632 references a peripheral node or adjacent node whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.

[0090] Furthermore, the encoding process of the attribute information may include at least one of a quantization process, a prediction process, and an arithmetic coding process. In this case, the reference means using a reference node to calculate a predicted value of the attribute information, or using the state of the reference node (e.g., occupancy information indicating whether the reference node includes a point group) to determine an encoding parameter. For example, the encoding parameter is a quantization parameter in a quantization process, or a context in an arithmetic coding process.

[0091] The additional information encoding unit 4633 generates encoded additional information (Compressed MetaData) that is encoded data by encoding compressible data from the additional information.

[0092] The multiplexing unit 4634 multiplexes the encoding position information, the encoding attribute information, the encoding additional information, and other additional information to generate a compressed stream, which is encoded data. The generated compressed stream is output to a processing unit in a system layer (not shown).

[0093] Next, a first decoding unit 4640, which is an example of the decoding unit 4624 that performs decoding using the first encoding method, will be described. FIG. 7 is a diagram showing the configuration of the first decoding unit 4640. FIG. 8 is a block diagram of the first decoding unit 4640. The first decoding unit 4640 generates point cloud data by decoding, using the first encoding method, coded data (coded stream) coded using 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.

[0094] A coded stream (compressed stream) that is coded data is input to the first decoding unit 4640 from a processing unit in a system layer (not shown).

[0095] The demultiplexer 4641 separates the encoded position information (Compressed Geometry), the encoded attribute information (Compressed Attribute), the encoded additional information (Compressed MetaData), and other additional information from the encoded data.

[0096] The position information decoding unit 4642 generates position information by decoding the encoded position information. For example, the position information decoding unit 4642 restores the position information of a point group represented by three-dimensional coordinates from the encoded position information represented by an N-ary tree structure such as an octree.

[0097] 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 referenced 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 references a peripheral node or adjacent node whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.

[0098] Furthermore, the attribute information decoding process may include at least one of an inverse quantization process, a prediction process, and an arithmetic decoding process. In this case, the reference means using a reference node to calculate a predicted value of the attribute information, or using the state of the reference node (e.g., occupancy information indicating whether the reference node includes a point group) to determine a decoding parameter. For example, the decoding parameter is a quantization parameter in an inverse quantization process, or a context in an arithmetic decoding process.

[0099] The additional information decoding unit 4644 generates additional information by decoding the encoded additional information. The first decoding unit 4640 uses the additional information necessary for decoding the position information and attribute information during decoding, and outputs the additional information necessary for the application to the outside.

[0100] Next, a description will be given of second encoding unit 4650, which is an example of encoding unit 4613 that performs encoding using the second encoding method. Fig. 9 is a diagram showing the configuration of second encoding unit 4650. Fig. 10 is a block diagram of second encoding unit 4650.

[0101] The second encoding unit 4650 generates encoded data (encoded stream) by encoding the point cloud data using a 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.

[0102] The second encoding unit 4650 has a feature of generating a position image and an attribute image by projecting a three-dimensional structure onto a two-dimensional image, and encoding the generated position image and attribute image using an existing video encoding method. The second encoding method is also called VPCC (Video based PCC).

[0103] 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).

[0104] The additional information generating unit 4651 generates map information of a plurality of two-dimensional images by projecting a three-dimensional structure onto the two-dimensional images.

[0105] 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 distance (Depth) is indicated as a pixel value. Note that this distance image may be an image in which multiple point clouds are viewed from a single viewpoint (an image in which multiple point clouds are projected onto a single two-dimensional plane), or may be multiple images in which multiple point clouds are viewed from multiple viewpoints, or may be a single image in which these multiple images are integrated.

[0106] The attribute image generation unit 4653 generates an attribute image based on the attribute information and the map information generated by the additional information generation unit 4651. This attribute image is, for example, an image in which attribute information (for example, color (RGB)) is represented as pixel values. Note that this image may be an image in which multiple point clouds are viewed from one viewpoint (an image in which multiple point clouds are projected onto one two-dimensional plane), or multiple images in which multiple point clouds are viewed from multiple viewpoints, or a single image in which these multiple images are integrated.

[0107] The video encoding unit 4654 generates an encoded position image (Compressed Geometry Image) and an encoded attribute image (Compressed Attribute Image), which are encoded data, by encoding the position image and the attribute image using a video encoding method. Note that any known encoding method may be used as the video encoding method. For example, the video encoding method is AVC, HEVC, or the like.

[0108] The additional information encoding unit 4655 generates encoded additional information (Compressed MetaData) by encoding the additional information, map information, and the like included in the point cloud data.

[0109] The multiplexing unit 4656 multiplexes the encoding position image, the encoding attribute image, the encoding additional information, and other additional information to generate an encoded stream (Compressed Stream) that is encoded data. The generated encoded stream is output to a processing unit in a system layer (not shown).

[0110] Next, a second decoding unit 4660, which is an example of the decoding unit 4624 that performs decoding using the second encoding method, will be described. FIG. 11 is a diagram showing the configuration of the second decoding unit 4660. FIG. 12 is a block diagram of the second decoding unit 4660. The second decoding unit 4660 generates point cloud data by decoding, using the second encoding method, coded data (coded stream) coded using 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.

[0111] A coded stream (compressed stream) that is coded data is input to the second decoding unit 4660 from a processing unit in a system layer (not shown).

[0112] The demultiplexer 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.

[0113] The video decoding unit 4662 generates a position image and an attribute image by decoding the encoded position image and the encoded attribute image using a video encoding method. Note that any known encoding method may be used as the video encoding method. For example, the video encoding method is AVC or HEVC.

[0114] The additional information decoding unit 4663 decodes the encoded additional information to generate additional information including map information and the like.

[0115] The position information generating unit 4664 generates position information using the position image and map information. The attribute information generating unit 4665 generates attribute information using the attribute image and map information.

[0116] The second decoding unit 4660 uses the additional information necessary for decoding during decoding, and outputs the additional information necessary for the application to the outside.

[0117] The following describes the problems with the PCC encoding method. Fig. 13 is a diagram showing a protocol stack related to PCC encoded data. Fig. 13 shows an example in which other media data such as video (e.g., HEVC) or audio is multiplexed onto the PCC encoded data and transmitted or stored.

[0118] Multiplexing methods and file formats have the function of multiplexing various coded data and transmitting or storing them. To transmit or store coded data, the coded data must be converted into the format of the multiplexing method. For example, HEVC specifies a technology that stores coded data in a data structure called a NAL unit and stores the NAL unit in ISOBMFF.

[0119] On the other hand, currently, a first encoding method (Codec1) and a second encoding method (Codec2) are being considered as methods for encoding point cloud data, but the structure of the encoded data and the method for storing the encoded data in a system format have not been defined, which poses the problem that, as it stands, it is not possible to perform MUX processing (multiplexing) in the encoding unit, transmission, or storage.

[0120] In the following description, unless a specific encoding method is specified, it refers to either the first encoding method or the second encoding method.

[0121] A method for defining NAL units according to this embodiment will be described below. For example, in conventional codecs such as HEVC, one format of NAL units is defined for one codec. However, there has been no method so far to support a format in which two codecs, a first encoding method and a second encoding method (hereinafter referred to as PCC codec), are mixed, as in PCC.

[0122] In this embodiment, a format common to all PCC codecs is defined as an NAL unit, and an identifier of an NAL unit dependent on the PCC codec is further defined. Fig. 14 is a diagram showing a protocol stack in this case. Figs. 15 to 17 are diagrams showing examples of NAL unit formats common to all codecs. Fig. 15 is a diagram showing an example of the syntax of a Common PCC NAL Unit. Fig. 16 is a diagram showing an example of the syntax of a Common PCC NAL Unit Header. Fig. 17 is a diagram showing an example of the semantics of pcc_codec_type. Fig. 18 is a diagram showing an example of a codec-dependent NAL unit type definition, and is a diagram showing an example of the semantics of pcc_nal_unit_type.

[0123] As a NAL unit format, a NAL unit format common to the PCC codec is defined. The NAL unit (pcc_nal_unit) includes a header (pcc_nal_unit_header), a payload (pcc_nal_unit_payload), and trailing bits (trailing_bits). The same format is used regardless of whether the data of the codec of either the first encoding method or the second encoding method is stored.

[0124] The NAL unit header (pcc_nal_unit_header) stores the codec type (pcc_codec_tye) and the NAL unit type (pcc_nal_unit_type). The codec type indicates whether the PCC codec of the encoded data stored in the NAL unit is the first encoding method or the second encoding method.

[0125] The NAL unit type indicates the type of the NAL unit that depends on the codec, and the type is defined for each codec. When the codec type is the first encoding method, the NAL unit type indicates the NAL unit type defined for the first encoding method. When the codec type is the second encoding method, the NAL unit type indicates the NAL unit type defined for the second encoding method. That is, different meanings are associated with the same value for the NAL unit type defined for the first encoding method and the NAL unit type defined for the second encoding method.

[0126] Note that in the header, the function of the codec type may be merged into the NAL unit type. For example, the codec type may be indicated using some information of the NAL unit type.

[0127] Next, the encoding process according to this embodiment will be described. Fig. 19 is a flowchart of the encoding process according to this embodiment. The process in this figure shows the process of the first encoding unit 4630 or the second encoding unit 4650 when the above definitions are used. Note that, hereinafter, the first encoding unit 4630 and the second encoding unit 4650 will also be referred to as the encoding unit 4613 without any distinction. Furthermore, the process in this figure is mainly performed by the multiplexing unit 4634 shown in Fig. 6 or the multiplexing unit 4656 shown in Fig. 10.

[0128] The process in the figure shows an example in which PCC data is encoded using either the first encoding method or the second encoding method, and it is assumed that which PCC codec is used for encoding is known. For example, which PCC codec is used may be specified by a user or an external device.

[0129] First, the encoding unit 4613 encodes the PCC data using a codec of either the first encoding method or the second encoding method (S4601).

[0130] If the codec used is the second encoding method (second encoding method in S4602), the encoding unit 4613 sets pcc_codec_type included in the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4603). The encoding unit 4613 also sets pcc_nal_unit_type in the NAL unit header to an identifier of the NAL unit for the second encoding method (S4604). The encoding unit 4613 then generates a NAL unit that has the set NAL unit header and includes encoded data in its payload. The encoding unit 4613 then transmits the generated NAL unit (S4605).

[0131] On the other hand, when the used codec is the first encoding method (the first encoding method in S4602), the encoding unit 4613 sets the pcc_codec_type of the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4606). Further, the encoding unit 4613 sets the identifier of the NAL unit for the first encoding method to pcc_nal_unit_type of the NAL unit header (S4607). Then, the encoding unit 4613 generates a NAL unit having the set NAL unit header and including encoded data in the payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4605).

[0132] Note that in steps S4603 and S4606, when the function of pcc_code_type is included in pcc_nal_unit_type, the encoding unit 4613 may indicate whether the NAL unit is of the first encoding method or the second encoding method in pcc_nal_unit_type.

[0133] Next, the decoding process by the first decoding unit 4640 and the second decoding unit 4660 according to the present embodiment will be described. FIG. 20 is a flowchart showing the decoding process by the second decoding unit 4660. The process in the figure is mainly performed by the de-multiplexing unit 4661 shown in FIG. 12.

[0134] Note that the process in the figure shows an example of encoding PCC data by either the second encoding method or the first encoding method. Also, in this method, the de-multiplexing unit 4661 included in the second decoding unit 4660 can identify the codec type of the NAL unit by referring to the information included in the NAL unit header. Therefore, the de-multiplexing unit 4661 can output necessary information to the video decoding unit 4662 according to the codec type.

[0135] First, the second decoding unit 4660 receives an NAL unit (S4611). For example, this NAL unit is generated by the processing in the encoding unit 4613 described above. That is, the header of this NAL unit includes pcc_codec_type and pcc_nal_unit_type.

[0136] Next, the second decoding unit 4660 determines whether the pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4612).

[0137] If pcc_codec_type indicates the second encoding method (second encoding method in S4612), the second decoding unit 4660 determines that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4613).The second decoding unit 4660 then identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4614).The second decoding unit 4660 then decodes the PCC data using the decoding process of the second encoding method (S4615).

[0138] On the other hand, if pcc_codec_type indicates the first encoding method (first encoding method in S4612), the second decoding unit 4660 determines that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4616). In this case, the second decoding unit 4660 does not process the NAL unit (S4617).

[0139] In addition, in step S4612, if the function of pcc_code_type is included in pcc_nal_unit_type, the second decoding unit 4660 may refer to pcc_nal_unit_type to determine whether the codec used for the data included in the NAL unit is the first encoding method or the second encoding method.

[0140] 21 is a flowchart showing the decoding process by the first decoding unit 4640. The process in this figure is mainly performed by the demultiplexing unit 4641 shown in FIG.

[0141] Note that the process in this figure shows an example in which PCC data is encoded using either the first encoding method or the second encoding method. In this method, the demultiplexing unit 4641 included in the first decoding unit 4640 can identify the codec type of the NAL unit by referencing information included in the NAL unit header. Therefore, the demultiplexing unit 4641 can output the necessary information according to the codec type to the position information decoding unit 4642 and the attribute information decoding unit 4643.

[0142] First, the first decoding unit 4640 receives an NAL unit (S4621). For example, this NAL unit is generated by the processing in the encoding unit 4613. That is, the header of this NAL unit includes pcc_codec_type and pcc_nal_unit_type.

[0143] Next, the first decoding unit 4640 determines whether pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4622).

[0144] If pcc_codec_type indicates the second encoding method (second encoding method in S4622), the first decoding unit 4640 determines that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4623). In this case, the first decoding unit 4640 does not process the NAL unit (S4624).

[0145] On the other hand, if pcc_codec_type indicates the first encoding method (first encoding method in S4622), the first decoding unit 4640 determines that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4625).The first decoding unit 4640 then identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4626).The first decoding unit 4640 then decodes the PCC data using the decoding process of the first encoding method (S4627).

[0146] (Embodiment 2) In this embodiment, another method for defining NAL units will be described. In this embodiment, a different format for NAL units is defined for each PCC codec. Furthermore, an identifier for the NAL unit is defined independently for each PCC codec.

[0147] Fig. 22 is a diagram showing a protocol stack in this case. Fig. 23 is a diagram showing an example of the syntax of a NAL unit for codec 2 (codec2_nal_unit). Fig. 24 is a diagram showing an example of the syntax of a NAL unit header for codec 2 (codec2_nal_unit_header). Fig. 25 is a diagram showing an example of the semantics of codec2_nal_unit_type.

[0148] Fig. 26 is a diagram illustrating an example of the syntax of a NAL unit (codec1_nal_unit) for codec 1. Fig. 27 is a diagram illustrating an example of the syntax of a NAL unit header (codec1_nal_unit_header) for codec 1. Fig. 28 is a diagram illustrating an example of the semantics of codec1_nal_unit_type.

[0149] The NAL unit format is defined independently for each PCC codec. The NAL unit (codec1_nal_unit, codec2_nal_unit) includes a header (codec1_nal_unit_header, codec2_nal_unit_header), a payload (codec1_nal_unit_payload, codec2_nal_unit_payload), and trailing bits (trailing_bits). The NAL unit (codec1_nal_unit) for the first encoding method and the NAL unit (codec2_nal_unit) for the second encoding method may have the same structure or different structures. The NAL unit for the first encoding method and the NAL unit for the second encoding method may have different sizes.

[0150] Data encoded using a first encoding method is stored in NAL units for the first encoding method, and data encoded using a second encoding method is stored in NAL units for the second encoding method.

[0151] The NAL unit headers (codec1_nal_unit_header, codec2_nal_unit_header) store NAL unit types (codec1_nal_unit_type, codec2_nal_unit_type). NAL unit types are independent for each codec, and types are defined for each codec. That is, the NAL unit for a first encoding method describes the NAL unit type defined for the first encoding method. The NAL unit for a second encoding method describes the NAL unit type defined for the second encoding method.

[0152] By using this method, the first encoding method and the second encoding method can be treated as different codecs.

[0153] Next, the encoding process according to this embodiment will be described. FIG. 29 is a flowchart of the encoding process according to this embodiment. The process in the figure shows the process of the first encoding unit 4630 or the second encoding unit 4650 when the above definition is used. Also, the process in the figure is mainly performed by the multiplexing unit 4634 shown in FIG. 6 or the multiplexing unit 4656 shown in FIG. 10.

[0154] Note that the process in the figure shows an example of encoding PCC data using either the first encoding method or the second encoding method, and it is assumed that it is known which PCC codec is used for encoding. For example, which PCC codec to use may be specified by the user or an external device, etc.

[0155] First, the encoding unit 4613 encodes the PCC data using a codec of either the first encoding method or the second encoding method (S4631).

[0156] When the codec used is the second encoding method (the second encoding method in S4632), the encoding unit 4613 generates an NAL unit in the NAL unit format for the second encoding method (S4633). Next, the encoding unit 4613 sets the identifier of the NAL unit for the second encoding method in codec2_nal_unit_type included in the NAL unit header (S4634). Then, the encoding unit 4613 generates an NAL unit having the set NAL unit header and including the encoded data in the payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4635).

[0157] On the other hand, when the used codec is the first encoding method (the first encoding method in S4632), the encoding unit 4613 generates an NAL unit in the NAL unit format for the first encoding method (S4636). Next, the encoding unit 4613 sets the identifier of the NAL unit for the first encoding method in the codec1_nal_unit_type of the NAL unit header (S4637). Then, the encoding unit 4613 generates an NAL unit having the set NAL unit header and including encoded data in the payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4635).

[0158] Next, the decoding process according to the present embodiment will be described. FIG. 30 is a flowchart of the decoding process according to the present embodiment. The process in the figure shows the process of the first decoding unit 4640 or the second decoding unit 4660 when the above definition is used. Hereinafter, the first decoding unit 4640 or the second decoding unit 4660 will also be referred to as the decoding unit 4624 without distinction. The process in the figure is mainly performed by the demultiplexing unit 4641 shown in FIG. 8 or the demultiplexing unit 4661 shown in FIG. 12.

[0159] Note that the process in the figure shows an example in which PCC data is encoded by either the first encoding method or the second encoding method, and it is assumed that it is known which PCC codec is used. For example, information indicating the used codec is included in the transmission signal, multiplexed data, or encoded data, and the decoding unit 4624 determines the used codec by referring to the information. Note that the decoding unit 4624 may determine the used codec based on a signal acquired separately from these signals.

[0160] If the codec used is the second encoding method (second encoding method in S4641), the decoding unit 4624 receives an NAL unit in the format for the second encoding method (S4642). Next, the decoding unit 4624 determines that the NAL unit is for the second encoding method and identifies the data using the NAL unit format for the second encoding method and the codec2_nal_unit_type for the second encoding method (S4643). Next, the decoding unit 4624 decodes the PCC data using the decoding process for the second encoding method (S4644).

[0161] On the other hand, if the codec used is the first encoding method (first encoding method in S4641), the decoding unit 4624 receives an NAL unit in the format for the first encoding method (S4645). Next, the decoding unit 4624 determines that the NAL unit is for the first encoding method and identifies the data using the NAL unit format for the first encoding method and codec1_nal_unit_type for the first encoding method (S4646). Next, the decoding unit 4624 decodes the PCC data using the decoding process for the first encoding method (S4747).

[0162] (Embodiment 3) In this embodiment, another method for defining NAL units will be described. In this embodiment, a format common to PCC codecs is defined as an NAL unit. Also, an identifier of the NAL unit common to PCC codecs is defined.

[0163] Fig. 31 is a diagram showing a protocol stack in this case. Figs. 32 to 34 are diagrams showing examples of NAL unit formats common to codecs. Fig. 32 is a diagram showing an example of the syntax of a Common PCC NAL Unit. Fig. 33 is a diagram showing an example of the syntax of a Common PCC NAL Unit Header. Fig. 34 is a diagram showing an example of the semantics of pcc_codec_type.

[0164] A NAL unit format common to all PCC codecs is defined. The NAL unit (pcc_nal_unit) includes a header (pcc_nal_unit_header), a payload (pcc_nal_unit_payload), and trailing bits (trailing_bits). The same format is used whether data of the first or second encoding method is stored.

[0165] The NAL unit header (pcc_nal_unit_header) stores the NAL unit type (pcc_nal_unit_type). The NAL unit type is common to all codecs, and a type common to all codecs is defined. That is, a commonly defined NAL unit type is written in both the NAL unit for the first encoding method and the NAL unit for the second encoding method. In the example shown in Fig. 34, for example, PCC DataA is coded data of codec 1, PCC DataB is coded data of codec 2, PCC MetaDataA is additional information of codec 1, and PCC MetaDataB is additional information of codec 2.

[0166] By using this method, the first encoding method and the second encoding method can be treated as the same codec.

[0167] Next, the encoding process according to this embodiment will be described. Fig. 35 is a flowchart of the encoding process according to this embodiment. The process in this figure shows the process of the first encoding unit 4630 or the second encoding unit 4650 when the above definitions are used. Furthermore, the process in this figure is mainly performed by the multiplexing unit 4634 shown in Fig. 6 or the multiplexing unit 4656 shown in Fig. 10.

[0168] The process in the figure shows an example in which PCC data is encoded using either the second encoding method or the first encoding method, and it is assumed that which PCC codec is used for encoding is known. For example, which PCC codec is used may be specified by a user or an external device.

[0169] First, the encoding unit 4613 encodes the PCC data using a codec of either the second encoding method or the first encoding method (S4651). Next, the encoding unit 4613 generates an NAL unit in a PCC common NAL unit format (S4652).

[0170] Next, the encoding unit 4613 sets a PCC-common NAL unit identifier to pcc_nal_unit_type included in the NAL unit header (S4653), and then transmits the NAL unit that has the set NAL unit header and includes encoded data in its payload (S4654).

[0171] Next, the decoding process according to this embodiment will be described. Fig. 36 is a flowchart of the decoding process according to this embodiment. The process in this figure shows the process of the first decoding unit 4640 or the second decoding unit 4660 when the above definitions are used. The process in this figure is mainly performed by the demultiplexing unit 4641 shown in Fig. 8 or the demultiplexing unit 4661 shown in Fig. 12.

[0172] The process in FIG. 10 shows an example in which PCC data is encoded using either the second encoding method or the first encoding method.

[0173] First, the decoding unit 4624 determines the codec used to encode the data included in the NAL unit (S4661). For example, the decoding unit 4624 determines the codec used by referring to pcc_nal_unit_type included in the NAL unit header.

[0174] If the codec used is the second encoding method (second encoding method in S4661), the decoding unit 4624 receives NAL units in a format common to PCCs (S4662). Next, the decoding unit 4624 determines that the NAL units are common and identifies the data using the common NAL unit format and common pcc_nal_unit_type (S4663). Next, the decoding unit 4624 decodes the PCC data using the decoding process of the second encoding method (S4664).

[0175] On the other hand, if the codec used is the first encoding method (first encoding method in S4661), the decoding unit 4624 receives NAL units in a format common to PCCs (S4665). Next, the decoding unit 4624 determines that the NAL units are common and identifies the data using the common NAL unit format and common pcc_nal_unit_type (S4666). Next, the decoding unit 4624 decodes the PCC data using the decoding process of the first encoding method (S4667).

[0176] The following describes modifications of the above-mentioned Embodiments 1 to 3. As another method for indicating the PCC codec type, the following method may be used.

[0177] In the first, second, and third embodiments, a case where two codecs, a first encoding method and a second encoding method, are mixed is described, but the above technique can also be applied when there are three or more PCC codecs.

[0178] In addition, in embodiments 1 and 3, the PCC codec identification information (pcc_codec_type in embodiment 1 and pcc_nal_unit_type in embodiment 3b) is described in the NAL unit header, but the codec identification information may also be stored in another location.

[0179] Also, the first encoding method and the second encoding method are not limited to the above example, and any codec may be used. For example, the first encoding method and the second encoding method may be a plurality of codecs obtained by subdividing GPCC, or may be a plurality of codecs obtained by subdividing VPCC. For example, both the first encoding method and the second encoding method may be VPCC, and the video encoding methods used may be different. The video encoding method may be, for example, AVC or HEVC. Also, either one or both of the first encoding method and the second encoding method may be an encoding method including other encoding methods such as video, audio, and text applications.

[0180] For example, the codec identification information may be included in the control information included in the PCC encoded stream. Here, the control information is, for example, parameter sets, or metadata such as SEI (Supplemental Enhancement Information).

[0181] FIG. 37 is a flowchart of the encoding process by the encoding unit 4613 in this case. First, the encoding unit 4613 encodes the PCC data (S4671), and describes the identification information of the PCC codec at a predetermined position (for example, parameter set) in the encoded data (S4672). Next, the encoding unit 4613 generates a NAL unit including the encoded data, and transmits the generated NAL unit (S4673).

[0182] In addition, the identification information of the PCC codec may be defined as a profile and shown in the metadata. Also, when the same codec is used throughout the sequence, the identification information of the PCC codec may be included in the sequence parameter set. Further, when encoded with different codecs for each PCC frame, the identification information of the PCC codec may be included in the parameter set that describes the information for each frame. For example, when different codecs are used for each piece of PCC data, such as when the codec is different between the position information and the attribute information, the identification information of the PCC codec may be included in the parameter set that describes the information for each piece of data. That is, the information indicating the codec of the position information may be included in the control information (parameter set, etc.) of the position information, and the information indicating the codec of the attribute information may be included in the control information (parameter set, etc.) of the attribute information.

[0183] Note that the identification information of the codec may be stored in any of the above, or may be stored in multiple locations. For example, the identification information of the codec may be stored in both the encoded stream and the NAL unit header. Also, when the identification information of the codec is stored in multiple locations, the same information or different information may be stored in the multiple locations. Different information refers to, for example, information indicating GPCC or VPCC and information indicating any of a plurality of codecs obtained by subdividing GPCC or VPCC.

[0184] When the demultiplexing unit 4641 or 4661 included in the decoding unit 4624 determines that the parameter set is included in the NAL unit, it can determine whether the data included in the payload of the NAL unit is data encoded by the first encoding method or data encoded by the second encoding method by analyzing the description in the parameter set. Thereby, the decoding unit 4624 can quickly filter out NAL units that are not necessary for decoding.

[0185] 38 is a flowchart of the decoding process by the decoding unit 4624 in this case. First, the decoding unit 4624 receives an NAL unit (S4675), and identifies predetermined data (e.g., the parameter set) in which PCC codec identification information is described using pcc_nal_unit_type included in the NAL unit header (S4676). Next, the decoding unit 4624 analyzes the predetermined data (e.g., the parameter set) to identify the PCC codec indicated in the predetermined data (S4677). Next, the decoding unit 4624 decodes the coded data using the identified PCC codec (S4678).

[0186] Furthermore, in the above example, the coded stream is stored in an NAL unit, but a unit of a predetermined format may be used instead of the NAL unit.

[0187] (Fourth embodiment) In this embodiment, we will explain an encoding unit 4670 that has the functions of both the first encoding unit 4630 and the second encoding unit 4650 described above, and a decoding unit 4680 that has the functions of both the first decoding unit 4640 and the second decoding unit 4660.

[0188] 39 is a block diagram of an encoding unit 4670 according to this embodiment. This encoding unit 4670 includes the above-described first encoding unit 4630 and second encoding unit 4650, and a multiplexing unit 4671. The multiplexing unit 4671 multiplexes the encoded data generated by the first encoding unit 4630 and the encoded data generated by the second encoding unit 4650, and outputs the obtained encoded data.

[0189] FIG. 40 is a block diagram of the decoding unit 4680 according to the present embodiment. This decoding unit 4680 includes the above-described first decoding unit 4640 and second decoding unit 4660, and a demultiplexing unit 4681. The demultiplexing unit 4681 extracts, from the input encoded data, the encoded data using the first encoding method and the 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 4660.

[0190] With the above configuration, the encoding unit 4670 can selectively use the first encoding method and the second encoding method to encode the point cloud data. Further, the decoding unit 4680 can decode the encoded data encoded using the first encoding method, the encoded data encoded using the second encoding method, and the encoded data encoded using both the first encoding method and the second encoding method.

[0191] For example, 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, the encoding unit 4670 may switch the encoding method in units that can be encoded.

[0192] The encoding unit 4670 generates, for example, encoded data (encoding stream) including the identification information of the PCC codec described in the above Embodiment 1 or Embodiment 3.

[0193] The demultiplexing unit 4681 included in the decoding unit 4680 identifies data using, for example, the identification information of the PCC codec described in Embodiment 1 or Embodiment 3. When the data is data encoded by the first encoding method, the demultiplexing unit 4681 outputs the data to the first decoding unit 4640, and when the data is data encoded by the second encoding method, the demultiplexing unit 4681 outputs the data to the second decoding unit 4660.

[0194] In addition to the PCC codec identification information, the encoding unit 4670 may also send information indicating whether both encoding methods or one of the encoding methods was used as control information.

[0195] Next, the encoding process according to this embodiment will be described. Fig. 41 is a flowchart of the encoding process according to this embodiment. By using the PCC codec identification information described in Embodiments 1, 2, and 3, and the modifications, encoding processes compatible with multiple codecs become possible. Note that Fig. 41 shows an example in which the technique of Embodiment 1 is used, but similar processes can also be applied to other techniques.

[0196] First, the encoding unit 4670 encodes the PCC data using either one or both of the codecs of the first encoding method and the second encoding method (S4681).

[0197] If the codec used is the second encoding method (second encoding method in S4682), the encoding unit 4670 sets pcc_codec_type included in the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4683). Next, the encoding unit 4670 sets pcc_nal_unit_type in the NAL unit header to an identifier of the NAL unit for the second encoding method (S4684). Then, the encoding unit 4670 generates an NAL unit that has the set NAL unit header and includes encoded data in its payload. Then, the encoding unit 4670 transmits the generated NAL unit (S4685).

[0198] On the one hand, when the used codec is the first encoding method (the first encoding method in S4682), the encoding unit 4670 sets the pcc_codec_type included in the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4686). Next, the encoding unit 4670 sets the identifier of the NAL unit for the first encoding method to the pcc_nal_unit_type included in the NAL unit header (S4687). Next, the encoding unit 4670 generates a NAL unit having the set NAL unit header and including encoded data in the payload. Then, the encoding unit 4670 transmits the generated NAL unit (S4685).

[0199] Next, the decoding process according to this embodiment will be described. FIG. 42 is a flowchart of the decoding process according to this embodiment. By using the identification information of the PCC codec described in Embodiment 1, Embodiment 2, Embodiment 3, and the modification example, a decoding process corresponding to a plurality of codecs becomes possible. Note that FIG. 42 shows an example when the method of Embodiment 1 is used, but the same process can be applied to other methods.

[0200] First, the decoding unit 4680 receives a NAL unit (S4691). For example, this NAL unit is generated by the processing in the above-described encoding unit 4670.

[0201] Next, the decoding unit 4680 determines whether the pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4692).

[0202] If pcc_codec_type indicates the second encoding method (second encoding method in S4692), the decoding unit 4680 determines that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4693).The second decoding unit 4660 then identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4694).The decoding unit 4680 then decodes the PCC data using the decoding process for the second encoding method (S4695).

[0203] On the other hand, if pcc_codec_type indicates the first encoding method (first encoding method in S4692), the decoding unit 4680 determines that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4696).The decoding unit 4680 then identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4697).The decoding unit 4680 then decodes the PCC data using the decoding process for the first encoding method (S4698).

[0204] As described above, a three-dimensional data encoding device according to one embodiment of the present disclosure generates an encoded stream by encoding three-dimensional data (e.g., point cloud data) (e.g., S4671 in FIG. 37), and stores information indicating the encoding method used for the encoding, either the first encoding method or the second encoding method (e.g., codec identification information), in the control information (e.g., parameter set) of the encoded stream (e.g., S4672 in FIG. 37).

[0205] According to this, when decoding an encoded stream generated by the three-dimensional data encoding device, the three-dimensional data decoding device can determine the encoding method used for encoding using the information stored in the control information, and therefore the three-dimensional data decoding device can correctly decode the encoded stream even when multiple encoding methods are used.

[0206] For example, the three-dimensional data includes position information. In the encoding step, the three-dimensional data encoding device encodes the position information. In the storing step, the three-dimensional data encoding device stores, in control information for the position information, information indicating which of the first encoding method and the second encoding method was used to encode the position information.

[0207] For example, the three-dimensional data includes position information and attribute information. In the encoding step, the three-dimensional data encoding device encodes the position information and the attribute information. In the storing step, the three-dimensional data encoding device stores, in control information for the position information, information indicating which of the first encoding method and the second encoding method was used to encode the position information, and stores, in control information for the attribute information, information indicating which of the first encoding method and the second encoding method was used to encode the attribute information.

[0208] This allows different encoding methods to be used for the position information and the attribute information, thereby improving encoding efficiency.

[0209] For example, the three-dimensional data encoding method further stores the encoded stream in one or more units (for example, NAL units) (for example, S4673 in FIG. 37).

[0210] For example, as described in Figures 15 to 18 of embodiment 1, the unit has a format common to the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit (e.g., pcc_nal_unit_type), which has independent definitions in the first encoding method and the second encoding method.

[0211] For example, as described in FIGS. 23 to 28 of Embodiment 2, the unit has independent formats for the first encoding method and the second encoding method, and includes information indicating the type of data included in the unit, the information having an independent definition for the first encoding method and the second encoding method (for example, codec1_nal_unit_type or codec2_nal_unit_type).

[0212] For example, as described in FIGS. 32 to 34 of Embodiment 3, the unit has a common format for the first encoding method and the second encoding method, and includes information indicating the type of data included in the unit, the information having a common definition for the first encoding method and the second encoding method (for example, pcc_nal_unit_type).

[0213] For example, a three-dimensional data encoding device includes a processor and a memory, and the processor performs the above processing using the memory.

[0214] In addition, the three-dimensional data decoding device according to the present embodiment determines the encoding method used for encoding the encoded stream (for example, S4677 in FIG. 38) based on information (for example, codec identification information) indicating the encoding method used for encoding the three-dimensional data among the control information (for example, parameter set) included in the encoded stream generated by encoding the three-dimensional data, and decodes the encoded stream using the determined encoding method (for example, S4678 in FIG. 38).

[0215] According to this, the three-dimensional data decoding device can determine the encoding method used for encoding using the information stored in the control information when decoding the encoded stream. Therefore, the three-dimensional data decoding device can correctly decode the encoded stream even when a plurality of encoding methods are used.

[0216] For example, the three-dimensional data includes position information, and the encoded stream includes encoded data of the position information. In the determination, the three-dimensional data decoding device determines the encoding method used to encode the position information based on information indicating which of the first encoding method and the second encoding method was used to encode the position information, the information being included in control information of the position information included in the encoded stream. In the decoding, the three-dimensional data decoding device decodes the encoded data of the position information using the determined encoding method used to encode the position information.

[0217] For example, the three-dimensional data includes position information and attribute information, and the encoded stream includes encoded data of the position information and encoded data of the attribute information. In the determination, the three-dimensional data decoding device determines the encoding method used to encode the position information based on information, which of the first encoding method and the second encoding method was used to encode the position information, included in control information of the position information included in the encoded stream, and determines the encoding method used to encode the attribute information based on information, which of the first encoding method and the second encoding method was used to encode the attribute information, included in control information of the attribute information included in the encoded stream. In the decoding, the three-dimensional data decoding device decodes the encoded data of the position information using the determined encoding method used to encode the position information, and decodes the encoded data of the attribute information using the determined encoding method used to encode the attribute information.

[0218] This allows different encoding methods to be used for the position information and the attribute information, thereby improving encoding efficiency.

[0219] For example, the coded stream is stored in one or more units (for example, NAL units), and the three-dimensional data decoding device further obtains the coded stream from the one or more units.

[0220] For example, as described in FIGS. 15 to 18 of Embodiment 1, the unit has a format common to the first encoding method and the second encoding method, and is information indicating the type of data included in the unit, and has an independent definition in the first encoding method and the second encoding method. Information (for example, pcc_nal_unit_type).

[0221] For example, as described in FIGS. 23 to 28 of Embodiment 2, the unit has a format independent of the first encoding method and the second encoding method, and is information indicating the type of data included in the unit, and has an independent definition in the first encoding method and the second encoding method. Information (for example, codec1_nal_unit_type or codec2_nal_unit_type).

[0222] For example, as described in FIGS. 32 to 34 of Embodiment 3, the unit has a format common to the first encoding method and the second encoding method, and is information indicating the type of data included in the unit, and has a common definition in the first encoding method and the second encoding method. Information (for example, pcc_nal_unit_type).

[0223] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above processing using the memory.

[0224] (Embodiment 5) In this embodiment, a method for storing the NAL unit described in Embodiment 1 in an ISOBMFF file will be described.

[0225] ISOBMFF (ISO based media file format) is a file format standard defined in ISO / IEC 14496-12. ISOBMFF defines a format that can multiplex and store various media such as video, audio, and text, and is a standard independent of the media.

[0226] The basic structure (file) of ISOBMFF will be described. The basic unit in ISOBMFF is a box. A box consists of type, length, and data, and a file is a collection of boxes of various types combined together.

[0227] FIG. 43 is a diagram showing the basic structure (file) of ISOBMFF. An ISOBMFF file mainly includes a ftyp that indicates the file brand in 4CC (4-character code), a moov that stores metadata such as control information, and boxes such as an mdat that stores data.

[0228] The storage method for each media in an ISOBMFF file is separately specified. For example, the storage methods for AVC video and HEVC video are specified in ISO / IEC 14496-15. Here, in order to accumulate or transmit PCC-encoded data, it is conceivable to extend and use the functions of ISOBMFF, but there is still no regulation on storing PCC-encoded data in an ISOBMFF file. Therefore, in this embodiment, a method for storing PCC-encoded data in an ISOBMFF file will be described.

[0229] FIG. 44 is a diagram showing a protocol stack when storing NAL units common to the PCC codec in an ISOBMFF file. Here, the NAL units common to the PCC codec described in Embodiment 1 are stored in the ISOBMFF file. Although the NAL units are common to the PCC codec, since a plurality of PCC codecs are stored in the NAL units, it is desirable to specify storage methods (Carriage of Codec1, Carriage of Codec2) according to each codec.

[0230] Next, a method for storing a common PCC NAL unit that supports multiple PCC codecs in an ISOBMFF file will be described. Fig. 45 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file using the storage method for codec 1 (Carriage of Codec1). Fig. 46 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file using the storage method for codec 2 (Carriage of Codec2).

[0231] Here, ftyp is important information for identifying the file format, and a different identifier is defined for ftyp for each codec. When PCC-encoded data encoded using a first encoding method (encoding system) is stored in a file, ftyp=pcc1 is set. When PCC-encoded data encoded using a second encoding method is stored in a file, ftyp=pcc2 is set.

[0232] Here, pcc1 indicates that PCC codec 1 (first encoding method) is used, and pcc2 indicates that PCC codec 2 (second encoding method) is used. In other words, pcc1 and pcc2 indicate that the data is PCC (coded data of three-dimensional data (point cloud data)), and also indicate the PCC codecs (first and second encoding methods).

[0233] A method for storing NAL units in an ISOBMFF file will be described below. The multiplexing unit analyzes the NAL unit header, and if pcc_codec_type=Codec1, writes pcc1 in ftyp of ISOBMFF.

[0234] Furthermore, the multiplexing unit analyzes the NAL unit header, and if pcc_codec_type=Codec2, writes pcc2 in ftyp of ISOBMFF.

[0235] Further, when the pcc_nal_unit_type is metadata, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat. When the pcc_nal_unit_type is data, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat.

[0236] For example, the multiplexing unit may store the NAL unit size in the NAL unit in the same manner as HEVC.

[0237] By this storage method, by analyzing the ftyp included in the file in the demultiplexing unit (system layer), it is possible to determine whether the PCC encoded data is encoded by the first encoding method or the second encoding method. Further, as described above, by determining whether the PCC encoded data is encoded by the first encoding method or the second encoding method, the encoded data encoded by either one of the encoding methods can be extracted from the data in which the encoded data encoded by both encoding methods is mixed. Thereby, when transmitting the encoded data, the amount of data to be transmitted can be suppressed. Also, by this storage method, a common data format can be used without setting different data (file) formats for the first encoding method and the second encoding method.

[0238] In addition, when codec identification information is indicated in system layer metadata such as ftyp in ISOBMFF, the multiplexing unit may store the NAL unit with the pcc_nal_unit_type removed in the ISOBMFF file.

[0239] Next, the configuration and operation of the multiplexing unit included in the three-dimensional data encoding system (three-dimensional data encoding device) according to the present embodiment, and the demultiplexing unit included in the three-dimensional data decoding system (three-dimensional data decoding device) according to the present embodiment will be described.

[0240] FIG. 47 is a diagram showing the configuration of the first multiplexing unit 4710. The first multiplexing unit 4710 includes a file conversion unit 4711 that generates multiplexed data (file) by storing the encoded data and control information (NAL unit) generated by the first encoding unit 4630 in an ISOBMFF file. This first multiplexing unit 4710 is included in, for example, the multiplexing unit 4614 shown in FIG. 1.

[0241] FIG. 48 is a diagram showing the configuration of the first demultiplexing unit 4720. The first demultiplexing unit 4720 includes a file inverse conversion unit 4721 that acquires encoded data and control information (NAL unit) from the multiplexed data (file) and outputs the acquired encoded data and control information to the first decoding unit 4640. This first demultiplexing unit 4720 is included in, for example, the demultiplexing unit 4623 shown in FIG. 1.

[0242] FIG. 49 is a diagram showing the configuration of the second multiplexing unit 4730. The second multiplexing unit 4730 includes a file conversion unit 4731 that generates multiplexed data (file) by storing the encoded data and control information (NAL unit) generated by the second encoding unit 4650 in an ISOBMFF file. This second multiplexing unit 4730 is included in, for example, the multiplexing unit 4614 shown in FIG. 1.

[0243] FIG. 50 is a diagram showing the configuration of the second demultiplexing unit 4740. The second demultiplexing unit 4740 includes a file inverse conversion unit 4741 that acquires encoded data and control information (NAL unit) from the multiplexed data (file) and outputs the acquired encoded data and control information to the second decoding unit 4660. This second demultiplexing unit 4740 is included in, for example, the demultiplexing unit 4623 shown in FIG. 1.

[0244] FIG. 51 is a flowchart of the multiplexing process by the first multiplexing unit 4710. First, the first multiplexing unit 4710 determines whether the codec used is the first encoding method or the second encoding method by analyzing the pcc_codec_type included in the NAL unit header (S4701).

[0245] If pcc_codec_type indicates the second encoding method (second encoding method in S4702), the first multiplexing unit 4710 does not process the NAL unit (S4703).

[0246] On the other hand, if pcc_codec_type indicates the second encoding method (first encoding method in S4702), the first multiplexing unit 4710 writes pcc1 in ftyp (S4704). In other words, the first multiplexing unit 4710 writes information in ftyp indicating that data encoded using the first encoding method is stored in the file.

[0247] Next, the first multiplexing unit 4710 analyzes the pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) using a predetermined method according to the data type indicated by the pcc_nal_unit_type (S4705).Then, the first multiplexing unit 4710 creates an ISOBMFF file including the ftyp and the box (S4706).

[0248] 52 is a flowchart of the multiplexing process by the second multiplexing unit 4730. First, the second multiplexing unit 4730 analyzes pcc_codec_type included in the NAL unit header to determine whether the codec being used is the first encoding method or the second encoding method (S4711).

[0249] If pcc_unit_type indicates the second encoding method (second encoding method in S4712), the second multiplexing unit 4730 writes pcc2 in ftyp (S4713). In other words, the second multiplexing unit 4730 writes information in ftyp indicating that data encoded using the second encoding method is stored in the file.

[0250] Next, the second multiplexing unit 4730 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, etc.) using a predetermined method according 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).

[0251] On the other hand, if pcc_unit_type indicates the first encoding method (first encoding method in S4712), the second multiplexing unit 4730 does not process the NAL unit (S4716).

[0252] Note that the above process shows an example in which PCC data is encoded using either the first encoding method or the second encoding method. The first multiplexing unit 4710 and the second multiplexing unit 4730 store the desired NAL unit in a file by identifying the codec type of the NAL unit. Note that if PCC codec identification information is included in addition to the NAL unit header, the first multiplexing unit 4710 and the second multiplexing unit 4730 may identify the codec type (first encoding method or second encoding method) in steps S4701 and S4711 using the PCC codec identification information included in addition to the NAL unit header.

[0253] Furthermore, when storing data in a file in steps S4706 and S4714, the first multiplexing unit 4710 and the second multiplexing unit 4730 may delete pcc_nal_unit_type from the NAL unit header before storing the data in the file.

[0254] Figure 53 is a flowchart showing the processing by the first demultiplexing unit 4720 and the first decoding unit 4640. First, the first demultiplexing unit 4720 analyzes the ftyp included in the ISOBMFF file (S4721). When the codec indicated by the ftyp is the second encoding method (pcc2) (second encoding method in S4722), the first demultiplexing unit 4720 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4723). Also, the first demultiplexing unit 4720 transmits the result of the determination to the first decoding unit 4640. The first decoding unit 4640 does not process the NAL unit (S4724).

[0255] On the other hand, when the codec indicated by the ftyp is the first encoding method (pcc1) (first encoding method in S4722), the first demultiplexing unit 4720 determines that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4725). Also, the first demultiplexing unit 4720 transmits the result of the determination to the first decoding unit 4640.

[0256] The first decoding unit 4640 identifies the data assuming that the pcc_nal_unit_type included in the NAL unit header is 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).

[0257] Figure 54 is a flowchart showing the processing by the second demultiplexing unit 4740 and the second decoding unit 4660. First, the second demultiplexing unit 4740 analyzes the ftyp included in the ISOBMFF file (S4731). When the codec indicated by the ftyp is the second encoding method (pcc2) (second encoding method in S4732), the second demultiplexing unit 4740 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4733). Also, the second demultiplexing unit 4740 transmits the result of the determination to the second decoding unit 4660.

[0258] The second decoding unit 4660 identifies the data by determining that the pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4734).Then, the second decoding unit 4660 decodes the PCC data using the decoding process for the second encoding method (S4735).

[0259] On the other hand, if the codec indicated by ftyp is the first encoding method (pcc1) (first encoding method in S4732), the second demultiplexing unit 4740 determines that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4736). The second demultiplexing unit 4740 also conveys the result of this determination to the second decoding unit 4660. The second decoding unit 4660 does not process the NAL unit (S4737).

[0260] In this way, for example, by identifying the codec type of the NAL unit in the first demultiplexing unit 4720 or the second demultiplexing unit 4740, the codec type can be identified at an early stage. Furthermore, desired NAL units 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 codec identification information may become unnecessary in the first decoding unit 4640 or the second decoding unit 4660. Note that the first decoding unit 4640 or the second decoding unit 4660 may again refer to the NAL unit type and perform the process of analyzing codec identification information.

[0261] In addition, if the first multiplexing unit 4710 or the second multiplexing unit 4730 removes the pcc_nal_unit_type from the NAL unit header, the first demultiplexing unit 4720 or the second demultiplexing unit 4740 may add the pcc_nal_unit_type to the NAL unit and then output it to the first decoding unit 4640 or the second decoding unit 4660.

[0262] (Embodiment 6) This embodiment will describe a multiplexing unit and a demultiplexing unit corresponding to the encoding unit 4670 and decoding unit 4680 that support multiple codecs, as described in Embodiment 4. Figure 55 shows the configurations of the encoding unit 4670 and third multiplexing unit 4750 according to this embodiment.

[0263] The encoding unit 4670 encodes the point cloud data using either or both of a first encoding method and a second encoding method. The encoding unit 4670 may switch the encoding method (the first encoding method and the second encoding method) for each point cloud data unit or for each frame unit. The encoding unit 4670 may also switch the encoding method for each encoding unit.

[0264] The encoding unit 4670 generates encoded data (encoded stream) including identification information of the PCC codec, as described in the first to fourth embodiments.

[0265] The third multiplexing unit 4750 includes a file conversion unit 4751. The file conversion unit 4751 converts the NAL units output from the encoding unit 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 using a first encoding method, data encoded using a second encoding method, or data encoded using both methods. The file conversion unit 4751 writes a brand name that can identify the codec in ftyp. For example, to indicate that the data has been encoded using both methods, pcc3 is written in ftyp.

[0266] If the encoding unit 4670 describes PCC codec identification information outside the NAL unit, the file conversion unit 4751 may use this identification information to determine the PCC codec (encoding method).

[0267] FIG. 56 shows the configuration of the third demultiplexing unit 4760 and the decoding unit 4680 according to this embodiment.

[0268] The third demultiplexing unit 4760 includes a file inverse 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 using the first encoding method, data encoded using the second encoding method, or data encoded using both methods.

[0269] When the PCC-encoded data is encoded using one of the encoding methods, the data is input to the corresponding decoding unit out of the first decoding unit 4640 and the second decoding unit 4660, and the data is not input to the other decoding unit. When the PCC-encoded data is encoded using both encoding methods, the data is input to a decoding unit 4680 that supports both methods.

[0270] The decoding unit 4680 decodes the PCC encoded data using either or both of the first encoding method and the second encoding method.

[0271] FIG. 57 is a flowchart showing processing by the third multiplexing unit 4750 according to this embodiment.

[0272] First, the third multiplexing unit 4750 analyzes the pcc_codec_type included in the NAL unit header to determine whether the codec being used is the first encoding method, the second encoding method, or both the first and second encoding methods (S4741).

[0273] If the second encoding method is used (Yes in S4742 and the second encoding method in S4743), the third multiplexing unit 4750 writes pcc2 in ftyp (S4744). That is, the third multiplexing unit 4750 writes information indicating that data encoded using the second encoding method is stored in the file in ftyp.

[0274] Next, the third multiplexing unit 4750 analyzes the pcc_nal_unit_type included in the NAL unit header and stores the data in a box (such as moov or mdat) in a predetermined method according to the data type indicated by the pcc_unit_type (S4745). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0275] On the other hand, when the first encoding method is used (Yes in S4742 and the first encoding method in S4743), the third multiplexing unit 4750 describes pcc1 in the ftyp (S4747). That is, the third multiplexing unit 4750 describes information indicating that the data encoded by the first encoding method is stored in the file in the ftyp.

[0276] Next, the third multiplexing unit 4750 analyzes the pcc_nal_unit_type included in the NAL unit header and stores the data in a box (such as moov or mdat) in a predetermined method according to the data type indicated by the pcc_unit_type (S4748). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0277] On the other hand, when both the first encoding method and the second encoding method are used (No in S4742), the third multiplexing unit 4750 describes pcc3 in the ftyp (S4749). That is, the third multiplexing unit 4750 describes information indicating that the data encoded by both encoding methods is stored in the file in the ftyp.

[0278] Next, the third multiplexing unit 4750 analyzes the pcc_nal_unit_type included in the NAL unit header and stores the data in a box (such as moov or mdat) in a predetermined method according to the data type indicated by the pcc_unit_type (S4750). Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0279] FIG. 58 is a flowchart showing the processing by the third demultiplexing unit 4760 and the decoding unit 4680. First, the third demultiplexing unit 4760 analyzes the ftyp included in the ISOBMFF file (S4761). When the codec indicated by the ftyp is the second encoding method (pcc2) (Yes in S4762 and the second encoding method in S4763), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4764). Also, the third demultiplexing unit 4760 transmits the result of the determination to the decoding unit 4680.

[0280] The decoding unit 4680 identifies the data assuming that the pcc_nal_unit_type included in the NAL unit header is 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).

[0281] On the other hand, when the codec indicated by the ftyp is the first encoding method (pcc1) (Yes in S4762 and the first encoding method in S4763), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4767). Also, the third demultiplexing unit 4760 transmits the result of the determination to the decoding unit 4680.

[0282] The decoding unit 4680 identifies the data assuming that the pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4768). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the first encoding method (S4769).

[0283] On the other hand, when it is shown (No in S4762) that both encoding methods are used in the ftyp (pcc3), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by both the first encoding method and the second encoding method (S4770). Further, the third demultiplexing unit 4760 transmits the result of the determination to the decoding unit 4680.

[0284] The decoding unit 4680 identifies the data assuming that the pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the codec described in the pcc_codec_type (S4771). Then, the decoding unit 4680 decodes the PCC data using the decoding processes of both encoding methods (S4772). 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 using the decoding process of the second encoding method.

[0285] Hereinafter, a modification example of the present embodiment will be described. As the types of brands indicated in the ftyp, the following types may be indicated by identification information. Also, a combination of a plurality of the following types may be indicated by identification information.

[0286] The identification information may indicate whether the object of the original data before PCC encoding is a point cloud with a restricted area or a large-scale point cloud without a restricted area such as map information.

[0287] The identification information may indicate whether the original data before PCC encoding is a static object or a dynamic object.

[0288] As described above, 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.

[0289] The identification information may indicate the algorithm used in PCC encoding. Here, the algorithm is, for example, an encoding method that can be used in the first encoding method or the second encoding method.

[0290] The identification information may indicate the difference in the method of storing PCC-encoded data in an ISOBMFF file. For example, the identification information may indicate whether the storage method used is a storage method for accumulation or a storage method for real-time transmission such as dynamic streaming.

[0291] In addition, in Embodiment 5, the method of storing the NAL unit described in Embodiment 1 was described, and in Embodiment 6, the method of storing the NAL unit described in Embodiment 4 was described. However, by applying the same storage method to the NAL units described in Embodiments 2 and 3, the identification information of the PCC codec may be stored in the ISOBMFF file.

[0292] Also, in Embodiments 5 and 6, an example in which ISOBMFF is used as the file format was described, but other formats may be used. For example, the same method as in this embodiment may be used when storing PCC-encoded data in MPEG-2 TS Systems, MPEG-DASH, MMT, or RMP.

[0293] Also, in the above, an example of storing metadata such as identification information in ftyp was shown, but these metadata may be stored in other places than ftyp. For example, these metadata may be stored in moov.

[0294] As described above, the three-dimensional data storage device (or three-dimensional data multiplexing device, or three-dimensional data encoding device) performs the processing shown in FIG. 59.

[0295] First, 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) acquires one or more units (for example, NAL units) in which an encoded stream in which point cloud data has been encoded is stored (S4781). Next, the three-dimensional data storage device stores the one or more units in a file (for example, an ISOBMFF file) (S4782). Furthermore, in the storing step (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 in which point cloud data has been encoded, in the control information (for example, ftyp) of the file.

[0296] This allows a device that processes a file generated by the three-dimensional data storage device to refer to the control information of the file and quickly determine whether the data stored in the file is encoded point cloud data, thereby reducing the processing load of the device and speeding up processing.

[0297] For example, the information further indicates which of the first and second encoding methods was used to encode the point cloud data. Note that the fact that the data stored in the file is encoded point cloud data and the encoding method of the first and second encoding methods used to encode the point cloud data may be indicated by a single piece of information or by different pieces of information.

[0298] This allows a device that processes a file created by the three-dimensional data storage device to quickly determine the codec used for the data stored in the file by referencing the file's control information, thereby reducing the processing load of the device or speeding up processing.

[0299] For example, the first encoding method is a method (GPCC) that encodes position information representing the positions of point cloud data using an N-ary tree (where N is an integer greater than or equal to 2), and encodes attribute information using the position information. The second encoding method is a method (VPCC) that generates a two-dimensional image from point cloud data and encodes the two-dimensional image using a video encoding method.

[0300] For example, the file conforms to ISOBMFF (ISO based media file format).

[0301] For example, the three-dimensional data storage device includes a processor and a memory, and the processor performs the above processing using the memory.

[0302] Also, as described above, the three-dimensional data acquisition device (or three-dimensional data demultiplexing device, or three-dimensional data decoding device) performs the processing shown in FIG. 60.

[0303] 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) acquires a file (for example, an ISOBMFF file) in which one or more units (for example, NAL units) storing an encoded stream in which point cloud data is encoded are stored (S4791). Next, the three-dimensional data acquisition device acquires one or more units from the file (S4792). Also, the control information (for example, ftyp) of the file includes information (for example, pcc1, pcc2, or pcc3) indicating that the data stored in the file is data in which point cloud data is encoded.

[0304] For example, the three-dimensional data acquisition device refers to the information to determine whether the data stored in the file is data in which point cloud data is encoded. Further, when the three-dimensional data acquisition device determines that the data stored in the file is data in which point cloud data is encoded, the three-dimensional data acquisition device generates point cloud data by decoding the data in which the point cloud data included in one or more units is encoded. Alternatively, when the three-dimensional data acquisition device determines that the data stored in the file is data in which point cloud data is encoded, the three-dimensional data acquisition device outputs (notifies) information indicating that the data included in one or more units is data in which point cloud data is encoded to a subsequent processing unit (for example, the first decoding unit 4640, the second decoding unit 4660, or the decoding unit 4680).

[0305] According to this, the three-dimensional data acquisition device can early determine whether the data stored in the file is encoded data of point cloud data by referring to the control information of the file. Therefore, it is possible to reduce the processing amount or speed up the processing of the three-dimensional data acquisition device or the subsequent device.

[0306] For example, the information further indicates the encoding method used for the encoding among the first encoding method and the second encoding method. Note that the fact that the data stored in the file is data in which point cloud data is encoded and the encoding method used for encoding the point cloud data among the first encoding method and the second encoding method may be indicated by single information or different information.

[0307] According to this, the three-dimensional data acquisition device can early determine the codec used for the data stored in the file by referring to the control information of the file. Therefore, it is possible to reduce the processing amount or speed up the processing of the three-dimensional data acquisition device or the subsequent device.

[0308] For example, based on the information, the three-dimensional data acquisition device acquires data encoded by one of the encoding methods from the encoded point cloud data including data encoded by the first encoding method and data encoded by the second encoding method.

[0309] For example, the first encoding method is a method (GPCC) that encodes position information representing the position of point cloud data in an N-ary tree (where N is an integer of 2 or more) and encodes attribute information using the position information, and the second encoding method is a method (VPCC) that generates a two-dimensional image from the point cloud data and encodes the two-dimensional image using a video encoding method.

[0310] For example, the file conforms to ISOBMFF (ISO based media file format).

[0311] For example, the three-dimensional data acquisition device includes a processor and a memory, and the processor performs the above processing using the memory.

[0312] (Embodiment 7) In this embodiment, the type of encoded data (Geometry, Attribute, Metadata) generated by the above-described first encoding unit 4630 or second encoding unit 4650, the generation method of the additional information (metadata), and the multiplexing process in the multiplexing unit will be described. Note that the additional information (metadata) may also be referred to as a parameter set or control information.

[0313] In this embodiment, the dynamic object (three-dimensional point cloud data that changes over time) described with reference to FIG. 4 will be described as an example, but the same method may be used for a static object (three-dimensional point cloud data at an arbitrary time).

[0314] FIG. 61 is a diagram showing the configurations of an encoding unit 4801 and a multiplexing unit 4802 included in the three-dimensional data encoding apparatus according to the present embodiment. The encoding unit 4801 corresponds to, for example, the above-described first encoding unit 4630 or second encoding unit 4650. The multiplexing unit 4802 corresponds to the above-described multiplexing unit 4634 or 46456.

[0315] The encoding unit 4801 encodes point cloud data of a plurality of PCC (Point Cloud Compression) frames, and generates encoded data (Multiple Compressed Data) of a plurality of pieces of position information, attribute information, and additional information.

[0316] The multiplexing unit 4802 converts data into a data configuration considering data access in a decoding apparatus by NAL unitizing data of a plurality of data types (position information, attribute information, and additional information).

[0317] FIG. 62 is a diagram showing a configuration example of the encoded data generated by the encoding unit 4801. The arrows in the figure indicate the dependency relationships related to the decoding of the encoded data, and the source of the arrow depends on the data at the destination of the arrow. That is, the decoding apparatus decodes the data at the destination of the arrow, and uses the decoded data to decode the data at the source of the arrow. In other words, to depend means that the data at the destination is referenced (used) in the processing (encoding or decoding, etc.) of the data at the source.

[0318] First, the generation process of the encoded data of the position information will be described. The encoding unit 4801 generates encoded position data (Compressed Geometry Data) for each frame by encoding the position information of each frame. The encoded position data is represented by G(i). Here, i indicates the frame number, the time of the frame, or the like.

[0319] In addition, the encoding unit 4801 generates a position parameter set (GPS(i)) corresponding to each frame. The position parameter set includes parameters that can be used for decoding the encoded position data. Also, the encoded position data for each frame depends on the corresponding position parameter set.

[0320] Also, the encoded position data consisting of a plurality of frames is defined as a geometry sequence. The encoding unit 4801 generates a geometry sequence parameter set (also denoted as position SPS: Geometry Sequence PS) that stores parameters commonly used for the decoding process of a plurality of frames within the geometry sequence. The geometry sequence depends on the position SPS.

[0321] Next, the generation process of the encoded data of the attribute information will be described. The encoding unit 4801 generates encoded attribute data (Compressed Attribute Data) for each frame by encoding the attribute information of each frame. Also, the encoded attribute data is represented by A(i). In FIG. 62, an example where there are attribute X and attribute Y is shown. The encoded attribute data of attribute X is represented by AX(i), and the encoded attribute data of attribute Y is represented by AY(i).

[0322] In addition, the encoding unit 4801 generates an attribute parameter set (APS(i)) corresponding to each frame. Also, the attribute parameter set of attribute X is represented by AXPS(i), and the attribute parameter set of 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.

[0323] Further, the encoded attribute data consisting of a plurality of frames is defined as an attribute sequence. The encoding unit 4801 generates an attribute sequence parameter set (also denoted as attribute SPS: Attribute Sequence PS) that stores parameters commonly used for decoding processing of a plurality of frames within the attribute sequence. The attribute sequence depends on the attribute SPS.

[0324] Also, in the first encoding method, the encoded attribute data depends on the encoding position data.

[0325] Also, FIG. 62 shows an example in the case where there are two types of attribute information (attribute X and attribute Y). When there are two types of attribute information, for example, each data and metadata are generated by two encoding units. Also, for example, an attribute sequence is defined for each type of attribute information, and an attribute SPS is generated for each type of attribute information.

[0326] Note that FIG. 62 shows an example where there is one type of position information and two types of attribute information, but it is not limited to this. The attribute information may be one type or three or more types. In this case as well, encoded data can be generated in the same way. Also, in the case of point cloud data without attribute information, the attribute information may not be present. In that case, the encoding unit 4801 may not generate a parameter set related to the attribute information.

[0327] Next, the generation process of additional information (metadata) will be described. The encoding unit 4801 generates a PCC stream parameter set (also denoted as stream PS: PCC Stream PS) that is a parameter set for the entire PCC stream. The encoding unit 4801 stores in the stream PS parameters that can be commonly used for decoding processing of one or more position sequences and one or more attribute sequences. For example, the stream PS includes identification information indicating the codec of the point cloud data and information indicating the algorithm used for encoding. The position sequence and the attribute sequence depend on the stream PS.

[0328] Next, the access unit and GOF will be explained. In this embodiment, the concepts of the access unit (AU) and GOF (Group of Frame) are newly introduced.

[0329] An access unit is a basic unit for accessing data during decoding, and is composed of one or more pieces of data and one or more pieces of metadata. For example, an access unit is composed of position information at the same time and one or more pieces of attribute information. A GOF is a random access unit and is composed of one or more access units.

[0330] The encoding unit 4801 generates an access unit header (AU Header) as identification information indicating the beginning of an access unit. The encoding unit 4801 stores parameters related to the access unit in the access unit header. For example, the access unit header includes the configuration or information of the coded data included in the access unit. The access unit header also includes parameters commonly used for the data included in the access unit, such as parameters related to decoding of the coded data.

[0331] Instead of an access unit header, the encoding unit 4801 may generate an access unit delimiter that does not include parameters related to the access unit. This access unit delimiter is used as identification information indicating the start of the access unit. The decoding device identifies the start of the access unit by detecting the access unit header or the access unit delimiter.

[0332] Next, the generation of the identification information at the beginning of the GOF will be described. The encoding unit 4801 generates a GOF header as the identification information indicating the beginning of the GOF. The encoding unit 4801 stores the parameters related to the GOF in the GOF header. For example, the GOF header includes the configuration or information of the encoded data included in the GOF. Also, the GOF header includes parameters commonly used for the data included in the GOF, such as parameters related to the decoding of the encoded data.

[0333] Note that the encoding unit 4801 may generate a GOF delimiter that does not include the parameters related to the GOF instead of the GOF header. This GOF delimiter is used as the identification information indicating the beginning of the GOF. The decoding device identifies the beginning of the GOF by detecting the GOF header or the GOF delimiter.

[0334] In the PCC encoded data, for example, an access unit is defined in units of PCC frames. The decoding device accesses the PCC frame based on the identification information at the beginning of the access unit.

[0335] Also, for example, the GOF is defined as one random access unit. The decoding device accesses the random access unit based on the identification information at the beginning of the GOF. For example, if the PCC frames are independent of each other and can be decoded alone, the PCC frames may be defined as random access units.

[0336] Note that two or more PCC frames may be assigned to one access unit, or a plurality of random access units may be assigned to one GOF.

[0337] Also, 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 necessarily be used during decoding.

[0338] Next, the structure of coded data and the method of storing coded data in NAL units will be described.

[0339] For example, a data format is defined for each type of coded data. Figure 63 shows examples of coded data and NAL units.

[0340] For example, as shown in Figure 63, the coded data includes a header and a payload. The coded data may include length information indicating the length (amount of data) of the coded data, header, or payload. The coded data may not necessarily include a header.

[0341] The header includes, for example, identification information for identifying the data, such as the data type or frame number.

[0342] The header includes, for example, identification information indicating a reference relationship. This identification information is stored in the header when, for example, there is a dependency relationship between data, and is information for referencing the reference destination from the reference source. For example, the header of the reference destination includes identification information for identifying the data. The header of the reference source includes identification information indicating the reference destination.

[0343] If the reference destination or the reference source can be identified or derived from other information, the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.

[0344] The multiplexing unit 4802 stores the coded data in the payload of the NAL unit. The NAL unit header includes pcc_nal_unit_type, which is information identifying the coded data. Figure 64 shows an example of the semantics of pcc_nal_unit_type.

[0345] As shown in Figure 64, when pcc_codec_type is codec 1 (Codec1: first encoding method), values 0 to 10 of pcc_nal_unit_type are assigned to the encoded position data (Geometry), encoded attribute X data (AttributeX), encoded attribute Y data (AttributeY), position PS (Geom.PS), attribute XPS (AttrX.PS), attribute YPS (AttrX.PS), position SPS (Geometry Sequence PS), attribute XSPS (AttributeX Sequence PS), attribute YSPS (AttributeY Sequence PS), AU header (AU Header), and GOF header (GOF Header) in codec 1. Values 11 and above are assigned as spares for codec 1.

[0346] When pcc_codec_type is Codec2 (Codec2: second encoding method), 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 above are assigned as spares for Codec2.

[0347] Next, the data transmission order will be explained. The following explains the restrictions on the transmission order of NAL units.

[0348] The multiplexing unit 4802 collectively transmits NAL units in units of GOF or AU. The multiplexing unit 4802 places a GOF header at the beginning of a GOF, and places an AU header at the beginning of an AU.

[0349] The multiplexing unit 4802 may allocate a sequence parameter set (SPS) for each AU so that the decoding device can decode from the next AU even if data is lost due to packet loss or the like.

[0350] If the coded data has a dependency relationship related to decoding, the decoding device decodes the referenced data first, and then decodes the referenced data. In order to enable the decoding device to decode the data in the order in which it was received without rearranging the data, the multiplexing unit 4802 sends the referenced data first.

[0351] Figure 65 shows examples of the transmission order of NAL units, showing three examples: position information priority, parameter priority, and data integration.

[0352] The location information priority transmission order is an example in which information related to location information and information related to attribute information are transmitted together. In this transmission order, the transmission of information related to location information is completed earlier than the transmission of information related to attribute information.

[0353] For example, by using this transmission order, a decoding device that does not decode attribute information may be able to set a time during which it does not process the attribute information by ignoring the decoding of the attribute information. Also, for example, in the case of a decoding device that wants to decode position information quickly, it may be able to decode the position information more quickly by obtaining the encoded data of the position information early.

[0354] In FIG. 65, the attributes XSPS and YSPS are combined and written as the attribute SPS, but the attributes XSPS and YSPS may be arranged separately.

[0355] In the parameter set priority sending order, the parameter sets are sent first and the data is sent later.

[0356] As long as the NAL unit transmission order constraints are met as described above, the multiplexing unit 4802 may transmit NAL units in any order. For example, order identification information may be defined, and the multiplexing unit 4802 may have the function of transmitting NAL units in multiple order patterns. For example, the NAL unit order identification information may be stored in the stream PS.

[0357] The three-dimensional data decoding device may perform decoding based on the order identification information. The three-dimensional data decoding device may instruct the three-dimensional data encoding device on a desired transmission order, and the three-dimensional data encoding device (multiplexing unit 4802) may control the transmission order in accordance with the instructed transmission order.

[0358] The multiplexing unit 4802 may generate coded data that merges multiple functions, as long as the data transmission order is within the constraints of the transmission order, such as the transmission order of the integrated data. For example, as shown in FIG. 65, the GOF header and the AU header may be merged, or the AXPS and the AYPS may be merged. In this case, an identifier indicating that the data has multiple functions is defined in pcc_nal_unit_type.

[0359] A modified example of this embodiment will be described below. PS has levels, such as a frame-level PS, a sequence-level PS, and a PCC sequence-level PS, and if the PCC sequence level is the higher level and the frame level is the lower level, the following method may be used to store parameters.

[0360] The default PS value is indicated in the higher PS. Also, if the value of the lower PS differs from the value of the higher PS, the PS value is indicated in the lower PS. Alternatively, the PS value is not written in the higher PS, but written in the lower PS. Alternatively, information on whether the PS value is to be written in the lower PS, the higher PS, or both is written in either the lower PS or the higher PS, or both. Alternatively, the lower PS may be merged with the higher PS. Alternatively, if the lower PS and the higher PS overlap, the multiplexing unit 4802 may omit sending one of them.

[0361] 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 to decode the divided data are included in the parameter set. In this case, an identifier indicating that the data stores data or parameters related to tiles or slices is defined in pcc_nal_unit_type.

[0362] The processing related to the order identification information will be explained below. Figure 66 is a flowchart of processing by the three-dimensional data encoding device (the encoding unit 4801 and the multiplexing unit 4802) related to the transmission order of NAL units.

[0363] First, the three-dimensional data encoding device determines the transmission order of NAL units (position information priority or parameter set priority) (S4801). For example, the three-dimensional data encoding device determines the transmission order based on a specification from a user or an external device (e.g., a three-dimensional data decoding device).

[0364] If the determined transmission order is positional information priority (positional information priority in S4802), the three-dimensional data encoding device sets the order identification information included in the stream PS to positional information priority (S4803). That is, in this case, the order identification information indicates that the NAL units are to be transmitted in an order that prioritizes positional information. The three-dimensional data encoding device then transmits the NAL units in positional information priority order (S4804).

[0365] On the other hand, if the determined transmission order is parameter set priority (parameter set priority in S4802), the three-dimensional data encoding device sets the order identification information included in the stream PS to parameter set priority (S4805). That is, in this case, the order identification information indicates that the NAL units will be transmitted in parameter set priority order. Then, the three-dimensional data encoding device transmits the NAL units in parameter set priority order (S4806).

[0366] Figure 67 is a flowchart of the processing by a three-dimensional data decoding device related to the transmission order of NAL units. First, the three-dimensional data decoding device analyzes the order identification information included in the stream PS (S4811).

[0367] When the transmission order indicated by the order identification information is position information priority (position information priority in S4812), the three-dimensional data decoding device decodes the NAL unit assuming that the transmission order of the NAL unit is position information priority (S4813).

[0368] On the other hand, when the transmission order indicated by the order identification information is parameter set priority (parameter set priority in S4812), the three-dimensional data decoding device decodes the NAL unit assuming that the transmission order of the NAL unit is parameter set priority (S4814).

[0369] For example, when the three-dimensional data decoding device does not decode the attribute information, in step S4813, it may obtain the NAL unit related to the position information without obtaining all the NAL units, and decode the position information from the obtained NAL unit.

[0370] Next, the processing related to the generation of AU and GOF will be described. Figure 68 is a flowchart of the processing by a three-dimensional data encoding device (multiplexing unit 4802) related to the generation of AU and GOF in the multiplexing of NAL units.

[0371] First, the three-dimensional data encoding device determines the type of the 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 AU, the data at the head of GOF, or other data.

[0372] When the encoded data is the data at the head of GOF (GOF head in S4822), the three-dimensional data encoding device generates an NAL unit by arranging the GOF header and the AU header at the head of the encoded data belonging to GOF (S4823).

[0373] When the encoded data is the data at the head of AU (at the head of AU in S4822), the three-dimensional data encoding device generates a NAL unit by arranging the AU header at the head of the encoded data belonging to AU (S4824).

[0374] When the encoded data is neither at the head of GOF nor at the head of AU (other than at the head of GOF and AU in S4822), the three-dimensional data encoding device generates a NAL unit by arranging the encoded data after the AU header of the AU to which the encoded data belongs (S4825).

[0375] Next, the processing related to access to AU and GOF will be described. FIG. 69 is a flowchart of the processing of the three-dimensional data decoding device related to access to AU and GOF in the demultiplexing of NAL units.

[0376] First, the three-dimensional data decoding device determines the type of encoded data included in the NAL unit by analyzing the 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 AU, the data at the head of GOF, or other data.

[0377] When the encoded data included in the NAL unit is the data at the head of GOF (at the head of GOF in S4832), the three-dimensional data decoding device determines that the NAL unit is the start position of random access, accesses the NAL unit, and starts the decoding process (S4833).

[0378] On the other hand, when the encoded data included in the NAL unit is the data at the head of AU (at the head of AU in S4832), the three-dimensional data decoding device determines that the NAL unit is at the head of AU, accesses the data included in the NAL unit, and decodes the AU (S4834).

[0379] On the other hand, when the encoded data included in the NAL unit is neither a GOP start nor an AU start (neither a GOP start nor an AU start in S4832), the three-dimensional data decoding device does not process the NAL unit.

[0380] As described above, the three-dimensional data encoding device performs the processing shown in FIG. 70. The three-dimensional data encoding device 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.

[0381] First, the three-dimensional data encoding device encodes the position information (S4841). Next, the three-dimensional data encoding device encodes the attribute information to be processed with reference to the position information at the same time as the attribute information to be processed (S4842). Here, as shown in FIG. 62, 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 attribute information to be processed with reference to the position information included in the same access unit as the attribute information to be processed.

[0382] According to this, the three-dimensional data encoding device can facilitate the control of reference in encoding using the access unit. Therefore, the three-dimensional data encoding device can reduce the processing amount of the encoding process.

[0383] For example, the three-dimensional data encoding device generates a bit stream including the encoded position information (encoded position data), the encoded attribute information (encoded attribute data), and information indicating the position information of the reference destination of the attribute information to be processed.

[0384] For example, the bit stream includes a position parameter set (position PS) including control information of the position information for each time, and an attribute parameter set (attribute PS) including control information of the attribute information for each time.

[0385] For example, the bitstream includes a position sequence parameter set (position SPS) that contains control information common to the position information at multiple times, and an attribute sequence parameter set (attribute SPS) that contains control information common to the attribute information at multiple times.

[0386] For example, the bitstream includes a stream parameter set (stream PS) that contains control information common to the position information at multiple times and the attribute information at multiple times.

[0387] For example, the bitstream includes an access unit header (AU header) that contains control information common within an access unit.

[0388] For example, the three-dimensional data encoding device encodes a GOF (group of frames) composed of one or more access units so that it can be independently decoded. That is, the GOF is a random access unit.

[0389] For example, the bitstream includes a GOF header that contains control information common within the GOF.

[0390] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above processing.

[0391] Also, as described above, the three-dimensional data decoding device performs the processing shown in FIG. 71. 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 the attribute information at the same time constitute an access unit (AU).

[0392] First, the three-dimensional data decoding device decodes the position information from the bitstream (S4851). That is, the three-dimensional data decoding device generates the position information by decoding the encoded position information (encoded position data) included in the bitstream.

[0393] Next, the three-dimensional data decoder 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 decoder generates the attribute information by decoding the encoded attribute information (encoded attribute data) included in the bit stream. At this time, the three-dimensional data decoder refers to the decoded position information included in the same access unit as the attribute information.

[0394] According to this, the three-dimensional data decoder can facilitate the control of reference in decoding using the access unit. Therefore, the three-dimensional data decoding method can reduce the processing amount of the decoding process.

[0395] For example, the three-dimensional data decoder acquires information indicating the position information of the reference destination of the attribute information to be processed from the bit stream, and decodes the attribute information to be processed with reference to the position information of the reference destination indicated by the acquired information.

[0396] For example, the bit stream includes a position parameter set (position PS) including control information of the position information at each time, and an attribute parameter set (attribute PS) including control information of the attribute information at each time. That is, the three-dimensional data decoder decodes the position information at the processing target time using the control information included in the position parameter set at the processing target time, and decodes the attribute information at the processing target time using the control information included in the attribute parameter set at the processing target time.

[0397] For example, the bit stream includes a position sequence parameter set (position SPS) including control information common to the position information at a plurality of times, and an attribute sequence parameter set (attribute SPS) including control information common to the attribute information at a plurality of times. That is, the three-dimensional data decoder decodes the position information at a plurality of times using the control information included in the position sequence parameter set, and decodes the attribute information at a plurality of times using the control information included in the attribute sequence parameter set.

[0398] For example, a bit stream includes a stream parameter set (stream PS) that contains control information common to position information at multiple times and attribute information at multiple times. That is, the three-dimensional data decoding device decodes the position information at multiple times and the attribute information at multiple times using the control information included in the stream parameter set.

[0399] For example, a bit stream includes an access unit header (AU header) that contains control information common within an access unit. That is, the three-dimensional data decoding device decodes the position information and attribute information included in the access unit using the control information included in the access unit header.

[0400] For example, the three-dimensional data decoding device independently decodes a GOF (Group of Frames) composed of one or more access units. That is, a GOF is a random access unit.

[0401] For example, a bit stream includes a GOF header that contains control information common within a GOF. That is, the three-dimensional data decoding device decodes the position information and attribute information included in the GOF using the control information included in the GOF header.

[0402] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above processing using the memory.

[0403] As described above, the three-dimensional data encoding device and the three-dimensional data decoding device according to the embodiments of the present disclosure have been described. However, the present disclosure is not limited to these embodiments.

[0404] In addition, each processing unit included in the three-dimensional data encoding device and the three-dimensional data decoding device according to the above embodiments is typically realized as an LSI, which is an integrated circuit. These may be individually formed on one chip, or may be formed on one chip so as to include some or all of them.

[0405] Also, the integration into a circuit is not limited to LSI, and it may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after LSI manufacturing, or a reconfigurable processor capable of reconfiguring the connection and setting of circuit cells inside the LSI may also be used.

[0406] Also, in each of the above embodiments, 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.

[0407] Also, the present disclosure may be realized as a three-dimensional data encoding method or a three-dimensional data decoding method executed by a three-dimensional data encoding device, a three-dimensional data decoding device, or the like.

[0408] Also, the division of the functional blocks in the block diagram is an example, and a plurality of functional blocks may be realized as one functional block, one functional block may be divided into a plurality, or a part of the functions may be transferred to other functional blocks. 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 in a time-sharing manner.

[0409] Also, the order in which each step in the flowchart is executed is for illustrative purposes to specifically describe the present disclosure, and may be an order other than the above. Also, a part of the above steps may be executed simultaneously (in parallel) with other steps.

[0410] While the three-dimensional data encoding device and three-dimensional data decoding device according to one or more aspects have been described above based on the embodiments, the present disclosure is not limited to these embodiments. As long as they do not deviate from the spirit of the present disclosure, various modifications conceivable by those skilled in the art to the present embodiments, and configurations constructed by combining components of different embodiments, may also be included within the scope of one or more aspects. [Industrial Applicability]

[0411] The present disclosure is applicable to a three-dimensional data encoding device and a three-dimensional data decoding device. [Explanation of symbols]

[0412] 4601 Three-dimensional data encoding system 4602 Three-dimensional data decoding system 4603 Sensor Terminal 4604 External connection part 4611 Point Cloud Data Generation System 4612 Presentation section 4613 Encoding section 4614 Multiplexer 4615 Input / output section 4616 Control Unit 4617 Sensor information acquisition unit 4618 Point Cloud Data Generation Unit 4621 Sensor Information Acquisition Unit 4622 Input / output section 4623 Demultiplexer 4624 Decoding Unit 4625 Presentation section 4626 User Interface 4627 Control Unit 4630 First Encoding Section 4631 Location information encoder 4632 Attribute information encoder 4633 Additional information coding unit 4634 Multiplexer 4640 First Decoding Unit 4641 Demultiplexer 4642 Location Information Decoder 4643 Attribute Information Decoder 4644 Additional Information Decoder 4650 Second Encoding Unit 4651 Additional Information Generation Unit 4652 Location Image Generation Unit 4653 Attribute Image Generation Unit 4654 Video Encoding Unit 4655 Additional Information Encoding Unit 4656 Multiplexing Unit 4660 Second Decoder 4661 Demultiplexing Unit 4662 Video Decoder 4663 Additional Information Decoder 4664 Location Information Generation Unit 4665 Attribute Information Generation Unit 4670 Encoding Unit 4671 Multiplexing Unit 4680 Decoder 4681 Demultiplexing Unit 4710 First Multiplexing Unit 4711 File Conversion Unit 4720 First Demultiplexing Unit 4721 File Inverse Conversion Unit 4730 Second Multiplexing Unit 4731 File Conversion Unit 4740 Second Demultiplexing Unit 4741 File Inverse Conversion Unit 4750 Third Multiplexing Unit 4751 File Conversion Unit 4760 Third Demultiplexing Unit 4761 File Inverse Conversion Unit 4801 Encoding Unit 4802 Multiplexing Unit

Claims

1. Generate a data unit indicating a first data type, Generate a data unit indicating a second data type, Generate a data unit indicating a third data type, Generate a data unit indicating a fourth data type, The data unit indicating the first data type includes encoded position information, The data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, The data unit indicating the third data type includes a first parameter used for encoding the data unit including the encoded position information, The data unit indicating the fourth data type includes a second parameter used for encoding the data unit including the encoded attribute information Three-dimensional data encoding method.

2. The data unit including the encoded position information includes a first header and a first payload The three-dimensional data encoding method according to Claim 1.

3. The data unit including the encoded attribute information includes a second header and a second payload The three-dimensional data encoding method according to Claim 2.

4. The data unit including the first parameter includes a third header and a third payload The three-dimensional data encoding method according to Claim 3.

5. The data unit including the second parameter includes a fourth header and a fourth payload The three-dimensional data encoding method according to Claim 4.

6. Decode a data unit indicating a first data type, Decode a data unit indicating a second data type, Decode a data unit indicating a third data type, Decode a data unit indicating a fourth data type, The data unit indicating the first data type includes encoded position information, The data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, The data unit indicating the third data type includes a first parameter used for decoding the data unit including the encoded position information, The data unit indicating the fourth data type includes a second parameter used for decoding the data unit including the encoded attribute information Three-dimensional data decoding method.

7. The data unit including the encoded position information includes a first header and a first payload The three-dimensional data decoding method according to Claim 6.

8. The data unit including the encoded attribute information includes a second header and a second payload. The three-dimensional data decoding method according to claim 7.

9. The data unit including the first parameter includes a third header and a third payload. The three-dimensional data decoding method according to claim 8.

10. The data unit including the second parameter includes a fourth header and a fourth payload. The three-dimensional data decoding method according to claim 9.

11. A processor and, A memory, The processor uses the memory to Generate a data unit indicating a first data type, Generate a data unit indicating a second data type, Generate a data unit including a first parameter used for encoding a data unit indicating a third data type, Generate a data unit indicating a fourth data type, The data unit indicating the first data type includes encoded position information, The data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, The data unit indicating the third data type includes a first parameter used for decoding the data unit including the encoded position information, The data unit indicating the fourth data type includes a second parameter used for decoding the data unit including the encoded attribute information Three-dimensional data encoding device.

12. A processor and, A memory, The processor uses the memory to Decode a data unit indicating a first data type, Decode a data unit indicating a second data type, Decode a data unit indicating a third data type, Decode a data unit indicating a fourth data type, The data unit indicating the first data type includes encoded position information, The data unit indicating the second data type includes encoded attribute information corresponding to the encoded position information, The data unit indicating the third data type includes a first parameter used for decoding the data unit including the encoded position information, The data unit indicating the fourth data type includes a second parameter used for decoding the data unit including the encoded attribute information Three-dimensional data decoding device.

Citation Information

Patent Citations

  • Motion-compensated compression of dynamic voxelized point clouds

    US20170347120A1

  • Map display device

    WO2014020663A1

  • High-level syntax designs for point cloud coding

    WO2020005365A1

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2020027317A1

  • Three-dimensional data storage method, three-dimensional data acquisition method, three-dimensional data storage device, and three-dimensional data acquisition device

    WO2020032004A1

Cited By

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    JP2025148541A