Volumetric visual media processing method and apparatus

Through component quantization visual media processing technology, the bitstream of the three-dimensional visual scene is decoded and reconstructed, and rendered according to the user's view position and direction, the problem of low coding efficiency of three-dimensional visual scenes in the prior art is solved, and efficient multi-view rendering capability is achieved.

JP7649792B2Active Publication Date: 2025-03-21ZTE CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2022546009
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2020-04-15
Publication Date
2025-03-21
Estimated Expiration
2040-04-15

AI Technical Summary

Technical Problem

Existing video encoding technology is less efficient when encoding three-dimensional visual scenes and cannot effectively represent visual information in three-dimensional visual scenes.

Method used

The method is used to divide the information of the three-dimensional visual scene into multiple sub-bit streams, including a graph set sub-bit stream and an encoded video sub-bit stream. The three-dimensional scene is reconstructed by decoding these sub-bit streams, and the target view is rendered according to the required observation position and observation direction.

Benefits of technology

The encoding and decoding efficiency of three-dimensional visual scenes is improved, allowing the target view of three-dimensional scenes to be effectively rendered and provides a better user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007649792000007
    Figure 0007649792000007
  • Figure 0007649792000008
    Figure 0007649792000008
  • Figure 0007649792000009
    Figure 0007649792000009
Patent Text Reader

Abstract

[0009] Methods and apparatus for processing volumetric visual data are described. One exemplary method includes decoding, by a decoder, a bitstream that includes volumetric visual information about a three-dimensional scene represented as one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams, reconstructing the three-dimensional scene using results of decoding the one or more atlas sub-bitstreams and results of decoding the one or more encoded video sub-bitstreams, and rendering a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This patent document is directed to volumetric visual media processing and transmission techniques. [Background technology]

[0002] Video encoding uses compression tools to encode two-dimensional video frames into a compressed bitstream representation that is more efficient for storing the two-dimensional video frames or for transporting them over a network. Conventional video coding techniques that use two-dimensional video frames to encode are sometimes inefficient for representing the visual information of three-dimensional visual scenes. Summary of the Invention [Problem to be solved by the invention]

[0003] This patent document describes, among other things, techniques for encoding and decoding digital video that conveys visual information related to volumetric visual media. [Means for solving the problem]

[0004] In one example aspect, a method of volumetric visual data processing is disclosed that includes decoding, by a decoder, a bitstream that includes volumetric visual information about a three-dimensional scene represented as one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams, reconstructing the three-dimensional scene using a result of decoding the one or more atlas sub-bitstreams and a result of decoding the one or more encoded video sub-bitstreams, and rendering a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation.

[0005] In another exemplary aspect, a method for generating a bitstream comprising volumetric visual data is disclosed, the method including generating, by an encoder, a bitstream comprising volumetric visual information about a three-dimensional scene by representing it using one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams, and including in the bitstream information enabling rendering of a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation.

[0006] In another exemplary aspect, an apparatus for implementing one or more of the above described methods is disclosed. The apparatus may include a processor configured to implement the described encoding or decoding methods.

[0007] In yet another exemplary aspect, a computer program storage medium is disclosed. The computer program storage medium includes code stored thereon that, when executed by a processor, causes the processor to implement the methods described.

[0008] These and other aspects are described herein. The present invention further provides, for example, the following: (Item 1) 1. A method for volumetric visual data processing, said method comprising: decoding, by a decoder, a bitstream including volumetric visual information about the three-dimensional scene represented as one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams; reconstructing the 3D scene using the decoding of the one or more atlas sub-bitstreams and the decoding of the one or more encoded video sub-bitstreams; and Rendering a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation. A method comprising: (Item 2) 2. The method of claim 1, wherein the reconstructing includes decoding, by the decoder, an atlas group in which one or more views of the volumetric visual data correspond to a view group selected for rendering of the target view. (Item 3) The decoding step may include, before decoding the atlas group, and deencapsulating, by a file parser, a group of volumetric visual tracks corresponding to the atlas group based on syntax elements of a volumetric visual parameter track in a file storage of the bitstream; 3. The method of claim 1 or 2, wherein the group of volumetric visual tracks and the volumetric visual parameter tracks carries all atlas data for the atlas group. (Item 4) The decoding step includes, prior to decoding the atlas group, and deencapsulating, by a file parser, a group of volumetric visual tracks corresponding to the atlas group based on a syntax element of a timed metadata track that includes a specific track reference to a volumetric visual parameter track in a file storage of the bitstream; 3. The method of claim 1 or 2, wherein the group of volumetric visual tracks and the volumetric visual parameter tracks carries all atlas data for the atlas group. (Item 5) The method of any one of items 3 and 4, further comprising identifying the group of volumetric visual tracks according to a particular track group type and a particular track group identification, each volumetric visual track in the group of volumetric visual tracks including a particular track reference to the volumetric visual parameter track. (Item 6) 3. The method of claim 2, further comprising selecting, by the decoder, the one or more views of volumetric visual data for the target view based on one or more view group information, each view group information describing one or more views. (Item 7) 7. The method of claim 6, wherein each view group information further includes camera parameters for the one or more views. (Item 8) 2. The method of claim 1, further comprising decoding, by the decoder, one or more atlases corresponding to one or more views of volumetric visual data selected for the target view. (Item 9) information from the one or more atlas sub-streams is decoded by deencapsulating one or more volumetric visual tracks corresponding to the one or more atlases based on volumetric visual parameter track syntax elements in a file storage syntax structure of the bitstream; 9. The method of claim 1 or 8, wherein the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all of the atlas data for the one or more atlases. (Item 10) information from the one or more atlas sub-streams is decoded by deencapsulating one or more volumetric visual tracks corresponding to the one or more atlases based on syntax elements of a timed metadata track that includes a specific track reference to a volumetric visual parameter track in a file storage of the bitstream; 9. The method of claim 1 or 8, wherein the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all of the atlas data for the one or more atlases. (Item 11) 9. The method of claim 8, further comprising selecting, by the decoder, one or more views of the volumetric visual data for rendering of the target view based on view information for the one or more views, each view information describing camera parameters of a corresponding view. (Item 12) identifying said volumetric visual parameter track according to a particular sample entry type; the volumetric visual parameter tracks correspond to one or more volumetric visual tracks with specific track references; 10. The method of claim 3 or 9, wherein the volumetric visual parameter track defines a constant parameter set and common atlas data for all of the reference volumetric visual tracks with the particular track reference. (Item 13) 11. The method of claim 4 or 10, further comprising identifying the time-specified metadata track according to a particular sample entry type, the particular sample entry type indicating that one or more views of volumetric visual data selected for the target view rendering are dynamic. (Item 14) The one or more encoded video sub-bitstreams include one or more video coding elementary streams for geometric shape data; zero or one video coding elementary stream for occupancy map data; zero or more video coding elementary streams for attribute data; Including, 2. The method of claim 1, wherein the geometry data, the occupancy map data, and the attribute data describe the three-dimensional scene. (Item 15) 1. A method for volumetric visual data processing, said method comprising: generating, by an encoder, a bitstream comprising volumetric visual information about the 3D scene by representing the atlas sub-bitstreams using one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams; including in the bitstream information enabling rendering of a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation; A method comprising: (Item 16) Item 16. The method of item 15, wherein the generating includes encoding, by the encoder, an atlas group corresponding to a view group in which one or more views of the volumetric visual data are selectable for rendering of the target view. (Item 17) The generating step includes encapsulating a group of volumetric visual tracks corresponding to the atlas group based on a syntax element of a volumetric visual parameter track in a file storage of the bitstream to encode the atlas group; 17. The method of claim 15 or 16, wherein the group of volumetric visual tracks and the volumetric visual parameter tracks carry all atlas data for the atlas group. (Item 18) The generating step includes: The method of any one of items 15 to 16, further comprising encapsulating a group of volumetric visual tracks corresponding to the atlas group based on syntax elements of a time-specific metadata track that includes a specific track reference to a volumetric visual parameter track in file storage of the bitstream, wherein the group of volumetric visual tracks and the volumetric visual parameter tracks carries all atlas data for the atlas group. (Item 19) The method of any one of items 17 and 18, further comprising including in the bitstream information identifying the group of volumetric visual tracks according to a particular track group type and a particular track group identification, each volumetric visual track in the group of volumetric visual tracks including a particular track reference to the volumetric visual parameter track. (Item 20) Item 17. The method of item 16, further comprising encoding, by the encoder, the one or more views of volumetric visual data for the target view based on one or more view group information, each view group information describing one or more views. (Item 21) 21. The method of claim 20, wherein each view group information further includes camera parameters for the one or more views. (Item 22) 16. The method of claim 15, further comprising encoding, by the decoder, one or more atlases corresponding to one or more views of volumetric visual data selected for the target view. (Item 23) information from the one or more atlas sub-streams is encoded by encapsulating one or more volumetric visual tracks corresponding to the one or more atlases based on volumetric visual parameter track syntax elements in a file storage syntax structure of the bitstream; 23. The method of claim 15 or 22, wherein the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all of the atlas data for the one or more atlases. (Item 24) information from the one or more atlas sub-streams is encoded by encapsulating one or more volumetric visual tracks corresponding to the one or more atlases based on syntax elements of a timed metadata track that includes a specific track reference to a volumetric visual parameter track in a file storage of the bitstream; 23. The method of claim 15 or 22, wherein the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all of the atlas data for the one or more atlases. (Item 25) 23. The method of claim 22, further comprising including information identifying one or more views of the volumetric visual data for rendering of the target view based on view information for the one or more views, each view information describing camera parameters of a corresponding view. (Item 26) including in the bitstream information for identifying the volumetric visual parameter track according to a particular sample entry type; the volumetric visual parameter tracks correspond to one or more volumetric visual tracks with specific track references; 24. The method of claim 17 or 23, wherein the volumetric visual parameter track defines a constant parameter set and common atlas data for all of the reference volumetric visual tracks with the particular track reference. (Item 27) The method of claim 18 or 24, further comprising including in the bitstream information for identifying the time-specified metadata track according to a particular sample entry type, the particular sample entry type indicating that one or more views of volumetric visual data selected for the target view rendering are dynamic. (Item 28) The one or more encoded video sub-bitstreams include one or more video coding elementary streams for geometric shape data; zero or one video coding elementary stream for occupancy map data; zero or more video coding elementary streams for attribute data; Including, 16. The method of claim 15, wherein the geometry data, the occupancy map data, and the attribute data describe the three-dimensional scene. (Item 29) 29. A video processing device comprising a processor configured to implement the method according to any of items 1-28. (Item 30) A computer readable medium having code stored thereon, the code encoding instructions for causing a processor to implement a method according to any one or more of items 1-28. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 shows an example process flow of group-based encoding for atlas generation.

