Real objects anchoring in a scene description
The integration of real object anchor types and detailed information into XR scene descriptions addresses the challenge of accurately representing real objects in AR environments, resulting in enhanced rendering and interaction within XR experiences.
Patent Information
- Application Number
- PCT/EP2024/076520
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-29
- Filing Date
- 2024-09-20
- Publication Date
- 2025-04-03
AI Technical Summary
Current augmented reality (AR) technologies face challenges in effectively anchoring real objects within a scene description, which is essential for immersive XR experiences. Existing solutions lack the ability to accurately represent real objects and their associated data, leading to suboptimal rendering and interaction.
The proposed solution involves generating an extended reality (XR) scene description that includes information about real object anchor types and detailed real object information, such as lighting, external resources, and node information. This data is used to create a more accurate representation of real objects within the XR environment, enabling better rendering and user interaction.
By incorporating detailed real object information into the XR scene description, the solution enhances the rendering of real objects, improves lighting consistency, and enables more realistic interactions between virtual and real objects, thereby enriching the overall XR experience.
Smart Images

Figure EP2024076520_03042025_PF_FP_ABST
Abstract
Description
REAL OBJECTS ANCHORING IN A SCENE DESCRIPTION CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims benefit of European Patent Application No. EP23306635.6, entitled “REAL OBJECTS ANCHORING IN A SCENE DESCRIPTION” and filed September 29, 2023, which is hereby incorporated by reference in its entirety. INCORPORATION BY REFERENCE
[0002] The present application incorporates by reference in their entirety the following applications: International Patent Application Serial No. PCT / EP2023 / 065592, entitled “Real Nodes Extension in Scene Description” and filed June 12, 2023 (“‘592 application”), which claims benefit of European Patent Application Serial No. EP22305885, entitled “Real Nodes Extension in Scene Description” and filed June 17, 2022 (“‘885 application”); and European Patent Application Serial No. EP23306241, entitled “Method of Updating a Time Evolving Scan” and filed July 19, 2023 (“‘241 application”). BACKGROUND
[0003] Augmented reality (AR) is a technology enabling interactive experiences in which the real-world environment is enhanced by virtual content, which may be defined across multiple sensory modalities, including visual, auditory, and haptic modalities. During runtime of an application, virtual content (such as 3D content or an audio file) may be rendered in real-time in a way which is consistent with a user context (which may include an environment, point of view, and / or device). Scene graphs (such as the one proposed by Khronos / glTF and its extensions defined in MPEG Scene Description format) are a way to represent content to be rendered. They may combine a declarative description of a scene structure by linking real-environment objects and virtual objects and / or by linking binary representations of the virtual content. In extended reality (XR) applications, a scene description is used to combine explicit and easy-to-parse descriptions of a scene structure and some binary representations of media content.SUMMARY
[0004] Embodiments described herein include methods that are used in video encoding and decoding (collectively “coding”).
[0005] A first example method in accordance with some embodiments may include: obtaining scene description data for a three-dimensional (3D) scene, wherein the scene description data may include: information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, external resource information, and real object node information; generating an extended reality (XR) scene description using the scene description data; and encoding the generated XR scene description.
[0006] For some embodiments of the first example method, the lighting information may include an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
[0007] For some embodiments of the first example method, the lighting information may include at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
[0008] For some embodiments of the first example method, the external resource information may include an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
[0009] For some embodiments of the first example method, the external resource information may include an array of locations to model representations corresponding to one or more real objects in the 3D scene.
[0010] For some embodiments of the first example method, the real object node information may include an array of indices corresponding to nodes representing a real object.
[0011] Some embodiments of the first example method may further include using the real object anchor type to determine at least a portion of content in the real object detail information.
[0012] For some embodiments of the first example method, the real object anchor type corresponds to lighting information, external resource information, or real object node information.
[0013] For some embodiments of the first example method, the scene description data further may include transformation offset information corresponding to one or more real objects in the 3D scene.
[0014] For some embodiments of the first example method, the scene description data further may include anchor information corresponding to one or more real objects in the 3D scene.
[0015] For some embodiments of the first example method, the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
[0016] For some embodiments of the first example method, the scene description data may include Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
[0017] Some embodiments of the first example method may further include communicating the encoded XR scene description in a data stream.
[0018] For some embodiments of the first example method, the scene description data corresponds to a glTF scene graph.
[0019] For some embodiments of the first example method, the scene description data corresponds to an MPEG-I Scene Description environment.
[0020] A first example method / apparatus in accordance with some embodiments may include a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform any one of the methods listed above.
[0021] A second example method in accordance with some embodiments may include: obtaining, from a data stream, an extended reality (XR) scene description; decoding, from the XR scene description, scene description data for a three-dimensional (3D) scene, wherein the scene description data may include: information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, external resource information, and real object node information; processing the scene description data.
[0022] For some embodiments of the second example method, processing the scene description data may include: determining the external resource information exists; obtaining Universal Resource Name (URN) representation information for at least one real object using the external resource information.
[0023] For some embodiments of the second example method, the lighting information may include an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
[0024] For some embodiments of the second example method, the lighting information may include at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
[0025] For some embodiments of the second example method, the external resource information may include an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
[0026] For some embodiments of the second example method, the external resource information may include an array of locations to model representations corresponding to one or more real objects in the 3D scene.
[0027] For some embodiments of the second example method, the real object node information may include an array of indices corresponding to nodes representing a real object.
[0028] Some embodiments of the second example method may further include using the real object anchor type to determine at least a portion of content in the real object detail information.
[0029] For some embodiments of the second example method, the real object anchor type corresponds to lighting information, external resource information, or real object node information.
[0030] For some embodiments of the second example method, the scene description data further may include transformation offset information corresponding to one or more real objects in the 3D scene.
[0031] For some embodiments of the second example method, the scene description data further may include anchor information corresponding to one or more real objects in the 3D scene.
[0032] For some embodiments of the second example method, the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
[0033] For some embodiments of the second example method, the scene description data may include Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
[0034] For some embodiments of the second example method, the scene description data corresponds to a glTF scene graph.
[0035] For some embodiments of the second example method, the scene description data corresponds to an MPEG-I Scene Description environment.
[0036] A second example method / apparatus in accordance with some embodiments may include a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform any one of the methods listed above.
[0037] A third example apparatus in accordance with some embodiments may include at least one processor configured to perform any one of the methods listed above.
[0038] A fourth example apparatus in accordance with some embodiments may include a computer- readable medium storing instructions for causing one or more processors to perform any one of the methods listed above.
[0039] A fifth example apparatus in accordance with some embodiments may include at least one processor and at least one non-transitory computer-readable medium storing instructions for causing the at least one processor to perform any one of the methods listed above.
[0040] An example computer-readable medium in accordance with some embodiments may store a scene description file generated according to any one of the methods listed above.
[0041] An example signal in accordance with some embodiments may include a scene description file generated according to any one of the methods listed above.
[0042] In additional embodiments, encoder and decoder apparatus are provided to perform the methods described herein. An encoder or decoder apparatus may include a processor configured to perform the methods described herein. The apparatus may include a computer-readable medium (e.g. a non-transitory medium) storing instructions for performing the methods described herein. In some embodiments, a computer-readable medium (e.g. a non-transitory medium) stores a video encoded using any of the methods described herein.
[0043] One or more of the present embodiments also provide a computer readable storage medium having stored thereon instructions for performing bi-directional optical flow, encoding or decoding video data according to any of the methods described above. The present embodiments also provide a computer readable storage medium having stored thereon a bitstream generated according to the methods described above. The present embodiments also provide a method and apparatus for transmitting the bitstream generated according to the methods described above. The present embodiments also provide a computer program product including instructions for performing any of the methods described. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] FIG.1A is a schematic side view illustrating an example waveguide display that may be used with extended reality (XR) applications according to some embodiments.
[0045] FIG.1B is a schematic side view illustrating an example alternative display type that may be used with extended reality applications according to some embodiments.
[0046] FIG.1C is a schematic side view illustrating an example alternative display type that may be used with extended reality applications according to some embodiments.
[0047] FIG.1D is a system diagram illustrating an example set of interfaces for a system according to some embodiments.
[0048] FIG.1E is a system diagram illustrating an example set of interfaces for a scene description (stored as an item in glTF.json), three video tracks, an audio track, and a JSON patch update track in an ISOBMFF file according to some embodiments.
[0049] FIG.2 is a system diagram illustrating an example set of interfaces for an MPEG-I node hierarchy supporting elements of scene interactivity according to some embodiments.
[0050] FIG. 3A is a schematic illustration showing an example AR anchoring according to some embodiments.
[0051] FIG. 3B is a system diagram illustrating an example set of interfaces for an AR anchor implementation according to some embodiments.
[0052] FIG.4 is a process diagram illustrating an example single AR anchoring in a glTF-based scene graph according to some embodiments.
[0053] FIG.5 is a process diagram illustrating an example multiple AR anchoring in a glTF-based scene graph according to some embodiments.
[0054] FIG. 6A is a schematic perspective view illustrating an example mixed reality environment according to some embodiments.
[0055] FIG. 6B is a schematic perspective view illustrating an example mixed reality environment according to some embodiments.
[0056] FIG. 7 is a flowchart illustrating an example process for encoding an extended reality scene description according to some embodiments.
[0057] FIG. 8 is a flowchart illustrating an example process for decoding an extended reality scene description according to some embodiments.
[0058] The entities, connections, arrangements, and the like that are depicted in—and described in connection with—the various figures are presented by way of example and not by way of limitation. As such, any and all statements or other indications as to what a particular figure “depicts,” what a particular element or entity in a particular figure “is” or “has,” and any and all similar statements—that may in isolation and out of context be read as absolute and therefore limiting—may only properly be read as being constructively preceded by a clause such as “In at least one embodiment, ….” For brevity and clarity of presentation, this implied leading clause is not repeated ad nauseum in the detailed description. DETAILED DESCRIPTION
[0059] FIG.1A is a schematic side view illustrating an example waveguide display that may be used with extended reality (XR) applications according to some embodiments. An image is projected by an image generator 102. The image generator 102 may use one or more of various techniques for projecting an image. For example, the image generator 102 may be a laser beam scanning (LBS) projector, a liquid crystal display(LCD), a light-emitting diode (LED) display (including an organic LED (OLED) or micro LED (µLED) display), a digital light processor (DLP), a liquid crystal on silicon (LCoS) display, or other type of image generator or light engine.
[0060] Light representing an image 112 generated by the image generator 102 is coupled into a waveguide 104 by a diffractive in-coupler 106. The in-coupler 106 diffracts the light representing the image 112 into one or more diffractive orders. For example, light ray 108, which is one of the light rays representing a portion of the bottom of the image, is diffracted by the in-coupler 106, and one of the diffracted orders 110 (e.g. the second order) is at an angle that is capable of being propagated through the waveguide 104 by total internal reflection. The image generator 102 displays images as directed by a control module 124, which operates to render image data, video data, point cloud data, or other displayable data.
[0061] At least a portion of the light 110 that has been coupled into the waveguide 104 by the diffractive in-coupler 106 is coupled out of the waveguide by a diffractive out-coupler 114. At least some of the light coupled out of the waveguide 104 replicates the incident angle of light coupled into the waveguide. For example, in the illustration, out-coupled light rays 116a, 116b, and 116c replicate the angle of the in-coupled light ray 108. Because light exiting the out-coupler replicates the directions of light that entered the in-coupler, the waveguide substantially replicates the original image 112. A user’s eye 118 can focus on the replicated image.
[0062] In the example of FIG.1A, the out-coupler 114 out-couples only a portion of the light with each reflection allowing a single input beam (such as beam 108) to generate multiple parallel output beams (such as beams 116a, 116b, and 116c). In this way, at least some of the light originating from each portion of the image is likely to reach the user’s eye even if the eye is not perfectly aligned with the center of the out- coupler. For example, if the eye 118 were to move downward, beam 116c may enter the eye even if beams 116a and 116b do not, so the user can still perceive the bottom of the image 112 despite the shift in position. The out-coupler 114 thus operates in part as an exit pupil expander in the vertical direction. The waveguide may also include one or more additional exit pupil expanders (not shown in FIG.1A) to expand the exit pupil in the horizontal direction.
[0063] In some embodiments, the waveguide 104 is at least partly transparent with respect to light originating outside the waveguide display. For example, at least some of the light 120 from real-world objects (such as object 122) traverses the waveguide 104, allowing the user to see the real-world objects while using the waveguide display. As light 120 from real-world objects also goes through the diffraction grating 114, there will be multiple diffraction orders and hence multiple images. To minimize the visibility of multiple images, it is desirable for the diffraction order zero (no deviation by 114) to have a great diffraction efficiencyfor light 120 and order zero, while higher diffraction orders are lower in energy. Thus, in addition to expanding and out-coupling the virtual image, the out-coupler 114 is preferably configured to let through the zero order of the real image. In such embodiments, images displayed by the waveguide display may appear to be superimposed on the real world.
[0064] FIG.1B is a schematic side view illustrating an example alternative display type that may be used with extended reality applications according to some embodiments. In an XR head-mounted display device 130, a control module 132 controls a display 134, which may be an LCD, to display an image. The head- mounted display includes a partly-reflective surface 136 that reflects (and in some embodiments, both reflects and focuses) the image displayed on the LCD to make the image visible to the user. The partly-reflective surface 136 also allows the passage of at least some exterior light, permitting the user to see their surroundings.
[0065] FIG.1C is a schematic side view illustrating an example alternative display type that may be used with extended reality applications according to some embodiments. In an XR head-mounted display device 140, a control module 142 controls a display 144, which may be an LCD, to display an image. The image is focused by one or more lenses of display optics 146 to make the image visible to the user. In the example of FIG.1C, exterior light does not reach the user’s eyes directly. However, in some such embodiments, an exterior camera 148 may be used to capture images of the exterior environment and display such images on the display 144 together with any virtual content that may also be displayed.
[0066] The embodiments described herein are not limited to any particular type or structure of XR display device.
[0067] FIG.1D is a system diagram illustrating an example set of interfaces for a system according to some embodiments. An extended reality display device, together with its control electronics, may be implemented using a system such as the system of FIG.1D. System 150 can be embodied as a device including the various components described below and is configured to perform one or more of the aspects described in this document. Examples of such devices, include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 150, singly or in combination, can be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 150 are distributed across multiple ICs and / or discrete components. In various embodiments, the system 150 is communicatively coupled to one or more other systems, or other electronic devices, via, for example, a communications bus or through dedicated input and / or output ports.In various embodiments, the system 1000 is configured to implement one or more of the aspects described in this document.
[0068] The system 150 includes at least one processor 152 configured to execute instructions loaded therein for implementing, for example, the various aspects described in this document. Processor 152 may include embedded memory, input output interface, and various other circuitries as known in the art. The system 150 includes at least one memory 154 (e.g., a volatile memory device, and / or a non-volatile memory device). System 150 may include a storage device 158, which can include non-volatile memory and / or volatile memory, including, but not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), flash, magnetic disk drive, and / or optical disk drive. The storage device 158 can include an internal storage device, an attached storage device (including detachable and non-detachable storage devices), and / or a network accessible storage device, as non-limiting examples.
[0069] System 150 includes an encoder / decoder module 156 configured, for example, to process data to provide an encoded video or decoded video, and the encoder / decoder module 156 can include its own processor and memory. The encoder / decoder module 156 represents module(s) that can be included in a device to perform the encoding and / or decoding functions. As is known, a device can include one or both of the encoding and decoding modules. Additionally, encoder / decoder module 156 can be implemented as a separate element of system 150 or can be incorporated within processor 152 as a combination of hardware and software as known to those skilled in the art.
[0070] Program code to be loaded onto processor 152 or encoder / decoder 156 to perform the various aspects described in this document can be stored in storage device 158 and subsequently loaded onto memory 154 for execution by processor 152. In accordance with various embodiments, one or more of processor 152, memory 154, storage device 158, and encoder / decoder module 156 can store one or more of various items during the performance of the processes described in this document. Such stored items can include, but are not limited to, the input video, the decoded video or portions of the decoded video, the bitstream, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.
[0071] In some embodiments, memory inside of the processor 152 and / or the encoder / decoder module 156 is used to store instructions and to provide working memory for processing that is needed during encoding or decoding. In other embodiments, however, a memory external to the processing device (for example, the processing device can be either the processor 152 or the encoder / decoder module 152) is usedfor one or more of these functions. The external memory can be the memory 154 and / or the storage device 158, for example, a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, an external non-volatile flash memory is used to store the operating system of, for example, a television. In at least one embodiment, a fast external dynamic volatile memory such as a RAM is used as working memory for video coding and decoding operations, such as for MPEG-2 (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also referred to as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard being developed by JVET, the Joint Video Experts Team).
[0072] The input to the elements of system 150 can be provided through various input devices as indicated in block 172. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, over the air by a broadcaster, (ii) a Component (COMP) input terminal (or a set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and / or (iv) a High Definition Multimedia Interface (HDMI) input terminal. Other examples, not shown in FIG.1C, include composite video.
[0073] In various embodiments, the input devices of block 172 have associated respective input processing elements as known in the art. For example, the RF portion can be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a band of frequencies), (ii) downconverting the selected signal, (iii) band-limiting again to a narrower band of frequencies to select (for example) a signal frequency band which can be referred to as a channel in certain embodiments, (iv) demodulating the downconverted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets. The RF portion of various embodiments includes one or more elements to perform these functions, for example, frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion can include a tuner that performs various of these functions, including, for example, downconverting the received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF portion and its associated input processing element receives an RF signal transmitted over a wired (for example, cable) medium, and performs frequency selection by filtering, downconverting, and filtering again to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements performing similar or different functions. Addingelements can include inserting elements in between existing elements, such as, for example, inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna.
[0074] Additionally, the USB and / or HDMI terminals can include respective interface processors for connecting system 150 to other electronic devices across USB and / or HDMI connections. It is to be understood that various aspects of input processing, for example, Reed-Solomon error correction, can be implemented, for example, within a separate input processing IC or within processor 152 as necessary. Similarly, aspects of USB or HDMI interface processing can be implemented within separate interface ICs or within processor 152 as necessary. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 152, and encoder / decoder 156 operating in combination with the memory and storage elements to process the datastream as necessary for presentation on an output device.
[0075] Various elements of system 150 can be provided within an integrated housing, Within the integrated housing, the various elements can be interconnected and transmit data therebetween using suitable connection arrangement 174, for example, an internal bus as known in the art, including the Inter- IC (I2C) bus, wiring, and printed circuit boards.
[0076] The system 150 includes communication interface 160 that enables communication with other devices via communication channel 162. The communication interface 160 can include, but is not limited to, a transceiver configured to transmit and to receive data over communication channel 162. The communication interface 160 can include, but is not limited to, a modem or network card and the communication channel 162 can be implemented, for example, within a wired and / or a wireless medium.
[0077] Data is streamed, or otherwise provided, to the system 150, in various embodiments, using a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal of these embodiments is received over the communications channel 162 and the communications interface 160 which are adapted for Wi-Fi communications. The communications channel 162 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet for allowing streaming applications and other over-the-top communications. Other embodiments provide streamed data to the system 150 using a set-top box that delivers the data over the HDMI connection of the input block 172. Still other embodiments provide streamed data to the system 150 using the RF connection of the input block 172. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, for example a cellular network or a Bluetooth network.
[0078] The system 150 can provide an output signal to various output devices, including a display 176, speakers 178, and other peripheral devices 180. The display 176 of various embodiments includes one or more of, for example, a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 176 can be for a television, a tablet, a laptop, a cell phone (mobile phone), or other device. The display 176 can also be integrated with other components (for example, as in a smart phone), or separate (for example, an external monitor for a laptop). The other peripheral devices 180 include, in various examples of embodiments, one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disk player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 180 that provide a function based on the output of the system 150. For example, a disk player performs the function of playing the output of the system 150.
[0079] In various embodiments, control signals are communicated between the system 150 and the display 176, speakers 178, or other peripheral devices 180 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communications protocols that enable device-to-device control with or without user intervention. The output devices can be communicatively coupled to system 1000 via dedicated connections through respective interfaces 164, 166, and 168. Alternatively, the output devices can be connected to system 150 using the communications channel 162 via the communications interface 160. The display 176 and speakers 178 can be integrated in a single unit with the other components of system 150 in an electronic device such as, for example, a television. In various embodiments, the display interface 164 includes a display driver, such as, for example, a timing controller (T Con) chip.
[0080] The display 176 and speaker 178 can alternatively be separate from one or more of the other components, for example, if the RF portion of input 172 is part of a separate set-top box. In various embodiments in which the display 176 and speakers 178 are external components, the output signal can be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs.
[0081] The system 150 may include one or more sensor devices 168. Examples of sensor devices that may be used include one or more GPS sensors, gyroscopic sensors, accelerometers, light sensors, cameras, depth cameras, microphones, and / or magnetometers. Such sensors may be used to determine information such as user’s position and orientation. Where the system 150 is used as the control module for an extended reality display (such as control modules 124, 132), the user’s position and orientation may be used in determining how to render image data such that the user perceives the correct portion of a virtual object or virtual scene from the correct point of view. In the case of head-mounted display devices, the position and orientation of the device itself may be used to determine the position and orientation of the user for the purpose of rendering virtual content. In the case of other display devices, such as a phone, a tablet, acomputer monitor, or a television, other inputs may be used to determine the position and orientation of the user for the purpose of rendering content. For example, a user may select and / or adjust a desired viewpoint and / or viewing direction with the use of a touch screen, keypad or keyboard, trackball, joystick, or other input. Where the display device has sensors such as accelerometers and / or gyroscopes, the viewpoint and orientation used for the purpose of rendering content may be selected and / or adjusted based on motion of the display device.
[0082] The embodiments can be carried out by computer software implemented by the processor 152 or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. The memory 154 can be of any type appropriate to the technical environment and can be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 152 can be of any type appropriate to the technical environment, and can encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples. Scene Description Framework for XR
[0083] In accordance with some embodiments, the present application generally relates to the domain of rendering of extended reality scene description and extended reality rendering. The present document is also understood in the context of the formatting and the playing of extended reality applications when rendered on end-user devices such as mobile devices or Head-Mounted Displays (HMD).
[0084] In XR applications, a scene description is used to combine explicit and easy-to-parse description of a scene structure and some binary representations of media content.
[0085] In time-based media streaming, the scene description itself can be time-evolving to provide the relevant virtual content for each sequence of a media stream. For instance, for advertising purpose, a virtual bottle can be displayed during a video sequence where people are drinking.
[0086] This kind of behavior can be achieved by relying on the framework defined in the Scene Description for MPEG media document, Information technology – Coded representation of immersive media – Part14: Scene Description for MPEG media, ISO / IEC DIS 23090-14 :2021 (E). A scene update mechanism based on the JSON Patch protocol as defined in IETF RFC 6902 may be used to synchronize virtual content to MPEG media streams.
[0087] FIG.1E is a system diagram illustrating an example set of interfaces for a scene description (stored as an item in glTF.json), three video tracks, an audio track, and a JSON patch update track in an ISOBMFF file according to some embodiments.
[0088] Although the MPEG-I Scene Description framework ensures that the timed media and the corresponding relevant virtual content are available at any time, it does not provide a description of how a user can interact with the scene objects at runtime for immersive XR experiences. Hence, there is no support of user specific XR experiences for consuming the immersive media.
[0089] Example embodiments as described herein may be used to provide a scene description that includes a virtual object or light source but that does not necessarily display or render the virtual object or light source even if available. In some embodiments, one or more of the following aspects may be considered in determining whether to display a virtual object or light source.
[0090] A spatial aspect may be considered in determining whether to display a virtual object or light source. For example, if the user environment is not suited (e.g. the user is too far from the rendered timed media’s location) or if the user is not looking toward the right direction, or if the virtual object should be displayed on a user-specific area (e.g. above his left hand which is not yet detected), then the virtual object or light source may not be displayed.
[0091] A temporal aspect may be considered in determining whether to display a virtual object or light source. For example, if the user is not yet ready or wants to trigger himself the display of the object (e.g. using a specific gesture), the virtual object or light source may not be displayed until the appropriate trigger is detected.
[0092] In some embodiments, it is specified in the scene description which objects or light sources the user is allowed to manipulate or to interact with through potential haptic feedbacks. Runtime Interactivity
[0093] FIG.2 is a system diagram illustrating an example set of interfaces for an MPEG-I node hierarchy supporting elements of scene interactivity according to some embodiments. In accordance with some embodiments, in addition to a node tree 200,, behavior metadata items (herein called “behaviors”) are added to the scene description. In example embodiments, the time-evolving scene description is augmented by adding information identifying behaviors. These behaviors may be related to pre-defined virtual objects on which runtime interactivity is allowed for user specific XR experiences.
[0094] In some embodiments, these behaviors are time-evolving. In such embodiments, the behaviors may be updated through the already-existing scene description update mechanism.
[0095] In example embodiments, a behavior is characterized by one or more of the following properties: ^ One or more triggers defining the conditions to be met for activation. ^ A trigger control parameter defining the logical operations between the defined triggers. ^ Actions to be implemented in response to the activation of the triggers. ^ An action control parameter defining the order of execution of the defined actions. ^ A priority number enabling the selection of the behavior of highest priority in the case of concurrence of several behaviors on the same virtual object at the same time. ^ An optional interrupt action to specify how to terminate this behavior when the behavior is no longer defined in a newly received scene update. For instance, a behavior is no longer defined if the related object has been removed or if the behavior is no longer relevant for this current media (e.g. audio or video) sequence.
[0096] With the addition of these behaviors, time-dependent user interactivity in immersive content for XR experiences may be defined.
[0097] When a second scene description is received, some of the behaviors of the first scene description may be “on-going”, that is they are triggered, and their actions are running. The second scene description may be provided as update metadata, that is metadata describing the differences between the first scene description and the second description. The second scene description includes a node tree describing objects that may be common or different than objects of the first scene descriptions. Objects of the node tree of the first scene description may be no longer present in the second description. If the objects related to the running actions of the on-going behaviors are missing in the second scene description, then, these on-going behaviors are no longer appliable. The same way, if an on-going behavior is not defined in the second description, the on-going behavior is no longer appliable. The interrupt action field describes how to correctly interrupt the running actions on the on-going behavior.
[0098] In XR applications, a scene description is used to combine explicit and easy-to-parse description of a scene structure and some binary representations of media content. User Real Environment and AR Anchoring
[0099] FIG. 3A is a schematic illustration showing an example AR anchoring according to some embodiments. FIG. 3B is a system diagram illustrating an example set of interfaces for an AR anchor implementation according to some embodiments.
[0100] In Augmented Reality (AR) experiences, virtual content may be inserted into a user real environment using optical or video-see through XR devices. Knowledge of a user’s real environment may beobtained from sensor data using XR spatial computing functions such as Simultaneous Localization And Mapping (SLAM) for spatial mapping, such as creating a map of a surrounding area, and localization, such as establishing the pose of users and objects within that space, 3D reconstruction and semantic perception.
[0101] To establish a pose of virtual objects in a user’s real environment, the concept of AR anchoring has been defined based on trackable and anchor entities. A trackable is a model of an element of the real world for which features are available and / or may be extracted. Each trackable provides a local reference space in which an anchor pose may be expressed. An anchor corresponds to a real-world pose, identified using one or more trackables. Each anchor provides a local reference space in which a pose may be expressed. This local reference space is derived from the trackable local reference space using a pre-defined 3D transformation.
[0102] Trackable and anchor entities are mentioned in the requirements document, ETSI Group Specification (GS) Augmented Reality Framework (ARF) Interoperability Requirements for AR Components, Systems, and Services Part 2: World Storage and AR Authoring Functions, ETSI, v.1.1.1 (August 2021) (“ETSI GS ARF 004-2”). A typical example of AR anchor implementation 300, 350 within ETSI ARF is shown in FIGs.3A and 3B.
[0103] Each anchor 302, 304, 352, 354 (called a world anchor in FIG.3B) is linked to each trackable 306, 308, 310, 356, 358, 360 to be used for computing the pose of the associated world anchor in the real world. The first AR asset 312, 362 (the gauge of FIGs.3A and 3B) may be triggered only if trackable T-0X (306, 356) is detected. The second AR asset 314, 364 (the word “Online”) may be triggered by any of the 3 trackables (IDs: T-0X, T-0Y, and T-0Z) 306, 308, 310, 356, 358, 360 or a combination of them.
[0104] This hierarchy of trackables and world anchors may be expressed with a world graph and represents real world knowledge in the world representation sub-function. FIG.3A shows what these AR assets may look like in the real world, while FIG.3B shows a world graph expressing spatial relationships between, for example, trackables, anchors, and AR assets. AR Anchoring in MPEG-I Scene Description
[0105] FIG.4 is a process diagram illustrating an example single AR anchoring in a glTF-based scene graph according to some embodiments. FIG.5 is a process diagram illustrating an example multiple AR anchoring in a glTF-based scene graph according to some embodiments.
[0106] The MPEG-I Scene Description specification currently specifies support for AR anchoring in a Khronos glTF-based scene description file. See the glTF Specification, version 2.0, KHRONOS 3D FORMATS WORKING GROUP (2021) (“glTF Specification”). The input contribution, Hirtzlin, Patrice, et al., [SD] EE7 – ARAnchoring in Scene Graph, ISO / IEC JTC 1 / SC 29 / WG 3 m59958 (July 2022) (“AR Anchoring in Scene Graph”), proposed a method to support trackable objects and anchor objects within a glTF scene graph. Virtual assets take benefit from inherent spatial relationships between the graph nodes as illustrated in FIGs. 4 (single AR anchoring for a glTF-based scene 400) and 5 (multiple AR anchoring for a glTF-based scene 500).
[0107] While the MPEG-I Scene Description specification takes the perspective that an anchor is a root node, such a situation may occur in which an anchor is not a root node for some embodiments outside an MPEG-I Scene Description environment. In such a situation, the “parent” node is not considered for spatial positioning once a related trackable is detected.
[0108] The representation of real objects may be used in an XR environment. Such representations may be used in a wide range of applications, such as, for example, to help calculate a coherent lighting. See On the Support of Coherent Lighting, ISO / IEC JTC 1 / SC 29 / WG 3 m63093 (“Coherent Lighting”). Another example includes getting a mesh segmented scene to help with occlusions and collisions. See the ‘241 application.
[0109] The ‘592 application discusses a node array at the scene and / or node level and an extension to a node, which allows a node to inherit the Transform Rotation Scale (TRS). See the ‘241 application.
[0110] In the MPEG_lights_texture_based extension, there is a “nature” flag, which indicates whether lighting information corresponds to a physical light, a virtual light, both or unknown. Such a light may be referenced at the anchor object level as an index.
[0111] As understood, there is currently no way to express an external representation of real objects and their eventual associated data that are not described in a glTF file. Furthermore, in view of the specification, The OpenXR Specification, Khronos Group (2022) (“OpenXR Specification”), there needs to be a way to anchor this data in a reference space.
[0112] For example, another (non-glTF) file format may be used to import a scan of a real room or to import lighting data. Additionally, using such external representations may reduce file sizes by using external references instead of embedding files directly into a glTF file. For example, in the case in which someone does a scan of a building in any 3D format, the glTF may provide a URN to that particular file. The application, for some embodiments, handles file compatibility with the application.
[0113] The OpenXR Specification provides cross-platform access directly into diverse XR device runtimes across multiple platforms. The input contribution, Hirtzlin, Patrice, et al., [SD] EE7 – AR Anchoring in SceneGraph, ISO / IEC JTC 1 / SC 29 / WG 3 m59958 (July 2022) (“AR Anchoring in Scene Graph”), proposed a method to support trackable objects and anchor objects within a glTF scene graph.
[0114] The management of representations of real objects (e.g., real and / or virtual, a user being a real object) is a technical challenge because, for example, real objects may be processed differently for rendering. As understood, a scene description lacks a way to indicate which objects of a scene are virtual object representations and which objects are representations of an object in a real environment.
[0115] A scene graph may include descriptions of real objects, for example a horizontal plane or surface (that may be a table or a road) and descriptions of virtual objects. A node may describe a virtual car and include an index of a representation of the car, for example an index in an array of 3D meshes. A node also may include an index to an anchor, and that anchor may include a representation of a real object.
[0116] In a scene description, as understood, there is no way to distinguish between real nodes and virtual nodes because both include a 3D representation. There is a need for Information about the nature of a node in the scene description to be provided to a renderer.
[0117] XR applications are various and may apply to different contexts and real or virtual environments. For example, in an industrial XR application, a virtual 3D content item (e.g., a piece A of an engine) is displayed when a reference object (piece B of an engine) is detected in the real environment by a camera rigged on a head mounted display device. The 3D content item is positioned in the real-world with a position (or translation for some embodiments), a rotation, and a scale defined relative to the detected reference object. In the same way, actions on virtual objects may be performed when a collision between real or virtual objects is detected, which is a collision between two real objects, two virtual objects, or a real object and a virtual object.
[0118] However, detecting collision (or contacts) between real or virtual objects and rendering realistic reactions of virtual objects requires the use of a physics engine that is expansive in terms of memory and processing resources. So, a scene description should strive to accurately describe the different kinds of behaviors linked to collisions in order to optimize the use of a physics engine. Such an XR scene description format is provided herein.
[0119] Real assets, which are representations of real objects, may be used to heighten an XR experience. For example, the scan of a room may allow the management of collisions between virtual objects and real objects. This also may be used for rendering purposes, such as, not rendering real objects with a see-through XR device or, for example, ensuring coherent lighting between real and virtual objects, including shadow management.
[0120] A scene description generated in accordance with some embodiments allows the rendering system to estimate the shadows on real objects in order to generate a consistent shadow for a virtual object. In such an example, it is key for the rendering system to distinguish between real and virtual objects of the extended reality scene.
[0121] In accordance with some embodiments, a scene description may include information about nodes comprising a representation of real objects in the scene to obtain a rendering close to reality. In some embodiments, the scene description may include an array of real nodes at the scene level.
[0122] An AR scene with a real scan of the environment allows the management of collision between real and virtual world.
[0123] In accordance with some embodiments, the “Real Node” attribute provides information to the renderer to manage the visibility of real objects. In an AR scene, the lighting can be very important. It allows to have a consistent management of shadows for virtual objects. Different cases have to be taken into account to compute the output of an illumination shader. Output of the illumination shader provides the color of the pixels of the final composed image and its computation differs depending on whether the pixel belongs to an un-shadowed real object, a real object in the shadow cast by a real surface, a real object in the shadow cast by a virtual surface, an un-shadowed virtual object, or a shadowed virtual object. For some embodiments, the “illumination” is more of a function inside a fragment shader that may be used to determine lighting. Such a fragment shader may be used to provide the color for pixels in a (final) composed image.
[0124] The “Real Node” attribute provides the necessary information to the renderer, so shadows are not generated for real objects because they already exist. For some embodiments, shadows are determined for every object (or most objects for some embodiments) in the scene, including "real node" flagged objects. As such, real object shadows may be determined and how they impact virtual objects. Where shadows already exist on real objects, effectively, those shadows may not be applied to the scene.
[0125] In AR framework, real lights are materialized through virtual lights to illuminate virtual objects for consistent light rendering. This “real node” attribute may be used regarding the possible control of the lights.
[0126] On the rendering side, the application, during runtime, iterates at scene level and on each defined node. The information contained in the scene description (collision, virtual lights) and the information obtained from the application is used differently by the renderer.
[0127] In some embodiments, the scene description may include, at the scene level a list of virtual objects. Thus, by parsing this list, the renderer is informed that nodes having a pointer to a 3D model that are listedare virtual objects and the nodes having a pointer to a 3D model not listed are real objects. In this second embodiment, the array attribute is called “VirtualNodes”.
[0128] In some embodiments, the information about the nature of the node is indicated in an attribute at the node level. For example, an attribute “isRealObject” at the node level may be set to 1 when the associated 3D model corresponds to an object of the real environment of the application and to 0 when it corresponds to a virtual object.
[0129] This application augments a scene description by adding information about the representation of real objects to obtain a rendering closer to reality. Such a scene description augmentation allows genericity and support for semantics, such as a nature flag and a real flag. An enumeration may be defined at the anchor object level, which may be extended. Depending on the enumeration type, the following fields may be added for some embodiments: ^ An array of indices for a light array in the MPEG_lights_texture_based field; ^ An array of strings representing real objects; ^ An array of indices of nodes representing real objects; and ^ An array of matrices representing the offset to apply to each real objects.
[0130] The application is described within the context of the MPEG-I Scene Description using the Khronos glTF extension mechanism to support additional scene description features.
[0131] This application adds an enumeration, realAnchoredObjectType, which is defined in the “MPEG_anchor” extension at the root level. For some embodiments, an array for a Uniform Resource Name (URN) is used at the root level, and an anchor object may reference this array by using an array of indices. Tables 1 and 2 provide further details regarding these operations.
[0132] Table 1 provides an enumeration at the anchor object level in which the enumeration has 3 different real-world anchored object types: REAL_LIGHT (equal to 0), REAL_URN (1), and REAL_NODE (2). If an anchored object type is REAL_LIGHT, then the corresponding anchor structure includes an array with integers corresponding to light elements. If an anchored object type is REAL_URN, then the corresponding anchor structure includes an array of string variables corresponding to URN elements. Such string variables represent external resources to be loaded into the scene. If an anchored object type is REAL_NODE, then the corresponding anchor structure includes an array with integers that point to the indices in the nodes array that correspond to a real object. At the bottom of Table 1, there is a transformation offsets array. This array is defined outside the anchored object type structures. The transformation offsets array is a 4x4 TransformRotation Scale (TRS) matrix. This matrix is used to indicate an offset between the real-world object and the anchor local space origin. The number of TRS matrices is equal to the number of real-world objects to be anchored. Parameter Name Type Mandatory Default Description / Optional Value realAnchoredObjectType enumeration O REAL_LIGHT The type of real object for an anchor may have vales of: REAL_LIGHT = 0, REAL_URN = 1, and REAL_NODE = 2. If(realAnchoredObjectType==REAL_LIGHT) { light_indices Array O N / A Indices to items in the lights (Integer) array of the MPEG_lights_texture_based extension } If(realAnchoredObjectType==REAL_URN) { Urns Array(string) O N / A Array of URNs representing external resources to be loaded } If(realAnchoredObjectType==REAL_NODE) { node_indices Array O N / A Point to the indices in the (integer) nodes array that represents a real object }Parameter Name Type Mandatory Default Description / Optional Value transformation_offsets Array(float) O N / A Array of 4x4 TRS matrix to offset the real object with respect to the anchor local space origin. The number of 4x4 matrices is equal to the number of other arrays (which is the number of real objects to be anchored). Table 1.
[0133] For some embodiments, an application may load the glTF file at runtime, and, depending on the state of the enumeration realAnchoredObjectType, the application may fetch URNs, may get light indices, and / or may get node indices. For each index, real objects may be placed in the scene, and a check may be performed to make sure such real objects have been loaded properly.
[0134] For some embodiments, a virtual representation of a real object may be placed in a scene. For some embodiments, a geometric mesh matching (or nearly matching) a real object may be placed in a scene. Such a virtual representation or geometric mesh may be placed in the scene for a purpose other than rendering the object, such as for modeling a collision with the object or for lighting purposes, which may include casting shadows on other objects. For some embodiments, an application may handle errors, such as a bad access or a non-existent asset.
[0135] Table 2 provides an example code structure for a scene description. The code structure shown in Table 2 shows 3 nodes and an extension for MPEG anchors. The first anchor (with an index of 0) illustrates an example REAL_URN structure, and the second anchor (with an index of 1) illustrates an example REAL_LIGHT structure. Additionally, the first anchor requires anchoring and uses an index of 0 in the trackables array, while the second anchor requires anchoring and uses an index of 1 in the trackables array.
[0136] The example trackables array in Table 2 only shows detail for index 0, and other indices are not shown. For index 0, the trackables element is type 3, which corresponds to a TRACKABLE_GEOMETRIC type. The geometricConstraint has a value of 0 for this example. The geometricConstraint flag may take one of the following values: HORIZONTAL_PLANE = 0 or VERTICAL_PLANE = 1. Since the geometricConstraint flag has a value of 0 in Table 2, a horizontal plane constraint is applied.
[0137] The example scene is named “Scene” and has 3 nodes. Only the first node is fully described. The first node (with an index of 0) is named “Cube” and uses a mesh index of 0. This first node uses the first anchor with an index of 0. As mentioned above, the first anchor is an example REAL_URN structure. There are 3 transformation_offsets matrices defined for the first anchor structure, which correspond to 3 real objects to be anchored in the scene. For this example, there are 3 string variables that represent locations of external resources to be loaded into the scene: "urn:example:a123,z456 / foo", "urn:example:a123,z456 / bar", and "urn:example:a123,z456 / baz". These three elements may be 3 objects to be loaded and anchored within the scene. This first node also includes a translation array. Node 0 is placed accordingly to the translation matrix, and the real assets are placed relatively to node 0 in which URN matrices are multiplied by the translation matrix of node 0. { "scene": 0, "scenes": [ { "name": "Scene", "nodes": [ 0, 1, 2 ], "extensions": { "MPEG_anchor": { "anchors": [ { "trackable": 0, "requiresAnchoring": true, "realAnchoredObjectType": 1, "Urns": [ "urn:example:a123,z456 / foo", "urn:example:a123,z456 / bar", "urn:example:a123,z456 / baz" ], "transformation_offsets": [[ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ] }, { "trackable": 1, "requiresAnchoring": true, "realAnchoredObjectType": 0, "light_indices": [0] }, { "trackable": 2, "requiresAnchoring": true, "realAnchoredObjectType": 2, "node_indices": [0,1] },], "trackables": [ { "type": 3, "geometricConstraint": 0 }, { "type": 3, "geometricConstraint": 0 }, { "type": 4, "markerNode": 2 }, ] } } } ], "nodes": [ { "mesh": 0, "name": "Cube", "translation": [ 0.045713424682617190, 0.028778553009033203, 0.011459112167358398 ], "extensions": { "MPEG_anchor": { "anchor": 0 } }},. . . ] } Table 2.
[0138] A glTF file may provide the interactivity needed. Such a glTF file may not provide (or embed) real scan data. For example, such real scan data may be a large amount of data. Additionally, such real scan data may be located elsewhere, such as on a city’s server. A Uniform Resource Name (URN) may be a good candidate to use for expressing the need to load external data.
[0139] FIG. 6A is a schematic perspective view illustrating an example mixed reality environment according to some embodiments. FIG.6B is a schematic perspective view illustrating an example mixed reality environment according to some embodiments.
[0140] For example, imagine someone wants to throw one or more balls to a building and wants to see the balls bouncing against the building. In order to superimpose a mesh on a real building, a representation of the real building may be loaded into the scene. Such a representation of the real building may be used for collision purposes but not for rendering the real building. FIG.6A shows an example of a real-world building 602 and a real-world ball 604 in an example mixed reality environment 600. FIG.6B shows a mesh 652 superimposed on the outline of the building and a mesh 654 superimposed on the ball in an example mixed reality environment 650. To add lighting or to superimpose a mesh on a real object, that real object may be represented in the scene. Representations of such real objects also may be stored on a server or other non- local location. The code structure shown in Tables 1 and 2 enables such a methodology.
[0141] MPEG Scene Description may be used for interactive mixed reality (MR / XR) experiences. In an MR / XR experience (and in a scene description file), real and virtual objects may be mixed.
[0142] If a user has a real light source (say, a chandelier or a table lamp), the real light source may be represented in the scene description so that virtual objects may be lit to make them look like they belong in the real environment. Lighting may affect the surface coloration, brightness, and shadows of such virtual objects. If the lighting is not adjusted, the user may notice that the virtual objects look odd, that they are brighter or darker (or have a different warmth) than the user would expect in a given room or environment.
[0143] To support user interactivity with a real (e.g., solid) object and to ensure virtual objects “behave” correctly in the presence of the real object, that object may be represented in the scene description. A user may want to set a virtual flower vase down on a real table. The scene description needs to know the location and dimension and physical properties of that table. A user might hit a virtual tennis ball against a real wall, and so the representation of the real wall in scene description may be used for collision detection and to properly simulate the ball bouncing off the wall. Real objects also may affect the lighting model. For example, to light virtual objects, a lighting model may take into account how light reflects off real objects. Hence, a representation of a real object in a scene description (along with surface properties of that object) may be used for such a purpose.
[0144] For some embodiments, real objects may be specified in a scene by reference (e.g., an array of URNs). This method is an alternate way to specify objects, rather than building a node for the object into the scene description file. This method may be used for objects that are referenced by many scene description files. For example, a statue in a public park may be part of the interactive experiences of many users playing an interactive mixed reality game in that park. The same URN may be reused many times on many different devices, and the URN provides a lightweight description in the scene description file that allows the specifics of the object to be retrieved from a network server.
[0145] FIG.7 is a flowchart illustrating an example process for generating an extended reality scene description according to some embodiments. For some embodiments, an example process 700 may include obtaining 702 scene description data for a three-dimensional (3D) scene. For some embodiments of the example process 700, the scene description data may include information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, external resource information, and real object node information. For some embodiments, the example process 700 may further include generating 704 an extended reality (XR) scene description using the scene description data. For some embodiments, the example process 700 may further include encoding 706 the generated XR scene description.
[0146] FIG. 8 is a flowchart illustrating an example process for decoding an extended reality scene description according to some embodiments. For some embodiments, an example process 800 may include obtaining 802, from a data stream, an extended reality (XR) scene description. For some embodiments, the example process 800 may further include decoding 804, from the XR scene description, scene description data for a three-dimensional (3D) scene. For some embodiments of the example process 800, the scene description data may include information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, externalresource information, and real object node information. For some embodiments, the example process 800 may further include processing 806 the scene description data.
[0147] While the methods and systems in accordance with some embodiments are generally discussed in context of extended reality (XR), some embodiments may be applied to any XR contexts such as, e.g., virtual reality (VR) / mixed reality (MR) / augmented reality (AR) contexts. Also, although the term “head mounted display (HMD)” is used herein in accordance with some embodiments, some embodiments may be applied to a wearable device (which may or may not be attached to the head) capable of, e.g., XR, VR, AR, and / or MR for some embodiments.
[0148] A first example method in accordance with some embodiments may include: obtaining scene description data for a three-dimensional (3D) scene, wherein the scene description data may include: information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, external resource information, and real object node information; generating an extended reality (XR) scene description using the scene description data; and encoding the generated XR scene description.
[0149] For some embodiments of the first example method, the lighting information may include an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
[0150] For some embodiments of the first example method, the lighting information may include at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
[0151] For some embodiments of the first example method, the external resource information may include an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
[0152] For some embodiments of the first example method, the external resource information may include an array of locations to model representations corresponding to one or more real objects in the 3D scene.
[0153] For some embodiments of the first example method, the real object node information may include an array of indices corresponding to nodes representing a real object.
[0154] Some embodiments of the first example method may further include using the real object anchor type to determine at least a portion of content in the real object detail information.
[0155] For some embodiments of the first example method, the real object anchor type corresponds to lighting information, external resource information, or real object node information.
[0156] For some embodiments of the first example method, the scene description data further may include transformation offset information corresponding to one or more real objects in the 3D scene.
[0157] For some embodiments of the first example method, the scene description data further may include anchor information corresponding to one or more real objects in the 3D scene.
[0158] For some embodiments of the first example method, the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
[0159] For some embodiments of the first example method, the scene description data may include Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
[0160] Some embodiments of the first example method may further include communicating the encoded XR scene description in a data stream.
[0161] For some embodiments of the first example method, the scene description data corresponds to a glTF scene graph.
[0162] For some embodiments of the first example method, the scene description data corresponds to an MPEG-I Scene Description environment.
[0163] A first example method / apparatus in accordance with some embodiments may include a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform any one of the methods listed above.
[0164] A second example method in accordance with some embodiments may include: obtaining, from a data stream, an extended reality (XR) scene description; decoding, from the XR scene description, scene description data for a three-dimensional (3D) scene, wherein the scene description data may include: information describing a real object anchor type, and real object detail information, wherein the real object detail information may include at least one of lighting information, external resource information, and real object node information; processing the scene description data.
[0165] For some embodiments of the second example method, processing the scene description data may include: determining the external resource information exists; obtaining Universal Resource Name (URN) representation information for at least one real object using the external resource information.
[0166] For some embodiments of the second example method, the lighting information may include an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
[0167] For some embodiments of the second example method, the lighting information may include at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
[0168] For some embodiments of the second example method, the external resource information may include an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
[0169] For some embodiments of the second example method, the external resource information may include an array of locations to model representations corresponding to one or more real objects in the 3D scene.
[0170] For some embodiments of the second example method, the real object node information may include an array of indices corresponding to nodes representing a real object.
[0171] Some embodiments of the second example method may further include using the real object anchor type to determine at least a portion of content in the real object detail information.
[0172] For some embodiments of the second example method, the real object anchor type corresponds to lighting information, external resource information, or real object node information.
[0173] For some embodiments of the second example method, the scene description data further may include transformation offset information corresponding to one or more real objects in the 3D scene.
[0174] For some embodiments of the second example method, the scene description data further may include anchor information corresponding to one or more real objects in the 3D scene.
[0175] For some embodiments of the second example method, the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
[0176] For some embodiments of the second example method, the scene description data may include Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
[0177] For some embodiments of the second example method, the scene description data corresponds to a glTF scene graph.
[0178] For some embodiments of the second example method, the scene description data corresponds to an MPEG-I Scene Description environment.
[0179] A second example method / apparatus in accordance with some embodiments may include a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform any one of the methods listed above.
[0180] A third example apparatus in accordance with some embodiments may include at least one processor configured to perform any one of the methods listed above.
[0181] A fourth example apparatus in accordance with some embodiments may include a computer- readable medium storing instructions for causing one or more processors to perform any one of the methods listed above.
[0182] A fifth example apparatus in accordance with some embodiments may include at least one processor and at least one non-transitory computer-readable medium storing instructions for causing the at least one processor to perform any one of the methods listed above.
[0183] An example computer-readable medium in accordance with some embodiments may store a scene description file generated according to any one of the methods listed above.
[0184] An example signal in accordance with some embodiments may include a scene description file generated according to any one of the methods listed above.
[0185] This disclosure describes a variety of aspects, including tools, features, embodiments, models, approaches, etc. Many of these aspects are described with specificity and, at least to show the individual characteristics, are often described in a manner that may sound limiting. However, this is for purposes of clarity in description, and does not limit the disclosure or scope of those aspects. Indeed, all of the different aspects can be combined and interchanged to provide further aspects. Moreover, the aspects can be combined and interchanged with aspects described in earlier filings as well.
[0186] The aspects described and contemplated in this disclosure can be implemented in many different forms. While some embodiments are illustrated specifically, other embodiments are contemplated, and the discussion of particular embodiments does not limit the breadth of the implementations. At least one of the aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a bitstream generated or encoded. These and other aspects can be implemented as a method, an apparatus, a computer readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the methods described, and / or a computer readable storage medium having stored thereon a bitstream generated according to any of the methods described.
[0187] In the present disclosure, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “pixel” and “sample” may be used interchangeably, the terms “image,” “picture” and “frame” may be used interchangeably. Usually, but not necessarily, the term “reconstructed” is used at the encoder side while “decoded” is used at the decoder side.
[0188] The terms HDR (high dynamic range) and SDR (standard dynamic range) often convey specific values of dynamic range to those of ordinary skill in the art. However, additional embodiments are also intended in which a reference to HDR is understood to mean “higher dynamic range” and a reference to SDRis understood to mean “lower dynamic range.” Such additional embodiments are not constrained by any specific values of dynamic range that might often be associated with the terms “high dynamic range” and “standard dynamic range.”
[0189] Various methods are described herein, and each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined. Additionally, terms such as “first”, “second”, etc. may be used in various embodiments to modify an element, component, step, operation, etc., such as, for example, a “first decoding” and a “second decoding”. Use of such terms does not imply an ordering to the modified operations unless specifically required. So, in this example, the first decoding need not be performed before the second decoding, and may occur, for example, before, during, or in an overlapping time period with the second decoding.
[0190] Various numeric values may be used in the present disclosure, for example. The specific values are for example purposes and the aspects described are not limited to these specific values.
[0191] Embodiments described herein may be carried out by computer software implemented by a processor or other hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. The processor can be of any type appropriate to the technical environment and can encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non- limiting examples.
[0192] Various implementations involve decoding. “Decoding”, as used in this disclosure, can encompass all or part of the processes performed, for example, on a received encoded sequence in order to produce a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, for example, entropy decoding, inverse quantization, inverse transformation, and differential decoding. In various embodiments, such processes also, or alternatively, include processes performed by a decoder of various implementations described in this disclosure, for example, extracting a picture from a tiled (packed) picture, determining an upsampling filter to use and then upsampling a picture, and flipping a picture back to its intended orientation.
[0193] As further examples, in one embodiment “decoding” refers only to entropy decoding, in another embodiment “decoding” refers only to differential decoding, and in another embodiment “decoding” refers to a combination of entropy decoding and differential decoding. Whether the phrase “decoding process” is intended to refer specifically to a subset of operations or generally to the broader decoding process will be clear based on the context of the specific descriptions.
[0194] Various implementations involve encoding. In an analogous way to the above discussion about “decoding”, “encoding” as used in this disclosure can encompass all or part of the processes performed, for example, on an input video sequence in order to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, for example, partitioning, differential encoding, transformation, quantization, and entropy encoding. In various embodiments, such processes also, or alternatively, include processes performed by an encoder of various implementations described in this disclosure.
[0195] As further examples, in one embodiment “encoding” refers only to entropy encoding, in another embodiment “encoding” refers only to differential encoding, and in another embodiment “encoding” refers to a combination of differential encoding and entropy encoding. Whether the phrase “encoding process” is intended to refer specifically to a subset of operations or generally to the broader encoding process will be clear based on the context of the specific descriptions.
[0196] Various embodiments refer to rate distortion optimization. In particular, during the encoding process, the balance or trade-off between the rate and distortion is usually considered, often given the constraints of computational complexity. The rate distortion optimization is usually formulated as minimizing a rate distortion function, which is a weighted sum of the rate and of the distortion. There are different approaches to solve the rate distortion optimization problem. For example, the approaches may be based on an extensive testing of all encoding options, including all considered modes or coding parameters values, with a complete evaluation of their coding cost and related distortion of the reconstructed signal after coding and decoding. Faster approaches may also be used, to save encoding complexity, in particular with computation of an approximated distortion based on the prediction or the prediction residual signal, not the reconstructed one. A mix of these two approaches can also be used, such as by using an approximated distortion for only some of the possible encoding options, and a complete distortion for other encoding options. Other approaches only evaluate a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a complete evaluation of both the coding cost and related distortion.
[0197] When a figure is presented as a flow diagram, it should be understood that it also provides a block diagram of a corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow diagram of a corresponding method / process.
[0198] The implementations and aspects described herein can be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation offeatures discussed can also be implemented in other forms (for example, an apparatus or program). An apparatus can be implemented in, for example, appropriate hardware, software, and firmware. The methods can be implemented in, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
[0199] Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation”, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout this disclosure are not necessarily all referring to the same embodiment.
[0200] Additionally, this disclosure may refer to “determining” various pieces of information. Determining the information can include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.
[0201] Further, this disclosure may refer to “accessing” various pieces of information. Accessing the information can include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, moving the information, copying the information, calculating the information, determining the information, predicting the information, or estimating the information.
[0202] Additionally, this disclosure may refer to “receiving” various pieces of information. Receiving is, as with “accessing”, intended to be a broad term. Receiving the information can include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, “receiving” is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.
[0203] It is to be appreciated that the use of any of the following “ / ”, “and / or”, and “at least one of”, for example, in the cases of “A / B”, “A and / or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of thefirst and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items as are listed.
[0204] Also, as used herein, the word “signal” refers to, among other things, indicating something to a corresponding decoder. For example, in certain embodiments the encoder signals a particular one of a plurality of parameters for region-based filter parameter selection for de-artifact filtering. In this way, in an embodiment the same parameter is used at both the encoder side and the decoder side. Thus, for example, an encoder can transmit (explicit signaling) a particular parameter to the decoder so that the decoder can use the same particular parameter. Conversely, if the decoder already has the particular parameter as well as others, then signaling can be used without transmitting (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding transmission of any actual functions, a bit savings is realized in various embodiments. It is to be appreciated that signaling can be accomplished in a variety of ways. For example, one or more syntax elements, flags, and so forth are used to signal information to a corresponding decoder in various embodiments. While the preceding relates to the verb form of the word “signal”, the word “signal” can also be used herein as a noun.
[0205] Implementations can produce a variety of signals formatted to carry information that can be, for example, stored or transmitted. The information can include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal can be formatted to carry the bitstream of a described embodiment. Such a signal can be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is known. The signal can be stored on a processor-readable medium.
[0206] We describe a number of embodiments. Features of these embodiments can be provided alone or in any combination, across various claim categories and types. Further, embodiments can include one or more of the following features, devices, or aspects, alone or in any combination, across various claim categories and types: ^ A bitstream or signal that includes one or more of the described syntax elements, or variations thereof. ^ A bitstream or signal that includes syntax conveying information generated according to any of the embodiments described.^ Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal that includes one or more of the described syntax elements, or variations thereof. ^ Creating and / or transmitting and / or receiving and / or decoding according to any of the embodiments described. ^ A method, process, apparatus, medium storing instructions, medium storing data, or signal according to any of the embodiments described.
[0207] Note that various hardware elements of one or more of the described embodiments are referred to as “modules” that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules. As used herein, a module includes hardware (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices) deemed suitable by those of skill in the relevant art for a given implementation. Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the respective module, and it is noted that those instructions could take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and / or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM, ROM, etc.
[0208] Although features and elements are described above in particular combinations, one of ordinary skill in the art will appreciate that each feature or element can be used alone or in any combination with the other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable storage media include, but are not limited to, a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.
Claims
CLAIMS 1. A method comprising: obtaining scene description data for a three-dimensional (3D) scene, wherein the scene description data comprises: information describing a real object anchor type, and real object detail information, wherein the real object detail information comprises at least one of lighting information, external resource information, and real object node information; generating an extended reality (XR) scene description using the scene description data; and encoding the generated XR scene description.
2. The method of claim 1, wherein the lighting information comprises an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
3. The method of any one of claims 1-2, wherein the lighting information comprises at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
4. The method of any one of claims 1-3, wherein the external resource information comprises an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
5. The method of any one of claims 1-4, wherein the external resource information comprises an array of locations to model representations corresponding to one or more real objects in the 3D scene.
6. The method of any one of claims 1-5, wherein the real object node information comprises an array of indices corresponding to nodes representing a real object.
7. The method of any one of claims 1-6, further comprising using the real object anchor type to determine at least a portion of content in the real object detail information.
8. The method of any one of claims 1-7, wherein the real object anchor type corresponds to lighting information, external resource information, or real object node information.
9. The method of any one of claims 1-8, wherein the scene description data further comprises transformation offset information corresponding to one or more real objects in the 3D scene.
10. The method of any one of claims 1-9, wherein the scene description data further comprises anchor information corresponding to one or more real objects in the 3D scene.
11. The method of any one of claims 1-10, wherein the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
12. The method of any one of claims 1-11, wherein the scene description data comprises Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
13. The method of any one of claims 1-12, further comprising communicating the encoded XR scene description in a data stream.
14. The method of any one of claims 1-12, wherein the scene description data corresponds to a glTF scene graph.
15. The method of any one of claims 1-14, wherein the scene description data corresponds to an MPEG-I Scene Description environment.
16. An apparatus comprising: a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform the method of any one of claims 1 through 15.
17. A method comprising: obtaining, from a data stream, an extended reality (XR) scene description; decoding, from the XR scene description, scene description data for a three-dimensional (3D) scene, wherein the scene description data comprises: information describing a real object anchor type, and real object detail information, wherein the real object detail information comprises at least one of lighting information, external resource information, and real object node information; processing the scene description data.
18. The method of claim 17, wherein processing the scene description data comprises: determining the external resource information exists; obtaining Universal Resource Name (URN) representation information for at least one real object using the external resource information.
19. The method of any one of claims 17-18, wherein the lighting information comprises an array of indices corresponding to lighting information for one or more real objects in the 3D scene.
20. The method of any one of claims 17-19, wherein the lighting information comprises at least one of surface coloration, brightness, and shadows of one or more real objects in the 3D scene.
21. The method of any one of claims 17-20, wherein the external resource information comprises an array of Uniform Resource Names (URNs) corresponding to one or more real objects in the 3D scene.
22. The method of any one of claims 17-21, wherein the external resource information comprises an array of locations to model representations corresponding to one or more real objects in the 3D scene.
23. The method of any one of claims 17-22, wherein the real object node information comprises an array of indices corresponding to nodes representing a real object.
24. The method of any one of claims 17-23, further comprising using the real object anchor type to determine at least a portion of content in the real object detail information.
25. The method of any one of claims 17-24, wherein the real object anchor type corresponds to lighting information, external resource information, or real object node information.
26. The method of any one of claims 17-25, wherein the scene description data further comprises transformation offset information corresponding to one or more real objects in the 3D scene.
27. The method of any one of claims 17-26, wherein the scene description data further comprises anchor information corresponding to one or more real objects in the 3D scene.
28. The method of any one of claims 17-27, wherein the scene description data corresponds to at least one real object and at least one virtual object in the 3D scene.
29. The method of any one of claims 17-28, wherein the scene description data comprises Transformation Rotation Scale (TRS) information corresponding to at least one real object in the 3D scene.
30. The method of any one of claims 17-29, wherein the scene description data corresponds to a glTF scene graph.
31. The method of any one of claims 17-30, wherein the scene description data corresponds to an MPEG-I Scene Description environment.
32. An apparatus comprising: a processor; and a non-transitory computer-readable medium storing instructions operative, when executed by the processor, to cause the apparatus to perform the method of any one of claims 17 through 31.
33. An apparatus comprising at least one processor configured to perform the method of any one of claims 1-15 and 17-31.
34. An apparatus comprising a computer-readable medium storing instructions for causing one or more processors to perform the method of any one of claims 1-15 and 17-31.
35. An apparatus comprising at least one processor and at least one non-transitory computer-readable medium storing instructions for causing the at least one processor to perform the method of any one of claims 1-15 and 17-31.
36. A computer-readable medium storing a scene description file generated according to any one of claims 1-15 and 17-31.
37. A signal including a scene description file generated according to any one of claims 1-15 and 17-31.
Citation Information
Patent Citations
Real nodes extension in scene description
WO2023242082A1
Anchoring a scene description to a user environment for streaming immersive media content
WO2022226502A1
EP22305885A
EP23306241A
Cited By
A method and apparatus for describing anchors for immersive audio
WO2026093002A1