WO2024257786A1 - 復号装置、復号方法、符号化装置、符号化方法、及び、装置 - Google Patents

復号装置、復号方法、符号化装置、符号化方法、及び、装置 Download PDF

Info

Publication number
WO2024257786A1
WO2024257786A1 PCT/JP2024/021298 JP2024021298W WO2024257786A1 WO 2024257786 A1 WO2024257786 A1 WO 2024257786A1 JP 2024021298 W JP2024021298 W JP 2024021298W WO 2024257786 A1 WO2024257786 A1 WO 2024257786A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
dimensional
vertices
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2024/021298
Other languages
English (en)
French (fr)
Inventor
賀敬 井口
敏康 杉尾
孝啓 西
敦 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to EP24823401.5A priority Critical patent/EP4727134A1/en
Priority to CN202480036894.1A priority patent/CN121241568A/zh
Priority to JP2025527959A priority patent/JPWO2024257786A1/ja
Publication of WO2024257786A1 publication Critical patent/WO2024257786A1/ja
Priority to US19/413,464 priority patent/US20260094305A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • This disclosure relates to a decoding device, a decoding method, an encoding device, an encoding method, and an apparatus.
  • 3D data can be acquired in a variety of ways, including distance sensors such as range finders, stereo cameras, or a combination of multiple monocular cameras.
  • One method of expressing three-dimensional data is a method called a point cloud, which uses a group of points in three-dimensional space to represent the shape of a three-dimensional structure.
  • a point cloud In a point cloud, the position and color of the point cloud 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 as with two-dimensional moving images (examples include MPEG-4 AVC or HEVC standardized by MPEG).
  • Patent Document 1 There is also known technology that uses three-dimensional map data to search for and display facilities located around a vehicle (see, for example, Patent Document 1).
  • the present disclosure aims to provide a decoding device and the like that can output three-dimensional data with different resolutions.
  • a decoding device includes a circuit and a memory connected to the circuit, and the circuit, in operation, acquires encoded data, restores a plurality of first vertices based on the encoded data, connects the restored first vertices to generate first surface information including a first surface, restores a plurality of second vertices based on the encoded data and the first surface, connects points including the restored first vertices and the restored second vertices to generate second surface information including a second surface, and outputs the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • An encoding device includes a circuit and a memory connected to the circuit, and the circuit, in operation, determines a plurality of first vertices of a three-dimensional object, connects the plurality of first vertices to generate first surface information including a first surface, determines a plurality of second vertices based on the first surface, connects a point cloud including the plurality of first vertices and the plurality of second vertices to generate second surface information including a second surface, and generates encoded data including the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • the device includes a circuit and a memory connected to the circuit, and in operation, the circuit determines the type of three-dimensional data to be decoded and extracts the determined type of three-dimensional data from the encoded data, the encoded data including (1) a plurality of first vertices of a three-dimensional object, (2) first surface information including a first surface generated by connecting the plurality of first vertices, (3) a plurality of second vertices determined based on the first surface, and (4) a second surface generated by connecting a point cloud including the plurality of first vertices and the plurality of second vertices, the type of the extracted three-dimensional data includes a first format and a second format, and when the type of the three-dimensional data to be decoded is determined to be the first format, first encoded data including the plurality of first vertices and the first surface information is extracted, and when the type of the three-dimensional data to be decoded is determined to be the second format, second encoded data including the first
  • the decoding device disclosed herein can output three-dimensional data at different resolutions.
  • FIG. 1 is a diagram showing an example of a configuration of a three-dimensional data encoding/decoding system according to a first embodiment.
  • FIG. 2 is a diagram showing a configuration of point cloud data in the first embodiment.
  • FIG. 3 is a diagram showing an example of a configuration of a data file in which information on point cloud data is described in the first embodiment.
  • FIG. 4 is a diagram showing a structure of three-dimensional mesh data in the first embodiment.
  • FIG. 5 is a diagram showing an example of the structure of a data file in which information on three-dimensional mesh data is described in the first embodiment.
  • FIG. 6 is a diagram for explaining a three-dimensional model in the first embodiment.
  • FIG. 7 is a diagram showing types of three-dimensional data in the first embodiment.
  • FIG. 1 is a diagram showing an example of a configuration of a three-dimensional data encoding/decoding system according to a first embodiment.
  • FIG. 2 is a diagram showing a configuration of point cloud data in the first embodiment.
  • FIG. 8 is a diagram for explaining the encoding process of three-dimensional data in the first embodiment.
  • FIG. 9 is a diagram for explaining the decoding process of three-dimensional data in the first embodiment.
  • FIG. 10 is a diagram showing tiles and slices of three-dimensional data in a two-dimensional manner according to the first embodiment.
  • FIG. 11 is a diagram showing an example of a terminal presentation screen that can be switched in response to a user request in the first embodiment.
  • FIG. 12 is a diagram showing an example of a terminal presentation screen that is automatically switched in response to a user operation in the first embodiment.
  • FIG. 13 is a block diagram showing an example of a functional configuration of the server and the terminal in the first embodiment. As shown in FIG. FIG. FIG.
  • FIG. 14 is a block diagram showing another example of the data generating unit of the server in the first embodiment.
  • FIG. 15 is a diagram for explaining the synchronization process of the coordinate systems in the first embodiment.
  • FIG. 16 is a diagram for explaining the synchronization process of the coordinate systems in the first embodiment.
  • FIG. 17 is a diagram for explaining the relationship between three-dimensional space and encoded data in the first embodiment.
  • FIG. 18 is a diagram showing an example of the syntax of a coding method unit in the first embodiment.
  • FIG. 19 is a diagram showing an example of the syntax of the coded point group in the first embodiment.
  • FIG. 20 is a diagram showing an example of the syntax of a coding mesh in the first embodiment.
  • FIG. 21 is a diagram showing an example of the syntax of the encoded 3D model in the first embodiment.
  • FIG. 22 is a diagram showing an example of the syntax of three-dimensional data information in the first embodiment.
  • FIG. 23 is a diagram illustrating the data structure of an encoded point group in the first embodiment.
  • FIG. 24 is a diagram for explaining the data structure of an encoded mesh in embodiment 1.
  • FIG. 25 is a diagram illustrating the data structure of an encoded 3D model in the first embodiment.
  • FIG. 26 is a two-dimensional diagram illustrating an example of a plurality of three-dimensional spaces in accordance with the first embodiment.
  • FIG. 27 is a diagram showing an example of a bounding box in the first embodiment.
  • FIG. 28 is a diagram showing an example of the syntax of three-dimensional space information in the first embodiment.
  • FIG. 29 is a flowchart showing an example of partial decoding in the first embodiment.
  • FIG. 30 is a diagram showing an example of a three-dimensional spatial region to be subjected to partial decoding in the first embodiment.
  • FIG. 31 is a diagram showing an example of a data structure of a group of partially decoded encoded points in the first embodiment.
  • FIG. 32 is a diagram showing an example of a data structure of a partially decoded encoded mesh in embodiment 1.
  • FIG. 33 is a diagram showing an example of a data structure of a partially decoded encoded 3D model in the first embodiment.
  • FIG. 34 is a diagram showing an example of coordinate systems of different types of three-dimensional data that are not spatially synchronized in the first embodiment.
  • FIG. 35 is a diagram showing an example of the syntax of three-dimensional data information in the first embodiment.
  • FIG. 36 is a diagram showing an example of the syntax of three-dimensional space information in the first embodiment.
  • FIG. 37 is a diagram illustrating an example of a functional configuration of a terminal in the first embodiment.
  • FIG. 38 is a flowchart showing an example of spatial synchronization processing in the first embodiment.
  • FIG. 39 is a diagram showing an example of the configuration of a decoding device in the first embodiment.
  • FIG. 40 is a flowchart showing an example of a decoding method performed by the decoding device in the first embodiment.
  • FIG. 40 is a flowchart showing an example of a decoding method performed by the decoding device in the first embodiment.
  • FIG. 41 is a flowchart showing another example of a decoding method performed by the decoding device.
  • FIG. 42 is a diagram showing an example of the configuration of an encoding device.
  • FIG. 43 is a flowchart showing an example of an encoding method by the encoding device.
  • FIG. 44 is a diagram illustrating partial decoding for decoding a part of three-dimensional data in the second embodiment.
  • FIG. 45 is a diagram illustrating an example of extracting and decoding a part of three-dimensional data in the second embodiment.
  • FIG. 46 is a block diagram showing an example of a functional configuration of a server and a terminal in the second embodiment.
  • FIG. 47 is a flowchart showing an example of processing by a terminal in the second embodiment.
  • FIG. 48 is a diagram showing an example of an original point group in the second embodiment.
  • FIG. 49 is a diagram showing an example of a pruned octree in the second embodiment.
  • FIG. 50 shows an example of a two-dimensional display of leaf nodes in the second embodiment.
  • FIG. 51 is a diagram for explaining a method of generating a centroid vertex in the second embodiment.
  • FIG. 52 is a diagram for explaining a method of generating a centroid vertex in the second embodiment.
  • FIG. 53 is a diagram showing an example of vertex information in the second embodiment.
  • FIG. 54 is a diagram showing an example of a Trisoap surface in the second embodiment.
  • FIG. 55 is a diagram for explaining the point cloud restoration process in the second embodiment.
  • FIG. 56 is a diagram showing an example of the configuration of a decoding unit in the second embodiment.
  • FIG. 57 is a diagram showing an example of the syntax of metadata (SEI) in an outputtable format in embodiment 2.
  • SEI syntax of metadata
  • FIG. 58 is a diagram showing an example of format_type in the second embodiment.
  • FIG. 59 is a diagram showing another example of format_type in the second embodiment.
  • FIG. 60 is a flowchart showing an example of detailed processing for decoding three-dimensional data in a format specified by a predetermined method in the second embodiment.
  • FIG. 61 is a block diagram showing another example of the functional configuration of the server and the terminal in the second embodiment.
  • FIG. 62 is a flowchart showing another example of processing by the terminal in the second embodiment.
  • FIG. 63 is a diagram showing an example of a structure of a data unit in the second embodiment.
  • FIG. 64 is a diagram showing an example of the syntax of a coding method unit in the second embodiment.
  • FIG. 65 is a diagram showing an example of type information in the second embodiment.
  • FIG. 66 is a diagram showing an example of a data unit structure for partial transmission in the second embodiment.
  • FIG. 67 is a diagram showing an example of a data unit structure for partial transmission in embodiment 2.
  • FIG. 68 is a diagram showing an example of a data unit structure for partial transmission in embodiment 2.
  • FIG. 69 is a diagram showing an example of the syntax of a coding method unit for partial transmission in the second embodiment.
  • FIG. 70 is a diagram showing an example of type information in the second embodiment for partial transmission.
  • FIG. FIG. 70 is a diagram showing an example of type information in the second embodiment for partial transmission.
  • FIG. 71 is a diagram illustrating a group ID in the second embodiment.
  • FIG. 72 is a diagram showing an example of the configuration of a decoding device in the second embodiment.
  • FIG. 73 is a flowchart showing an example of a decoding method performed by the decoding device in embodiment 2.
  • FIG. 74 is a diagram showing an example of the configuration of a coding device in the second embodiment.
  • FIG. 75 is a flowchart showing an example of an encoding method performed by the encoding device in the second embodiment.
  • FIG. 76 is a flowchart showing an example of a method performed by a decoding device or an encoding device in embodiment 2.
  • the decoding device includes a circuit and a memory connected to the circuit, and in operation, the circuit acquires encoded data, restores a plurality of first vertices based on the encoded data, connects the restored first vertices to generate first surface information including a first surface, restores a plurality of second vertices based on the encoded data and the first surface, connects points including the restored first vertices and the restored second vertices to generate second surface information including a second surface, and outputs the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information are generated and output in two stages, so that, for example, low-resolution three-dimensional data can be output based on the low-resolution information, or high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data can be output based on the low-resolution information and the high-resolution information.
  • the decoding device is the decoding device according to the first aspect, and the circuit further generates point cloud data including a plurality of points based on the second surface and outputs the point cloud data.
  • the decoding device is the decoding device according to the first or second aspect, and the encoded data includes first encoded data including the first vertices and the first face information, and second encoded data including extension information for decoding the second vertices and the second face.
  • the decoding device is the decoding device according to the third aspect, in which the encoded data includes a header and a data unit, and the data unit includes the first encoded data and the second encoded data in that order.
  • the decoding device is the decoding device according to the third aspect, in which the encoded data includes a first data unit including a first header and the first encoded data, and a second data unit including a second header and the second encoded data.
  • the decoding device is the decoding device according to the third aspect, in which the circuit further decodes a portion of the first encoded data and the second encoded data, and outputs either (1) the first encoded data or (2) the first encoded data or the second encoded data.
  • the decoding device is the decoding device according to the sixth aspect, in which the circuit further obtains numerical information indicating the number of formats that can be output, and determines the data to be output based on the numerical information.
  • the decoding device is the decoding device according to the sixth aspect, in which the circuit further acquires type information indicating the type of format that can be output, and determines the type information and the data to be output.
  • the decoding device is the decoding device according to the third aspect, in which the circuit further acquires (1) the first encoded data and (2) either the first encoded data or the second encoded data, and decodes and outputs the acquired (1) first encoded data or (2) the first encoded data and the second encoded data.
  • the encoding device includes a circuit and a memory connected to the circuit, and the circuit, in operation, determines a plurality of first vertices of a three-dimensional object, connects the plurality of first vertices to generate first surface information including a first surface, determines a plurality of second vertices based on the first surface, connects a point cloud including the plurality of first vertices and the plurality of second vertices to generate second surface information including a second surface, and generates encoded data including the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • encoded data obtained by generating low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information in two stages is output, so that a decoding device that acquires the encoded data can, for example, output low-resolution three-dimensional data based on the low-resolution information, or output high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data based on the low-resolution information and the high-resolution information.
  • the encoding device is the encoding device according to the tenth aspect, in which the circuit further generates point cloud data including a plurality of points based on the second surface, and the encoded data further includes the point cloud data.
  • the encoding device is the encoding device according to the tenth aspect, in which the circuit further generates first encoded data including the plurality of first vertices and the first face information, and generates second encoded data including the plurality of second vertices and the second face information, and the encoded data includes the first encoded data and the second encoded data.
  • a decoding device that acquires the encoded data can restore multiple pieces of three-dimensional data with different resolutions.
  • the encoding device is the encoding device according to the twelfth aspect, in which the encoded data includes a header and a data unit, and the data unit includes the first encoded data and the second encoded data in that order.
  • the encoding device is the encoding device according to the twelfth aspect, in which the encoded data includes a first data unit including a first header and the first encoded data, and a second data unit including a second header and the second encoded data.
  • the encoding device is the encoding device according to the fourteenth aspect, in which the encoded data includes numerical information indicating the number of formats that can be output.
  • the encoding device is the encoding device according to the fourteenth aspect, in which the encoded data includes type information indicating the type of format that can be output.
  • the encoding device is the encoding device according to the tenth aspect, in which the circuit further outputs (1) the first encoded data, and (2) either the first encoded data or the second encoded data.
  • the decoding method reconstructs a plurality of first vertices based on encoded data, connects the reconstructed plurality of first vertices to generate first surface information including a first surface, reconstructs a plurality of second vertices based on the encoded data and the first surface, connects a point cloud including the reconstructed plurality of first vertices and the plurality of second vertices to generate second surface information including a second surface, and outputs the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information are generated and output in two stages, so that, for example, low-resolution three-dimensional data can be output based on the low-resolution information, or high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data can be output based on the low-resolution information and the high-resolution information.
  • the encoding method determines a plurality of first vertices of a three-dimensional object, connects the plurality of first vertices to generate first surface information including a first surface, determines a plurality of second vertices based on the first surface, connects a point cloud including the plurality of first vertices and the plurality of second vertices to generate second surface information including the second surface, and generates encoded data including the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information.
  • encoded data obtained by generating low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information in two stages is output, so that a decoding device that acquires the encoded data can, for example, output low-resolution three-dimensional data based on the low-resolution information, or output high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data based on the low-resolution information and the high-resolution information.
  • the device includes a circuit and a memory connected to the circuit, and in operation, the circuit determines the type of three-dimensional data to be decoded and extracts the determined type of three-dimensional data from the encoded data, the encoded data including (1) a plurality of first vertices of a three-dimensional object, (2) first surface information including a first surface generated by connecting the plurality of first vertices, (3) a plurality of second vertices determined based on the first surface, and (4) a second surface generated by connecting a point cloud including the plurality of first vertices and the plurality of second vertices, the type of the extracted three-dimensional data includes a first format and a second format, and when the type of the three-dimensional data to be decoded is determined to be the first format, first encoded data including the plurality of first vertices and the first surface information is extracted, and when the type of the three-dimensional data to be decoded is determined to be the second format, second encoded data including the
  • the encoded data required for decoding can be extracted based on the determined format. Therefore, when a format that requires a small amount of data for decoding is selected, the amount of data to be extracted can be reduced, so that, for example, the amount of transmission required for transmitting the encoded data can be reduced, and the processing load of the decoding process by the decoding device that has acquired the encoded data can be reduced.
  • FIG. 1 is a diagram showing an example of the configuration of a three-dimensional data encoding/decoding system according to this embodiment.
  • the three-dimensional data encoding/decoding system includes a three-dimensional data encoding system 1001, a three-dimensional data decoding system 1002, a sensor terminal 1003, and an external connection unit 1004.
  • the three-dimensional data encoding system 1001 generates encoded data or multiplexed data by encoding three-dimensional data.
  • the three-dimensional data encoding system 1001 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 also include some of the multiple processing units included in the three-dimensional data encoding system 1001.
  • the three-dimensional data encoding system 1001 includes a three-dimensional data generation system 1011, a presentation unit 1012, an encoding unit 1013, a multiplexing unit 1014, an input/output unit 1015, and a control unit 1016.
  • the three-dimensional data generation system 1011 includes a sensor information acquisition unit 1017 and a three-dimensional data generation unit 1018.
  • the sensor information acquisition unit 1017 acquires a sensor signal from the sensor terminal 1003 and outputs the sensor signal to the three-dimensional data generation unit 1018.
  • the three-dimensional data generation unit 1018 generates three-dimensional data from the sensor signal and outputs the three-dimensional data to the encoding unit 1013.
  • the presentation unit 1012 presents the sensor signal or the three-dimensional data to the user. For example, the presentation unit 1012 displays information or an image based on the sensor signal or the three-dimensional data.
  • the encoding unit 1013 encodes (compresses) the three-dimensional data, and outputs the resulting encoded data, control information obtained in the encoding process, and other additional information to the multiplexing unit 1014.
  • the additional information includes, for example, a sensor signal.
  • the multiplexing unit 1014 generates multiplexed data by multiplexing the coded data input from the coding unit 1013, the control information, and the additional information.
  • the format of the multiplexed data is, for example, a file format for storage, or a packet format for transmission.
  • the input/output unit 1015 (e.g., a communication unit or an interface) outputs the multiplexed data to the outside.
  • the multiplexed data is stored in a storage unit such as an internal memory.
  • the control unit 1016 (or the application execution unit) controls each processing unit. In other words, the control unit 1016 controls encoding and multiplexing, etc.
  • the control unit 1016 may also control demultiplexing, decoding, or presentation.
  • the sensor signal may be input to the encoding unit 1013 or the multiplexing unit 1014.
  • the input/output unit 1015 may output the three-dimensional data or the encoded data directly to the outside.
  • the transmission signal (multiplexed data) output from the three-dimensional data encoding system 1001 is input to the three-dimensional data decoding system 1002 via the external connection unit 1004.
  • the three-dimensional data decoding system 1002 generates three-dimensional data by decoding the encoded data or multiplexed data.
  • the three-dimensional data decoding system 1002 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 1002.
  • the three-dimensional data decoding system 1002 includes a sensor information acquisition unit 1021, an input/output unit 1022, a demultiplexing unit 1023, a decoding unit 1024, a presentation unit 1025, a user interface 1026, and a control unit 1027.
  • the sensor information acquisition unit 1021 acquires a sensor signal from the sensor terminal 1003.
  • the input/output unit 1022 acquires the transmission signal, decodes the multiplexed data (file format or packets) from the transmission signal, and outputs the multiplexed data to the demultiplexer unit 1023.
  • the demultiplexing unit 1023 obtains the coded data, control information, and additional information from the multiplexed data, and outputs the coded data, control information, and additional information to the decoding unit 1024.
  • the decoding unit 1024 reconstructs the point cloud data by decoding the encoded data.
  • the presentation unit 1025 presents the point cloud data to the user. For example, the presentation unit 1025 displays information or an image based on the point cloud data.
  • the user interface 1026 acquires instructions based on user operations.
  • the control unit 1027 (or the application execution unit) controls each processing unit. In other words, the control unit 1027 controls demultiplexing, decoding, presentation, etc.
  • the input/output unit 1022 may obtain the point cloud data or the encoded data directly from outside.
  • the presentation unit 1025 may obtain additional information such as a sensor signal and present information based on the additional information.
  • the presentation unit 1025 may perform presentation based on a user instruction obtained by the user interface 1026.
  • the sensor terminal 1003 generates a sensor signal, which is information obtained by a sensor.
  • the sensor terminal 1003 is a terminal equipped with a sensor or a camera, and examples of the sensor terminal include a moving object such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera.
  • Sensor signals that can be acquired by the sensor terminal 1003 include, for example, (1) a signal indicating the distance between the sensor terminal 1003 and an object, or the reflectance of the object, obtained from a LIDAR, millimeter wave radar, or infrared sensor, and (2) a signal indicating the distance between the camera and an object, or the reflectance of the object, obtained from multiple monocular camera images or stereo camera images.
  • the sensor signal may also include the attitude, orientation, gyro (angular velocity), position (GPS information or altitude), speed, acceleration, etc. of the sensor.
  • the sensor signal may also include temperature, air pressure, humidity, magnetism, etc.
  • the external connection unit 1004 is realized by an integrated circuit (LSI or IC), an external storage unit, communication with a cloud server via the Internet, broadcasting, etc.
  • LSI or IC integrated circuit
  • IC integrated circuit
  • cloud server via the Internet
  • broadcasting etc.
  • Figure 2 is a diagram showing the structure of point cloud data.
  • Figure 3 is a diagram showing an example of the structure of a data file in which information about point cloud data is described.
  • Point cloud data includes data on multiple points.
  • the data on each point includes location information (three-dimensional coordinates) and attribute information for that location information.
  • a collection of multiple such points is called a point cloud.
  • a point cloud can represent the three-dimensional shape of an object.
  • Position information such as three-dimensional coordinates is sometimes called geometry.
  • the data for each point may include attribute information of multiple attribute types.
  • the attribute types are, for example, color or reflectance.
  • One piece of attribute information may be associated with one piece of location information, or multiple pieces of attribute information with different attribute types may be associated with one piece of location information. Also, multiple pieces of attribute information of the same attribute type may be associated with one piece of location information.
  • the data file configuration example shown in Figure 3 is an example where there is a one-to-one correspondence between position information and attribute information, and shows the position information and attribute information of N points that make up the point cloud data.
  • the position information is, for example, information on the three axes x, y, and z.
  • the attribute information is, for example, RGB color information.
  • a typical example of a data file is a ply file.
  • Figure 4 is a diagram showing the structure of three-dimensional mesh data.
  • Figure 5 is a diagram showing an example of the structure of a data file in which information about the three-dimensional mesh data is described.
  • Three-dimensional mesh data is a data format used in CG (Computer Graphics) that represents the three-dimensional shape of an object as a collection of multiple pieces of surface information. Each piece of surface information represents a polygon such as a triangle or a quadrangle. Three-dimensional mesh data is also called a polygon or polygon mesh.
  • CG Computer Graphics
  • the components are a three-dimensional point cloud, vertices that are multiple three-dimensional points of the three-dimensional point cloud, edges that connect two vertices at multiple three-dimensional points, and a collection of faces that are surrounded by multiple edges.
  • a three-dimensional point cloud is a collection of points that include position information in three-dimensional space and attribute information that corresponds to that position information. Note that three-dimensional points may simply be referred to as points.
  • a vertex may have attribute information such as color information, reflectance, and normal vector for a three-dimensional point.
  • the relationship between the vertices that make up an edge or face may be indicated by information called connectivity.
  • a vertex may be expressed as a position.
  • the front and back of a face may be expressed by the direction of the normal vector for the three-dimensional point.
  • a vertex may also have attribute information for the face.
  • An example of the format of a mesh data file is an object file.
  • a mesh data file such as that shown in Figure 5
  • the position information G(1) to G(N) of the N vertices that make up the mesh and the vertex attribute information A(1) to A(N) are shown as vertex information.
  • the vertex information does not have to include attribute information.
  • the mesh data file in Figure 5 shows an example of three-dimensional mesh data having M pieces of attribute information A2.
  • the number of vertices of a face is not limited to three, as long as the number of vertices is an integer equal to or greater than three. For example, if the face is a quadrangle, the number of vertices is four, and if the face is a polygon, the number of vertices is equal to the number of vertices that form the polygon.
  • the attribute information A2 may be indicated in a file separate from the mesh data file, and may include pointer information thereto.
  • the attribute information may be stored in a two-dimensional attribute map file, and the attribute map file name and two-dimensional coordinates in the attribute map may be indicated by the attribute information A2 of the mesh data file.
  • the attribute information A2 may be included in the mesh data file, or may be indicated in a file separate from the mesh data file, and either method can be used to specify attribute information for a three-dimensional point.
  • Figure 6 is a diagram to explain the three-dimensional model.
  • a three-dimensional model is a model created based on two-dimensional or three-dimensional data.
  • the three-dimensional model learning unit 1031 learns, for example, two-dimensional data (two-dimensional images) or three-dimensional data (point clouds or meshes) to generate a three-dimensional model, which is a network model in which three-dimensional shapes and attribute information corresponding to the three-dimensional shapes are learned using a Neural Network or the like.
  • the three-dimensional model learning unit 1031 may generate a three-dimensional model by learning using NeRF (Neural Radiance Fields) based on a two-dimensional image.
  • the three-dimensional model learning unit 1031 may generate a three-dimensional model after converting the two-dimensional image into three-dimensional data by performing photogrammetry using the two-dimensional image.
  • the three-dimensional model may be generated using three-dimensional data acquired by a sensor (distance sensor).
  • the three-dimensional model data is the elements that make up the three-dimensional model, and includes information indicating the structure of the network model, features, etc.
  • the three-dimensional model data includes, for example, information about the components of a neural network.
  • Information about the components includes, for example, multiple layers such as an input layer, intermediate layer, and output layer, nodes in each layer, weighting coefficients for the nodes, transformation functions for the nodes, etc.
  • the three-dimensional model encoding unit 1032 may encode the three-dimensional model data and transmit the encoded three-dimensional model data.
  • the three-dimensional model decoding unit 1033 receives the transmitted encoded three-dimensional model data and decodes the three-dimensional model based on the encoded three-dimensional model data.
  • the rendering reconstruction unit 1034 reconstructs (generates) two-dimensional data (two-dimensional image) or three-dimensional data (point cloud or mesh) based on the decoded three-dimensional model.
  • the rendering reconstruction unit 1034 acquires viewpoint position or line of sight vector information, generates rendered two-dimensional data (two-dimensional image) based on the three-dimensional model and the viewpoint position or line of sight vector, and outputs the two-dimensional data.
  • the generated two-dimensional data indicates a three-dimensional object seen from the viewpoint position, or a two-dimensional image of the three-dimensional object seen from the line of sight indicated by the line of sight vector.
  • the three-dimensional object is the three-dimensional data input to the three-dimensional model learning unit 1031 or the three-dimensional object of the subject that was the source of the three-dimensional data.
  • Figure 7 is a diagram showing the types of three-dimensional data. As shown in Figure 7, three-dimensional data includes static objects and dynamic objects.
  • a static object is three-dimensional data at any time (a certain moment in time).
  • a dynamic object is three-dimensional data that changes over time.
  • point cloud data at a certain moment in time will be referred to as a PCC frame, or frame.
  • mesh data at a certain moment in time will be referred to as a mesh frame, or frame.
  • the object may be three-dimensional data with a certain area restriction, such as ordinary video data, or it may be three-dimensional data with no area restriction, such as map information.
  • sparse point cloud data sparse mesh data
  • dense point cloud data dense point cloud data with various densities of points.
  • Sensor information is acquired in various ways, such as distance sensors such as LIDAR or range finders, stereo cameras, or a combination of multiple monocular cameras.
  • the three-dimensional data generation unit 1018 generates point cloud data based on the sensor information acquired by the sensor information acquisition unit 1017.
  • the three-dimensional data generation unit 1018 generates position information (geometry information) as point cloud data, and adds attribute information for the position information to the position information.
  • the three-dimensional data generating unit 1018 may process the point cloud data when generating position information or adding attribute information. For example, the three-dimensional data generating unit 1018 may reduce the amount of data by deleting point clouds with overlapping positions. The three-dimensional data generating unit 1018 may also convert the position information (such as by shifting the position, rotating, or normalizing), or process the point cloud data to generate mesh data. The three-dimensional data generating unit 1018 may also render the attribute information.
  • the three-dimensional data generation system 1011 is included in the three-dimensional data encoding system 1001, but it may be provided independently outside the three-dimensional data encoding system 1001.
  • the encoding unit 1013 generates encoded data by encoding the three-dimensional data based on a predefined encoding method.
  • the encoding methods include G-PCC (an encoding method using position information), V-PCC (an encoding method using a video codec), Draco (a mesh encoding method), and V-DMC (a mesh encoding method).
  • the encoding method is not limited to these methods, and may be, for example, a method of encoding a dynamic mesh, or another method that combines these methods.
  • the decoding unit 1024 decodes the three-dimensional data by decoding the encoded data based on a predefined encoding method.
  • the multiplexing unit 1014 generates multiplexed data by multiplexing the encoded data using an existing multiplexing method.
  • the generated multiplexed data is transmitted or stored.
  • the multiplexing unit 1014 multiplexes other media such as video, audio, subtitles, applications, files, or reference time information.
  • the multiplexing unit 1014 may further multiplex attribute information related to sensor information or point cloud data.
  • Multiplexing methods or file formats include ISOBMFF, MPEG-DASH, which is an ISOBMFF-based transmission method, MMT, MPEG-2 TS Systems, and RTP.
  • the demultiplexing unit 1023 extracts the encoded data of the three-dimensional data, other media, time information, etc. from the multiplexed data.
  • the input/output unit 1015 transmits the multiplexed data using a method suited to the transmission medium or storage medium, such as broadcasting or communication.
  • the input/output unit 1015 may communicate with other devices via the Internet, or may communicate with a storage unit such as a cloud server.
  • the communication protocol used may be http, ftp, TCP, or UDP.
  • a PULL type communication method or a PUSH type communication method may be used.
  • Either wired transmission or wireless transmission may be used.
  • Ethernet registered trademark
  • USB registered trademark
  • RS-232C HDMI
  • coaxial cable etc.
  • wireless transmission wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter waves, etc. are used.
  • Broadcasting methods that are used include, for example, DVB-T2, DVB-S2, DVB-C2, ATSC3.0, and ISDB-S3.
  • FIG. 8 is a diagram for explaining the process of encoding three-dimensional data.
  • FIG. 9 is a diagram for explaining the process of decoding three-dimensional data.
  • the data division unit 1041 divides the three-dimensional data into one or more three-dimensional spaces, and generates one or more divided three-dimensional data (i.e., one or more divided three-dimensional data).
  • the encoding unit 1042 may encode one or more divided three-dimensional data to generate encoded data.
  • the data division unit 1041 and the encoding unit 1042 may be included in a single encoding device as components of the single encoding device, or may be included in separate devices.
  • Each of the one or more three-dimensional spaces may be referred to as a tile or a space.
  • the three-dimensional space is, for example, a bounding box.
  • the three-dimensional data contained in each of the divided three-dimensional spaces may be referred to as a slice.
  • a slice is divided three-dimensional data, and includes any of a point cloud, a mesh, and a three-dimensional model having position information (Geometry) or attribute information (Attribute).
  • Each of the multiple slices is encoded by the encoding unit 1042 for each component, and is output as encoded data.
  • the encoded data includes the encoded multiple slices.
  • the decoding unit 1051 decodes one or more pieces of divided three-dimensional data (one or more slices) based on the encoded data.
  • the data combining unit 1052 combines the one or more pieces of divided three-dimensional data to restore (generate) three-dimensional data.
  • the decoding unit 1051 and the data combining unit 1052 may be included in one decoding device as components of the decoding device, or may be included in separate devices. The one or more pieces of divided three-dimensional data decoded by the decoding unit 1051 do not need to be combined.
  • the decoding unit 1051 may decode a portion of the one or more pieces of divided three-dimensional data based on a portion of the encoded data, and output the decoded portion of the divided three-dimensional data. In this case, the decoding device does not need to have the data combining unit 1052.
  • Figure 10 is a two-dimensional schematic diagram of tiles and slices of three-dimensional data.
  • the encoding device may encode using the dependency relationships between the multiple slices, or may encode without using the dependency relationships.
  • the encoding device can encode each slice independently, and the processing time can be reduced by encoding multiple slices using parallel processing.
  • the decoding device can decode each slice independently, and the processing time can be reduced by decoding multiple slices using parallel processing.
  • the decoding device can reduce the amount of processing by partial decoding, which decodes some of the multiple slices.
  • the encoding device When encoding using a dependency relationship, the encoding device signals an identifier indicating the dependency relationship and encodes the data in order starting with the dependent data. When multiple slices are encoded using a dependency relationship, the decoding device decodes the data in order starting with the dependent data based on the identifier.
  • the three-dimensional data may be divided into any number of divisions and any division method may be used.
  • the shape of an object may be determined and multiple three-dimensional points may be divided for each object.
  • the three-dimensional data may also be divided based on the number of three-dimensional points contained in a slice. In other words, an upper limit on the number of three-dimensional points contained in one slice may be set.
  • the three-dimensional data may also be divided based on whether or not it is contained in a three-dimensional space (tile information) using map information or location information. Multiple tile shapes may overlap.
  • the server accumulates multiple pieces of three-dimensional data for the same space.
  • the server accumulates, for example, point cloud data and mesh data for the same space.
  • the server is an example of an encoding device.
  • the terminal switches the three-dimensional data acquired from the server based on the purpose of the terminal, and presents the switched three-dimensional data.
  • the terminal may be, for example, a terminal that analyzes three-dimensional data. In this case, the terminal may switch the three-dimensional data to be presented based on the purpose, such as analysis or presentation, or user operation.
  • the terminal is an example of a decoding device.
  • the terminal may transmit a user's selection result to a server, receive (download) three-dimensional data based on the selection result from the server, and present the received three-dimensional data.
  • the three-dimensional data may or may not be encoded by the server.
  • the terminal may receive the encoded three-dimensional data from the server, decode the three-dimensional data based on the received encoded three-dimensional data, and present the decoded three-dimensional data.
  • FIG. 11 shows an example of a terminal presentation screen that can be switched in response to a user request.
  • the terminal presentation screen 1061 may be switched in response to a user request.
  • the terminal presentation screen includes a point cloud button 1061a and a mesh button 1061b as a UI for accepting user requests.
  • the point cloud button 1061a is a button for accepting a request to present an encoded point cloud (encoded point cloud data).
  • the mesh button 1061b is a button for accepting a request to present an encoded mesh (encoded mesh data).
  • the terminal accepts the request to present the encoded point cloud and notifies (transmits) the request as a result of the selection of the presented data to the server.
  • the terminal accepts the request to present the encoded mesh and notifies (transmits) the request as a result of the selection of the presented data to the server.
  • presentation may be expressed as display.
  • the server When the server receives a request as a selection result, it transmits three-dimensional data corresponding to the selection result to the terminal. If the received request is a request to present an encoded point cloud, the server transmits the encoded point cloud to the terminal. If the received request is a request to present an encoded mesh, the server transmits the encoded mesh to the terminal.
  • Meshes are characterized by the small processing load required for presentation, making them suitable for presentation.
  • point clouds are characterized by the high accuracy of the positional information of 3D models represented by 3D point clouds, making them suitable for measurement. For example, a user can select a mesh when wishing to observe a 3D model, or a point cloud when wishing to make measurements. By selecting the type of 3D data appropriate for the required application, the user can reduce presentation processing or use the data for accurate measurements.
  • FIG. 12 shows an example of a terminal presentation screen that is automatically switched in response to a user operation.
  • the terminal performs a process of enlarging the three-dimensional data by accepting a user's operation.
  • the terminal may present mesh data as in terminal presentation screen 1062, and at a magnification equal to or greater than the predetermined magnification, present point cloud data as in terminal presentation screen 1063.
  • the terminal may present mesh data at a magnification smaller than the predetermined magnification, and when the mesh data is enlarged to the predetermined magnification in response to a user's operation and presented, download point cloud data from a server that corresponds to a portion of the three-dimensional data that is focused on (presented by enlarging), and decode and present the downloaded point cloud data.
  • the type of three-dimensional data to be presented is switched in response to an operation to enlarge or reduce the three-dimensional data, but the type of three-dimensional data to be presented may be switched by other operations.
  • the terminal may switch to and present point cloud data corresponding to the part of the mesh data selected by the tap.
  • the terminal may present the point cloud data by superimposing it on the mesh data, or may switch the point cloud data from the mesh data and present it independently (i.e., without presenting the mesh data).
  • the terminal may predict in advance before presentation at a predetermined magnification rate, download point cloud data corresponding to the enlarged part, and decode and present the downloaded point cloud data.
  • the terminal may present the downloaded point cloud data as it is without spatial synchronization.
  • the terminal may present the point cloud data by aligning it with the mesh data (or the coordinate system of the mesh data) based on synchronization information regarding spatial synchronization.
  • the terminal may present the point cloud data without aligning it. Note that, although an example of spatially synchronizing point cloud data with mesh data has been described above, the terminal may also present mesh data in spatial synchronization with the point cloud data.
  • the terminal downloads only the necessary point cloud data, and then decrypts and presents the downloaded point cloud data. This is expected to reduce the communication volume between the server and the terminal, reduce the processing load on the terminal, and reduce the latency of presentation time.
  • mesh data has a small data size
  • point cloud data has a large data size.
  • the terminal can reduce the delay until initial presentation by first downloading the mesh data and presenting it initially.
  • the terminal can reduce the processing load required for observing and processing 3D models.
  • the terminal can improve visibility and make measurements easier.
  • the three-dimensional data to be presented may be switched based on the communication network bandwidth.
  • the terminal may present mesh data when the bandwidth is narrow and the network speed is slower than a predetermined speed, and present point cloud data when the network speed is equal to or faster than the predetermined speed.
  • the three-dimensional data to be presented may also be switched depending on the capabilities of the terminal. For example, the three-dimensional data to be presented may be switched based on the processing performance of the terminal or the usage rate of the terminal's CPU.
  • the terminal may switch from presenting point cloud data to presenting mesh data if the processing performance or CPU resources of the terminal are insufficient to process the point cloud data.
  • presenting mesh data the terminal may switch from presenting mesh data to presenting point cloud data if it is determined that the processing performance or CPU resources of the terminal are sufficient to process the mesh data.
  • the terminal may switch the type of 3D data presented, such as presenting the exterior of a building or map as mesh data, and presenting point cloud data when the data includes areas that require measurement, such as distortion, cracks, and warping of the building.
  • the terminal can also switch the type of 3D data it presents, for example, presenting mesh data when it is desired to present the external appearance of spaces such as stadiums, halls, and factories, including lighting brightness, color, and atmosphere, and presenting point cloud data when it is desired to measure studio shapes, equipment layouts, and passageway clearances, etc.
  • three-dimensional data with different resolutions may be displayed in a switched manner.
  • the terminal may switch between presenting multiple point cloud data with different resolutions, multiple mesh data with different resolutions, and the three-dimensional model. For example, the terminal may present low-resolution mesh data when presenting three-dimensional data that is far from the viewpoint, and switch to high-resolution mesh data when the data is closer. This can improve the accuracy of the three-dimensional data display.
  • the terminal may present mesh data until a specific movement or location is identified, and then switch to presenting point cloud data of the corresponding body part after the specific movement or location is identified, and use the point cloud data to measure the three-dimensional shape.
  • the terminal may switch between three-dimensional models with different resolutions in video games, etc.
  • the terminal may, for example, use high-resolution three-dimensional data to present three-dimensional data of important parts, and low-resolution three-dimensional data to present three-dimensional data of unimportant parts. This can improve overall processing performance.
  • whether each three-dimensional model is important or not is determined, for example, by whether it is related to the action of the video game (in a shooting game, the player, target, gun, etc. are important), or whether it is related to the player's choices (in a purchasing scene, product information is important, etc.). Note that whether each three-dimensional model is important or not may be set in advance for each video game.
  • the terminal may switch between terrain data with different resolutions. This allows more detailed terrain information to be displayed as needed.
  • the terminal when displaying thumbnails on the web, the terminal may present low-resolution three-dimensional data, and when measuring or presenting in an application using the three-dimensional data selected on the thumbnail, high-resolution three-dimensional data may be used for measurement or presentation.
  • the three-dimensional data when displaying on a two-dimensional display terminal, the three-dimensional data is presented as two-dimensional data when the three-dimensional object (subject) is viewed from a specific viewpoint in a specific direction.
  • the three-dimensional data may be divided into camera information indicating a specific viewpoint and a specific direction, and two-dimensional data when the three-dimensional object is viewed from the specific viewpoint in the specific direction.
  • the device When display is a priority, the device presents mesh data, which requires light processing, and when making measurements, replaces it with point cloud data suitable for the measurement, making it possible to realize applications that require light processing.
  • Figure 13 is a block diagram showing an example of the functional configuration of the server and the terminal.
  • the server 1070 includes a data generation unit 1071, a synchronization unit 1075, a point cloud coding unit 1076, a mesh coding unit 1077, a model coding unit 1078, a multiplexing unit 1079, and a data extraction unit 1080.
  • the data generation unit 1071 generates three-dimensional data based on at least one of two-dimensional data and three-dimensional data.
  • the generated three-dimensional data includes at least two of point cloud data, mesh data, and three-dimensional model data.
  • the data generation unit 1071 has a point cloud generation unit 1072, a mesh generation unit 1073, and a model generation unit 1074.
  • the data generation unit 1071 only needs to have at least two of the point cloud generation unit 1072, the mesh generation unit 1073, and the model generation unit 1074.
  • the point cloud generation unit 1072 generates point cloud data based on at least one of two-dimensional data and three-dimensional data.
  • the mesh generation unit 1073 generates mesh data based on at least one of two-dimensional data and three-dimensional data.
  • the model generation unit 1074 generates three-dimensional model data by machine learning based on at least one of the two-dimensional data and three-dimensional data.
  • the two-dimensional data input to the data generation unit 1071 may be a two-dimensional image acquired by a camera.
  • the three-dimensional data input to the data generation unit 1071 may be point cloud data acquired by a sensor such as LiDAR of a space such as a construction site, a factory, or an office.
  • the data generation unit 1071 may generate color information corresponding to each point included in the point cloud data of the three-dimensional data as attribute information using a two-dimensional image of the two-dimensional data.
  • the three-dimensional data generated by the data generation unit 1071 may be divided into any space.
  • the point cloud data, mesh data, and three-dimensional model data may each be divided into any space.
  • the synchronization unit 1075 synchronizes the spatial positions of the point cloud data, mesh data, and three-dimensional model data generated by the data generation unit 1071 or the time of each data (playback time, decode time, acquisition time, etc.).
  • the time of each data is the playback time, decode time, acquisition time, etc.
  • the synchronization unit 1075 may generate synchronization information for synchronization without synchronizing the point cloud data, mesh data, and three-dimensional model data.
  • the synchronization unit 1075 may perform a process of synchronizing at least two types of three-dimensional data out of the point cloud data, mesh data, and three-dimensional model data generated by the data generation unit 1071, or generate synchronization information (synchronization signal) for synchronization, and may not perform a process (synchronization process) for synchronizing three types of three-dimensional data.
  • the point cloud encoding unit 1076 encodes the point cloud data after the synchronization process is performed by the synchronization unit 1075. Note that the point cloud encoding unit 1076 does not have to encode the point cloud data.
  • the point cloud data may be encoded in advance, or may be encoded in response to a request from the terminal 1090.
  • the mesh encoding unit 1077 encodes the mesh data after the synchronization process is performed by the synchronization unit 1075.
  • the model encoding unit 1078 encodes the three-dimensional model data after the synchronization process is performed by the synchronization unit 1075.
  • the multiplexing unit 1079 multiplexes the encoded point cloud data (encoded point cloud), the encoded mesh data (encoded mesh data), the encoded three-dimensional model data, and the synchronization information using a predetermined format or a predetermined multiplexing method. Note that multiplexing by the multiplexing unit 1079 does not have to be performed. In this case, the server 1070 does not have to be equipped with the multiplexing unit 1079.
  • the data extraction unit 1080 extracts a portion of the multiplexed three-dimensional data in response to a request from the terminal 1090, and transmits the extracted portion of the three-dimensional data to the terminal 1090.
  • data extraction by the data extraction unit 1080 may not be performed.
  • the server 1070 may not include the data extraction unit 1080.
  • the server 1070 may transmit to the terminal 1090 the three-dimensional data multiplexed by the multiplexing unit 1079.
  • the server 1070 may transmit to the terminal 1090 the coded point cloud data (coded point cloud), the coded mesh data (coded mesh), the coded three-dimensional model data (coded three-dimensional model), and the synchronization information, or may transmit to the terminal 1090 a bit stream including the coded point cloud data (coded point cloud), the coded mesh data (coded mesh), the coded three-dimensional model data (coded three-dimensional model), and the synchronization information.
  • the terminal 1090 includes a control unit 1091, a decoding unit 1092, and a presentation unit 1093.
  • the control unit 1091 transmits a request for a portion of the three-dimensional data to be presented to the server 1070.
  • the control unit 1091 may also accept an operation by the user to identify the portion of the three-dimensional data.
  • the decoding unit 1092 decodes a portion of the three-dimensional data based on the bit stream (encoded data) obtained from the server 1070.
  • the presentation unit 1093 renders and presents a portion of the decoded three-dimensional data.
  • the data generation unit 1071 in FIG. 13 may be realized by the data generation unit 1110 shown in FIG. 14.
  • FIG. 14 is a block diagram showing another example of the data generation unit of the server.
  • the data generation unit 1110 includes a point cloud generation unit 1111, a mesh generation unit 1112, and a model generation unit 1113.
  • the point cloud generation unit 1111 has the same functions as the point cloud generation unit 1072.
  • the point cloud generation unit 1111 acquires point cloud data obtained from the point cloud sensor 1101 and a two-dimensional image obtained from the camera 1102, and generates point cloud data based on the point cloud data and the two-dimensional image.
  • the point cloud data generated by the point cloud generation unit 1111 includes position information of each point and attribute information corresponding to each point indicated by the position information, and includes attribute information (such as color information) extracted from the two-dimensional image.
  • the mesh generation unit 1112 generates mesh data based on the point cloud data generated by the point cloud generation unit 1111.
  • the model generation unit 1113 has the same functions as the model generation unit 1074.
  • the model generation unit 1113 acquires point cloud data obtained from the point cloud sensor 1101 and two-dimensional images obtained from the camera 1102, and generates three-dimensional model data by performing machine learning based on the point cloud data and the two-dimensional images.
  • the point cloud data, mesh data, and three-dimensional model data may be data generated independently of each other, as described in FIG. 13.
  • the mesh data may be generated from the point cloud data, as described in FIG. 14. Note that the point cloud data may be generated from the mesh data.
  • Meshes may be generated from point clouds and vice versa.
  • the point cloud data, mesh data, and three-dimensional model data may be generated by the server 1070, or may be generated by a sensor or a terminal 1090 equipped with a sensor.
  • the sensor is, for example, a point cloud sensor 1101 and a camera 1102.
  • Figures 15 and 16 are diagrams for explaining the process of synchronizing the coordinate systems.
  • the origin position (origin coordinates) of the local coordinate system handled by the system may differ from the actual coordinates due to differences in the system or coordinate system used.
  • the origin position is the same for the mesh data and the point cloud data, but if the mesh data and the point cloud data are generated in different systems, the origin positions may be different for the mesh data and the point cloud data.
  • the origin coordinates of the mesh data coordinate system and the origin coordinates of the point cloud data coordinate system are both, for example, (x1, y1, z1) in world coordinates, and the mesh data coordinate system and the point cloud data coordinate system are the same. Note that if these origin coordinates are not the same, they may be corrected to be the same.
  • FIG. 15 shows a case where the three-dimensional spatial region for dividing the mesh data and the three-dimensional spatial region for dividing the point cloud data are the same. Specifically, the number of three-dimensional spatial regions, the size of the three-dimensional spatial regions, and the positions of the three-dimensional spatial regions are the same between the multiple three-dimensional spatial regions in the mesh data coordinate system and the multiple three-dimensional spatial regions in the point cloud coordinate system.
  • the positions of the origin of the bounding box that represents the three-dimensional space (black triangle mark) and the maximum value point of the bounding box (black square mark) are the same in the coordinate system of the mesh data and the coordinate system of the point cloud data.
  • this bounding box is the same in the coordinate system of the mesh data and the coordinate system of the point cloud data.
  • the number of three-dimensional spatial regions, the size of the three-dimensional spatial regions, and the positions of the three-dimensional spatial regions do not have to be completely identical between the multiple three-dimensional spatial regions in the mesh data coordinate system and the multiple three-dimensional spatial regions in the point cloud coordinate system.
  • the three-dimensional spatial regions in the mesh data coordinate system may be divided into larger regions, and the three-dimensional spatial regions in the point cloud data coordinate system may be regions into which the three-dimensional spatial regions in the mesh data coordinate system are further divided.
  • the unit formed by combining multiple three-dimensional spatial regions in the point cloud data coordinate system is identical to the three-dimensional spatial region in the mesh data coordinate system.
  • Figure 17 is a diagram for explaining the relationship between three-dimensional space and encoded data.
  • the three-dimensional data includes, for example, point cloud data, mesh data, and three-dimensional models.
  • the encoding device encodes each of the three divided three-dimensional data, attaches a header, and creates a data unit.
  • the header signals (assigns) the identifier of the space to which the encoded data of the data unit belongs (Space_ID), and the identifier of the data unit (DataUnit_ID).
  • the data unit is further given a header that includes the data unit's identifier or length information of the data unit, and is then unitized to generate an encoding method unit.
  • Fig. 18 is a diagram showing an example of the syntax of the coding method unit.
  • Fig. 19 is a diagram showing an example of the syntax of the coding point group.
  • Fig. 20 is a diagram showing an example of the syntax of the coding mesh.
  • Fig. 21 is a diagram showing an example of the syntax of the coding 3D model.
  • unit_type indicates the type of data unit stored in the encoding method unit. This specifies the type of data unit stored in the encoding method unit.
  • Length indicates the length of the data unit.
  • data() indicates the body of the data unit.
  • unit_type when unit_type indicates 0, it indicates that the data unit is position information (geometry) of the encoded point group. When unit_type indicates 1, it indicates that the data unit is attribute information of the encoded point group. When unit_type indicates 2, it indicates that the data unit is metadata of the encoded point group.
  • unit_type when unit_type indicates 0, it indicates that the data unit is position information (geometry) of the encoded mesh. When unit_type indicates 1, it indicates that the data unit is attribute information of the encoded mesh. When unit_type indicates 2, it indicates that the data unit is metadata of the encoded mesh.
  • unit_type when unit_type indicates 0, it indicates that the data unit is element 1 of the encoded 3D model. When unit_type indicates 1, it indicates that the data unit is element 2 of the encoded 3D model. When unit_type indicates 2, it indicates that the data unit is metadata of the encoded 3D model.
  • syntax shown in Figures 19 to 21 is an example and is not limited to the above configuration. These syntaxes may use a partial configuration of the syntax, or a type (category) not described above may be used, or the order of the syntax components may be changed.
  • the syntax of the encoding method unit may have an encoding method unit configuration common to multiple encoding methods as shown in Figure 18, and may indicate the unit_type, length, and data() shown in Figures 19 to 21.
  • a header may be added to the encoding method unit to indicate the type of the encoding method unit.
  • the encoding unit types include, for example, point_cloud_codec_unit, which indicates point cloud data, mesh_codec_unit, which indicates mesh data, and model_codec_unit, which indicates three-dimensional model data. This makes it possible to handle multiple encoding methods in an integrated manner.
  • FIG. 22 shows an example of the syntax of three-dimensional data information.
  • the syntax when multiple encoding methods are stored in one format, the number of three-dimensional data included in the format (number_of_3Dformat) and the type of three-dimensional data (format_type) are indicated, and data of each format may be stored. This makes it possible to handle multiple encoding methods or three-dimensional data in an integrated manner, and also makes it possible to identify multiple encoding methods or three-dimensional data.
  • 3Ddata_info indicates the format structure information for storing multiple three-dimensional data.
  • number_of_3Dformat indicates the number of 3D formats used.
  • format_type indicates the type of format of the three-dimensional data to be stored. For example, the number of format_type and the format corresponding to that number may be defined as follows: When format_type indicates 0, it indicates that the format of the three-dimensional data to be stored is point cloud data (point cloud). When format_type indicates 1, it indicates that the format of the three-dimensional data to be stored is mesh data (mesh). When format_type indicates 2, it indicates that the format of the three-dimensional data to be stored is G-PCC data (g-pcc). When format_type indicates 3, it indicates that the format of the three-dimensional data to be stored is V-DMC data (v-dmc). When format_type indicates 4, it indicates that the format of the three-dimensional data to be stored is three-dimensional model data (3Dmodel).
  • FIG. 23 is a diagram for explaining the data structure of an encoded point group.
  • FIG. 24 is a diagram for explaining the data structure of an encoded mesh.
  • FIG. 25 is a diagram for explaining the data structure of an encoded three-dimensional model.
  • the encoding device divides each of the multiple types of three-dimensional data into multiple pieces of three-dimensional data for each of the multiple spatial regions, encodes each of the multiple pieces of divided three-dimensional data (i.e., the multiple divided three-dimensional data), and generates encoded data.
  • Each encoded data is given a header and contains at least one of the data_unit_id and space_id.
  • data_unit_id is an identifier that identifies a data unit within the encoded data, and is unique within the encoded data. Furthermore, space_id indicates identification information for a spatial region. If data_unit_id or space_id is common to multiple pieces of three-dimensional data, the same value is indicated in the multiple pieces of three-dimensional data.
  • the data, headers, and other data may be included in a bitstream structure such as a data unit or encoding method, or may be stored in a specified file format such as each ISOBMFF box.
  • Fig. 26 is a diagram showing an example of multiple three-dimensional spaces in two dimensions.
  • Fig. 27 is a diagram showing an example of a bounding box.
  • Fig. 28 is a diagram showing an example of the syntax of three-dimensional space information.
  • 3Dspace_info is information that indicates the divided three-dimensional space. 3Dspace_info can be used for partial decoding.
  • number_of_space indicates the number of divided three-dimensional spaces.
  • space_id indicates the identifier of the divided three-dimensional space.
  • the three-dimensional spatial information includes bounding box information for defining the bounding box shown in FIG. 27.
  • Bounding box information includes bounding_box_xyz and bounding_box_whd.
  • bounding_box_xyz indicates the coordinates of the reference point of the bounding box. In the example of Figure 27, it is expressed as x, y, and z coordinate values (x0, y0, z0).
  • bounding_box_whd indicates the size of the bounding box. In the example of Figure 27, it is expressed as width w, height h, and depth d (w0, h0, d0).
  • the three-dimensional spatial information may also include an identifier of a data unit for each piece of encoded data. However, the three-dimensional spatial information does not have to include the identifier. In other words, the identifier does not have to be signaled.
  • pointcloud_id indicates the identifier of the data unit of the encoded point cloud for the space corresponding to space_id.
  • mesh_id indicates the identifier of the data unit of the spatial coding mesh corresponding to space_id.
  • model_id indicates the identifier of a data unit of the encoded 3D model of the space corresponding to space_id.
  • the identifier of the data unit for each piece of encoded data may be stored in the information indicating each space of the three-dimensional spatial information. This allows the three-dimensional spatial information to be associated with the divided three-dimensional encoded data.
  • the three-dimensional spatial information may be associated with an identifier for the data unit for each encoded data by the space_id. In this case, the identifier for the data unit for each encoded data does not need to be stored.
  • the division method, the origin of each divided space, and the bounding box size may be the same for the mesh data and the point cloud data, so that the three-dimensional spatial information of the point cloud data and the three-dimensional spatial information of the mesh data can be made common. Also, the same three-dimensional spatial information may be used for the point cloud data and the mesh data. In this way, the three-dimensional spatial information may be common or the same three-dimensional spatial information may be used between multiple different types of three-dimensional data. By commonizing the three-dimensional spatial information, it becomes easy to switch between different types of three-dimensional data (for example, switching the presentation or switching the transmission).
  • three-dimensional spatial information does not need to be provided for each piece of three-dimensional data, and one piece of three-dimensional spatial information can be used for each piece of three-dimensional data, so that the amount of data of the three-dimensional spatial information can be reduced.
  • the three-dimensional spatial information of the three-dimensional model may be synchronized with other types of three-dimensional data, or may be shared with the three-dimensional spatial information of other types of three-dimensional data.
  • Fig. 29 is a flowchart showing an example of partial decoding.
  • Fig. 30 is a diagram showing an example of a three-dimensional spatial region that is the subject of partial decoding.
  • Fig. 31 is a diagram showing an example of the data structure of a group of encoded points to be partially decoded.
  • Fig. 32 is a diagram showing an example of the data structure of an encoded mesh to be partially decoded.
  • Fig. 33 is a diagram showing an example of the data structure of an encoded three-dimensional model to be partially decoded.
  • the decoding device first determines the three-dimensional spatial region to be subjected to partial decoding (S1001).
  • the decoding device uses the three-dimensional space information (3Dspace_info) to identify an area that overlaps with the target three-dimensional space area from the bounding box information of multiple three-dimensional space areas, and obtains the space_id corresponding to the identified area (S1002).
  • 3Dspace_info three-dimensional space information
  • the decoding device obtains and decodes the data unit having the obtained space_id from the encoded data (S1003). As a result, the decoding device performs partial decoding, which decodes a portion of the three-dimensional data. In partial decoding, the decoding device decodes only a portion of the three-dimensional data, without decoding all of the three-dimensional data.
  • the space_id of the three-dimensional space to be obtained is determined to be #2 from the three-dimensional space information.
  • the decoding device may also obtain a data unit ID instead of a space_id from the three-dimensional spatial information, and obtain and partially decode a data unit having the obtained data unit ID.
  • Figure 34 is a diagram showing an example of a coordinate system of different types of three-dimensional data where spatial synchronization is not achieved.
  • Figure 35 is a diagram showing an example of the syntax of three-dimensional data information.
  • Figure 36 is a diagram showing an example of the syntax of three-dimensional space information.
  • the encoding device may align these origin coordinates by calculating and correcting the relative coordinate values (x1-x2, y1-y2, z1-z2).
  • the encoding device may notify (transmit) the calculated relative coordinate values to the decoding device (terminal) as synchronization information.
  • the synchronization information may be indicated by the relative position of the point cloud data position (origin) relative to the mesh data position (origin), or may be indicated by the relative position of the mesh data position relative to the point cloud data position.
  • the synchronization information may be indicated by the relative position of the positions (origins) of different types of three-dimensional data. Note that when there are three or more types of three-dimensional data, the relative position is calculated based on any one type of three-dimensional data.
  • the three-dimensional data information may include space_sync_information, which indicates synchronization information, as shown in FIG. 35.
  • the space_sync_information indicates synchronization information for three-dimensional space, and indicates, for example, the amount of deviation in three-dimensional space (the difference between the reference coordinates and the current coordinates, i.e., a relative value).
  • synchronization information (space_sync_information) may be stored for each of the multiple format information.
  • the data format that is the basis for synchronization may be placed at the beginning of the loop, and synchronization information (relative position information) from the beginning format may be stored from the second loop onwards.
  • the three-dimensional space information may also include space_sync_information, which indicates synchronization information, as shown in FIG. 36. If the spatial position is shifted for each three-dimensional space, the synchronization information may be stored in a loop for each three-dimensional space.
  • FIG. 37 shows an example of the functional configuration of a terminal.
  • the terminal 1120 includes a decoding unit 1121 and a synchronous presentation unit 1122.
  • the decoding unit 1121 decodes the synchronization information based on the three-dimensional data information or the three-dimensional space information.
  • the synchronization presentation unit 1122 aligns and presents the three-dimensional data based on the synchronization information.
  • Figure 38 is a flowchart showing an example of spatial synchronization processing.
  • the system including the encoding device (server) and the decoding device (terminal) determines whether spatial synchronization is required between the point cloud data and the mesh data (S1011).
  • step S1012 If the system determines that spatial synchronization is necessary (Yes in S1011), it executes step S1012; if the system determines that spatial synchronization is not necessary (No in S1011), it executes step S1013.
  • step S1012 the system determines whether or not spatial synchronization has been achieved between the point cloud data and the mesh data (S1012).
  • step S1014 If the system determines that spatial synchronization has been achieved (Yes in S1012), it executes step S1014, and if it determines that spatial synchronization has not been achieved (No in S1012), it executes step S1015.
  • step S1013 the system presents the point cloud data and mesh data without spatial synchronization (S1013).
  • step S1014 the system presents the point cloud data and mesh data in spatial synchronization based on the synchronization information (S1014).
  • step S1015 the system presents the point cloud data and mesh data as is (S1015).
  • steps S1011 to S1012 may be performed by an encoding device or a decoding device.
  • the steps S1013 to S1015 may be performed by a decoding device.
  • Whether or not spatial synchronization is required may be switched depending on the application or use. For example, when using three-dimensional data for measurement purposes, accurate positioning is required, so it may be determined that spatial synchronization is required.
  • a level of alignment may be specified, in which case the system (encoding device or decoding device) may change the accuracy of synchronization based on the level of alignment.
  • time synchronization may be performed to synchronize the presentation time, the decoding time, or the acquisition time. At least one of spatial synchronization and time synchronization may be performed.
  • parameters such as the color matrix, color bit rate, and HDR may be set to the same.
  • attribute information may be synchronized between multiple 3D data.
  • switching of three-dimensional data has been described using different types of three-dimensional data such as point cloud data and mesh data as an example, but the multiple three-dimensional data to be switched is not limited to different types of three-dimensional data.
  • the multiple three-dimensional data may be, for example, three-dimensional data with different resolutions, multiple point cloud data with different numbers of points, or multiple mesh data with different numbers of points or faces.
  • the multiple three-dimensional data to be switched may be three or more pieces of three-dimensional data.
  • the multiple pieces of three-dimensional data to be switched may be multiple pieces of point cloud data acquired at different times.
  • the multiple pieces of three-dimensional data to be switched may include point cloud data before construction, point cloud data after construction, point cloud data 10 years later, modeled mesh data, etc., at a construction site.
  • three-dimensional model data such as NeRF may be used.
  • Three-dimensional model data is a model for presenting three-dimensional data, and may or may not be encoded. Multiple three-dimensional model data for the same space may be switched, or multiple three-dimensional model data may be switched.
  • the spatial synchronization method described above can be used.
  • by adding an identifier for three-dimensional model data to a data format that handles point cloud data and mesh data in an integrated manner it becomes possible to handle three-dimensional data and three-dimensional model data in an integrated manner.
  • the spatial information oil, bounding box, division method, etc.
  • the three-dimensional data to be processed may be switched in the following order: mesh data lower than the first resolution, mesh data higher than the first resolution, point cloud data lower than the second resolution, and point cloud data higher than the second resolution.
  • the server may store data in a state in which multiple three-dimensional models have been encoded in advance, and extract the three-dimensional data corresponding to the request based on a request from the terminal.
  • the server may encode the three-dimensional data corresponding to the request at the timing when the request is made from the terminal.
  • the terminal may request the three-dimensional data to be processed in advance, and download the requested three-dimensional data from the server. This can reduce the time it takes for the terminal to present the data.
  • the terminal can present divided data corresponding to the avatar's torso as a mesh and divided data corresponding to the face as a point cloud, enabling a more accurate presentation.
  • point cloud data, mesh data, and three-dimensional model data have been given as examples of three-dimensional data representing a three-dimensional object, but this is not limiting.
  • a three-dimensional object may be represented by multiple sets, each of which includes line-of-sight information indicating a line of sight and a two-dimensional image of the three-dimensional object as viewed from that line of sight.
  • data including the multiple sets may be treated as a type of three-dimensional data.
  • the three-dimensional data may be data in another format, such as Gaussian splatting data.
  • FIG. 39 is a diagram showing an example of the configuration of a decoding device.
  • FIG. 40 is a flowchart showing an example of a decoding method using the decoding device.
  • the decoding device 1130 includes a circuit 1131 and a memory 1132 connected to the circuit 1131.
  • Circuit 1131 performs the following operations:
  • the circuit 1131 acquires encoded data including first data representing a three-dimensional object, encoding method information (format) indicating one of the encoding methods including the second data representing the three-dimensional object, and identification information indicating the three-dimensional space including the three-dimensional object (S1021).
  • the circuit 1131 decodes the first data and the second data corresponding to the three-dimensional space based on the encoded data (S1022).
  • the circuit 1131 renders the first data to generate first presentation data for presentation (S1023).
  • the circuit 1131 renders the second data to generate second presentation data for presentation (S1024).
  • the circuit 1131 switches from the generated second presentation data to the first presentation data and presents it (S1025).
  • the first presentation data and the second presentation data are, for example, two-dimensional data or three-dimensional data generated by the rendering reconstruction unit 1034.
  • the first presentation data and the second presentation data are generated based on the first data and the second data corresponding to the three-dimensional space, and the second presentation data is switched to the first presentation data for presentation, so that the presentation can be performed without causing any spatial misalignment when switching between the two data representing the three-dimensional object. Therefore, the first presentation data and the second presentation data can be presented appropriately.
  • the first data is point cloud data representing the three-dimensional object.
  • the second presentation data is switched to the first presentation data based on the point cloud data, so that the two pieces of data representing the three-dimensional object can be switched and presented without causing any spatial misalignment.
  • the second data is mesh data representing the three-dimensional object.
  • the second presentation data based on mesh data is switched to the first presentation data, so that the two pieces of data representing the three-dimensional object can be switched and presented without causing any spatial misalignment.
  • the second data is three-dimensional model data representing the three-dimensional object.
  • the three-dimensional model data represents a machine learning model obtained by machine learning a gaze and a plurality of sets of two-dimensional images.
  • the second presentation data based on the three-dimensional model data is switched to the first presentation data, so that the two pieces of data representing the three-dimensional object can be switched and presented without causing any spatial misalignment.
  • the second data is a two-dimensional image of the three-dimensional object when viewed from a specific viewing direction.
  • the second presentation data based on a two-dimensional image is switched to the first presentation data, so that the two pieces of data representing a three-dimensional object can be switched and presented without causing any spatial misalignment.
  • the circuit further receives a presentation data switching request from the user.
  • the circuit switches from the second presentation data to the first presentation data in response to the switching request.
  • the circuit further receives an operation from a user to change the mode of presentation.
  • the circuit changes the mode of presentation in response to the operation, and switches from the second presentation data to the first presentation data in response to the change.
  • the circuit acquires the encoded data from an encoding device via a communication network.
  • the circuit switches from the second presentation data to the first presentation data in accordance with the bandwidth of the communication network.
  • switching can be performed according to the bandwidth of the communication network; for example, when the bandwidth of the communication network changes from less than a specified bandwidth to equal to or greater than the specified bandwidth, the second presentation data can be switched to the first presentation data for presentation.
  • the circuit switches from the second presentation data to the first presentation data in the presentation depending on the available capabilities of the circuit.
  • switching can be performed according to the capacity of the available circuit. For example, when the capacity of the available circuit changes from less than a predetermined capacity to equal to or greater than the predetermined capacity, the second presentation data can be switched to the first presentation data for presentation.
  • the encoded data includes synchronization information for synchronizing a coordinate system of the first data and a coordinate system of the second data.
  • the circuit presents the first presentation data and the second presentation data based on the synchronization information.
  • the first presentation data and the second presentation data can be switched to the first presentation data after the coordinate systems of the data are aligned. This makes it possible to switch and present two pieces of data representing a three-dimensional object in a way that minimizes spatial misalignment.
  • the circuit further determines whether or not to synchronize the coordinate system of the first data with the coordinate system of the second data. If the circuit determines that the coordinate system of the first data is to be synchronized with the coordinate system of the second data, the circuit presents the first presentation data and the second presentation data based on the synchronization information during the presentation.
  • synchronization processing can be performed when necessary, and can be skipped when it is not necessary. This has the potential to reduce the processing load.
  • the first data and the second data each have a common configuration.
  • the amount of encoded data can be reduced, and communication capacity can be reduced.
  • the encoded data includes spatial information for identifying the three-dimensional space in which the three-dimensional object is included.
  • the circuit further obtains a target area indicating a partial area of the three-dimensional space.
  • the circuit identifies first duplicate data that is a part of the first data and that overlaps with the target area based on the spatial information. In the decoding, the circuit decodes the identified first duplicate data.
  • the amount of data to be acquired can be reduced by acquiring only the first duplicate data. This makes it possible to reduce communication capacity. Also, for example, it is possible to decrypt only the first duplicate data. This makes it possible to reduce processing load.
  • the circuit 1131 may also operate according to the decoding method shown in the flowchart of FIG. 41.
  • FIG. 41 is a flowchart showing another example of a decoding method performed by a decoding device.
  • the circuit 1131 decodes encoding method information that represents the three-dimensional object and indicates a second encoding method that is different from the first encoding method of the first data (S1031).
  • the circuit 1131 decodes second data in the second encoding method indicated by the encoding method information (S1032).
  • the second data is used to generate second presentation data for presentation.
  • the second data of the second encoding method indicated by the encoding method information obtained by decoding is decoded, so that the second data can be obtained for generating appropriate second presentation data for presentation.
  • FIG. 42 is a diagram showing an example of the configuration of an encoding device.
  • FIG. 43 is a flowchart showing an example of an encoding method performed by the encoding device.
  • the encoding device 1140 includes a circuit 1141 and a memory 1142 connected to the circuit 1141.
  • Circuit 1141 performs the following operations:
  • the circuit 1141 generates encoding method information that represents the three-dimensional object and indicates a second encoding method different from the first encoding method of the first data (S1041).
  • the circuit 1141 generates second data in the second encoding method indicated by the encoding method information (S1042).
  • the circuit 1141 generates a bitstream that includes the encoding method information and the second data (S1043).
  • the second data is used to generate second presentation data for presentation.
  • bitstream including the encoding method information and the second data is generated, and a decoding device that acquires the bitstream can obtain the second data for generating second presentation data for appropriate presentation.
  • Embodiment 2 In this embodiment, a method for switching three-dimensional data, three-dimensional data formats, and encoding methods depending on the use case of an application that handles three-dimensional data including, for example, point cloud data, mesh data, and three-dimensional model data, is described.
  • the decoding device may decode the desired type of three-dimensional data from the encoded data.
  • the three-dimensional data of the desired resolution may be extracted from the encoded data and decoded.
  • FIG. 44 is a diagram explaining partial decoding, which decodes a portion of three-dimensional data, in embodiment 2.
  • the control unit 1202 specifies a portion of the three-dimensional data to be decoded.
  • the partial decoding unit 1201 decodes a portion of the three-dimensional data specified by the control unit 1202. For example, the partial decoding unit 1201 acquires three-dimensional data from an encoding device and decodes a portion of the acquired three-dimensional data.
  • FIG. 45 is a diagram illustrating an example of extracting and decoding a portion of three-dimensional data in embodiment 2.
  • the control unit 1212 specifies the three-dimensional data to be extracted from the three-dimensional data.
  • the data extraction unit 1211 extracts a portion of the three-dimensional data specified by the control unit 1212. For example, the data extraction unit 1211 extracts a portion of the three-dimensional data from the three-dimensional data, and transmits the extracted portion of the three-dimensional data to, for example, a decoding device.
  • the encoded data may have a hierarchical structure. Also, hierarchical data indicating the hierarchical structure may be output.
  • switching may be performed using two or more three-dimensional data of point cloud data, mesh data, and three-dimensional model data.
  • FIG. 46 is a block diagram showing an example of the functional configuration of the server and the terminal in the second embodiment.
  • the server 1220 is, for example, an encoding system that encodes three-dimensional data
  • the terminal 1230 is a decoding system that decodes and generates the three-dimensional data.
  • the server 1220 includes a point cloud generation unit 1221, a mesh generation unit 1222, a point cloud encoding unit 1223, and a multiplexing unit 1224.
  • the point cloud generator 1221 generates point cloud data based on at least one of two-dimensional data and three-dimensional data.
  • the mesh generation unit 1222 generates mesh data based on the point cloud data generated by the point cloud generation unit 1221.
  • the point cloud encoding unit 1223 encodes three-dimensional data including the point cloud data generated by the point cloud generation unit 1221 and the mesh data generated by the mesh generation unit 1222.
  • the multiplexing unit 1224 multiplexes the encoded three-dimensional data using a predetermined format or a predetermined multiplexing method. Note that multiplexing by the multiplexing unit 1224 does not have to be performed. In this case, the server 1220 does not have to be equipped with the multiplexing unit 1224.
  • the multiplexed encoded data is transmitted (sent) to the terminal 1230.
  • the terminal 1230 includes a control unit (application execution unit) 1231, a decryption unit 1232, and a presentation unit 1233.
  • control unit application execution unit
  • decryption unit 1232
  • presentation unit 1233 presentation unit
  • the control unit 1231 specifies a portion of the three-dimensional data to be decoded by the decoding unit 1232.
  • the specified portion of the three-dimensional data is, for example, the type (format) of the three-dimensional data.
  • the control unit 1231 specifies whether to decode point cloud data or mesh data.
  • the control unit 1231 may specify the resolution of the three-dimensional data.
  • the decoding unit 1232 decodes a portion of the three-dimensional data specified by the control unit 1231 from the encoded data received from the server 1220. If the control unit 1231 specifies that the decoding of point cloud data should be performed, the decoding unit 1232 decodes the point cloud data, and if the control unit 1231 specifies that the decoding of mesh data should be performed, the decoding unit 1232 decodes the mesh data. Alternatively, the decoding unit 1232 decodes three-dimensional data at a specified resolution.
  • the presentation unit 1233 presents a portion of the three-dimensional data decoded by the decoding unit 1232. If point cloud data has been decoded by the decoding unit 1232, the presentation unit 1233 presents the point cloud data, and if mesh data has been decoded by the decoding unit 1232, the presentation unit 1233 presents the mesh data. Alternatively, the decoding unit 1232 presents three-dimensional data at a specified resolution.
  • the point cloud data, mesh data, and three-dimensional model data are data with different resolutions, different display appearances, and different granularity.
  • Three-dimensional data that includes at least two of the point cloud data, mesh data, and three-dimensional model data can also be said to be hierarchical data.
  • FIG. 47 is a flowchart showing an example of processing by a terminal in embodiment 2.
  • the control unit 1231 determines the format of the three-dimensional data to be used based on a predetermined process (S1201).
  • the control unit 1231 instructs (specifies) the format of the three-dimensional data to be output (presented) to the decoding unit 1232 (S1202).
  • the decoding unit 1232 decodes the three-dimensional data in the specified format using a predetermined method and outputs it (S1203).
  • the presentation unit 1233 uses the three-dimensional data in the format specified by a predetermined method in an application (S1204). For example, the presentation unit presents the three-dimensional data.
  • Trisoap method which is an example of a method for encoding position information using an encoding device.
  • the Trithorpe method is a method for encoding the position information of point cloud data in the G-PCC encoding method, and is a lossy compression method.
  • the original point cloud to be processed is replaced with a set of triangles, and the point cloud is approximated on the plane.
  • the original point cloud is replaced with vertex information within a node, and a set of triangles is generated by connecting the vertices.
  • the vertex information used to generate the triangles is stored in the bitstream and sent to the decoding device.
  • Figure 48 is a diagram showing an example of an original point cloud in embodiment 2.
  • the point cloud 1242 of the target object is contained in the target space 1241 and includes multiple points 1243.
  • the encoding device divides the original point cloud into an octree to a predetermined depth.
  • the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) is generated indicating whether or not a point cloud is included in each node.
  • the node that includes a point cloud is further divided into eight nodes, and 8-bit information is generated indicating whether or not a point cloud is included in each of the eight nodes. This process is repeated up to a predetermined hierarchy.
  • octree division is repeated until, for example, the number of points contained in the node is reduced to one or a threshold value or less.
  • octree division is performed up to an intermediate level, but not to the levels below that level. Such an octree up to an intermediate level is called a pruned octree.
  • FIG. 49 is a diagram showing an example of a pruned octree in embodiment 2. As shown in FIG. 49, a point cloud 1242 is divided into multiple leaf nodes 1244 (nodes at the lowest level) of the pruned octree.
  • the encoding device performs the following process on each of the leaf nodes 1244 of the pruned octree.
  • the leaf node is also referred to simply as the node.
  • the encoding device generates a vertex on the edge as a representative point of the point group close to the edge of the node. This vertex is called an edge vertex. For example, an edge vertex is generated for each of multiple edges (e.g., four parallel sides).
  • FIG. 50 is an example of a two-dimensional display of a leaf node 1244 in the second embodiment, and is a diagram showing, for example, an xy plane as viewed from the z direction shown in FIG. 50. As shown in FIG. 50, an edge vertex 1252 is generated on the edge based on the adjacent points of the edge among the multiple points 1251 in the leaf node 1244.
  • edge vertex 1252 is generated at the weighted average position of points (points included in range 1253 in FIG. 50) whose distance from the edge is within 1.
  • the unit of distance is, for example, the resolution of the point cloud, but is not limited to this. In this example, this distance (threshold) is 1, but it may be a value other than 1, and may be variable.
  • the encoding device generates a vertex inside the node based on the group of points that exist in the normal direction of the plane that contains the edge vertices. This vertex is called the centroid vertex.
  • FIGS. 51 and 52 are diagrams for explaining a method of generating a centroid vertex in the second embodiment.
  • the encoding device selects, for example, four points as representative points from the group of edge vertices. In the example shown in FIG. 51, edge vertices v1 to v4 are selected.
  • the encoding device calculates an approximation plane 1261 that passes through the four points.
  • the encoding device calculates a normal n of the approximation plane 1261 and an average coordinate M of the four points.
  • the encoding device generates a centroid vertex C at the weighted average coordinate of one or more points (for example, points included in the range 1262 shown in FIG. 52) that are close to a half line extending from the average coordinate M in the direction of the normal n.
  • the encoding device entropy-encodes the vertex information, which is information on the edge vertices and centroid vertices, and stores the encoded vertex information in a Geometry Data Unit (GDU) included in the bitstream.
  • GDU Geometry Data Unit
  • the GDU includes information indicating the pruned octree in addition to the vertex information.
  • FIG. 53 is a diagram showing an example of vertex information in embodiment 2.
  • the point group 1242 is converted into vertex information 1263, as shown in FIG. 53.
  • the decoding device decodes the GDU from the bitstream and obtains vertex information.
  • the decoding device connects the vertices to generate a TriSoup-Surface, which is a group of triangles.
  • FIG. 54 is a diagram showing an example of a Trithorpe surface in the second embodiment.
  • four edge vertices v1 to v4 and a centroid vertex C are generated based on the vertex information.
  • a triangle 1271 (Trithorpe surface) is generated whose vertices are the centroid vertex C and the two edge vertices. For example, each pair of two edge vertices on two adjacent edges is selected, and a triangle 1271 is generated whose vertices are the selected pair and the centroid vertex.
  • FIG. 55 is a diagram for explaining the point cloud restoration process in the second embodiment. The above process is performed for each leaf node, and a three-dimensional model is generated in which the target object is represented by multiple triangles 1271, as shown in FIG. 55.
  • the decoding device then generates points 1272 (face vertices) at regular intervals on the surface of triangle 1271 to restore the positional information of point cloud 1273.
  • TriSoap method in addition to outputting point cloud data, we will explain a decoding unit that can decode and output point cloud data or mesh data of a desired resolution depending on the use case that allows the output of point cloud data or mesh data of different resolutions.
  • G-PCC is an example of a point cloud data compression method, as an example, but it can also be applied to the decoding of compressed mesh data such as V-DMC and Draco.
  • FIG. 56 shows an example of the configuration of a decoding unit in embodiment 2.
  • the decoding unit 1232 includes a mesh vertex generation unit 1281, a high resolution additional information decoding unit 1282, an additional vertex generation/correction unit 1283, an additional vertex generation/correction unit 1284, a first connection information generation unit 1285, an additional information decoding unit for point cloud generation 1286, a point generation unit 1287, a second connection information generation unit 1288, a third connection information generation unit 1289, and a point generation unit 1290.
  • the mesh vertex generation unit 1281 decodes the bit stream and obtains information about the vertices (edge vertices) that make up the face.
  • the high-resolution additional information decoding unit 1282 decodes additional information from the bit stream to restore additional vertices for increasing the resolution of a face.
  • the vertices that make up a face are the edge vertices of each node, and the additional vertices are the center of gravity (centroid vertices) of each node and points located on the face of the node (face vertices).
  • the additional vertex generation/correction unit 1283 restores (generates) additional vertices that make up the surface. For example, the additional vertex generation/correction unit 1283 restores (generates) points within a node, such as the center of gravity (centroid vertex) for each node, based on edge vertices and extension information for restoring the center of gravity. In this way, the additional vertex generation/correction unit 1283 increases the resolution of the surface.
  • the additional vertex generation/correction unit 1284 further restores (generates) additional vertices that make up the face based on the edge vertices, the center of gravity, and the extension information for restoring the face vertices.
  • the additional vertex generation/correction unit 1284 restores (generates), for example, points (face vertices) located on the face of the node.
  • the additional vertex generation/correction units 1283 and 1284 may correct the restored points using a specified method.
  • the first connection information generating unit 1285 uses a predetermined method to connect pairs of restoration points among the multiple restoration points to form a surface. In this way, the first connection information generating unit 1285 generates first connection information that indicates the connection relationship of the restoration points that form the surface.
  • the additional information decoding unit for point cloud generation 1286 decodes the extended information for restoring the point cloud from the bit stream.
  • the point generation unit 1287 generates and outputs points using a predetermined method based on the surface constructed by the first connection information generation unit 1285 and the extended information decoded by the point cloud generation additional information decoding unit 1286. This outputs a point cloud.
  • the edge vertices generated by the mesh vertex generation unit 1281 are points that make up a low-resolution surface.
  • the points within the nodes generated by the additional vertex generation/correction unit 1283 are points that make up a medium-resolution surface.
  • the face vertices generated by the additional vertex generation/correction unit 1284 are points that make up a high-resolution surface.
  • the decoding unit 1232 may output high-resolution surface information (points constituting a surface and first connection information) generated by processing by the additional vertex generation/correction unit 1284 and processing by the first connection information generation unit 1285.
  • the second connection information generation unit 1288 connects restoration points in a predetermined manner based on the points constituting the medium resolution surface output by the additional vertex generation/correction unit 1283, and generates second connection information indicating the connection relationship of the restoration points.
  • the decoding unit 1232 may output the medium resolution surface information (the points constituting the surface and the second connection information) generated by the processing by the additional vertex generation/correction unit 1283 and the processing by the second connection information generation unit 1288.
  • the third connection information generation unit 1289 connects the restoration points in a predetermined manner based on the points constituting the low-resolution surface output by the mesh vertex generation unit 1281, and generates third connection information indicating the connection relationship of the restoration points.
  • the decoding unit 1232 may output the low-resolution surface information (the points constituting the surface and the third connection information) generated by the processing by the mesh vertex generation unit 1281 and the processing by the third connection information generation unit 1289.
  • the fourth connection information generation unit 1291 performs a process of further removing some points from the points that constitute the low-resolution surface output by the mesh vertex generation unit 1281, thereby connecting the restoration points in a predetermined manner based on the points that constitute a surface with an even lower resolution than the low-resolution surface, and generating fourth connection information that indicates the connection relationship of the restoration points.
  • the decoding unit 1232 may output the further lower resolution surface information (parent node mesh) generated by the process by the mesh vertex generation unit 1281 and the process by the fourth connection information generation unit 1291.
  • the point generation unit 1290 generates and outputs points using a predetermined method based on the low-resolution surfaces output by the mesh vertex generation unit 1281. This outputs a point cloud.
  • the point cloud output by the point generation unit 1290 is a low-resolution point cloud with a lower resolution than the point cloud output by the point generation unit 1287.
  • the decoding unit 1232 may have a point generation unit that restores points for surfaces with different resolutions, in addition to the point generation unit 1287 and the point generation unit 1290. In this way, the decoding unit 1232 may output a point group with different resolutions.
  • the decoding unit 1232 may increase the number of points that make up the surface to be restored during decoding and generate surface information that makes up a high-resolution surface, or may generate low-resolution surface information that connects the surfaces using the fewer points obtained by decoding.
  • the decoding unit 1232 may output point cloud data at a number of different resolutions, or mesh data at a number of different resolutions. Then, the point cloud data or mesh data at the desired resolution may be selected and used in the application. In addition, the control unit 1231 may specify the resolution or type of three-dimensional data (point cloud data, mesh data, or three-dimensional model data), and the decoding unit 1232 may decode three-dimensional data of the specified type. At this time, the process of decoding or reproducing data other than the specified data may be skipped. This makes it possible to reduce the amount of processing.
  • multiple pieces of three-dimensional data may be superimposed and used by an application, or the decoding unit 1232 may output data in which multiple pieces of three-dimensional data are superimposed.
  • the multiple pieces of three-dimensional data may be three-dimensional data of different types, or may be three-dimensional data with different resolutions.
  • FIG. 57 shows an example of metadata (SEI) syntax in an outputtable format in embodiment 2.
  • the encoding unit transmits metadata (SEI) indicating the format included in the encoded data, i.e., the format that the decoding unit can output, in a bitstream.
  • SEI metadata
  • the decoding unit can also learn the format that the decoding unit can output by analyzing the metadata.
  • the decoding unit 1232 may also output metadata indicating the format that can be output to the control unit (application execution unit) 1231.
  • the metadata may indicate the format that can be output for each divided space.
  • num_output_format indicates the number of formats that can be output.
  • format_type indicates the types of formats that can be output.
  • Metadata may not indicate the default output, but only the optional output formats.
  • the control unit (application execution unit) 1231 refers to the metadata, checks the formats that can be output, determines the format to be output from among the formats that can be output, and instructs the decoding device on the determined format.
  • the decoding device is capable of outputting multiple pieces of three-dimensional data in a superimposed manner
  • a flag indicating whether the decoding device is capable of outputting multiple pieces of three-dimensional data in a superimposed manner, or the format type of the multiple pieces of three-dimensional data to be output in a superimposed manner may be signaled.
  • the metadata may indicate the flag or the format type.
  • the metadata may indicate a format type indicating a combination of formats that can be output.
  • format_type may be a flag indicating whether a specific format can be output for each bit.
  • FIG. 58 shows an example of format_type in embodiment 2.
  • FIG. 59 shows another example of format_type in embodiment 2.
  • format_type is just an example and is not limited to this. Only some of the examples in Figures 58 and 59 may be used, types not shown may be used, or the order may be changed.
  • FIG. 60 is a flowchart showing an example of the detailed processing of decoding three-dimensional data in a format specified by a predetermined method in embodiment 2.
  • the decoding unit 1232 determines the output format instructed by the control unit 1231 (S1211). The decoding unit 1232 determines whether the instructed output format is low-resolution mesh data, high-resolution mesh data, or point cloud data.
  • the decoding unit 1232 decodes the edge vertices (S1212). For example, the decoding unit 1232 restores (generates) faces (trinode meshes) based on the point cloud data, and restores (generates) the vertices (edge vertices) that make up the faces.
  • the decoding unit 1232 generates low-resolution mesh data by generating connection information based on the edge vertices (S1213). For example, the decoding unit 1232 generates low-resolution mesh data (low-resolution surface information) by connecting restoration points in a predetermined manner based on the points that constitute the low-resolution surface, and generating third connection information that indicates the connection relationship of the restoration points.
  • the decoding unit 1232 outputs the generated low-resolution mesh data (S1214).
  • the decoding unit 1232 decodes the edge vertices (S1215). For example, the decoding unit 1232 restores (generates) faces (trinode meshes) based on the point cloud data, and restores (generates) the vertices (edge vertices) that make up the faces.
  • the decoding unit 1232 decodes the center of gravity (centroid vertices) for each node, or the face vertices (face vertices) located on the face of the node, and generates connection information based on the decoded vertices (edge vertices, center of gravity, and face vertices) to generate high-resolution mesh data (S1216).
  • the decoding unit 1232 generates high-resolution mesh data (high-resolution face information) by connecting restoration points in a predetermined manner based on the points that make up the high-resolution face, and generating first connection information that indicates the connection relationship of the restoration points.
  • the decoding unit 1232 outputs the generated high-resolution mesh data (S1217).
  • the decoding unit 1232 decodes the edge vertices (S1218). For example, the decoding unit 1232 restores (generates) faces (trinode meshes) based on the point cloud data, and restores (generates) the vertices (edge vertices) that make up the faces.
  • the decoding unit 1232 decodes the center of gravity (centroid vertices) of each node, or the face vertices (face vertices) located on the face of the node, and generates connection information based on the decoded vertices (edge vertices, center of gravity, and face vertices) to generate high-resolution mesh data (S1219). For example, the decoding unit 1232 generates high-resolution mesh data (high-resolution face information) by connecting restoration points in a predetermined manner based on the points that make up the high-resolution face, and generating first connection information that indicates the connection relationship of the restoration points.
  • the decoding unit 1232 generates point cloud data based on the high-resolution mesh data (S1220).
  • the decoding unit 1232 outputs the generated point cloud data (S1221).
  • Figure 61 is a block diagram showing another example of the functional configuration of the server and the terminal in embodiment 2.
  • the server 1300 includes a point cloud generation unit 1301, a mesh generation unit 1302, a point cloud encoding unit 1303, a multiplexing unit 1304, and a data extraction unit 1305.
  • the point cloud generator 1301 generates point cloud data based on at least one of two-dimensional data and three-dimensional data.
  • the mesh generation unit 1302 generates mesh data based on the point cloud data generated by the point cloud generation unit 1301.
  • the point cloud encoding unit 1303 encodes three-dimensional data including the point cloud data generated by the point cloud generation unit 1301 and the mesh data generated by the mesh generation unit 1302.
  • the multiplexing unit 1304 multiplexes the encoded three-dimensional data using a predetermined format or a predetermined multiplexing method. Note that multiplexing by the multiplexing unit 1304 does not have to be performed. In this case, the server 1300 does not have to be equipped with the multiplexing unit 1304.
  • the data extraction unit 1305 extracts a portion of the three-dimensional data specified by the terminal 1310 from the encoded data generated by the multiplexing unit 1304, and transmits (sends) the extracted portion of the three-dimensional data, or three-dimensional data re-multiplexed using the extracted portion of the three-dimensional data, to the terminal 1310.
  • the terminal 1310 includes a control unit (application execution unit) 1311, a decryption unit 1312, and a presentation unit 1313.
  • control unit application execution unit
  • decryption unit 1312
  • presentation unit 1313 presentation unit
  • the control unit 1311 specifies a portion of the three-dimensional data to be transmitted by the server 1300.
  • the specified portion of the three-dimensional data is, for example, the type (format) of the three-dimensional data.
  • the control unit 1311 specifies whether to extract point cloud data or mesh data.
  • the control unit 1311 may specify the resolution of the three-dimensional data.
  • the decoding unit 1312 decodes a portion of the three-dimensional data based on the encoded data received from the server 1300.
  • the decoding unit 1312 may receive only a portion of the three-dimensional data from the server 1300, or may receive all of the three-dimensional data.
  • the decoding unit 1312 decodes a portion of the three-dimensional data.
  • the server 1300 may transmit only a portion of the three-dimensional data to the terminal 1310, or may transmit all of the three-dimensional data to the terminal 1310.
  • the presentation unit 1313 presents a portion of the three-dimensional data decoded by the decoding unit 1312.
  • the point cloud data, mesh data, and three-dimensional model data are data with different resolutions, different display appearances, and different granularity.
  • Three-dimensional data that includes at least two of the point cloud data, mesh data, and three-dimensional model data can also be said to be hierarchical data.
  • FIG. 62 is a flowchart showing another example of processing by a terminal in embodiment 2.
  • the control unit 1311 determines the format of the three-dimensional data to be used based on a predetermined process, and requests the server to switch to the determined format (S1301).
  • the server 1300 extracts and transmits the three-dimensional data in the requested format (S1302).
  • the decoding unit 1312 decodes and outputs the three-dimensional data in the transmitted format (S1303).
  • the presentation unit 1313 uses the decoded three-dimensional data in an application (S1304). For example, the presentation unit presents the three-dimensional data.
  • Figure 63 is a diagram showing an example of a data unit structure in embodiment 2.
  • the data unit contains coded data in order of resolution.
  • the low-resolution data contains points that make up the low-resolution mesh data, and data or metadata for restoring the connectivity information.
  • the high-resolution data contains points that make up the high-resolution mesh data, and data or metadata for restoring the connectivity information.
  • the point information contains data or metadata for restoring the points that make up the point cloud data.
  • low resolution indicates coded data for decoding low-resolution three-dimensional data.
  • low resolution is coded data for restoring edge vertices for each node.
  • High resolution indicates extended information (additional information for high resolution) for restoring high-resolution three-dimensional data.
  • high resolution is coded data for restoring additional vertices.
  • Point information indicates extended information (additional information for generating point cloud) for restoring point information.
  • point information is coded data for restoring points.
  • the decoding unit 1232 when outputting only low-resolution data, the decoding unit 1232 reads and decodes the data unit header and the low-resolution data in the data unit from the encoded data. In this case, the decoding unit 1232 does not need to read the high-resolution data and the point information data.
  • This configuration eliminates the need for subsequent data read processing, such as high resolution and point information, which allows the time until decoding can begin to be accelerated, achieving low-latency decoding. In addition, since subsequent processing is no longer necessary, processing speed can be improved.
  • the decoding unit 1232 when outputting high-resolution data, the decoding unit 1232 reads the data unit header, the low-resolution data in the data unit, and the high-resolution data in the data unit from the encoded data, and performs decoding using both the low-resolution data and the high-resolution data. In other words, the decoding unit 1232 cannot decode using only the high-resolution data without the low-resolution data. In this case, there is no need to read the point information, and a similar effect is achieved, in other words, since the data reading process at the later stage is no longer necessary, the time until decoding begins can be advanced and low-latency decoding can be achieved. Furthermore, since the process at the later stage is no longer necessary, the processing speed can be improved.
  • FIG. 64 is a diagram showing an example of the syntax of a coding method unit in the second embodiment.
  • FIG. 65 is a diagram showing an example of type information in the second embodiment.
  • the header of the encoding method unit stores type information (unit_type) for identifying the type of data unit.
  • the type information indicates, for example, a type that indicates the resolution of three-dimensional data.
  • the decoding device can identify the resolution of the encoded data and determine the decoding process.
  • the type that identifies the resolution may be indicated by an identifier, or may be stored in the header of a unit that is not an encoding method unit header, such as the header or metadata of a data unit.
  • unit_types illustrated in FIG. 65 are merely examples and are not limiting. Only some of the examples in FIG. 65 may be used, types not shown may be used, or the order may be changed.
  • Figures 66 to 68 are diagrams showing an example of a data unit structure for partial transmission in embodiment 2.
  • data corresponding to each resolution is stored in a data unit consisting of a header and encoded data in order of resolution, making it possible to extract only the desired data unit.
  • a low-resolution data unit and a high-resolution extended information data unit are extracted and transmitted to the decoding device.
  • a low-resolution data unit, a high-resolution data unit, and a point information data unit are extracted and transmitted to the decoding device.
  • FIG. 69 is a diagram showing an example of the syntax of a coding method unit for partial transmission in embodiment 2.
  • FIG. 70 is a diagram showing an example of type information in embodiment 2 for partial transmission.
  • the header of the encoding method unit stores type information (unit_type) for identifying the type of data unit.
  • the type information indicates, for example, a type that indicates the resolution of three-dimensional data.
  • the decoding device determines the decoding method based on the data type. For example, the decoding device determines the decoding method based on the type indicating the resolution of the three-dimensional data, or, if hierarchical, the type indicating that it is additional information. The type may be indicated by a flag indicating whether it is hierarchical or not.
  • the decoding device becomes able to identify that it is encoded data of the same three-dimensional data based on the type information (unit_type), and becomes able to decode the three-dimensional data.
  • unit_types illustrated in FIG. 70 are merely examples and are not limiting. Only some of the examples in FIG. 70 may be used, types not shown may be used, or the order may be changed.
  • Figure 71 is a diagram for explaining the group ID in embodiment 2.
  • the group ID indicates an identifier for identifying that the hierarchical data was generated from the same three-dimensional point cloud.
  • the group ID may be stored in the coding unit header or in the data unit header. This allows the coding device to determine which data unit to combine with the hierarchical data when coding.
  • the group ID may indicate that the data units are in the same group, or a corresponding or referencing low-resolution data unit ID may be indicated within the high-resolution data unit. A similar effect can be expected by using a method of indicating the correspondence.
  • FIG. 72 is a diagram showing an example of the configuration of a decoding device in embodiment 2.
  • FIG. 73 is a flowchart showing an example of a decoding method by the decoding device in embodiment 2.
  • the decoding device 1320 includes a circuit 1321 and a memory 1322 connected to the circuit 1321.
  • Circuit 1321 performs the following operations:
  • the circuit 1321 acquires coded data (S1311).
  • the circuit 1321 restores a plurality of first vertices based on the coded data (S1312).
  • the circuit 1321 connects the restored first vertices to generate first surface information (fourth connection information) including a first surface (S1313).
  • the circuit 1321 restores a plurality of second vertices based on the coded data and the first surface (S1314).
  • the circuit 1321 connects a point group including the restored first vertices and the restored second vertices to generate second surface information (first connection information) including a second surface (S1315).
  • the circuit 1321 outputs the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information (S1316).
  • low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information are generated and output in two stages, so that, for example, low-resolution three-dimensional data can be output based on the low-resolution information, or high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data can be output based on the low-resolution information and the high-resolution information.
  • the circuit 1321 further generates point cloud data including a plurality of points based on the second surface.
  • the circuit 1321 outputs the point cloud data.
  • the encoded data includes first encoded data including the first vertices and the first face information, and second encoded data including extension information for decoding the second vertices and the second face.
  • the encoded data includes a header and a data unit.
  • the data unit includes the first encoded data and the second encoded data, in that order.
  • the encoded data includes a first data unit including a first header and the first encoded data, and a second data unit including a second header and the second encoded data.
  • the circuit 1321 further decodes a portion of the first encoded data and the second encoded data, and outputs either (1) the first encoded data or (2) the first encoded data and the second encoded data.
  • the circuit 1321 further obtains numerical information indicating the number of formats that can be output.
  • the circuit 1321 further determines the data to be output based on the numerical information.
  • the circuit 1321 further acquires type information indicating the type of format that can be output.
  • the circuit 1321 further determines the type information and the data to be output.
  • the circuit 1321 further acquires (1) the first encoded data, and (2) either the first encoded data or the second encoded data.
  • the circuit 1321 further decodes and outputs the acquired (1) first encoded data, or (2) the first encoded data and the second encoded data.
  • FIG. 74 is a diagram showing an example of the configuration of an encoding device in embodiment 2.
  • FIG. 75 is a flowchart showing an example of an encoding method by the encoding device in embodiment 2.
  • the encoding device 1330 includes a circuit 1331 and a memory 1332 connected to the circuit 1331.
  • Circuit 1331 performs the following operations:
  • the circuit 1331 determines a plurality of first vertices of the three-dimensional object (S1321).
  • the circuit 1331 connects the plurality of first vertices to generate first surface information including a first surface (S1322).
  • the circuit 1331 determines a plurality of second vertices based on the first surface (S1323).
  • the circuit 1331 connects a point group including the plurality of first vertices and the plurality of second vertices to generate second surface information including a second surface (S1324).
  • the circuit 1331 generates coded data including the plurality of first vertices, the plurality of second vertices, the first surface information, and the second surface information (S1325).
  • encoded data obtained by generating low-resolution information including a plurality of first vertices and first surface information, and high-resolution information including a plurality of second vertices and second surface information in two stages is output, so that a decoding device that acquires the encoded data can, for example, output low-resolution three-dimensional data based on the low-resolution information, or output high-resolution three-dimensional data with a higher resolution than the low-resolution three-dimensional data based on the low-resolution information and the high-resolution information.
  • the circuit 1331 further generates point cloud data including a plurality of points based on the second surface.
  • the encoded data further includes the point cloud data.
  • the circuit 1331 further generates first encoded data including the plurality of first vertices and the first surface information.
  • the circuit 1331 further generates second encoded data including the plurality of second vertices and the second surface information.
  • the encoded data includes the first encoded data and the second encoded data. Therefore, a decoding device that acquires the encoded data can restore multiple pieces of three-dimensional data with different resolutions.
  • the encoded data includes a header and a data unit.
  • the data unit includes the first encoded data and the second encoded data, in that order.
  • the data unit includes the first encoded data and the second encoded data, in that order.
  • the encoded data includes a first data unit including a first header and the first encoded data, and a second data unit including a second header and the second encoded data.
  • the encoded data includes numerical information indicating the number of formats that can be output.
  • the encoded data includes type information that indicates the type of format that can be output.
  • the circuit 1331 further outputs (1) the first encoded data, and (2) either the first encoded data or the second encoded data.
  • circuit 1321 of the decoding device 1320 or the circuit 1331 of the encoding device 1330 may operate according to the method shown in the flowchart of Figure 76.
  • Figure 76 is a flowchart showing an example of a method by the decoding device or the encoding device in embodiment 2.
  • the circuit 1321 or the circuit 1331 determines the type of three-dimensional data to be decoded (S1331).
  • the circuit 1321 or the circuit 1331 extracts the determined type of three-dimensional data from the encoded data (S1332).
  • the encoded data includes (1) a plurality of first vertices of a three-dimensional object, (2) first surface information including a first surface generated by connecting the plurality of first vertices, (3) a plurality of second vertices determined based on the first surface, and (4) a second surface generated by connecting a point group including the plurality of first vertices and the plurality of second vertices.
  • the type of the three-dimensional data to be extracted includes a first format and a second format.
  • first encoded data including the plurality of first vertices and the first surface information is extracted. If the type of the three-dimensional data to be decoded is determined to be the second format, second encoded data including the first encoded data and extension information for decoding the plurality of second vertices and the second surface is extracted.
  • the encoded data required for decoding can be extracted based on the determined format. Therefore, when a format that requires a small amount of data for decoding is selected, the amount of data to be extracted can be reduced, so that, for example, the amount of transmission required for transmitting the encoded data can be reduced, and the processing load of the decoding process by the decoding device that has acquired the encoded data can be reduced.
  • each processing unit included in the encoding device, decoding device, server, terminal, etc. is typically realized as an LSI, which is an integrated circuit. These may be individually implemented as single chips, or may be integrated into a single chip that includes some or all of them.
  • the integrated circuit is not limited to LSI, but may be realized by a dedicated circuit or a general-purpose processor. It is also possible to use an FPGA (Field Programmable Gate Array) 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.
  • FPGA Field Programmable Gate Array
  • each component may be configured with dedicated hardware, or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
  • the present disclosure may also be realized as a decoding method executed by a decoding device, etc.
  • the division of functional blocks in the block diagram is one 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 other functional blocks. Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in a time-shared manner by a single piece of hardware or software.
  • This disclosure can be applied to a decoding device and a decoding method.
  • Three-dimensional data encoding system 1002 Three-dimensional data decoding system 1003 Sensor terminal 1004 External connection unit 1011 Three-dimensional data generation system 1012 Presentation unit 1013 Encoding unit 1014 Multiplexing unit 1015 Input/output unit 1016 Control unit 1017 Sensor information acquisition unit 1018 Three-dimensional data generation unit 1021 Sensor information acquisition unit 1022 Input/output unit 1023 Demultiplexing unit 1024 Decoding unit 1025 Presentation unit 1026 User interface 1027 Control unit 1031 Three-dimensional model learning unit 1032 Three-dimensional model encoding unit 1033 Three-dimensional model decoding unit 1034 Rendering reconstruction unit 1041 Data division unit 1042 Encoding unit 1051 Decoding unit 1052 Data combination unit 1061 Terminal presentation screen 1061a Point cloud button 1061b Mesh button 1062 Terminal presentation screen 1063 Terminal presentation screen 1070 Server 1071 Data generation unit 1072 Point cloud generation unit 1073 Mesh generation unit 1074 Model generation unit 1075 Synchronization unit 1076 Point cloud encoding unit 1077 Mesh encoding unit 1078 Model encoding unit 1079 Multiplex

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