[0010] [Diagram 2] FIG. 2 shows an example of multi-track encapsulation of a V-PCC bitstream with atlas groups.

[0011] [Diagram 3] FIG. 3 shows an example of multi-track encapsulation of a V-PCC bitstream with multiple atlases.

[0012] [Figure 4] FIG. 4 is a flow chart of an exemplary method for volumetric visual media processing.

[0013] [Diagram 5] FIG. 5 is a flow chart of an exemplary method for volumetric visual media processing.

[0014] [Figure 6] FIG. 6 is a block diagram of an example volumetric visual media data encoding device in accordance with the present technique.

[0015] [Figure 7] FIG. 7 is a block diagram of an example volumetric visual media data processing apparatus in accordance with the present technology.

[0016] [Figure 8] FIG. 8 is a block diagram of a hardware platform for implementing the volumetric visual media processing methods described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] Section headings are used herein for ease of reading only and do not limit the scope of the disclosed embodiments and techniques within each section to only that section. Certain features are described using examples of H.264 / AVC, H.265 / HEVC, and MPEG-DASH standards. However, the applicability of the disclosed techniques is not limited to only H.264 / AVC or H.265 / HEVC. However, the applicability of the disclosed techniques is not limited to only these standards.

[0018] In this document, various syntax elements are disclosed in different sections for point cloud data processing. However, it should be understood that syntax elements with the same name will have the same format and syntax used in different sections unless otherwise stated. Furthermore, different syntax elements and structures described under different section headings may be combined together in various embodiments. In addition, although specific structures are described as examples, it should be understood that the order of various entries of the syntax structures may be changed unless otherwise stated in this document. (1. Brief discussion)

[0019] Traditionally, the capture, processing, storage, and presentation of digital visual media such as images and videos use two-dimensional frame-based capture of visual scenes. Over the last few years, there has been an increasing interest in extending the user experience into the third dimension. Various industry standards have begun to address the issues associated with the capture, transport, and presentation of 3D visual scenes. Notably, one set of techniques uses traditional frame-based (2-D) video encoding tools to encode 3D visual information by projecting the 3D information onto a 2-D plane.

[0020] Two notable techniques include the use of video-based point cloud compression (V-PCC) and the Moving Pictures Experts Group (MPEG) Immersive Video (MIV) initiative. (1.1 Video-Based Point Cloud Compression (V-PCC))

[0021] Video-based point cloud compression (V-PCC) represents volumetric encoding of point cloud visual information, enabling efficient capture, compression, reconstruction, and rendering of point cloud data by utilizing MPEG video codecs such as AVC, HEVC, and VVC. A V-PCC bitstream containing a coded point cloud sequence (CPCS) is composed of VPCC units carrying sequence parameter set (SPS) data, atlas information bitstream, 2D video encoded occupancy map bitstream, 2D video encoded geometry bitstream, and zero or more 2D video encoded attribute bitstreams. Each V-PCC unit has a V-PCC unit header that describes the type of the V-PCC unit, and a V-PCC unit payload. The payload of the occupancy, geometry, and attribute V-PCC unit corresponds to a video data unit (e.g., a HEVC NAL unit), and the video data unit can be decoded by a video decoder as specified in the corresponding occupancy, geometry, and attribute parameter set V-PCC unit. (1.2 Transportation of V-PCC at ISOBMFF)

[0022] The V-PCC units in a V-PCC elementary stream are mapped to individual tracks in the ISOBMFF file based on their type. There are two types of tracks in a multi-track ISOBMFF V-PCC container: V-PCC tracks, and V-PCC component tracks. ISOBMFF is a generic file format for the representation of multiple tracks of digital video and audio information.

[0023] A V-PCC track is a track that carries volumetric visual information within a V-PCC bitstream, which includes patch information sub-bitstreams and sequence parameter sets. A V-PCC component track is a restricted video scheme track that carries 2D video encoded data for the occupancy map, geometry, and attribute sub-bitstreams of the V-PCC bitstream. Based on this layout, a V-PCC ISOBMFF container shall contain the following:

[0024] V-PCC Track: A V-PCC track contains sequence parameter sets (in sample entries) and samples that carry the payload of sequence parameter set V-PCC units (unit type VPCC_VPS) and atlas V-PCC units (unit type VPCC_AD). This track also contains track references to other tracks that carry the payload of video compressed V-PCC units (i.e., unit types VPCC_OVD, VPCC_GVD, and VPCC_AVD).

[0025] Restricted Video Scheme Track: The sample contains an access unit of a video coded elementary stream for occupancy map data (ie, the payload of a V-PCC unit of type VPCC_OVD).

[0026] One or more restricted video scheme track:samples contain access units of a video coding elementary stream for geometry data (ie, the payload of a V-PCC unit of type VPCC_GVD).

[0027] Zero or more restricted video scheme tracks: The sample contains access units of a video coding elementary stream for attribute data (i.e., the payload of a V-PCC unit of type VPCC_AVD). (1.3 MPEG Immersive Video (MIV))

[0028] MPEG is developing an international standard (ISO / IEC 23090-12), namely MPEG Immersive Video (MIV), to support the compression of immersive video content, where real or virtual 3-D scenes are captured by multiple real or virtual cameras. MIV content provides support for the playback of three-dimensional (3D) scenes within limited ranges of viewing position and orientation, with six degrees of freedom (6DoF).

[0029] Although MIV and V-PCC techniques aim to provide a similar end-user experience in which 3-D scenes and objects can be viewed, there are some differences in the approach taken by these solutions. For example, MIV is expected to provide view-based access to 3-D volumetric visual data, while V-PCC provides projection-based access to 3-D volumetric visual data. Hence, MIV is expected to provide a more realistic user-controlled user experience and will provide a much more immersive experience to the viewer. However, it would still be beneficial to use some of the existing bitstream syntax and file format information available in V-PCC to ensure rapid and adaptive adoption of MIV. (2. Example problems to be considered on the encoder side)

