Method for dynamic region prioritization during a real-time transmission

WO2026019415A1PCT designated stage Publication Date: 2026-01-22NOKIA TECHNOLOGIES OY +2
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/038026
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-15
Publication Date
2026-01-22

AI Technical Summary

Technical Problem

Existing methods for transmitting volumetric content, such as point clouds, do not allow for dynamic signaling of region prioritization during real-time transmission, leading to inefficiencies in bandwidth usage and potential data loss over unreliable networks.

Method used

Implementing RTCP feedback messages and RTP header extensions to enable receivers to request prioritization of certain regions and attributes, with senders using RTP header extensions to indicate current prioritization and parameters, allowing dynamic adaptation of viewport precision and region importance.

Benefits of technology

Enables efficient and adaptive transmission of volumetric content by prioritizing regions of interest, optimizing bandwidth usage and enhancing data reliability in real-time transmissions over unreliable networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024038026_22012026_PF_FP_ABST
    Figure US2024038026_22012026_PF_FP_ABST
Patent Text Reader

Abstract

An apparatus comprising: means for obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; means for determining a plurality of regions of the three-dimensional scene; means for determining to which of the plurality of regions the plurality of points belong; means for determining a prioritization of the plurality of regions; means for encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and means for transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.
Need to check novelty before this filing date? Find Prior Art

Description

Method For Dynamic Region Prioritization During A Real-Time TransmissionTECHNICAL FIELD

[0001] The examples and non-limiting embodiments relate generally to a method for dynamic region prioritization during a real-time transmission.BACKGROUND

[0002] It is known to perform data compression and data decompression in a multimedia system.SUMMARY

[0003] In accordance with an aspect, an apparatus includes: means for obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; means for determining a plurality of regions of the three-dimensional scene; means for determining to which of the plurality of regions the plurality of points belong; means for determining a prioritization of the plurality of regions; means for encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and means for transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

[0004] In accordance with an aspect, an apparatus includes: means for receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; means for decoding at least the points within the subset of the plurality of points; means for reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The foregoing embodiments and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:

[0006] FIG. 1 a sample set with a single Lidar and several objects represented as blocks in 3D space.

[0007] FIG. 2 shows and example processing chain for the processing of captured data that represents a 3D scene.

[0008] FIG. 3 shows an explicit association with a region to determine a transformation policy to be applied.

[0009] FIG. 4 shows an implicit association with a region via a mapping.

[0010] FIG. 5 shows Table 1, including an octant to bit mapping order.

[0011] FIG. 6 shows relative octree encoding using an explicitly defined bounding box.

[0012] FIG. 7 shows an example RTCP feedback message header.

[0013] FIG. 8 shows an RTCP feedback message containing a relative octree encoding, attribute encoding and level-of-detail encoding.

[0014] FIG. 9 shows an example RTP header extension payload header.

[0015] FIG. 10 shows an encoder according to an embodiment.

[0016] FIG. 11 shows a decoder according to an embodiment.

[0017] FIG. 12 is a block diagram illustrating a system in accordance with an example.

[0018] FIG. 13 is an example apparatus configured to implement the examples described herein.

[0019] FIG. 14 shows a representation of an example of non-volatile memory media used to store instructions that implement the examples described herein.

[0020] FIG. 15 is an example method, based on the examples described herein.

[0021] FIG. 16 is an example method, based on the examples described herein.DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

[0022] Volumetric Content

[0023] There are many ways to capture and represent a volumetric scene. The format used to capture and represent it depends on the processing to be performed on it, and the target application using it. Some exemplary representations are listed below.

[0024] A volumetric frame can be represented as a point cloud. A point cloud is a set of unstructured points in 3D space, where each point is characterized by its position in a 3D coordinate system (e.g. Euclidean), and some corresponding attributes (e.g. color information provided as RGB A value, or normal vectors).

[0025] A volumetric frame can be represented as images, with or without depth, captured from multiple view points in 3D space. In other words, it can be represented by one or more view frames (where a view is a projection of a volumetric scene on to a plane (the camera plane) using a real or virtual camera with known / computed extrinsics and intrinsics). Each view may be represented by a number of components (e.g. geometry, color, transparency, and occupancy picture), which may be part of the geometry picture or represented separately.

[0026] A volumetric frame can be represented as a mesh. Mesh is a collection of points, called vertices, and connectivity information between vertices, called edges. Vertices along with edges form faces. The combination of vertices, edges and faces can uniquely approximate shapes of objects.

[0027] Depending on the capture, a volumetric frame can provide viewers the ability to navigate a scene with six degrees of freedom, i.e. both translational and rotational movement of their viewing pose (which includes yaw, pitch and role). The data to be coded for a volumetric frame can also be significant, as a volumetric frame can contain many number of objects, and the positioning and movement of these objects in the scene can result in many dis-occluded regions. Furthermore, the interaction of light and materials in objects and surfaces in a volumetric frame can generate complex light fields that can produce texture variations for even a slight change of pose.

[0028] A sequence of volumetric frames is a volumetric video. Due to the large amount of information, storage and transmission of a volumetric video requires compression.

[0029] Point Cloud

[0030] A point cloud is a data structure that can be used to represent a three-dimensional scene. Point clouds consist of a set of points in a coordinate system. Each point is defined by its three coordinates and may be associated with zero or more attributes. Attributes can have different types and are used to describe the properties of a point, such as its color or reflectance. Point clouds are created by sensors such as Lidar (“light detection and ranging”) or Radar (“radio detection and ranging”) sensors or by depth cameras or by multi-camera setups or by ultrasound devices or by other distance sensing devices or combinations one or more of the above and, optionally, other devices. There are many use-case scenarios for point clouds. An example use case is a vehicle that uses one or multiple sensors to scan its environment to create a point cloud describing its surroundings. The point clouds can then be used for further processing, e.g., for creating a virtual mapping of the environment, for autonomous driving use cases, or for teleoperation. In some cases, further processing has to be done on a different device than the device that captured the point cloud. In those cases, point clouds or sequences of point clouds have to be transmitted over a network. Due to the large amount of data that point cloud sequences produce, transmitting the data in real-timeis challenging. In addition to the use of efficient codecs to reduce the data rate, it may be beneficial to lower the bandwidth requirements by prioritizing certain parts of a point cloud and allowing other parts to be removed from the point cloud before transmission. Moreover, transmission channels (such as wireless networks, packet networks, or other potentially unreliable channels) may not deliver all point cloud data intact, in which case, possibly selective, repair mechanisms may be beneficial.

[0031] Geometry-based point cloud compression (G-PCC)

[0032] G-PCC is an encoding mechanism defined by the Moving Picture Experts Group (MPEG) to reduce the size of a point cloud. G-PCC encodes point clouds with a number of tools that are especially efficient for sparse point cloud data. The geometry of the point cloud is first encoded as an octree and attributes are coded depending on the geometry, in other words, the attribute coding relies on reconstructed geometry data that can be reproduced exactly at encoder and decoder so as to avoid coding drifts and errors for attributes. Different tools are available after octree decomposition within G-PCC specifications, such as “trisoup” that consists in a surface approximation based on a set of triangles defined on octree leaves, and such as predictive occupancy octree coding. Attributes are typically transferred from the original point cloud to the reconstructed geometry. Attributes may be coded with a LOD-based approach combined with a predictive transform and optionally a Lifting Transform. As an alternative approach to LoDs, a Region- Adaptive Hierarchical Transform (RAHT) introduced interesting inter prediction compression performances. In the emerging G-PCC edition 2, these tools have been extended and complemented, offering more access granularity to LoDs, adaptive quantization per LoD, cross-attribute prediction within a LOD, LoD attribute slices, enhanced coding of DC and AC components of RAHT, and overall, a better point cloud inter prediction performance.

[0033] Visual Volumetric Video-base Coding (V3C) - ISO / IEC 23090-5

[0034] ISO / IEC 23090-5 specifies the syntax, semantics, and process for coding volumetric video. The specified syntax is designed to be generic so that it can be reused for a variety of applications. Point clouds, immersive video with depth, and mesh representations can all use ISO / IEC 23090-5 standard with extensions that deal with the specific nature of the final representation. The purpose of the specification is to define howto decode and interpret the associated data (for example atlas data in ISO / IEC 23090-5) which tells a Tenderer how to interpret 2D frames to reconstruct a volumetric frame.

[0035] Two applications of V3C (ISO / IEC 23090-5) have been defined, V-PCC (ISO / IEC 23090-5) and MIV (ISO / IEC 23090-12). MTV and V-PCC use a number of V3C syntax elements with a slightly modified semantics.

[0036] MPEG 3DG (ISO SC29 WG7) group has started work on a third application of V3C - the mesh compression (ISO / IEC 23090-29). It is also envisaged that mesh coding reuses V3C syntax as much as possible and can also slightly modify the semantics.

[0037] Real-time Transport Protocol (RTP)

[0038] RTP is intended for an end-to-end, real-time transfer of streaming media and provides facilities for jitter compensation and detection of packet loss and out-of-order delivery. RTP allows data transfer to multiple destinations through IP multicast or to a specific destination through IP unicast. The majority of the RTP implementations are built on the User Datagram Protocol (UDP). Other transport protocols may also be utilized. RTP is used in together with other protocols such as H.323 and Real Time Streaming Protocol RTSP.

[0039] The RTP specification describes two protocols: RTP and RTCP. RTP is used for the transfer of multimedia data, and the RTCP is used to periodically send control information and QoS parameters.

[0040] RTP sessions are typically initiated between client and server using a signaling protocol, such as H.323, the Session Initiation Protocol (SIP), or RTSP. These protocols typically use the Session Description Protocol (RFC 8866) to specify the parameters for the sessions.

[0041] RTP is designed to carry a multitude of multimedia formats, which permits the development of new formats without revising the RTP standard. To this end, the information required by a specific application of the protocol is not included in the generic RTP header. For a class of applications (e.g., audio, video), an RTP profile may be defined. For a media format (e.g., a specific video coding format), an associated RTP payload format may bedefined. Every instantiation of RTP in a particular application may require a profile and payload format specifications.

[0042] The profile defines the codecs used to encode the payload data and their mapping to pay load format codes in the protocol field Payload Type (PT) of the RTP header.

[0043] While the mechanisms described herein are applicable to RTP as a practical example, the principles are, possibly in a variation, also applicable to other real-time media transport protocols such as the Media over QUIC (MoQ) work performed in the IETF [charter-ietf-moq-01], Real Time Messaging Protocol (RTMP), and other media transport protocols.

[0044] Real-time Transport Control Protocol (RTCP)

[0045] The RTP Control Protocol (RTCP) is part of the RTP specification (RFC 3550) and provides mechanisms for RTP senders and receivers to exchange additional control information. RTCP does not carry any media data itself. One function of RTCP is to provide receiver feedback to senders about the received media stream's quality. Additionally, senders can provide control information for receivers to synchronize multiple media streams. RTCP defines a set of messages for different purposes with a common header format and a set of timing rules for the transmission of messages. Some message types are transmitted in regular intervals to provide timing and QoS information (e.g., Sender and Receiver Reports), while others may be transmitted based on triggers such as packet loss to assist repair mechanisms (e.g. Negative Acknowledgements). In addition to the transport layer feedback mechanisms, RTCP supports application specific feedback, e.g., to support media type specific repair mechanisms. RTCP can be extended by adding new message types for new types of control information.

[0046] RTP Payload Format for Geometry-based Point Cloud Compression

