3D Stream Processing

By synchronizing and scaling 3D image data streams based on network conditions and user activity, the processing entity addresses bandwidth and synchronization issues, ensuring consistent rendering in extended reality devices.

JP7618817B2Active Publication Date: 2025-01-21TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023540906
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-01-05
Publication Date
2025-01-21
Estimated Expiration
2041-01-05

AI Technical Summary

Technical Problem

The challenge of transmitting 3D image data streams over wireless networks is characterized by high bandwidth requirements, data synchronization issues due to differing processing times of mesh and texture components, and inconsistencies in rendering, particularly in extended reality devices.

Method used

A processing entity is employed to synchronize and scale 3D image data streams by adjusting transmission times and frame rates based on network conditions and user activity, using modules to add transmission time instructions and adapt streams accordingly, ensuring synchronized delivery and reduced bandwidth usage.

Benefits of technology

This approach enhances the synchronization and reduces bandwidth requirements, minimizing rendering inconsistencies and improving the user experience in extended reality devices by optimizing the transmission and processing of 3D image data streams.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007618817000001
    Figure 0007618817000001
  • Figure 0007618817000002
    Figure 0007618817000002
  • Figure 0007618817000003
    Figure 0007618817000003
Patent Text Reader

Abstract

The present application relates to a method for operating a processing entity configured to process a 3D image data stream for transmission over a wireless network to an extended reality device, the method comprising: receiving a 3D stream including a first image data stream representing a structure of a real-world object and a second image data stream representing a visual appearance of the real-world object; adding corresponding transmission time indications to each of the first image data stream and the second image data stream, thereby resulting in a modified stream including a modified first stream and a modified second stream; transmitting the modified stream over the network to the extended reality device; receiving processing time indications for each of the modified first stream and the modified second stream; and initiating adaptation of at least one of the 3D image data stream and the modified stream based on the processing time indications.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present application relates to a method for operating a processing entity and a corresponding processing entity. Further, a computer program and a carrier comprising the computer program are provided. In particular, embodiments herein relate to processing 3D image stream data for transmission over a wireless network. [Background technology]

[0002] In recent years, the importance of remote meetings and virtual communications has rapidly increased. In this context, a point cloud or any 3D image data stream is streamed from a depth camera to an XR (Extended Reality) device, such as an Augmented Reality (AR) device, a Mixed Reality (MR) device, or a Virtual Reality (VR) device. The point cloud of the 3D content (e.g., 3D image frames) is captured by a depth camera, such as Intel Realsense or Microsoft Kinect.

[0003] Meshes, textures, and UV maps are commonly used to represent captured 3D content. A mesh is a data structure that defines the shape of an object in AR / VR. There are different mesh topology types, e.g., triangle mesh, line mesh, or point mesh. The type indicates how the mesh faces are created using triangulation, points, or lines, where each line is composed of two vertex indexes, etc. A mesh contains edges and vertices that define the shape of the 3D content.

[0004] UV mapping is a 3D modeling process in which a 2D image is projected onto the surface of a 3D model to provide texture mapping. UV mapping makes it possible to add color to the polygons that make up a 3D object. The UV mapping process involves assigning pixels in an image to a surface mapping onto the polygons. Rendering operations use the UV texture coordinates to determine how to paint the three-dimensional surface.

[0005] A texture is a digital 2D picture (also called an RGB image) of an object. The combination of mesh, texture, and UVs creates a 3D representation of the scene that is represented in the 3D image stream. By extracting a person from the mesh and texture and applying UVs, it is possible to create a 3D representation of the person that can be captured from different angles.

[0006] Streaming 3D image data is bandwidth intensive. For a frame with a resolution of 480x640, including mesh, UVs, and textures, the average data volume is 11MB, so for 60 frames per second, the data volume is 600MB per second. For HD or UHD resolution, the bit rate is in the order of GB per second. Compression of 3D image data is not yet well developed. As a result, streaming 3D image data with a bandwidth requirement of 600MB / sec over a mobile network is a challenge. Even if compression becomes available, there is an impact on the quality, and measures are still needed to optimize the delivery of 3D image data. Figure 1 provides a high-level system architecture for over-the-top streaming of point clouds generated by a depth camera to XR devices such as AR glasses. The requirements on the network are very high in terms of bandwidth, latency, and jitter (variation in latency).

[0007] A 3D or depth camera 80 generates a 3D image data stream, and point cloud generation and encoding may be performed at the computer or gaming console 20 or at the depth camera. The stream is transmitted over a wireless (e.g., cellular) network 40 to a mobile entity or UE 30, where decoding and rendering are performed. A user wearing an extended reality device 70 and connected to a UE can use the device 70 to view the 3D image data stream.

[0008] 3D image data streams also present problems with data synchronization due to the long mesh rendering times compared to rendering pure 2D images. Texture and UV processing is eight times faster than mesh processing, which leads to inconsistencies between the surfaces defined by the mesh and the corresponding textures. As an example, when rendering a human image, if the human head moves quickly from left to right, the mesh will remain in a head-front position, but the texture and UV map associated with the human image will already be facing left. As a result, in a left-facing position, the human image will render its nose in the shape of a cheek.

[0009] Therefore, there is a need for improved processing and display of 3D image data streams transmitted over wireless networks so as to overcome the above-mentioned problems and so as to minimize the above-mentioned inconsistencies. Summary of the Invention

[0010] This need is met by the features of the independent claims. Further aspects are set out in the dependent claims.

[0011] According to a first aspect, a method for operating a processing entity configured to process a 3D image data stream for transmission to an extended reality device over a wireless network is provided. The method includes receiving a 3D image data stream, the 3D image data stream including a first image data stream representing a structure of at least one real-world object, and the 3D image data stream including a second image data stream representing a visual appearance of the at least one real-world object. The processing entity adds corresponding transmission time indications to each of the first image data stream and the second image data stream, thereby generating a modified stream including a modified first stream and a modified second stream. The modified stream is transmitted to the extended reality device over the wireless network, and the processing entity receives processing time indications for each of the modified first stream and the modified second stream from the extended reality device. Further, adaptation of at least one of the 3D image data stream and the modified stream is initiated based on the processing time indications of the modified first stream and the modified second stream.