[0030] At the MIV encoder side, a view representation is a 2D sample array of at least depth / occupancy components, and optional texture and entity components, representing the projection of a 3D scene onto a surface using view parameters. The view parameters, including intrinsic and extrinsic parameters, define the projection used to generate the view representation from the 3D scene. In this context, a source view refers to the source video material before encoding that corresponds to the format of the view representation, which may be obtained by capture of the 3D scene by a real camera or by projection by a virtual camera onto the surface using the source camera parameters. (2.1 Group-based Encoder)

[0031] A group-based encoder is an MIV top-level encoder that splits views into multiple view groups and encodes each of the view groups independently using multiple single-group encoders. A source view is distributed to multiple single-group encoders, each of which has a view optimizer that classifies the source view as a base view or an additional view, and an atlas constructor that takes the base and additional views along with their parameters as input and outputs an atlas and associated parameters.

[0032] An MPEG video codec such as a HEVC (High Efficiency Video Coding) encoder will be used to encode the texture and depth of the atlas. The resulting attribute and geometry video streams will be multiplexed together with the MIV metadata to form the final MIV bitstream. (3. Example Problems Considered on the Decoder Side)

[0033] The MIV decoder handles the parsing and decoding of the MIV bitstream, and outputs decoded geometry pictures, texture attribute pictures, and MIV metadata for each frame.

[0034] MIV Decoder For the rendering part of The MIV rendering engine reconstructs the geometry frame at the nominal atlas resolution and then converts the upscaled decoded geometry frame samples at the nominal atlas resolution to floating-point depth values ​​(meters). The output of the MIV decoder is a perspective viewport or an omnidirectional view according to the desired viewing pose, allowing for motion parallax cues in a limited space. To this end, the MIV rendering engine performs the reconstruction of the reconstructed view and the projection of the pixels of the reconstructed view onto the viewport.

[0035] In a V-PCC-based representation of a 3-D scene, a fixed number of projections of the 3-D visual media are represented in the bitstream. For example, six projections corresponding to the six surfaces of a bounding box can be converted to 2-D visual images and encoded using conventional video codec techniques. However, V-PCC cannot support user experiences in which a user wishes to view a 3-D scene from different viewpoints, rather than viewing a finite number of projections of the 3-D scene. In such viewpoint-based rendering of volumetric video data, therefore, there is currently no known way to represent such visual data at the bitstream level (e.g., bits representing the actual scene), or at the file level (e.g., organization of media data into logical file groups), or at the system level (e.g., transport and metadata level). A way to represent such visual data would allow an encoder to construct a bitstream representing the 3-D volumetric data in such a manner that a renderer in a decoder can parse through the bitstream and retrieve the media data based on the desired viewpoint for the user.

[0036] Furthermore, it is not known how the current organization of V-PCC tracks can be extended to accommodate the use of multiple views in MIV. For example, it is not known how to map between V-PCC tracks and desired views for rendering a 3-D scene. For example, an MIV implementation may use 10 or 40 or even 100 different views that may be encoded in the bitstream. It is not currently known how to signal different views using the track structure such that a decoder or renderer can parse the system layer of the bitstream, locate the desired video or image track, and render the view for the viewer's desired position or viewpoint.

[0037] Various embodiments are disclosed herein to solve the above problems, as well as other problems. For example, as described further throughout this document, solutions are provided to enable encoding and decoding multiple views in a view group, and using one or more sub-streams for an atlas, as described further herein. (3.1 Group-based Renderer)

[0038] A group-based renderer can render from local patches within each atlas group separately. The renderer process consists of a group selection stage (multiple passes, each of which runs the synthesizer with a different set of atlases and outputs intermediate synthesized views) and a merging stage to combine all the intermediate synthesized views into the final desired viewport (e.g., a target view showing a perspective viewport or an omnidirectional view at the desired viewing position and orientation). 3.2 Carrying V-PCC Data with Multiple Atlases

[0039] Despite differences in intended applications, input data formats, and rendering, Video-Based Point Cloud Compression (V-PCC) and MPEG Immersive Video (MIV) share the same core tools to represent information in the encoded domain (i.e., division of 3D spatial data into 2D patch maps and encoded as 2D atlas frames). Thus, a V-PCC elementary bitstream may contain two or more atlases to carry MIV content.

[0040] In order to support efficient access, delivery, and rendering of volumetric visual media compressed as MPEG immersive video as defined in ISO / IEC 23090-12 in a 6DOF environment, it is necessary to specify a storage format for V-PCC bitstreams with multiple atlases. (3.3 Example File Formats)

[0041] In general, embodiments based on the disclosed techniques may be used for video data processing. In some embodiments, omnidirectional video data is stored in a file based on the ISO (International Organization for Standardization) Basic Media File Format. Among them, the ISO Basic Media File Format, such as the Restricted Scheme Information Box, the Track Reference Box, and the Track Group Box, may refer to the ISO / IEC JTC1 / SC29 / WG11 Moving Picture Experts Group (MPEG) MPEG-4. Part 12 ISO Basic Media File Format to operate.

[0042] All data in the ISO Basic File Format is installed in boxes. The ISO Basic File Format represented by an MP4 file consists of several boxes, each of which has a type and a length and can be considered as a data object. A box can contain other boxes, called container boxes. An MP4 file will initially have only one box of type "ftyp" as file format markup, which will contain some information about the file. There will be only one box of type "MOOV" (Movie Box), which will be a container box whose subboxes will contain metadata information about the media. The media data of an MP4 file is contained in a media box of type "mdat" (Media Data Box), which is also a container box, which may or may not be available (as the media data refers to other files), and the structure of the media data consists of metadata.

[0043] A timed metadata track is a feature within the ISO Basic Media File Format (ISOBMFF) that establishes timed metadata associated with a particular sample. The timed metadata is loosely coupled to the media data and is typically "descriptive".

[0044] Each volumetric visual scene may be represented by a unique volumetric visual track. An ISOBMFF file may contain multiple scenes, and therefore multiple volumetric visual tracks may be present within the file.