[0047] A method may be implemented for transmitting point clouds that were encoded using G-PCC by utilizing the Real-time Transport Protocol.

[0048] The RTP Control Protocol (RTCP) is part of RTP and describes an extensible feedforward and feedback mechanism that can be used by senders and receivers to exchangesynchronization and other meta-information about an ongoing RTP stream.

[0049] G-PCC is representative for a representation format for a point cloud for transmission, but those skilled in the art will appreciate that other formats may be considered. Similarly, RTP and RTCP are representative for protocols to carry real-time data and supplemental information, while other transport protocols may exhibit similar properties or serve similar purposes (such as RMTP, Media-over-QUIC, to name just a few).

[0050] The RTP Payload Format for V3C

[0051] RTP payload format for V3C atlas sub-bitstreams. The RTP payload format for V3C video sub-bitstreams is defined by relevant Internet Standards for the applicable video codec. The V3C RTP pay load format allows for packetization of one or more V3C atlas Network Abstraction Layer (NAL) units in an RTP packet payload as well as fragmentation of a V3C atlas NAL unit into multiple RTP packets. Additionally, the draft describes the mechanisms for grouping RTP streams of V3C component sub-bitstreams, providing a complete solution for streaming V3C encoded content.

[0052] SDP - Session Description Protocol

[0053] The Session Description Protocol (SDP) is a format for describing multimedia communication sessions for the purposes of announcement and invitation. Its predominant use is in support of streaming media applications. SDP does not deliver any media streams itself but is used between endpoints for negotiation of network metrics, media types, and other associated properties. The set of properties and parameters is called a session profile. SDP is extensible for the support of new media types and formats.

[0054] The Session Description Protocol describes a session as a group of fields in a textbased format, one field per line. The form of each field is as follows.

[0055] Where <character> is a single case-sensitive character and <value> is structured text in a format that depends on the character. Values are typically UTF-8 encoded. Whitespace is not allowed immediately to either side of the equal sign.

[0056] Session descriptions consist of three sections: session, timing, and media descriptions. Each description may contain multiple timing and media descriptions. Names are only unique within the associated syntactic construct.

[0057] Fields must appear in the order shown; optional fields are marked with an asterisk

[0058] Time description (mandatory)

[0059] Media description (optional)

[0060] Below is a sample session description from RFC 4566. This session is originated by the user "jdoe", at IPv4 address 10.47.16.5. Its name is "SDP Seminar" and extended session information ("A Seminar on the session description protocol") is included along with a link for additional information and an email address to contact the responsible party, Jane Doe. This session is specified to last for two hours using NTP timestamps, with a connection address (which indicates the address clients must connect to or — when a multicast address is provided, as it is here — subscribe to) specified as IPv4 224.2.17.12 with a TTL of 127. Recipients of this session description are instructed to only receive media. Two media descriptions are provided, both using RTP Audio Video Profile. The first is an audio stream on port 49170 using RTP / AVP payload type 0 (defined by RFC 3551 as PCMU), and the second is a video stream on port 51372 using RTP / AVP payload type 99 (defined as "dynamic"). Finally, an attribute is included which maps RTP / AVP payload type 99 to format h263- 1998 with a 90 kHz clock rate. RTCP ports for the audio and video streams of 49171 and 51373, respectively, are implied.

[0061] SDP - Atributes

[0062] SDP uses atributes to extend the core protocol. Atributes can appear within the Session or Media sections and are scoped accordingly as session-level or media-level. New atributes can be added to the standard through registration with IANA. There may be a list of all registered atributes. A media description may contain any number of "a=" lines (atribute-fields) that are media description specific. Session-level atributes convey additional information that applies to the session as a whole rather than to individual media descriptions.

[0063] Atributes are either properties or values:

[0064] SDP - Offer / Answer

[0065] This defines a mechanism by which two entities can make use SDP can be utilized in a scenario where two entities (i.e. server and client) negotiate at a common understanding and setup of a multimedia session between them. In such scenario one of the entities (e.g. sever), offers the other a description of the desired session (or possible option of a session) from their perspective, and the other participant answers with the desired session from their perspective. This offer / answer model can be used by other protocols for example a Session Initiation Protocol (SIP).

[0066] Extensive effort has gone into improving the (end-to-end) transmission of audio, video, and other real-time media over, possibly unreliable (sometimes “best-effort”) packetbased networks or wireless networks. Related work to improve media transmission over such lossy networks takes numerous shapes (1-10):

[0067] 1. Pacing and adapting the transmission data rate, also termed congestion control or rate control

[0068] 2. Retransmissions of missing data packets

[0069] 3. Fully redundant transmission of media, possibly at different encodings (data duplication, audio redundancy encoding

[0070] 4. Partially redundant transmission of media, possibly at different encodings (data duplication, audio redundancy encoding

[0071] 5. Employing source-based (source coding) or network-based (network coding) redundancy mechanisms, e.g., using XOR, Reed-Solomon codes, or rateless coding

[0072] 6. ARQ-based mechanisms in which a receiver inform a sender about each received (positive acknowledgement) or missing (negative acknowledgement) packet or data unit

[0073] 7. Mechanisms in which a receiver informs a sender that a certain video frame shall be used as a reference for a future encoding (e.g., Reference Picture Selection)

[0074] 8. Mechanisms in which a receiver asks a sender to send an intra-coded picture (e.g., Full Intra Request)

[0075] 9. Mechanisms that receiver uses to conceal missing data, e.g., by means of repetition of previous data, by means of interpolation of the missing data in space (from neighboring data) or time (from previous and later data)

[0076] 10. In 360° video, a field of view (FoV) is defined as the area the receiver currently has in focus; this area is then encoded with higher fidelity while areas outside the FoV are transmitted in lower quality (e.g., for adjacent areas) or not at all (e.g., for the opposing direction). As head movement changes the FoV, prediction mechanisms may be applied to determine which parts of the 360° scenery might move into the FoV next so that encoding, and transmission can anticipate this change. There is a relationship between viewport and FoV.

[0077] Any of the above redundancy mechanisms may be applied to all packets, selected packets, or selected packet contents.

[0078] Viewport and Region-of-Interest-Dependent Delivery of Visual Volumetric Media

[0079] RTCP messages and RTP header extensions may be implemented to enable partial access and support viewport- and region-of-interest-dependent delivery of visual volumetric (3D) media. However, this alone does not provide a possibility to dynamically signal region prioritization during a real-time transmission.

[0080] Rather than (randomly) removing portion of 3D environment (e.g., represented by point cloud), it is reasonable to select certain regions of the environment to be prioritized, e.g., areas of the environment that require special attention by the receiver. Since the processing may happen on the receiver side of the transmission, it might be useful to let the receiver select which areas of the 3D environment (e.g., point cloud) should be transmitted with high priority and which areas are of less importance.

[0081] The method for transmitting 3D environment (e.g., point clouds) using the Realtime Transport Protocol referenced above does not allow senders or receivers to signal which areas are currently being prioritized or to be prioritized in the future once the transmission is started.

[0082] The examples described herein solve the problem of dynamically signaling region prioritization during a real-time transmission of volumetric content (e.g., point clouds encoded using the G-PCC codec). The solution includes a method for receivers to request prioritization of certain regions and to ask for specific attributes to be sent for different regions. It also includes a method to dynamically adapt the viewport and its precision parameters of the stream captured by the sender.

[0083] The sender has the option to indicate the currently prioritized regions and their parameters, and the receiver can request updates to the prioritization applied by the sender. Besides selecting spatial regions, the examples described herein allow signaling of parameters for each region such as resolution and attributes to be included for each region. The receiver side request mechanism makes use of RTCP by defining multiple new feedback message types and the sender side mechanism uses RTP header extensions to indicate the currently used prioritization and parameters to the receiver.

[0084] It is appreciated by those skilled in the art that RTP and RTCP are just examples for data transmission and control protocols and that other protocols or a single protocol maybe used instead.

[0085] Overview

[0086] FIG. 1 shows a sample setup with a single Lidar 102 and several objects Ai (including Al, A2, A3, A4), Bj (including Bl, B2, B3, B4, B5), Ck (including Cl, C2, C3, C4, C5) represented as blocks in 3D space. Ai are closest to the Lidar 102, Bj are a bit further away, and Ck are in the distance. Two regions of interest (or relevance) are defined: Field of View (FoV) 1 and FoV 2. FoV 1 is more central, including all objects Al, Bl, Cl. FoV 2 is more peripheral, including all objects A2, A3, B2, B3, C2, C3. The remaining space contains objects A4, B4, B5, C4, C5 that are not in a relevant area.

[0087] A sensor (such as Lidar, Radar, depth camera or other suitable ranging / sensing device) scans the 3D space according to a horizonal and vertical viewing angle (e.g., 360° and 40°, respectively).

[0088] Points in the point cloud resulting from the scanning are reflections (depending on the sensing method) from an object Ai, Bj, Ck; a collection of points thus represents the object as “seen” by the sensor.

[0089] Points may have associated attributes such as color, reflectivity, among others. Point coordinates and attributes may have numeric representations of different precision. The sensing device has a given angular (both vertical and horizontal) and distance resolution.

[0090] Within the viewing angles (and max sensing distance), regions may be defined and “relevance” may be attributed to these regions. This “relevance” determines the way how points and their attributes are represented.

[0091] The relevance may also determine how and how frequently they are transmitted, if and which error repair or reliability mechanisms are applied, which (re)transmission priority is associated with individual points.

[0092] Thus, the following processing chain is obtained as one possible example (the ordering may change) as shown in FIG. 2.

[0093] As shown in FIG. 2, the captured 3D scene 202 is scanned using a scanning process 204, where angles and distance are captured. The captured 3D scene 202 is captured as a point cloud (206). At 208, regions are defined. The points are classified / separated based on the defined regions, as points in region 1 (210), points in region 2 (212), and points in region n (214). At 216, overlaps are identified to identify points belonging to more than one region. As a result of identifying overlaps at 216, identified are points only in region 1 (218), points in region 1 and region 2 (220), points only in region 2 (222), and so on to points only in region n (224). At 226, intersection policies are defined.

[0094] At 228, a transformation is applied to the points only in region 1 (218). At 230, a transformation is applied to the points in regions 1 and 2 (220). At 232, a transformation is applied to the points only in region 2 (222). This continues to 234, where a transformation is applied to the points only in region n (224). After the points have been transformed (228, 230, 232, 234), at 236 the transformed points and attributes are encoded with annotations for transmission.

[0095] Mapping to a region and the resulting transformation may use Boolean (in vs. out), discrete, or continuous values.

[0096] Boolean: if a point is inside or outside a geometric object such as a sphere or a cone. If inside transformation A is applied, otherwise transformation B.

[0097] Discrete: A region mapping may use discrete or discretized values as numerical properties of a point, e.g., rounding the distance to the sensor to units of 10cm. With discrete units, a transformation matrix may be applied.

[0098] Continuous: a region mapping uses a steady function to determine numerical properties of each point. Continuous values (but also discrete ones) can be used as input to range checks to determine which region a point belongs to or as direct input into a transformation function.

[0099] A transformation function, possibly one for each point property defines the translation of the input values of the point as sensed to the output (= encoding) values and policies.

[0100] FIG. 3 shows explicit association with a region to determine the transformation policy to be applied. Mapping: if point within viewing cone, apply transformation TA, else apply transformation TB TA: encode coordinates with 32 bit precision, TB: encode coordinates with 16 bit precision.

[0101] A mapping function 304 is applied to the point properties 302. A transformation choice 308 is applied based on the region 306. The point properties 302 and region 306 are input to the transformation function 310 that when applied to the point properties 302 results in transformed point properties 312.

[0102] FIG. 4 shows Implicit association with a region via (continuous or discrete numerical values): Mapping: Determine the angle alpha of a point from the straight center line of sight and the distance d. Transformation: encode the coordinates with a precision as a decaying function of distance and angle.

[0103] Property selection and preprocessing 404 is applied to point properties 402. A common transformation function 406 is applied to the point properties 402, resulting in transformed point properties 408.

[0104] The examples described herein use RTCP feedback messages and RTP header extensions to signal region parameters between sender and receiver. The following paragraphs describe the detailed encoding of regions and their parameters in RTCP messages and RTP header extensions, followed by a description of how the respective encodings can be used by senders and receivers.

[0105] RTP header extensions are representative for control information attached to data packets, while RTCP messages are representative for control information transmitted in separate packets. It is appreciated that information attached to data packets may also be carried in separate packets and that information carried in separate packets may also be attached to data packets (e.g., in the opposite direction). It is also appreciated that packets are considered logical entities and that multiple such logical packets may be carried in the same “physical” packet or datagram or message transmitted through the network. Moreover, logical packets may need to be split up for transmission into multiple “physical” packets.

[0106] Region Encoding

[0107] Regions of a point cloud can be efficiently encoded using an octree encoding. An octree consists of a root node with eight children, and each child corresponds to an octant of the coordinate system in use. The octree encoding used in this document uses a binary serialization format, where the root node is encoded as a single byte where each bit encodes the presence of an octant child node. Each child node is itself an octree using the same format, thereby recursively encoding another octree describing the regions of its octant. Leaf nodes of the octree are encoded as 0x00. A region in a point cloud is considered present if there is a child node where the path from root to child except for the leaf node has all bits set to one. The order of octants in a node is given by the following listing using the signs of the X-, Y-, and Z-coordinates of the points within each octant: +++, -++, -+, +-+, ++-, -+-, — , +— . Different orderings can be used but need to be agreed upon either upfront or by additional signaling. The encoding can be used in two versions to signal the presence of certain regions in space. The first version implicitly defines the enclosing space as the maximum space of the point clouds as recorded by the source. The second version allows for explicit signaling of the enclosed area by defining the minimum and maximum X-, Y-, and Z- coordinates. If the minimum and maximum are to be specified explicitly, they can be prepended to the octree encoding as four-byte integers in network order.

[0108] Attribute Encoding

[0109] Attributes signaling requires an upfront negotiation of the available attributes using some out-of-band signaling mechanism such as SDP. Each available attribute has to be assigned to a bitmask that can be used when signaling the presence of attributes in certain regions. Senders and receivers can indicate the presence of attributes per region in a point cloud by adding a bitmask for every leaf node in an octree encoding of the point cloud regions. The length of the bitmask depends on the initially negotiated number of attributes and their respective mask values.

[0110] Viewport Precision Encoding

[0111] A point cloud defines points in a 3D space. Different areas of this 3D space may bear different relevance at different points in time, where this relevance may be determined by the sender or the receiver or both or some third-party entity. The relevance may be dependent on the application the point cloud data shall be used for.

[0112] As mentioned for the state of the art, 360° video defines a field-over-view, also dubbed viewport, to denote the most relevant area of a scene.

[0113] For a 3D point cloud, one or more regions may be of particular relevance. Moreover, the relevance of regions may not be enumerable as discrete values (such as high vs. medium vs. low importance) but may be continuous. The examples described herein define means to denote the importance of regions, several mechanisms to associate regions with importance, and signaling to convey this information.

[0114] To associate a level of importance with a region, this region must be identified first. This can be done in multiple ways, including (but not limited to):

[0115] 1. A region can be explicitly denoted using the above octree encoding to define an enclosing space to which the respective level of importance is to be applied.

[0116] 2. A region can be defined by means of a (three-dimensional) geometric object in space, e.g., a cube, a sphere, a cone, a pyramid, etc. These objects may be defined using their mathematical formulation (if available), or may be taken from dictionaries with a set of parameters. A region can also be defined by a logical function (union, intersection, removal or truncation) of a plurality of geometric objects such as the union of a sphere and a cone, or a sphere truncated by a plane.

[0117] 3. A region may be defined by a multi-dimensional matrix (e.g., 3D) in which each matrix element refers to a geometric “subspace” in 3D space and the value of each element determines the region to which this geometric “subspace” belongs.

[0118] 4. A region can be defined by means of a function in 3D space. Such a function may be a polar function with the original at the location of the point cloud source (but other locations would also be feasible), may be a regular function, or may be a lower or higher dimensional function with some appropriate mapping to regions. In any case, such a function can define steady or discrete values for each coordinate from which the importance of a point in space or a region may be inferred.

[0119] 5. Similar to 4., such a function may carry the extra dimension of time that would allow specifying the time variability of the importance, e.g., decaying, recurring highimportance, among others. As noted above, also a matrix as per 3. may be time-varying, e.g., by defining one or more functions to modulate some of all matrix elements over time, by defining a transformation matrix (with functions to be applied or elements to matrix- multiplied or both), or by extending an n-dimensional matrix to an (n+l)-dimensional matrix that defines the time-varying behavior as the (n+l)-st dimension.

[0120] 6. The above basic mechanisms may be combined so that certain functions are applied within to certain explicitly defined areas or defined areas within functions are attributed a particular importance. This applies to the time dimension as well.

[0121] 1. and 2. allow denoting arbitrarily shaped area, possibly by combining multiple objects. The importance of a region is determined then of being inside a region as per 1. or 2. or 3. or as a function of the output of a function as per 4.-6.

[0122] Multiple regions defined using any of the above means or combinations thereof may overlap. In case of an overlap, the importance for the overlap space needs to be defined in case those levels of the overlapping definitions are not the same. Policies may be set up front, signaling at the beginning, or signaling during the media exchange to resolve such conflicting importance attributions. For example, a policy may be a) to compute a mean importance (plus some optional rounding scheme if discrete values are required), b) to use the maximum importance, c) to use the minimum importance, d) to use a majority “vote” (e.g., if three regions overlap and two define the region as of high importance and one does not, to then use the majority vote of high importance), e) to adjust the importance minimally or maximally as a function of the previous importance of this region, f) to adapt the policy to the needs of the current communication situation (e.g., require using lower or allowing for higher data rate), among others.