[0012] Further, corresponding processing entities are provided that are operable to act as described above or as described in more detail below.

[0013] As an alternative, a processing entity is provided that is configured to process and transmit a 3D image data stream to an extended reality device over a wireless network, the processing entity comprising a first module configured to receive a 3D image data stream, the 3D image data stream including a first image data stream representing a structure of at least one real-world object and a second image data stream representing a visual appearance of the at least one real-world object. The processing entity comprises a second module configured to add corresponding transmission time indications to each of the first image data stream and the second image data stream, thereby generating a modified stream including a modified first stream and a modified second stream. The processing entity comprises a third module configured to transmit the modified stream to the extended reality device over the wireless network. A fourth module is provided that is configured to receive processing time indications for each of the modified first stream and the modified second stream from the extended reality device. A fifth module of the processing entity is configured to initiate adaptation of at least one of the modified streams with the entity of the 3D image data stream based on the processing time indication of the modified first stream and the modified second stream.

[0014] By receiving the processing time including the transmission time indication, the processing entity can infer the transmission and processing conditions at the extended reality device. By way of example, by comparing the modified stream portion, the modified first stream and the modified second stream, and the corresponding transmission time indication with the corresponding processing time, it is possible to react to the current conditions and modify either the 3D image data stream, the modified stream, or both streams such that synchronization of the modified first stream and the modified second stream at the extended reality device is maintained. By way of example, the real world objects can include a scene representing a human and one or more background objects.

[0015] Additionally, a method is provided for operating a processing entity configured to receive a 3D image data stream generated by a 3D camera over a wireless network, the 3D image data stream including a first image data stream representing a structure of at least one real-world object and a second image data stream representing a visual appearance of the at least one real-world object. The method includes receiving from the 3D camera a resolution indicator indicative of a resolution of the 3D camera, determining an activity of at least the real-world object shown in the 3D image data stream, and determining a first frame rate to be used by the 3D camera for the first image data stream and a second frame rate to be used by the 3D camera for the second image data stream taking into account the resolution indicator, the transmission bandwidth, and the determined activity. The 3D camera is informed of the determined scaling parameters based on the determined first frame rate and the second frame rate.

[0016] In addition, corresponding processing entities are provided that are operable to act as described above or as described in more detail below.

[0017] As an alternative, a processing entity is provided that is configured to receive a 3D image data stream generated by a 3D camera through a wireless network, the data stream including a first image data stream representing a structure of at least one real-world object and a second image data stream representing a visual appearance of the at least one real-world object, the processing entity comprising a first module configured to receive from the 3D camera a resolution indicator indicative of the resolution of the 3D camera. A second module is provided that is configured to determine an activity of at least the real-world object shown in the 3D image data stream. The processing entity comprises a third module configured to determine a transmission bandwidth of a further wireless network used to transmit the 3D image data stream to the processing entity. A fourth module of the processing entity is configured to determine a first frame rate used by the 3D camera for the first image data stream and a second frame rate used by the 3D camera for the second image data stream, taking into account the resolution indicator, the transmission bandwidth and the determined activity. A fifth module of the processing entity is configured to inform the 3D camera of the determined scaling parameters based on the determined first frame rate and the second frame rate.

[0018] Furthermore, a computer program is provided comprising program code which, when executed, causes at least one processing unit of a processing entity to perform a method as described above or in more detail below.

[0019] Further provided is a carrier containing the computer program, the carrier being one of an electronic signal, an optical signal, a radio signal, or a computer readable storage medium.

[0020] It should be understood that the features mentioned above and those described below can be used not only in the respective combinations suggested, but also in other combinations or alone without departing from the scope of the present invention. The features of the above-mentioned aspects and the embodiments described below may be combined with each other in other embodiments, unless expressly stated otherwise.

[0021] The above and additional features and advantages of the present application will become apparent from the following detailed description taken in conjunction with the accompanying drawings, in which like reference numbers refer to like elements and in which: [Brief description of the drawings]

[0022] [Figure 1] FIG. 1 is a schematic diagram illustrating streaming of 3D image data streams to an extended reality device over a cellular network, as known in the art. [Diagram 2] FIG. 1 is a schematic diagram illustrating an architecture involving processing of 3D image data streams that overcomes problems known in the art and comprises features of the present invention. [Diagram 3] FIG. 2 is another schematic diagram illustrating an architecture for processing 3D image data streams that overcomes problems known in the art and comprises features of the present invention. [Figure 4] FIG. 4 illustrates in further detail the exchange of information that helps improve streaming of 3D image data streams in a system such as that shown in FIGS. 2 and 3. [Diagram 5] FIG. 1 is a schematic diagram illustrating mesh and texture scaling as a function of network bandwidth. [Figure 6] FIG. 1 is a schematic diagram illustrating scaling of meshes and textures in response to user activity shown in a scene present in a 3D image data stream. [Figure 7] FIG. 2 illustrates a schematic diagram of determining human activity depicted in an image data stream; [Figure 8]FIG. 1 is a schematic diagram showing a sequence of communication between entities to generate a 3D image data stream based on current conditions. [Figure 9] FIG. 1 is a schematic diagram illustrating the problem that occurs when a texture is processed faster than a mesh, leading to inconsistencies in the rendered 3D image. [Figure 10] FIG. 10 is a schematic diagram showing message exchanges between the involved entities to overcome the problem shown in FIG. 9 so that inconsistencies on the rendered 3D image on the extended reality device are avoided. [Figure 11] FIG. 11 shows an example flowchart of a method performed by processing entities involved in the processes as discussed in relation to FIGS. 2-10. [Figure 12] FIG. 2 shows an example flowchart of a method performed by a processing entity to configure participating entities at the beginning of a process. [Figure 13] FIG. 2 is a schematic diagram of an example illustrating processing entities configured to synchronize different parts of a 3D image data stream. [Figure 14] FIG. 13 is a schematic diagram of another example illustrating processing entities configured to synchronize different parts of a 3D image data stream. [Figure 15] FIG. 2 is a schematic diagram of an example of a processing entity configured to perform stream scaling. [Figure 16] FIG. 13 is a schematic diagram of another example of a processing entity configured to perform stream scaling. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] Hereinafter, the embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood that the following description of the embodiments should not be interpreted in a limiting sense. The scope of the present invention shall not be limited by the embodiments described below or by the drawings, which should be merely illustrative.