[0045] As already explained, in this document several technical solutions are provided to enable the representation of 3D or spatial domains of point cloud data (such as MPEG's V-PCC data) into a format compatible with conventional 2D video formats such as MP4 or ISOBMFF format. One advantageous aspect of the proposed solutions is that it is possible to reuse conventional 2D video techniques and syntax for the implementation of new functionalities. (4. Solution 1)

[0046] In some embodiments, a new syntax structure, called a view group information structure, may be encoded into a bitstream by an encoder and correspondingly decoded by a decoder to render a desired view of a 2D scene on a display. Several example implementations of the syntax structure and associated encoding and decoding techniques are described herein. 4.1 Exemplary Embodiment 1

[0047] (Example View Group Information Structure)

[0048] (definition)

[0049] The ViewGroupInfoStruct provides view group information for volumetric visual media such as MIV content that is captured and processed at the encoding stage, where the view group information includes at least the following: view group identifier, view group description, number of views, view identifier, and camera parameters for each view.

[0050] (syntax) aligned(8) class ViewGroupInfoStruct(camera_parameters_included_flag) { unsigned int(16) view_group_id; String view_group_description; unsigned int(8) num_views; for (i=0; i < num_views; i++) { unsigned int(16) view_id; unsigned int(1) basic_view_flag; if (camera_parameters_included_flag) { CameraParametersStruct(); } } }

[0051] (Semantics)

[0052] The view_group_id provides an identifier for the view group.

[0053] view_group_descritption is a null-terminated UTF-8 string that provides a text description of the view group.

[0054] num_views specifies the number of views in the view group.

[0055] The view_id provides an identifier for a given view within a view group.

[0056] A basic_view_flag equal to 1 specifies that the associated view is selected as a base view. A basic_view_flag equal to 0 specifies that the associated view is not selected as a base view.

[0057] camera_parameters_included_flag equal to 1 indicates that CameraParametersStruct is present. camera_parameters_included_flag equal to 0 indicates that CameraParametersStruct is not present.

[0058] (Camera parameter structure)

[0059] (definition)

[0060] The CameraParametersStruct provides real or virtual camera position and orientation information that can be used to render V-PCC or MIV content as either a perspective or omnidirectional view at a desired viewing position and orientation.

[0061] During the decoding stage, the group-based renderer can use this information to calculate the view group distance to the desired pose being synthesized, and the view weighting synthesizer can use this information to calculate the distance between the view position and the target viewport position.

[0062] (syntax) aligned(8) class CameraParametersStruct() { unsigned int(10) camera_id; unsigned_int(1) camera_pos_present; unsigned int(1) camera_ori_present; unsigned int(1) camera_fov_present; unsigned int(1) camera_depth_present; if (camera_pos_present) { signed int(32) camera_pos_x; signed int(32) camera_pos_y; signed int(32) camera_pos_z; } if (camera_ori_present) { signed int(32) camera_quat_x; signed int(32) camera_quat_y; signed int(32) camera_quat_z; } if (camera_fov_present) { unsigned int(32) camera_hor_range; unsigned int(32) camera_ver_range; } if (camera_depth_present) { unsigned int(32) camera_near_depth; unsigned int(32) camera_far_depth; } }

[0063] The camera_id provides an identifier for a given real or virtual camera.

[0064] camera_pos_present equal to 1 indicates that the camera position parameter is present. camera_pos_present equal to 0 indicates that the camera position parameter is not present.

[0065] camera_ori_present equal to 1 indicates that the camera orientation parameters are present. camera_ori_present equal to 0 indicates that the camera orientation parameters are not present.

[0066] camera_fov_present equal to 1 indicates that the camera field-of-view parameters are present. camera_fov_present equal to 0 indicates that the camera field-of-view parameters are not present.

[0067] camera_depth_present equal to 1 indicates that the camera depth parameter is present. camera_depth_present equal to 0 indicates that the camera depth parameter is not present.

[0068] camera_pos_x, camera_pos_y, and camera_pos_z respectively indicate the X, Y, and Z coordinates of the camera position in meters in the global reference coordinate system. The value must be incremented by 2. -16 The unit shall be metres.

[0069] camera_quat_x, camera_quat_y, and camera_quat_z indicate the x, y, and z components of the camera orientation, respectively, using a quaternion representation. The values ​​shall be floating-point values ​​in the range -1 to 1 inclusive. These values ​​specify the X, Y, and Z components, i.e., qX, qY, and qZ, for the rotation applied to transform the camera's global coordinate axes into its local coordinate axes, using a quaternion representation. The fourth component of the quaternion qW is calculated as follows:

[0070] qW = sqrt(1-(qX 2 +qY 2 +qZ 2 ))

[0071] Point (w,x,y,z) has an angle of 2 * cos^{-1}(w)=2 * sin^{-1}(sqrt(x^{2}+y^{2}+z^{2})) represents the rotation around the axis directed by the vector (x,y,z).

[0072] camera_hor_range indicates the horizontal field of view of the viewing frustum associated with the camera, in radians. Values ​​shall be in the range 0 to 2π.

[0073] camera_ver_range indicates the vertical field of view of the view frustum associated with the camera, in radians. Values ​​shall be in the range of π.

[0074] camera_near_depth and camera_far_depth indicate the near and far depth (or distance) based on the near and far planes of the view frustum associated with the camera. The value is -16 The unit shall be metres.

[0075] (Example of a V-PCC parameter track)

[0076] (V-PCC Parameter Track Sample Entry) Sample entry type: "vpcp" Container: SampleDescriptionBox Required: Yes Quantity: There can be one or more sample entries.

[0077] The V-PCC parameters track shall use VPCCParametersSampleEntry, which extends VolumetricVisualSampleEntry with a sample entry type of "vpcp".

[0078] A VPCC parameter track sample entry shall include a VPCCConfigurationBox and a VPCCUnitHeaderBox.

[0079] (syntax) class VPCCConfigurationBox extends Box('vpcC') { VPCCDecoderConfigurationRecord() VPCCConfig;} aligned(8) class VPCCParametersSampleEntry() extends VolumetricVisualSampleEntry ('vpcp') { VPCCConfigurationBox config; VPCCUnitHeaderBox unit_header; }

[0080] (Semantics)

[0081] VPCCConfigurationBox shall contain the V-PCC parameter set of the multi-atlas V-PCC bitstream, i.e., the V-PCC unit with vuh_unit_type equal to VPCC_VPS.

[0082] The VPCCConfigurationBox, when present, shall contain only non-ACL NAL units that are common to all V-PCC tracks of the multi-atlas V-PCC data, including but not limited to NAL_ASPS, NAL_AAPS, NAL_PREFIX_SEI, or NAL_SUFFIX_SEI NAL units, and EOB and EOS NAL units.

[0083] The VPCCConfigurationBox may contain different values ​​of the NAL_AAPS atlas NAL unit for different V-PCC track groups.

[0084] (V-PCC track grouping)

[0085] The MIV group-based encoder takes as input the source camera parameters, along with the number of groups as a pre-set, so that the source views can be split into multiple groups and outputs a list of views that should be included in each group.

[0086] Grouping forces the atlas constructor to output locally coherent projections of important regions in the atlas (e.g., belonging to foreground objects or occluded regions), which leads to improvements in subjective and objective results, especially for natural content or at high bitrate levels.

[0087] FIG. 1 illustrates an example process flow of group-based encoding for atlas generation.

[0088] As shown in Fig. 1, in the group encoding phase, each single group encoder produces metadata with its own indexed atlas or view. A unique group ID is assigned per group and appended to the atlas parameters of the associated group. To allow the renderer to properly interpret the metadata and map the patches correctly across all views, a merger re-attaches the atlas and view IDs per patch and merges the pruning graphs. Each base view is carried in a single fully occupied patch (assuming the atlas size is equal to or larger than the base view size) or in an atlas into multiple atlases (otherwise). Additional views are squeezed into multiple patches, which can be carried together with the base view's patch in the same atlas if the atlas is of a larger size, or in separate atlases.

[0089] As shown in Figure 1, all atlases generated by the atlas constructor from the same view group should be grouped together as an atlas group. For group-based rendering, the decoder needs to decode patches in one or more atlas groups that correspond to one or more view groups for which one or more views of volumetric visual data (e.g., MIV content) have been selected for target view rendering.

[0090] The decoder may select one or more views of volumetric visual data for the target view based on one or more view group information, each view group information describing one or more views, and each view group information including camera parameters for the one or more views, as described in the example view group information structure.

[0091] FIG. 2 shows an example of multi-track encapsulation of a V-PCC bitstream with atlas groups.

[0092] As shown in FIG. 2, before decoding an atlas group, a file parser needs to determine and deencapsulate a group of volumetric visual tracks (e.g., a V-PCC track group) corresponding to the atlas group based on a syntax element of a volumetric visual parameter track (e.g., a VPCCViewGroupsBox of a V-PCC parameter track) in the file storage of the bitstream, and the group of volumetric visual tracks and the volumetric visual parameter track carry all the atlas data for the atlas group.

[0093] A file parser can identify volumetric visual parameter tracks according to a specific sample entry type. For V-PCC parameter tracks, the sample entry type "vpcp" should be used to identify a V-PCC parameter track, which uses a specific track reference to define a constant parameter set and common atlas data for all referenced V-PCC tracks.

[0094] For storage of a V-PCC bitstream with multiple atlases, all V-PCC tracks corresponding to all atlases from the same atlas group should be indicated by the track group type "vptg".

[0095] (definition)

[0096] A TrackGroupTypeBox with track_group_type equal to "vptg" indicates that this V-PCC track belongs to a group of V-PCC tracks that corresponds to an atlas group.

[0097] V-PCC tracks that belong to the same atlas group have the same value of track_group_id for track_group_type "vptg", and the track_group_id of a track from one atlas group is different from the track_group_id of a track from any other atlas group.

[0098] (syntax) aligned(8) class VPCCTrackGroupBox extends trackGroupTypeBox('vptg'){ }

[0099] (Semantics)

[0100] V-PCC tracks with the same value of track_group_id in a TrackGroupTypeBox with track_group_type equal to "vptg" belong to the same atlas group. The track_group_id in a TrackGroupTypeBox with track_group_type equal to "vptg" is therefore used as the identifier of the atlas group.

[0101] (Static View Group Info Box)

[0102] (definition)

[0103] Static view groups and their respective associated V-PCC track groups for volumetric visual media such as MIV content shall be signaled in a VPCCViewGroupsBox.

[0104] (syntax)

[0105] Box type: "vpvg" Container: VPCCParametersSampleEntry("vpcp") Required: No Quantity: Zero or one aligned(8) class VPCCViewGroupsBox extends FullBox('vpvg',0,0) { unsigned int(16) num_view_groups; for (i=0; i < num_view_groups; i++) { ViewGroupInfoStruct(1); unsigned int(32) vpcc_track_group_id; } }

[0106] (Semantics)

[0107] num_view_groups indicates the number of view groups for the MIV content.

[0108] The vpcc_track_group_id identifies the group for a V-PCC track that carries all the atlas data for an associated view group of volumetric visual media, such as MIV content.

[0109] (Dynamic View Group Information)

[0110] If a V-PCC parameter track has an associated timed metadata track with sample entry type "dyvg", the source view group defined for the MIV stream carried by the V-PCC parameter track is considered a dynamic view group (i.e., the view group information can change dynamically over time).

[0111] The associated timed metadata track shall contain a "cdsc" track reference to the V-PCC parameter track carrying the atlas stream.

[0112] Sample Entry aligned(8) class DynamicViewGroupSampleEntry extends MetaDataSampleEntry('dyvg') { VPCCViewGroupsBox(); }

[0113] (Sample format)

[0114] (syntax) aligned(8) DynamicViewGroupSample() { unsigned int(16) num_view_groups; for (i=0; i < num_view_groups; i++) { ViewGroupInfoStruct(camera_parameters_included_flag); } }

[0115] (Semantics)

[0116] num_view_groups indicates the number of view groups signaled in the sample. This is not necessarily equal to the total number of view groups available. Only view groups whose source view has been updated are present in the sample.

[0117] ViewGroupInfoStruct() is defined in the previous section of embodiment 1. If camera_parameters_included_flag is set to 0, it implies that the camera parameters for the view group have been previously signaled, either in the previous sample or in a sample entry, in a previous instance of ViewGroupInfoStruct with the same view_group_id. 4.2 Exemplary embodiment 2

[0118] (Encapsulation and signaling in MPEG-DASH)

[0119] Each V-PCC component track shall be represented in the DASH manifest (MPD) file as a separate V-PCC component AdaptationSet. Each V-PCC track shall be represented as a separate V-PCC atlas AdaptationSet. An additional AdaptationSet for the common atlas information serves as the main AdaptationSet for the V-PCC content. If a V-PCC component has multiple layers, each layer may be signaled using a separate Adaptation Set.

[0120] The main AdaptationSet shall have the @codecs attribute set to "vpcp" and the atlas AdaptationSet shall have the @codecs attribute set to "vpc1", while if the @codecs attribute for a V-PCC component AdaptationSet or @codecs is not signaled for the AdaptationSet element, the Representation shall be set based on the respective codec used to encode the component.

[0121] The main AdaptationSet shall contain a single initialization segment at the adaptation set level. The initialization segment shall contain all sequence parameter sets and non-ACL NAL units that are common to all V-PCC tracks that are needed to initialize the V-PCC decoder, including the V-PCC parameter sets of the multi-atlas V-PCC bitstream, and the NAL_ASPS, NAL_AAPS, NAL_PREFIX_SEI, or NAL_SUFFIX_SEINAL units, and the EOB and EOSNAL units (when present).

[0122] At the adaptation set level, the atlas AdaptationSet shall contain a single initialization segment, which shall contain all sequence parameter sets required to decode the V-PCC track (including the V-PCC atlas sequence parameter set and other parameter sets for the component substreams).

[0123] A media segment for a Representation of a main AdaptationSet shall contain one or more track fragments of a V-PCC parameter track. A media segment for a Representation of an atlas AdaptationSet shall contain one or more track fragments of a V-PCC track. A media segment for a Representation of a component AdaptationSet shall contain one or more track fragments of the corresponding component tracks at the file format level.

[0124] (V-PCC pre-selection)

[0125] V-PCC preselection is signaled in the MPD using the PreSelection element as defined in MPEG-DASH (ISO / IEC23009-1), where the id list for the @preselectionComponents attribute is It contains the id of the main AdaptationSet for the point cloud, followed by the id of the atlas AdaptationSet and the id of the AdaptationSet corresponding to the point cloud component. The @codecs attribute for PreSelection shall be set to "vpcp" indicating that the PreSelection media is a video-based point cloud. PreSelection can be signaled using either a PreSelection element within a Period element or a preselection descriptor at the adaptation set level.

[0126] (V-PCC Descriptor)

[0127] An EssentialProperty element with an @schemeIdUri attribute equal to "urn:mpeg:mpegI:vpcc:2019:vpc" is referred to as a VPCC Descriptor. At most one VPCC Descriptor may be present at the Adaptation Set level for the main AdaptationSet of a point cloud. [Table 1]

[0128] (VPCCViewGroups Descriptor)

[0129] The VPCCViewGroups descriptor shall be used to identify the static view groups in the main AdaptationSet for the V-PCC content and their respective associated V-PCC track groups. VPCCViewGroups is an EssentialProperty or SupplementalProperty descriptor with an @schemeIdUri attribute equal to "urn:mpeg:mpegI:vpcc:2020:vpvg".

[0130] At most one single VPCCViewGroups descriptor shall be present at the AdaptationSet level or at the representation level in the main AdaptationSet, or at the preselection level for point cloud content.

[0131] The @value attribute of the VPCCViewGroups descriptor shall not be present. The VPCCViewGroups descriptor shall contain elements and attributes as specified in Table 2. [Table 2-1] [Table 2-2]

[0132] (Dynamic View Group)

[0133] When a view group is dynamic, the timed metadata tracks for signaling view information for each view group in the presentation timeline shall be carried in a separate AdaptationSet using a single representation and shall be associated (linked) to the main V-PCC track using the @associationId attribute defined in ISO / IEC 23009-1 [MPEG-DASH] with an @associationType value containing the 4CC "vpcm" for the corresponding AdaptationSet or Representation. (5. Solution 2) 5.1 Exemplary Embodiment 3

[0134] (Example View Information Structure)

[0135] (definition)

[0136] The ViewInfoStruct provides view information for MIV content captured and processed during the encoding stage, where the view information includes at least a view identifier, an identifier of the view group it belongs to, a view description, and the camera parameters of the view.

[0137] (syntax) aligned(8) class ViewInfoStruct(camera_parameters_included_flag) { unsigned int(16) view_id; unsigned int(16) view_group_id; String view_description; unsigned int(1) basic_view_flag; if (camera_parameters_included_flag) { CameraParametersStruct(); } }

[0138] (Semantics)

[0139] The view_id provides an identifier for the view.

[0140] The view_group_id provides an identifier for the view group to which it belongs.

[0141] view_description is a null-terminated UTF-8 string that provides a text description of the view.

[0142] A basic_view_flag equal to 1 specifies that the associated view is selected as a base view. A basic_view_flag equal to 0 specifies that the associated view is not selected as a base view.

[0143] camera_parameters_included_flag equal to 1 indicates that CameraParametersStruct is present. camera_parameters_included_flag equal to 0 indicates that CameraParametersStruct is not present.

[0144] CameraParametersStruct() is defined in the previous section of the first embodiment.

[0145] (Static View Info Box)

[0146] FIG. 3 shows an example of multi-track encapsulation of a V-PCC bitstream with multiple atlases.

[0147] For target view rendering, the decoder needs to decode patches in one or more atlases that correspond to one or more views of volumetric visual data (e.g., MIV content) that have been selected for target view rendering.

[0148] The decoder may select one or more views of volumetric visual data for the target view based on view information for the one or more views, as described in the example view information structure, where each view information describes camera parameters of the corresponding view.

[0149] As shown in FIG. 3, before decoding one or more atlases, a file parser needs to determine and deencapsulate one or more volumetric visual tracks (e.g., V-PCC tracks) corresponding to the one or more atlases based on syntax elements of the volumetric visual parameter track (e.g., VPCCViewsBox of the V-PCC parameter track) in the file storage of the bitstream, and the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all atlas data related to the atlas.

[0150] A file parser can identify volumetric visual parameter tracks according to a particular sample entry type. For V-PCC parameter tracks, the sample entry type "vpcp" should be used to identify the V-PCC parameter track and the V-PCC parameter track that specifies a constant parameter set and common atlas data for all referenced V-PCC tracks with a particular track reference.

[0151] (definition)

[0152] The source views of the MIV content and their respective associated atlases shall be signaled in the VPCCViewsBox.

[0153] (syntax)

[0154] Box type: "vpvw" Container:VPCCParametersSampleEntry('vpcp') Required: No Quantity: Zero or one aligned(8) class VPCCViewsBox extends FullBox('vpvw',0,0) { unsigned int(16) num_views; for (i=0; i < num_views; i++) { ViewInfoStruct(1); unsigned int(8) num_vpcc_tracks; for (j=0; j < num_vpcc_tracks; j++) { unsigned int(32) vpcc_track_id; } } }

[0155] (Semantics)

[0156] The num_views indicates the number of source views in the MIV content.

[0157] num_vpcc_tracks indicates the number of V-PCC tracks associated with the source view.

[0158] The vpcc_track_id identifies the V-PCC track that carries the atlas data for the associated source view.

[0159] (Dynamic View Information)

[0160] If a V-PCC parameter track has a timed metadata track associated with the sample entry type "dyvw", the source view defined for the MIV stream carried by the V-PCC parameter track is considered a dynamic view (i.e., the view information can change dynamically over time).

[0161] The associated timed metadata track shall contain a "cdsc" track reference to the V-PCC parameter track carrying the atlas stream.

[0162] (sample entry) aligned(8) class DynamicViewSampleEntry extends MetaDataSampleEntry('dyvw') { VPCCViewsBox(); }

[0163] (Sample format)

[0164] (syntax) aligned(8) DynamicViewSample() { unsigned int(16) num_views; for (i=0; i < num_views; i++) ViewInfoStruct(camera_parameters_included_flag); } }