[0123] For example, a cone with the axis into the moving direction of a robot may be used to define the core field of view of high importance to be encoded at full resolution. A secondary cone with wider radius may be used to define a region for medium resolution, and a policy may then define that, in case of overlap, the higher importance takes precedence.

[0124] As another example a polar function may be defined that reduces the precision asa function of distance.

[0125] Level of Detail encoding

[0126] The above mechanisms attribute importance to regions, which effectively means they govern the level of detail that should be applied to the encoding. This applies to 1. the number of points of a point cloud to be encoded (some form of “density”); 2. the precision at which a given point is encoded - as a special case, precision may be zero so that the point is not encoded at all (at a given time instant); 3. which attributes of a given point are encoded; and / or 4. the frequency at which any of the above attributes are present.

[0127] For each output (from a function or another region specification) an actionable transformation needs to be defined for above four aspects: 1. A density space determines, e.g., how many points per angle, volume, distance unit, etc. are to be represented. 2. A number of bits, a quantization factor, the number of decimal digits (or, more general, a rounding function or the parameters thereof) may be specified. 3. A mapping to attributes (and possibly their level of detail) is to be specified. For example, attributes may be ordered by their relevance and a numeric value associated with each attribute, yielding an ordered attribute table. A function then yields a threshold value for a point and all attributes above this threshold are encoded. 4. A thinning factor, a transmission interval, or a transmission frequency may be determined.

[0128] The functions controlling the above properties may be the same (optionally, with suitable transformations) or different ones for different properties. These transformation may be a function, a matrix (e.g., when a matrix representation for the mapping is used), a table, or other suitable means.

[0129] Regions are discussed quite a bit herein, however the attributes of individual points are encoded. There should be a conceptually clean separation that the points are what is encoded in the end and that the regions are a vehicle to enumerate the points and associate certain treatment with them. While doing so, it should be considered that if there is any content transmission useful to be done also at the region level in case this might yield more efficiency, especially when regions are denoted as octrees and we define some type of inheritance rules for points in subtrees.

[0130] The coded point sequence in G-PCC is organized in tiles and slices, where a slice consists in geometry and attributes for part of, or an entire, coded point cloud frame (the bounding boxes of any two slices may overlap), and where a tile is a set of slices identified by a common slice_tag syntax element value whose geometry should be contained within a bounding box specified in a tile inventory data unit. Level-of-details relate to attribute coding and cover distance-based prediction schemes that use a hierarchical level-of-detail representation of the slice geometry. They apply when attr_coding_type is either 1 or 2. Detail levels are defined by an iterative subsampling process. The finest detail level comprises all points in the slice geometry. With each iteration, a coarser detail level is generated from the previous coarsest detail level.

[0131] Every detail level comprises a list of points present in the detail level, and is associated with a list of refinement points. A refinement point is a point that is present in a detail level and not present in any coarser detail level; the refinement points for detail level Ivl, when combined with the coarser detail level Ivl + 1, form detail level Ivl. For each refinement point, a set of neighboring points is determined using inter-detail-level, intra- detail-level and inter-frame searches. The neighboring points form a predictor set that is used to predict attribute / transform coefficient values.

[0132] Attribute reconstruction proceeds from the coarsest to the finest detail level. Transform coefficients are coded in the same order. A coded transform coefficient is associated with each refinement point. The transform comprises two operations: an update step that modifies the predicting points and a prediction step that adds the transform coefficient to a predicted attribute / coefficient value.

[0133] The reconstruction process for an attribute LoD consists of the following steps: deriving a set of detail levels from the slice geometry; searching for point predictors; determining transform coefficient weights or point quantization weights; and reconstructing attribute values from coded coefficients.

[0134] In one embodiment, a region may be defined such that it comprises the volume in which LoD coded attribute slices are available. The LoD coded slice may be coded with lod_scalability_enabled flag set to 1, which enables to decode attribute values from a partially decoded occupancy tree as specified in G-PCC Annex D. The frequency of theattribute within its LoD can be set by the lod_decimation_mode set in the bitstream, which currently offers the possibility to define the subsampling frequency to periodic subsampling, or alternatively to a block-based subsampling.

[0135] In another embodiment, when the number of attributes is larger than one, the cross_attr_prediction_enabled flag may be set to enable a dependency between attribute types within the same region which enables to improve coding using inter-attribute correlations. When disabled, the coding performance may be reduced, but the partial decoding of attributes is not constrained by the fact attributes may be used as reference for other attributes.

[0136] RTCP Feedback Messages

[0137] Receivers can signal their interest in certain regions and their parameters by sending RTCP feedback messages. The feedback messages use the encoding described in the previous sections to encode regions and their parameters. RTCP feedback messages use a common header format described in RFC 3550 (https: / / datatracker.ietf.org / doc / html / rfc3550). The header contains fields for a version number (V), an indicator if padding is present at the end of the packet (P), a payload type field (PT), a feedback message type (FMT), the length of the RTCP message and the SSRC of the sender of the message. The payload type field (PT) used by the examples described herein is fixed to the value 206, which indicates a payload-specific feedback message. The feedback message type field (FMT) depends on the type of feedback that is provided and defines the encoding used in the message. The available message types are presented in the following paragraphs. . An additional header field can be added following the common RTCP header to define flags which indicate the presence of a certain encoding in the message payload, e.g., a single byte where each bit is used to indicate the presence or absence of one of the following encodings.