[0024] The drawings should be considered as schematic representations, and elements shown in the drawings are not necessarily drawn to scale. Instead, the various elements are represented in such a way that the function and general purpose of the elements are apparent to a person skilled in the art. Any connections or couplings between functional blocks, devices, components of physical or functional units shown in the drawings and described below may be realized by indirect connections or couplings. The functional blocks may be realized in the form of hardware, software, firmware, or a combination thereof.

[0025] Within the context of this application, the term mobile entity or user equipment (UE) refers to a device used, for example, by a human being, a user, for personal communication. The device can be a telephone type device, a cellular phone, a mobile station, a cordless phone, or a personal digital assistant type device such as a laptop, notebook, notepad, or tablet equipped with wireless data connectivity. The UE may be equipped with a subscriber identity module (SIM) or electronic SIM that contains a unique identity, such as an International Mobile Subscriber Identity (IMSI), a Temporary Mobile Subscriber Identity (TMSI), or a Globally Unique Temporary UE Identity (GUTI), associated with the user using the UE. The presence of the SIM in the UE makes the UE uniquely customized with the user's subscription.

[0026] For clarity, it is noted that there is a difference between a user and a subscriber, but also a close connection. A user gains access to a network by acquiring a subscription to the network, thereby becoming a subscriber in the network. The network then recognizes the subscriber, for example using the IMSI, TMSI, or GUTI, and uses the associated subscription to identify the relevant subscription data. A user can be the actual user of a UE entity and may also be the one who owns the subscription, although the user and the subscription owner may be different.

[0027] In the following, we consider the transmission of a point cloud stream or a 3D image data stream that is captured by a depth camera or a 3D camera, optimized and later sent to an extended reality device. In the following, point cloud stream or 3D image data stream are used interchangeably. In the same way, a 3D camera corresponds to a depth camera.

[0028] As described below, a processing entity, preferably realized as a cloud function, is provided that can be used to scale and synchronize the 3D image data stream, including meshes and textures, based on network conditions, device capabilities, and user movement (i.e., user activity) depicted in the scene presented in the 3D image data stream. The network information and user activity may be used to determine the requirements for transmitting meshes and textures and scaling the 3D image data stream accordingly. Furthermore, feedback from the extended reality device regarding actual processing times, including rendering times, is taken into account for different components of the 3D image data stream to determine instances as to where new portions of the 3D image data stream, such as new meshes, are needed or when mesh updates should be provided.

[0029] This application addresses two problem areas for real-time 3D communication. First, the frame rate of transmitting the structure shown in the image data stream, such as meshes (also referred to as the first image data stream), and the portion of the image data stream representing the visual appearance, such as textures (also referred to as the second image data stream), are adapted to scale based on network bandwidth and user activity. Second, different portions of the 3D image data stream, i.e., the portion or data stream representing the structure of the object shown in the scene of the image data stream (hereinafter also referred to as the first modified stream), or the stream including the visual appearance (hereinafter also referred to as the second modified stream), are transmitted at different frame rates based on the processing or rendering time at the XR device. This application further addresses the need for uplink or production edge and downlink / distribution edge functions for 3D communication by providing processing entities preferably located at the edge of the cloud, as will be discussed in more detail in connection with Figures 2 and 3.

[0030] Fig. 2 provides an overview of an end-to-end system for streaming a 3D image data stream or point cloud from a 3D camera 80 to an XR device 70, where a cloud component is provided in the communication path. The communication path may include a first wireless link or part of a wireless network 50 describing an uplink connection from the 3D camera to the Internet or a processing entity 100 that processes the 3D image data stream in such a way that the processing time difference (of the first image data stream and the second image data stream) occurring at the extended reality device is taken into account. Furthermore, a wireless link 60, a downlink wireless link or wireless network is provided towards the extended reality device 70. Fig. 2 shows two cloud components: a first cloud component or server close to the 3D camera and a further cloud server or component close to the XR device 70.

[0031] Based on network conditions, user activity, and device characteristics, point cloud stream scaling and / or point cloud stream synchronization are proposed to provide an optimized 3D point stream. The generation of the 3D image data stream is done in the 3D camera, and the stream rendering is performed in the XR device 70. The camera may be connected to a PC, for example via a USB cable, and the camera and device 70 can be connected to some UE to connect to a cellular or wireless network. It is also possible that the stream rendering is done in the connected user equipment (UE), making the device 70 act as a tethering device.

[0032] In the embodiment shown in FIG. 2, the adaptation of frame rates for transmission based on network bandwidth and user activity is performed by the same entity that synchronizes different portions of the 3D image data stream based on processing time at device 70, as described below.

[0033] Processing time is the duration from receiving a frame of the 3D image data stream to rendering the frame, including several time components such as transmission, buffering, and any decoding or processing, including rendering at device 70.

[0034] Fig. 3 shows a similar situation as shown in Fig. 2, but with different functional steps including adapting the frame rate in light of the current environmental conditions, where the transmission of different stream parts is performed by different components 200 or 100 based on the rendering or processing time. The processing entity 200 is responsible for scaling the meshes and textures in the 3D image data stream based on the device, network settings such as transmission bandwidth, and user activity. The processing entity 100 is responsible for controlling the different frame rates of different parts of the 3D image data stream so that the rendering does not cause distortion or delay in the XR device 70.