[0165] (Semantics)

[0166] num_views indicates the number of views signaled in the sample. This may not necessarily be equal to the total number of available views. Only views whose view information has been updated are present in the sample.

[0167] ViewInfoStruct() is defined in the previous section of embodiment 2. If camera_parameters_included_flag is set to 0, this implies that the camera parameters for the view have been previously signaled in a previous instance of ViewInfoStruct with the same view_id, either in the previous sample or sample entry. 5.2 Exemplary embodiment 4

[0168] (Example of encapsulation and signaling in MPEG-DASH)

[0169] (V-PCC Descriptor)

[0170] An EssentialProperty element with an @schemeIdUri attribute equal to "urn:mpeg:mpegI:vpcc:2019:vpc" is referred to as a VPCC Descriptor. At most one VPCC Descriptor may be present at the Adaptation Set level for the main AdaptationSet of a point cloud. [Table 3]

[0171] (VPCCViews Descriptor)

[0172] The VPCCViews descriptor shall be used to identify static views in the main AdaptationSet for the V-PCC Content and their respective associated V-PCC Tracks. VPCCViews is an EssentialProperty or SupplementalProperty descriptor with an @schemeIdUri attribute equal to "urn:mpeg:mpegI:vpcc:2020:vpvw".

[0173] At most one single VPCCViews descriptor shall be present at the AdaptationSet level or at the representation level in the main AdaptationSet, or at the preselection level for point cloud content.