[0138] Absolute region requests consist of the RTCP message header followed by an octree encoding. The octree encoding defines the regions that a receiver wants to be prioritized by the sender. Absolute region requests use the value X in the FMT field.

[0139] Relative region requests consist of the RTCP message header followed by abounding box indicated by min and max points and an octree encoding. The octree encoding describes regions a receiver is interested in. As opposed to implicitly referencing the complete space covered by the point cloud source, the octree encoding only references regions within the bounding box defined by min and max fields. Relative region requests use the value X’ in the FMT field.

[0140] Alternative to the octree encoding, RTCP messages can start with one of the options to identify regions in space listed above (e.g., by definition of a geometric shape or a matrix or a function in 3D space or a combination thereof). Functions may be defined by referring to a pre-defined or pre-negotiated set and only providing the parameterization, by explicitly defining a function in a high-level language (math expression, programming language, etc.), by defining a mapping table of input-to-output mappings (optionally defining the input as ranges), or a combination of the above.

[0141] Attribute requests extend the format of region requests by adding a list of attribute bitmasks for every leaf-node in the octree encoding. Using the bitmask, a receiver can indicate the set of attributes it is interested in for every region in the octree. Attribute request RTCP messages use the value Y in the FMT field. Similar to the attribute requests, the region encoding could be followed by a level-of-detail encoding describing desired level of detail for every region included in the region encoding. The level-of-detail encoding could have different forms such as the ones described above, e.g., a point density per region or the encoding precision of points within that region.

[0142] RTP Header Extensions

[0143] Senders can use RTP header extensions to inform receivers about the currently applied region prioritization and parameters. All RTP header extensions used by the examples described herein use the two-byte format described in RFC 8285. The encoding of point cloud regions and their parameters is the same as described above and as it is used in the RTCP feedback messages.

[0144] Sender / Receiver Interaction

[0145] RTP and RTCP are usually transmitted over unreliable protocols. Thus, it can happen that an RTP header extension is lost due to the RTP packet carrying the headerextension being lost or that an RTCP packet is lost. Senders and receivers therefore need a strategy to cope with potential losses of region or attribute requests and updates. Due to the additional and potentially large header overhead of RTP header extension elements carrying octree encodings, it is recommended to only include the header extension once for every region or parameter update. If one of the RTCP feedback message types providing loss information is in use (e.g., NACK, CCFB, or if a Receiver Report reports no loss), the sender can rely on that feedback to determine if a packet carrying a header extension was lost. Receivers are allowed to repeat request feedback messages but should not do so before at least one round trip time has passed.

[0146] Senders may explicitly acknowledge receipt of feedback messages (e.g., by reference in future RTP packets or by relying on lower layer protocols to provide such Acks, as RoQ would offer) or may implicitly do so by exhibiting encoding behavior change clearly identifiable at the receiver.

[0147] To improve the probability that the sender receives the feedback, the receiver may send it cumulatively by adding redundancy, to send e.g. first feedback #1, then (#1, #2), then (#1, #2, #3), then (#2, #3, #4), i.e., using a sliding window (compare with Audio redundancy coding). Feedback could also be sent semantically aggregated, e.g., adjusting the regions of interest over time.

[0148] In another embodiment we have conceivable signaling variants.

[0149] 1. We have a sender of an RTP media stream (possibly including header extensions) that transmits a series of RTP packets and a receiver that receives (some of) those packets and provides feedback, e.g., to signal region preferences as discussed above.

[0150] 2. A given piece of feedback can be assumed to be (implicitly) sequentially numbered.

[0151] 3. A sender may explicitly include the “sequence numbers” or some other representation (e.g., a Bloom filter with hashes of the received numbers or hashes of the feedback if no numbers are available) in future packets transmitted.

[0152] 4. Media packets may include selected feedback messages circulating through thelast window of received feedback, which may be particularly useful if media packets are paced with smaller inter-packet intervals than RTT between sender and receiver.

[0153] 5. The share of acknowledgements allocated to a given feedback message may decay over time. It may cease if future feedback by the receiver indicates that this was received.

[0154] SDP Signaling

[0155] The Session Description Protocol (SDP) can be used to signal the use of the described RTCP feedback messages and RTP header extensions between sender and receiver using an out-of-band protocol to transmit the SDP session descriptions. For example, the Session Initiation Protocol (SIP) could be used for setting up sessions using SDP, or HTTP or WebSockets could be used to transmit SDP session descriptions using the offer / answer model. Support for the RTCP feedback messages can be included in the a=rtcp- fb attribute of a session description. Different parameters are necessary to signal the support of the feedback messages. The following values could be used: 'absolute-octree-region- request', 'relative-octree-region-request', 'geometric-region-request', 'function-region- request' ' absolute-octree-attribute-request' , ' relative-octree-attribute-request'

[0156] Similarly, RTP header extensions can be negotiated using the a=extmap attribute as defined in RFC 8285. The following URIs can be used to signal support for the respective versions of the header extensions:

[0157] 'um:ietf:params:rtp-hdrext:abs-octree-region': Absolute octree region encoding

[0158] 'urn:ietf:params:rtp-hdrext:rel-octree-region': Relative octree region encoding

[0159] 'um:ietf:params:rtp-hdrext:geometric-region': A region encoding using a geometric shape. Different shapes could be defined, or alternative shapes could use additional URIs.

[0160] 'um:ietf:params:rtp-hdrext: function-region': A region encoding using a function in 3D space. Different functions could be defined, or alternative functions could use additional URIs.

[0161] ] um:ietf:params:rtp-hdrext:abs-octree-attributes': Absolute octree attributes encoding

[0162] 'urn:ietf:params:rtp-hdrext:rel-octree-attributes': Relative octree attributes encoding

[0163] SDP or other signaling could predefine a function dictionary or a matrix dictionary or intersection / merging policies or classes of regions to be supported or (default) transformation for regions or other dictionaries for efficient reference from the RTCP feedback packets. SDP signaling may also define intersection policies for overlapping regions. These could be inherited and dynamically refined or overridden by RTCP signaling on demand.

[0164] Thus, described herein are RTCP messages and RTP header extensions for exchanging parameters of real-time streamed point clouds. A sender can notify receivers of the currently applied parameters, such as selected regions, and their parameters, such as the respective resolutions and included point attributes. A receiver can request updates to the same parameters using RTCP feedback messages.

[0165] To elaborate further on point clouds, a point cloud is a set of data points in a three- dimensional coordinate system where each point is defined by its three coordinates. Point clouds can represent three-dimensional environments, such as a vehicle’s surroundings. Each point in a point cloud may optionally be associated with additional attributes. Attributes can, for example, be colors or reflectance of objects in the scene. Sequences of point clouds can be generated by sensors such as Lidar ("light detection and ranging"), Radar ("radio detection and ranging"), or a multi-camera setup. Due to the high number of points in a scene, the bandwidth requirements of transmitting point clouds over a network are often higher than those of streaming video.

[0166] In video streaming, efficient codecs are used to reduce the bandwidth requirement. Similar codecs are being developed for point clouds. However, when streaming point cloud data, consumers of the data usually aren't equally interested in each point. For further processing, focusing on some regions of a point cloud stream is often sufficient, allowing the producer of a point cloud sequence to filter out points of lower interest to further reducethe bandwidth requirements and prioritize bandwidth usage for points of higher importance. When selecting the regions to prioritize and deciding which points can be excluded from transmission, producers and consumers need a mechanism to signal a) which regions of a scene are currently being prioritized and b) request updates to prioritize different regions in the future. Described herein is such a mechanism for real-time transmission of point clouds building on the RTP Control protocol RTCP, which is part of the Real-time Transport Protocol RTP. Additionally, described herein are RTP header extensions for senders to inform receivers about the currently applied parameters. The information might be useful for receivers in determining if an RTCP message requesting an update was received and acted upon by the sender.

[0167] Described herein in Section 1 below is a definition of a set of shared encoding schemes to represent point cloud parameters. Section 2 further defines RTCP messages, and Section 3 further defines RTP header extensions. The RTCP messages and RTP header extensions reference the encoding scheme described in Section 1. Section 4 below defines the SDP parameters required to negotiate the usage of the described RTCP messages and header extensions.

[0168] 1. Region and Parameter Encodings

[0169] This section describes encodings for point cloud regions and their parameters, such as the included attributes and the level of detail. It also provides an encoding for the definition of a viewport, including a dynamically adaptable precision.

[0170] The encodings described in the following subsections are reused in RTCP feedback messages and RTP header extension as described herein.

[0171] 1.1. Octree Encoding of Point Cloud Regions

[0172] This section defines an encoding that is reused in RTCP message types to index regions in a point cloud. The encoding uses a recursive octree encoding to signal the presence of certain regions of a point cloud. The encoding can be used to set parameters for the present regions, e.g., receivers can signal individual priority of every region or sets of attributes to include in every region.

[0173] The root node in every tree is a single byte where every bit indicates whether a child node of an octant is present. Child nodes are appended in pre-order traversal order. A zero-byte encodes a leaf node. The order of octants by the signs of the points of the X-, Y-, and Z-coordinates in each octant is given in Table 1.

[0174] Regions in the octree are considered present when a leaf node encoding that region is present. For example, a single zero-byte encodes a single leaf node, and the root region covering the complete space is present. An encoded value of the two bytes 0x4000 would indicate that only the octant with X<0, Y>=0, and Z>=0 is present.

[0175] Table 1 (also shown in FIG. 5) is an octant to bit mapping order with bit 0 being the most significant bit and bit 7 being the least significant bit.Table 1

[0176] The octree encoding can be used in absolute and relative forms. In the absolute form, the bounding box of the octree is implicitly defined by the space covered by the point cloud-generating source. In the relative form, the bounding box can be explicitly defined by setting the min and max values of the X-, Y-, and Z coordinates. The coordinates are prefixed before the octree encoding (614) as four-byte integers each, as shown in FIG. 6. FIG. 6 shows the four-byte minimum value for the X-coordinate (602), the four-byte minimum value for the Y-coordinate (604), the four-byte minimum value for the Z- coordinate (606), the four-byte maximum value for the X-coordinate (608), the four-byte maximum value for the Y-coordinate (610), and the four-byte maximum value for the Z-coordinate (612).

[0177] 1.2. Region-Dependent Attributes Encoding

[0178] Attributes are additional values optionally associated with every point in a point cloud. The available attributes depend on the context of an application and thus are configured out-of-band. The attribute encoding described in this section implements mapping of attributes to a bitmask value. Section 4 below describes one option to negotiate the mapping when using SDP.

[0179] To signal the presence of attributes per region, senders and receivers can use the octree encoding described in Section 1.1. For every region presented in the octree encoding, N bytes are used to indicate the presence of attributes by setting the bits of the bitmask of the respective attributes to true. The size of N depends on the number of attributes and is implicitly given by the smallest number of bytes that can represent the largest bitmask negotiated during signaling.

[0180] Bitmask values can be shared among attributes to allow signaling of attribute sets that always occur in combination.

[0181] 2. Format of RTCP Feedback Messages

[0182] Described herein are RTCP message types that can be used to signal interest in the prioritization of regions and their parameters. Receivers can signal an interest in receiving a region with a higher priority. Different regions can be requested in different resolutions or with different sets of attributes included. Additionally, receivers can request a viewport precision update.