[0035] The following sections describe the first part, i.e., the scaling of the 3D image data stream based on device settings, network conditions, and user activity. In the embodiment of FIG. 2, the scaling is performed by the processing entity 100, and in the embodiment of FIG. 3, the scaling is performed by the processing entity 200. The optimal scaling of the 3D image data stream is performed by the cloud at the processing entity 100 or 200. The 3D image data stream comprises a first image data stream (part) that represents the structure or geometry of a real-world object such as a human, and the data stream further comprises a second image data stream (part) that represents the visual appearance. The first image data stream can include meshes, and the second image data stream can comprise textures and UVs. The scaling is performed by determining the appropriate scale required for the meshes and textures in the 3D stream based on the current network conditions (e.g., network bandwidth). The scale is also determined by the requirements for updating the meshes and textures, derived from user activity, to avoid synchronization issues at the XR device 70. Synchronization issues can occur when textures arrive early and meshes are not updated due to network issues as also discussed in connection with FIG. 9. Scaling (such as reducing the transmission of mesh components in the stream) may also be necessary to reduce bandwidth requirements on the network when mesh updates are not required due to low user movement, making mesh streaming viable.

[0036] Because the point cloud stream is very complex, point cloud compression may actually occur at the edge of the cloud at the production side. The problem is before compression, a lot of data needs to be uploaded to the edge or cloud through a wireless uplink. One concrete example is point cloud processing at the edge, performed by the processing entity 100 shown in FIG. 2 or by the processing entity 200 shown in FIG. 3. Here, artifacts or background may be removed and complex operations can be performed on each point cloud data stream. By establishing a closed loop with the 3D camera 80 to characterize the activity, a new mesh may be updated only when necessary, thereby saving a lot of uplink bandwidth and processing time. Compression may be applied after the wireless uplink.

[0037] The scaling process is discussed in more detail in connection with Fig. 4. The 3D camera 80 transmits device resolution, network conditions and user activity to the processing entity 100, 200. User activity may include eye movements, facial expression changes, or posture changes, or any other movements. At least some of these parameters may be used as inputs to determine optimal settings for the 3D camera. A scaling ratio corresponding to the ratio between the mesh frame rate and the texture / UV frame rate is provided to the camera 80 and also to the extended reality device. The extended reality device 70 may also provide its own resolution, the display resolution, to the processing entity 100, 200.

[0038] Figure 5 shows the mapping of mesh and texture components of a 3D image data stream based on measured network conditions. The mesh is the part of the data stream that represents structure and can tolerate higher frame rates at very high bandwidths, but at lower bandwidths it becomes more difficult to tolerate high frame rates, leading to an exponential decay. The frame rate of the other part that represents the visual appearance, here texture, has a more gradual decrease in frame rate due to lower bandwidth requirements.

[0039] Fig. 6 shows an example where the frame rates of structural representation and visual appearance, i.e. mesh and texture, are adapted based on user activity such as user movements shown in the scene of the 3D image data stream, such as eye movements, head pose changes, or facial expression changes. The higher the user activity, the higher the mesh rate is needed to meet the demands of the user experience. For the data part representing the visual appearance, here the texture, a relatively high frame rate is needed to maintain the immersive quality when the user activity is low.

[0040] User activity may be determined by considering the difference in mesh or point cloud coordinates between consecutive mesh frames as shown in FIG. 7. Each point cloud coordinate "P" may be characterized by an X, Y, and Z coordinate. The sum of all point cloud differences is fed into a scaled system that determines a user activity score based on an activity threshold. The output may be scaled from 1 to 100, with scale 1 representing "no activity" and scale 100 indicating "maximum activity". Without loss of generality, such scaling models can be trained and adjusted based on different parameters such as content type, complexity, etc. As shown in FIG. 7, the processing entity 100 can implement the calculation of the user activity score. A further optimized scaling example can consider generalized activity characterization such as lip movement, posture changes, etc. as follows: Low activity score = 10 → Mesh frame rate (20 fps) Medium activity score = 50 → Mesh frame rate (40 fps) High activity score = 90 → Mesh frame rate (60fps) Another optimized scaling metric can be the mesh density when the frame rate is kept constant, or it can be a combination of the following: Low Activity Score = 10 → Mesh Density (X / 4 data points) Medium activity score = 50 → Mesh density (X / 2 data points) High Activity Score = 90 → Mesh Density (X data points) Here, X corresponds to the number of data points in one frame, e.g., 10k data points.

[0041] Figure 8 illustrates the message exchange for optimal scaling of meshes and textures performed in a processing entity. Figure 8 addresses the scenario where the uplink bandwidth is limited and the entire point cloud stream cannot be provided to the XR device in real-time.

[0042] In step S81, the processing entity collects input from the 3D camera regarding resolution for the mesh and texture, and in step S82, the processing entity also optionally receives input from the XR device regarding display resolution. The XR device may be a head mounted display, but it should be understood that the XR device is not limited to a head mounted display and any other XR device may be used. Furthermore, the processing entity collects input of user activity from the camera, such as user movement, mesh rotation and translation, as described above in connection with FIG. 7 (S83). Furthermore, the processing entity 100 or 200 receives network information, such as bandwidth and latency information. The network information may be provided by the camera, the UE, or by the network, as illustrated by steps S84 and S85. In step S86, the processing entity determines an optimal scaling based on the received information, thereby defining the rate of the mesh and texture or point cloud stream, as described below. The resulting optimal scaling, which is the mesh and texture ratio per second, is provided to the 3D camera in step S87 and, optionally, to the XR device in step S88.

[0043] Below, a strategy for point cloud stream synchronization is implemented in the processing entity in the downlink direction to the XR device 70. In the strategy described below, the transmission of the data stream to the XR device is adapted based on the processing time of the XR device. This processing time may include additional delays in the XR device 70, such as transmission time on the channel, buffering, decoding, mesh reconstruction, and rendering. During the processing of the 3D image data stream, the following typical delays may be observed: In one example, processing or rendering an entire mesh in the XR device may take up to 200 ms. Rendering updates or parts of a mesh in the XR device may take about 30 ms. Rendering textures and UVs may take up to 30 ms.