[0174] The @value attribute of the VPCCViews descriptor shall not be present. The VPCCViews descriptor shall contain elements and attributes as specified in Table 4. [Table 4-1] [Table 4-2]

[0175] (Dynamic View)

[0176] When a view is dynamic, the timed metadata tracks for signaling each view information in the presentation timeline shall be carried in a separate AdaptationSet using a single representation and shall be associated (linked) to the main V-PCC track using the @associationId attribute defined in ISO / IEC 23009-1 [MPEG-DASH] with an @associationType value containing the 4CC "vpcm" for the corresponding AdaptationSet or Representation.

[0177] 4 is a flow chart of an example method 400 of processing volumetric visual media data. As discussed throughout this document, in some embodiments, the volumetric visual media data may include point cloud data. In some embodiments, the volumetric visual media data may represent 3-D objects. The 3-D objects may be projected onto a 2-D surface and positioned within a video frame. In some embodiments, the volumetric visual data may represent multi-view video data, etc.

[0178] The method 400 may be implemented by an encoder apparatus as described further herein. The method 400 includes, at 402, generating, by an encoder, a bitstream including volumetric visual information about the three-dimensional scene by representing it using one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams. The method 400 includes, at 404, adding to the bitstream information enabling rendering of a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation.

[0179] In some embodiments, generating (402) may include encoding, by the encoder, an atlas group that corresponds to a view group in which one or more views of the volumetric visual data are selectable for rendering of the target view. For example, the atlas group may be encoded as an atlas subgroup in the bitstream. bit It may refer to a group of atlases, which are groups of streams.

[0180] In some embodiments, generating (402) includes encapsulating a group of volumetric visual tracks corresponding to the atlas group based on syntax elements of the volumetric visual parameter track in a file storage of the bitstream. In some embodiments, the volumetric visual tracks and the group of volumetric visual parameter tracks are encapsulated into a corresponding atlas sub-group. bit A syntax element may be constructed to carry all atlas data for an atlas group (using a View Group Information Box, static or dynamic). In some examples, the syntax element may be implemented using a View Group Information Box (static or dynamic). For example, a static view group as described in Section 4.1, or Section 5.1 may be used for such an embodiment.

[0181] In some embodiments, generating (402) includes encapsulating a group of volumetric visual tracks corresponding to the atlas group based on a syntax element of a timed metadata track that includes a specific track reference to a volumetric visual parameter track in a file storage of the bitstream to encode the atlas group. Here, the volumetric visual track and the group of volumetric visual parameter tracks may carry all the atlas data for the atlas group. The specific track reference may be used by a decoder during parsing / rendering operations as further described herein. This generating operation may use dynamic view groups described herein (e.g., Section 4.1 or Section 5.1).

[0182] In some embodiments, the method 400 includes adding to the bitstream information identifying a group of volumetric visual tracks according to a particular track group type and a particular track group identification, each volumetric visual track in the group of volumetric visual tracks further including a particular track reference to a volumetric visual parameter track.

[0183] In some embodiments, the method 400 further includes encoding, by the encoder, one or more views of the volumetric visual data for the target view based on the one or more view group information, each view group information describing the one or more views. In some embodiments, each view group information further includes camera parameters for the one or more views.

[0184] In some embodiments, the method 400 includes: Encoder The method further includes encoding one or more atlases corresponding to the one or more views of the volumetric visual data selected for the target view by:

[0185] In some embodiments, one or more atlas sub- bit Information from the stream is encoded by encapsulating one or more volumetric visual tracks corresponding to one or more atlases based on volumetric visual parameter track syntax elements (e.g., view information box syntax structure - static or dynamic) in the bitstream's file storage syntax structure, and the one or more volumetric visual tracks and volumetric visual parameter tracks carry all the atlas data for the one or more atlases.

[0186] In some embodiments, one or more atlas sub- bitInformation from the stream is encoded by encapsulating one or more volumetric visual tracks corresponding to one or more atlases based on syntax elements of a timed metadata track (e.g., a view information box syntax structure - static or dynamic) that contain specific track references to volumetric visual parameter tracks within the file storage of the bitstream, and the one or more volumetric visual tracks and volumetric visual parameter tracks carry all the atlas data for the one or more atlases.

[0187] In some embodiments, the method 400 includes adding to the bitstream information identifying one or more views of volumetric visual data for rendering of the target view based on view information for the one or more views, each view information describing camera parameters for a corresponding view.

[0188] In some embodiments, the method 400 includes including in the bitstream information for identifying a volumetric visual parameter track according to a particular sample entry type, where the volumetric visual parameter track corresponds to one or more volumetric visual tracks with a particular track reference, and where the volumetric visual parameter track defines a constant parameter set and common atlas data for all reference volumetric visual tracks with the particular track reference.

[0189] In some embodiments, the method 400 includes adding information to the bitstream to identify a timed metadata track according to a particular sample entry type that indicates that one or more views of the volumetric visual data selected for target view rendering are dynamic.