復号装置(1320)は、回路(1321)と、回路(1321)に接続されるメモリ(1322)とを備え、回路(1321)は、動作において、符号化データに基づいて複数の第1頂点を復元し(S1311)、復元した複数の第1頂点を接続して第1面を含む第1面情報を生成し(S1313)、符号化データ及び第1面に基づいて複数の第2頂点を復元し(S1314)、復元した複数の第1頂点及び複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し(S1315)、複数の第1頂点、複数の第2頂点、第1面情報、及び、第2面情報を出力する(S1316)。

Description

復号装置、復号方法、符号化装置、符号化方法、及び、装置
 本開示は、復号装置、復号方法、符号化装置、符号化方法、及び、装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 本開示は、異なる解像度の三次元データを出力することができる復号装置などを提供することを目的とする。
 本開示の一態様に係る復号装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、符号化データを取得し、前記符号化データに基づいて複数の第1頂点を復元し、復元した前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元し、復元した前記複数の第1頂点及び前記複数の第2頂点を含む点を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する。
 本開示の一態様に係る符号化装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、三次元オブジェクトの複数の第1頂点を決定し、前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記第1面に基づいて複数の第2頂点を決定し、前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する。
 本開示の一態様に係る装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、復号する三次元データの種類を決定し、符号化データのうち、決定された種類の三次元データを抽出し、前記符号化データは、(1)三次元オブジェクトの複数の第1頂点と、(2)前記複数の第1頂点を接続して生成された第1面を含む第1面情報と、(3)前記第1面に基づいて決定された複数の第2頂点と、(4)前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して生成された第2面とを含み、抽出される前記三次元データの種類は、第1のフォーマットと、第2のフォーマットとを含み、復号する三次元データの種類が前記第1のフォーマットと決定された場合、前記複数の第1頂点及び前記第1面情報を含む第1符号化データが抽出され、復号する三次元データの種類が前記第2のフォーマットと決定された場合、前記第1符号化データ、及び、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データが抽出される。
 なお、これらの包括的または具体的な態様は、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 本開示の復号装置などは、異なる解像度の三次元データを出力することができる。