[0183] A sender can acknowledge a parameter update using the RTP header extensions described in Section 3. Receivers should not retransmit the same request multiple times to avoid unnecessary overhead, but if the receiver can assume that a request was lost, it may retransmit the request. The request should not be retransmitted earlier than at least one RTT after the first request was transmitted.

[0184] The following sections deCne the available message types in detail. RTCP feedback messages may use the common header format 700 shown in FIG. 7. The first eightbytes of the header follow a format of RTCP message headers. After the first eight bytes, there is an additional byte consisting of flags describing the payload. The payload of the RTCP messages following the header contains one or more of the parameter encodings in the following order:1. Absolute / Relative Octree Encoding2. (optional) Priority3. (optional) Attribute Encoding4. (optional) Level-of-Detail EncodingNote: alternative form: <Header><{abs,rel}-octree>[<priority>][<attributes>][<level- ofdetail>]

[0185] The semantics of the different payload formats are explained in the following subsections. In FIG. 7, the fields V, P, SSRC and length are used as defined with respective meanings as summarized below:

[0186] version (V): 2 bits - This field identifies the RTP version.

[0187] padding (P): 1 bit - If set, the padding bit indicates that the packet contains additional padding octets at the end that are not part of the control information but are included in the length field.

[0188] Feedback message type (FMT): 5 bits - The feedback message type is of a given value.

[0189] Payload type (PT): 8 bits - The RTCP packet type is PSFB (206).

[0190] Relative (R): 1 bit - This field distinguishes between absolute and relative region requests (see Section 1.1). If the bit is set, the message contains a relative octree encoding and the minimum and maximum fields described in FIG. 6 are present.

[0191] Priority: (P): 1 bit - If set, the RTCP message contains a priority request and the octree encoding is followed by one byte indicating the requested priority for each region encoded as leaf node in the octree encoding.

[0192] Attributes (A): 1 bit - If this bit is set, the RTCP message contains an attributerequest and the octree encoding is followed by an attribute encoding for every region encoded as leaf node in the octree encoding,

[0193] Level-of-Detail (L): 1 bit - If this bit is set, the RTCP message contains a level-of- detail request and the octree encoding (or the attribute encoding, if it is present) is followed by a level-of-detail encoding for every region encoded as leaf node in the octree encoding.

[0194] 2.1. Region Requests

[0195] A receiver can use region of Interest signaling to indicate interest in some areas of a point cloud, and a sender can react by prioritizing the regions of interest when allocating bandwidth. The region interest request uses the header 700 defined in FIG. 7.

[0196] 2,2. Priority Requests

[0197] Receivers can append a priority encoding to the octree to signal fine-grained priorities per region. A priority is a value encoded as a single byte where a higher value indicates a higher priority. A priority request contains a priority byte for every region encoded as a leaf node in the preceding octree encoding.

[0198] 2.3. Attribute Requests

[0199] By setting the header Flag A to 1, the receiver can include an attribute encoding as described in Section 1.2 to the feedback message to request attribute sets for every region encoded as a leaf node of the octree. The attribute encoding length depends on the number of negotiated attributes and their associated bitmask values. A single byte can indicate up to eight attributes or attribute sets. For example, if the two attributes, color, and reflectance, are negotiated with bitmask values of 0x01 and 0x02, one byte is appended to the octree for every leaf node where the bits 0x01 and 0x02 are set to one for every region, which should include these attributes.

[0200] 2.4. Region-Dependent Resolution or Level-of-Detail Request

[0201] Using the same mechanism as for attributes, it is possible to signal resolution per region, based on a resolution definition.

[0202] 2.5. Viewport Precision Request

[0203] A mechanism to define viewport precision may be efficiently encoded in RTCP messages and header extensions.

[0204] 2.6. Sender Position Signaling

[0205] The sender position may also be signaled (e.g. to the receiver). The sender may initiate the signaling of the sender position (e.g. using an RTP header extension), or the signaling of sender position may be requested by the receiver, for example using an RTCP message.

[0206] 2.7. Examples

[0207] FIG. 8 shows an example encoding of a relative octree encoding 802 followed by an attribute encoding 804 and a level-of-detail encoding 806.

[0208] 3. Format of RTP Header Extensions

[0209] RTP senders use RTP header extensions to acknowledge the applied parameters to the receiver. The parameters chosen by the sender may differ from the ones requested by the receiver. The header extension uses the two-byte header form defined in . The payload of the header extension element uses the same format as the RTCP messages defined in Section 2. Each extension element begins with the same one-byte header 900 (as shown in FIG. 9) followed by an octree encoding and optional priority, attribute, or level-of-detail encodings.

[0210] 4. SDP Parameters

[0211] This section defines SDP parameters for negotiating usage of the RTCP messages and RTP header extension described in this document.

[0212] 4.1. RTCP Feedback Messages

[0213] The rtcp-fb attribute is extended to indicate the capability to send or receive the RTCP feedback defined herein. This document adds a new parameter "oerr" to a "com" feedback value. The "oerr" (Octree Encoded Region Request) parameter indicates supportfor the RTCP feedback message defined in Section 2. rtcp-fb-ccm-param = / SP "oerr" ; Octree Encoded Region Request

[0214] 4.2. RTP Header Extensions

[0215] The URI for indicating support for the RTP Header extension described in Section 3 is "um:ietf:params:rtphdrext:octree-region".

[0216] 5. IANA Considerations

[0217] 5.1. RTCP Feedback Message

[0218] The following values may be registered as an FMT value in the "FMT Values for PSFB Payload Types" Registry:Name: OERRLong Name: Octree Encoded Region Request

[0219] 8.2. RTP Header Extension

[0220] The following URI may be added to the RTP Compact Header Extensions registry:Extension URI: um:ietf:params:rtp-hdrext:octree-regionDescription: Octree Encoded Region Information

[0221] FIG. 10 shows an encoder 1000 according to an embodiment. FIG. 10 illustrates an image to be encoded (In), a predicted representation of an image block (P'n), a prediction error signal (Dn), a reconstructed prediction error signal (D'n), a preliminary reconstructed image (I'n), a final reconstructed image (R'n), a transform (T) and inverse transform ('U1), a quantization (Q) and inverse quantization (Q ), entropy encoding (E), a reference frame memory (RFM), inter prediction (P‘nter), intra prediction (Pintra), mode selection (MS) and filtering (F). Region prioritization 1002 implements the encoding-side examples described herein related to dynamic region prioritization during a real-time transmission.

[0222] FIG. 11 shows a decoder 1100 according to an embodiment. FIG. 11 illustrates a predicted representation of an image block (P'n), a reconstructed prediction error signal(D'n), a preliminary reconstructed image (I'n), a final reconstructed image (R'n), an inverse transform (T1), an inverse quantization (Q-1), an entropy decoding (E1), a reference frame memory (RFM), a prediction (either inter or intra) (P), and filtering (F). Region prioritization 1102 implements the decoding-side examples described herein related to dynamic region prioritization during a real-time transmission.

[0223] FIG. 12 is a block diagram illustrating a system 1200 in accordance with several examples. In an example, the encoder 1230 is used to encode an image or video from the scene 1215, and the encoder 1230 is implemented in a transmitting apparatus 1280. The encoder 1230 produces a bitstream 1210 comprising signaling that is received by the receiving apparatus 1282, which implements a decoder 1240. The encoder 1230 sends the bitstream 1210 that comprises the herein described signaling. The decoder 1240 forms the image or video for the scene 1215-1, and the receiving apparatus 1282 would present this to the user, e.g., via a smartphone, television, or projector among many other options.

[0224] In some examples, the transmitting apparatus 1280 and the receiving apparatus 1282 are at least partially within a common apparatus, and for example are located within a common housing 1250. In other examples the transmitting apparatus 1280 and the receiving apparatus 1282 are at least partially not within a common apparatus and have at least partially different housings. Therefore in some examples, the encoder 1230 and the decoder 1240 are at least partially within a common apparatus, and for example are located within a common housing 1250. For example the common apparatus comprising the encoder 1230 and decoder 1240 implements a codec. In other examples the encoder 1230 and the decoder 1240 are at least partially not within a common apparatus and have at least partially different housings, but when together still implement a codec.

[0225] In some examples, 3D media from the capture (e.g., volumetric capture) at a viewpoint 1212 ofthe scene 1215, which includes a person 1213) is converted via projection to a series of 2D representations with occupancy, geometry, attributes and / or displacements. Additional atlas information is also included in the bitstream to enable inverse reconstruction. For decoding, the received bitstream 1210 is separated into its components with atlas information; occupancy, geometry, displacement, and attribute 2D representations. A 3D reconstruction is performed to reconstruct the scene 1215-1 createdlooking at the viewpoint 1212-1 with a “reconstructed” person 1213-1 . The “-1” are used to indicate that these are reconstructions of the original. As indicated at 1220, the decoder 1240 performs an action or actions based on the received signaling.

[0226] Encoding 1290 performs the encoding-side examples described herein related to dynamic region prioritization during a real-time transmission. Decoding 1292 performs the decoding-side examples described herein related to dynamic region prioritization during a real-time transmission.

[0227] FIG. 13 is an example apparatus 1300, which may be implemented in hardware, configured to implement the examples described herein. The apparatus 1300 comprises at least one processor 1302 (e.g., an FPGA and / or CPU and / or GPU), one or more memories 1304 including computer program code 1305, the computer program code 1305 having instructions to carry out the methods described herein, wherein the at least one memory 1304 and the computer program code 1305 are configured to, with the at least one processor 1302, cause the apparatus 1300 to implement circuitry, a process, component, module, or function (implemented with control module 1306) to implement the examples described herein.

[0228] Apparatus 1300 may be a smartphone, personal digital device or assistant, smart television, laptop, pad, tablet, head-mounted display (HMD), or other user device or terminal device. The memory 1304 may be a non-transitory memory, a transitory memory, a volatile memory (e.g. RAM), or a non-volatile memory (e.g., ROM).

[0229] Region prioritization 1330 implements the examples described herein related to dynamic region prioritization during a real-time transmission.

[0230] The apparatus 1300 includes a display and / or I / O interface 1308, which includes user interface (UI) circuitry and elements, that may be used to display features or a status of the methods described herein (e.g., as one of the methods is being performed or at a subsequent time), or to receive input from a user such as with using a keypad, camera, touchscreen, touch area, microphone, biometric recognition, one or more sensors, etc. The apparatus 1300 includes one or more communication e.g. network (N / W) interfaces (I / F(s)) 1310. The communication I / F(s) 1310 may be wired and / or wireless and communicate overthe Internet / other network(s) via any communication technique including via one or more links 1324. The communication I / F(s) 1310 may comprise one or more transmitters or one or more receivers.

[0231] The transceiver 1316 comprises one or more transmitters 1318 and one or more receivers 1320. The transceiver 1316 and / or communication I / F(s) 1310 may comprise standard well-known components such as an amplifier, filter, frequency-converter, (de)modulator, and encoder / decoder circuitries and one or more antennas, such as antennas 1314 used for communication over wireless link 1326.