[0190] The encoded video sub-stream includes one or more video coded elementary streams for geometry data, zero or one video coded elementary stream for occupancy map data, and zero or more video coded elementary streams for attribute data, where the geometry data, occupancy map data, and attribute data describe a three-dimensional scene.

[0191] 5 is a flow chart of an example method 500 of processing volumetric visual media data. Method 500 may be implemented by a decoder. Various terminology used in describing syntax elements in method 500 is similar to the terminology used above for syntax elements describing encoder-side method 400.

[0192] The method 500 includes, at 502, decoding, by a decoder, a bitstream that includes volumetric visual information for a three-dimensional scene represented as one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams. The method 500 includes, at 504, reconstructing the three-dimensional scene using results of decoding the one or more atlas sub-bitstreams and results of decoding the one or more encoded video sub-bitstreams.

[0193] The method 500 includes, at 506, rendering a target view of the three-dimensional scene based on the desired viewing position and / or the desired viewing orientation. In some embodiments, the decoding and reconstructing may be performed by a first hardware platform, while the rendering may be performed by another hardware platform in conjunction with the decoding hardware platform. In other words, the first hardware platform may perform only steps 502 and 504, as described above, to implement the method of reconstruction of the three-dimensional scene. In some embodiments, the decoder may receive a desired viewing position or a desired viewing orientation of a viewer in an xyz or polar coordinate system. From this information, the decoder may create a target view aligned with the viewer's position / orientation from the decoded sub-bitstream containing the video information using a decoded sub-bitstream of the atlas corresponding to the view group used to generate the target view.

[0194] In some embodiments, the reconstructing includes decoding, by the decoder, an atlas group in which one or more views of the volumetric visual data correspond to a view group selected for rendering of the target view.

[0195] In some embodiments, the decoding includes, before decoding the atlas group, deencapsulating, by a file parser, a group of volumetric visual tracks corresponding to the atlas group based on syntax elements of the volumetric visual parameter track in the file storage of the bitstream, wherein the volumetric visual tracks and the group of volumetric visual parameter tracks carry all of the atlas data for the atlas group.

[0196] In some embodiments, the decoding includes deencapsulating, by a file parser, a group of volumetric visual tracks corresponding to the atlas group based on a syntax element of a timed metadata track that includes a specific track reference to a volumetric visual parameter track within the file storage of the bitstream prior to decoding of the atlas group, where the group of volumetric visual tracks and volumetric visual parameter tracks carry all the atlas data for the atlas group. For example, the dynamic view group structure described herein may be used during this operation.

[0197] In some embodiments, the method 500 further includes identifying a group of volumetric visual tracks according to a particular track group type and a particular track group identification, where each volumetric visual track in the group of volumetric visual tracks includes a particular track reference to a volumetric visual parameter track.

[0198] In some embodiments, the method 500 further includes selecting, by the decoder, one or more views of volumetric visual data for the target view based on the one or more view group information, each view group information describing one or more views.

[0199] In some embodiments, each view group information further includes camera parameters for one or more views.

[0200] In some embodiments, the method further includes decoding, by the decoder, one or more atlases corresponding to the one or more views of the volumetric visual data selected for the target view.

[0201] In some embodiments, one or more atlas sub- bitInformation from the stream is decoded by deencapsulating one or more volumetric visual tracks corresponding to one or more atlases based on volumetric visual parameter track syntax elements (e.g., ViewInfoBox elements) in the bitstream's file storage syntax structure, and the one or more volumetric visual tracks and volumetric visual parameter tracks carry all the atlas data for the one or more atlases.

[0202] In some embodiments, one or more atlas sub- bit Information from the stream is decoded by deencapsulating one or more volumetric visual tracks corresponding to one or more atlases based on syntax elements of a timed metadata track that includes specific track references to volumetric visual parameter tracks within the file storage of the bitstream, and the one or more volumetric visual tracks and the volumetric visual parameter tracks carry all the atlas data for the one or more atlases.

[0203] In some embodiments, the method further includes selecting, by the decoder, one or more views of volumetric visual data for rendering of the target view based on view information for the one or more views, each view information describing camera parameters of a corresponding view.

[0204] In some embodiments, the method 500 further includes identifying a volumetric visual parameter track according to a particular sample entry type, where the volumetric visual parameter track corresponds to one or more volumetric visual tracks with a particular track reference, and where the volumetric visual parameter track defines a constant parameter set and common atlas data for all reference volumetric visual tracks with the particular track reference.

[0205] In some embodiments, the method 500 further includes identifying a timed metadata track according to a particular sample entry type that indicates that one or more views of the volumetric visual data selected for the target view rendering are dynamic.

[0206] In some embodiments, the one or more encoded video sub-bitstreams include one or more video coded elementary streams for geometry data, zero or one video coded elementary stream for occupancy map data, and zero or more video coded elementary streams for attribute data, where the geometry data, occupancy map data, and attribute data describe a three-dimensional scene.

[0207] 4-5, in some embodiments, an atlas group may include atlas subgroups. bit In some embodiments, the group of volumetric visual tracks used by the methods discussed above may refer to a volumetric visual track group.

[0208] In some embodiments, in method 400 or 500, the syntax element of the volumetric visual parameter track may be a ViewGroupInfoBox syntax structure described herein.

[0209] FIG. 6 is a block diagram of an example of an apparatus 600 that may be an encoder of volumetric media data according to the present technology. The apparatus 600 includes an acquisition module 601 configured to collect three-dimensional scene and volumetric visual media information, such as in the form of point cloud data or multi-view video data or multi-surface projections. The module may include an input / output controller circuit to read video data from a memory or from a camera frame buffer. The module may include processor-executable instructions for reading the volumetric data. The apparatus 600 includes a bitstream generator module 602 configured to generate a bitstream that is an encoded representation of the volumetric visual information according to various techniques described herein (e.g., method 400). The module may be implemented as processor-executable software code. The apparatus 600 also includes a module 603 configured to perform subsequent processing on the bitstream (e.g., metadata insertion, encryption, etc.). The apparatus further includes a storage / transmission module 904 configured to perform either storage or network transmission layer coding on the video encoded data or media data. Module 604 may, for example, implement the MPEG-DASH techniques described herein for streaming data over a digital communications network or storing bitstreams in the DASH common format.

[0210] The above described modules 601-604 can be implemented by using dedicated hardware or hardware capable of performing processing in combination with appropriate software. Such hardware or special purpose hardware may include application specific integrated circuits (ASICs), various other circuits, various processors, and the like. When implemented by a processor, functionality may be provided by a single dedicated processor, a single shared processor, or multiple independent processors, some of which may be shared. In addition, a processor should not be understood to refer to hardware capable of executing software, and may implicitly include, but is not limited to, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage devices.

[0211] The apparatus 600 as shown in FIG. 6 may be a device in a video application, such as a mobile phone, a computer, a server, a set-top box, a portable mobile terminal, a digital video camera, a television broadcast system device, or the like.

[0212] FIG. 7 is a block diagram of an example of an apparatus 700 according to the present technology. The apparatus 700 includes an acquisition module 701 configured to acquire a bitstream by reading from a network or from a storage device. For example, the module 701 may implement parsing and extraction of media file coding using the MPEG-DASH technique described herein and perform decoding from network transmission layer data including volumetric visual media data. The system and file analyzer module 702 may extract various system layer and file layer syntax elements (e.g., atlas sub-bitstream, group information, etc.) from the received bitstream. The video decoder 703 is configured to decode the encoded video sub-bitstream including media data related to a three-dimensional scene or volumetric media data such as point cloud data or multi-view video data, etc. The renderer module 704 is configured to render a target view base of the three-dimensional scene based on a desired viewing position or a desired viewing orientation, which may be received from a user via a user interface control.

[0213] The above described modules 701-704 can be realized by using dedicated hardware or hardware capable of performing processing in combination with appropriate software. Such hardware or special purpose hardware may include application specific integrated circuits (ASICs), various other circuits, various processors, and the like. When implemented by a processor, functionality may be provided by a single dedicated processor, a single shared processor, or multiple independent processors, some of which may be shared. In addition, a processor should not be understood to refer to hardware capable of executing software, and may implicitly include, but is not limited to, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage devices.

[0214] A device such as that shown in FIG. 7 may be a device in a video application such as a mobile phone, a computer, a server, a set-top box, a portable mobile terminal, a digital video camera, a television broadcast system device, or the like.