[0044] FIG. 9 addresses the problem of inconsistent surfaces in a picture when textures are processed faster than meshes. In a processing entity, the incoming mesh and texture or UV are synchronized. The transmission times of the mesh and texture or UV may vary when transmitting the entire mesh. In an XR device, the texture or UV is received faster than the mesh (in light of the smaller amount of data for the texture or UV). Furthermore, the rendering time of the entire mesh is longer than the time for the texture or UV, which introduces additional delay for the mesh. Thus, a situation may occur as shown in FIG. 9, where the texture of frame n+3 is already rendered, while the mesh of frame n+1 is rendered almost at the same time. Thus, the rendering times, the time at which the corresponding parts of the data stream are displayed, are different for the texture and the mesh.

[0045] 10 illustrates a synchronization strategy in which the processing entity 100 can send out mesh updates based on rendering time or ownership feedback as received from the device 70. In this situation, the amount of data streamed from the 3D camera to the device 70 is also significantly reduced. In addition, synchronization allows optimally to restore functionality after a connection interruption.

[0046] In step S101 of Figure 10, the 3D camera sends a 3D image data stream containing meshes, textures, and UVs to the cloud. In step S102, a processing entity aligns the meshes, textures, and UVs, timestamping each in a specific format, and adds the stream to a queue to be later sent to the XR device 70. Possible timestamps can have the following formats: yyyy-MM-dd HH:mm:ss.SSS (1)

[0047] In step S103, during the first of the frames, the processing entity sends the entire mesh, textures and UVs to the XR device 70, including a timestamp or send time indication.

[0048] In step S104, after receiving the point cloud stream, the XR device 70 processes the received data and renders the data with the same timestamp for the end user.

[0049] In step S105, the XR device 70 reports a processing time (a processing time indication) for each element, including meshes, textures, and UVs. Processing time or rendering time is defined as the time it takes to process an element on the XR device 70 and display it to the user. Rt[e]=t_s-t_d (2) Rt: Rendering time e: elements (meshes, textures, UVs) t_s: The timestamp when data processing started t_d: The timestamp when the data was displayed inside the XR device.

[0050] In step S106, the processing entity 100 receives the processing time indication and compares the received information with the actual timestamp. In step S107, the processing entity 100 checks whether the frames are synchronized. If the delay between frames is less than a predefined amount of time, the processing entity can send only mesh updates (instead of full mesh data) along with textures and UVs. This measure reduces the amount of data streamed from the camera to the extended reality device. As a further option, if the difference in delay is greater than a predefined threshold, the processing entity sends a command to the device 70 to drop the current queue of the 3D data stream and resend the latest queue containing the full mesh data, textures and UVs. This allows optimally to restore functionality after a connection interruption.

[0051] The above mentioned scaling and synchronization strategies can be combined such that information about the current rendering time is provided from the device 70 to the 3D camera 80. If only a mesh update is required, the processing entity can provide feedback to the 3D camera so that the camera provides an optimized stream to the XR device 70 and saves uplink bandwidth, which may be useful for one-on-one conferences. The processing entity can further provide feedback to the 3D camera 80 which areas of the mesh need updating. As an example, only areas in the stream that show user motion may be updated. Furthermore, it is possible to predict the movement of objects or people or faces and extrapolate their image when they move or turn. This strategy may be based on artificial intelligence. This strategy for prediction can be considered in the processing entity to compensate for cases where the mesh cannot be retrieved from the 3D camera, for example in light of uplink bandwidth limitations, or may be sent to the XR device in real time if there is downlink bandwidth limitations.

[0052] Fig. 11 outlines some of the steps performed by the processing entity 100 in the example of synchronizing different parts of an image data stream, i.e. a first stream representing a structure and a second stream representing a visual appearance contained in this 3D image data stream. In step S111, the processing entity 100 receives this real data stream, which comprises a first part or a first image data stream representing a structure of at least one real-world object, such as a human, and the 3D data stream comprises a second stream part, i.e. a second image data stream representing a visual appearance of the object. In step S112, the processing entity adds a corresponding transmission time indication to each of the stream parts, i.e. the first image data stream and the second image data stream, thereby generating a modified stream, which comprises a modified first stream and a modified second stream. This was described above in step S102 in relation to Fig. 10. The transition time indication can be the same for both streams, the first stream or the second stream, but can also be separate and specific for each stream. In step S113, the modified stream, now including the transmission time, is transmitted to the extended reality device, as also discussed in step S103. In step S114, the processing entity then receives a processing time indication for each different part of the modified stream, as described above in step S105. As the transmission time indication and the processing time indication are known for the modified stream and the different components of the received stream, it is possible to start an adaptation of the received 3D image data stream as received by the processing unit, or an adaptation of the stream as modified by the processing entity. Furthermore, both the 3D image data stream and the modified stream can be adapted.

[0053] FIG. 12, in conjunction with FIGS. 4 and 8, outlines the steps performed by the processing entity 100 or 200.

[0054] Step S121 describes the reception of the resolution as received by the 3D camera. Furthermore, in step S122, the activity of the objects shown in the scene of the 3D image data stream is determined. This activity may be received from the side of the camera or may be determined inside the processing entity if the 3D image data stream is already received. Furthermore, in step S123, the transmission bandwidth of the wireless network is determined, which is used for the uplink transmission of the data stream to the processing entity. Based on the received information, the processing entity can determine in step S124 the frame rate to be used by the 3D camera for the image data stream portion representing the structure and the frame rate to be used by the camera for the image data stream portion representing the visual appearance of the objects shown in the stream. In step S125, the processing entity informs the 3D camera of a scaling parameter describing the ratio between the frame rate of the stream portion containing the structure and the frame rate of the stream portion containing the visual appearance.