[0232] The control module 1306 of the apparatus 1300 comprises one of or both parts 1306-1 and / or 1306-2, which may be implemented in a number of ways. The control module 1306 may be implemented in hardware as control module 1306-1, such as being implemented as part of the one or more processors 1302. The control module 1306-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the control module 1306 may be implemented as control module 1306-2, which is implemented as computer program code (having corresponding instructions) 1305 and is executed by the one or more processors 1302. For instance, the one or more memories 1304 store instructions that, when executed by the one or more processors 1302, cause the apparatus 1300 to perform one or more of the operations as described herein. Furthermore, the one or more processors 1302, one or more memories 1304, and example algorithms (e.g., as flowcharts and / or signaling diagrams), encoded as instructions, programs, or code, are means for causing performance of the operations described herein.

[0233] The apparatus 1300 to implement the functionality of control 1306 may correspond to any of the apparatuses depicted herein. Alternatively, apparatus 1300 and its elements may not correspond to any of the other apparatuses depicted herein, as apparatus 1300 may be part of a self-organizing / optimizing network (SON) node or other node, such as a node in a cloud.

[0234] The apparatus 1300 may also be distributed throughout the network including within and between apparatus 1300 and any network element (such as a base station and / or terminal device and / or user equipment).

[0235] Interface 1312 enables data communication and signaling between the various items of apparatus 1300, as shown in FIG. 13. For example, the interface 1312 may be one or more buses such as address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, and the like. Computer program code (e.g. instructions) 1305, including control 1306 may comprise object-oriented software configured to pass data or messages between objects within computer program code 1305. Computer program code (e.g. instructions) 1305, including control 1306 may comprise procedural, functional, or scripting code. The apparatus 1300 need not comprise each of the features mentioned, or may comprise other features as well. The various components of apparatus 1300 may at least partially reside in a common housing 1328, or a subset of the various components of apparatus 1300 may at least partially be located in different housings, which different housings may include housing 1328.

[0236] FIG. 14 shows a schematic representation of non-volatile memory media 1400a (e.g. computer / compact disc (CD) or digital versatile disc (DVD)) and 1400b (e.g. universal serial bus (USB) memory stick) and 1400c (e.g. cloud storage for downloading instructions and / or parameters 1402 or receiving emailed instructions and / or parameters 1402) storing instructions and / or parameters 1402 which when executed by a processor allows the processor to perform one or more of the operations of the methods described herein. Instructions and / or parameters 1402 may represent or correspond to a non-transitory computer readable medium.

[0237] FIG. 15 is an example method 1500, based on the examples described herein. At 1510, the method includes obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points. At 1520, the method includes determining a plurality of regions of the three-dimensional scene. At 1530, the method includes determining to which of the plurality of regions the plurality of points belong. At 1540, the method includes determining a prioritization of the plurality of regions. At 1550, the method includes encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong. At 1560, the method includes transmitting, to a receiver, at least the points within the subset of the plurality ofpoints that have been encoded. Method 1500 may be performed with encoder 1000 with region prioritization 1002, transmitting apparatus 1280 with encoding 1290, or apparatus 1300 with region prioritization 1330.

[0238] FIG. 16 is an example method 1600, based on the examples described herein. At 1610, the method includes receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene. At 1620, the method includes wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three- dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong. At 1630, the method includes decoding at least the points within the subset of the plurality of points. At 1640, the method includes reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points. Method 1600 may be performed with decoder 1100 with region prioritization 1102, receiving apparatus 1282 with decoding 1292, or apparatus 1300 with region prioritization 1330.

[0239] The following examples are provided and described herein.

[0240] Example 1. An apparatus including: means for obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; means for determining a plurality of regions of the three- dimensional scene; means for determining to which of the plurality of regions the plurality of points belong; means for determining a prioritization of the plurality of regions; means for encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and means for transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

[0241] Example 2. The apparatus of example 1, further including: means for determining to not encode another subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong; and means for determining to not transmit, to the receiver, theanother subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong.

[0242] Example 3. The apparatus of any of examples 1 to 2, further including: means for encoding attributes associated with the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the plurality of points belong; and means for transmitting, to the receiver, the attributes associated with the plurality of points that have been encoded.

[0243] Example 4. The apparatus of any of examples 1 to 3, further including: means for receiving, from the receiver, an indication of the prioritization of the plurality of regions; wherein the prioritization of the plurality of regions is determined based on the indication of the prioritization of the plurality of regions received from the receiver.

[0244] Example 5. The apparatus of example 4, wherein the indication of the prioritization of the plurality of regions is received from the receiver as a real-time transport control protocol feedback message.

[0245] Example 6. The apparatus of any of examples 4 to 5, wherein the indication of the prioritization of the plurality of regions received from the receiver indicates that a first region of the plurality of regions has a higher priority than a second region of the plurality of regions.

[0246] Example 7. The apparatus of any of examples 4 to 6, further including: means for transmitting, to the receiver, an indication of a capability to receive the indication of the prioritization of the plurality of regions.

[0247] Example 8. The apparatus of example 7, wherein the indication of the capability to receive the indication of the prioritization of the plurality of regions is transmitted to the receiver as a session description protocol message comprising an octree encoded region request parameter, and indicates support for a real-time transport control protocol feedback message that comprises the indication of the prioritization of the plurality of regions.

[0248] Example 9. The apparatus of any of examples 1 to 8, further including: means forreceiving, from the receiver, a request to transmit points within a region having a priority that is higher than another region; and wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points within the region having the priority that is higher than the another region; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points within a region having a priority that is higher than another region.

[0249] Example 10. The apparatus of example 9, wherein the request to transmit the points within the region having the priority that is higher than the another region is received from the receiver with a real-time transport control protocol message.

[0250] Example 11. The apparatus of example 10, wherein a priority bit is set to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points within the region having the priority that is higher than the another region.

[0251] Example 12. The apparatus of any of examples 1 to 11, further including: means for receiving, from the receiver, a request to transmit points with a first resolution within a first region, and to transmit points with a second resolution within a second region, wherein the first resolution is different from the second resolution; wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points with the first resolution within the first region and the points with the second resolution within the second region; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points with the first resolution within the first region, and to transmit points with the second resolution within the second region.

[0252] Example 13. The apparatus of example 12, wherein the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region is received from the receiver with a real-time transport control protocol message.

[0253] Example 14. The apparatus of example 13, wherein a level of detail bit is set to beequal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region.

[0254] Example 15. The apparatus of any of examples 1 to 14, further including: means for receiving, from the receiver, a request to transmit points within a first region with a first set of attributes, and to transmit points within a second region with a second set of attributes, wherein the first set of attributes is different from the second set of attributes; wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points within the first region with the first set of attributes, and the points within the second region with a second set of attributes; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points within the first region with the first set of attributes, and to transmit points within a second region with the second set of attributes.

[0255] Example 16. The apparatus of example 15, wherein the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes is received from the receiver with a real-time transport control protocol message.

[0256] Example 17. The apparatus of example 16, wherein an attribute bit is set to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes.

[0257] Example 18. The apparatus of any of examples 1 to 17, further including: means for receiving, from the receiver, a request for points within different regions to be encoded in different resolutions; means for encoding the points within different regions in different resolutions, based on the request received from the receiver for the points within different regions to be encoded in different resolutions; and means for transmitting, to the receiver, the points within the different regions that have been encoded in different resolutions.

[0258] Example 19. The apparatus of any of examples 1 to 18, further including: means for receiving, from the receiver, an indication of attributes to be encoded for at least a subset of the plurality of points, based on the prioritization of the plurality of regions; means for encoding attributes for at least the subset of the plurality of points, based on the indication received from the receiver of the attributes to be encoded for at least the subset of the plurality of points; and means for transmitting, to the receiver, the attributes for at least the subset of the plurality of points.

[0259] Example 20. The apparatus of any of examples 1 to 19, further including: means for transmitting, to the receiver, an indication of at least one parameter used to encode at least the points within the subset of the plurality of points, based on the prioritization of the plurality of regions.

[0260] Example 21. The apparatus of example 20, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a level of detail, wherein the level of detail is a parameter specified per region for the plurality of regions.

[0261] Example 22. The apparatus of any of examples 20 to 21, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises attributes.

[0262] Example 23. The apparatus of any of examples 20 to 22, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a resolution.

[0263] Example 24. The apparatus of any of examples 1 to 23, further including: means for receiving, from the receiver, a request to update the prioritization of the plurality of regions; and means for updating the prioritization of the plurality of regions, based on the request to update the prioritization of the plurality of regions received from the receiver.

[0264] Example 25. The apparatus of any of examples 1 to 24, wherein: at least the points within the subset of the plurality of points are encoded using an octree encoding in absolute form, and the octree encoding in absolute form is based on a bounding box defined with a space covered with a source that generates the plurality of points.

[0265] Example 26. The apparatus of example 25, further including: means for transmitting, to the receiver, an indication that at least the points within the subset of the plurality of points have been encoded using the octree encoding in absolute form.

[0266] Example 27. Jhe apparatus of any of examples 1 to 26, wherein: at least the points within the subset of the plurality of points using an octree encoding in relative form, and the octree encoding in relative form is based on a bounding box defined with setting maximum and minimum values of coordinates of the plurality of points.

[0267] Example 28. The apparatus of example 27, further including: means for transmitting, to the receiver, an indication that at least the points within the subset of the plurality of points have been encoded using the octree encoding in relative form.

[0268] Example 29. An apparatus including: means for receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three- dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; means for decoding at least the points within the subset of the plurality of points; and means for reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

[0269] Example 30. The apparatus of example 29, wherein points within another subset of the plurality of points are not received from the sender, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong.

[0270] Example 31. The apparatus of any of examples 29 to 30, further including: means for receiving, from the sender, attributes associated with the plurality of points; wherein the attributes that are received have been encoded, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the plurality of points belong; and wherein the three-dimensional scene is reconstructed based on the attributes associated with the plurality of points that have been encoded.

[0271] Example 32. The apparatus of any of examples 29 to 31, further including: means for transmitting, to the sender, an indication of the prioritization of the plurality of regions; wherein the prioritization of the plurality of regions is determined based on the indication of the prioritization of the plurality of regions transmitted to the sender.

[0272] Example 33. The apparatus of example 32, wherein the indication of the prioritization of the plurality of regions is transmitted to the sender as a real-time transport control protocol feedback message.

[0273] Example 34. The apparatus of any of examples 32 to 33, wherein the indication of the prioritization of the plurality of regions transmitted to the sender indicates that a first region of the plurality of regions has a higher priority than a second region of the plurality of regions.

[0274] Example 35. The apparatus of any of examples 32 to 34, further including: means for receiving, from the sender, an indication of a capability to receive the indication of the prioritization of the plurality of regions.

[0275] Example 36. The apparatus of example 35, wherein the indication of the capability to receive the indication of the prioritization of the plurality of regions is received from the sender as a session description protocol message comprising an octree encoded region request parameter, and indicates support for a real-time transport control protocol feedback message that comprises the indication of the prioritization of the plurality of regions.

[0276] Example 37. The apparatus of any of examples 29 to 36, further including: means for transmitting, to the sender, a request to transmit points within a region having a priority that is higher than another region; wherein the points within the subset of the plurality of points that are decoded and received from the sender comprise the points within the region having the priority that is higher than the another region; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points within the region having the priority that is higher than another region.

[0277] Example 38. The apparatus of example 37, wherein the request to transmit the points within the region having the priority that is higher than the another region istransmitted to the sender with a real-time transport control protocol message.

[0278] Example 39. The apparatus of example 38, further including: means for setting a priority bit to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points within the region having the priority that is higher than the another region.