[0215] 8 is a block diagram of an example of an apparatus 800 that may be used as a hardware platform for implementing various encoding and / or decoding functionalities described herein, including the encoder / decoder implementations described in FIGS. 6-7. The apparatus 800 includes a processor 802 that is programmed to implement the methods described herein. The apparatus 800 may further include dedicated hardware circuits for performing specific functions, such as bitstream encoding or decoding. The apparatus 800 may also include a memory that stores executable code for the processor and / or volumetric data and other data, including data according to various syntax elements described herein.

[0216] In some embodiments, a 3D point cloud data encoder may be implemented to generate a bitstream representation of the 3D point cloud by encoding the 3D spatial information using the syntax and semantics as described herein.

[0217] The volumetric visual media data encoding or decoding apparatus may be implemented as part of a user device such as a computer, laptop, tablet, or gaming device.

[0218] The disclosed and other embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or to control the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition producing a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus can include code that creates an execution environment for the computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to a suitable receiver device.

[0219] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored within part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), within a single file dedicated to the program, or within multiple cooperating files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to run on one computer, or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0220] The processors and logic flows described in this document may be implemented by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processors and logic flows may also be implemented by, and devices may be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0221] Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random-access memory or both. The essential elements of a computer are a processor for carrying out instructions, and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from, or transfer data to, one or both of, one or more mass storage devices (e.g., magnetic, magneto-optical, or optical disks) for storing data. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, by way of example, semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special-purpose logic circuitry.

[0222] Although this patent document contains many details, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular invention. Certain features described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a certain combination and may even be initially claimed as such, one or more features from a claimed combination may, in some cases, be deleted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0223] Similarly, although operations may be depicted in the figures in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in sequential order, or that all of the illustrated operations be performed, to achieve desirable results. Further, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0224] Only some implementations and examples have been described; other implementations, improvements, and modifications can be made based on what is described and illustrated in this patent document.

Claims

1. 1. A method for volumetric visual data processing, said method comprising: a decoder decoding a bitstream including volumetric visual information about a three-dimensional scene represented as one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams; reconstructing the 3D scene using the decoding of the one or more atlas sub-bitstreams and the decoding of the one or more encoded video sub-bitstreams; and Rendering a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation. Including, Decoding the bitstream comprises: deencapsulating one or more volumetric visual tracks corresponding to an atlas group based on a first syntax element of a volumetric visual parameter track identified according to a first sample entry type, the first syntax element providing view group information of the volumetric visual parameter track, the atlas group including all atlases generated from a same view group, from which one or more views of volumetric visual data are selected for rendering of the target view, each volumetric visual track in the one or more volumetric visual tracks being associated with a second syntax element, the second syntax element being associated with a second sample entry type and providing atlas group information of a corresponding volumetric visual parameter track; decoding the atlas group corresponding to the same view group; Including, The first syntax element and the second syntax element are included in a file storage of the bitstream, and the first syntax element and the second syntax element are associated with the first sample entry type and the second sample entry type, respectively, the first sample entry type identifying the volumetric visual parameter track and the second sample entry type identifying the corresponding volumetric visual parameter track. and indicating that a specific visual parameter track belongs to the one or more volumetric visual tracks corresponding to the atlas group.

2. The method of claim 1 , wherein the atlas group corresponds to the same view group, from which the one or more views of the volumetric visual data are selected for rendering of the target view.

3. deencapsulating one or more volumetric visual tracks corresponding to the atlas group prior to decoding the atlas group; The method of claim 1 or claim 2, wherein a group of volumetric visual tracks and the volumetric visual parameter track carry all atlas data for the atlas group.

4. 4. The method of claim 3, further comprising identifying a group of volumetric visual tracks according to a particular track group type and a particular track group identification, each volumetric visual track in the group of volumetric visual tracks including a particular track reference to the volumetric visual parameter track.

5. The method comprises: the decoder selecting the one or more views of volumetric visual data for the target view based on one or more view group information, each view group information describing one or more views; or the decoder selecting one or more views of the volumetric visual data for rendering of the target view based on view information for the one or more views, each view information describing camera parameters of a corresponding view, each view group information further comprising camera parameters for the one or more views. The method of claim 2 , further comprising:

6. The method of claim 1 or claim 5, wherein information from the one or more atlas sub-bitstreams is decoded by deencapsulating the one or more volumetric visual tracks corresponding to the atlas group, and the one or more volumetric visual tracks and the volumetric visual parameter track carry all atlas data for the atlas group.

7. The method comprises: identifying a timed metadata track according to the second sample entry type, the second sample entry type indicating that the one or more views of the volumetric visual data selected for target view rendering are dynamic; or identifying the volumetric visual parameter track according to the first sample entry type, the volumetric visual parameter track defining a constant parameter set and common atlas data for all reference volumetric visual tracks with a particular track reference; The method of claim 3 or claim 6, further comprising:

8. 1. A method for volumetric visual data processing, said method comprising: an encoder generating a bitstream including volumetric visual information about a 3D scene by representing the 3D scene using one or more atlas sub-bitstreams and one or more encoded video sub-bitstreams; including in the bitstream information enabling rendering of a target view of the three-dimensional scene based on a desired viewing position and / or a desired viewing orientation; Including, The generating step comprises: the encoder encoding an atlas group corresponding to a view group from which one or more views of volumetric visual data are selected for rendering of the target view, the atlas group including all atlases generated from the view group; encapsulating one or more volumetric visual tracks corresponding to the atlas group based on a first syntax element of a volumetric visual parameter track identified according to a first sample entry type; Including, Each volumetric visual track in the one or more volumetric visual tracks is associated with a second syntax element, the second syntax element being associated with a second sample entry type and providing atlas group information for a corresponding volumetric visual parameter track; The method, wherein the first syntax element and the second syntax element are included in a file storage of the bitstream, and the first syntax element and the second syntax element are associated with the first sample entry type and the second sample entry type, respectively, the first sample entry type identifying the volumetric visual parameter track and the second sample entry type indicating that the corresponding volumetric visual parameter track belongs to the one or more volumetric visual tracks corresponding to the atlas group.

9. The method of claim 8 , wherein the encapsulating is performed on a group of volumetric visual tracks that includes the one or more volumetric visual tracks, and the group of volumetric visual tracks and the volumetric visual parameter track carry all atlas data for the atlas group.

10. The method comprises: including in the bitstream information identifying the group of volumetric visual tracks according to a particular track group type and a particular track group identification, each volumetric visual track in the group of volumetric visual tracks including a particular track reference to the volumetric visual parameter track; or including information in the bitstream for identifying a timed metadata track according to the second sample entry type, the second sample entry type indicating that the one or more views of the volumetric visual data selected for target view rendering are dynamic; or including information in the bitstream for identifying the volumetric visual parameter track according to the first sample entry type, the volumetric visual parameter track defining a constant parameter set and common atlas data for all reference volumetric visual tracks with a particular track reference; The method of claim 9 further comprising:

11. The information from the one or more atlas sub-bitstreams is encapsulated into the group of volumetric visual tracks corresponding to the atlas group.

10. The method of claim 9, wherein the atlas data is encoded by a set of atlas parameters, and the group of volumetric visual tracks and the volumetric visual parameter track carry all atlas data for the atlas group.

12. 10. The method of claim 8, further comprising including information identifying the one or more views of the volumetric visual data for rendering of the target view based on view information for the one or more views, the view information describing camera parameters of a corresponding view.

13. The one or more encoded video sub-bitstreams include: one or more video coding elementary streams for geometry data; zero or one video coding elementary stream for occupancy map data; zero or more video coding elementary streams for attribute data; Including, A method according to any preceding claim, wherein said geometry data, said occupancy map data and said attribute data describe said three-dimensional scene.

14. A video processing apparatus comprising a processor configured to implement a method according to any of the claims 1 to 13.

Citation Information

Patent Citations

  • Panoramic image generation method and system and Internet of vehicles big data service platform

    CN108282635A

  • 3D point cloud compression systems for delivery and access of a subset of a compressed 3D point cloud

    US20190318488A1

  • Point cloud compression using interpolation

    US20200014940A1

  • Viewpoint metadata for omnidirectional video

    WO2019195547A1

  • Methods and apparatus for volumetric video transport

    WO2020013976A1