[0055] FIG. 13 shows a schematic diagram of a processing entity capable of implementing the above-mentioned steps involving the processing entity. As mentioned above, the processing entity may be realized in a cloud environment such that the hardware components or virtual machines used to provide the processing power are distributed across different nodes of the cloud environment. In any case, for clarity, the different components are shown in FIG. 12 as a single module. The processing entity 100 comprises an interface 110, which is used to transmit a 3D data stream or a control message to other entities, such as transmitting a modified stream to an XR device. The interface 110 is further configured to receive a stream from a 3D camera and also to receive data such as camera resolution, user activity, or transmission bandwidth of a wireless network. The processing entity further comprises a processing unit 120, which is responsible for the operation of the processing entity 100. The processing unit 120 may comprise one or more processors and may execute instructions stored in a memory 130, which may include a read-only memory, a random access memory, a mass storage device, a hard disk, etc. The memory may further include suitable program code executed by the processing unit 120 to realize the above-mentioned functions involving the processing entity.

[0056] Fig. 14 shows another schematic architecture diagram of a processing entity comprising a first module configured to receive a 3D image data stream including two parts. A module 320 is provided, configured to add an individual transmission time indication to each of the different stream parts. A module 330 is provided, configured to transmit a modified stream including the transmission time indication to the XR device. A module 340 is provided, configured to receive a processing time for each of the modified stream parts. A module 350 is provided, configured to initiate an adaptation of at least one of the data streams (the first data stream or the second data stream) based on the received information.

[0057] FIG. 15 shows a schematic diagram of an example of a processing entity that may only perform stream scaling as discussed in connection with FIG. 8. As described above in connection with FIG. 13, the processing entity 200 may be realized in a cloud environment, with different hardware components or virtual machines being distributed in the cloud. In any case, the processing entity 200 comprises an interface 210, which is provided for sending data streams or control messages to other entities and is configured to receive data streams or control messages from other entities. The interface is configured to receive information such as camera settings or user activity or network conditions. Furthermore, the interface may send scaling to the camera or XR device. The entity 200 further comprises a processing unit 220 that is responsible for the operation of the entity 200. The processing entity 220 comprises one or more processors and may execute instructions stored in a memory 230, which may include a read-only memory, a random access memory, a mass storage device, a hard disk, etc. The memory may further include suitable program code executed by the processing unit 220 to realize the above-mentioned functions involved in the processing entity 200.

[0058] Fig. 16 shows a representation of a further example of a processing entity 400 configured to perform stream scaling. The entity 400 comprises a first module 410 configured to receive a resolution of a 3D camera. Furthermore, a module 420 is configured to receive a user activity present in the scene shown in the image data stream. A module 430 is provided that further determines a transmission bandwidth of a wireless network used to transmit the 3D image data stream to the processing entity. A module 440 is provided that is configured to determine the frame rates of different parts of the stream, and a module 450 is provided that is configured to inform at least the camera of a scaling parameter indicating how the ratio of the frame rates is to be rated and the part of the stream containing the mesh is to be rated relative to the frame rate of the part of the stream containing the texture or UV.

[0059] From the above considerations, some general conclusions can be drawn. The processing entity 100 can further determine that one of the modified first and second streams has a shorter processing time than the other at the extended reality device based on the processing time indications of the modified first and second streams. Once the adaptation is started, it is possible to start synchronizing the first and second modified streams at the extended reality device.

[0060] When synchronization is initiated, this may mean that from the two modified streams, the frame rate of one of the modified streams is reduced, i.e., the modified stream is processed slower at the extended reality device than the other. Additionally, it may be possible to request the extended reality device to drop pending portions of the modified data stream that are buffered for display at the extended reality device.

[0061] Furthermore, it is possible to require the 3D camera 80 configured to generate a 3D image data stream to adapt the frame rate of one of the first and second image data streams, whose corresponding first and second modified streams are processed at a faster rate in the extended reality device, to the frame rate of the other of the received 3D image data streams, whose corresponding modified streams are processed at a slower rate in the extended reality device.

[0062] Further, current values ​​of the transmission time indications of the modified first stream and the modified second stream may be compared with the received processing time indications of the modified first stream and the modified second stream, and adaptation is initiated based on the comparison.

[0063] It is now possible to generate a first difference between the current value of the transmission time indication of the modified first stream and the received processing time indication of the modified first stream, and to generate a second difference between the current value of the transmission time indication of the modified second stream and the received processing time indication of the modified second stream, so that the adaptation is started based on the first difference and the second difference, as described in more detail above by the above mentioned formula 2.

[0064] If at least one of the first difference and the second difference is greater than the first time interval but less than the second time interval, a transmission rate of the modified stream transmitted to the extended reality device may be reduced. Further, if at least one of the first difference and the second difference is greater than the second time interval, the extended reality device is prompted to drop pending data stream frames pending for display at the extended reality device, whereupon a current portion of the modified stream currently present at the processing entity for transmission is transmitted to the extended reality device.

[0065] The first image data stream may include at least one of a mesh and a point cloud, and the second image data stream may include textures of at least one of the mesh and the point cloud and may include UV mapping. Further, a further stream portion may be provided, such as a third stream portion or a third stream that also includes audio data.

[0066] A rendering time for rendering the content on the extended reality device may be determined based on the processing time, and the rendering time is transmitted to the 3D camera.

[0067] Further, it is possible to determine a region of interest within the scene represented in the 3D image data stream in which an increased movement of at least one real-world object is detected compared to other regions of the 3D image data stream, Information regarding the region of interest is then transmitted to a 3D camera configured to generate the 3D data stream.

[0068] Furthermore, based on the already determined regions of interest and the determined movement of the at least one real-world object, it is possible to determine future regions of interest in the scene represented in the 3D image data stream, in which an increase in the movement of the at least one real-world object is expected, and information regarding the future regions of interest is transmitted to the 3D camera.

[0069] The 3D camera can then use this information to focus or limit transmission of meshes in future regions of interest.