図1は、実施の形態1における、実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。 図2は、実施の形態1における、点群データの構成を示す図である。 図3は、実施の形態1における、点群データの情報が記述されたデータファイルの構成例を示す図である。 図4は、実施の形態1における、三次元メッシュデータの構成を示す図である。 図5は、実施の形態1における、三次元メッシュデータの情報が記述されたデータファイルの構成例を示す図である。 図6は、実施の形態1における、三次元モデルについて説明するための図である。 図7は、実施の形態1における、三次元データの種類を示す図である。 図8は、実施の形態1における、三次元データの符号化処理について説明するための図である。 図9は、実施の形態1における、三次元データの復号処理について説明するための図である。 図10は、実施の形態1における、三次元データのタイル及びスライスを二次元的に模式的に示した図である。 図11は、実施の形態1における、ユーザの要求に応じて切り替えられる端末提示画面の一例を示す図である。 図12は、実施の形態1における、ユーザの操作に応じて自動的に切り替えられる端末提示画面の一例を示す図である。 図13は、実施の形態1における、サーバ及び端末の機能構成の一例を示すブロック図である。 図14は、実施の形態1における、サーバのデータ生成部の他の一例を示すブロック図である。 図15は、実施の形態1における、座標系の同期処理について説明するための図である。 図16は、実施の形態1における、座標系の同期処理について説明するための図である。 図17は、実施の形態1における、三次元空間と符号化データとの関係について説明するための図である。 図18は、実施の形態1における、符号化方式ユニットのシンタックスの一例を示す図である。 図19は、実施の形態1における、符号化点群のシンタックスの一例を示す図である。 図20は、実施の形態1における、符号化メッシュのシンタックスの一例を示す図である。 図21は、実施の形態1における、符号化三次元モデルのシンタックスの一例を示す図である。 図22は、実施の形態1における、三次元データ情報のシンタックスの一例を示す図である。 図23は、実施の形態1における、符号化点群のデータ構造について説明するための図である。 図24は、実施の形態1における、符号化メッシュのデータ構造について説明するための図である。 図25は、実施の形態1における、符号化三次元モデルのデータ構造について説明するための図である。 図26は、実施の形態1における、複数の三次元空間の一例を二次元的に示した図である。 図27は、実施の形態1における、バウンディングボックスの一例を示す図である。 図28は、実施の形態1における、三次元空間情報のシンタックスの一例を示す図である。 図29は、実施の形態1における、部分復号の一例を示すフローチャートである。 図30は、実施の形態1における、部分復号の対象となる三次元空間領域の一例を示す図である。 図31は、実施の形態1における、部分復号される符号化点群のデータ構造の一例を示す図である。 図32は、実施の形態1における、部分復号される符号化メッシュのデータ構造の一例を示す図である。 図33は、実施の形態1における、部分復号される符号化三次元モデルのデータ構造の一例を示す図である。 図34は、実施の形態1における、空間同期が取れていない異なる種類の三次元データの座標系の一例を示す図である。 図35は、実施の形態1における、三次元データ情報のシンタックスの一例を示す図である。 図36は、実施の形態1における、三次元空間情報のシンタックスの一例を示す図である。 図37は、実施の形態1における、端末の機能構成の一例を示す図である。 図38は、実施の形態1における、空間同期処理の一例を示すフローチャートである。 図39は、実施の形態1における、復号装置の構成の一例を示す図である。 図40は、実施の形態1における、復号装置による復号方法の一例を示すフローチャートである。 図41は、復号装置による復号方法の他の一例を示すフローチャートである。 図42は、符号化装置の構成の一例を示す図である。 図43は、符号化装置による符号化方法の一例を示すフローチャートである。 図44は、実施の形態2における、三次元データの一部を復号する部分復号について説明するための図である。 図45は、実施の形態2における、三次元データの一部を抽出して復号する例について説明するための図である。 図46は、実施の形態2における、サーバ及び端末の機能構成の一例を示すブロック図である。 図47は、実施の形態2における、端末による処理の一例を示すフローチャートである。 図48は、実施の形態2における、元点群の例を示す図である。 図49は、実施の形態2における、剪定8分木の例を示す図である。 図50は、実施の形態2における、リーフノードを二次元表示した例である。 図51は、実施の形態2における、セントロイド頂点の生成方法を説明するための図である。 図52は、実施の形態2における、セントロイド頂点の生成方法を説明するための図である。 図53は、実施の形態2における、頂点情報の例を示す図である。 図54は、実施の形態2における、トライソープ・サーフェスの例を示す図である。 図55は、実施の形態2における、点群の復元処理を説明するための図である。 図56は、実施の形態2における、復号部の構成の一例を示す図である。 図57は、実施の形態2における、出力可能なフォーマットのメタデータ(SEI)のシンタックスの一例を示す図である。 図58は、実施の形態2における、format_typeの一例を示す図である。 図59は、実施の形態2における、format_typeの他の一例を示す図である。 図60は、実施の形態2における、所定の方法で指示されたフォーマットの三次元データを復号する処理の詳細の一例を示すフローチャートである。 図61は、実施の形態2における、サーバ及び端末の機能構成の他の一例を示すブロック図である。 図62は、実施の形態2における、端末による処理の他の一例を示すフローチャートである。 図63は、実施の形態2における、データユニットの構造の一例を示す図である。 図64は、実施の形態2における、符号化方式ユニットのシンタックスの一例を示す図である。 図65は、実施の形態2における、タイプ情報の一例を示す図である。 図66は、実施の形態2における、部分伝送用のデータユニット構造の一例を示す図である。 図67は、実施の形態2における、部分伝送用のデータユニット構造の一例を示す図である。 図68は、実施の形態2における、部分伝送用のデータユニット構造の一例を示す図である。 図69は、実施の形態2における、部分伝送用の符号化方式ユニットのシンタックスの一例を示す図である。 図70は、実施の形態2における、部分伝送用の実施の形態2における、タイプ情報の一例を示す図である。 図71は、実施の形態2における、グループIDについて説明するための図である。 図72は、実施の形態2における、復号装置の構成の一例を示す図である。 図73は、実施の形態2における、復号装置による復号方法の一例を示すフローチャートである。 図74は、実施の形態2における、符号化装置の構成の一例を示す図である。 図75は、実施の形態2における、符号化装置による符号化方法の一例を示すフローチャートである。 図76は、実施の形態2における、復号装置または符号化装置による方法の一例を示すフローチャートである。
 本開示の第1態様に係る復号装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、符号化データを取得し、前記符号化データに基づいて複数の第1頂点を復元し、復元した前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元し、復元した前記複数の第1頂点及び前記複数の第2頂点を含む点を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して、出力するため、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 本開示の第2態様に係る復号装置は、第1態様に係る復号装置であって、前記回路は、さらに、前記第2面に基づいて複数の点を含む点群データを生成し、前記点群データを出力する。
 本開示の第3態様に係る復号装置は、第1態様または第2態様に係る復号装置であって、前記符号化データは、前記複数の第1頂点及び前記第1面情報を含む第1符号化データと、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データとを含む。
 本開示の第4態様に係る復号装置は、第3態様に係る復号装置であって、前記符号化データは、ヘッダ及びデータユニットを含み、前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む。
 本開示の第5態様に係る復号装置は、第3態様に係る復号装置であって、前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む。
 本開示の第6態様に係る復号装置は、第3態様に係る復号装置であって、前記回路は、さらに、前記第1符号化データと前記第2符号化データの一部を復号し、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データとのいずれかを出力する。
 本開示の第7態様に係る復号装置は、第6態様に係る復号装置であって、前記回路は、さらに、出力可能なフォーマットの数を示す数情報を取得し、前記数情報に基づいて、出力するデータを決定する。
 本開示の第8態様に係る復号装置は、第6態様に係る復号装置であって、前記回路は、さらに、出力可能なフォーマットの種別を示す種別情報を取得し、前記種別情報、出力するデータを決定する。
 本開示の第9態様に係る復号装置は、第3態様に係る復号装置であって、前記回路は、さらに、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを取得し、取得した(1)前記第1符号化データ、又は(2)前記第1符号化データ及び前記第2符号化データを復号して出力する。
 本開示の第10態様に係る符号化装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、三次元オブジェクトの複数の第1頂点を決定し、前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記第1面に基づいて複数の第2頂点を決定し、前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して得られた符号化データを出力するため、当該符号化データを取得した復号装置は、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 本開示の第11態様に係る符号化装置は、第10態様に係る符号化装置であって、前記回路は、さらに、前記第2面に基づいて複数の点を含む点群データを生成し、前記符号化データは、さらに、前記点群データを含む。
 本開示の第12態様に係る符号化装置は、第10態様に係る符号化装置であって、前記回路は、さらに、前記複数の第1頂点及び前記第1面情報を含む第1符号化データを生成し、前記複数の第2頂点及び前記第2面情報を含む第2符号化データを生成し、前記符号化データは、前記第1符号化データ及び前記第2符号化データを含む。
 このため、符号化データを取得した復号装置は、解像度が異なる複数の三次元データを復元することができる。
 本開示の第13態様に係る符号化装置は、第12態様に係る符号化装置であって、前記符号化データは、ヘッダ及びデータユニットを含み、前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む。
 本開示の第14態様に係る符号化装置は、第12態様に係る符号化装置であって、前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む。
 本開示の第15態様に係る符号化装置は、第14態様に係る符号化装置であって、前記符号化データは、出力可能なフォーマットの数を示す数情報を含む。
 本開示の第16態様に係る符号化装置は、第14態様に係る符号化装置であって、前記符号化データは、出力可能なフォーマットの種別を示す種別情報を含む。
 本開示の第17態様に係る符号化装置は、第10態様に係る符号化装置であって、前記回路は、さらに、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを出力する。
 本開示の第18態様に係る復号方法は、符号化データに基づいて複数の第1頂点を復元し、復元した前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元し、復元した前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して、出力するため、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 本開示の第19態様に係る符号化方法は、三次元オブジェクトの複数の第1頂点を決定し、前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、前記第1面に基づいて複数の第2頂点を決定し、前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して得られた符号化データを出力するため、当該符号化データを取得した復号装置は、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 本開示の第20態様に係る装置は、回路と、前記回路に接続されるメモリとを備え、前記回路は、動作において、復号する三次元データの種類を決定し、符号化データのうち、決定された種類の三次元データを抽出し、前記符号化データは、(1)三次元オブジェクトの複数の第1頂点と、(2)前記複数の第1頂点を接続して生成された第1面を含む第1面情報と、(3)前記第1面に基づいて決定された複数の第2頂点と、(4)前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して生成された第2面とを含み、抽出される前記三次元データの種類は、第1のフォーマットと、第2のフォーマットとを含み、復号する三次元データの種類が前記第1のフォーマットと決定された場合、前記複数の第1頂点及び前記第1面情報を含む第1符号化データが抽出され、復号する三次元データの種類が前記第2のフォーマットと決定された場合、前記第1符号化データ、及び、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データが抽出される。
 このため、決定されたフォーマットに基づいて復号に必要な符号化データを抽出できる。よって、復号に必要なデータ量が少ないフォーマットが選択された場合には、抽出するデータ量を低減できるため、例えば、符号化データの伝送に要する伝送量を低減でき、当該符号化データを取得した復号装置による復号処理の処理負荷を低減できる。
 なお、これらの包括的または具体的な態様は、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 本実施の形態に係る三次元データ符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム1001と、三次元データ復号システム1002と、センサ端末1003と、外部接続部1004とを含む。
 三次元データ符号化システム1001は、三次元データを符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム1001は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム1001に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ符号化システム1001は、三次元データ生成システム1011と、提示部1012と、符号化部1013と、多重化部1014と、入出力部1015と、制御部1016とを含む。三次元データ生成システム1011は、センサ情報取得部1017と、三次元データ生成部1018とを含む。
 センサ情報取得部1017は、センサ端末1003からセンサ信号を取得し、センサ信号を三次元データ生成部1018に出力する。三次元データ生成部1018は、センサ信号から三次元データを生成し、三次元データを符号化部1013へ出力する。
 提示部1012は、センサ信号又は三次元データをユーザに提示する。例えば、提示部1012は、センサ信号又は三次元データに基づく情報又は画像を表示する。
 符号化部1013は、三次元データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部1014へ出力する。付加情報は、例えば、センサ信号を含む。
 多重化部1014は、符号化部1013から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
 入出力部1015(例えば、通信部又はインタフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部1016(またはアプリ実行部)は、各処理部を制御する。つまり、制御部1016は、符号化及び多重化等の制御を行う。制御部1016は、逆多重化、復号、または、提示の制御を行ってもよい。
 なお、センサ信号が符号化部1013又は多重化部1014へ入力されてもよい。また、入出力部1015は、三次元データ又は符号化データをそのまま外部へ出力してもよい。
 三次元データ符号化システム1001から出力された伝送信号(多重化データ)は、外部接続部1004を介して、三次元データ復号システム1002に入力される。
 三次元データ復号システム1002は、符号化データ又は多重化データを復号することで三次元データを生成する。なお、三次元データ復号システム1002は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム1002に含まれる複数の処理部のうち一部を含んでもよい。
 三次元データ復号システム1002は、センサ情報取得部1021と、入出力部1022と、逆多重化部1023と、復号部1024と、提示部1025と、ユーザインタフェース1026と、制御部1027とを含む。
 センサ情報取得部1021は、センサ端末1003からセンサ信号を取得する。
 入出力部1022は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部1023へ出力する。
 逆多重化部1023は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部1024へ出力する。
 復号部1024は、符号化データを復号することで点群データを再構成する。
 提示部1025は、点群データをユーザに提示する。例えば、提示部1025は、点群データに基づく情報又は画像を表示する。ユーザインタフェース1026は、ユーザの操作に基づく指示を取得する。制御部1027(またはアプリ実行部)は、各処理部を制御する。つまり、制御部1027は、逆多重化、復号及び提示等の制御を行う。
 なお、入出力部1022は、点群データ又は符号化データをそのまま外部から取得してもよい。また、提示部1025は、センサ信号などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部1025は、ユーザインタフェース1026で取得されたユーザの指示に基づき、提示を行ってもよい。
 センサ端末1003は、センサで得られた情報であるセンサ信号を生成する。センサ端末1003は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
 センサ端末1003で取得可能なセンサ信号は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末1003と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等を示す信号を含む。また、センサ信号は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ信号は、気温、気圧、湿度、又は磁気等を含んでもよい。
 外部接続部1004は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
 次に、点群データについて説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
 点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報を含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
 三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
 1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
 図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
 位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
 次に、三次元メッシュデータについて説明する。図4は、三次元メッシュデータの構成を示す図である。図5は、三次元メッシュデータの情報が記述されたデータファイルの構成例を示す図である。
 三次元メッシュデータは、CG(Computer Graphics)に用いられるデータ形式であり、複数の面情報の集まりにより対象物の三次元形状を示す。複数の面情報のそれぞれは、三角形または四角形などの多角形を示す。三次元メッシュデータは、ポリゴン、ポリゴンメッシュとも称される。
 構成要素は、三次元点群、三次元点群の複数の三次元点である頂点(vertex)、複数の三次元点において2つの頂点を結んだ辺(edge)、及び、複数の辺で囲まれた面(face)の集合である。三次元点群は、三次元空間における位置情報、及び、その位置情報に対応する属性情報を含む点の集合である。なお、三次元点は、単に、点と称されてもよい。
 頂点(vertex)は、三次元点に対する、色情報、反射率、法線ベクトルなどの属性情報を有していてもよい。辺または面を構成する頂点の関係性は、接続性(connectivity)という情報で示されてもよい。なお、頂点は、positionと表現されてもよい。面の表裏は、三次元点に対する法線ベクトルの向きによって表現されてもよい。また、頂点は、面に対する属性情報を有していてもよい。
 メッシュデータファイルの形式には、例えばオブジェクトファイルがある。図5に示すようなメッシュデータファイルでは、メッシュを構成するN個の頂点の位置情報G(1)~G(N)、及び、頂点の属性情報A(1)~A(N)が頂点情報として示される。メッシュデータファイルでは、頂点情報は、属性情報を含まなくてもよい。
 また、属性情報は頂点に1対1で対応しなくてもよい。図5のメッシュデータファイルでは、三次元メッシュデータは、M個の属性情報A2を有する例が示されている。
 面情報は、頂点のインデックスの組み合わせで示される。n[1,3,4]は、n=1の頂点、n=3の頂点、及び、n=4の頂点の3つの頂点で構成される三角形の面であることを示す。
 また、m[2,4,6]は、3つの頂点に対して属性情報A2のうちのm=2の属性情報、m=4の属性情報、m=6の属性情報がそれぞれ対応することを示す。なお、ここでは、3つの頂点で面を構成する例を示したが、面は、3以上の整数の頂点であればよく、3に限らない。例えば、面が四角形であれば頂点の数は4であり、面が多角形であれば頂点の数は多角形を構成する頂点の数と等しい数である。
 また、属性情報A2は、メッシュデータファイルとは別のファイルで示されてもよく、そのポインタ情報を含んでもよい。例えば、属性情報は、二次元の属性マップ(attribute map)ファイルに格納されてもよく、属性マップファイル名、属性マップにおける二次元座標がメッシュデータファイルの属性情報A2で示されてもよい。このように、属性情報A2は、メッシュデータファイルに含まれていてもよいし、メッシュデータファイルとは別のファイルで示されてもよく、いずれの方法を用いても、三次元点に対する属性情報を指定することが可能である。
 次に、三次元モデルについて説明する。図6は、三次元モデルについて説明するための図である。
 三次元モデルとは、二次元データまたは三次元データに基づいて生成されたモデルである。
 三次元モデル学習部1031は、例えば、二次元データ(二次元画像)または三次元データ(点群またはメッシュ)を学習することで、三次元形状及び三次元形状に対応する属性情報がNeural Networkなどを用いて学習されたネットワークモデルである三次元モデルを生成する。
 三次元モデル学習部1031は、二次元画像に基づいてNeRF(Neural Radiance Fields)を用いて学習することで三次元モデルを生成してもよい。三次元モデル学習部1031は、二次元画像を用いてフォトグラメトリを実行することにより二次元画像を三次元データに変換した後に、三次元モデルを生成してもよい。三次元モデルは、センサ(距離センサ)で取得された三次元データを用いて生成されてもよい。
 三次元モデルデータは、三次元モデルを構成する要素であり、ネットワークモデルの構造を示す情報、特徴量などを含む。三次元モデルデータは、例えば、ニューラルネットワークの構成要素に関する情報を含む。構成要素に関する情報は、例えば、入力層、中間層、出力層などの複数の層、各層におけるノード、ノードに対する重み係数、ノードの変換関数などを含む。
 三次元モデル符号化部1032は、三次元モデルデータを符号化し、符号化された三次元モデルデータを伝送してもよい。
 三次元モデル復号部1033は、伝送された、符号化された三次元モデルデータを受信し、符号化された三次元モデルデータに基づいて三次元モデルを復号する。
 レンダリング再構成部1034は、復号された三次元モデルに基づいて、二次元データ(二次元画像)または三次元データ(点群またはメッシュ)を再構成(生成)する。レンダリング再構成部1034は、例えば、NeRFでモデル化された三次元モデルを用いる場合、視点位置または視線ベクトル情報を取得し、三次元モデル及び視点位置または視線ベクトルに基づいて、レンダリングされた二次元データ(二次元画像)を生成し、二次元データを出力する。生成される二次元データは、視点位置から見た三次元物体、または、視線ベクトルで示される視線から見た三次元物体の二次元画像を示す。三次元物体は、三次元モデル学習部1031に入力された二次元データまたは三次元データの元になった被写体の三次元物体である。
 次に、三次元データの種類について説明する。図7は、三次元データの種類を示す図である。図7に示すように、三次元データには、静的オブジェクトと、動的オブジェクトとがある。
 静的オブジェクトは、任意の時間(ある時刻)の三次元データである。動的オブジェクトは、時間的に変化する三次元データである。以降、ある時刻の点群データをPCCフレーム、又はフレームと呼ぶ。また、任意の時間のメッシュデータをメッシュフレーム、又はフレームと呼ぶ。
 オブジェクトは、通常の映像データのように、ある程度領域が制限されている三次元データであってもよいし、地図情報のように領域が制限されていない三次元データであってもよい。
 また、様々な密度の点があり、疎な点群データ(疎なメッシュデータ)と、密な点群データ(密なメッシュデータ)とが存在してもよい。
 以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。三次元データ生成部1018は、センサ情報取得部1017で得られたセンサ情報に基づき点群データを生成する。三次元データ生成部1018は、点群データとして、位置情報(ジオメトリ情報)を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
 三次元データ生成部1018は、位置情報の生成又は属性情報の付加の際に、点群データを加工してもよい。例えば、三次元データ生成部1018は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、三次元データ生成部1018は、位置情報を変換(位置シフト、回転又は正規化など)してもよいし、点群データを加工し、メッシュデータを生成してもよい。また、三次元データ生成部1018は、属性情報をレンダリングしてもよい。
 なお、図1では、三次元データ生成システム1011は、三次元データ符号化システム1001に含まれるが、三次元データ符号化システム1001の外部に独立して設けられてもよい。
 符号化部1013は、三次元データを予め規定された符号化方法に基づき符号化することで符号化データを生成する。符号化方法には、G-PCC(位置情報を用いた符号化方法)、V-PCC(ビデオコーデックを用いた符号化方法)、Draco(メッシュの符号化方法)、V-DMC(メッシュの符号化方法)がある。符号化方法は、これらの方法に限定されず、例えば、動的なメッシュを符号化する方法、または、これらの方法を組み合わせた別の方法であってもよい。
 復号部1024は、符号化データを予め規定された符号化方法に基づき復号することで三次元データを復号する。
 多重化部1014は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部1014は、三次元データの符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部1014は、さらに、センサ情報又は点群データに関連する属性情報を多重化してもよい。
 多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RTPなどがある。
 逆多重化部1023は、多重化データから三次元データの符号化データ、その他のメディア、及び時刻情報などを抽出する。
 入出力部1015は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部1015は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
 通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
 有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
 また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
 次に、三次元データを1以上の三次元データに分割する処理について説明する。図8は、三次元データの符号化処理について説明するための図である。図9は、三次元データの復号処理について説明するための図である。
 図8に示すように、データ分割部1041が三次元データを1以上の三次元空間毎に分割し、分割された1以上の三次元データ(つまり1以上の分割三次元データ)を生成する。符号化部1042が1以上の分割三次元データを符号化して、符号化データを生成してもよい。データ分割部1041及び符号化部1042は、1つ符号化装置の構成要素として、当該1つ符号化装置に含まれていてもよいし、別々の装置に含まれていてもよい。
 1以上の三次元空間の各々は、タイルまたはスペースと表記されてもよい。三次元空間は、例えば、バウンディングボックスである。また、分割された複数の三次元空間のそれぞれに含まれる三次元データは、スライスと表記されてもよい。スライスは、分割された三次元データであり、位置情報(Geometry)または属性情報(Attribute)を有する点群、メッシュ、及び、三次元モデルのいずれかを含む。複数のスライスは、それぞれ、構成要素ごとに符号化部1042で符号化され、符号化データとして出力される。符号化データは、符号化された複数のスライスを含む。
 図9に示すように、復号処理では、復号部1051は、符号化データに基づいて1以上の分割三次元データ(1以上のスライス)を復号する。データ結合部1052は、1以上の分割三次元データを結合し、三次元データを復元(生成)する。復号部1051及びデータ結合部1052は、1つの復号装置の構成要素として、当該1つの復号装置に含まれていてもよいし、別々の装置に含まれていてもよい。復号部1051によって復号された1以上の分割三次元データは、結合されなくてもよい。復号部1051は、符号化データの一部に基づいて1以上の分割三次元データのうちの一部の分割三次元データを復号して、復号した一部の分割三次元データを出力してもよい。この場合、復号装置は、データ結合部1052を有していなくてもよい。
 図10は、三次元データのタイル及びスライスを二次元的に模式的に示した図である。
 符号化装置は、複数のスライスを符号化する場合、複数のスライス間の依存関係を用いて符号化してもよいし、依存関係を用いずに符号化してもよい。符号化装置は、依存関係を用いずに符号化する場合、各スライスを独立に符号化することが可能であり、複数のスライスを並列処理で符号化することで処理時間を削減できる。また、復号装置は、依存関係を用いずに複数のスライスが符号化された場合、各スライスを独立に復号することが可能であり、複数のスライスを並列処理で復号することで処理時間を削減できる。また、復号装置は、複数のスライスのうちの一部のスライスを復号する部分復号により処理量を削減可能である。
 符号化装置は、依存関係を用いて符号化する場合、依存関係を示す識別子をシグナリングし、依存されるデータから順に符号化する。復号装置は、依存関係を用いて複数のスライスが符号化された場合、識別子に基づいて、依存されるデータから順に復号する。
 三次元データの分割では、どのような分割数で分割されてもよいし、どのような分割方法が用いられてもよい。三次元データの分割では、オブジェクトの形状を判定し、オブジェクト毎に複数の三次元点が分割されてもよい。また、三次元データの分割では、スライスに含まれる三次元点の数を基準に分割されてもよい。つまり、1つのスライスに含まれる三次元点の上限値が定められていてもよい。また、三次元データは、地図情報または位置情報を用いて、三次元空間(タイル情報)に含まれるか否かで分割されてもよい。複数のタイル形状は重複してもよい。
 このように三次元データを複数の分割三次元データに分割することで、コンテンツまたはオブジェクトに応じた適応的な符号化や、復号における並列処理が可能となる。
 次に、複数の三次元データのうち提示または伝送する三次元データを選択する方法について説明する。
 サーバは、同一空間に対する複数の三次元データを蓄積する。サーバは、例えば、同一空間に対する点群データとメッシュデータとを蓄積する。サーバは、符号化装置の一例である。端末は、端末の用途に基づき、サーバから取得する三次元データを切り替え、切り替えた三次元データを提示する。端末は、例えば、三次元データを解析する端末であってもよい。この場合、端末は、解析または提示などの用途、ユーザ操作に基づいて、提示する三次元データを切り替えてもよい。端末は、復号装置の一例である。
 三次元データの切り替えでは、三次元データとして点群を提示するか、メッシュを提示するかが切り替えられてもよい。また、三次元データの切り替えでは、三次元データとして点群を伝送するか、メッシュを伝送するかが切り替えられてもよい。例えば、端末は、ユーザによる選択結果をサーバへ送信し、サーバから当該選択結果に基づく三次元データをサーバから受信(ダウンロード)し、受信した三次元データを提示してもよい。三次元データ(点群またはメッシュ)は、サーバにおいて符号化されてもよいし符号化されなくてもよい。三次元データが符号化される場合、端末は、符号化された三次元データをサーバから受信し、受信した符号化された三次元データに基づいて三次元データを復号し、復号した三次元データを提示してもよい。
 図11は、ユーザの要求に応じて切り替えられる端末提示画面の一例を示す図である。
 図11に示すように、端末提示画面1061は、ユーザの要求に応じて切り替えられてもよい。端末提示画面は、ユーザの要求を受け付けるUIとして点群ボタン1061a及びメッシュボタン1061bを含む。点群ボタン1061aは、符号化点群(符号化された点群データ)を提示する要求を受け付けるボタンである。メッシュボタン1061bは、符号化メッシュ(符号化されたメッシュデータ)を提示する要求を受け付けるボタンである。端末は、ユーザにより点群ボタン1061aへの入力がなされると、符号化点群を提示する要求を受け付け、提示データの選択結果としての当該要求をサーバへ通知(送信)する。端末は、ユーザによりメッシュボタン1061bへの入力がなされると、符号化メッシュを提示する要求を受け付け、提示データの選択結果としての当該要求をサーバへ通知(送信)する。なお、提示は、表示と表現されてもよい。
 サーバは、選択結果としての要求を受信すると、選択結果に応じた三次元データを端末へ送信する。サーバは、受信した要求が符号化点群を提示する要求である場合、符号化点群を端末へ送信する。サーバは、受信した要求が符号化メッシュを提示する要求である場合、符号化メッシュを端末へ送信する。
 メッシュは、提示に要する処理負荷が小さいため提示に適するという特徴がある。一方で、点群は、三次元点群で示される三次元モデルの位置情報の精度が高く、計測に適するという特徴がある。例えば、ユーザは、三次元モデルを観察したい場合にはメッシュを選択し、計測したい場合には点群を選択するように、必要な用途に適した種類の三次元データを選択することにより、提示処理を軽減したり、精度よい計測に用いたりすることができる。
 図12は、ユーザの操作に応じて自動的に切り替えられる端末提示画面の一例を示す図である。
 端末は、ユーザの操作を受け付けることで、三次元データを拡大する処理を行う。端末は、所定の拡大率より小さい倍率では、端末提示画面1062のようにメッシュデータを提示し、所定の拡大率以上の倍率では、端末提示画面1063のように点群データを提示してもよい。例えば、端末は、所定の拡大率より小さい倍率でメッシュデータを提示し、ユーザの操作に応じて所定の拡大率に拡大されて提示された時点で、拡大により注目される(拡大により提示される)三次元データの一部のデータに対応する点群データをサーバからダウンロードし、ダウンロードした点群データを復号して提示してもよい。
 上記では、三次元データを拡大または縮小する操作に応じて、提示する三次元データの種類を切り替えることを例示したが、提示する三次元データの種類を切り替えは、その他の操作でもよい。例えば、端末は、提示されているメッシュデータの一部の領域をタップする操作をユーザから受け付けた場合、タップにより選択されたメッシュデータの一部の領域に対応する点群データに切り替えて提示してもよい。端末は、点群データをメッシュデータに重畳して提示されてもよいし、点群データをメッシュデータから切り替えて独立に(つまり、メッシュデータの提示をせずに)提示してもよい。端末は、所定の拡大率で提示される前に予め予測して、拡大された部分に対応する点群データをダウンロードし、ダウンロードした点群データ復号して提示してもよい。また、端末は、点群データ及びメッシュデータの空間同期(座標合わせ)が予めなされている場合、空間同期をすることなくダウンロードした点群データをそのまま提示してもよい。端末は、点群データ及びメッシュデータの空間同期がなされていない場合、空間同期に関する同期情報に基づいて点群データをメッシュデータ(あるいはメッシュデータの座標系)に対して位置合わせをして提示してもよい。なお、端末は、点群データを位置合わせせずに提示してもよい。なお、上記では、点群データをメッシュデータに対して空間同期する例について説明したが、端末は、メッシュデータを点群データに対して空間同期して提示してもよい。
 このように、端末は、必要な点群データのみをダウンロードして、ダウンロードした点群データを復号して提示する。このため、サーバ及び端末間の通信容量の削減、端末の処理削減、提示時間の低遅延化が期待できる。
 一般的に、メッシュデータはデータサイズが少なく、点群データはデータサイズが大きい。つまり、同じ三次元オブジェクトのメッシュデータと点群データとをデータサイズで比較した場合、メッシュデータは、点群データよりも小さい。このため、端末は、最初にメッシュデータをダウンロードし初期提示することで、初期提示までの遅延を少なくすることが可能となる。
 また、端末は、メッシュデータで提示することにより三次元モデルの観察処理に要する処理負荷を低減できる。また、端末は、メッシュデータと点群データとを同時に提示することにより、可視性が高まり計測が容易となる。
 なお、提示する三次元データは、通信のネットワーク帯域に基づいて切り替えられてもよい。端末は、帯域が狭くネットワーク速度が所定の速度より遅い場合にメッシュデータを提示し、ネットワーク速度が所定の速度以上の場合に点群データを提示してもよい。
 また、提示する三次元データは、端末の能力に応じて切り替えられてもよい。例えば、提示する三次元データは、端末の処理性能または端末のCPUの使用率に基づいて切り替えられてもよい。端末は、点群データを提示中に、点群データの提示処理について、端末の処理性能またはCPUのリソースが不足することで困難となる場合に、点群データからメッシュデータの提示に切り替えてもよい。端末は、メッシュデータを提示中に、メッシュデータの提示処理について、端末の処理性能またはCPUのリソースに余裕があると判定された場合に、メッシュデータから点群データの提示に切り替えてもよい。
 次に、三次元データを切り替える他の例について説明する。
 端末は、建築現場で用いられる三次元データを提示する場合、建物または地図などの外観をメッシュデータで提示し、建物のひずみ、亀裂、ゆがみなどのように測定が必要な部位が含まれる場合に、点群データで提示するように、提示する三次元データの種類を切り替えてもよい。
 端末は、スタジアム、ホール、工場などの空間において、照明の明るさ、色合い、雰囲気など外観を提示したい場合にメッシュデータで提示し、スタジオ形状、機材の配置、通路の確保などを計測したい場合に点群データで提示するように、提示する三次元データの種類を切り替えてもよい。
 また、解像度の異なる三次元データが切り替えられて提示されてもよい。
 端末は、三次元モデルをレンダリングして提示する際に、解像度の異なる複数の点群データ、解像度の異なる複数のメッシュデータ、及び、三次元モデルを切り替えて提示してもよい。端末は、例えば、視点から遠い三次元データを提示する場合に低解像度のメッシュデータを提示し、近くに寄った場合に高解像度のメッシュデータに切り替えて提示してもよい。これにより三次元データの表示の精度を向上できる。
 端末は、スポーツにおいて選手の動きを解析する際、特定の動きまたは場所を特定するまではメッシュデータで提示し、特定の動きまたは場所が特定された後に対応する部位の点群データの提示に切り替え、当該点群データを三次元形状の計測に用いてもよい。
 端末は、ビデオゲームなどで解像度の異なる三次元モデルを切り替えてもよい。端末は、例えば、重要な部分の三次元データの提示に高解像度の三次元データを用い、重要でない部分の三次元データの提示に低解像度の三次元データを用いてもよい。これにより、全体の処理パフォーマンスを改善できる。なお、各三次元モデルが重要か否かは、例えば、ビデオゲームの動作に関係があるか否か(シューティングゲームであれば、プレイヤーや標的、銃などが重要など)、プレイヤーの選択に関係あるか否か(購買の場面では、商品情報が重要など)で決定される。なお、ビデオゲームごとに事前に各三次元モデルが重要か否かが設定されていてもよい。
 端末は、三次元モデルとしての地形データを提示する場合、解像度の異なる地形データを切り替えてもよい。これにより、必要に応じてより詳細な地形の情報を表示できる。
 端末は、例えば、Web上でサムネイル表示する際には、低解像度の三次元データを提示し、サムネイル上で選択された三次元データを用いて、アプリケーションで計測または提示する場合には高解像度の三次元データを計測または提示に用いてもよい。なお、例えば、二次元表示の端末に表示する場合等は、三次元データは、特定の視点から特定の方向へ三次元物体(被写体)を見た場合の二次元データとして提示される。言い換えると、三次元データは、特定の視点及び特定の方向を示すカメラ情報と、当該特定の視点から当該特定の方向へ三次元物体を見た場合の二次元データとに分かれていてもよい。
 端末は、表示優先の場合は処理の軽いメッシュデータを提示し、計測する際に、計測に適する点群データに置き換えることにより、処理の軽いアプリケーションの実現が可能となる。
 次に、サーバ1070及び端末1090の構成について説明する。図13は、サーバ及び端末の機能構成の一例を示すブロック図である。
 サーバ1070は、データ生成部1071と、同期部1075と、点群符号化部1076と、メッシュ符号化部1077と、モデル符号化部1078と、多重化部1079と、データ抽出部1080とを備える。
 データ生成部1071は、二次元データ及び三次元データの少なくとも一方に基づいて、三次元データを生成する。生成される三次元データは、点群データ、メッシュデータ、及び、三次元モデルデータの少なくとも2つを含む。データ生成部1071は、点群生成部1072と、メッシュ生成部1073と、モデル生成部1074とを有する。データ生成部1071は、点群生成部1072と、メッシュ生成部1073と、モデル生成部1074とのうちの少なくとも2つを有していればよい。点群生成部1072は、二次元データ及び三次元データの少なくとも一方に基づいて、点群データを生成する。メッシュ生成部1073は、二次元データ及び三次元データの少なくとも一方に基づいて、メッシュデータを生成する。モデル生成部1074は、二次元データ及び三次元データの少なくとも一方に基づいて機械学習することで、三次元モデルデータを生成する。
 データ生成部1071に入力される二次元データは、カメラで取得した二次元画像であってもよい。データ生成部1071に入力される三次元データは、例えば、建築現場や工場、オフィスなどの空間をLiDARなどのセンサで取得される点群データであってもよい。データ生成部1071は、三次元データの点群データに含まれる各点に対して、二次元データの二次元画像を用いて、当該点に対応する色情報を属性情報として生成してもよい。データ生成部1071によって生成される三次元データは、任意の空間に分割されてもよい。点群データ、メッシュデータ、及び、三次元モデルデータは、それぞれ、任意の空間に分割されてもよい。
 同期部1075は、データ生成部1071によって生成された点群データ、メッシュデータ、及び、三次元モデルデータの空間位置または各データの時刻(再生時刻、復号時刻、取得時刻など)の同期をとる。各データの時刻は、再生時刻、復号時刻、取得時刻などである。なお、同期部1075は、点群データ、メッシュデータ、及び、三次元モデルデータの同期をとらずに、同期をとるための同期情報を生成してもよい。なお、同期部1075は、データ生成部1071によって生成された点群データ、メッシュデータ、及び、三次元モデルデータのうちの少なくとも2種類の三次元データの同期を取るか、同期を取るための同期情報(同期信号)を生成する処理を行えばよく、3種類の三次元データの同期を取るための処理(同期処理)を行わなくてもよい。
 点群符号化部1076は、同期部1075によって同期処理が行われた後の点群データを符号化する。なお、点群符号化部1076は、点群データを符号化しなくてもよい。点群データは、予め符号化されていてもよいし、端末1090からの要求に応じて符号化されてもよい。
 メッシュ符号化部1077は、同期部1075によって同期処理が行われた後のメッシュデータを符号化する。
 モデル符号化部1078は、同期部1075によって同期処理が行われた後の三次元モデルデータを符号化する。
 多重化部1079は、符号化された点群データ(符号化点群)、符号化されたメッシュデータ(符号化メッシュデータ)、符号化された三次元モデルデータ、及び、同期情報を所定のフォーマットまたは所定の多重化方法を用いて多重化する。なお、多重化部1079による多重化は行われなくてもよい。この場合、サーバ1070は、多重化部1079を備えていなくてもよい。
 データ抽出部1080は、多重化された三次元データのうち、端末1090の要求に応じた一部の三次元データを抽出し、抽出した一部の三次元データを端末1090に送信する。なお、データ抽出部1080によるデータの抽出は行われなくてもよい。この場合、サーバ1070は、データ抽出部1080を備えていなくてもよい。データ抽出部1080によるデータの抽出が行われない場合、サーバ1070は、多重化部1079により多重化された三次元データを端末1090に送信してもよい。また、さらに多重化部1079による多重化が行われない場合、サーバ1070は、符号化された点群データ(符号化点群)、符号化されたメッシュデータ(符号化メッシュ)、符号化された三次元モデルデータ(符号化三次元モデル)、及び、同期情報を端末1090に送信してもよいし、符号化された点群データ(符号化点群)、符号化されたメッシュデータ(符号化メッシュ)、符号化された三次元モデルデータ(符号化三次元モデル)、及び、同期情報を含むビットストリームを端末1090に送信してもよい。
 端末1090は、制御部1091と、復号部1092と、提示部1093とを備える。
 制御部1091は、提示する一部の三次元データの要求をサーバ1070に送信する。制御部1091は、ユーザによる操作を受け付けて一部の三次元データを特定してもよい。
 復号部1092は、サーバ1070から取得したビットストリーム(符号化データ)に基づいて、一部の三次元データを復号する。
 提示部1093は、復号された一部の三次元データをレンダリングして提示する。
 図13のデータ生成部1071は、図14で示すデータ生成部1110で実現されてもよい。図14は、サーバのデータ生成部の他の一例を示すブロック図である。
 データ生成部1110は、点群生成部1111と、メッシュ生成部1112と、モデル生成部1113とを備える。
 点群生成部1111は、点群生成部1072と同じ機能を有する。点群生成部1111は、点群センサ1101から得られた点群データと、カメラ1102から得られた二次元画像とを取得して、点群データ及び二次元画像に基づいて、点群データを生成する。点群生成部1111により生成される点群データは、各点の位置情報と、当該位置情報で示される各点に対応する属性情報であって、二次元画像から抽出された属性情報(色情報など)を含む。
 メッシュ生成部1112は、点群生成部1111により生成された点群データに基づいて、メッシュデータを生成する。
 モデル生成部1113は、モデル生成部1074と同じ機能を有する。モデル生成部1113は、点群センサ1101から得られた点群データと、カメラ1102から得られた二次元画像とを取得して、点群データ及び二次元画像に基づいて機械学習することで、三次元モデルデータを生成する。
 点群データ、メッシュデータ、及び、三次元モデルデータは、図13で説明したように、それぞれ独立に生成されたデータでもよい。メッシュデータは、図14で説明したように、点群データから生成されてもよい。なお、点群データは、メッシュデータから生成されてもよい。
 メッシュは点群から生成されてもよいし、点群はメッシュから生成されてもよい。
 なお、点群データ、メッシュデータ、及び、三次元モデルデータは、サーバ1070で生成されてもよいし、センサまたはセンサを搭載する端末1090で生成されてもよい。センサは、例えば、点群センサ1101及びカメラ1102である。
 次に、複数の三次元データの座標系を同期する処理について説明する。図15及び図16は、座標系の同期処理について説明するための図である。
 同一空間に対する三次元データであっても、取り扱うシステムまたは座標系の違いにより、システムで取り扱うローカル座標系の原点位置(原点座標)が、実際の座標と異なる場合がある。
 例えば、メッシュデータが点群データから生成された場合には、メッシュデータと点群データとで原点位置が同一であるが、メッシュデータと点群データとがそれぞれ異なるシステムで生成された場合には、メッシュデータと点群データとで原点位置が異なる可能性がある。
 図15及び図16の例では、メッシュデータの座標系の原点座標と、点群データの座標系の原点座標とは、両方とも、例えば世界座標における(x1, y1, z1)であり、メッシュデータの座標系と点群データの座標系とが同一である。なお、これらの原点座標が同一でない場合には、これらの原点座標は、同一になるように補正されてもよい。
 次に、分割された三次元空間情報を同期する場合について説明する。
 図15は、メッシュデータを分割するための三次元空間領域と、点群データを分割するための三次元空間領域とが同一の場合が示されている。具体的には、メッシュデータ座標系における複数の三次元空間領域と、点群座標系における複数の三次元空間領域との間で、三次元空間領域の数、三次元空間領域のサイズ、及び、三次元空間領域の位置が同一である。
 太点線の三次元空間領域に着目すると、三次元空間を示すバウンディングボックスの原点(黒三角のマーク)及び当該バウンディングボックスの最大値の点(黒四角のマーク)の位置は、メッシュデータの座標系と点群データの座標系とで同一である。
 このとき、このバウンディングボックスの縦、横、及び、奥行きのサイズもメッシュデータの座標系と点群データの座標系とで同一である。
 なお、図16に示すように、メッシュデータ座標系における複数の三次元空間領域と、点群座標系における複数の三次元空間領域との間で、三次元空間領域の数、三次元空間領域のサイズ、及び、三次元空間領域位置が、完全に同一でなくてもよい。メッシュデータの座標系における三次元空間領域は大きな領域で分割し、点群データの座標系における三次元空間領域はメッシュデータの座標系における三次元空間領域がさらに分割された領域であってもよい。この例では、点群データの座標系の三次元空間領域を複数合わせた単位では、メッシュデータの座標系の三次元空間領域と同一である。
 次に、三次元空間と符号化データとの関係について説明する。図17は、三次元空間と符号化データとの関係について説明するための図である。
 三次元データは、上述したように、例えば、点群データ、メッシュデータ、及び、三次元モデルのいずれかを含む。
 図17に示されるように、三次元データが3つの三次元空間(タイルまたはスペース)で3つの三次元データに分割された場合、符号化装置は、分割された3つの三次元データのそれぞれで符号化し、ヘッダを付けてデータユニット化する。ヘッダには、当該データユニットの符号化データが属する空間の識別子(Space_ID)、及び、データユニットの識別子(DataUnit_ID)をシグナリング(付与)する。
 データユニットには、さらにデータユニットの識別子またはデータユニットの長さ情報などを含むヘッダが付与され、ユニット化されることで符号化方式ユニットが生成される。
 次に、符号化方式ユニットのシンタックスについて説明する。図18は、符号化方式ユニットのシンタックスの一例を示す図である。図19は、符号化点群のシンタックスの一例を示す図である。図20は、符号化メッシュのシンタックスの一例を示す図である。図21は、符号化三次元モデルのシンタックスの一例を示す図である。
 unit_typeは、符号化方式ユニットに格納されるデータユニットの種別を示す。これにより、符号化方式ユニットに格納されるデータユニットの種別が指定される。
 lengthは、データユニットの長さを示す。
 data()は、データユニットの本体を示す。
 図19において、unit_typeが0を示す場合、データユニットが符号化点群の位置情報(ジオメトリ)であることを示す。unit_typeが1を示す場合、データユニットが符号化点群の属性情報であることを示す。unit_typeが2を示す場合、データユニットが符号化点群のメタデータであることを示す。
 図20において、unit_typeが0を示す場合、データユニットが符号化メッシュの位置情報(ジオメトリ)であることを示す。unit_typeが1を示す場合、データユニットが符号化メッシュの属性情報であることを示す。unit_typeが2を示す場合、データユニットが符号化メッシュのメタデータであることを示す。
 図21において、unit_typeが0を示す場合、データユニットが符号化三次元モデルの要素1であることを示す。unit_typeが1を示す場合、データユニットが符号化三次元モデルの要素2であることを示す。unit_typeが2を示す場合、データユニットが符号化三次元モデルのメタデータであることを示す。
 なお、図19~図21で示されるシンタックスは、一例であって、上記の構成に限らない。これらのシンタックスは、シンタックスの一部の構成が用いられてもよいし、上記で説明していないタイプ(種別)が用いられてもよいし、シンタックスの構成要素の順番が入れ替えられたりしてもよい。例えば、符号化方式ユニットのシンタックスでは、図18のように複数の符号化方式で共通の符号化方式ユニットの構成とし、図19~図21で示されるunit_typeやlength、data()が示されてもよい。
 なお、符号化方式ユニットには、さらにヘッダが付与され、符号化方式ユニットの種別が示されてもよい。符号化ユニットの種別は、例えば、点群データを示すpoint_cloud_codec_unit、メッシュデータを示すmesh_codec_unit、三次元モデルデータを示すmodel_codec_unitを含む。これにより、複数の符号化方式を統合的に扱うことが可能となる。
 図22は、三次元データ情報のシンタックスの一例を示す図である。
 シンタックスでは、複数の符号化方式が1つのフォーマットに格納する場合、当該フォーマットに含まれる三次元データの数(number_of_3Dformat)、及び、三次元データの種別(format_type)が示され、それぞれのフォーマットのデータが格納されてもよい。これにより、複数の符号化方式または三次元データを統合的に扱うことが可能となり、また複数の符号化方式または三次元データを識別することが可能となる。
 3Ddata_infoは、複数の三次元データを格納するフォーマット構造情報を示す。
 number_of_3Dformatは、用いられる三次元フォーマットの数を示す。
 format_typeは、格納される三次元データのフォーマットの種別を示す。例えば、format_typeの数字とその数字に対応するフォーマットが下記のように定められてもよい。format_typeが0を示す場合、格納される三次元データのフォーマットが点群データ(point cloud)であることを示す。format_typeが1を示す場合、格納される三次元データのフォーマットがメッシュデータ(mesh)であることを示す。format_typeが2を示す場合、格納される三次元データのフォーマットがG-PCCデータ(g-pcc)であることを示す。format_typeが3を示す場合、格納される三次元データのフォーマットがV-DMCデータ(v-dmc)であることを示す。format_typeが4示す場合、格納される三次元データのフォーマットが三次元モデルデータ(3Dmodel)であることを示す。
 次に、複数の三次元データの符号化データのデータ構造について、三次元データの種類毎に説明する。図23は、符号化点群のデータ構造について説明するための図である。図24は、符号化メッシュのデータ構造について説明するための図である。図25は、符号化三次元モデルのデータ構造について説明するための図である。
 符号化装置は、複数種類の三次元データのそれぞれについて、複数の空間領域のそれぞれ毎に三次元データを複数の三次元データに分割し、分割された複数の三次元データ(つまり複数の分割三次元データ)をそれぞれ符号化し、符号化データを生成する。
 符号化データには、それぞれヘッダが付与され、data_unit_id及びspace_idの少なくとも一方が格納される。
 ここで、data_unit_idは、符号化データの中でデータユニットを識別する識別子であり、符号化データの中で一意である。また、space_idは、空間領域の識別情報を示す。data_unit_idまたはspace_idが、複数の三次元データで共通である場合は、複数の三次元データで同一の値が示される。
 図23~図25の例では、符号化点群におけるdata_unit_id=0のデータユニットと、符号化メッシュにおけるdata_unit_id=3のデータユニットと、符号化三次元モデルにおけるdata_unit_id=0のデータユニットとには、いずれもspace_id=1が付与されている。これは、Space_ID #1で示される共通の三次元空間に含まれる三次元データであることを意味する。
 データ及びヘッダなどのデータは、データユニットまたは符号化方式のようなビットストリーム構造に含まれてもよいし、ISOBMFFの各BOXなど所定のファイルフォーマットに格納されてもよい。
 次に、三次元空間情報について説明する。図26は、複数の三次元空間の一例を二次元的に示した図である。図27は、バウンディングボックスの一例を示す図である。図28は、三次元空間情報のシンタックスの一例を示す図である。
 三次元空間情報のシンタックスにおいて、3Dspace_infoは、分割された三次元空間を示す情報である。3Dspace_infoは、部分復号に用いることができる。
 number_of_spaceは、分割された三次元空間の数を示す。
 space_idは、分割された三次元空間の識別子を示す。
 三次元空間情報は、図27で示されるバウンディングボックスを規定するための情報としてバウンディングボックス情報を含む。
 バウンディングボックス情報は、bounding_box_xyz、及び、bounding_box_whdを含む。
 bounding_box_xyzは、バウンディングボックスの基準点の座標を示す。図27の例では、例えば、x、y、zの座標値(x0、y0、z0)で表される。
 bounding_box_whdは、バウンディングボックスのサイズを示す。図27の例では、例えば、幅w、高さh、及び、奥行d(w0,h0,d0)で表される。
 また、三次元空間情報は、符号化データ毎のデータユニットの識別子を含んでもよい。なお、三次元空間情報は、当該識別子を含まなくてもよい。つまり、識別子は、シグナリングされなくてもよい。
 pointcloud_idは、space_idに対応する空間の符号化点群のデータユニットの識別子を示す。
 mesh_idは、space_idに対応する空間の符号化メッシュのデータユニットの識別子を示す。
 model_idは、space_idに対応する空間の符号化三次元モデルのデータユニットの識別子を示す。
 なお、データユニットにspace_idが示されず、data_unit_idが示される場合、三次元空間情報のそれぞれの空間を示す情報に、符号化データ毎のデータユニットの識別子が格納されてもよい。これにより、三次元空間情報と、分割された三次元符号化データとが対応づけられてもよい。
 また、データユニットにspace_idが示される場合、space_idで三次元空間情報と符号化データ毎のデータユニットを識別子とが対応づけられてもよい。この場合、符号化データ毎のデータユニットの識別子は格納されなくてもよい。
 分割方法、それぞれの分割された空間の原点、及び、バウンディングボックスのサイズを、メッシュデータと点群データとで同一とすることにより、点群データの三次元空間情報とメッシュデータの三次元空間情報とを共通化してもよい。また、点群データとメッシュデータとで同一の三次元空間情報をそれぞれ用いてもよい。このように、異なる複数種類の三次元データ間において、三次元空間情報を共通化してもよいし、同一の三次元空間情報が用いられてもよい。三次元空間情報を共通化することにより、異なる種類への三次元データの切り替え(例えば提示の切り替えまたは伝送の切り替え)が容易となる。また、複数の三次元データを統合的に扱うフォーマットにおいて、三次元データ毎に三次元空間情報が設けられなくてもよく、1つの三次元空間情報を各三次元データで利用することができるため、三次元空間情報のデータ量を削減できる。
 なお、点群データ及びメッシュデータ以外にも三次元モデルの三次元空間情報を他の種類の三次元データと同期してもよいし、他の種類の三次元データの三次元空間情報と共通化してもよい。
 次に、三次元データのデータ構造と部分復号との関係について説明する。図29は、部分復号の一例を示すフローチャートである。図30は、部分復号の対象となる三次元空間領域の一例を示す図である。図31は、部分復号される符号化点群のデータ構造の一例を示す図である。図32は、部分復号される符号化メッシュのデータ構造の一例を示す図である。図33は、部分復号される符号化三次元モデルのデータ構造の一例を示す図である。
 部分復号において、まず、復号装置は、部分復号の対象の三次元空間領域を決定する(S1001)。
 次に、復号装置は、三次元空間情報(3Dspace_info)を用いて、複数の三次元空間領域のバウンディングボックス情報から対象の三次元空間領域と重複する領域を特定し、特定した領域に対応するspace_idを取得する(S1002)。
 次に、復号装置は、符号化データから、取得したspace_idを有するデータユニットを取得して復号する(S1003)。これにより、復号装置は、三次元データの一部を復号する部分復号を行う。部分復号では、復号装置は、三次元データの全部を復号せずに、三次元データの一部のみを復号する。
 例えば、図30に示すように、部分復号の対象となる三次元空間領域が太線の領域である場合、三次元空間情報から、取得する三次元空間のspace_idは#2と決定される。
 そして、図31~図33に示されるように、複数種類の三次元データの符号化データのうちSpace_id=#2に対応付けられているデータユニットが取得され復号される。
 なお、復号装置は、三次元空間情報から、space_idではなくデータユニットIDを取得し、取得したデータユニットIDを有するデータユニットを取得して部分復号してもよい。
 次に、空間同期が取れていない場合について説明する。図34は、空間同期が取れていない異なる種類の三次元データの座標系の一例を示す図である。図35は、三次元データ情報のシンタックスの一例を示す図である。図36は、三次元空間情報のシンタックスの一例を示す図である。
 図34に示すように、符号化装置は、同一空間のデータで座標系の違いにより原点座標が異なる場合、座標の相対値(x1-x2,y1-y2,z1-z2)を算出して補正することで、これらの原点座標を合わせてもよい。符号化装置は、算出した座標の相対値を、同期情報として復号装置(端末)へ通知(送信)してもよい。
 同期情報は、メッシュデータの位置(原点)に対する点群データの位置(原点)の相対位置で示されてもよいし、点群データの位置に対するメッシュデータの位置の相対位置で示されてもよい。
 上記は、三次元モデルデータの場合でも同様である。このように、同期情報は、異なる種類の三次元データの位置(原点)の相対位置で示されてもよい。なお、三次元データの種類が3種類以上の場合、いずれか1つの種類の三次元データを基準とした相対位置が算出される。
 三次元データ情報は、図35に示すように、同期情報を示すspace_sync_informationを含んでもよい。space_sync_informationは、三次元空間の同期情報を示し、例えば、三次元空間のずれ量(基準となる座標と現在の座標との差分値、つまり相対値)を示す。
 三次元データ情報では、複数のフォーマット情報のそれぞれについて、同期情報(space_sync_information)が格納されてもよい。この場合、同期の基準となるデータフォーマットをループの先頭に配置し、2番目のループ以降に先頭のフォーマットからの同期情報(相対位置情報)が格納されてもよい。
 また、三次元空間情報は、図36に示すように、同期情報を示すspace_sync_informationを含んでもよい。三次元空間毎に空間位置がずれている場合、三次元空間毎のループに同期情報が格納されてもよい。
 図37は、端末の機能構成の一例を示す図である。
 端末1120は、復号部1121と、同期提示部1122とを備える。
 復号部1121は、三次元データ情報または三次元空間情報に基づいて、同期情報を復号する。同期提示部1122は、同期情報に基づいて三次元データの位置合わせをして提示する。
 次に、空間同期について説明する。図38は、空間同期処理の一例を示すフローチャートである。
 まず、符号化装置(サーバ)及び復号装置(端末)を含むシステムは、点群データとメッシュデータとの間で空間同期が必要か否かを判定する(S1011)。
 システムは、空間同期が必要と判定した場合(S1011でYes)、ステップS1012を実行し、空間同期が必要でないと判定した場合(S1011でNo)、ステップS1013を実行する。
 ステップS1012では、システムは、点群データとメッシュデータとの間で空間同期が取れているか否かを判定する(S1012)。
 システムは、空間同期が取れていると判定した場合(S1012でYes)、ステップS1014を実行し、空間同期が取れていないと判定した場合(S1012でNo)、ステップS1015を実行する。
 ステップS1013では、システムは、点群データとメッシュデータとを、空間同期せずに提示する(S1013)。
 ステップS1014では、システムは、同期情報に基づいて、点群データとメッシュデータとを空間同期して提示する(S1014)。
 ステップS1015では、システムは、点群データとメッシュデータとを、そのまま提示する(S1015)。
 なお、上記のステップS1011~S1012の処理は、符号化装置により行われてもよいし、復号装置により行われてもよい。ステップS1013~S1015の処理は、復号装置により行われてもよい。
 なお、上記のフローチャートは、点群データとメッシュデータとの間の空間同期処理について説明したが、三次元モデルデータについても同様に実行されてもよい。空間同期処理は、異なる種類の三次元データの間で実行されればよく、空間同期処理の対象となる三次元データの種類は限定されない。
 空間同期が必要か否かは、アプリケーションまたは用途に応じて切り替えられてもよい。例えば、計測用途で三次元データを用いる場合、正確な位置が必要であるため、空間同期が必要と判定されてもよい。
 また、ユーザに表示して提示する場合、正確な位置合わせは不要として、空間同期が不要と判定されてもよい。
 なお、位置合わせのレベルが規定されてもよく、この場合、システム(符号化装置または復号装置)は、位置合わせのレベルに基づき、同期の精度を変えてもよい。
 (その他)
 上記実施の形態では、空間同期を例に、複数の三次元データを同期する例を説明したが、それ以外にも提示時刻、復号時刻、または、取得時刻を合わせる時間同期が実行されてもよい。空間同期及び時間同期の少なくとも一方が実行されてもよい。
 また、三次元データを切り替えたときに提示する色表現を違和感なく切り替えるために、カラーマトリックス、色のビット数、HDRなどのパラメータが同一に設定されてもよい。このように、複数の三次元データの間において、属性情報の同期が取られてもよい。
 上記実施の形態では、点群データ及びメッシュデータのように異なる種類の三次元データを例に三次元データの切り替えについて説明したが、切り替えの対象となる複数の三次元データは、異なる種類の三次元データに限らない。複数の三次元データは、例えば、解像度が異なる三次元データであってもよいし、点の数が異なる複数の点群データであってもよいし、点の数または面の数が異なる複数のメッシュデータであってもよい。また、切り替えの対象となる複数の三次元データは、3以上の三次元データであってもよい。
 また、切り替えの対象となる複数の三次元データは、取得時刻の異なる複数の点群データであってもよい。切り替えの対象となる複数の三次元データは、例えば、建築現場において、施工前の点群データ、施工後の点群データ、10年後の点群データ、モデル化されたメッシュデータなどを含んでもよい。
 三次元データだけでなく、NeRFなどの三次元モデルデータが用いられてもよい。三次元モデルデータは三次元データを提示するためのモデルであり、符号化されてもよいし符号化されなくてもよい。同一空間に対する複数の三次元モデルデータにおいて切り替えられてもよいし、複数の三次元モデルデータにおいて切り替えられてもよい。この場合、上記で説明した、空間同期の方法を用いることができる。また、点群データとメッシュデータとを統合的に扱うデータフォーマットに、三次元モデルデータの識別子を追加することにより、三次元データと三次元モデルデータとを統合的に扱うことが可能となる。また、三次元データと三次元モデルデータの空間情報(原点、バウンディングボックス、分割方法など)を同一とすることで、三次元空間の領域情報を共通化でき、部分復号が容易となる。
 また、第1の解像度よりも低いメッシュデータ、第1の解像度以上のメッシュデータ、第2の解像度よりも低い点群データ、第2の解像度よりも高い点群データの順に処理対象の三次元データ(提示または伝送する三次元データ)が切り替えられてもよい。
 また、データ伝送または符号化のタイミングについて、サーバは、あらかじめ複数の三次元モデルを符号化した状態でデータを蓄積し、端末からの要求に基づき、要求に応じた三次元データを抽出してもよい。サーバは、端末からの要求があったタイミングで要求に応じた三次元データを符号化してもよい。端末は、事前に処理対象の三次元データを要求し、要求した三次元データをサーバからダウンロードしておいてもよい。これにより、端末が提示までにかかる時間を削減できる。
 また、分割された複数の三次元データのそれぞれ毎に、点群データを提示するか、メッシュデータを提示するか、三次元モデルデータを提示するか、あるいは、これらの三次元データのうちの2以上を重畳して提示するかが選択可能であってもよい。端末は、例えば、アバターの胴体部分に対応する分割データをメッシュで提示し、顔部分に対応する分割データは点群で提示することにより、より高精度な提示が可能となる。
 上記実施の形態では、三次元オブジェクトを表す三次元データとして、点群データ、メッシュデータ、及び、三次元モデルデータが例示されたが、これに限らない。例えば、三次元オブジェクトは、視線を示す視線情報と、当該視線から三次元オブジェクトを見た場合の二次元画像とをそれぞれが含む複数のセットで表されてもよい。つまり、当該複数のセットを含むデータが、三次元データの一種として扱われてもよい。また、三次元データはgaussian splattingデータなど他のフォーマットのデータであってもよい。
 図39は、復号装置の構成の一例を示す図である。図40は、復号装置による復号方法の一例を示すフローチャートである。
 復号装置1130は、回路1131と、回路1131に接続されるメモリ1132とを備える。
 回路1131は、以下の動作を行う。
 回路1131は、三次元オブジェクトを表す第1データ、及び、前記三次元オブジェクトを表す第2データを含む符号化方式の1つを示す符号化方式情報(フォーマット)と、前記三次元オブジェクトが含まれる三次元空間を示す識別情報とを含む符号化データを取得する(S1021)。次に、回路1131は、前記符号化データに基づいて、前記三次元空間に対応する、前記第1データ及び前記第2データを復号する(S1022)。次に、回路1131は、前記第1データをレンダリングして提示用の第1提示データを生成する(S1023)。次に、回路1131は、前記第2データをレンダリングして提示用の第2提示データを生成する(S1024)。次に、回路1131は、生成した前記第2提示データから前記第1提示データに切り替えて提示する(S1025)。なお、第1提示データ及び第2提示データは、例えば、レンダリング再構成部1034により生成された二次元データまたは三次元データである。
 これによれば、三次元空間に対応する第1データ及び第2データに基づいて、第1提示データ及び第2提示データを生成し、第2提示データから第1提示データに切り替えて提示するため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレが生じないように提示することができる。よって、第1提示データ及び第2提示データを適切に提示することができる。
 例えば、前記第1データは、前記三次元オブジェクトを表す点群データである。
 このため、第2提示データから、点群データに基づく第1提示データに切り替えて提示するため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレが生じないように切り替えて提示することができる。
 例えば、前記第2データは、前記三次元オブジェクトを表すメッシュデータである。
 このため、メッシュデータに基づく第2提示データから、第1提示データに切り替えて提示するため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレが生じないように切り替えて提示することができる。
 例えば、前記第2データは、前記三次元オブジェクトを表す三次元モデルデータである。前記三次元モデルデータは、視線及び二次元画像の複数セットを機械学習することで得られる機械学習モデルを示す。
 このため、三次元モデルデータに基づく第2提示データから、第1提示データに切り替えて提示するため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレが生じないように切り替えて提示することができる。
 例えば、前記第2データは、前記三次元オブジェクトを所定の視線方向から見た場合の二次元画像である。
 このため、二次元画像に基づく第2提示データから、第1提示データに切り替えて提示するため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレが生じないように切り替えて提示することができる。
 例えば、前記回路は、さらに、ユーザからの提示データの切り替え要求を取得する。前記回路は、前記提示において、前記切り替え要求に応じて、前記第2提示データから前記第1提示データに切り替えて提示する。
 このため、ユーザに指定されたタイミングで、切り替えを行うことができる。
 例えば、前記回路は、さらに、ユーザから提示の態様を変更させるための操作を受け付ける。前記回路は、前記提示において、前記操作に応じて前記提示の態様を変更し、変更に応じて、前記第2提示データから前記第1提示データに切り替えて提示する。
 このため、ユーザの操作に応じたタイミングで、切り替えを行うことができる。
 例えば、前記回路は、前記取得において、前記符号化データを符号化装置から通信ネットワークを介して取得する。前記回路は、前記提示において、前記通信ネットワークの帯域に応じて、前記第2提示データから前記第1提示データに切り替えて提示する。
 このため、通信ネットワークの帯域に応じて切り替えを行うことができ、例えば、通信ネットワークの帯域が所定の帯域未満から所定の帯域以上になったときに第2提示データから第1提示データに切り替えて提示することができる。
 例えば、前記回路は、前記提示において、使用可能な前記回路の能力に応じて、前記第2提示データから前記第1提示データに切り替えて提示する。
 このため、使用可能な回路の能力に応じて切り替えを行うことができ、例えば、使用可能な回路の能力が所定の能力未満から所定の能力以上になったときに第2提示データから第1提示データに切り替えて提示することができる。
 例えば、前記符号化データは、前記第1データの座標系と、前記第2データの座標系とを同期させるための同期情報を含む。前記回路は前記提示において、前記同期情報に基づいて、前記第1提示データ及び前記第2提示データを提示する。
 このため、第1提示データと第2提示データとを座標系を合わせた上で、第2提示データから第1提示データへの切り替えを行うことができる。このため、三次元オブジェクトを表す2つのデータの切り替えにおいて空間のズレがより生じないように切り替えて提示することができる。
 例えば、前記回路は、さらに、前記第1データの座標系と、前記第2データの座標系とを同期させるか否かを判定する。前記回路は、前記第1データの座標系と、前記第2データの座標系とを同期させると判定した場合、前記回路は前記提示において、前記同期情報に基づいて、前記第1提示データ及び前記第2提示データを提示する。
 このため、必要な時に同期処理を行うことができ、必要でない場合に同期処理をスキップできる。よって、処理負荷を低減できる可能性がある。
 例えば、前記第1データ及び前記第2データのそれぞれは、前記第1データ及び前記第2データにおいて共通の構成を有する。
 このため、符号化データのデータ量を小さくできる。よって、通信容量を削減することができる。
 例えば、前記符号化データは、前記三次元オブジェクトが含まれる前記三次元空間を特定するための空間情報を含む。前記回路は、さらに、前記三次元空間の一部の領域を示す対象領域を取得する。前記回路は、前記空間情報に基づいて、前記第1データのうちの一部の第1重複データであって、前記対象領域と重複する第1重複データを特定する。前記回路は、前記復号において、特定した前記第1重複データを復号する。
 このため、例えば、第1重複データのみを取得することで取得するデータの容量を小さくできる。よって、通信容量を削減することができる。また、例えば、第1重複データのみを復号することができる。よって、処理負荷を削減することができる。
 また、回路1131は図41のフローチャートに示す復号方法のように動作してもよい。図41は、復号装置による復号方法の他の一例を示すフローチャートである。
 回路1131は、前記三次元オブジェクトを表し、且つ、前記第1データの第1符号化方式と異なる第2符号化方式を示す符号化方式情報を復号する(S1031)。回路1131は、前記符号化方式情報が示す第2符号化方式の第2データを復号する(S1032)。前記第2データは、提示用の第2提示データを生成するために用いられる。
 これによれば、復号により得られた符号化方式情報が示す第2符号化方式の第2データを復号するため、適切な提示用の第2提示データを生成のための第2データを得ることができる。
 図42は、符号化装置の構成の一例を示す図である。図43は、符号化装置による符号化方法の一例を示すフローチャートである。
 符号化装置1140は、回路1141と、回路1141に接続されるメモリ1142とを備える。
 回路1141は、以下の動作を行う。
 回路1141は、前記三次元オブジェクトを表し、且つ、前期第1データの第1符号化方式と異なる第2符号化方式を示す符号化方式情報を生成する(S1041)。回路1141は、前記符号化方式情報が示す第2符号化方式の第2データを生成する(S1042)。回路1141は、前記符号化方式情報と前記第2データを含むビットストリームを生成する(S1043)。前記第2データは、提示用の第2提示データを生成するために用いられる。
 これによれば、符号化方式情報及び第2データを含むビットストリームを生成するため、当該ビットストリームを取得した復号装置は、適切な提示用の第2提示データを生成のための第2データを得ることができる。
 (実施の形態2)
 本実施の形態では、例えば、点群データ、メッシュデータ、及び、三次元モデルデータを含む三次元データを取り扱うアプリケーションにおいて、アプリケーションのユースケースに応じて、三次元データ、三次元データフォーマット、及び、符号化方法を切り替える方法について説明する。
 点群データ、メッシュデータ、及び、三次元モデルデータが同一の符号化方式で同時に符号化されている場合、復号装置は、符号化データから所望の種類の三次元データを復号してもよい。
 さらに、点群データ、メッシュデータ、及び、三次元モデルデータのそれぞれの種類において、異なる解像度の三次元データが符号化されている場合、符号化データから所望の解像度の三次元データを抽出して復号してもよい。
 図44は、実施の形態2における、三次元データの一部を復号する部分復号について説明するための図である。
 制御部1202は、三次元データのうち復号対象の一部の三次元データを指定する。
 部分復号部1201は、制御部1202によって指定された一部の三次元データを復号する。例えば、部分復号部1201は、符号化装置から三次元データを取得し、取得した三次元データの一部を復号する。
 図45は、実施の形態2における、三次元データの一部を抽出して復号する例について説明するための図である。
 制御部1212は、三次元データのうち抽出対象の三次元データを指定する。
 データ抽出部1211は、制御部1212によって指定された一部の三次元データを抽出する。例えば、データ抽出部1211は、三次元データから三次元データの一部を抽出し、抽出した一部の三次元データを例えば復号装置に送信する。
 これにより、復号装置は、指定された一部の三次元データを復号できる。
 なお、符号化データは、階層構造を有していてもよい。また、階層構造を示す階層データが出力されてもよい。
 なお、以下では、主に、点群データまたはメッシュデータを用いた切り替え方法について説明するが三次元モデルデータモデルにも同様に適用可能である。つまり、切り替え方法では、点群データ、メッシュデータ、及び、三次元モデルデータのうちの2以上の三次元データを用いて、切り替えが行われてもよい。
 次に、サーバ1220及び端末1230の構成について説明する。図46は、実施の形態2における、サーバ及び端末の機能構成の一例を示すブロック図である。なお、サーバ1220は、例えば、三次元データを符号化する符号化システムで、端末1230は、三次元データを復号して生成する復号システムである。
 サーバ1220は、点群生成部1221と、メッシュ生成部1222と、点群符号化部1223と、多重化部1224とを備える。
 点群生成部1221は、二次元データ及び三次元データの少なくとも一方に基づいて、点群データを生成する。
 メッシュ生成部1222は、点群生成部1221により生成された点群データに基づいて、メッシュデータを生成する。
 点群符号化部1223は、点群生成部1221により生成された点群データ、及び、メッシュ生成部1222により生成されたメッシュデータを含む三次元データを符号化する。
 多重化部1224は、符号化された三次元データを所定のフォーマットまたは所定の多重化方法を用いて多重化する。なお、多重化部1224による多重化は行われなくてもよい。この場合、サーバ1220は、多重化部1224を備えていなくてもよい。多重化された符号化データは、端末1230に伝送(送信)される。
 端末1230は、制御部(アプリ実行部)1231と、復号部1232と、提示部1233とを備える。
 制御部1231は、復号部1232が復号する一部の三次元データを指定する。指定される一部の三次元データは、例えば、三次元データの種類(フォーマット)である。制御部1231は、点群データを復号するか、メッシュデータを復号するかを指定する。制御部1231は、三次元データの解像度を指定してもよい。
 復号部1232は、サーバ1220から受信した符号化データのうち、制御部1231により指定された一部の三次元データを復号する。復号部1232は、制御部1231により点群データの復号を指定されていれば点群データを復号し、制御部1231によりメッシュデータの復号を指定されていればメッシュデータを復号する。あるいは、復号部1232は、指定された解像度の三次元データを復号する。
 提示部1233は、復号部1232により復号された一部の三次元データを提示する。提示部1233は、復号部1232により点群データが復号されていれば点群データを提示し、復号部1232によりメッシュデータが復号されていればメッシュデータを提示する。あるいは、復号部1232は、指定された解像度の三次元データを提示する。
 ここで、点群データ、メッシュデータ、及び、三次元モデルデータは、互いに解像度が異なるデータであり、また、表示の見え方が異なるデータであり、また、粒度の異なるデータである。点群データ、メッシュデータ、及び、三次元モデルデータの少なくとも2つを含む三次元データは、階層化されたデータであるともいえる。
 図47は、実施の形態2における、端末による処理の一例を示すフローチャートである。
 制御部1231は、所定の処理に基づき、使用する三次元データのフォーマットを決定する(S1201)。
 制御部1231は、出力(提示)する三次元データのフォーマットを復号部1232に指示(指定)する(S1202)。
 復号部1232は、所定の方法で指示されたフォーマットの三次元データを復号し、出力する(S1203)。
 提示部1233は、所定の方法で指示されたフォーマットの三次元データをアプリケーションで使用する(S1204)。例えば、提示部は、当該三次元データを提示する。
 次に、符号化装置による位置情報の符号化方式の一例であるトライソープ方式について説明する。
 トライソープ方式は、G-PCC符号化方式において点群データの位置情報を符号化する方式の一つであり、不可逆圧縮方式である。トライソープ方式では、処理対象の元点群を三角形の集合に置き換え、その平面上に点群を近似する。具体的には、元点群をノード内の頂点情報に置き換え、頂点同士を結んで三角形群を生成する。また、三角形を生成するための頂点情報がビットストリームに格納され、復号装置へ送られる。
 まず、トライソープ方式を用いた符号化処理について説明する。図48は、実施の形態2における、元点群の例を示す図である。図48に示すように、対象物の点群1242は、対象空間1241に含まれ、複数の点1243を含む。
 初めに、符号化装置は、元点群を所定の深さ(depth)まで8分木(Octree)分割する。8分木分割では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層まで繰り返される。
 ここで、通常の8分木符号化では、例えば、ノードに含まれる点群の数の1つ又は閾値以下になるまで分割が繰り返される。一方、トライソープ方式は、8分木分割は途中の階層まで行われるが、当該階層以下の階層に対しては行われない。このような途中の階層までの8分木を、剪定8分木と呼ぶ。
 図49は、実施の形態2における、剪定8分木の例を示す図である。図49に示すように、点群1242は、剪定8分木の複数のリーフノード1244(最下層のノード)に分割される。
 次に、符号化装置は、剪定8分木のリーフノード1244の各々に対して以下の処理を行う。なお、以下では、リーフノードを単にノードとも記す。符号化装置は、ノードのエッジ(edge)に近い点群の代表点として、エッジ上に頂点を生成する。この頂点をエッジ頂点と呼ぶ。例えば、エッジ頂点は、複数のエッジ(例えば平行な4辺)の各々に対して生成される。
 図50は、実施の形態2における、リーフノード1244を二次元表示した例であり、例えば、図50に示すz方向から見たxy平面を示す図である。図50に示すように、リーフノード1244内の複数の点1251のうちエッジの近接点に基づき、エッジ上にエッジ頂点1252が生成される。
 なお、図50では、リーフノード1244の外周の点線がエッジである。また、この例ではエッジとの距離が1以内の点(図50における範囲1253に含まれる点)の位置の重み付き平均の位置にエッジ頂点1252が生成される。なお、距離の単位は例えば点群の分解能であるが、これに限らない。また、この距離(閾値)は、この例では1であるが、1以外でもよく、可変であってもよい。
 次に、符号化装置は、複数のエッジ頂点を含む平面の法線方向に存在する点群に基づき、ノードの内部にも頂点を生成する。この頂点をセントロイド(centroid)頂点と呼ぶ。
 図51及び図52は、実施の形態2における、セントロイド頂点の生成方法を説明するための図である。まず、符号化装置は、エッジ頂点群の中から例えば4点を代表点として選択する。図51に示す例ではエッジ頂点v1~v4が選択される。次に、符号化装置は、4点を通る近似平面1261を算出する。次に、符号化装置は、近似平面1261の法線nと、4点の平均座標Mとを算出する。次に、符号化装置は、平均座標Mから法線nの方向に延びる半直線に近い1以上の点(例えば図52に示す範囲1262に含まれる点)の重み付き平均座標にセントロイド頂点Cを生成する。
 次に、符号化装置は、エッジ頂点とセントロイド頂点の情報である頂点情報をエントロピー符号化し、符号化された頂点情報を、ビットストリームに含まれるジオメトリデータユニット(Geometry Data Unit:以下、GDUと記す)に格納する。なお、GDUは、頂点情報に加え、剪定8分木を示す情報を含む。
 図53は、実施の形態2における、頂点情報の例を示す図である。上記の処理により、図53に示すように、点群1242は頂点情報1263に変換される。
 次に、上記で生成されたビットストリームの復号処理について説明する。まず、復号装置は、ビットストリームからGDUを復号し、頂点情報を得る。次に、復号装置は、頂点同士を結び、三角形群であるトライソープ・サーフェス(TriSoup-Surface)を生成する。
 図54は、実施の形態2における、トライソープ・サーフェスの例を示す図である。図54に示す例では、頂点情報に基づき、4つのエッジ頂点v1~v4と、セントロイド頂点Cとが生成される。また、セントロイド頂点Cと、2つのエッジ頂点とを頂点とする三角形1271(トライソープ・サーフェス)が生成される。例えば、隣接する2つエッジ上の2つのエッジ頂点の組がそれぞれ選択され、選択された組とセントロイド頂点とを頂点とする三角形1271が生成される。
 図55は、実施の形態2における、点群の復元処理を説明するための図である。上記の処理がリーフノード毎に行われることで、図55に示すように、対象物を複数の三角形1271で表現した三次元モデルが生成される。
 次に、復号装置は、三角形1271の表面に一定間隔で点1272(フェース頂点)を生成することで、点群1273の位置情報を復元する。
 トライソープ方式において、点群データの出力に加え、解像度の異なる点群データまたはメッシュデータの出力を可能とするユースケースに応じて、所望の解像度の点群データまたはメッシュデータを復号して出力可能な復号部について説明する。以下では、点群データの圧縮方式の一例であるG-PCCにおけるトライソープ方式による符号化データの復号を例に説明するが、V-DMCやDracoなどのメッシュデータの圧縮の復号にも適用可能である。
 図56は、実施の形態2における、復号部の構成の一例を示す図である。
 復号部1232は、メッシュ頂点生成部1281と、高解像度用付加情報復号部1282と、追加頂点生成/補正部1283と、追加頂点生成/補正部1284と、第1接続情報生成部1285と、点群生成用付加情報復号部1286と、点生成部1287と、第2接続情報生成部1288と、第3接続情報生成部1289と、点生成部1290とを備える。
 メッシュ頂点生成部1281は、ビットストリームを復号し、面を構成する頂点(エッジ頂点)情報を得る。
 高解像度用付加情報復号部1282は、面を高解像度化するための追加頂点を復元するための付加情報をビットストリームから復号する。例えば、Triangle-soupでは、面を構成する頂点とはノード毎のエッジ頂点であり、追加頂点はノード毎の重心点(セントロイド頂点)やノードの面に位置する点(フェース頂点)である。
 追加頂点生成/補正部1283は、面を構成する追加の頂点を復元(生成)する。追加頂点生成/補正部1283は、例えば、エッジ頂点と、重心点を復元するための拡張情報とに基づいて、ノード毎の重心点(セントロイド頂点)などノード内の点を復元(生成)する。これにより、追加頂点生成/補正部1283は、面を高解像度化する。
 追加頂点生成/補正部1284は、さらに、エッジ頂点と、重心点と、面頂点を復元するための拡張情報とに基づいて、面を構成する追加の頂点を復元(生成)する。追加頂点生成/補正部1284は、例えば、ノードの面に位置する点(フェース頂点)を復元(生成)する。
 なお、追加頂点生成/補正部1283、1284は、点を復元した後、復元した点を所定の方法で補正してもよい。
 第1接続情報生成部1285は、所定の方法で複数の復元点のうちペアとなる復元点を接続し、面を構成する。これにより、第1接続情報生成部1285は、面を構成する復元点の接続関係を示す第1接続情報を生成する。
 点群生成用付加情報復号部1286は、点群を復元するための拡張情報をビットストリームから復号する。
 点生成部1287は、第1接続情報生成部1285により構成された面、及び、点群生成用付加情報復号部1286により復号された拡張情報に基づき所定の方法で点を生成し出力する。これにより点群が出力される。
 ここで、メッシュ頂点生成部1281により生成されたエッジ頂点は、低解像度の面を構成する点である。追加頂点生成/補正部1283により生成されたノード内の点は、中解像度の面を構成する点である。追加頂点生成/補正部1284により生成されたフェース頂点は、高解像度の面を構成する点である。
 復号部1232は、追加頂点生成/補正部1284による処理、及び、第1接続情報生成部1285による処理で生成された、高解像度面情報(面を構成する点及び第1接続情報)を出力してもよい。
 第2接続情報生成部1288は、追加頂点生成/補正部1283により出力される中解像度の面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第2接続情報を生成する。復号部1232は、追加頂点生成/補正部1283による処理、及び、第2接続情報生成部1288による処理で生成された、中解像度面情報(面を構成する点及び第2接続情報)を出力してもよい。
 第3接続情報生成部1289は、メッシュ頂点生成部1281により出力される低解像度の面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第3接続情報を生成する。復号部1232は、メッシュ頂点生成部1281による処理、及び、第3接続情報生成部1289による処理で生成された、低解像度面情報(面を構成する点及び第3接続情報)を出力してもよい。
 第4接続情報生成部1291は、メッシュ頂点生成部1281により出力される低解像度の面を構成する点からさらに一部の点を取り除く処理を行うことで、低解像度の面よりもさらに解像度が低い面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第4接続情報を生成する。復号部1232は、メッシュ頂点生成部1281による処理、及び、第4接続情報生成部1291による処理で生成された、さらに低解像度面情報(親ノードメッシュ)を出力してもよい。
 点生成部1290は、メッシュ頂点生成部1281により出力される低解像度の面に基づき所定の方法で点を生成し出力する。これにより点群が出力される。点生成部1290により出力される点群は、点生成部1287により出力される点群よりも解像度が低い低解像度点群である。
 なお、復号部1232は、点生成部1287及び点生成部1290の他に、解像度の異なる面に対する点を復元する点生成部を有していてもよい。このように、復号部1232は、解像度の異なる点群を出力してもよい。
 このように、復号部1232は、復号において、復元する面を構成する点を増やし、解像度の高い面を構成する面情報を生成してもよいし、復号で得られる少ない点を用いて面を接続する低解像度の面情報を生成してもよい。
 復号部1232は、異なる複数の解像度の点群データ、または、異なる複数の解像度のメッシュデータを出力してもよい。そして、所望の解像度の点群データまたはメッシュデータが、アプリケーションにおいて選択して使用されてもよい。また、制御部1231が解像度または三次元データの種別(点群データ、メッシュデータ、または、三次元モデルデータ)を指定し、復号部1232が指定された種別の三次元データを復号してもよい。このとき、指定されたデータ以外を復号または再生する処理はスキップされてもよい。これにより処理量を削減可能である。
 なお、複数の三次元データは、アプリケーションにより重畳して用いられてもよいし、復号部1232は、複数の三次元データを重畳したデータを出力してもよい。ここで、複数の三次元データとは、異なる種別の三次元データであってもよいし、異なる解像度の三次元データであってもよい。
 図57は、実施の形態2における、出力可能なフォーマットのメタデータ(SEI)のシンタックスの一例を示す図である。
 符号化部において、符号化データに含まれるフォーマット、つまり復号部が出力可能なフォーマットを示すメタデータ(SEI)をビットストリームに含めて伝送する。また、復号部ではメタデータを解析することで、復号部が出力可能なフォーマットを知ることが可能である。また、復号部1232は、制御部(アプリ実行部)1231に出力可能なフォーマットを示すメタデータを出力してもよい。メタデータには、例えば、分割空間毎の符号化データの場合、分割空間毎に、出力可能なフォーマットが示されてもよい。
 num_output_formatは、出力可能なフォーマットの数を示す。format_typeは、出力可能なフォーマットの種別を示す。
 なお、メタデータでは、デフォルトの出力は示されず、オプションで出力可能なフォーマットのみが示されてもよい。
 制御部(アプリ実行部)1231では、メタデータが参照され、出力可能なフォーマットが確認され、出力可能なフォーマットの中から出力されるフォーマットが決定され、決定されたフォーマットが復号装置へ指示される。
 なお、復号装置が複数の三次元データを重畳して出力することが可能な場合、復号装置が複数の三次元データを重畳して出力可能か否かを示すフラグ、または、重畳して出力する複数の三次元データのフォーマットの種別がシグナリングされてもよい。つまり、メタデータでは、上記フラグまたは上記フォーマットの種別が示されてもよい。また、メタデータでは、出力可能なフォーマットの組み合わせを示すフォーマット種別が示されてもよい。
 また、format_typeは、ビットごとに所定のフォーマットが出力可能な否かのフラグであってもよい。
 図58は、実施の形態2における、format_typeの一例を示す図である。図59は、実施の形態2における、format_typeの他の一例を示す図である。
 なお、format_typeは一例であって、これに限らない。図58及び図59の例のうち、一部のみが用いられたり、記載のないタイプが用いられたり、順番が入れ替えられてもよい。
 次に、図47で説明したステップS1203の詳細な処理について説明する。図60は、実施の形態2における、所定の方法で指示されたフォーマットの三次元データを復号する処理の詳細の一例を示すフローチャートである。
 復号部1232は、制御部1231により指示された出力フォーマットを判定する(S1211)。復号部1232は、指示された出力フォーマットが、低解像度メッシュデータであるか、高解像度メッシュデータであるか、点群データであるかを判定する。
 復号部1232は、出力フォーマットが低解像度メッシュデータである場合、エッジ頂点を復号する(S1212)。例えば、復号部1232は、点群データに基づいて、面(トライノードのメッシュ)を復元(生成)し、面を構成する頂点(エッジ頂点)を復元(生成)する。
 復号部1232は、エッジ頂点に基づく接続情報を生成することで低解像度メッシュデータを生成する(S1213)。例えば、復号部1232は、低解像度の面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第3接続情報を生成することで低解像度メッシュデータ(低解像度面情報)を生成する。
 復号部1232は、生成した低解像度メッシュデータを出力する(S1214)。
 復号部1232は、出力フォーマットが高解像度メッシュデータである場合、エッジ頂点を復号する(S1215)。例えば、復号部1232は、点群データに基づいて、面(トライノードのメッシュ)を復元(生成)し、面を構成する頂点(エッジ頂点)を復元(生成)する。
 復号部1232は、ノード毎の重心点(セントロイド頂点)、または、ノードの面に位置する面頂点(フェース頂点)を復号し、復号頂点(エッジ頂点、重心点、及び、面頂点)に基づく接続情報を生成することで高解像度メッシュデータを生成する(S1216)。例えば、復号部1232は、高解像度の面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第1接続情報を生成することで高解像度メッシュデータ(高解像度面情報)を生成する。
 復号部1232は、生成した高解像度メッシュデータを出力する(S1217)。
 復号部1232は、出力フォーマットが点群データである場合、エッジ頂点を復号する(S1218)。例えば、復号部1232は、点群データに基づいて、面(トライノードのメッシュ)を復元(生成)し、面を構成する頂点(エッジ頂点)を復元(生成)する。
 復号部1232は、ノード毎の重心点(セントロイド頂点)、または、ノードの面に位置する面頂点(フェース頂点)を復号し、復号頂点(エッジ頂点、重心点、及び、面頂点)に基づく接続情報を生成することで高解像度メッシュデータを生成する(S1219)。例えば、復号部1232は、高解像度の面を構成する点に基づき、所定の方法で復元点を接続し、復元点の接続関係を示す第1接続情報を生成することで高解像度メッシュデータ(高解像度面情報)を生成する。
 復号部1232は、高解像度メッシュデータに基づいて点群データを生成する(S1220)。
 復号部1232は、生成した点群データを出力する(S1221)。
 次に、サーバ1300及び端末1310の他の構成について説明する。図61は、実施の形態2における、サーバ及び端末の機能構成の他の一例を示すブロック図である。
 サーバ1300は、点群生成部1301と、メッシュ生成部1302と、点群符号化部1303と、多重化部1304と、データ抽出部1305とを備える。
 点群生成部1301は、二次元データ及び三次元データの少なくとも一方に基づいて、点群データを生成する。
 メッシュ生成部1302は、点群生成部1301により生成された点群データに基づいて、メッシュデータを生成する。
 点群符号化部1303は、点群生成部1301により生成された点群データ、及び、メッシュ生成部1302により生成されたメッシュデータを含む三次元データを符号化する。
 多重化部1304は、符号化された三次元データを所定のフォーマットまたは所定の多重化方法を用いて多重化する。なお、多重化部1304による多重化は行われなくてもよい。この場合、サーバ1300は、多重化部1304を備えていなくてもよい。
 データ抽出部1305は、多重化部1304により生成された符号化データのうち、端末1310により指定された一部の三次元データを抽出し、抽出した一部の三次元データ、あるいは抽出された一部の三次元データを用いて再多重化された三次元データを端末1310に伝送(送信)する。
 端末1310は、制御部(アプリ実行部)1311と、復号部1312と、提示部1313とを備える。
 制御部1311は、サーバ1300が伝送する一部の三次元データを指定する。指定される一部の三次元データは、例えば、三次元データの種類(フォーマット)である。制御部1311は、点群データを抽出するか、メッシュデータを抽出するかを指定する。制御部1311は、三次元データの解像度を指定してもよい。
 復号部1312は、サーバ1300から受信した符号化データに基づいて一部の三次元データを復号する。復号部1312は、サーバ1300から一部の三次元データのみを受信してもよいし、全部の三次元データを受信してもよい。復号部1312は、全部の三次元データを受信した場合、全部の三次元データのうちの一部の三次元データを復号する。言い換えると、サーバ1300は、一部の三次元データのみを端末1310に送信してもよいし、全部の三次元データを端末1310に送信してもよい。
 提示部1313は、復号部1312により復号された一部の三次元データを提示する。
 ここで、点群データ、メッシュデータ、及び、三次元モデルデータは、互いに解像度が異なるデータであり、また、表示の見え方が異なるデータであり、また、粒度の異なるデータである。点群データ、メッシュデータ、及び、三次元モデルデータの少なくとも2つを含む三次元データは、階層化されたデータであるともいえる。
 図62は、実施の形態2における、端末による処理の他の一例を示すフローチャートである。
 制御部1311は、所定の処理に基づき、使用する三次元データのフォーマットを決定し、決定したフォーマットへの切り替えをサーバに要求する(S1301)。
 サーバ1300は、要求されたフォーマットの三次元データを抽出して伝送する(S1302)。
 復号部1312は、伝送されたフォーマットの三次元データを復号し、出力する(S1303)。
 提示部1313は、復号された三次元データをアプリケーションで使用する(S1304)。例えば、提示部は、当該三次元データを提示する。
 次に、複数の解像度の三次元データの部分復号や復号出力の切り替えを実現するための解像度別に符号化データを格納するデータユニット構造について説明する。図63は、実施の形態2における、データユニットの構造の一例を示す図である。
 データユニットは、解像度順に符号化データを含む。なお、低解像度のデータは、低解像のメッシュデータを構成する点、及び、接続情報を復元するためのデータまたはメタデータを含む。また、高解像度のデータは、高解像のメッシュデータを構成する点、及び、接続情報を復元するためのデータまたはメタデータを含む。点情報は、点群データを構成する点を復元するためのデータまたはメタデータを含む。
 図63の例では、「低解像度」は、低解像度の三次元データを復号するための符号化データを示す。「低解像度」は、例えばトライソープの場合、ノード毎のエッジ頂点を復元するための符号化データである。「高解像度」は、高解像度の三次元データを復元するための拡張情報(高解像度用付加情報)を示す。「高解像度」は、例えばトライソープの場合、追加の頂点を復元するための符号化データである。「点情報」は、点情報を復元するための拡張情報(点群生成用付加情報)を示す。「点情報」は、例えばトライソープの場合、点を復元するための符号化データである。
 例えば、復号部1232は、低解像度のデータのみを出力する場合、符号化データから、データユニットヘッダと、データユニットの中の低解像度のデータとを読み出し、復号する。この場合、復号部1232は、高解像度のデータ、及び、点情報のデータを読み出さなくてよい。
 この構成により、高解像度及び点情報など、後段のデータ読み出し処理が不要となるため、復号開始までの時刻を早めることができ、低遅延な復号を実現できる。また、後段の処理が不要になるため、処理速度を向上できる。
 また、同様に、復号部1232は、高解像度のデータを出力する場合、符号化データから、データユニットヘッダと、データユニットの中の低解像度のデータと、データユニットの中の高解像度のデータとを読み出し、低解像度のデータ及び高解像度のデータの両方を用いて復号する。つまり、復号部1232は、低解像度のデータなしで、高解像度のデータのみを用いて復号することはできない。この場合、点情報の読み出しは不要となり、同様の効果、つまり、後段のデータ読み出し処理が不要となるため、復号開始までの時刻を早めることができ、低遅延な復号を実現できる。また、後段の処理が不要になるため、処理速度を向上できる。
 次に、符号化方式ユニットについて説明する。図64は、実施の形態2における、符号化方式ユニットのシンタックスの一例を示す図である。図65は、実施の形態2における、タイプ情報の一例を示す図である。
 図63で説明した構成または処理を可能とするために、符号化方式ユニットのヘッダには、データユニットの種別を識別するためのタイプ情報(unit_type)が格納されている。タイプ情報は、例えば、三次元データの解像度を示すタイプを示す。
 復号装置は、符号化方式ユニットヘッダにおけるunit_typeを解析することで、符号化データの解像度を識別可能となり、復号処理を決定することが可能となる。
 なお、解像度を識別するタイプは、識別子で示されてもよいし、符号化方式ユニットヘッダではないユニットのヘッダ、例えばデータユニットのヘッダまたはメタデータに格納されてもよい。
 なお、図65で例示されるunit_typeは一例であって、これに限らない。図65の例のうち、一部のみが用いられたり、記載のないタイプが用いられたり、順番が入れ替えられてもよい。
 次に、部分伝送用のデータユニット構造について説明する。図66~図68は、実施の形態2における、部分伝送用のデータユニット構造の一例を示す図である。
 図67、図68の例に示されるデータユニット構造では、解像度順に各解像度に対応するデータがヘッダと符号化データで構成されるデータユニットに格納されることで、所望のデータユニットのみを抽出することが可能となる。
 また、図66のように所望のデータユニットのみを抽出しファイルを構成することが可能となるため、後段のデータユニットの送信が不要となり、伝送量の削減効果がある。また、その場合、復号も不要となるため、処理量の削減効果がある。
 例えば、高解像度のデータを復号したい場合は、図67に示すように、低解像度のデータユニット及び高解像度用の拡張情報データユニットが抽出され、復号装置に伝送される。高解像度の点群データを復号したい場合は、低解像度のデータユニット、高解像度のデータユニット、及び、点情報のデータユニットが抽出され、復号装置に伝送される。
 次に、部分伝送用の符号化方式ユニットについて説明する。図69は、実施の形態2における、部分伝送用の符号化方式ユニットのシンタックスの一例を示す図である。図70は、実施の形態2における、部分伝送用の実施の形態2における、タイプ情報の一例を示す図である。
 図66~図68で説明した構成または処理を可能とするために、符号化方式ユニットのヘッダには、データユニットの種別を識別するためのタイプ情報(unit_type)が格納されている。タイプ情報は、例えば、三次元データの解像度を示すタイプを示す。
 復号装置は、データ種別に基づき復号方法を決定する。復号装置は、例えば、三次元データの解像度を示す種別、または、階層化されている場合は、追加情報であることを示す種別に基づいて復号方法を決定する。種別は、階層化されているか否かを示すフラグで示されてもよい。復号装置は、タイプ情報(unit_type)に基づき同一の三次元データの符号化データであることを識別可能となり、三次元データの復号が可能となる。
 なお、図70で例示されるunit_typeは一例であって、これに限らない。図70の例のうち、一部のみが用いられたり、記載のないタイプが用いられたり、順番が入れ替えられてもよい。
 次に、グループID(group ID)について説明する。図71は、実施の形態2における、グループIDについて説明するための図である。
 グループIDは、階層データが、同じ三次元点群から生成されたことを識別するための識別子を示す。グループIDは、符号化ユニットヘッダに格納されてもよいし、データユニットヘッダに格納されてもよい。これにより、符号化装置は、階層データを用いて符号化する際、どのデータユニットと組み合わせて復号するかを判定することが可能となる。
 グループIDは、データユニットが同一のグループであることを示してもよいし、対応または参照する低解像度のデータユニットIDが高解像度のデータユニット内に示されてもよい。対応関係を示す方法を用いることで同様の効果が期待できる。
 例えば、groupID=1の高解像度の三次元点群を復号する場合、復号装置は、ヘッダを解析することで、unit_type=6(完全な符号化低解像データジオメトリ)かつgroupID=1のデータユニット、及び、unit_type=9(高解像拡張用符号化ジオメトリ情報)かつgruopID=1のデータユニットを抽出し、抽出したデータユニットを復号することが可能となる。
 図72は、実施の形態2における、復号装置の構成の一例を示す図である。図73は、実施の形態2における、復号装置による復号方法の一例を示すフローチャートである。
 復号装置1320は、回路1321と、回路1321に接続されるメモリ1322とを備える。
 回路1321は、以下の動作を行う。
 回路1321は、符号化データを取得する(S1311)。回路1321は、前記符号化データに基づいて複数の第1頂点を復元する(S1312)。回路1321は、復元した前記複数の第1頂点を接続して第1面を含む第1面情報(第4接続情報)を生成する(S1313)。回路1321は、前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元する(S1314)。回路1321は、復元した前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報(第1接続情報)を生成する(S1315)。回路1321は、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する(S1316)。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して、出力するため、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 例えば、回路1321は、さらに、前記第2面に基づいて複数の点を含む点群データを生成する。回路1321は、前記点群データを出力する。
 例えば、前記符号化データは、前記複数の第1頂点及び前記第1面情報を含む第1符号化データと、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データとを含む。
 例えば、前記符号化データは、ヘッダ及びデータユニットを含む。前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む。
 例えば、前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む。
 例えば、回路1321は、さらに、前記第1符号化データと前記第2符号化データの一部を復号し、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データとのいずれかを出力する。
 例えば、回路1321は、さらに、出力可能なフォーマットの数を示す数情報を取得する。回路1321は、さらに、前記数情報に基づいて、出力するデータを決定する。
 例えば、回路1321は、さらに、出力可能なフォーマットの種別を示す種別情報を取得する。回路1321は、さらに、前記種別情報、出力するデータを決定する。
 例えば、回路1321は、さらに、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを取得する。回路1321は、さらに、取得した(1)前記第1符号化データ、又は(2)前記第1符号化データ及び前記第2符号化データを復号して出力する。
 図74は、実施の形態2における、符号化装置の構成の一例を示す図である。図75は、実施の形態2における、符号化装置による符号化方法の一例を示すフローチャートである。
 符号化装置1330は、回路1331と、回路1331に接続されるメモリ1332とを備える。
 回路1331は、以下の動作を行う。
 回路1331は、三次元オブジェクトの複数の第1頂点を決定する(S1321)。回路1331は、前記複数の第1頂点を接続して第1面を含む第1面情報を生成する(S1322)。回路1331は、前記第1面に基づいて複数の第2頂点を決定する(S1323)。回路1331は、前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成する(S1324)。回路1331は、前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する(S1325)。
 これによれば、複数の第1頂点及び第1面情報を含む低解像度情報と、複数の第2頂点及び第2面情報を含む高解像度情報を2段階で生成して得られた符号化データを出力するため、当該符号化データを取得した復号装置は、例えば、低解像度情報に基づいて低解像度三次元データを出力したり、低解像度情報及び高解像度情報に基づいて低解像度三次元データよりも高解像度な高解像度三次元データを出力したりすることができる。
 例えば、回路1331は、さらに、前記第2面に基づいて複数の点を含む点群データを生成する。前記符号化データは、さらに、前記点群データを含む。
 例えば、回路1331は、さらに、前記複数の第1頂点及び前記第1面情報を含む第1符号化データを生成する。回路1331は、さらに、前記複数の第2頂点及び前記第2面情報を含む第2符号化データを生成する。前記符号化データは、前記第1符号化データ及び前記第2符号化データを含む。このため、符号化データを取得した復号装置は、解像度が異なる複数の三次元データを復元することができる。
 例えば、前記符号化データは、ヘッダ及びデータユニットを含む。前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む。つまり、前記データユニットは、前記第1符号化データと、前記第2符号化データとを、前記第1符号化データ、前記第2符号化データの順に含む。
 例えば、前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む。
 例えば、前記符号化データは、出力可能なフォーマットの数を示す数情報を含む。
 例えば、前記符号化データは、出力可能なフォーマットの種別を示す種別情報を含む。
 例えば、回路1331は、さらに、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを出力する。
 また、復号装置1320の回路1321または符号化装置1330の回路1331は図76のフローチャートに示す方法のように動作してもよい。図76は、実施の形態2における、復号装置または符号化装置による方法の一例を示すフローチャートである。
 回路1321または回路1331は、復号する三次元データの種類を決定する(S1331)。回路1321または回路1331は、符号化データのうち、決定された種類の三次元データを抽出する(S1332)。前記符号化データは、(1)三次元オブジェクトの複数の第1頂点と、(2)前記複数の第1頂点を接続して生成された第1面を含む第1面情報と、(3)前記第1面に基づいて決定された複数の第2頂点と、(4)前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して生成された第2面とを含む。抽出される前記三次元データの種類は、第1のフォーマットと、第2のフォーマットとを含む。復号する三次元データの種類が前記第1のフォーマットと決定された場合、前記複数の第1頂点及び前記第1面情報を含む第1符号化データが抽出される。復号する三次元データの種類が前記第2のフォーマットと決定された場合、前記第1符号化データ、及び、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データが抽出される。
 このため、決定されたフォーマットに基づいて復号に必要な符号化データを抽出できる。よって、復号に必要なデータ量が少ないフォーマットが選択された場合には、抽出するデータ量を低減できるため、例えば、符号化データの伝送に要する伝送量を低減でき、当該符号化データを取得した復号装置による復号処理の処理負荷を低減できる。
 以上、本開示の実施の形態に係る三次元データ符号化装置及び三次元データ復号装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る符号化装置、復号装置、サーバ、端末等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、復号装置等により実行される復号方法等として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つ又は複数の態様に係る符号化装置及び復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
 本開示は、復号装置及び復号方法に適用できる。
1001 三次元データ符号化システム
1002 三次元データ復号システム
1003 センサ端末
1004 外部接続部
1011 三次元データ生成システム
1012 提示部
1013 符号化部
1014 多重化部
1015 入出力部
1016 制御部
1017 センサ情報取得部
1018 三次元データ生成部
1021 センサ情報取得部
1022 入出力部
1023 逆多重化部
1024 復号部
1025 提示部
1026 ユーザインタフェース
1027 制御部
1031 三次元モデル学習部
1032 三次元モデル符号化部
1033 三次元モデル復号部
1034 レンダリング再構成部
1041 データ分割部
1042 符号化部
1051 復号部
1052 データ結合部
1061 端末提示画面
1061a 点群ボタン
1061b メッシュボタン
1062 端末提示画面
1063 端末提示画面
1070 サーバ
1071 データ生成部
1072 点群生成部
1073 メッシュ生成部
1074 モデル生成部
1075 同期部
1076 点群符号化部
1077 メッシュ符号化部
1078 モデル符号化部
1079 多重化部
1080 データ抽出部
1090 端末
1091 制御部
1092 復号部
1093 提示部
1101 点群センサ
1102 カメラ
1110 データ生成部
1111 点群生成部
1112 メッシュ生成部
1113 モデル生成部
1120 端末
1121 復号部
1122 同期提示部
1130 復号装置
1131 回路
1132 メモリ
1140 符号化装置
1141 回路
1142 メモリ
1201 部分復号部
1202 制御部
1211 データ抽出部
1212 制御部
1220 サーバ
1221 点群生成部
1222 メッシュ生成部
1223 点群符号化部
1224 多重化部
1230 端末
1231 制御部(アプリ実行部)
1232 復号部
1233 提示部
1241 対象空間
1242 点群
1243 点
1244 リーフノード
1251 点
1252 エッジ頂点
1253 範囲
1261 近似平面
1262 範囲
1263 頂点情報
1271 三角形
1272 点
1273 点群
1281 メッシュ頂点生成部
1282 高解像度用付加情報復号部
1283 補正部
1284 補正部
1285 第1接続情報生成部
1286 点群生成用付加情報復号部
1287 点生成部
1288 第2接続情報生成部
1289 第3接続情報生成部
1290 点生成部
1291 第4接続情報生成部
1300 サーバ
1301 点群生成部
1302 メッシュ生成部
1303 点群符号化部
1304 多重化部
1305 データ抽出部
1310 端末
1311 制御部(アプリ実行部)
1312 復号部
1313 提示部
1320 復号装置
1321 回路
1322 メモリ
1330 符号化装置
1331 回路
1332 メモリ

Claims (20)

  1.  回路と、
     前記回路に接続されるメモリとを備え、
     前記回路は、動作において、
     符号化データを取得し、
     前記符号化データに基づいて複数の第1頂点を復元し、
     復元した前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、
     前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元し、
     復元した前記複数の第1頂点及び前記複数の第2頂点を含む点を接続して第2面を含む第2面情報を生成し、
     前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する
     復号装置。
  2.  前記回路は、さらに、
     前記第2面に基づいて複数の点を含む点群データを生成し、
     前記点群データを出力する
     請求項1に記載の復号装置。
  3.  前記符号化データは、前記複数の第1頂点及び前記第1面情報を含む第1符号化データと、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データとを含む
     請求項1に記載の復号装置。
  4.  前記符号化データは、ヘッダ及びデータユニットを含み、
     前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む
     請求項3に記載の復号装置。
  5.  前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む
     請求項3に記載の復号装置。
  6.  前記回路は、さらに、
     前記第1符号化データと前記第2符号化データの一部を復号し、(1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データとのいずれかを出力する
     請求項3記載の復号装置。
  7.  前記回路は、さらに、
     出力可能なフォーマットの数を示す数情報を取得し、
     前記数情報に基づいて、出力するデータを決定する
     請求項6に記載の復号装置。
  8.  前記回路は、さらに、
     出力可能なフォーマットの種別を示す種別情報を取得し、
     前記種別情報、出力するデータを決定する
     請求項6に記載の復号装置。
  9.  前記回路は、さらに、
     (1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを取得し、
     取得した(1)前記第1符号化データ、又は(2)前記第1符号化データ及び前記第2符号化データを復号して出力する
     請求項3記載の復号装置。
  10.  回路と、
     前記回路に接続されるメモリとを備え、
     前記回路は、動作において、
     三次元オブジェクトの複数の第1頂点を決定し、
     前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、
     前記第1面に基づいて複数の第2頂点を決定し、
     前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、
     前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する
     符号化装置。
  11.  前記回路は、さらに、
     前記第2面に基づいて複数の点を含む点群データを生成し、
     前記符号化データは、さらに、前記点群データを含む
     請求項10に記載の符号化装置。
  12.  前記回路は、さらに、
     前記複数の第1頂点及び前記第1面情報を含む第1符号化データを生成し、
     前記複数の第2頂点及び前記第2面情報を含む第2符号化データを生成し、
     前記符号化データは、前記第1符号化データ及び前記第2符号化データを含む
     請求項10に記載の符号化装置。
  13.  前記符号化データは、ヘッダ及びデータユニットを含み、
     前記データユニットは、前記第1符号化データと、前記第2符号化データとを順に含む
     請求項12に記載の符号化装置。
  14.  前記符号化データは、第1ヘッダ及び前記第1符号化データを含む第1データユニットと、第2ヘッダ及び前記第2符号化データを含む第2データユニットとを含む
     請求項12に記載の符号化装置。
  15.  前記符号化データは、出力可能なフォーマットの数を示す数情報を含む
     請求項14に記載の符号化装置。
  16.  前記符号化データは、出力可能なフォーマットの種別を示す種別情報を含む
     請求項14に記載の符号化装置。
  17.  前記回路は、さらに、
     (1)前記第1符号化データと、(2)前記第1符号化データ及び前記第2符号化データのいずれかを出力する
     請求項12に記載の符号化装置。
  18.  符号化データに基づいて複数の第1頂点を復元し、
     復元した前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、
     前記符号化データ及び前記第1面に基づいて複数の第2頂点を復元し、
     復元した前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、
     前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を出力する
     復号方法。
  19.  三次元オブジェクトの複数の第1頂点を決定し、
     前記複数の第1頂点を接続して第1面を含む第1面情報を生成し、
     前記第1面に基づいて複数の第2頂点を決定し、
     前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して第2面を含む第2面情報を生成し、
     前記複数の第1頂点、前記複数の第2頂点、前記第1面情報、及び、前記第2面情報を含む符号化データを生成する
     符号化方法。
  20.  回路と、
     前記回路に接続されるメモリとを備え、
     前記回路は、動作において、
     復号する三次元データの種類を決定し、
     符号化データのうち、決定された種類の三次元データを抽出し、
     前記符号化データは、(1)三次元オブジェクトの複数の第1頂点と、(2)前記複数の第1頂点を接続して生成された第1面を含む第1面情報と、(3)前記第1面に基づいて決定された複数の第2頂点と、(4)前記複数の第1頂点及び前記複数の第2頂点を含む点群を接続して生成された第2面とを含み、
     抽出される前記三次元データの種類は、第1のフォーマットと、第2のフォーマットとを含み、
     復号する三次元データの種類が前記第1のフォーマットと決定された場合、前記複数の第1頂点及び前記第1面情報を含む第1符号化データが抽出され、
     復号する三次元データの種類が前記第2のフォーマットと決定された場合、前記第1符号化データ、及び、前記複数の第2頂点及び前記第2面を復号するための拡張情報を含む第2符号化データが抽出される
     装置。
PCT/JP2024/021298 2023-06-12 2024-06-12 復号装置、復号方法、符号化装置、符号化方法、及び、装置 Ceased WO2024257786A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP24823401.5A EP4727134A1 (en) 2023-06-12 2024-06-12 Decoding device, decoding method, encoding device, encoding method, and device
CN202480036894.1A CN121241568A (zh) 2023-06-12 2024-06-12 解码装置、解码方法、编码装置、编码方法及装置
JP2025527959A JPWO2024257786A1 (ja) 2023-06-12 2024-06-12
US19/413,464 US20260094305A1 (en) 2023-06-12 2025-12-09 Decoding device, decoding method, encoding device, encoding method, and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363472413P 2023-06-12 2023-06-12
US63/472,413 2023-06-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US19/413,464 Continuation US20260094305A1 (en) 2023-06-12 2025-12-09 Decoding device, decoding method, encoding device, encoding method, and device

Publications (1)

Publication Number Publication Date
WO2024257786A1 true WO2024257786A1 (ja) 2024-12-19

Family

ID=93852118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/021298 Ceased WO2024257786A1 (ja) 2023-06-12 2024-06-12 復号装置、復号方法、符号化装置、符号化方法、及び、装置

Country Status (5)

Country Link
US (1) US20260094305A1 (ja)
EP (1) EP4727134A1 (ja)
JP (1) JPWO2024257786A1 (ja)
CN (1) CN121241568A (ja)
WO (1) WO2024257786A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
JP2020119292A (ja) * 2019-01-24 2020-08-06 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム
JP2021022122A (ja) * 2019-07-26 2021-02-18 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
JP2020119292A (ja) * 2019-01-24 2020-08-06 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム
JP2021022122A (ja) * 2019-07-26 2021-02-18 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム

Also Published As

Publication number Publication date
JPWO2024257786A1 (ja) 2024-12-19
EP4727134A1 (en) 2026-04-15
CN121241568A (zh) 2025-12-30
US20260094305A1 (en) 2026-04-02

Similar Documents

Publication Publication Date Title
EP4290868B1 (en) 3d object streaming method, device, and program
US11202086B2 (en) Apparatus, a method and a computer program for volumetric video
JP7771318B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN116233493B (zh) 沉浸媒体的数据处理方法、装置、设备及可读存储介质
KR102499904B1 (ko) 가상 현실 미디어 콘텐트 내에 포함시키기 위해 실세계 장면의 맞춤화된 뷰의 가상화된 투영을 생성하기 위한 방법들 및 시스템들
JP7608649B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
KR20220113772A (ko) 이종 클라이언트 엔드 포인트들로 스트리밍하기 위한 2d 비디오의 적응을 위한 뉴럴 네트워크 모델의 참조
CN116075860A (zh) 信息处理装置、信息处理方法、视频分发方法和信息处理系统
KR20220115608A (ko) 이종 클라이언트 엔드 포인트들로 스트리밍하기 위한 미디어의 적응을 위한 몰입형 미디어에 의한 뉴럴 네트워크 모델의 참조
WO2025005094A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
WO2024257786A1 (ja) 復号装置、復号方法、符号化装置、符号化方法、及び、装置
JP7677717B2 (ja) 資産フォーマットの転換のための没入型メディアデータ複雑性アナライザ
CN115002470B (zh) 一种媒体数据处理方法、装置、设备以及可读存储介质
WO2024257784A1 (ja) 復号装置、復号方法、及び、符号化装置
JP7665771B2 (ja) アセット再使用の頻度によって優先される没入型メディアストリーミング方法、装置、およびコンピュータプログラム
WO2025079587A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
WO2025105337A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
WO2025079598A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
WO2025079588A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
HK40064620A (en) Data processing method, apparatus, device and readable storage medium for immersive media
HK40088410A (zh) 媒体文件的封装方法、媒体文件的解封装方法及相关设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24823401

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2025527959

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2025527959

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 2024823401

Country of ref document: EP

Effective date: 20260112

WWE Wipo information: entry into national phase

Ref document number: 2024823401

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2024823401

Country of ref document: EP

Effective date: 20260112

ENP Entry into the national phase

Ref document number: 2024823401

Country of ref document: EP

Effective date: 20260112

ENP Entry into the national phase

Ref document number: 2024823401

Country of ref document: EP

Effective date: 20260112

ENP Entry into the national phase

Ref document number: 2024823401

Country of ref document: EP

Effective date: 20260112

WWP Wipo information: published in national office

Ref document number: 2024823401

Country of ref document: EP