[0279] Example 40. The apparatus of any of examples 29 to 39, further including: means for transmitting, to the sender, a request to transmit points with a first resolution within a first region, and to transmit points with a second resolution within a second region, wherein the first resolution is different from the second resolution; wherein the points within the subset of the plurality of points that are decoded and received from the sender comprise the points with the first resolution within the first region and the points with the second resolution within the second region; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points with the first resolution within the first region, and to transmit points with the second resolution within the second region.

[0280] Example 41. The apparatus of example 40, wherein the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region is transmitted to the sender with a real-time transport control protocol message.

[0281] Example 42. The apparatus of example 41, further including: means for setting a level of detail bit to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region.

[0282] Example 43. The apparatus of any of examples 29 to 42, further including: means for transmitting, to the sender, a request to transmit points within a first region with a first set of attributes, and to transmit points within a second region with a second set of attributes, wherein the first set of attributes is different from the second set of attributes; and whereinthe points within the subset of the plurality of points that are decoded and received from the sender comprise the points within the first region with the first set of attributes, and the points within the second region with the second set of attributes; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points within the first region with the first set of attributes, and the points within the second region with the second set of attribute.

[0283] Example 44. The apparatus of example 43, wherein the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes is transmitted to the sender with a real-time transport control protocol message.

[0284] Example 45. The apparatus of example 44, further including: means for setting an attribute bit to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes.

[0285] Example 46. The apparatus of any of examples 29 to 45, further including: means for transmitting, to the sender, a request for points within different regions to be encoded in different resolutions; and means for receiving, from the sender, the points within the different regions that have been encoded in different resolutions, based on the request transmitted to the sender for the points within different regions to be encoded in different resolutions.

[0286] Example 47. The apparatus of any of examples 29 to 46, further including: means for transmitting, to the sender, an indication of attributes to be encoded for at least a subset of the plurality of points, based on the prioritization of the plurality of regions; means for receiving, from the sender, the attributes for at least the subset of the plurality of points, based on the indication transmitted to the sender of the attributes to be encoded for at least the subset of the plurality of points.

[0287] Example 48. The apparatus of any of examples 29 to 47, further including: means for receiving, from the sender, an indication of at least one parameter used to encode at leastthe points within the subset of the plurality of points, based on the prioritization of the plurality of regions; and wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender of the at least one parameter used to encode at least the points within the subset of the plurality of points.

[0288] Example 49. The apparatus of example 48, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a level of detail, wherein the level of detail is a parameter specified per region for the plurality of regions.

[0289] Example 50. The apparatus of any of examples 48 to 49, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises attributes.

[0290] Example 51. The apparatus of any of examples 48 to 50, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a resolution.

[0291] Example 52. The apparatus of any of examples 29 to 51, further including: means for transmitting, to the sender, a request to update the prioritization of the plurality of regions; and means for receiving, from the sender, at least at subset of the plurality of points that have been encoded based on an updated prioritization of the plurality of regions, wherein the updated prioritization of the plurality of regions is based on the request to update the prioritization of the plurality of regions transmitted to the sender.

[0292] Example 53. The apparatus of any of examples 29 to 52, wherein: at least the points within the subset of the plurality of points have been encoded using an octree encoding in absolute form, and the octree encoding in absolute form is based on a bounding box defined with a space covered with a source that generates the plurality of points.

[0293] Example 54. The apparatus of example 53, further including: means for receiving, from the sender, an indication that at least the points within the subset of the plurality of points have been encoded using an octree encoding in absolute form; wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender that at least the points within the subset of the plurality of pointshave been encoded using the octree encoding in absolute form.

[0294] Example 55. The apparatus of any of examples 29 to 54, wherein: at least the points within the subset of the plurality of points have been encoded using an octree encoding in relative form, and the octree encoding in relative form is based on a bounding box defined with setting maximum and minimum values of coordinates of the plurality of points.

[0295] Example 56. The apparatus of example 55, further including: means for receiving, from the sender, an indication that at least the points within the subset of the plurality of points have been encoded using an octree encoding in relative form; wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender that at least the points within the subset of the plurality of points have been encoded using the octree encoding in relative form.

[0296] Example 57. A method including: obtaining data that represents a three- dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; determining a plurality of regions of the three-dimensional scene; determining to which of the plurality of regions the plurality of points belong; determining a prioritization of the plurality of regions; encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

[0297] Example 58. A method including: receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three- dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decoding at least the points within the subset of the plurality of points; and reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

[0298] Example 59. An apparatus including: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: obtain data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; determine a plurality of regions of the three-dimensional scene; determine to which of the plurality of regions the plurality of points belong; determine a prioritization of the plurality of regions; encode at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmit, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

[0299] Example 60. An apparatus including: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: receive, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decode at least the points within the subset of the plurality of points; and reconstruct the three- dimensional scene from at least the points within the subset of the plurality of points.

[0300] Example 61. A computer readable medium including instructions stored thereon for performing at least the following: obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; determining a plurality of regions of the three-dimensional scene; determining to which of the plurality of regions the plurality of points belong; determining a prioritization of the plurality of regions; encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

[0301] Example 62. A computer readable medium including instructions stored thereonfor performing at least the following: receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decoding at least the points within the subset of the plurality of points; and reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

[0302] References to a ‘computer’, ‘processor’, etc. should be understood to encompass not only computers having different architectures such as single / multi-processor architectures and sequential / parallel architectures but also specialized circuits such as field- programmable gate arrays (FPGAs), application specific circuits (ASICs), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device such as instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device, etc.

[0303] The term “non-transitory,” as used herein, is a limitation of the medium itself (i.e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM vs. ROM).

[0304] As used herein, the term ‘circuitry’, ‘circuit’ and variants may refer to any of the following: (a) hardware circuit implementations, such as implementations in analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions of processor(s) / software including digital signal processor(s), software, and one or more memories that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even when the software or firmware is not physically present. As a further example, as used herein, the term ‘circuitry’ would also cover an implementation of merelya processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and / or firmware. The term ‘circuitry’ would also cover, for example and when applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device. Circuitry or circuit may also be used to mean a function or a process used to execute a method.

[0305] It should be understood that the foregoing description is only illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.

[0306] The following acronyms and abbreviations that may be found in the specification and / or the drawing figures are defined as follows (the abbreviations may be appended with each other or with other characters using e.g. a hyphen, dash (-), or number (or abbreviations having a character may be the same with a character removed), and may be case insensitive):2D two-dimensional3D three-dimensional3DG 3D graphics abs absoluteAC alternate current (e.g. AC coefficient)Ack acknowledgement attr attributeARQ automatic repeat requestASIC application specific integrated circuitAVP audio / video profileCCFB congestion control feedbackCCM codec control messageCPU central processing unitCR carriage returnDC direct current (e.g. DC coefficient) extmap extension map fb feedbackFoV field of viewFMT feedback message typeFPGA field programmable gate arrayG-PCC geometry-based point cloud compressionGPU graphics processing unitH. family of video coding protocols (e.g. H.323) hdrext header extensionHTTP hyper text transfer protocolIANA internet assigned numbers authorityIEC International Electrotechnical CommissionIETF internet engineering task forceI / F interfaceVO input / outputIPv4 internet protocol version 4ISO International Organization for StandardizationLidar light detection and rangingLF line feedLOD level of detailMIV MPEG immersive videoMoQ media over QUICMPEG moving picture experts groupNACK negative acknowledgementNAL network abstraction layerN / W network oerr octree encoded region requestPCMU pulse code modulation p-LawPSFB payload specific feedbackPT payload typeQUIC quick UDP internet connectionsRadar radio detection and rangingRAM random access memoryRAHT region-adaptive hierarchical transform recvonly receive onlyRes. reserved rel relativeRFC request for commentsRGBA red green blue alphaRFM reference frame memoryRMTP real-time messaging protocolROM read only memoryRoQ RTP over QUICRTCP real-time transport control protocolRTP real-time transport protocolRTSP real time streaming protocolRTT round trip timeSC subcommitteeSDP session description protocolSIP session initiation protocolSON self-organizing / optimizing networkSP part of the grammar for the session description and is defined in RFC5234 as whitespaceSSRC synchronization sourceTTL time to liveUI user interfaceUDP user datagram protocolURI uniform resource identifier urn uniform resource nameUSB universal serial busUTF Unicode Transformation FormatV3C visual volumetric video-based codingWG working groupXOR exclusive or

Claims

CLAIMSWhat is claimed is:

1. An apparatus comprising: means for obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; means for determining a plurality of regions of the three-dimensional scene; means for determining to which of the plurality of regions the plurality of points belong; means for determining a prioritization of the plurality of regions; means for encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and means for transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

2. The apparatus of claim 1, further comprising: means for determining to not encode another subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong; and means for determining to not transmit, to the receiver, the another subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong.

3. The apparatus of any of claims 1 to 2, further comprising:means for encoding attributes associated with the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the plurality of points belong; and means for transmitting, to the receiver, the attributes associated with the plurality of points that have been encoded.

4. The apparatus of any of claims 1 to 3, further comprising: means for receiving, from the receiver, an indication of the prioritization of the plurality of regions; wherein the prioritization of the plurality of regions is determined based on the indication of the prioritization of the plurality of regions received from the receiver.

5. The apparatus of claim 4, wherein the indication of the prioritization of the plurality of regions is received from the receiver as a real-time transport control protocol feedback message.

6. The apparatus of any of claims 4 to 5, wherein the indication of the prioritization of the plurality of regions received from the receiver indicates that a first region of the plurality of regions has a higher priority than a second region of the plurality of regions.

7. The apparatus of any of claims 4 to 6, further comprising: means for transmitting, to the receiver, an indication of a capability to receive the indication of the prioritization of the plurality of regions.

8. The apparatus of claim 7, wherein the indication of the capability to receive the indication of the prioritization of the plurality of regions is transmitted to the receiver as a session description protocol message comprising an octree encoded region request parameter, and indicates support for a real-time transport control protocol feedback message that comprises the indication of the prioritization of the plurality of regions.

9. The apparatus of any of claims 1 to 8, further comprising:means for receiving, from the receiver, a request to transmit points within a region having a priority that is higher than another region; and wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points within the region having the priority that is higher than the another region; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points within a region having a priority that is higher than another region.

10. The apparatus of claim 9, wherein the request to transmit the points within the region having the priority that is higher than the another region is received from the receiver with a real-time transport control protocol message.

11. The apparatus of claim 10, wherein a priority bit is set to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points within the region having the priority that is higher than the another region.

12. The apparatus of any of claims 1 to 11, further comprising: means for receiving, from the receiver, a request to transmit points with a first resolution within a first region, and to transmit points with a second resolution within a second region, wherein the first resolution is different from the second resolution; wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points with the first resolution within the first region and the points with the second resolution within the second region; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points with the first resolution within the first region, and to transmit points with the second resolution within the second region.

13. The apparatus of claim 12, wherein the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region is received from the receiver with a real-time transport control protocol message.

14. The apparatus of claim 13, wherein a level of detail bit is set to be equal to 1 within a header of the real-time transport control protocol message to indicate that the realtime transport control protocol message contains the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region.

15. The apparatus of any of claims 1 to 14, further comprising: means for receiving, from the receiver, a request to transmit points within a first region with a first set of attributes, and to transmit points within a second region with a second set of attributes, wherein the first set of attributes is different from the second set of attributes; wherein the points within the subset of the plurality of points that are encoded and transmitted to the receiver comprise the points within the first region with the first set of attributes, and the points within the second region with a second set of attributes; wherein the points within the subset of the plurality of points are encoded and transmitted to the receiver based on the request received from the receiver to transmit points within the first region with the first set of attributes, and to transmit points within a second region with the second set of attributes.