[0070] Further, an activity score can be determined based on the region of interest, reflecting a degree of activity shown in the region of interest. A suggested frame rate for the first image data stream based on the activity score and transmitted to the 3D camera is then determined, such that the 3D camera can then use the suggested frame rate.

[0071] The 3D image data stream may be received from the 3D camera 80 via an uplink wireless network and transmitted to the extended reality device 70 via a downlink wireless network. The processing device 100 may receive a resolution indicator from the 3D camera 80, indicating the resolution used by the 3D camera. Furthermore, an activity of at least one real-world object shown in the 3D image data stream may be determined, the determination may be received from the camera itself or may be determined within the processing entity based on successive frames of the 3D image data stream. Furthermore, a transmission bandwidth of the uplink wireless network used to transmit the 3D image data stream to the processing entity 100 may be determined. Furthermore, a first frame rate to be used by the 3D camera for a first image data stream, which is the portion of the stream that includes the geometric shapes, may be determined, and a second frame rate to be used by the 3D camera 80 for a second image data stream, which is the portion that includes the visual appearance, may be determined, the two frame rates being determined taking into account the resolution indicator, the transmission bandwidth, and the determined activity. Additionally, the 3D camera may be informed of a scaling parameter, the parameter being determined based on the first frame rate and the second frame rate.

[0072] The frame rate may be determined as a ratio of a frame rate of a first image data stream to a frame rate of a second image data stream within the 3D image data stream.

[0073] The at least one real-world object may include a living being, such as a human.

[0074] As shown, the 3D image data stream may include a third stream that includes audio data.

[0075] The above solution addresses the bandwidth and latency issues that can occur when streaming 3D image data streams, resulting in an improved user experience. The optimized solution can be used for XR conferencing scenarios that work under real-time constraints.

Claims

1. 1. A method for operating a processing entity (100) configured to process a 3D image data stream for transmission to an extended reality device (70) over a wireless network (60), comprising: receiving the 3D image data stream, the 3D image data stream including a first image data stream representing a structure of at least one real-world object and a second image data stream representing a visual appearance of the at least one real-world object; adding corresponding transmission time indications to each of the first image data stream and the second image data stream, thereby resulting in a modified stream comprising a modified first stream and a modified second stream; transmitting the modified stream over the wireless network to the extended reality device; receiving from the extended reality device an indication of a processing time for each of the modified first stream and the modified second stream; initiating adaptation of at least one of the 3D image data stream and the modified stream based on the indication of the processing times of the modified first stream and the modified second stream; A method comprising:

2. 2. The method of claim 1, further comprising: determining, at the extended reality device based on the indication of the processing times of the modified first and second streams, that one of the processing times of the modified first and second streams is shorter than the other, and wherein initiating adaptation comprises initiating synchronization of the first and second modified streams at the extended reality device.

3. Initiating the synchronization reducing the frame rate of one of the modified streams, which is processed slower than the other of the two modified streams; requesting the extended reality device to drop pending portions of the modified data stream that are buffered for display at the extended reality device; requesting a 3D camera configured to generate the received 3D image data stream to adapt a frame rate of one of the first and second image data streams, where a corresponding one of the first or second modified streams is processed at a faster rate on the extended reality device, to a frame rate of the other of the received 3D image data streams, where a corresponding one of the modified streams is processed at a slower rate on the extended reality device. The method of claim 2 , comprising at least one of:

4. 4. The method according to claim 1, further comprising: comparing current values ​​of the transmission time indications of the modified first stream and the modified second stream with the received processing time indications of the modified first stream and the modified second stream, and wherein the adaptation is initiated based on the comparison.

5. 5. The method of claim 4, wherein a first difference between a current value of the transmission time indication of the modified first stream and the received indication of the processing time of the modified first stream is generated, a second difference between the current value of the transmission time indication of the modified second stream and the received indication of the processing time of the modified second stream is generated, and the adaptation is initiated based on the first difference and the second difference.

6. 6. The method of claim 5, wherein if at least one of the first difference and the second difference is greater than a first time interval but less than a second time interval, a transmission rate of the modified stream transmitted to the extended reality device is reduced.

7. 7. The method of claim 5 or 6, wherein if at least one of the first difference and the second difference is greater than a second time interval, the extended reality device is requested to drop pending data stream frames of the modified stream that are pending for display at the extended reality device, and a current portion of the modified stream currently present at the processing entity is transmitted to the extended reality device.

8. 8. The method of claim 1, wherein the first image data stream includes at least one of a mesh and a point cloud, and the second image data stream includes textures and UV mappings of at least one of the mesh and the point cloud.

9. 9. The method of claim 1, wherein determining the processing time comprises determining a rendering time, the rendering time being transmitted to a 3D camera configured to generate the 3D image data stream.

10. 10. The method of claim 1, further comprising determining a region of interest in the scene represented in the 3D image data stream in which an increased movement of the at least one real-world object is detected compared to other regions of the 3D image data stream, and transmitting information about the region of interest to a 3D camera configured to generate the 3D image data stream.

11. 11. The method of claim 10, further comprising determining a future region of interest in a scene represented in the 3D image data stream where an increase in the movement of the at least one real-world object is expected based on the region of interest and the determined movement of the at least one real-world object, and transmitting information about the future region of interest to the 3D camera.

12. 12. The method of claim 10 or 11, wherein an activity score is determined based on the region of interest reflecting a degree of activity shown in the region of interest, and a proposed frame rate for the first image data stream is determined and transmitted to the 3D camera based on the activity score.

13. the 3D image data stream is received over a further wireless network from a 3D camera configured to generate the received 3D image data stream; receiving from the 3D camera a resolution indicator indicative of a resolution of the 3D camera; determining an activity of the at least one real-world object shown in the 3D image data stream; determining a transmission bandwidth of the further wireless network used to transmit the 3D image data stream to the processing entity; determining a first frame rate to be used by the 3D camera for the first image data stream and a second frame rate to be used by the 3D camera for the second image data stream taking into account the resolution indicator, the transmission bandwidth, and the determined activity; notifying the 3D camera of a scaling parameter determined based on the determined first frame rate and of the second frame rate; 13. The method of claim 1, further comprising:

