Three-dimensional data storage method, three-dimensional data acquisition method, three-dimensional data storage device, and three-dimensional data acquisition device
By encoding three-dimensional data with multiple methods and storing control information, the method efficiently processes large data volumes, addressing the challenge of processing speed and amount in three-dimensional data handling.
Patent Information
- Application Number
- JP2024190549
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-08-06
- Filing Date
- 2024-10-30
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2039-08-06
AI Technical Summary
Existing methods for processing three-dimensional data, such as point cloud data, face challenges in reducing processing amount and speeding up processing time, particularly in devices that handle large data volumes.
A method and device that encode three-dimensional data using multiple coding methods, storing units in a file with control information indicating the encoding method, allowing for quick determination of the encoding type and enabling efficient processing.
This approach reduces processing time and amount by allowing devices to quickly identify the encoding method, thereby optimizing the processing of three-dimensional data.
Smart Images

Figure 2025013386000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a three-dimensional data storage method, a three-dimensional data acquisition method, a three-dimensional data storage device, and a three-dimensional data acquisition device. [Background technology]
[0002] In the future, devices and services that utilize 3D data are expected to become widespread in a wide range of fields, such as computer vision for autonomous operation of automobiles or robots, map information, monitoring, infrastructure inspection, video distribution, etc. 3D data is acquired in various ways, such as distance sensors such as range finders, stereo cameras, or a combination of multiple monocular cameras.
[0003] One method of expressing three-dimensional data is a method called a point cloud, which represents the shape of a three-dimensional structure using a group of points in a three-dimensional space. In a point cloud, the positions and colors of the points are stored. Point clouds are expected to become the mainstream method of expressing three-dimensional data, but point clouds have a very large amount of data. Therefore, when storing or transmitting three-dimensional data, it is essential to compress the amount of data by encoding, just like two-dimensional video images (examples include MPEG-4 AVC or HEVC standardized by MPEG).
[0004] In addition, compression of point clouds is partially supported by public libraries (Point Cloud Library) that perform point cloud-related processing.
[0005] Furthermore, a technique is known that uses three-dimensional map data to search for and display facilities located around a vehicle (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0006] [Patent Document 1] International Publication No. 2014 / 020663 Summary of the Invention [Problem to be solved by the invention]
[0007] In an apparatus for processing three-dimensional data, it is desirable to reduce the amount of processing or to increase the processing speed.
[0008] The present disclosure aims to provide a three-dimensional data storage method, a three-dimensional data acquisition method, a three-dimensional data storage device, or a three-dimensional data acquisition device that can reduce the amount of processing or increase the processing speed in an apparatus that processes three-dimensional data. [Means for solving the problem]
[0009] A three-dimensional data storage method according to one embodiment of the present disclosure includes obtaining one or more units in which an encoded stream in which three-dimensional data is encoded is stored, and storing the one or more units in a file, and in the storing, storing information indicating an encoding method used to encode the three-dimensional data, among a plurality of encoding methods including a first encoding method and a second encoding method, in control information of the file, wherein if the three-dimensional data is encoded using the first encoding method, the encoded three-dimensional data is stored in a first unit having a first format, and if the three-dimensional data is encoded using the second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format, the first encoding method is a method of encoding position information of the three-dimensional data and encoding attribute information using the position information, and the second encoding method is a method of generating a two-dimensional image from the three-dimensional data and encoding the two-dimensional image using a video encoding method.
[0010] A three-dimensional data acquisition method according to one embodiment of the present disclosure includes acquiring a file including one or more units in which an encoded stream in which three-dimensional data is encoded is stored, and acquiring the one or more units from the file, the file including information indicating an encoding method used to encode the three-dimensional data among a plurality of encoding methods including a first encoding method and a second encoding method, wherein if the three-dimensional data is encoded using the first encoding method, the encoded three-dimensional data is stored in a first unit having a first format, and if the three-dimensional data is encoded using the second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format, the first encoding method being a method of encoding position information of the three-dimensional data and encoding attribute information using the position information, and the second encoding method being a method of generating a two-dimensional image from the three-dimensional data and encoding the two-dimensional image using a video encoding method. Effect of the Invention
[0011] The present disclosure can provide a three-dimensional data storage method, a three-dimensional data acquisition method, a three-dimensional data storage device, or a three-dimensional data acquisition device that can reduce the amount of processing or increase the processing speed in an apparatus that processes three-dimensional data. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is a diagram showing a configuration of a three-dimensional data encoding / decoding system according to the first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a configuration of point cloud data according to the first embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of a configuration of a data file in which point cloud data information according to the first embodiment is described. [Figure 4] FIG. 4 is a diagram showing types of point cloud data according to the first embodiment. [Diagram 5] FIG. 5 is a diagram showing a configuration of a first encoding unit according to the first embodiment. [Figure 6]FIG. 6 is a block diagram of a first encoding unit according to the first embodiment. [Figure 7] FIG. 7 is a diagram showing a configuration of a first decoding unit according to the first embodiment. [Figure 8] FIG. 8 is a block diagram of a first decoding unit according to the first embodiment. [Figure 9] FIG. 9 is a diagram showing a configuration of a second encoding unit according to the first embodiment. [Figure 10] FIG. 10 is a block diagram of a second encoding unit according to the first embodiment. [Figure 11] FIG. 11 is a diagram illustrating a configuration of a second decoding unit according to the first embodiment. [Figure 12] FIG. 12 is a block diagram of a second decoding unit according to the first embodiment. [Figure 13] FIG. 13 is a diagram showing a protocol stack related to PCC encoded data according to the first embodiment. [Figure 14] FIG. 14 is a diagram illustrating a protocol stack according to the first embodiment. [Figure 15] FIG. 15 is a diagram showing an example of the syntax of a NAL unit according to the first embodiment. [Figure 16] FIG. 16 is a diagram illustrating an example of the syntax of a NAL unit header according to the first embodiment. [Figure 17] FIG. 17 is a diagram illustrating an example of the semantics of pcc_codec_type according to the first embodiment. [Figure 18] FIG. 18 is a diagram illustrating an example of the semantics of pcc_nal_unit_type according to the first embodiment. [Figure 19] FIG. 19 is a flowchart of the encoding process according to the first embodiment. [Figure 20] FIG. 20 is a flowchart of the decoding process by the second decoding unit according to the first embodiment. [Figure 21] FIG. 21 is a flowchart of the decoding process by the first decoding unit according to the first embodiment. [Figure 22]FIG. 22 is a diagram illustrating a protocol stack according to the second embodiment. [Figure 23] FIG. 23 is a diagram illustrating an example of the syntax of a NAL unit for codec 2 according to the second embodiment. [Figure 24] FIG. 24 is a diagram illustrating an example of the syntax of a NAL unit header for codec 2 according to the second embodiment. [Diagram 25] FIG. 25 is a diagram illustrating an example of semantics of codec2_nal_unit_type according to the second embodiment. [Figure 26] FIG. 26 is a diagram illustrating an example of the syntax of a NAL unit for codec 1 according to the second embodiment. [Figure 27] FIG. 27 is a diagram illustrating an example of the syntax of a NAL unit header for codec 1 according to the second embodiment. [Figure 28] FIG. 28 is a diagram illustrating an example of semantics of codec1_nal_unit_type according to the second embodiment. [Figure 29] FIG. 29 is a flowchart of the encoding process according to the second embodiment. [Diagram 30] FIG. 30 is a flowchart of the decoding process according to the second embodiment. [Diagram 31] FIG. 31 is a diagram illustrating a protocol stack according to the third embodiment. [Diagram 32] FIG. 32 is a diagram showing an example of the syntax of a NAL unit according to the third embodiment. [Diagram 33] FIG. 33 is a diagram illustrating an example of the syntax of a NAL unit header according to the third embodiment. [Diagram 34] FIG. 34 is a diagram illustrating an example of the semantics of pcc_nal_unit_type according to the third embodiment. [Diagram 35] FIG. 35 is a flowchart of the encoding process according to the third embodiment. [Diagram 36] FIG. 36 is a flowchart of the decoding process according to the third embodiment. [Figure 37]FIG. 37 is a flowchart of an encoding process according to a modification of the embodiment. [Figure 38] FIG. 38 is a flowchart of a decoding process according to a modification of the embodiment. [Figure 39] FIG. 39 is a block diagram of an encoding unit according to the fourth embodiment. As shown in FIG. [Diagram 40] FIG. 40 is a block diagram of a decoding unit according to the fourth embodiment. [Diagram 41] FIG. 41 is a flowchart of the encoding process according to the fourth embodiment. [Diagram 42] FIG. 42 is a flowchart of the decoding process according to the fourth embodiment. [Diagram 43] FIG. 43 is a diagram showing a basic structure of an ISOBMFF according to the fifth embodiment. [Diagram 44] FIG. 44 is a diagram showing a protocol stack according to the fifth embodiment. [Diagram 45] FIG. 45 is a diagram showing an example in which a NAL unit according to the fifth embodiment is stored in a file for codec 1. In FIG. [Figure 46] FIG. 46 is a diagram showing an example in which a NAL unit according to the fifth embodiment is stored in a file for codec 2. In FIG. [Figure 47] FIG. 47 is a diagram showing a configuration of a first multiplexing unit according to the fifth embodiment. In FIG. [Figure 48] FIG. 48 is a diagram showing a configuration of a first demultiplexing unit according to the fifth embodiment. In FIG. [Figure 49] FIG. 49 is a diagram showing a configuration of a second multiplexing unit according to the fifth embodiment. In FIG. [Figure 50] FIG. 50 is a diagram showing a configuration of a second demultiplexing unit according to the fifth embodiment. In FIG. [Figure 51] FIG. 51 is a flowchart of a process by a first multiplexing unit according to the fifth embodiment. [Figure 52] FIG. 52 is a flowchart of a process by the second multiplexing unit according to the fifth embodiment. [Figure 53]FIG. 53 is a flowchart of processing by the first demultiplexing unit and the first decoding unit according to the fifth embodiment. [Figure 54] FIG. 54 is a flowchart of processing by the second demultiplexing unit and the second decoding unit according to the fifth embodiment. [Figure 55] FIG. 55 is a diagram showing configurations of an encoding unit and a third multiplexing unit according to the sixth embodiment. In FIG. [Figure 56] FIG. 56 is a diagram showing configurations of a third demultiplexing unit and a decoding unit according to the sixth embodiment. In FIG. [Figure 57] FIG. 57 is a flowchart of a process by a third multiplexing unit according to the sixth embodiment. [Figure 58] FIG. 58 is a flowchart of processing by a third demultiplexing unit and a decoding unit according to the sixth embodiment. [Figure 59] FIG. 59 is a flowchart of processing by the three-dimensional data storage device according to the sixth embodiment. [Figure 60] FIG. 60 is a flowchart of processing by the three-dimensional data acquisition device according to the sixth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] A three-dimensional data storage method according to one embodiment of the present disclosure obtains one or more units in which an encoded stream in which point cloud data is encoded is stored, stores the one or more units in a file, and, during the storage, stores information indicating that the data stored in the file is data in which point cloud data is encoded in control information of the file.
[0014] According to this, in an apparatus that processes a file generated by the three-dimensional data storage method, it is possible to refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby reducing the amount of processing of the apparatus and speeding up the processing.
[0015] For example, the information may further indicate which of a first encoding method and a second encoding method was used to encode the point cloud data.
[0016] According to this, in a device that processes a file generated by the three-dimensional data storage method, the codec used for the data stored in the file can be determined quickly by referring to the control information of the file, thereby reducing the amount of processing of the device and increasing the processing speed.
[0017] For example, the first encoding method may be a scheme in which position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) and attribute information is encoded using the position information, and the second encoding method may be a scheme in which a two-dimensional image is generated from the point cloud data and the two-dimensional image is encoded using a video encoding method.
[0018] For example, the file may conform to the ISO based media file format (ISOBMFF).
[0019] A three-dimensional data acquisition method according to one embodiment of the present disclosure acquires a file containing one or more units in which an encoded stream in which point cloud data is encoded is stored, and acquires the one or more units from the file, and control information of the file includes information indicating that the data stored in the file is data in which point cloud data is encoded.
[0020] According to this, the three-dimensional data acquisition method can quickly determine whether the data stored in the file is encoded data of point cloud data, thereby reducing the amount of processing or speeding up the processing of the device that performs the three-dimensional data acquisition method or a downstream device.
[0021] For example, the information may further indicate which of a first encoding method and a second encoding method was used for the encoding.
[0022] According to this, the three-dimensional data acquisition method can refer to the control information of the file and quickly determine the codec used for the data stored in the file, thereby reducing the amount of processing or speeding up the processing of the device that performs the three-dimensional data acquisition method or a downstream device.
[0023] For example, based on the information, the data encoded by either one of the encoding methods may be obtained from the encoded point cloud data including the data encoded by the first encoding method and the data encoded by the second encoding method.
[0024] For example, the first encoding method may be a scheme in which position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) and attribute information is encoded using the position information, and the second encoding method may be a scheme in which a two-dimensional image is generated from the point cloud data and the two-dimensional image is encoded using a video encoding method.
[0025] For example, the file may conform to the ISO based media file format (ISOBMFF).
[0026] In addition, a three-dimensional data storage device according to one embodiment of the present disclosure includes a processor and a memory, and the processor uses the memory to obtain one or more units in which an encoded stream in which point cloud data is encoded is stored, and stores the one or more units in a file, and in the storing process, stores information in control information of the file indicating that the data stored in the file is data in which point cloud data is encoded.
[0027] According to this, in a device that processes a file generated by the three-dimensional data storage device, it is possible to refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby realizing a reduction in the amount of processing of the device or an increase in the processing speed.
[0028] In addition, a three-dimensional data acquisition device according to one embodiment of the present disclosure includes a processor and a memory, and the processor uses the memory to obtain a file containing one or more units in which an encoded stream in which point cloud data is encoded is stored, and obtains the one or more units from the file, and control information of the file includes information indicating that the data stored in the file is data in which point cloud data is encoded.
[0029] This allows the three-dimensional data acquisition device to quickly determine whether the data stored in the file is encoded data of point cloud data, thereby reducing the amount of processing or speeding up the processing of the three-dimensional data acquisition device or a downstream device.
[0030] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.
[0031] Hereinafter, the embodiments will be described in detail with reference to the drawings. Note that each of the embodiments described below shows a specific example of the present disclosure. The numerical values, shapes, materials, components, arrangement and connection forms of the components, steps, and order of steps 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 that are not described in an independent claim showing a top concept are described as optional components.
[0032] (Embodiment 1) When using the encoded data of a point cloud in an actual device or service, it is desirable to transmit and receive the necessary information according to the purpose in order to reduce the network bandwidth. However, until now, such a function has not existed in the encoding structure of three-dimensional data, and there has been no encoding method for this purpose.
[0033] In this embodiment, we describe a three-dimensional data encoding method and a three-dimensional data encoding device for providing the function of transmitting and receiving necessary information depending on the application in encoded data of a three-dimensional point cloud, as well as 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.
[0034] In particular, the first and second encoding methods are currently being considered as methods (encoding schemes) for encoding 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.
[0035] Furthermore, there has been no method to date that supports a format in which two codecs, the first encoding method and the second encoding method, are mixed, such as PCC (Point Cloud Compression).
[0036] In this embodiment, a 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 will be described.
[0037] 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.
[0038] The three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data, which is three-dimensional data. The three-dimensional data encoding system 4601 may be a three-dimensional data encoding device realized by a single device, or may be a system realized by multiple devices. The three-dimensional data encoding device may include some of the multiple processing units included in the three-dimensional data encoding system 4601.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] The encoding unit 4613 encodes (compresses) the point cloud data, and outputs the obtained encoded data, control information obtained in the encoding process, and other additional information to the multiplexing unit 4614. The additional information includes, for example, sensor information.
[0043] The multiplexing unit 4614 generates multiplexed data by multiplexing the coded data, control information, and additional information input from the coding unit 4613. The format of the multiplexed data is, for example, a file format for storage, or a packet format for transmission.
[0044] The input / output unit 4615 (e.g., 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. In other words, the control unit 4616 controls encoding, multiplexing, etc.
[0045] The sensor information may be input to the encoding unit 4613 or the multiplexing unit 4614. Furthermore, the input / output unit 4615 may output the point cloud data or the encoded data directly to the outside.
[0046] 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.
[0047] The three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding the encoded data or multiplexed data. The three-dimensional data decoding system 4602 may be a three-dimensional data decoding device realized by a single device, or may be a system realized by multiple devices. The three-dimensional data decoding device may also include some of the multiple processing units included in the three-dimensional data decoding system 4602.
[0048] 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 .
[0049] The sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603 .
[0050] The input / output unit 4622 acquires a transmission signal, decodes multiplexed data (file format or packets) from the transmission signal, and outputs the multiplexed data to the demultiplexer 4623.
[0051] The demultiplexer 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 decoder 4624.
[0052] The decoding unit 4624 reconstructs the point cloud data by decoding the encoded data.
[0053] The presentation unit 4625 presents the point cloud data to the user. For example, the presentation unit 4625 displays information or an image based on the point cloud data. The user interface 4626 acquires an instruction based on a user's operation. The control unit 4627 (or the application execution unit) controls each processing unit. That is, the control unit 4627 controls demultiplexing, decoding, presentation, etc.
[0054] The input / output unit 4622 may obtain the point cloud data or the encoded data directly from the outside. The presentation unit 4625 may obtain additional information such as sensor information and present information based on the additional information. The presentation unit 4625 may present information based on a user instruction obtained by the user interface 4626.
[0055] The sensor terminal 4603 generates sensor information obtained by a sensor. The sensor terminal 4603 is a terminal equipped with a sensor or a camera, and examples of the sensor terminal include a moving body such as an automobile, a flying object such as an airplane, a mobile terminal, and a camera.
[0056] The sensor information that can be acquired by the sensor terminal 4603 is, for example, (1) the distance between the sensor terminal 4603 and an object, or the reflectance of the object, obtained from a LIDAR, millimeter wave radar, or an infrared sensor, and (2) the distance between a camera and an object, or the reflectance of the object, obtained from a plurality of monocular camera images or stereo camera images. The sensor information may also include the attitude, direction, gyro (angular velocity), position (GPS information or altitude), speed, acceleration, etc. of the sensor. The sensor information may also include temperature, air pressure, humidity, magnetism, etc.
[0057] 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, broadcasting, or the like.
[0058] 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 an example of the configuration of a data file in which information on the point cloud data is written.
[0059] Point cloud data includes data on multiple points. The data on each point includes position information (three-dimensional coordinates) and attribute information for that position information. A collection of multiple points is called a point cloud. For example, a point cloud may represent the three-dimensional shape of an object.
[0060] Position information such as three-dimensional coordinates is sometimes called geometry. Data for each point may include attribute information of multiple attribute types. The attribute types may be, for example, color or reflectance.
[0061] One piece of attribute information may be associated with one piece of location information, or multiple pieces of attribute information having 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.
[0062] The configuration example of the data file shown in FIG. 3 is an example in which position information and attribute information correspond one-to-one, and shows the position information and attribute information of N points that make up the point cloud data.
[0063] The position information is, for example, information on three axes, x, y, and z. The attribute information is, for example, RGB color information. A typical data file is a ply file.
[0064] Next, the types of point cloud data will be described. 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.
[0065] 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 called a PCC frame, or a frame.
[0066] The object may be a point cloud whose area is restricted to a certain extent, such as ordinary video data, or a large-scale point cloud whose area is not restricted, such as map information.
[0067] Also, there may be point cloud data of various densities, and there may be sparse point cloud data and dense point cloud data.
[0068] The details of each processing unit will be described below. The 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.
[0069] The point cloud data generating unit 4618 may process the point cloud data when generating the position information or adding the attribute information. For example, the point cloud data generating unit 4618 may reduce the amount of data by deleting point clouds with overlapping positions. In addition, the point cloud data generating unit 4618 may convert the position information (position shift, rotation, normalization, etc.) or render the attribute information.
[0070] 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.
[0071] The encoding unit 4613 generates encoded data by encoding the point cloud data based on a predefined encoding method. There are two main types of encoding methods: the first is an encoding method using position information, and this encoding method will be referred to as the first encoding method hereinafter; the second is an encoding method using a video codec, and this encoding method will be referred to as the second encoding method hereinafter.
[0072] The decoding unit 4624 decodes the encoded data based on a predefined encoding method to decode the point group data.
[0073] 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 further multiplex attribute information related to sensor information or point cloud data.
[0074] Multiplexing methods or file formats include ISOBMFF, MPEG-DASH, which is an ISOBMFF-based transmission method, MMT, MPEG-2 TS Systems, and RMP.
[0075] The demultiplexer 4623 extracts the PCC encoded data, other media, time information, and the like from the multiplexed data.
[0076] The input / output unit 4615 transmits the multiplexed data using a method suited to a transmission medium or a 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.
[0077] 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.
[0078] Either wired transmission 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 wave, etc. are used.
[0079] As a broadcasting system, for example, DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 is used.
[0080] Fig. 5 is a diagram showing a 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. The 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.
[0081] The first encoding unit 4630 has a feature of performing encoding in consideration of a three-dimensional structure. Also, the first encoding unit 4630 has a feature that the attribute information encoding unit 4632 performs encoding using information obtained from the position information encoding unit 4631. The first encoding method is also called GPCC (Geometry based PCC).
[0082] 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 encoding unit 4631, the attribute information is input to an attribute information encoding unit 4632, and the additional information is input to an additional information encoding unit 4633.
[0083] The position information encoding unit 4631 generates encoded position information (Compressed Geometry) that is encoded data by encoding the position information. For example, the position information encoding unit 4631 encodes the position information using an N-ary tree structure such as an octet tree. Specifically, in the octet tree, 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. In addition, the node that includes 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 hierarchy or node is equal to or less than a threshold value.
[0084] 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 in 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 refers to a node, among peripheral nodes or adjacent nodes, 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.
[0085] 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 a state of the reference node (e.g., occupancy information indicating whether or not a point group is included in the reference node) to determine a parameter of the encoding. For example, the parameter of the encoding is a quantization parameter in the quantization process, or a context in the arithmetic coding.
[0086] The additional information encoding unit 4633 generates encoded additional information (Compressed MetaData) that is encoded data by encoding compressible data from the additional information.
[0087] The multiplexing unit 4634 multiplexes the encoding position information, the encoding attribute information, 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 of a system layer (not shown).
[0088] Next, a first decoding unit 4640 which is an example of the decoding unit 4624 that performs decoding of the first encoding method will be described. FIG. 7 is a diagram showing a configuration of the first decoding unit 4640. FIG. 8 is a block diagram of the first decoding unit 4640. The first decoding unit 4640 generates point group data by decoding, by the first encoding method, encoded data (encoded stream) encoded by the first encoding 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.
[0089] A coded stream (compressed stream), which is coded data, is input to the first decoding unit 4640 from a processing unit in a system layer (not shown).
[0090] 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.
[0091] 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.
[0092] 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 a target point (target node) to be processed based on the octree structure obtained by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 refers to a node, among peripheral nodes or adjacent nodes, 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.
[0093] In addition, the decoding process of the attribute information may include at least one of an inverse quantization process, a prediction process, and an arithmetic decoding process. In this case, the reference means using a reference node to calculate a predicted value of the attribute information, or using a state of the reference node (e.g., occupancy information indicating whether or not a point group is included in the reference node) to determine a parameter of the decoding. For example, the parameter of the decoding is a quantization parameter in the inverse quantization process, or a context in the arithmetic decoding.
[0094] The additional information decoding unit 4644 generates additional information by decoding the encoded additional information. The first decoding unit 4640 uses the additional information required for decoding the position information and attribute information during decoding, and outputs the additional information required for an application to the outside.
[0095] Next, a second encoding unit 4650, which is an example of the encoding unit 4613 that performs encoding by the second encoding method, will be described. Fig. 9 is a diagram showing a configuration of the second encoding unit 4650. Fig. 10 is a block diagram of the second encoding unit 4650.
[0096] The second encoding unit 4650 generates encoded data (encoded stream) by encoding the point cloud data by a second encoding method. The second encoding unit 4650 includes an additional information generating unit 4651, a position image generating unit 4652, an attribute image generating unit 4653, a video encoding unit 4654, an additional information encoding unit 4655, and a multiplexing unit 4656.
[0097] 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).
[0098] 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).
[0099] 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.
[0100] The position image generating unit 4652 generates a position image (Geometry Image) based on the position information and the map information generated by the additional information generating 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 a plurality of point clouds are viewed from one viewpoint (an image in which a plurality of point clouds are projected onto one two-dimensional plane), a plurality of images in which a plurality of point clouds are viewed from multiple viewpoints, or a single image in which these multiple images are integrated.
[0101] The attribute image generating unit 4653 generates an attribute image based on the attribute information and the map information generated by the additional information generating unit 4651. This attribute image is, for example, an image in which the attribute information (for example, color (RGB)) is indicated 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.
[0102] 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.
[0103] The additional information encoding unit 4655 generates encoded additional information (Compressed MetaData) by encoding the additional information and map information included in the point cloud data.
[0104] 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 of a system layer (not shown).
[0105] Next, a second decoding unit 4660 which is an example of the decoding unit 4624 that performs decoding of the second encoding method will be described. FIG. 11 is a diagram showing a configuration of the second decoding unit 4660. FIG. 12 is a block diagram of the second decoding unit 4660. The second decoding unit 4660 generates point group data by decoding, by the second encoding method, encoded data (encoded stream) encoded by the second encoding 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 generating unit 4664, and an attribute information generating unit 4665.
[0106] A compressed stream, which is encoded data, is input to the second decoding unit 4660 from a processing unit in a system layer (not shown).
[0107] 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.
[0108] 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.
[0109] The additional information decoding unit 4663 decodes the encoded additional information to generate additional information including map information and the like.
[0110] 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.
[0111] The second decoding unit 4660 uses the additional information necessary for decoding during decoding, and outputs the additional information necessary for an application to the outside.
[0112] The problems with the PCC encoding method will be described below. 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 with the PCC encoded data and transmitted or stored.
[0113] The multiplexing method and file format have the function of multiplexing various encoded data and transmitting or storing them. In order to transmit or store the encoded data, the encoded data must be converted into the format of the multiplexing method. For example, HEVC specifies a technology for storing encoded data in a data structure called a NAL unit and storing the NAL unit in ISOBMFF.
[0114] Meanwhile, a first encoding method (Codec1) and a second encoding method (Codec2) are currently being considered as methods for encoding 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, which poses the problem that MUX processing (multiplexing) in the encoding unit, transmission, and storage cannot be performed as is.
[0115] In the following description, unless a specific encoding method is specified, it refers to either the first encoding method or the second encoding method.
[0116] Hereinafter, a method of defining an NAL unit according to the present embodiment will be described. For example, in conventional codecs such as HEVC, one format of NAL unit is defined for one codec. However, there has been no method 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, such as PCC.
[0117] In this embodiment, a format common to PCC codecs is defined as an NAL unit, and an identifier of an NAL unit dependent on a 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 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.
[0118] A NAL unit format common to PCC codecs is defined as the NAL unit format. 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 when storing data of either the first or second encoding method codec.
[0119] The NAL unit header (pcc_nal_unit_header) stores a codec type (pcc_codec_type) and a 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.
[0120] The NAL unit type indicates a type of NAL unit that depends on a codec, and a type is defined for each codec. If the codec type is a first encoding method, the NAL unit type indicates a NAL unit type defined for the first encoding method. If the codec type is a second encoding method, the NAL unit type indicates a NAL unit type defined for the second encoding method. In other words, the NAL unit type defined for the first encoding method and the NAL unit type defined for the second encoding method are associated with different meanings for the same value.
[0121] 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 part of the information of the NAL unit type.
[0122] 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 definition is used. Note that, hereinafter, the first encoding unit 4630 and the second encoding unit 4650 are not distinguished from each other and are also referred to as the encoding unit 4613. Also, 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.
[0123] The process in the figure shows an example in which the PCC data is encoded by 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.
[0124] First, the encoding unit 4613 encodes the PCC data using a codec of either the first encoding method or the second encoding method (S4601).
[0125] 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 an identifier of the NAL unit for the second encoding method to pcc_nal_unit_type in the NAL unit header (S4604). Then, the encoding unit 4613 generates a NAL unit that has the set NAL unit header and includes encoded data in its payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4605).
[0126] On the other hand, if the codec used is the first encoding method (first encoding method in S4602), the encoding unit 4613 sets pcc_codec_type 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 first encoding method (S4606). The encoding unit 4613 also sets an identifier of the NAL unit for the first encoding method to pcc_nal_unit_type in the NAL unit header (S4607). Then, the encoding unit 4613 generates a NAL unit that has the set NAL unit header and includes encoded data in its payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4605).
[0127] Note that in steps S4603 and S4606, if the function of pcc_code_type is included in pcc_nal_unit_type, the encoding unit 4613 may indicate in pcc_nal_unit_type whether the NAL unit is encoded in the first encoding method or the second encoding method.
[0128] Next, the decoding process by the first decoding unit 4640 and the second decoding unit 4660 according to this embodiment will be described. Fig. 20 is a flowchart showing the decoding process by the second decoding unit 4660. The process in this figure is mainly performed by the demultiplexing unit 4661 shown in Fig. 12.
[0129] The process in the figure shows an example in which the PCC data is encoded using either the second encoding method or the first encoding method. In this method, the demultiplexer 4661 included in the second decoder 4660 can identify the codec type of the NAL unit by referring to information included in the NAL unit header. Therefore, the demultiplexer 4661 can output necessary information to the video decoder 4662 according to the codec type.
[0130] 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.
[0131] Next, the second decoding unit 4660 determines whether pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4612).
[0132] 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). Then, the second decoding unit 4660 identifies the data as pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4614). Then, the second decoding unit 4660 decodes the PCC data using the decoding process of the second encoding method (S4615).
[0133] 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 by the first encoding method (S4616). In this case, the second decoding unit 4660 does not process the NAL unit (S4617).
[0134] 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 in the data included in the NAL unit is the first encoding method or the second encoding method.
[0135] 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.
[0136] The process in the figure shows an example in which the 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 referring to information included in the NAL unit header. Therefore, the demultiplexing unit 4641 can output necessary information according to the codec type to the position information decoding unit 4642 and the attribute information decoding unit 4643.
[0137] 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 described above. That is, the header of this NAL unit includes pcc_codec_type and pcc_nal_unit_type.
[0138] 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).
[0139] 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).
[0140] 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 by the first encoding method (S4625).Then, the first decoding unit 4640 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).Then, the first decoding unit 4640 decodes the PCC data using the decoding process of the first encoding method (S4627).
[0141] (Embodiment 2) In this embodiment, another method of defining NAL units will be described. In this embodiment, a different format is defined as an NAL unit for each PCC codec. Furthermore, an identifier of the NAL unit is defined independently for each PCC codec.
[0142] 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.
[0143] Fig. 26 is a diagram showing an example of the syntax of a NAL unit (codec1_nal_unit) for codec 1. Fig. 27 is a diagram showing an example of the syntax of a NAL unit header (codec1_nal_unit_header) for codec 1. Fig. 28 is a diagram showing an example of the semantics of codec1_nal_unit_type.
[0144] As the NAL unit format, a 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 for the first encoding method (codec1_nal_unit) and the NAL unit for the second encoding method (codec2_nal_unit) may have the same configuration or different configurations. The size of the NAL unit for the first encoding method and the size of the NAL unit for the second encoding method may be different.
[0145] Data encoded by a first encoding method is stored in NAL units for the first encoding method, and data encoded by a second encoding method is stored in NAL units for the second encoding method.
[0146] The NAL unit headers (codec1_nal_unit_header, codec2_nal_unit_header) store NAL unit types (codec1_nal_unit_type, codec2_nal_unit_type). The NAL unit types are independent for each codec, and types are defined for each codec. That is, the NAL unit type defined for the first encoding method is described in the NAL unit for the first encoding method. The NAL unit type defined for the second encoding method is described in the NAL unit for the second encoding method.
[0147] By using this method, the first encoding method and the second encoding method can be treated as different codecs.
[0148] 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 this figure shows the process of the first encoding unit 4630 or the second encoding unit 4650 when the above definition is used. 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.
[0149] The process in the figure shows an example in which the PCC data is encoded by 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.
[0150] First, the encoding unit 4613 encodes the PCC data using a codec of either the first encoding method or the second encoding method (S4631).
[0151] If the codec used is the second encoding method (second encoding method in S4632), the encoding unit 4613 generates a NAL unit in a NAL unit format for the second encoding method (S4633). Next, the encoding unit 4613 sets an identifier of the NAL unit for the second encoding method to codec2_nal_unit_type included in the NAL unit header (S4634). Then, the encoding unit 4613 generates a NAL unit that has the set NAL unit header and includes encoded data in the payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4635).
[0152] On the other hand, if the codec used is the first encoding method (first encoding method in S4632), the encoding unit 4613 generates a NAL unit in the NAL unit format for the first encoding method (S4636). Next, the encoding unit 4613 sets an identifier of the NAL unit for the first encoding method to codec1_nal_unit_type of the NAL unit header (S4637). Then, the encoding unit 4613 generates a NAL unit that has the set NAL unit header and includes encoded data in the payload. Then, the encoding unit 4613 transmits the generated NAL unit (S4635).
[0153] Next, the decoding process according to this embodiment will be described. Fig. 30 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 definition is used. Note that, hereinafter, the first decoding unit 4640 and the second decoding unit 4660 will not be distinguished and will also be referred to as the decoding unit 4624. Also, 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.
[0154] The process in the figure shows an example in which the 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 is known. For example, information indicating the codec used is included in the transmission signal, the multiplexed data, or the encoded data, and the decoding unit 4624 determines the codec used by referring to the information. The decoding unit 4624 may determine the codec used based on a signal acquired separately from these signals.
[0155] If the codec used is the second encoding method (second encoding method in S4641), the decoding unit 4624 receives a 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 a decoding process for the second encoding method (S4644).
[0156] On the other hand, if the codec used is the first encoding method (first encoding method in S4641), the decoding unit 4624 receives a 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 the codec1_nal_unit_type for the first encoding method (S4646). Next, the decoding unit 4624 decodes the PCC data using a decoding process for the first encoding method (S4747).
[0157] (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.
[0158] 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.
[0159] A NAL unit format common to PCC codecs is defined as the NAL unit format. 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 when storing data of either the first or second encoding method codec.
[0160] The NAL unit header (pcc_nal_unit_header) stores a 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 described for 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.
[0161] By using this method, the first encoding method and the second encoding method can be treated as the same codec.
[0162] 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 definition is used. 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.
[0163] The process in the figure shows an example in which the PCC data is encoded by 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.
[0164] 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 a NAL unit in a NAL unit format common to PCCs (S4652).
[0165] 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 a NAL unit that has the set NAL unit header and includes encoded data in its payload (S4654).
[0166] 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 definition is 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.
[0167] The process in FIG. 1 shows an example in which the PCC data is encoded using either the second encoding method or the first encoding method.
[0168] 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.
[0169] If the codec used is the second encoding method (second encoding method in S4661), the decoding unit 4624 receives a NAL unit in a format common to the PCC (S4662). Next, the decoding unit 4624 identifies the data using the common NAL unit format and common pcc_nal_unit_type, assuming that the NAL units are common (S4663). Next, the decoding unit 4624 decodes the PCC data using the decoding process of the second encoding method (S4664).
[0170] On the other hand, if the codec used is the first encoding method (first encoding method in S4661), the decoding unit 4624 receives a NAL unit in a format common to the PCC (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).
[0171] 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.
[0172] 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 method can also be applied when there are three or more PCC codecs.
[0173] In addition, in embodiments 1 and 3, 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 be stored in another location.
[0174] In addition, the first encoding method and the second encoding method are not limited to the above examples, and may be any codec. For example, the first encoding method and the second encoding method may be a plurality of codecs obtained by subdividing GPCC, or a plurality of codecs obtained by subdividing VPCC. For example, the first encoding method and the second encoding method may both be VPCC, and may use different video encoding methods. The video encoding method may be, for example, AVC or HEVC. In addition, 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.
[0175] For example, the codec identification information may be included in control information included in the PCC encoded stream, where the control information is, for example, a parameter set or metadata such as SEI (Supplemental Enhancement Information).
[0176] 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 writes the identification information of the PCC codec in a predetermined position (for example, a 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).
[0177] Also, the identification information of the PCC codec may be defined as a profile, and the identification information of the PCC codec may be indicated in the metadata. Also, when the same codec is used for the entire sequence, the sequence parameter set may include the identification information of the PCC codec. Also, when each PCC frame is encoded with a different codec, the parameter set describing the information for each frame may include the identification information of the PCC codec. For example, when a different codec is used for each piece of PCC data, such as when the codec is different between the position information and the attribute information, the parameter set describing the information for each piece of data may include the identification information of the PCC codec. That is, the control information (parameter set, etc.) for the position information may include information indicating the codec of the position information, and the control information (parameter set, etc.) for the attribute information may include information indicating the codec of the attribute information.
[0178] The codec identification information may be stored in any of the above locations, or may be stored in multiple locations. For example, the codec identification information may be stored in both the encoded stream and the NAL unit header. When the codec identification information is stored in multiple locations, the same information may be stored in the multiple locations, or different information may be stored. The different information may be, for example, information indicating GPCC or VPCC and information indicating one of multiple codecs obtained by subdividing GPCC or VPCC.
[0179] When a parameter set is included in an NAL unit, the demultiplexing unit 4641 or 4661 included in the decoding unit 4624 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. This allows the decoding unit 4624 to quickly filter out NAL units that are not necessary for decoding.
[0180] 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 the predetermined data (e.g., the above-mentioned parameter set) in which the identification information of the PCC codec is described using the pcc_nal_unit_type included in the NAL unit header (S4676). Next, the decoding unit 4624 identifies the PCC codec indicated in the predetermined data by analyzing the predetermined data (e.g., the parameter set) (S4677). Next, the decoding unit 4624 decodes the encoded data using the identified PCC codec (S4678).
[0181] Also, in the above example, the coded stream is stored in the NAL unit, but a unit of a predetermined format may be used instead of the NAL unit.
[0182] (Embodiment 4) In this embodiment, we will describe 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.
[0183] 39 is a block diagram of an encoding unit 4670 according to this embodiment. This encoding unit 4670 includes the above-mentioned 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.
[0184] 40 is a block diagram of a decoding unit 4680 according to this embodiment. This decoding unit 4680 includes the above-mentioned first decoding unit 4640 and second decoding unit 4660, and a demultiplexing unit 4681. The demultiplexing unit 4681 extracts, from the input coded data, coded data for which the first coding method is used and coded data for which the second coding method is used. The demultiplexing unit 4681 outputs the coded data for which the first coding method is used to the first decoding unit 4640, and outputs the coded data for which the second coding method is used to the second decoding unit 4660.
[0185] 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. Furthermore, the decoding unit 4680 can decode encoded data encoded using the first encoding method, encoded data encoded using the second encoding method, and encoded data encoded using both the first encoding method and the second encoding method.
[0186] 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. Furthermore, the encoding unit 4670 may switch the encoding method in units that can be encoded.
[0187] The encoding unit 4670 generates encoded data (encoded stream) including identification information of the PCC codec, as described in the first or third embodiment above, for example.
[0188] The demultiplexing unit 4681 included in the decoding unit 4680 identifies the data using, for example, the identification information of the PCC codec described in embodiment 1 or embodiment 3. If the data is data encoded by a first encoding method, the demultiplexing unit 4681 outputs the data to the first decoding unit 4640, and if the data is data encoded by a second encoding method, the demultiplexing unit 4681 outputs the data to the second decoding unit 4660.
[0189] 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 has been used as control information.
[0190] 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 identification information of the PCC codec described in the first, second, and third embodiments and the modified examples, encoding process compatible with a plurality of codecs becomes possible. Note that Fig. 41 shows an example in which the method of the first embodiment is used, but the same process can be applied to other methods.
[0191] 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).
[0192] 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 an identifier of the NAL unit for the second encoding method to pcc_nal_unit_type in the NAL unit header (S4684). Then, the encoding unit 4670 generates a 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).
[0193] On the other hand, if the codec used is the first encoding method (first 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 first encoding method (S4686). Next, the encoding unit 4670 sets an identifier of the NAL unit for the first encoding method to pcc_nal_unit_type included in the NAL unit header (S4687). Next, the encoding unit 4670 generates a 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).
[0194] 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 the first, second, and third embodiments and the modified examples, the decoding process corresponding to a plurality of codecs becomes possible. Note that Fig. 42 shows an example in which the method of the first embodiment is used, but the same process can be applied to other methods.
[0195] First, the decoding unit 4680 receives an NAL unit (S4691). For example, this NAL unit is generated by the processing in the encoding unit 4670 described above.
[0196] Next, the decoding unit 4680 determines whether pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4692).
[0197] 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). Then, the second decoding unit 4660 identifies the data as pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4694). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the second encoding method (S4695).
[0198] 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).Then, the decoding unit 4680 identifies the data as pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4697).Then, the decoding unit 4680 decodes the PCC data using the decoding process of the first encoding method (S4698).
[0199] 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 control information (e.g., a parameter set) of the encoded stream (e.g., S4672 in FIG. 37).
[0200] According to this, when decoding the encoded stream generated by the three-dimensional data encoding device, the three-dimensional data decoding device can determine the encoding method used for encoding by 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.
[0201] For example, the three-dimensional data includes position information. In the encoding, the three-dimensional data encoding device encodes the position information. In the storing, the three-dimensional data encoding device stores, in control information of the position information, information indicating an encoding method used to encode the position information, out of the first encoding method and the second encoding method.
[0202] For example, the three-dimensional data includes position information and attribute information. In the encoding, the three-dimensional data encoding device encodes the position information and the attribute information. In the storing, the three-dimensional data encoding device stores, in control information for the position information, information indicating an encoding method, out of the first encoding method and the second encoding method, used to encode the position information, and stores, in control information for the attribute information, information indicating an encoding method, out of the first encoding method and the second encoding method, used to encode the attribute information.
[0203] According to this, different encoding methods can be used for the position information and the attribute information, thereby improving the encoding efficiency.
[0204] 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).
[0205] 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 and having independent definitions in the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).
[0206] For example, as described in Figures 23 to 28 of embodiment 2, the unit has a format that is independent between the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit and having a definition that is independent between the first encoding method and the second encoding method (e.g., codec1_nal_unit_type or codec2_nal_unit_type).
[0207] For example, as described in Figures 32 to 34 of embodiment 3, 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 and having a definition common to the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).
[0208] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0209] Furthermore, the three-dimensional data decoding device of this embodiment determines the encoding method used to encode the encoded stream based on information indicating which of the first and second encoding methods was used to encode the three-dimensional data (e.g., codec identification information), which is included in control information (e.g., a parameter set) of the encoded stream generated by encoding three-dimensional data (e.g., S4677 in FIG. 38), and decodes the encoded stream using the determined encoding method (e.g., S4678 in FIG. 38).
[0210] According to this, when decoding an encoded stream, the three-dimensional data decoding device can determine the encoding method used for encoding by using the information stored in the control information, and therefore can correctly decode the encoded stream even when multiple encoding methods are used.
[0211] 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 an encoding method used to encode the position information based on information indicating an encoding method used to encode the position information, out of the first encoding method and the second encoding method, which is 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.
[0212] 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 indicating the encoding method used to encode the position information out of the first encoding method and the second encoding method, which is 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 indicating the encoding method used to encode the attribute information out of the first encoding method and the second encoding method, which is 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.
[0213] According to this, different encoding methods can be used for the position information and the attribute information, thereby improving the encoding efficiency.
[0214] For example, the encoded stream is stored in one or more units (for example, NAL units), and the three-dimensional data decoding device further obtains the encoded stream from the one or more units.
[0215] 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 and having independent definitions in the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).
[0216] For example, as described in Figures 23 to 28 of embodiment 2, the unit has a format that is independent between the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit and having a definition that is independent between the first encoding method and the second encoding method (e.g., codec1_nal_unit_type or codec2_nal_unit_type).
[0217] For example, as described in Figures 32 to 34 of embodiment 3, 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 and having a definition common to the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).
[0218] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0219] (Embodiment 5) In this embodiment, a method for storing the NAL units described in the first embodiment in an ISOBMFF file will be described.
[0220] ISOBMFF (ISO based media file format) is a file format standard defined in ISO / IEC 14496-12. ISOBMFF specifies a format that can store multiplexed media such as video, audio, and text, and is a media-independent standard.
[0221] The basic structure (file) of ISOBMFF is explained. 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.
[0222] 43 is a diagram showing the basic structure (file) of ISOBMFF. An ISOBMFF file mainly includes boxes such as ftyp, which indicates the brand of the file with 4CC (4-character code), moov, which stores metadata such as control information, and mdat, which stores data.
[0223] A method of storing each medium in an ISOBMFF file is specified separately, and for example, a method of storing AVC video and HEVC video is specified in ISO / IEC14496-15. Here, it is considered that the function of ISOBMFF is extended and used to accumulate or transmit PCC encoded data, but there is no provision yet for storing PCC encoded data in an ISOBMFF file. Therefore, in this embodiment, a method of storing PCC encoded data in an ISOBMFF file will be described.
[0224] 44 is a diagram showing a protocol stack when a NAL unit common to PCC codecs is stored in an ISOBMFF file. Here, the NAL unit common to PCC codecs described in the first embodiment is stored in an ISOBMFF file. Although the NAL unit is common to PCC codecs, since multiple PCC codecs are stored in the NAL unit, it is desirable to define a storage method (Carriage of Codec1, Carriage of Codec2) according to each codec.
[0225] Next, a method of 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 in a storage method (Carriage of Codec1) for codec 1. Fig. 46 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file in a storage method (Carriage of Codec2) for codec 2.
[0226] 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 with a first encoding method (encoding format) is stored in a file, ftyp=pcc1 is set. When PCC encoded data encoded with a second encoding method is stored in a file, ftyp=pcc2 is set.
[0227] Here, pcc1 indicates that PCC codec 1 (first encoding method) is used. 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 indicate PCC codecs (first and second encoding methods).
[0228] A method of 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.
[0229] In addition, the multiplexing unit analyzes the NAL unit header, and if pcc_codec_type=Codec2, writes pcc2 in the ftyp of ISOBMFF.
[0230] Furthermore, if pcc_nal_unit_type is metadata, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat. If pcc_nal_unit_type is data, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat.
[0231] For example, the multiplexing unit may store the NAL unit size in the NAL unit in the same manner as in HEVC.
[0232] This storage method makes it possible to determine whether the PCC encoded data has been encoded by the first encoding method or the second encoding method by analyzing the ftyp included in the file in the demultiplexer (system layer). Furthermore, as described above, by determining whether the PCC encoded data has been encoded by the first encoding method or the second encoding method, it is possible to extract encoded data encoded by one of the encoding methods from data in which encoded data encoded by both encoding methods are mixed. This makes it possible to reduce the amount of data transmitted when transmitting encoded data. Furthermore, this storage method makes it possible to use a common data format for the first encoding method and the second encoding method without setting different data (file) formats.
[0233] In addition, when codec identification information is indicated in metadata of the system layer, such as ftyp in ISOBMFF, the multiplexing unit may store the NAL unit from which pcc_nal_unit_type has been deleted in the ISOBMFF file.
[0234] Next, the configuration and operation of the multiplexing unit provided in the three-dimensional data encoding system (three-dimensional data encoding device) of this embodiment, and the demultiplexing unit provided in the three-dimensional data decoding system (three-dimensional data decoding device) of this embodiment will be described.
[0235] Fig. 47 is a diagram showing a configuration of a first multiplexing unit 4710. The first multiplexing unit 4710 includes a file conversion unit 4711 that generates multiplexed data (file) by storing the coded data and control information (NAL units) generated by the first coding unit 4630 in an ISOBMFF file. This first multiplexing unit 4710 is included in the multiplexing unit 4614 shown in Fig. 1, for example.
[0236] Fig. 48 is a diagram showing a configuration of the first demultiplexing unit 4720. The first demultiplexing unit 4720 includes a file inverse conversion unit 4721 that acquires coded data and control information (NAL units) from multiplexed data (file) and outputs the acquired coded data and control information to the first decoding unit 4640. This first demultiplexing unit 4720 is included in the demultiplexing unit 4623 shown in Fig. 1, for example.
[0237] Fig. 49 is a diagram showing a 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 coded data and control information (NAL units) generated by the second coding unit 4650 in an ISOBMFF file. This second multiplexing unit 4730 is included in the multiplexing unit 4614 shown in Fig. 1, for example.
[0238] 50 is a diagram showing a configuration of the second demultiplexing unit 4740. The second demultiplexing unit 4740 includes a file inverse conversion unit 4741 that acquires coded data and control information (NAL units) from multiplexed data (file) and outputs the acquired coded data and control information to the second decoding unit 4660. This second demultiplexing unit 4740 is included in the demultiplexing unit 4623 shown in FIG. 1, for example.
[0239] 51 is a flowchart of the multiplexing process by the first multiplexing unit 4710. First, the first multiplexing unit 4710 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 (S4701).
[0240] 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).
[0241] 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). That is, the first multiplexing unit 4710 writes information indicating that data encoded by the first encoding method is stored in the file in ftyp.
[0242] Next, the first multiplexing unit 4710 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_nal_unit_type (S4705).Then, the first multiplexing unit 4710 creates an ISOBMFF file including the ftyp and the box (S4706).
[0243] 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).
[0244] When pcc_unit_type indicates the second encoding method (second encoding method in S4712), the second multiplexing unit 4730 writes pcc2 in ftyp (S4713). That is, the second multiplexing unit 4730 writes information indicating that data encoded by the second encoding method is stored in the file in ftyp.
[0245] 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, or the like) in 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).
[0246] 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).
[0247] The above process shows an example of encoding the PCC data by 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. If the 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 (the first encoding method or the second encoding method) in steps S4701 and S4711 using the PCC codec identification information included in addition to the NAL unit header.
[0248] Furthermore, when storing the 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.
[0249] FIG. 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 ftyp included in the ISOBMFF file (S4721). If the codec indicated by 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). In addition, the first demultiplexing unit 4720 conveys the result of the determination to the first decoding unit 4640. The first decoding unit 4640 does not process the NAL unit (S4724).
[0250] On the other hand, if the codec indicated by 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). In addition, the first demultiplexing unit 4720 conveys the result of the determination to the first decoding unit 4640.
[0251] The first decoding unit 4640 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 first encoding method (S4726).Then, the first decoding unit 4640 decodes the PCC data using the decoding process of the first encoding method (S4727).
[0252] 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 ftyp included in the ISOBMFF file (S4731). If the codec indicated by 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). In addition, the second demultiplexing unit 4740 conveys the result of the determination to the second decoding unit 4660.
[0253] 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 a 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).
[0254] 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 by the first encoding method (S4736). In addition, the second demultiplexing unit 4740 conveys the result of the determination to the second decoding unit 4660. The second decoding unit 4660 does not process the NAL unit (S4737).
[0255] 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, the desired NAL unit can be input to the first decoding unit 4640 or the second decoding unit 4660, and unnecessary NAL units can be removed. In this case, the process of analyzing the codec identification information in the first decoding unit 4640 or the second decoding unit 4660 may become unnecessary. Note that the first decoding unit 4640 or the second decoding unit 4660 may perform the process of analyzing the codec identification information by referring to the NAL unit type again.
[0256] In addition, if the first multiplexing unit 4710 or the second multiplexing unit 4730 removes pcc_nal_unit_type from the NAL unit header, the first demultiplexing unit 4720 or the second demultiplexing unit 4740 may add pcc_nal_unit_type to the NAL unit and then output it to the first decoding unit 4640 or the second decoding unit 4660.
[0257] (Embodiment 6) This embodiment will describe a multiplexing unit and a demultiplexing unit corresponding to the encoding unit 4670 and the decoding unit 4680 that support a plurality of codecs, as described in Embodiment 4. Fig. 55 is a diagram showing configurations of the encoding unit 4670 and the third multiplexing unit 4750 according to this embodiment.
[0258] The encoding unit 4670 encodes the point cloud data using either one or both of the first and second encoding methods. The encoding unit 4670 may switch the encoding method (the first and second encoding methods) in units of point cloud data or in units of frames. The encoding unit 4670 may also switch the encoding method in units that can be encoded.
[0259] The encoding unit 4670 generates encoded data (encoded stream) including identification information of the PCC codec described in the first to fourth embodiments.
[0260] 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 by a first encoding method, data encoded by a second encoding method, or data encoded by both methods. The file conversion unit 4751 writes a brand name capable of identifying the codec in ftyp. For example, when indicating that the data is encoded by both methods, pcc3 is written in ftyp.
[0261] If the encoding unit 4670 describes identification information of the PCC codec outside the NAL unit, the file conversion unit 4751 may determine the PCC codec (encoding method) using the identification information.
[0262] FIG. 56 is a diagram showing the configuration of the third demultiplexing unit 4760 and the decoding unit 4680 according to the present embodiment.
[0263] 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 by the first encoding method, data encoded by the second encoding method, or data encoded by both methods.
[0264] When the PCC encoded data is encoded by one of the encoding methods, the data is input to the corresponding decoding unit of the first decoding unit 4640 or the second decoding unit 4660, and the data is not input to the other decoding unit. When the PCC encoded data is encoded by both encoding methods, the data is input to the decoding unit 4680 that supports both methods.
[0265] The decoding unit 4680 decodes the PCC encoded data using either or both of the first encoding method and the second encoding method.
[0266] FIG. 57 is a flowchart showing processing by the third multiplexing section 4750 according to this embodiment.
[0267] 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 encoding method and the second encoding method (S4741).
[0268] 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 by the second encoding method is stored in the file in ftyp.
[0269] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4745).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).
[0270] On the other hand, if the first encoding method is used (Yes in S4742 and the first encoding method in S4743), the third multiplexing unit 4750 writes pcc1 in ftyp (S4747). That is, the third multiplexing unit 4750 writes information indicating that data encoded by the first encoding method is stored in the file in ftyp.
[0271] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4748).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).
[0272] 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 writes pcc3 in ftyp (S4749). That is, the third multiplexing unit 4750 writes information indicating that data encoded by both encoding methods is stored in the file in ftyp.
[0273] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4750).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).
[0274] 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 ftyp included in the ISOBMFF file (S4761). If the codec indicated by ftyp is the second encoding method (pcc2) (Yes in S4762 and the second encoding method in S4763), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4764). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.
[0275] The decoding unit 4680 identifies the data by determining that the pcc_nal_unit_type included in the NAL unit header is an identifier of a NAL unit for the second encoding method (S4765). Then, the decoding unit 4680 decodes the PCC data using the decoding process for the second encoding method (S4766).
[0276] On the other hand, if the codec indicated by 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). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.
[0277] The decoding unit 4680 identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of a NAL unit for the first encoding method (S4768). Then, the decoding unit 4680 decodes the PCC data using the decoding process for the first encoding method (S4769).
[0278] On the other hand, if ftyp indicates that both encoding methods are used (pcc3) (No in S4762), 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). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.
[0279] The decoding unit 4680 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 codec described in 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 data encoded by a first encoding method using the decoding process of the first encoding method, and decodes data encoded by a second encoding method using the decoding process of the second encoding method.
[0280] A modified example of this embodiment will be described below. As the type of brand indicated in ftyp, the following types may be indicated by the identification information. Also, a combination of the following types may be indicated by the identification information.
[0281] The identification information may indicate whether an object in the original data before PCC encoding is a point cloud with a restricted area or a large-scale point cloud with no restricted area such as map information.
[0282] The identification information may indicate whether the original data before PCC encoding is a static object or a dynamic object.
[0283] As described above, the identification information may indicate whether the PCC encoded data is data encoded using a first encoding method or data encoded using a second encoding method.
[0284] The identification information may indicate an algorithm used in the PCC encoding, where the algorithm is, for example, an encoding method that can be used in the first encoding method or the second encoding method.
[0285] The identification information may indicate different storage methods of the PCC encoded data in the ISOBMFF file, for example, the identification information may indicate whether the storage method used is a storage method for storage or a storage method for real-time transmission such as dynamic streaming.
[0286] In addition, in embodiment 5, the method of storing the NAL units described in embodiment 1 is described, and in embodiment 6, the method of storing the NAL units described in embodiment 4 is described. However, by applying a similar 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.
[0287] Although the fifth and sixth embodiments have been described with reference to an example in which ISOBMFF is used as the file format, other formats may be used. For example, the same method as in the present embodiment may be used when storing PCC encoded data in MPEG-2 TS Systems, MPEG-DASH, MMT, or RMP.
[0288] In the above example, metadata such as identification information is stored in ftyp, but the metadata may be stored in a location other than ftyp. For example, the metadata may be stored in moov.
[0289] As described above, the three-dimensional data storage device (or the three-dimensional data multiplexing device, or the three-dimensional data encoding device) performs the process shown in FIG.
[0290] 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 is 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). In addition, in the storage (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 is encoded, in control information (for example, ftyp) of the file.
[0291] According to this, in a device that processes a file generated by the three-dimensional data storage device, it is possible to refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby realizing a reduction in the amount of processing of the device or an increase in the processing speed.
[0292] 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 data obtained by encoding the point cloud data and which of the first and second encoding methods was used to encode the point cloud data may be indicated by a single piece of information or may be indicated by different pieces of information.
[0293] According to this, a device that processes a file generated by the three-dimensional data storage device can refer to the control information of the file and quickly determine the codec used for the data stored in the file, thereby reducing the amount of processing of the device and speeding up the processing.
[0294] For example, the first encoding method is a method (GPCC) that encodes position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) 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.
[0295] For example, the file conforms to ISOBMFF (ISO based media file format).
[0296] For example, the three-dimensional data storage device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0297] As described above, the three-dimensional data acquisition device (or the three-dimensional data demultiplexing device, or the three-dimensional data decoding device) performs the process shown in FIG.
[0298] The three-dimensional data acquisition device (including, for example, the first demultiplexing unit 4720, the second demultiplexing unit 4740, or the third demultiplexing unit 4760) acquires a file (for example, an ISOBMFF file) that stores one or more units (for example, NAL units) in which an encoded stream in which point cloud data is encoded is stored (S4791). Next, the three-dimensional data acquisition device acquires one or more units from the file (S4792). In addition, the control information of the file (for example, ftyp) includes information (for example, pcc1, pcc2, or pcc3) that indicates that the data stored in the file is data in which point cloud data is encoded.
[0299] For example, the three-dimensional data acquisition device refers to the information and determines whether the data stored in the file is data obtained by encoding point cloud data. When the three-dimensional data acquisition device determines that the data stored in the file is data obtained by encoding point cloud data, the three-dimensional data acquisition device generates point cloud data by decoding the data obtained by encoding point cloud data included in one or more units. When the three-dimensional data acquisition device determines that the data stored in the file is data obtained by encoding point cloud data, the three-dimensional data acquisition device outputs (notifies) information indicating that the data included in one or more units is data obtained by encoding point cloud data to a downstream processing unit (for example, the first decoding unit 4640, the second decoding unit 4660, or the decoding unit 4680).
[0300] According to this, the three-dimensional data acquisition device can refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby reducing the processing load of the three-dimensional data acquisition device or a downstream device or speeding up the processing.
[0301] For example, the information further indicates the encoding method used for the encoding, either the first encoding method or the second encoding method. Note that the fact that the data stored in the file is data obtained by encoding point cloud data and the encoding method used for encoding the point cloud data, either the first encoding method or the second encoding method, may be indicated by a single piece of information or may be indicated by different pieces of information.
[0302] This allows the 3D data acquisition device to refer to the control information of the file and quickly determine the codec used for the data stored in the file, thereby reducing the amount of processing or speeding up the processing of the 3D data acquisition device or a downstream device.
[0303] For example, based on the information, the three-dimensional data acquisition device acquires data encoded by one of the encoding methods from encoded point cloud data which includes data encoded by a first encoding method and data encoded by a second encoding method.
[0304] For example, the first encoding method is a method (GPCC) that encodes position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) 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.
[0305] For example, the file conforms to ISOBMFF (ISO based media file format).
[0306] For example, the three-dimensional data acquisition device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0307] Although the three-dimensional data storage device and the three-dimensional data acquisition device according to the embodiments of the present disclosure have been described above, the present disclosure is not limited to these embodiments.
[0308] Furthermore, each processing unit included in the three-dimensional data storage device and the three-dimensional data acquisition device according to the above-mentioned embodiments is typically realized as an LSI, which is an integrated circuit. These may be individually implemented as single chips, or may be integrated in part or all of them into a single chip.
[0309] The integrated circuit is not limited to an LSI, but may be realized by a dedicated circuit or a general-purpose processor. A field programmable gate array (FPGA) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI may also be used.
[0310] In each of the above embodiments, each component may be implemented by dedicated hardware or by executing a software program suitable for each component. Each component may be implemented by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
[0311] Furthermore, the present disclosure may be realized as a three-dimensional data storage method or a three-dimensional data acquisition method executed by a three-dimensional data storage device, a three-dimensional data acquisition device, or the like.
[0312] In addition, the division of functional blocks in the block diagram is an example, and multiple functional blocks may be realized as one functional block, one functional block may be divided into multiple blocks, or some functions may be transferred to another functional block. Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in a time-sharing manner by a single piece of hardware or software.
[0313] In addition, the order in which each step is performed in the flowchart is merely an example for specifically explaining the present disclosure, and an order other than the above may be used. In addition, some of the steps may be performed simultaneously (in parallel) with other steps.
[0314] Although the three-dimensional data storage device and the three-dimensional data acquisition device according to one or more aspects have been described based on the embodiments, the present disclosure is not limited to these embodiments. As long as it does not deviate from the gist of the present disclosure, various modifications conceived by a person skilled in the art to the present embodiment and forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects. [Industrial Applicability]
[0315] The present disclosure is applicable to three-dimensional data storage devices and three-dimensional data acquisition devices. [Explanation of symbols]
[0316] 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 section 4625 Presentation section 4626 User Interface 4627 Control Unit 4630 First Encoding Section 4631 Location information encoder 4632 Attribute information encoder 4633 Additional Information Encoding Unit 4634 Multiplexer 4640 First Decoding Unit 4641 Demultiplexer 4642 Location Information Decoding Unit 4643 Attribute Information Decoding Unit 4644 Additional Information Decoding Unit 4650 Second Encoding Section 4651 Additional Information Generation Unit 4652 Position image generation unit 4653 Attribute Image Generation Unit 4654 Video Encoding Unit 4655 Additional Information Encoding Unit 4656 Multiplexer 4660 Second Decryption Unit 4661 Demultiplexer 4662 Video Decoding Unit 4663 Additional Information Decoding Unit 4664 Location information generator 4665 Attribute information generation section 4670 Encoding section 4671 Multiplexer 4680 Decoding section 4681 Demultiplexer 4710 First Multiplexing Unit 4711 File Conversion Department 4720 First Demultiplexer 4721 File Reverse Conversion Unit 4730 Second Multiplexing Unit 4731 File Conversion Department 4740 Second Demultiplexer 4741 File Reverse Conversion Unit 4750 Third Multiplexer 4751 File Conversion Department 4760 3rd Demultiplexer 4761 File Reverse Conversion Unit
Claims
1. Obtaining one or more units in which a coded stream in which three-dimensional data is coded is stored; storing said one or more units in a file; The storing step includes storing information indicating an encoding method used to encode the three-dimensional data, among a plurality of encoding methods including a first encoding method and a second encoding method, in control information of the file; if the three-dimensional data is encoded using a first encoding method, the encoded three-dimensional data is stored in a first unit having a first format; if the three-dimensional data is encoded using a second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format; the first encoding method is a method of encoding position information of three-dimensional data and encoding attribute information using the position information, The second encoding method is a method of generating a two-dimensional image from three-dimensional data and encoding the two-dimensional image using a video encoding method. A method for storing three-dimensional data.
2. The position information in the first encoding method expresses the position of the three-dimensional data as an N-ary tree (N is an integer equal to or greater than 2).
2. The three-dimensional data storage method according to claim 1.
3. The storing step further includes storing information indicating that the data stored in the file is encoded three-dimensional data in the control information of the file.
2. The three-dimensional data storage method according to claim 1.
4. Each of the first unit and the second unit includes a header and a payload, the payload comprises encoded data or metadata; The header includes information indicating the type of data included in the payload.
4. The three-dimensional data storage method according to claim 3.
5. The file is in compliance with ISO based media file format (ISOBMFF). The three-dimensional data storage method according to any one of claims 1 to 4.
6. Obtaining a file in which one or more units in which a coded stream in which three-dimensional data is coded is stored; Obtaining the one or more units from the file; the file includes information indicating an encoding method used to encode the three-dimensional data, among a plurality of encoding methods including a first encoding method and a second encoding method; if the three-dimensional data is encoded using a first encoding method, the encoded three-dimensional data is stored in a first unit having a first format; if the three-dimensional data is encoded using a second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format; the first encoding method is a method of encoding position information of three-dimensional data and encoding attribute information using the position information, The second encoding method is a method of generating a two-dimensional image from three-dimensional data and encoding the two-dimensional image using a video encoding method. Three-dimensional data acquisition methods.
7. The position information in the first encoding method expresses the position of the three-dimensional data as an N-ary tree (N is an integer equal to or greater than 2). The three-dimensional data acquisition method according to claim 6.
8. The file further includes information indicating that the data stored in the file is encoded three-dimensional data. The three-dimensional data acquisition method according to claim 6.
9. Each of the first unit and the second unit includes a header and a payload, the payload comprises encoded data or metadata; The header includes information indicating the type of data included in the payload. The three-dimensional data acquisition method according to claim 8.
10. The file is in compliance with ISO based media file format (ISOBMFF). The three-dimensional data acquisition method according to any one of claims 6 to 9.
11. A processor; A memory. The processor uses the memory to: Obtaining one or more units in which a coded stream in which three-dimensional data is coded is stored; storing said one or more units in a file; The storing step includes storing information indicating an encoding method used to encode the three-dimensional data, among a plurality of encoding methods including a first encoding method and a second encoding method, in control information of the file; if the three-dimensional data is encoded using a first encoding method, the encoded three-dimensional data is stored in a first unit having a first format; if the three-dimensional data is encoded using a second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format; the first encoding method is a method of encoding position information of three-dimensional data and encoding attribute information using the position information, The second encoding method is a method of generating a two-dimensional image from three-dimensional data and encoding the two-dimensional image using a video encoding method. Three-dimensional data storage device.
12. A processor; A memory. The processor uses the memory to: Obtaining a file in which one or more units in which a coded stream in which three-dimensional data is coded is stored; Obtaining the one or more units from the file; the file includes information indicating an encoding method used to encode the three-dimensional data, among a plurality of encoding methods including a first encoding method and a second encoding method; if the three-dimensional data is encoded using a first encoding method, the encoded three-dimensional data is stored in a first unit having a first format; if the three-dimensional data is encoded using a second encoding method, the encoded three-dimensional data is stored in a second unit having a second format different from the first format; the first encoding method is a method of encoding position information of three-dimensional data and encoding attribute information using the position information, The second encoding method is a method of generating a two-dimensional image from three-dimensional data and encoding the two-dimensional image using a video encoding method. Three-dimensional data acquisition device.
Citation Information
Patent Citations
Data structure, image processing apparatus, image processing method and program
JP2011228862A
Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, and video encoding / decoding apparatus
WO2013018296A1
Three-dimensional information processing method and three-dimensional information processing apparatus
WO2018038131A1
Three-dimensional model distribution method, three-dimensional model receiving method, three-dimensional model distribution device, and three-dimensional model receiving device
WO2018123801A1
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020027317A1