16. The apparatus of claim 15, wherein the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes is received from the receiver with a real-time transport control protocol message.

17. The apparatus of claim 16, wherein an attribute bit is set to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-timetransport control protocol message contains the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes.

18. The apparatus of any of claims 1 to 17, further comprising: means for receiving, from the receiver, a request for points within different regions to be encoded in different resolutions; means for encoding the points within different regions in different resolutions, based on the request received from the receiver for the points within different regions to be encoded in different resolutions; and means for transmitting, to the receiver, the points within the different regions that have been encoded in different resolutions.

19. The apparatus of any of claims 1 to 18, further comprising: means for receiving, from the receiver, an indication of attributes to be encoded for at least a subset of the plurality of points, based on the prioritization of the plurality of regions; means for encoding attributes for at least the subset of the plurality of points, based on the indication received from the receiver of the attributes to be encoded for at least the subset of the plurality of points; and means for transmitting, to the receiver, the attributes for at least the subset of the plurality of points.

20. The apparatus of any of claims 1 to 19, further comprising: means for transmitting, to the receiver, an indication of at least one parameter used to encode at least the points within the subset of the plurality of points, based on the prioritization of the plurality of regions.

21. The apparatus of claim 20, wherein the at least one parameter used to encode atleast the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a level of detail, wherein the level of detail is a parameter specified per region for the plurality of regions.

22. The apparatus of any of claims 20 to 21, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises attributes.

23. The apparatus of any of claims 20 to 22, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a resolution.

24. The apparatus of any of claims 1 to 23, further comprising: means for receiving, from the receiver, a request to update the prioritization of the plurality of regions; and means for updating the prioritization of the plurality of regions, based on the request to update the prioritization of the plurality of regions received from the receiver.

25. The apparatus of any of claims 1 to 24, wherein: at least the points within the subset of the plurality of points are encoded using an octree encoding in absolute form, and the octree encoding in absolute form is based on a bounding box defined with a space covered with a source that generates the plurality of points.

26. The apparatus of claim 25, further comprising: means for transmitting, to the receiver, an indication that at least the points within the subset of the plurality of points have been encoded using the octree encoding in absolute form.

27. The apparatus of any of claims 1 to 26, wherein:at least the points within the subset of the plurality of points using an octree encoding in relative form, and the octree encoding in relative form is based on a bounding box defined with setting maximum and minimum values of coordinates of the plurality of points.

28. The apparatus of claim 27, further comprising: means for transmitting, to the receiver, an indication that at least the points within the subset of the plurality of points have been encoded using the octree encoding in relative form.

29. An apparatus comprising: means for receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; means for decoding at least the points within the subset of the plurality of points; and means for reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

30. The apparatus of claim 29, wherein points within another subset of the plurality of points are not received from the sender, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the another subset of the plurality of points belong.

31. The apparatus of any of claims 29 to 30, further comprising: means for receiving, from the sender, attributes associated with the plurality of points; wherein the attributes that are received have been encoded, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the plurality of points belong; and wherein the three-dimensional scene is reconstructed based on the attributes associated with the plurality of points that have been encoded.

32. The apparatus of any of claims 29 to 31, further comprising: means for transmitting, to the sender, an indication of the prioritization of the plurality of regions; wherein the prioritization of the plurality of regions is determined based on the indication of the prioritization of the plurality of regions transmitted to the sender.

33. The apparatus of claim 32, wherein the indication of the prioritization of the plurality of regions is transmitted to the sender as a real-time transport control protocol feedback message.

34. The apparatus of any of claims 32 to 33, wherein the indication of the prioritization of the plurality of regions transmitted to the sender indicates that a first region of the plurality of regions has a higher priority than a second region of the plurality of regions.

35. The apparatus of any of claims 32 to 34, further comprising: means for receiving, from the sender, an indication of a capability to receive the indication of the prioritization of the plurality of regions.

36. The apparatus of claim 35, wherein the indication of the capability to receive the indication of the prioritization of the plurality of regions is received from the sender as a session description protocol message comprising an octree encoded region requestparameter, and indicates support for a real-time transport control protocol feedback message that comprises the indication of the prioritization of the plurality of regions.

37. The apparatus of any of claims 29 to 36, further comprising: means for transmitting, to the sender, a request to transmit points within a region having a priority that is higher than another region; wherein the points within the subset of the plurality of points that are decoded and received from the sender comprise the points within the region having the priority that is higher than the another region; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points within the region having the priority that is higher than another region.

38. The apparatus of claim 37, wherein the request to transmit the points within the region having the priority that is higher than the another region is transmitted to the sender with a real-time transport control protocol message.

39. The apparatus of claim 38, further comprising: means for setting a priority bit to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points within the region having the priority that is higher than the another region.

40. The apparatus of any of claims 29 to 39, further comprising: means for transmitting, to the sender, a request to transmit points with a first resolution within a first region, and to transmit points with a second resolution within a second region, wherein the first resolution is different from the second resolution; wherein the points within the subset of the plurality of points that are decoded and received from the sender comprise the points with the first resolution within thefirst region and the points with the second resolution within the second region; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points with the first resolution within the first region, and to transmit points with the second resolution within the second region.

41. The apparatus of claim 40, wherein the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region is transmitted to the sender with a real-time transport control protocol message.

42. The apparatus of claim 41, further comprising: means for setting a level of detail bit to be equal to 1 within a header of the realtime transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit the points with the first resolution within the first region, and to transmit the points with the second resolution within the second region.

43. The apparatus of any of claims 29 to 42, further comprising: means for transmitting, to the sender, a request to transmit points within a first region with a first set of attributes, and to transmit points within a second region with a second set of attributes, wherein the first set of attributes is different from the second set of attributes; and wherein the points within the subset of the plurality of points that are decoded and received from the sender comprise the points within the first region with the first set of attributes, and the points within the second region with the second set of attributes; wherein the points within the subset of the plurality of points are received from the sender based on the request transmitted to the sender to transmit points within the first region with the first set of attributes, and the points within the second region withthe second set of attribute.

44. The apparatus of claim 43, wherein the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes is transmitted to the sender with a real-time transport control protocol message.

45. The apparatus of claim 44, further comprising: means for setting an attribute bit to be equal to 1 within a header of the real-time transport control protocol message to indicate that the real-time transport control protocol message contains the request to transmit points within the first region with the first set of attributes, and to transmit points within the second region with the second set of attributes.

46. The apparatus of any of claims 29 to 45, further comprising: means for transmitting, to the sender, a request for points within different regions to be encoded in different resolutions; and means for receiving, from the sender, the points within the different regions that have been encoded in different resolutions, based on the request transmitted to the sender for the points within different regions to be encoded in different resolutions.

47. The apparatus of any of claims 29 to 46, further comprising: means for transmitting, to the sender, an indication of attributes to be encoded for at least a subset of the plurality of points, based on the prioritization of the plurality of regions; means for receiving, from the sender, the attributes for at least the subset of the plurality of points, based on the indication transmitted to the sender of the attributes to be encoded for at least the subset of the plurality of points.

48. The apparatus of any of claims 29 to 47, further comprising:means for receiving, from the sender, an indication of at least one parameter used to encode at least the points within the subset of the plurality of points, based on the prioritization of the plurality of regions; and wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender of the at least one parameter used to encode at least the points within the subset of the plurality of points.

49. The apparatus of claim 48, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a level of detail, wherein the level of detail is a parameter specified per region for the plurality of regions.

50. The apparatus of any of claims 48 to 49, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises attributes.

51. The apparatus of any of claims 48 to 50, wherein the at least one parameter used to encode at least the points within the subset of the plurality of points based on the prioritization of the plurality of regions comprises a resolution.

52. The apparatus of any of claims 29 to 51, further comprising: means for transmitting, to the sender, a request to update the prioritization of the plurality of regions; and means for receiving, from the sender, at least at subset of the plurality of points that have been encoded based on an updated prioritization of the plurality of regions, wherein the updated prioritization of the plurality of regions is based on the request to update the prioritization of the plurality of regions transmitted to the sender.

53. The apparatus of any of claims 29 to 52, wherein: at least the points within the subset of the plurality of points have been encoded using an octree encoding in absolute form, andthe octree encoding in absolute form is based on a bounding box defined with a space covered with a source that generates the plurality of points.

54. The apparatus of claim 53, further comprising: means for receiving, from the sender, an indication that at least the points within the subset of the plurality of points have been encoded using an octree encoding in absolute form; wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender that at least the points within the subset of the plurality of points have been encoded using the octree encoding in absolute form.

55. The apparatus of any of claims 29 to 54, wherein: at least the points within the subset of the plurality of points have been encoded using an octree encoding in relative form, and the octree encoding in relative form is based on a bounding box defined with setting maximum and minimum values of coordinates of the plurality of points.

56. The apparatus of claim 55, further comprising: means for receiving, from the sender, an indication that at least the points within the subset of the plurality of points have been encoded using an octree encoding in relative form; wherein at least the points within the subset of the plurality of points are decoded based on the indication received from the sender that at least the points within the subset of the plurality of points have been encoded using the octree encoding in relative form.

57. A method comprising: obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points;61determining a plurality of regions of the three-dimensional scene; determining to which of the plurality of regions the plurality of points belong; determining a prioritization of the plurality of regions; encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

58. A method comprising: receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decoding at least the points within the subset of the plurality of points; and reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

59. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: obtain data that represents a three-dimensional scene, wherein the data thatrepresents the three-dimensional scene comprises a plurality of points; determine a plurality of regions of the three-dimensional scene; determine to which of the plurality of regions the plurality of points belong; determine a prioritization of the plurality of regions; encode at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmit, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

60. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: receive, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decode at least the points within the subset of the plurality of points; and reconstruct the three-dimensional scene from at least the points within the subset of the plurality of points.

61. A computer readable medium comprising instructions stored thereon for performingat least the following: obtaining data that represents a three-dimensional scene, wherein the data that represents the three-dimensional scene comprises a plurality of points; determining a plurality of regions of the three-dimensional scene; determining to which of the plurality of regions the plurality of points belong; determining a prioritization of the plurality of regions; encoding at least points within a subset of the plurality of points, based on the prioritization of the plurality of regions, and based on which of the plurality of regions the subset of the plurality of points belong; and transmitting, to a receiver, at least the points within the subset of the plurality of points that have been encoded.

62. A computer readable medium comprising instructions stored thereon for performing at least the following: receiving, from a sender, at least points within a subset of a plurality of points, wherein the points within the subset of the plurality of points have been encoded, and the plurality of points are among data that represents a three-dimensional scene; wherein the points within the subset of the plurality of points have been encoded based on a prioritization of a plurality of regions of a three-dimensional scene, and based on which of the plurality of regions the points within the subset of the plurality of points belong; decoding at least the points within the subset of the plurality of points; and reconstructing the three-dimensional scene from at least the points within the subset of the plurality of points.

Citation Information

Patent Citations

  • 3D model shape analysis method based on perception information

    US20140125663A1

  • Real Time Machine Vision and Point-Cloud Analysis For Remote Sensing and Vehicle Control

    US20160221592A1

  • Methods and apparatus for signaling viewports and regions of interest for point cloud multimedia data

    US20200226792A1

  • Sequential Encoding and Decoding of Volumetric Video

    US20200228836A1

  • Controlled Uplink Adaptive Streaming based on Server Performance Measurement Data

    US20200322663A1