14. The method of claim 13 , wherein the scaling parameter is determined as a ratio of a frame rate of the first image data stream to a frame rate of the second image data stream in the 3D image data stream.

15. The method of claim 1 , wherein the at least one real-world object comprises a living thing.

16. The method of claim 1 , wherein the 3D image data stream further comprises a third stream comprising audio data.

17. 1. A processing entity configured to transmit 3D image data to an extended reality device over a wireless link, the processing entity comprising: receiving a 3D image data stream, the 3D image data stream including a first image data stream representing a structure of at least one real-world object and a second image data stream representing a visual appearance of the at least one real-world object; adding corresponding transmission time indications to each of the first image data stream and the second image data stream, thereby resulting in a modified stream comprising a modified first stream and a modified second stream; transmitting the modified stream over a wireless network to the extended reality device; receiving from the extended reality device an indication of a processing time for each of the modified first stream and the modified second stream; Initiating adaptation of at least one of the 3D image data stream and the modified stream based on the indication of the processing times of the modified first stream and the modified second stream. A processing entity that operates as follows:

18. 20. The processing entity of claim 17, further operative to determine, at the extended reality device based on the indication of the processing times of the modified first and second streams, that one of the processing times of the modified first and second streams is shorter than the other, and initiating adaptation comprises initiating synchronization of the first and second modified streams at the extended reality device.

19. To initiate said synchronization, reducing the frame rate of one of the modified streams, which is processed slower than the other of the two modified streams; requesting the extended reality device to drop pending portions of the modified data stream that are buffered for display at the extended reality device; requesting a 3D camera configured to generate the received 3D image data stream to adapt a frame rate of one of the first and second image data streams, where a corresponding one of the first or second modified streams is processed at a faster rate on the extended reality device, to a frame rate of the other of the received 3D image data streams, where a corresponding one of the modified streams is processed at a slower rate on the extended reality device. The processing entity of claim 18 further operable to:

20. 20. The processing entity of claim 17, further operative to compare current values ​​of the transmission time indications of the modified first stream and the modified second stream with the received processing time indications of the modified first stream and the modified second stream and to initiate the adaptation based on the comparison.

21. 21. The processing entity of claim 20, further operative to generate a first difference between a current value of the transmission time indication of the modified first stream and the received indication of the processing time of the modified first stream, generate a second difference between the current value of the transmission time indication of the modified second stream and the received indication of the processing time of the modified second stream, and initiate the adaptation based on the first difference and the second difference.

22. 22. The processing entity of claim 21, further operative to reduce a transmission rate of the modified stream transmitted to the extended reality device if at least one of the first difference and the second difference is greater than a first time interval but less than a second time interval.

23. 23. A processing entity as described in claim 21 or 22, further operative to, if at least one of the first difference and the second difference is greater than a second time interval, ask the extended reality device to drop pending data stream frames of the modified stream pending for display at the extended reality device, and to transmit a current portion of the modified stream currently present at the processing entity to the extended reality device.

24. 24. The processing entity of claim 17, wherein the first image data stream comprises at least one of a mesh and a point cloud, and the second image data stream comprises textures of at least one of a mesh and a point cloud, and UV mapping.

25. 25. The processing entity of claim 17, further operative to determine a rendering time based on the processing time, and to transmit the rendering time to a 3D camera configured to generate the 3D image data stream.

26. 26. The processing entity of claim 17, further operative to determine a region of interest in a scene represented in the 3D image data stream in which an increased movement of the at least one real-world object is detected compared to other regions of the 3D image data stream, and to send information regarding the region of interest to a 3D camera configured to generate the 3D image data stream.

27. 27. The processing entity of claim 26, further operative to determine, based on the region of interest and the determined movement of the at least one real-world object, a future region of interest in a scene represented in the 3D image data stream where an increase in the movement of the at least one real-world object is expected, and to transmit information about the future region of interest to the 3D camera.

28. 28. The processing entity of claim 26 or 27, further operative to determine an activity score based on the region of interest reflecting a degree of activity shown in the region of interest, determine a proposed frame rate for the first image data stream based on the activity score, and transmit the proposed frame rate to the 3D camera.

29. the 3D image data stream is received over a further wireless network from a 3D camera configured to generate the received 3D image data stream; receiving a resolution indicator from the 3D camera indicative of a resolution of the 3D camera; determining an activity of the at least one real-world object shown in the 3D image data stream; determining a transmission bandwidth of the further wireless network used to transmit the 3D image data stream to the processing entity; determining a first frame rate to be used by the 3D camera for the first image data stream and a second frame rate to be used by the 3D camera for the second image data stream taking into account the resolution indicator, the transmission bandwidth, and the determined activity; notifying the 3D camera of a scaling parameter determined based on the determined first frame rate and of the second frame rate; A processing entity according to any one of claims 17 to 28, operative to:

30. 30. The processing entity of claim 29, further operative to determine the scaling parameter as a ratio of a frame rate of the first image data stream and a frame rate of the second image data stream in the 3D image data stream.

31. The processing entity of claim 17 , wherein the at least one real-world object comprises a living thing.

32. 32. A processing entity according to any one of claims 17 to 31, wherein the 3D image data stream further comprises a third stream comprising audio data.

33. 17. A computer program comprising program code executed by at least one processing unit of a processing entity, the computer program comprising: a processor configured to execute the program code and a processor unit ...

34. 34. A computer readable storage medium comprising a computer program according to claim 33.

Citation Information

Patent Citations

  • System and method for distributing data of three-dimensional shape

    JP2004078511A

  • Decoding frame synchronization before point cloud reconstruction

    JP2022543365A

  • Methods and apparatus for point cloud compression bitstream format

    WO2020060813A1