Segmented compute compiler and game engine

By splitting the computing configuration between user devices and computing devices, executable files suitable for different devices are generated, which solves the application stability problem caused by link quality fluctuations, achieves energy saving and a consistent user experience, and optimizes the application development process.

CN120883189APending Publication Date: 2025-10-31QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480017748.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-31
Filing Date
2024-02-01
Publication Date
2025-10-31

AI Technical Summary

Technical Problem

Existing technologies cannot effectively solve the problem of link quality fluctuations between devices and the edge, and it is difficult to optimize segmented computing and application development.

Method used

By splitting the computing configuration between user devices and computing devices, leveraging link quality estimation to generate split computing configurations, and generating executables suitable for both user devices and computing devices, the system achieves the splitting of application function sets and provides a split computing compiler and game engine to optimize application development.

Benefits of technology

It enables applications to maintain stable operation even under fluctuating link quality, saves device battery power, provides a consistent user experience, and optimizes developer resources and time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120883189A_ABST
    Figure CN120883189A_ABST
Patent Text Reader

Abstract

The present disclosure provides systems, devices, apparatus, and methods, including computer programs encoded on storage media, for partitioning a compute compiler and a game engine. A processor may obtain an executable file for an application that includes a first set of application functions associated with a UE and a second set of application functions associated with a computing device different from the UE. The processor may obtain an estimated quality of a link between the UE and the computing device. The processor may obtain a split computation configuration between the first set of application functions and the second set of application functions based on the estimated quality of the link. The processor may output an indication of the split computation configuration.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims the benefit of U.S. Provisional Application Serial No. 63 / 490,755, filed March 16, 2023, entitled “SPLIT-COMPUTE COMPILER AND GAME ENGINE,” and U.S. Non-Provisional Patent Application Serial No. 18 / 428,673, filed January 31, 2024, entitled “SPLIT-COMPUTE COMPILER AND GAME ENGINE,” the entire contents of which are expressly incorporated herein by reference. Technical Field

[0003] In summary, this disclosure relates to processing systems, and more specifically, to one or more techniques for graphics processing. Background Technology

[0004] Computing devices typically perform graphics and / or display processing (e.g., utilizing a graphics processing unit (GPU), a central processing unit (CPU), a display processor, etc.) to render and display visual content. Such computing devices can include, for example, computer workstations, mobile phones such as smartphones, embedded systems, personal computers, tablet computers, and video game consoles. A GPU is configured to execute a graphics processing pipeline comprising one or more processing stages that operate together to execute graphics processing commands and output frames. A CPU can control the operation of a GPU by issuing one or more graphics processing commands to the GPU. Modern CPUs are typically capable of executing multiple applications in parallel, where each application may require the GPU to be utilized during execution. A display processor can be configured to convert digital information received from the CPU into analog values ​​and can issue commands to a display panel for displaying visual content. Devices providing content for visual presentation on a display can utilize a CPU, GPU, and / or display processor.

[0005] Current technologies related to segmented computing may not be able to address the quality fluctuations of the link between devices and the edge. Furthermore, current technologies related to application development may not be able to solve segmented computing problems. Improvements are needed in technologies related to segmented computing and application development. Summary of the Invention

[0006] The following provides a brief overview of one or more aspects to offer a basic understanding of such aspects. This overview is not a comprehensive summary of all anticipated aspects, nor is it intended to identify key or essential elements of all aspects, nor to describe the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that follows.

[0007] In one aspect of this disclosure, a method, computer-readable medium, and apparatus are provided at a user equipment (UE). The apparatus includes: a memory; and a processor coupled to the memory, and based on information stored in the memory, the processor is configured to: obtain an executable file for an application including a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE; obtain an estimated quality of a link between the UE and the computing device; based on the estimated quality of the link, obtain a segmented computational configuration between the first set of application functions and the second set of application functions; and output an indication of the segmented computational configuration.

[0008] In one aspect of this disclosure, a method, computer-readable medium, and apparatus at a server are provided. The apparatus includes: a memory; and a processor coupled to the memory, and based on information stored in the memory, the processor is configured to: obtain an executable file for an application including a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a server; obtain an estimated quality of a link between the UE and the server; based on the estimated quality of the link, obtain a segmentation computation configuration between the first set of application functions and the second set of application functions; and output an indication of the segmentation computation configuration.

[0009] In one aspect of this disclosure, a method, computer-readable medium, and apparatus are provided. The apparatus includes: a memory; and a processor coupled to the memory, and based on information stored in the memory, the processor is configured to: obtain source code for an application; decompose the source code into a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a computing device different from the UE, wherein at least one of the first set of application functions or the second set of application functions is associated with the quality of a link between the UE and the computing device; generate a first executable file for the UE based on the first set of application functions, and generate a second executable file for the computing device based on the second set of application functions; and provide the first executable file for the UE and the second executable file for at least one server.

[0010] To achieve the foregoing and related objectives, one or more aspects include the features fully described below and specifically pointed out in the claims. Certain illustrative features of one or more aspects are set forth in detail in the following description and drawings. However, these features indicate only a few of the various ways in which the principles of each aspect may be employed, and this specification is intended to include all such aspects and their equivalents. Attached Figure Description

[0011] Figure 1 This is a block diagram illustrating an example content generation system based on one or more techniques according to this disclosure.

[0012] Figure 2 An example GPU based on one or more technologies according to this disclosure is shown.

[0013] Figure 3 Example images or surfaces of one or more techniques according to this disclosure are shown.

[0014] Figure 4 This is a schematic diagram illustrating examples of wireless communication systems and access networks based on one or more technologies according to this disclosure.

[0015] Figure 5A This is a schematic diagram illustrating an example of a first frame of one or more technologies according to this disclosure.

[0016] Figure 5B This is a schematic diagram illustrating an example of a downlink (DL) channel within a subframe according to one or more techniques of this disclosure.

[0017] Figure 5C This is a schematic diagram illustrating an example of a second frame of one or more technologies according to this disclosure.

[0018] Figure 5D This is a schematic diagram illustrating an example of an uplink (UL) channel within a subframe according to one or more techniques in accordance with this disclosure.

[0019] Figure 6 This is a schematic diagram illustrating examples of base stations and user equipment (UEs) in an access network based on one or more technologies according to this disclosure.

[0020] Figure 7 This is a schematic diagram illustrating the development process of personal computer (PC) executable files and portable executable files for applications based on one or more technologies according to this disclosure.

[0021] Figure 8 This is a schematic diagram illustrating an example UE edge segmentation calculation spectrum according to one or more techniques in accordance with this disclosure.

[0022] Figure 9 This is a schematic diagram illustrating an example of a segmentation computation strategy based on one or more techniques according to this disclosure.

[0023] Figure 10 This is a schematic diagram illustrating an example of the operation points for segmentation calculation according to one or more techniques based on this disclosure.

[0024] Figure 11 This is a schematic diagram illustrating an example of extended reality (XR) media processing shifted between the edge and the UE according to one or more technologies based on this disclosure.

[0025] Figure 12 This is a schematic diagram illustrating another example of XR media processing shifted between the edge and the UE according to one or more techniques in accordance with this disclosure.

[0026] Figure 13 This is a schematic diagram illustrating an example of predicting millimeter-wave (mmW) blocking while an XR application is being executed, based on one or more techniques according to this disclosure.

[0027] Figure 14 This is a schematic diagram illustrating an example of a segmented computational compiler for generating device executables and edge executables according to one or more techniques of this disclosure.

[0028] Figure 15 This is a schematic diagram illustrating an example of a developer's computing device including a segmented computing compiler, based on one or more technologies according to this disclosure.

[0029] Figure 16 This is a schematic diagram illustrating an example of shared game state between the edge and the UE using one or more technologies according to this disclosure.

[0030] Figure 17 This is a schematic diagram illustrating examples of devices, servers, and central application servers based on one or more technologies according to this disclosure.

[0031] Figure 18 This is a schematic diagram illustrating an example of a UE application sharing game state according to one or more technologies based on this disclosure.

[0032] Figure 19 This is a schematic diagram illustrating example aspects of adaptive rate control and adaptive segmentation acceleration control according to one or more techniques of this disclosure.

[0033] Figure 20 This is a call flowchart illustrating example communication between a developer's computing device, a UE, and a server according to one or more technologies based on this disclosure.

[0034] Figure 21 This is a call flowchart illustrating further example communications between a developer's computing device, a UE, and a server, based on one or more technologies according to this disclosure.

[0035] Figure 22 This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0036] Figure 23A This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0037] Figure 23B This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0038] Figure 23C This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0039] Figure 24 This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0040] Figure 25A This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0041] Figure 25B This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0042] Figure 26 This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure.

[0043] Figure 27 This is a flowchart illustrating an example method of graphical processing based on one or more techniques according to this disclosure. Detailed Implementation

[0044] The following description, with reference to the accompanying drawings, provides a more comprehensive overview of various aspects of the systems, apparatuses, computer program products, and methods. However, this disclosure may be embodied in many different forms and should not be construed as limited to any particular structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of this disclosure to those skilled in the art. Based on the teachings herein, those skilled in the art will understand that the scope of this disclosure is intended to cover any aspect of the systems, apparatuses, computer program products, and methods disclosed herein, whether implemented independently of or in combination with other aspects of this disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. Furthermore, the scope of this disclosure is intended to cover such apparatuses or methods practiced using structures, functionalities, or structures and functionalities other than or different from the aspects of the disclosure set forth herein. Any aspect disclosed herein may be embodied by one or more elements of the claims.

[0045] While various aspects are described herein, numerous variations and arrangements of these aspects fall within the scope of this disclosure. Although some potential benefits and advantages of the aspects of this disclosure have been mentioned, the scope of this disclosure is not intended to be limited to a particular benefit, use, or purpose. Rather, the aspects of this disclosure are intended to be broadly applicable to various wireless technologies, system configurations, processing systems, networks, and transport protocols, some of which are illustrated by way of example in the accompanying drawings and in the following description. The detailed description and accompanying drawings are merely illustrative and not limiting of this disclosure, and the scope of this disclosure is defined by the appended claims and their equivalents.

[0046] Several aspects are presented with reference to various apparatuses and methods. These apparatuses and methods are described in the following specific embodiments and shown in the accompanying drawings by means of various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as "elements"). These elements can be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system.

[0047] For example, an element, any part of an element, or any combination of elements can be implemented as a “processing system” (which may also be referred to as a processing unit) including one or more processors. Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs), general-purpose GPUs (GPGPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, system-on-a-chip (SoCs), baseband processors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionalities described throughout this disclosure. One or more processors in a processing system can execute software. Whether referred to as software, firmware, middleware, microcode, hardware description language, or other names, software can be broadly interpreted to mean instructions, instruction sets, code, code segments, program code, programs, subroutines, software components, applications, software applications, packages, routines, subroutines, objects, executable files, threads of execution, procedures, functions, etc.

[0048] The term "application" can refer to software. As described herein, one or more technologies can refer to an application (e.g., software) configured to perform one or more functions. In such an example, the application may be stored in memory (e.g., on-chip memory of a processor, system memory, or any other memory). The hardware described herein (such as a processor) may be configured to execute the application. For example, the application may be described as including code that, when executed by the hardware, causes the hardware to perform one or more technologies described herein. For example, the hardware may access the code from memory and execute the code accessed from memory to perform one or more technologies described herein. In some examples, components are identified in this disclosure. In such examples, a component may be hardware, software, or a combination thereof. A component may be a single component or a subcomponent of a single component.

[0049] In one or more examples described herein, the described functionality can be implemented in hardware, software, or any combination thereof. If implemented in software, the functionality can be stored or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media can be any available medium accessible by a computer. By way of example and not limitation, such computer-readable media can include random access memory (RAM), readable storage memory (ROM), electrically erasable programmable ROM (EEPROM), optical disc storage, magnetic disk storage, other magnetic storage devices, combinations of computer-readable media of the types described above, or any other medium capable of storing a computer-accessible executable file in the form of instructions or data structures.

[0050] As used herein, instances of the term "content" may refer to "graphic content," "image," etc., regardless of whether these terms are used as adjectives, nouns, or other parts of speech. In some examples, the term "graphic content," as used herein, may refer to content produced by one or more processes in a graphics processing pipeline. In further examples, the term "graphic content," as used herein, may refer to content produced by a processing unit configured to perform graphics processing. In still further examples, the term "graphic content," as used herein, may refer to content produced by a graphics processing unit.

[0051] Different computing devices may have different hardware and therefore different computing capabilities. For example, mobile devices (e.g., telephones) may include a first type of graphics processor, while personal computers (e.g., desktop computers) may include a second type of graphics processor, where the performance attributes of the second type of graphics processor are greater than those of the first type. For example, a second type of graphics processor may have a higher clock rate and / or a larger amount of memory compared to a first type of graphics processor. Application developers may develop two versions of an application (e.g., a game) to run on mobile devices and PCs respectively. In some cases, application developers may not have sufficient resources to code and support two versions of the application. In other cases, application developers may code and support two versions of the application; however, coding and supporting two versions of the application may utilize a relatively large amount of computing resources and / or developer time compared to coding and supporting a single version of the application.

[0052] Furthermore, partitioned computing refers to a paradigm that enables applications running on mobile devices (e.g., UEs) to provide users with the same (or similar) experience as when the application runs on a PC, while conserving the mobile device's power consumption through data and / or communication exchanged between the mobile device and the edge (which can also be referred to as nodes, compute nodes, servers, the cloud, etc.) via links. In one example, the link can be or include a wireless local area network (WLAN) link or a 5G new radio (NR) link. Current compilers may not be able to handle the problems associated with partitioned computing.

[0053] This document describes various techniques related to segmentation computation compilers and game engines. In one example, an apparatus (e.g., a developer computing device) obtains source code for an application. The apparatus decomposes the source code into a first set of application functions associated with a UE and a second set of application functions associated with a computing device different from the UE (e.g., at least one server), wherein at least one of the first or second set of application functions is associated with the quality of the link between the UE and the computing device. The apparatus generates a first executable file for the UE based on the first set of application functions and a second executable file for the computing device based on the second set of application functions. The apparatus provides the first executable file for the UE and the second executable file for the computing device. In a further example, the UE obtains an executable file (e.g., the first executable file) for an application that includes the first set of application functions associated with the UE and the second set of application functions associated with a computing device different from the UE. The UE obtains an estimated quality of the link between the UE and the computing device. The UE obtains a segmentation computation configuration between the first and second sets of application functions based on the estimated quality of the link. The UE outputs an indication of the segmentation computation configuration.

[0054] By decomposing the source code into a first set of application functions associated with the UE and a second set of application functions associated with at least one server, this device enables applications to be written once for various platforms, saving developers computational resources and time. Furthermore, by obtaining an estimated quality of the link between the UE and the computing device (e.g., at least one server) and obtaining a segmented computing configuration based on that estimated quality, the UE can provide users with a flexible and consistent application experience while conserving UE battery power. In some aspects, the segmented computing configuration allows the UE to maintain primary control over the application, and the UE can orchestrate servers to assist with computationally intensive tasks. Therefore, even in the event of a deterioration in the quality of the link between the UE and the server, the UE can continue to provide the user with the application experience without interrupting application execution.

[0055] Split computing enables mobile users to have the same gaming experience as PC users while saving battery by offloading a portion of the rendering load to the edge. However, split computing load can adapt to changes in link quality to continue balancing power saving with providing a consistent user experience. This optimization can be difficult to balance during application development, as it can be dependent on connectivity and processors. Relying on application developers to perform this load balancing can be challenging, as it may be difficult for each application developer to perform load balancing for every application they develop. In one aspect described in this paper, the game engine can run at the edge and on the UE. The UE application and the edge application can maintain a highly synchronized application / game state. The UE application can have logic switching between local rendering or displaying a remotely rendered view, allowing the UE application to maintain a continuous user experience even if the connection to the edge is lost. The UE can select the split computing load based on an estimate of the link quality. To provide the UE with different split computing load configurations to choose from during application operation, a split compiler can be used to generate UE and application builds that interoperate with each other in different matching configurations. The edge can also monitor for delayed packet arrivals or errors and signal the UE to make adjustments (e.g., using a lower encoding rate or selecting a different split computing configuration). When communication with the central application server is present, the central application server orchestrated by the UE can distribute computing load and its associated media to the UE and the edge, and the edge can also perform calculations based on information from the central server (e.g., when the link is adapted or information from other UEs / users is rendered).

[0056] The examples described herein may refer to the use and functionality of a graphics processing unit (GPU). As used herein, a GPU can be any type of graphics processor, and a graphics processor can be any type of processor designed or configured to process graphical content. For example, a graphics processor or GPU can be a dedicated electronic circuit designed to process graphical content. As an additional example, a graphics processor or GPU can be a general-purpose processor configured to process graphical content.

[0057] The terms “UE,” “device,” and “client” may be used interchangeably in this document. Furthermore, the terms “edge,” “node,” “compute node,” “cloud,” and “server” may be used interchangeably.

[0058] The term "Extended Reality" (XR) can refer to a technology that blends digital experiences with aspects of the real world. XR can include Augmented Reality (AR), Mixed Reality (MR), and / or Virtual Reality (VR). In AR, AR objects can be overlaid on a real-world environment, such as that perceived through a display device. In one example, AR content can be experienced through AR glasses that include transparent or translucent surfaces. As the user views the environment through the glasses, AR objects can be projected onto the transparent or translucent surface of the glasses. Typically, AR objects may not exist in the real world, and the user may not interact with them. In MR, MR objects can be overlaid on a real-world environment, such as that perceived through a display device, and the user can interact with them. In some aspects, MR objects can include "video perspective" with added virtual content. In one example, the user can "touch" an MR object displayed to them (i.e., the user can place their hand in the real world where the MR object appears to be located from the user's perspective), and the MR object can "move" based on the touched MR object (i.e., the position of the MR object on the display can change). Generally, MR content can be experienced through MR glasses (similar to AR glasses) worn by the user or through a head-mounted display (HMD) worn by the user. An HMD may include a camera and one or more display panels. The HMD can capture images of the environment, such as those perceived through the camera, and display these images to the user, with MR objects overlaid on top of the environmental image. Unlike the transparent or translucent surfaces of AR / MR glasses, one or more display panels of an HMD may not be transparent or translucent. In VR, users can experience a fully immersive digital environment in which the real world is shielded. VR content can be experienced through an HMD. XR headsets can be user-defined devices (UEs), devices, or clients.

[0059] As used herein, the term "game engine" can refer to a software framework designed for the development of video games. A game engine may include libraries and supporting programs. A game engine may include a rendering engine for two-dimensional (2D) or three-dimensional (3D) graphics, a physics engine, collision detection and response, sound, scripting, animation, artificial intelligence, networking, streamlining, memory management, threading, positioning support, scene graphs, and / or video support for movies.

[0060] As used herein, the term "executable file" can refer to code that has been compiled into software or a list of instructions that can be run / executed directly on a processor without further interpretation. As used herein, the term "application functionality" can refer to operations performed by an application to provide a intended service, including rendering media, processing user input, sensing the environment, computation, and arithmetic. As used herein, the term "estimated link quality" can refer to measuring the characteristics of a communication link and / or its surrounding environment to determine what data rates, latency, and / or error rates the link can currently support, and potentially predicting what data rates, latency, and / or error rates the link can support in the future. As used herein, the term "partitioned compute configuration" can refer to a specific partitioning of the functionality required by the application across more than one processor or compute host, for example, rendering compute-intensive graphics on a processor that is not dependent on battery power or housed in a small form factor with limited heat dissipation. As used herein, the term "source code" can refer to instructions from a programmer / application developer regarding how the application is expected to operate.

[0061] Figure 1 This is a block diagram illustrating an example content generation system 100 configured to implement one or more technologies of this disclosure. The content generation system 100 includes a device 104. Device 104 may include one or more components or circuitry for performing the various functions described herein. In some examples, one or more components of device 104 may be components of a System-on-a-Chip (SOC). Device 104 may include one or more components configured to perform one or more technologies of this disclosure. In the illustrated example, device 104 may include a processing unit 120, a content encoder / decoder 122, and a system memory 124. In some aspects, device 104 may include several components (e.g., a communication interface 126, a transceiver 132, a receiver 128, a transmitter 130, a display processor 127, and one or more displays 131). Display 131 may refer to one or more displays 131. For example, display 131 may include a single display or multiple displays, and multiple displays may include a first display and a second display. The first display may be a left-eye display, and the second display may be a right-eye display. In some examples, the first and second displays may receive different frames for presentation thereon. In other examples, the first and second displays may receive the same frames used for rendering on them. In further examples, the results of graphics processing may not be displayed on the devices; for example, the first and second displays may not receive any frames used for rendering on them. Instead, the frames or graphics processing results may be transmitted to another device. In some respects, this may be referred to as segmented rendering.

[0062] Processing unit 120 may include internal memory 121. Processing unit 120 may be configured to perform graphics processing using graphics processing pipeline 107. Content encoder / decoder 122 may include internal memory 123. In some examples, device 104 may include a processor that may be configured to perform one or more display processing techniques on one or more frames generated by processing unit 120 before they are displayed by one or more displays 131. Although the processor in example content generation system 100 is configured as display processor 127, it should be understood that display processor 127 is one example of a processor, and other types of processors, controllers, etc., may be used as alternatives to display processor 127. Display processor 127 may be configured to perform display processing. For example, display processor 127 may be configured to perform one or more display processing techniques on one or more frames generated by processing unit 120. One or more displays 131 may be configured to display or otherwise present the frames processed by display processor 127. In some examples, one or more displays 131 may include one or more of the following: liquid crystal display (LCD), plasma display, organic light-emitting diode (OLED) display, projection display device, augmented reality display device, virtual reality display device, head-mounted display, or any other type of display device.

[0063] Memory (such as system memory 124) external to processing unit 120 and content encoder / decoder 122 may be accessible to processing unit 120 and content encoder / decoder 122. For example, processing unit 120 and content encoder / decoder 122 may be configured to read from and / or write to external memory such as system memory 124. Processing unit 120 may be communicatively coupled to system memory 124 via a bus. In some examples, processing unit 120 and content encoder / decoder 122 may be communicatively coupled to internal memory 121 via a bus or via a different connection.

[0064] Content encoder / decoder 122 can be configured to receive graphical content from any source, such as system memory 124 and / or communication interface 126. System memory 124 can be configured to store received encoded or decoded graphical content. Content encoder / decoder 122 can be configured to receive, for example, encoded or decoded graphical content from system memory 124 and / or communication interface 126 in the form of encoded pixel data. Content encoder / decoder 122 can be configured to encode or decode any graphical content.

[0065] Internal memory 121 or system memory 124 may include one or more volatile or non-volatile memories or storage devices. In some examples, internal memory 121 or system memory 124 may include RAM, static random access memory (SRAM), dynamic random access memory (DRAM), erasable programmable ROM (EPROM), EEPROM, flash memory, magnetic data media or optical storage media, or any other type of memory. According to some examples, internal memory 121 or system memory 124 may be a non-transitory storage medium. The term "non-transitory" may indicate that the storage medium is not embodied in a carrier wave or a propagating signal. However, the term "non-transitory" should not be construed as meaning that internal memory 121 or system memory 124 is non-removable or that its contents are static. As an example, system memory 124 may be removed from device 104 and moved to another device. As another example, system memory 124 may not be removable from device 104.

[0066] Processing unit 120 may be a CPU, GPU, GPGPU, or any other processing unit that can be configured to perform graphics processing. In some examples, processing unit 120 may be integrated into the motherboard of device 104. In further examples, processing unit 120 may reside on a graphics card mounted in a port on the motherboard of device 104, or may otherwise be incorporated into a peripheral device configured to interoperate with device 104. Processing unit 120 may include one or more processors, such as one or more microprocessors, GPUs, ASICs, FPGAs, arithmetic logic units (ALUs), DSPs, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combination thereof. If the technology is partially implemented in software, processing unit 120 may store instructions for software in a suitable non-transitory computer-readable storage medium (e.g., internal memory 121), and may execute the instructions in hardware using one or more processors to perform the technology of this disclosure. Any of the foregoing (including hardware, software, combinations of hardware and software, etc.) may be considered as one or more processors.

[0067] The content encoder / decoder 122 can be any processing unit configured to perform content decoding. In some examples, the content encoder / decoder 122 can be integrated into the motherboard of device 104. The content encoder / decoder 122 may include one or more processors, such as one or more microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), arithmetic logic units (ALUs), digital signal processors (DSPs), video processors, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuits, or any combination thereof. If the technology is partially implemented in software, the content encoder / decoder 122 may store instructions for software in a suitable non-transitory computer-readable storage medium (e.g., internal memory 123), and may use one or more processors to execute instructions in hardware to perform the technology of this disclosure. Any of the foregoing (including hardware, software, combinations of hardware and software, etc.) can be considered as one or more processors.

[0068] In some aspects, the content generation system 100 may include a communication interface 126. The communication interface 126 may include a receiver 128 and a transmitter 130. The receiver 128 may be configured to perform any of the receiving functions described herein with respect to device 104. Additionally, the receiver 128 may be configured to receive information from another device, such as eye or head position information, rendering commands, and / or positioning information. The transmitter 130 may be configured to perform any of the transmitting functions described herein with respect to device 104. For example, the transmitter 130 may be configured to transmit information to another device (which may include a request for content). The receiver 128 and the transmitter 130 may be combined in a transceiver 132. In such an example, the transceiver 132 may be configured to perform any of the receiving and / or transmitting functions described herein with respect to device 104.

[0069] Refer again Figure 1 In some aspects, processing unit 120 may include device segmentation computation orchestrator 198, which is configured to: obtain an executable file for an application including a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE; obtain an estimated quality of the link between the UE and the computing device; based on the estimated quality of the link, obtain a segmentation computation configuration between the first set of application functions and the second set of application functions; and output an indication of the segmentation computation configuration. Although the following description may focus on graphics processing, the concepts described herein can be applied to other similar processing techniques, such as general segmentation computation data processing.

[0070] The term "device" (such as device 104) can refer to any device, apparatus, or system configured to perform one or more of the technologies described herein. For example, a device can be a server, base station, user equipment, client device, station, access point, computer (such as a personal computer, desktop computer, laptop computer, tablet computer, computer workstation, or mainframe computer), terminal product, apparatus, telephone, smartphone, server, video game platform or console, handheld device (such as a portable video game device or personal digital assistant (PDA)), wearable computing device (such as a smartwatch, augmented reality device, or virtual reality device), non-wearable device, display or display device, television, set-top box, intermediate network device, digital media player, video streaming device, content streaming device, in-vehicle computer, any mobile device, any device configured to generate graphical content, or any device configured to perform one or more of the technologies described herein. The processes described herein may be described as being performed by a specific component (e.g., GPU), but in other embodiments, other components (e.g., CPU) consistent with the disclosed embodiments may be used to perform them.

[0071] GPUs can process various types of data or data packets within the GPU pipeline. For example, in some aspects, a GPU can process two types of data or data packets, such as context register packets and draw call data. Context register packets can be a collection of global state information (e.g., information about global registers, shaders, or constant data) that can regulate how the graphics context will be processed. For example, a context register packet may include information about the color format. In some aspects of context register packets, there may be one or more bits indicating which workload belongs to the context register. Furthermore, multiple functions or programs can run simultaneously and / or in parallel. For example, a function or program may describe an operation, such as a color mode or color format. Therefore, context registers can define various states of the GPU.

[0072] Context states can be used to determine how individual processing units function (e.g., vertex extractor (VFD), vertex shader (VS), shader processor, or geometry processor) and / or in what mode a processing unit operates. To do this, the GPU can use context registers and programming data. In some aspects, the GPU can generate workloads in the pipeline based on the mode or state defined by the context registers, such as vertex or pixel workloads. Certain processing units (e.g., VFDs) can use these states to determine certain functions, such as how to assemble vertices. Because these modes or states can change, the GPU may need to modify the corresponding context. Furthermore, the workload corresponding to that mode or state can follow the changing mode or state.

[0073] Figure 2 An example GPU 200 is shown, employing one or more technologies according to this disclosure. (Example:) Figure 2 As shown, GPU 200 includes a command processor (CP) 210, a draw call group 212, a VFD 220, a VS 222, a vertex cache (VPC) 224, a triangle setup engine (TSE) 226, a rasterizer (RAS) 228, a Z-process engine (ZPE) 230, a pixel interpolator (PI) 232, a fragment shader (FS) 234, a rendering backend (RB) 236, an L2 cache (UCHE) 238, and system memory 240. Although Figure 2 The GPU 200 is shown to include processing units 220-238, but the GPU 200 may include several additional processing units. Furthermore, processing units 220-238 are merely examples, and any combination or order of processing units may be used by the GPU in accordance with this disclosure. The GPU 200 also includes a command buffer 250, a context register group 260, and a context state 261.

[0074] like Figure 2 As shown, the GPU can use a CP (e.g., CP 210) or a hardware accelerator to resolve the command buffer into context register groups (e.g., context register group 260) and / or draw call data groups (e.g., draw call group 212). CP 210 can then send the context register group 260 or the draw call data group 212 to a processing unit or block in the GPU via a separate path. Furthermore, the command buffer 250 can alternate between different states of the context registers and draw calls. For example, the command buffer can simultaneously store the following information: the context register of context N, the draw call of context N, the context register of context N+1, and the draw call of context N+1.

[0075] GPUs can render images in a variety of different ways. In some cases, GPUs can render images using direct rendering and / or tiling rendering. In tiling rendering GPUs, an image can be divided or separated into different parts or tiles. After the image is divided, each part or tile can be rendered individually. Tiling rendering GPUs can divide computer graphics images into a grid format, so that each part of the grid (i.e., the tile) is rendered individually. In some aspects of tiling rendering, the image can be divided into different bins or tiles during the binning process. In some aspects, during the binning process, a visibility stream can be built, where visible primitives or draw calls can be identified. The rendering process can be performed after the binning process. Compared to tiling rendering, direct rendering does not divide the frame into smaller bins or tiles. Instead, in direct rendering, the entire frame is rendered in a single world (i.e., without a binning process). Furthermore, some types of GPUs can allow both tiling rendering and direct rendering (e.g., flexible rendering).

[0076] In some aspects, the GPU can apply the drawing or rendering process to different bins or tiles. For example, the GPU can render to a bin and perform all drawing on the primitives or pixels within that bin. During the rendering to a bin process, the rendering target can be located in GPU Internal Memory (GMEM). In some cases, after rendering to a bin, the contents of the rendering target can be moved to system memory, and GMEM is released for rendering the next bin. Furthermore, the GPU can render to another bin and perform drawing on the primitives or pixels within that bin. Therefore, in some aspects, there may be a small number of bins covering all the drawing in a surface, for example, four bins. Additionally, the GPU can loop through all the drawing in a bin, but perform drawing on visible drawing calls (i.e., drawing calls that include visible geometry). In some aspects, a visibility stream can be generated, for example, during bin loading to determine the visibility information of each primitive in the image or scene. For example, this visibility stream can identify whether a primitive is visible. In some aspects, this information can be used to remove invisible primitives, such that invisible primitives are not rendered, for example, during the rendering process. Furthermore, at least some of the primitives that are marked as visible can be rendered during the rendering process.

[0077] In some aspects of tiling rendering, there may be multiple processing stages or procedures. For example, rendering can be performed in two procedures (e.g., warehousing, visibility, or warehousing visibility process and rendering, or warehousing rendering process). In the visibility process, the GPU can input a rendering workload, record the positions of primitives or triangles, and then determine which primitives or triangles fall into which warehousing or region. In some aspects of the visibility process, the GPU can also identify or mark the visibility of each primitive or triangle in the visibility stream. During the rendering process, the GPU can input the visibility stream and process one warehousing or region at a time. In some aspects, the visibility stream can be analyzed to determine which primitives or primitive vertices are visible or invisible. Therefore, visible primitives or primitive vertices can be processed. By doing so, the GPU can reduce the unnecessary workload of processing or rendering invisible primitives or triangles.

[0078] In some aspects, certain types of basic geometry can be processed during the visibility process, such as localized geometry only. Furthermore, depending on the localization or position of the primitives or triangles, primitives can be classified into different bins or regions. In some cases, classifying primitives or triangles into different bins can be performed by determining visibility information for these primitives or triangles. For example, the GPU can determine or write visibility information for each primitive in each bin or region (e.g., in system memory). This visibility information can be used to determine or generate a visibility stream. During rendering, the primitives in each bin can be rendered separately. In these cases, the visibility stream can be retrieved from memory and used to remove primitives that are not visible to that bin.

[0079] Several aspects of a GPU or GPU architecture can provide several different options for rendering (e.g., software rendering and hardware rendering). In software rendering, the driver or CPU can copy the entire frame geometry by processing each view at a time. Furthermore, several different states can change depending on the view. Therefore, in software rendering, software can copy the entire workload by changing some states that can be used for rendering for each viewpoint in the image. In some aspects, there can be increased overhead because the GPU may submit the same workload multiple times for each viewpoint in the image. In hardware rendering, the hardware or GPU can be responsible for copying or processing the geometry for each viewpoint in the image. Therefore, the hardware can manage the copying or processing of primitives or triangles for each viewpoint in the image.

[0080] Figure 3 An image or surface 300 is shown, comprising multiple primitives divided into multiple compartments according to one or more techniques of this disclosure. For example... Figure 3As shown, the image or surface 300 includes region 302, which includes primitives 321, 322, 323, and 324. Primitives 321, 322, 323, and 324 are divided or placed into different bins (e.g., bins 310, 311, 312, 313, 314, and 315). Figure 3 An example of tiled rendering using multiple viewpoints for primitives 321-324 is shown. For example, primitives 321-324 are in a first viewpoint 350 and a second viewpoint 351. Therefore, GPU processing or rendering of an image or surface 300 including region 302 can utilize multiple viewpoints or multi-view rendering.

[0081] As indicated in this article, GPUs or graphics processors can use a tiling rendering architecture to reduce power consumption or save memory bandwidth. As further described above, this rendering method divides the scene into multiple compartments, and includes a visibility process that identifies the visible triangles within each compartment. Therefore, in tiling rendering, the entire screen can be divided into multiple sub-compartments or tiles. The scene can then be rendered multiple times (e.g., once or more for each compartment).

[0082] In graphics rendering, some graphics applications may render to a single target (i.e., the rendering target) once or multiple times. For example, in graphics rendering, a frame buffer on system memory can be updated multiple times. A frame buffer can be part of memory or random access memory (RAM) (e.g., containing bitmaps or storage) to help store display data for the GPU. A frame buffer can also be a memory buffer containing complete data frames. Furthermore, a frame buffer can be a logical buffer. In some aspects, updating the frame buffer can be performed in bin or tile rendering, where, as discussed above, the surface is divided into multiple bins or tiles, and each bin or tile can then be rendered separately. Furthermore, in tile rendering, the frame buffer can be divided into multiple bins or tiles.

[0083] As indicated in this document, in some aspects (such as in a warehouse or tiled rendering architecture), for example, when rendering from different types of memory, frame buffers may have data repeatedly stored or written to them. This can be referred to as resolving and de-resolving the frame buffer or system memory. For example, when storing or writing to one frame buffer and then switching to another frame buffer, the data or information on the frame buffer can be resolved from the GMEM at the GPU to the system memory (i.e., memory in Double Data Rate (DDR) RAM or Dynamic RAM (DRAM).

[0084] In some aspects, system memory can also be, for example, system-on-chip (SoC) memory or another chip-based memory used to store data or information on a device or smartphone. System memory can also be physical data memory shared by the CPU and / or GPU. In some aspects, system memory can be, for example, a DRAM chip on a device or smartphone. Therefore, SoC memory can be a chip-based method in which data is stored.

[0085] In some aspects, GMEM can be on-chip memory at the GPU, which can be implemented using static RAM (SRAM). Alternatively, GMEM can be stored on the device (e.g., a smartphone). As indicated herein, data or information can be transferred between system memory or DRAM and GMEM, for example, at the device. In some aspects, system memory or DRAM can be at the CPU or GPU. Alternatively, data can be stored at DDR or DRAM. In some aspects, such as in frame buffer or tiled rendering, a small portion of the memory can be stored at the GPU, for example, at GMEM. In some cases, storing data at GMEM can utilize a larger processing workload and / or consume more power compared to storing data at the frame buffer or system memory.

[0086] Figure 4 This is a schematic diagram 400 illustrating an example of a wireless communication system and access network. The wireless communication system shown includes a decomposed base station architecture. The decomposed base station architecture may include one or more CUs 410, which may communicate directly with the core network 420 via a backhaul link, or indirectly with the core network 420 via one or more decomposed base station units, such as a near real-time (near-RT) RAN Intelligent Controller (RIC) 425 via an E2 link, or a non-real-time (non-RT) RIC 415 associated with a Service Management and Orchestration (SMO) framework 405, or both. CUs 410 may communicate with one or more DUs 430 via appropriate midrange links (such as F1 interfaces). DUs 430 may communicate with one or more RUs 440 via appropriate fronthaul links. RUs 440 may communicate with corresponding UEs 404 via one or more radio frequency (RF) access links. In some implementations, a UE 404 may be served simultaneously by multiple RUs 440.

[0087] Each of the units (i.e., CU 410, DU 430, RU 440, and near-RT RIC 425, non-RT RIC 415, and SMO frame 405) may include, or be coupled to, one or more interfaces configured to receive or transmit signals, data, or information (collectively, signals) via wired or wireless transmission media. Each of the units, or an associated processor or controller providing instructions to the unit's communication interface, may be configured to communicate with one or more other units via a transmission medium. For example, the unit may include a wired interface configured to receive signals or transmit signals to one or more other units via a wired transmission medium. Furthermore, the unit may include a wireless interface that may include a receiver, transmitter, or transceiver (such as an RF transceiver) configured to receive signals via a wireless transmission medium, transmit signals to one or more other units, or both.

[0088] In some implementations, the CU 410 can host one or more higher-level control functions. Such control functions may include Radio Resource Control (RRC), Packet Data Convergence Protocol (PDCP), Serving Data Adaptation Protocol (SDAP), and so on. Each control function can be implemented using an interface configured to transmit signaling to other control functions hosted by the CU 410. The CU 410 can be configured to handle user plane functionality (i.e., Central Unit-User Plane (CU-UP)), control plane functionality (i.e., Central Unit-Control Plane (CU-CP)), or a combination thereof. In some implementations, the CU 410 can be logically divided into one or more CU-UP units and one or more CU-CP units. When implemented in an O-RAN configuration, the CU-UP units can communicate bidirectionally with the CU-CP units via an interface such as an E1 interface. The CU 410 can be implemented to communicate with the DU 430 as needed for network control and signaling.

[0089] DU 430 may correspond to a logical unit that includes one or more base station functions to control the operation of one or more RU 440s. In some aspects, at least in part depending on the functional partitioning (such as that defined by 6GPP), DU 430 may host one or more of the following: Radio Link Control (RLC) layer, Medium Access Control (MAC) layer, and one or more high physical (PHY) layers (such as modules for forward error correction (FEC) encoding and decoding, scrambling, modulation, demodulation, etc.). In some aspects, DU 430 may further host one or more low PHY layers. Each layer (or module) may be implemented using an interface configured to transmit signals with other layers (and modules) hosted by DU 430 or with control functions hosted by CU 410.

[0090] Lower-layer functions can be implemented by one or more RU 440s. In some deployments, an RU440 controlled by a DU 430 may correspond to a logical node that hosts RF processing functions or low-PHY layer functions (such as performing Fast Fourier Transform (FFT), Inverse FFT (iFFT), digital beamforming, Physical Random Access Channel (PRACH) extraction and filtering, or both, at least partially based on functional partitioning (such as lower-layer functional partitioning). In such an architecture, the RU 440 can be implemented to handle over-the-air (OTA) communication with one or more UEs 404. In some implementations, the real-time and non-real-time aspects of control and user plane communication with the RU 440 can be controlled by the corresponding DU 430. In some scenarios, this configuration allows the DU430 and CU 410 to be implemented in a cloud-based RAN architecture (such as a vRAN architecture).

[0091] The SMO framework 405 can be configured to support RAN deployment and provisioning for both non-virtualized and virtualized network elements. For non-virtualized network elements, the SMO framework 405 can be configured to support the deployment of dedicated physical resources for RAN coverage specifications, which can be managed via operation and maintenance interfaces such as the O1 interface. For virtualized network elements, the SMO framework 405 can be configured to interact with a cloud computing platform (such as the Open Cloud (O-Cloud) 490) to perform network element lifecycle management (such as instantiating virtualized network elements) via a cloud computing platform interface (such as the O2 interface). Such virtualized network elements may include, but are not limited to, CU 410, DU 430, RU 440, and near-RT RIC 425. In some implementations, the SMO framework 405 can communicate with the hardware aspects of the 4G RAN (such as the Open eNB (O-eNB) 411) via the O1 interface. Furthermore, in some implementations, the SMO framework 405 can communicate directly with one or more RU 440s via the O1 interface. SMO framework 405 may also include a non-RT RIC 415 configured to support the functionality of SMO framework 405.

[0092] The non-RT RIC 415 can be configured to include logical functions that enable non-real-time control and optimization of RAN elements and resources, including artificial intelligence (AI) / machine learning (ML) workflows for model training and updates, or policy-based guidance for applications / features in the near-RT RIC 425. The non-RT RIC 415 can be coupled to or communicate with the near-RT RIC 425 (e.g., via the A1 interface). The near-RT RIC 425 can be configured to include logical functions that enable near real-time control and optimization of RAN elements and resources via data collection and actions on interfaces connecting one or more CU 410s, one or more DU 430s, or both, and O-eNBs to the near-RT RIC 425 (e.g., via the E2 interface).

[0093] In some implementations, to generate AI / ML models to be deployed in the near-RT RIC 425, the non-RT RIC 415 can receive parameters or external enrichment information from an external server. Such information can be utilized by the near-RT RIC 425 and can be received from non-network data sources or network functions at the SMO framework 405 or the non-RT RIC 415. In some examples, the non-RT RIC 415 or near-RT RIC 425 can be configured to tune RAN behavior or performance. For example, the non-RT RIC 415 can monitor long-term trends and patterns in performance and employ AI / ML models to perform corrective actions via the SMO framework 405 (such as reconfiguration via O1) or via the creation of RAN management policies (such as A1 policies).

[0094] At least one of CU 410, DU 430, and RU 440 may be referred to as base station 402. Therefore, base station 402 may include one or more of CU 410, DU 430, and RU 440 (each component is indicated by dashed lines to show that each component may or may not be included in base station 402). Base station 402 provides an access point to core network 420 for UE 404. Base station 402 may include macro cells (high-power cellular base stations) and / or small cells (low-power cellular base stations). Small cells include femtocells, picocells, and microcells. A network including both small cells and macro cells may be referred to as a heterogeneous network. A heterogeneous network may also include evolved home node B (eNB) (HeNB), which can provide service to restricted groups referred to as closed subscriber groups (CSGs). The communication link between RU 440 and UE 404 may include uplink (UL) transmission (also referred to as reverse link) from UE 404 to RU 440 and / or downlink (DL) transmission (also referred to as forward link) transmission from RU 440 to UE 404. The communication link may use multiple-input multiple-output (MIMO) antenna techniques, including spatial multiplexing, beamforming, and / or transmit diversity. The communication link may be via one or more carriers. Base station 402 / UE 404 may use a spectrum of up to Y MHz (e.g., 5, 10, 15, 20, 100, 400, etc.) bandwidth per carrier allocated in carrier aggregation for up to a total of Yx MHz (x component carriers) for transmission in each direction. Carriers may be adjacent to each other or may not be adjacent to each other. Carrier allocation may be asymmetrical with respect to DL and UL (e.g., more or fewer carriers may be allocated to DL compared to UL). Component carriers may include primary component carriers and one or more secondary component carriers. The primary component carrier can be referred to as the primary cell (PCell), and the secondary component carrier can be referred to as the secondary cell (SCell).

[0095] Some UEs 404 can communicate with each other using a device-to-device (D2D) communication link 458. The D2D communication link 458 can use DL / UL Wireless Wide Area Network (WWAN) spectrum. The D2D communication link 458 can use one or more side-link channels, such as the Physical Side-Link Broadcast Channel (PSBCH), Physical Side-Link Discovery Channel (PSDCH), Physical Side-Link Shared Channel (PSSCH), and Physical Side-Link Control Channel (PSCCH). D2D communication can be conducted through various wireless D2D communication systems, such as Bluetooth, Wi-Fi based on the IEEE 802.11 standard, etc. TM LTE or NR.

[0096] The wireless communication system may further include a Wi-Fi AP 450 that communicates with a UE 404 (also referred to as a Wi-Fi station (STA)) via a communication link 454 in, for example, a 5 GHz unlicensed spectrum. When communicating in the unlicensed spectrum, the UE 404 / AP 450 may perform a free channel assessment (CCA) before communication to determine whether the channel is available.

[0097] The electromagnetic spectrum is typically subdivided into various categories, bands, channels, etc., based on frequency / wavelength. In 5G NR, the two initial operating bands have been designated as frequency range names FR1 (410MHz–7.125GHz) and FR2 (24.25GHz–52.6GHz). Although a portion of FR1 is greater than 6GHz, in various documents and articles, FR1 is often referred to as the (interchangeably) sub-6GHz band. Similar naming issues sometimes arise regarding FR2; although different from the extremely high frequency (EHF) band (30GHz–300 GHz) designated as the “millimeter wave” band by the International Telecommunication Union (ITU), FR2 is often (interchangeably) referred to as the “millimeter wave” band in documents and articles.

[0098] Frequencies between FR1 and FR2 are generally referred to as intermediate frequency (IF) bands. Recent 5G NR studies have designated the operating bands of these IF bands as the frequency range name FR3 (7.125 GHz – 24.25 GHz). Bands falling within FR3 can inherit FR1 and / or FR2 characteristics, and thus can effectively extend the features of FR1 and / or FR2 to IF band frequencies. Additionally, higher frequency bands are currently being explored to extend 5G NR operation above 52.6 GHz. For example, three higher operating frequency bands have been designated as the frequency range names FR2-2 (52.6 GHz – 71 GHz), FR4 (71 GHz – 114.25 GHz), and FR5 (114.25 GHz – 300 GHz). Each of these higher frequency bands falls within the EHF band.

[0099] In view of the foregoing, unless otherwise specified, the term "sub-6GHz" and the like (if used herein) can broadly refer to frequencies that are less than 6GHz, within FR1, or may include intermediate frequency band frequencies. Furthermore, unless otherwise specified, the term "millimeter wave" and the like (if used herein) can broadly refer to frequencies that may include intermediate frequency band frequencies, within FR2, FR4, FR2-2 and / or FR5, or within the EHF band.

[0100] Base station 402 and UE 404 may each include multiple antennas (such as antenna elements, antenna panels, and / or antenna arrays) to facilitate beamforming. Base station 402 may transmit beamformed signals 482 to UE 404 in one or more transmit directions. UE 404 may receive beamformed signals from base station 402 in one or more receive directions. UE 404 may also transmit beamformed signals 484 to base station 402 in one or more transmit directions. Base station 402 may receive beamformed signals from UE 404 in one or more receive directions. Base station 402 / UE 404 may perform beam training to determine the optimal receive and transmit directions for each of base station 402 / UE 404. The transmit and receive directions for base station 402 may be the same or different. The transmit and receive directions for UE 404 may be the same or different.

[0101] Base station 402 may include and / or be referred to as gNB, Node B, eNB, access point, base transceiver, radio base station, radio transceiver, transceiver function, Basic Service Set (BSS), Extended Service Set (ESS), TRP, network node, network entity, network device, or some other suitable term. Base station 402 may be implemented as an integrated access and backhaul (IAB) node, relay node, sidelink node, aggregated (monolithic) base station with baseband units (BBU) (including CU and DU) and RU, or as a decomposed base station including one or more of CU, DU, and / or RU. The base station set (which may include decomposed base stations and / or aggregated base stations) may be referred to as Next Generation (NG) RAN (NG-RAN).

[0102] The core network 420 may include Access and Mobility Management Function (AMF) 461, Session Management Function (SMF) 462, User Plane Function (UPF) 463, Unified Data Management (UDM) 464, one or more location servers 468, and other functional entities. AMF 461 is the control node that processes signaling between UE 404 and the core network 420. AMF 461 supports registration management, connection management, mobility management, and other functions. SMF 462 supports session management and other functions. UPF 463 supports packet routing, packet forwarding, and other functions. UDM 464 supports authentication and key protocol (AKA) credential generation, user identity processing, access authorization, and subscription management. One or more location servers 468 are shown as including Gateway Mobile Location Center (GMLC) 465 and Location Management Function (LMF) 466. However, typically, one or more location servers 468 may include one or more location / positioning servers, which may include one or more of the following: GMLC 465, LMF 466, Location Determination Entity (PDE), Serving Mobile Location Center (SMLC), Mobile Location Center (MPC), etc. GMLC 465 and LMF 466 support UE location services. GMLC 465 provides an interface for clients / applications (e.g., emergency services) to access UE location information. LMF 466 receives measurement and assistance information from NG-RAN and UE 404 via AMF 461 to calculate the location of UE 404. NG-RAN may utilize one or more positioning methods to determine the location of UE 404. Positioning UE 404 may involve signal measurement, location estimation, and optional velocity calculation based on measurements. Signal measurement may be performed by UE 404 and / or base station 402 serving UE 404. The measured signals may be based on one or more of the following: Satellite Positioning System (SPS) 470 (e.g., one or more of Global Navigation Satellite System (GNSS), Global Positioning System (GPS), Non-Terrestrial Network (NTN) or other satellite positioning / location systems), LTE signals, Wireless Local Area Network (WLAN) signals, Bluetooth signals, Land Beacon System (TBS), sensor-based information (e.g., barometric pressure sensor, motion sensor), NR Enhanced Cell ID (NR E-CID) method, NR signal (e.g., Multi-Round-Trip Time (Multi-RTT), DL Departure Angle (DL-AoD), DL Time Difference of Arrival (DL-TDOA), UL Time Difference of Arrival and UL Angle of Arrival (UL-AoA) positioning) and / or other systems / signals / sensors.

[0103] Examples of UE 404 include cellular phones, smartphones, Session Initiation Protocol (SIP) phones, laptops, personal digital assistants (PDAs), satellite radio units, global positioning systems, multimedia devices, video devices, digital audio players (e.g., MP3 players), cameras, game consoles, tablets, smart devices, wearable devices, vehicles, electricity meters, air pumps, large or small kitchen appliances, healthcare devices, implants, sensors / actuators, displays, or any other similarly functional devices. Some UEs in UE 404 may be referred to as IoT devices (e.g., parking meters, air pumps, ovens, vehicles, heart monitors, etc.). UE 404 may also be referred to as a station, mobile station, user station, mobile unit, user unit, radio unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile user station, access terminal, mobile terminal, wireless terminal, remote terminal, handheld device, user agent, mobile client, client, or some other suitable term. In some scenarios, the term UE may also be applied to one or more accompanying devices, such as accompanying devices in a device constellation arrangement. One or more of these devices may access the network together and / or individually.

[0104] Figure 5A This is a schematic diagram 500 showing an example of the first subframe within a 5G NR frame structure. Figure 5B This is a schematic diagram 530 showing an example of a DL channel within a 5G NR subframe. Figure 5C This is a schematic diagram 550 showing an example of a second subframe within a 5G NR frame structure. Figure 5D This is a schematic diagram 580 illustrating an example of a UL channel within a 5G NR subframe. The 5G NR frame structure can be Frequency Division Duplex (FDD) (where, for a specific set of subcarriers (carrier system bandwidth), subframes within that set are dedicated to either DL or UL), or Time Division Duplex (TDD) (where, for a specific set of subcarriers (carrier system bandwidth), subframes within that set are dedicated to both DL and UL). Figure 5A , Figure 5CIn the provided example, it is assumed that the 5G NR frame structure is TDD, where subframe 4 is configured with slot format 58 (primarily DL), where D is DL, U is UL, and F is flexibly used between DL / UL, and subframe 6 is configured with slot format 1 (with all UL). Although subframes 3 and 4 are shown as having slot formats 1 and 28, respectively, any particular subframe can be configured with any of the various available slot formats 0-61. Slot formats 0 and 1 are all DL and all UL, respectively. Other slot formats 2-61 include a mixture of DL, UL, and flexible symbols. The UE is configured with a slot format via the received Slot Format Indicator (SFI) (dynamically configured via DL Control Information (DCI) or semi-statically / statically configured via Radio Resource Control (RRC) signaling). Note that the following description also applies to 5G NR frame structures as TDD.

[0105] Figures 5A-5D The frame structure is illustrated, and aspects of this disclosure can be applied to other wireless communication technologies that may have different frame structures and / or different channels. A frame (10 ms) can be divided into 10 equal-sized subframes (1 ms). Each subframe may include one or more time slots. Subframes may also include micro-time slots, which may include 7, 4, or 2 symbols. Each time slot may include 14 or 12 symbols, depending on whether the cyclic prefix (CP) is ordinary or extended. For ordinary CP, each time slot may include 14 symbols, and for extended CP, each time slot may include 12 symbols. Symbols on the DL can be CP Orthogonal Frequency Division Multiplexing (OFDM) (CP-OFDM) symbols. Symbols on the UL can be CP-OFDM symbols (for high-throughput scenarios) or Discrete Fourier Transform (DFT) Extended OFDM (DFT-s-OFDM) symbols (for power-constrained scenarios; limited to single-stream transmission). The number of time slots within a subframe is based on the CP and the digital scheme (numerology). The digital scheme defines the subcarrier spacing (SCS) (see Table 1). Symbol length / duration can be proportional to 1 / SCS.

[0106]

[0107]

[0108] Table 1: Digital Scheme, SCS, and CP

[0109] For a standard CP (14 symbols / slot), different digital schemes μ0 through 4 allow 1, 2, 4, 8, and 46 slots per subframe, respectively. For an extended CP, digital scheme 2 allows 4 slots per subframe. Therefore, for both the standard CP and digital scheme μ, there are 14 symbols / slot and 2 slots per subframe.μ One time slot / subframe. The subcarrier spacing can be equal to 2. μ *15kHz, where μ is the digital scheme from 0 to 4. Therefore, digital scheme μ = 0 has a subcarrier spacing of 15kHz, and digital scheme μ = 4 has a subcarrier spacing of 240kHz. The symbol length / duration is inversely related to the subcarrier spacing. Figures 5A-5D Examples are provided for a standard frequency division multiplexing (CP) scheme with 14 symbols per slot and a digital scheme with 4 slots per subframe (μ=2). The slot duration is 0.25 ms, the subcarrier spacing is 60 kHz, and the symbol duration is approximately 16.67 μs. Within a frame set, one or more distinct bandwidth portions (BWPs) of frequency division multiplexing can exist (see [link to relevant documentation]). Figure 5B Each BWP can have a specific digital scheme and CP (normal or extended).

[0110] A resource grid can be used to represent the frame structure. Each time slot consists of a resource block (RB) that extends 12 consecutive subcarriers (also known as a physical RB (PRB)). The resource grid is divided into multiple resource elements (REs). The number of bits carried by each RE depends on the modulation scheme.

[0111] As in Figure 5A As shown, some of the REs carry reference (pilot) signals (RS) for the UE. The RS may include a demodulation RS (DM-RS) for channel estimation at the UE (indicated as R for a specific configuration, but other DM-RS configurations are possible) and a channel state information reference signal (CSI-RS). The RS may also include a beam measurement RS (BRS), a beam refinement RS (BRRS), and a phase tracking RS (PT-RS).

[0112] Figure 5BExamples of various DL channels within a subframe of a frame are shown. The Physical Downlink Control Channel (PDCCH) carries DCI within one or more Control Channel Elements (CCEs) (e.g., 1, 2, 4, 8, or 46 CCEs), each CCE comprising six RE Groups (REGs), each REG comprising 12 consecutive REs in an OFDM symbol within an RB. The PDCCH within a BWP can be referred to as a Control Resource Set (CORESET). The UE is configured to monitor PDCCH candidates in a PDCCH search space (e.g., a common search space, a UE-specific search space) during PDCCH monitoring on a CORESET, where the PDCCH candidates have different DCI formats and different aggregation levels. Additional BWPs can span the channel bandwidth at larger and / or lower frequencies. The Primary Synchronization Signal (PSS) can be within symbol 2 of a specific subframe of the frame. The PSS is used by UE 404 to determine subframe / symbol timing and physical layer identification. The Secondary Synchronization Signal (SSS) can be within symbol 4 of a specific subframe of the frame. The SSS is used by the UE to determine the Physical Layer Cell Identifier Group Number and radio frame timing. Based on the Physical Layer Identifier and Physical Layer Cell Identifier Group Number, the UE can determine the Physical Cell Identifier (PCI). Based on the PCI, the UE can determine the location of the DM-RS. The Physical Broadcast Channel (PBCH), carrying the Master Information Block (MIB), can be logically grouped with the PSS and SSS to form a Synchronization Signal (SS) / PBCH block (also known as an SS block (SSB)). The MIB provides the number of RBs and the System Frame Number (SFN) in the system bandwidth. The Physical Downlink Shared Channel (PDSCH) carries user data, broadcast system information not transmitted via the PBCH (such as System Information Block (SIB)), and paging messages.

[0113] As in Figure 5C As shown, some REs in the REs carry DM-RS for channel estimation at the base station (indicated as R for a specific configuration, but other DM-RS configurations are possible). The UE can transmit DM-RS for the Physical Uplink Control Channel (PUCCH) and DM-RS for the Physical Uplink Shared Channel (PUSCH). PUSCH DM-RS can be transmitted in the first one or two symbols before the PUSCH. PUCCH DM-RS can be transmitted in different configurations depending on whether a short or long PUCCH is transmitted and based on the specific PUCCH format used. The UE can transmit a Sounding Reference Signal (SRS). The SRS can be transmitted in the last symbol of a subframe. The SRS can have a comb structure, and the UE can transmit the SRS on one of the combs. The SRS can be used by the base station for channel quality estimation to enable frequency-dependent scheduling on the UL.

[0114] Figure 5D Examples of various UL channels within a subframe of a frame are shown. The PUCCH can be positioned as indicated in one configuration. The PUCCH carries uplink control information (UCI), such as scheduling requests, channel quality indicators (CQI), precoding matrix indicators (PMI), rank indicators (RI), and hybrid automatic repeat request (HARQ) acknowledgment (ACK) feedback (i.e., one or more HARQ ACK bits indicating one or more ACKs and / or negative ACKs (NACKs)). The PUCCH carries data and may additionally be used to carry buffer status reports (BSR), power headroom reports (PHR), and / or UCIs.

[0115] Figure 6 This is a block diagram illustrating communication between base station 610 and UE 650 in the access network. In the DL, Internet Protocol (IP) packets can be provided to controller / processor 675. Controller / processor 675 implements Layer 3 and Layer 2 functionality. Layer 3 includes the Radio Resource Control (RRC) layer, and Layer 2 includes the Service Data Adaptation Protocol (SDAP) layer, Packet Data Convergence Protocol (PDCP) layer, Radio Link Control (RLC) layer, and Media Access Control (MAC) layer. The controller / processor 675 provides: RRC layer functionality associated with: broadcasting system information (e.g., MIB, SIB), RRC connection control (e.g., RRC connection paging, RRC connection establishment, RRC connection modification, and RRC connection release), inter-Radio Access Technology (RAT) mobility, and measurement configuration for UE measurement reporting; PDCP layer functionality associated with: header compression / decompression, security (encryption, decryption, integrity protection, integrity verification), and handover support functions; RLC layer functionality associated with: transmission of upper-layer packet data units (PDUs), error correction via ARQ, concatenation, segmentation and reassembly of RLC service data units (SDUs), resegmentation of RLC data PDUs, and reordering of RLC data PDUs; and MAC layer functionality associated with: mapping between logical channels and transport channels, multiplexing of MAC SDUs to transport blocks (TBs), and MAC... SDU performs demultiplexing of TB, scheduling information reporting, error correction via HARQ, priority processing, and logical channel prioritization.

[0116] Transmit (TX) processor 616 and receive (RX) processor 670 implement Layer 1 functionality associated with various signal processing functions. Layer 1, including the physical (PHY) layer, may include error detection of the transport channel, forward error correction (FEC) encoding / decoding of the transport channel, interleaving, rate matching, mapping to the physical channel, modulation / demodulation of the physical channel, and MIMO antenna processing. TX processor 616 processes the mapping to the signal constellation based on various modulation schemes (e.g., binary phase shift keying (BPSK), quadrature phase shift keying (QPSK), M-phase shift keying (M-PSK), and M-order quadrature amplitude modulation (M-QAM)). The encoded and modulated symbols can then be divided into parallel streams. Each stream can then be mapped to OFDM subcarriers, multiplexed with a reference signal (e.g., a pilot) in the time and / or frequency domains, and then combined using inverse fast Fourier transform (IFFT) to produce a physical channel carrying a stream of time-domain OFDM symbols. The OFDM streams are spatially precoded to produce multiple spatial streams. The channel estimate from channel estimator 674 can be used to determine coding and modulation schemes and for spatial processing. The channel estimate can be derived from a reference signal transmitted by UE 650 and / or channel condition feedback. Each spatial stream can then be provided to a different antenna 620 via a separate transmitter 618Tx. Each transmitter 618Tx can use the corresponding spatial stream to modulate a radio frequency (RF) carrier for transmission.

[0117] At UE 650, each receiver 654Rx receives signals through its corresponding antenna 652. Each receiver 654Rx recovers the information modulated onto the RF carrier and provides this information to the receive (RX) processor 656. The TX processor 668 and RX processor 656 implement Layer 1 functionality associated with various signal processing functions. The RX processor 656 can perform spatial processing on the information to recover any spatial stream destined for UE 650. If multiple spatial streams are destined for UE 650, they can be combined by the RX processor 656 into a single OFDM symbol stream. The RX processor 656 then uses a Fast Fourier Transform (FFT) to transform the OFDM symbol stream from the time domain to the frequency domain. The frequency domain signal consists of a separate OFDM symbol stream for each subcarrier of the OFDM signal. The symbols and reference signal on each subcarrier are recovered and demodulated by determining the most probable signal constellation point transmitted by base station 610. These soft decisions can be based on a channel estimate calculated by channel estimator 658. The soft decision is then decoded and deinterleaved to recover the data and control signals initially transmitted by base station 610 on the physical channel. The data and control signals are then provided to controller / processor 659, which implements layer 3 and layer 2 functionality.

[0118] Controller / processor 659 may be associated with memory 660, which stores program code and data. Memory 660 may be referred to as a computer-readable medium. In UL, controller / processor 659 provides demultiplexing, packet reassembly, decryption, header decompression, and control signal processing between transport and logical channels to recover IP packets. Controller / processor 659 is also responsible for error detection using ACK and / or NACK protocols to support HARQ operation.

[0119] Similar to the functionality described in conjunction with DL transmissions performed by base station 610, controller / processor 659 provides: RRC layer functionality associated with: system information (e.g., MIB, SIB) acquisition, RRC connection and measurement reporting; PDCP layer functionality associated with: header compression / decompression and security (encryption, decryption, integrity protection, integrity verification); RLC layer functionality associated with: transmission of upper-layer PDUs, error correction via ARQ, concatenation, segmentation and reassembly of RLC SDUs, resegmentation of RLC data PDUs, and reordering of RLC data PDUs; and MAC layer functionality associated with: mapping between logical channels and transport channels, multiplexing of MAC SDUs to TBs, demultiplexing of MAC SDUs from TBs, scheduling information reporting, error correction via HARQ, priority processing, and logical channel prioritization.

[0120] The channel estimate derived by channel estimator 658 from the reference signal or feedback transmitted by base station 610 can be used by TX processor 668 to select appropriate coding and modulation schemes and to facilitate spatial processing. The spatial stream generated by TX processor 668 can be provided to different antennas 652 via individual transmitters 654Tx. Each transmitter 654Tx can use the corresponding spatial stream to modulate the RF carrier for transmission.

[0121] UL transmissions are processed at base station 610 in a manner similar to that described in conjunction with the receiver function at UE 650. Each receiver 618Rx receives signals via its corresponding antenna 620. Each receiver 618Rx recovers the information modulated onto the RF carrier and provides the information to the RX processor 670.

[0122] The controller / processor 675 may be associated with a memory 676 that stores program code and data. The memory 676 may be referred to as a computer-readable medium. In UL, the controller / processor 675 provides demultiplexing, packet reassembly, decryption, header decompression, and control signal processing to recover IP packets between transport and logical channels. The controller / processor 675 is also responsible for error detection using ACK and / or NACK protocols to support HARQ operation.

[0123] Figure 7 This is a schematic diagram 700 illustrating the development process of personal computer (PC) executable files and mobile executable files for applications according to one or more technologies of this disclosure. Compared to a PC, a mobile device (e.g., a mobile phone) may have lower capabilities and computing power. For example, a mobile device (e.g., a phone) may include a first type of graphics processor, while a PC (e.g., a desktop computer) may include a second type of graphics processor, wherein the performance attributes of the second type of graphics processor are greater than those of the first type of graphics processor. For example, compared to the first type of graphics processor, the second type of graphics processor may have a higher clock rate and / or a larger amount of memory. Therefore, the experience of an application on a mobile device may be relatively limited compared to the experience of an application on a PC. For example, when an application is executed on a mobile device, it may have a lower frame rate, lower resolution, etc., compared to when the application is executed on a PC. Frame rate can refer to the number of frames per second rendered on a computing device. Lower frame rates can result in a lower quality user experience because the user may see artifacts in the displayed frames. Resolution can refer to the number of pixels displayed to the user. Example resolutions may include 720p, 1080p (HD), 4K, and 8K. Higher resolution can provide a better user experience, but it also allows you to utilize higher bandwidth.

[0124] Application developers may develop two versions of an application (e.g., a game) to run on mobile devices and PCs respectively. In some cases, application developers may not have sufficient resources to code and support both versions of the application, so they may choose to support only one version instead of both. In other cases, application developers may code and support both versions of the application (e.g., a first version running on a PC (i.e., on a PC GPU) and a second version running on a mobile device (i.e., on a mobile device GPU); however, coding and supporting two versions of the application may require a relatively large amount of computing resources and / or developer time compared to coding and supporting a single version.

[0125] Schematic diagram 700 illustrates an example 702 of the development process for PCs and mobile devices. Application developers can develop application source code 704 for their applications. Application source code 704 can be configured for either a PC GPU 706 or a mobile GPU 708. In one example, application source code 704 can be configured for a PC GPU 706, and the application developer can modify (i.e., re-encode) application source code 704 so that it can be set up for a mobile GPU 708. For example, the application developer can re-encode application source code 704 to work on a mobile GPU 708 with limited rendering capabilities. When application source code 704 is configured for a PC GPU 706, it can be compiled into a PC executable file 710. When the PC executable file 710 is executed by a PC, a PC experience 712 for the application can be provided to the user. When application source code 704 is configured for a mobile GPU, it can be compiled into a mobile executable file 714. When the mobile executable 714 is executed by a mobile device, a mobile experience 716 for the application can be provided to the user. In one example, compared to the mobile experience 716, the PC experience 712 may include a higher frame rate, a higher resolution, and / or more features.

[0126] Figure 8 This is a schematic diagram 800 illustrating an example 802 of UE edge segmentation computing spectrum according to one or more technologies of this disclosure. Segmentation computing can refer to a paradigm that enables an application running on a mobile device (e.g., a UE) to provide a user with the same (or similar) experience as when that application runs on a PC, while saving power consumption of the mobile device via data and / or communication exchanged between the mobile device and the edge (which may also be referred to as a node, compute node, server, cloud, etc.) through links. Links may include wireless local area network (WLAN) links and / or radio access network (RAN) links, such as 5G NR links.

[0127] Segmentation computation can be associated with segmentation computation spectrum 804. One end of segmentation computation spectrum 804 can be fully remote 806 (i.e., ultra-thin client). For example, XR headset 808 can be a wearable device with a relatively low-capacity battery. XR headset 808 can execute a thin client for an application. When executing a thin client, XR headset 808 can send 6-DOF head pose information 814 to cloud 810 via network node 812 (e.g., a 5G NR network node). Most of the rendering for the application can be performed in cloud 810 (e.g., on a server, at the edge, on a compute node, etc.). Cloud 810 can send shaded textures and other information 816 to XR headset 808 via network node 812. In other words, cloud 810 can send pre-rendered content (or nearly pre-rendered content) to XR headset 808. The XR headset 808 can perform minimal processing on pre-rendered content (e.g., post-reprojection) and display the processed content to the user. Therefore, users can enjoy a high-end experience associated with high-end processors on devices with relatively low-end processors, while conserving power. However, this high-end experience may depend on the quality of the link (e.g., WLAN link, 5G NR link, etc.) between the XR headset 808 and the cloud 810. If the link is unreliable, dropouts and other interruptions may occur during application execution. Fully remote 806 can be associated with relatively high compute loads at the edge, relatively low compute loads on the device, relatively high bandwidth utilization, and relatively low device battery consumption.

[0128] The segmented computation spectrum 804 can include 807 on the 2.5D client. On the 2.5D client, the client can perform additional work to reproject the 2D video based on the user / viewer's current pose.

[0129] The other end of the segmented computing spectrum 804 can be an all-in-one (AIO) standalone 818. In an AIO standalone 818, the application executes entirely (or almost entirely) on the device without assistance from the edge. An AIO standalone 818 can be associated with relatively low computational load at the edge (e.g., none), relatively high computational load on the device, relatively low amount of bandwidth being utilized (e.g., none), and relatively high device battery power being consumed.

[0130] Texture space shading 820 (which may also be referred to as vector stream) can be located between AIO independent 818 and fully remote 806 on the segmented computation spectrum 804. In texture space shading 820, the edge can send assets (e.g., textures) to the device, so that if the link between the device and the edge is interrupted, the device can perform some rendering without the edge's assistance.

[0131] Decoupled rendering 822 (which can also be referred to as segmented computation offloading) can also reside between AIO standalone 818 and fully remote 806 on the segmented computation spectrum 804. In decoupled rendering 822, the amount of computation performed on the device and the amount of computation performed at the edge can be continuously adjusted based on various factors, such as the quality of the link between the device and the edge. In one example, the quality of the link may include the amount of available bandwidth of the link, the latency of the link, and / or the error rate of transmissions sent on the link.

[0132] Figure 9 This is a schematic diagram 900 illustrating an example of a segmented computing strategy according to one or more technologies of this disclosure. In a first example 902, an XR headset 904 (or another device) and a complex edge 906 (e.g., a server, node, compute node, cloud, etc.) can be utilized in a segmented computing configuration. The XR headset 904 and the complex edge 906 can communicate via a WLAN link 908. In the first example 902, processing is minimized on the XR headset 904 and maximized on the complex edge 906. However, with processing maximized on the complex edge, a degradation in the quality of the WLAN link 908 could negatively impact the user experience on the XR headset 904.

[0133] In the second example 910, an XR headset 904 (or another device) and an edge 912 (e.g., a server, node, compute node, cloud, etc.) can be utilized in a segmented computing configuration. The XR headset 904 and the edge 912 can communicate via a 5G link 914 (i.e., a 5G NR link). In the second example 910, if the quality of the 5G link 914 degrades (e.g., if the 5G link 914 is reduced or lost), processing can be performed on the XR headset 904.

[0134] Figure 10 This is a schematic diagram 1000 illustrating an example 1002 of an operation point for segmentation computation according to one or more techniques of this disclosure. Various factors, such as the amount of device power 1004 for understanding the channel, the amount of radio power used by the device 1006, the amount of time required to understand the channel 1008 (in order to predict the channel), the current channel capacity 1010, and / or the future channel capacity 1012, can be associated with selecting the segmentation computation configuration. For example, the segmentation computation load distribution can be continuously and / or adjusted between one or more operation points (OPs) associated with the aforementioned factors.

[0135] Figure 11This is a schematic diagram 1100 illustrating an example 1102 of shifting extended reality (XR) media processing between edge 1104 and UE 1106 according to one or more techniques of this disclosure. Example 1102 relates to uplink coding for object recognition and scene understanding. In one example, UE 1106 may be an XR headset, and edge 1104 may be a server, node, compute node, cloud, etc. Example 1102 may be associated with a segmented computing configuration.

[0136] UE 1106 can determine the encoding of two-dimensional and depth information (2D+depth encoding) associated with the application performed by UE 1106. UE 1106 can send the 2D+depth encoding to edge 1104 via network node 1108 (e.g., base station). The edge can perform object recognition based on decoding the 2D+depth encoding.

[0137] UE 1106 can predict future increases in packet loss based on measurements of the communication link and / or from environmental sensors. To prepare for the upcoming increase in packet rate, UE 1106 can perform feature identification based on application-generated data and begin sending this information to edge 1104 while the communication link remains intact (low error rate). When the communication link begins to experience higher packet loss, UE 1106 can send the identified features to edge 1104 via network node 1108 using an error protection code. Performing feature identification to enable UE 1106 to send more compressed information during periods of increased packet loss can be associated with an increase in UE power consumption 1110. Edge 1104 can perform object identification based on the identified features.

[0138] Subsequently, packet loss may occur, which could lead to an increase in the link error rate 1112 between UE 1106 and edge 1104. UE 1106 can identify feature updates based on data generated by the application. UE 1106 can send feature updates with forward error correction (FEC) codes to edge 1104 via network node 1108. Edge 1104 can perform object identification based on the feature updates utilizing the FEC codes.

[0139] Subsequently, packet loss may end, potentially leading to a reduction in link error rate 1112 and UE power consumption 1110. UE 1106 can determine additional 2D+ depth coding associated with the application performed by UE 1106. UE 1106 can send the 2D+ depth coding to edge 1104 via network node 1108 (e.g., base station). The edge can perform object recognition based on decoding the 2D+ depth coding.

[0140] Figure 12This is a schematic diagram 1200 illustrating another example 1202 of XR media processing between edge 1204 and UE 1206 according to one or more techniques according to this disclosure. Example 1202 involves pixel-to-vector streaming. In one example, UE 1206 may be an XR headset, and edge 1204 may be a server, node, compute node, cloud, etc. Example 1202 may be associated with a segmented computing configuration.

[0141] Edge 1204 can generate 2D encoding and transmit the 2D encoding to UE 1206 via network node 1208 (e.g., base station). UE 1206 can perform low-power 2D decoding and late reprojection (LSR) on the 2D encoding. LSR can refer to the UE adjusting 2D video frames from the edge to match changes in the user's view / pose that have occurred after the video frame was rendered at that edge. At 1210, UE 1206 can notify edge 1204 of predicted packet loss trajectories. Edge 1204 can transmit 2D and 3D encodings to UE 1206 via network node 1208. The UE can switch from 2D decoding to 3D decoding. Switching from 2D decoding to 3D decoding may result in an increase in UE power consumption 1212.

[0142] Subsequently, predicted packet loss may occur, potentially leading to an increase in the link error rate 1214 between edge 1204 and UE 1206. Edge 1204 may send a 3D update utilizing a specified smaller bandwidth with FEC codes to UE 1206 via network node 1208. The UE may perform 3D decoding based on the 3D update utilizing FEC codes.

[0143] Subsequently, packet loss may end, potentially leading to a reduction in the link error rate 1214. Edge 1204 can generate additional 2D encoding and send this additional 2D encoding to UE 1206 via network node 1208. UE 1206 can perform low-power 2D decoding on the 2D encoding along with the LSR. Performing low-power 2D decoding reduces UE power consumption 1212.

[0144] Figure 13This is a schematic diagram 1300 illustrating an example 1302 of predicting millimeter-wave (mmW) congestion during XR application execution according to one or more techniques of this disclosure. An XR headset can generate perception information while executing an XR application. The perception information can be based on sensor data generated by sensors of the XR headset. The XR headset can utilize the perception information available for XR applications to predict (future) congestion and the resulting changes in Quality of Service (QoS). For example, congestion may affect the quality of the link between the XR headset and the edge (e.g., servers, nodes, compute nodes, the cloud, etc.). In one example, the XR headset can adjust its segmented computing configuration based on predicted congestion.

[0145] In one example, at 1304, the XR headset can generate first perception information. At 1306, 200 ms after generating the first perception information, the XR headset can generate second perception information. The XR headset can predict that congestion will occur within 100 ms based on the second perception information. At 1308, 100 ms after generating the second perception information, the XR headset can generate third perception information. The XR headset can detect that congestion has occurred based on the third perception information. For example, the XR headset can detect congestion based on a Reference Signal Received Power (RSRP) measurement. For example, the XR headset can determine that the RSRP measurement at 1308 has decreased by up to 6 dB relative to 1306. Congestion may be associated with an increased error rate and / or latency in transmissions sent to / from the XR headset. At 1310, 100 ms after generating the third perception information, the XR headset can generate fourth perception information. The XR headset can predict that a blockage will end within 100ms based on fourth-sensor information. At point 1312, 100ms after generating the fourth-sensor information, the XR headset can generate fifth-sensor information. The XR headset can detect that the blockage has ended based on the fifth-sensor information. For example, the XR headset can determine that the RSRP measurement at point 1312 has increased by up to 5dB relative to point 1310.

[0146] Figure 14This is a schematic diagram 1400 illustrating an example 1402 of a segmentation computation compiler 1404 that generates a device executable 1406 and an edge executable 1408 according to one or more techniques of this disclosure. Example 1402 may relate to decomposing an application and game engine (GE) over a radio link. Example 1402 may relate to a segmentation processing component that enables the application and GE to be logically decomposed into separate computation nodes across different complexities. Example 1402 may enable applications to be written once for various platforms (e.g., on mobile graphics processors and discrete graphics processors). Therefore, Example 1402 may enable developers to avoid developing different versions of the same application for various platforms. Furthermore, Example 1402 may provide a consistent application experience (e.g., consistent performance) on both mobile and PC-based platforms. Additionally, Example 1402 may provide flexible and dynamic adjustment of the segmentation computation configuration.

[0147] The segmentation computation compiler 1404 can obtain application source code 1410 (i.e., source code for the application). The segmentation computation compiler 1404 can perform application decomposition 1412 based on the application source code 1410, wherein application decomposition 1412 produces (or generates or identifies) device capabilities 1414 for devices (e.g., UE, XR headset, mobile phone, etc.) and edge capabilities 1416 for edges (e.g., servers, nodes, compute nodes, etc.). Device capabilities 1414 and edge capabilities 1416 can be based on the computational power and / or characteristics of the device and edge, respectively. Application decomposition 1412 can also produce / generate / identify a first set of application functions associated with a device (e.g., UE) and a second set of application functions associated with the edge.

[0148] The segmentation computation compiler 1404 can generate (e.g., compile) a device executable 1406 for the device based on application source code 1410 and device capabilities 1414. The segmentation computation compiler 1404 can also generate (e.g., compile) an edge executable 1408 for the edge based on application source code 1410 and edge capabilities 1416. The device executable 1406 may include first application logic and state 1418 for the application on the device, a synthesizer 1420, a computation orchestration manager 1422, a first codec for the application on the device, metadata and game state transmission information 1424, device GE rendering functionality 1426, modem logic 1428, and central application server communication logic 1432 (i.e., logic for communication with the central application server). The edge executable 1408 may include an edge orchestration manager 1433, second application logic and state 1434, a second codec for edge applications, metadata and game state transmission information 1436, edge GE rendering functionality 1438, RAN communication logic 1440 (i.e., logic for communication with devices via RAN (such as 5G NR RAN), IP communication logic 1442 (i.e., logic for communication with devices via IP), and central application server direct communication logic 1444 (i.e., logic for direct communication with the central application server).

[0149] In some aspects, computation orchestration manager 1422 can determine which tasks will be performed by the device and which tasks will be performed by the edge. Computation orchestration manager 1422 can send tasks for rendering to device GE rendering function 1426. Computation orchestration manager 1422 can receive rendered results (e.g., device-rendered media) from device GE rendering function 1426. Computation orchestration manager 1422 can also access first codecs, metadata, and game state transmission information 1424 for applications used by the device to facilitate functionality performed by applications used by the device. First codecs, metadata, and game state transmission information 1424, along with device GE rendering function 1426, can be collectively referred to as “UE application functions,” “device application functions,” or “a first set of application functions associated with the UE.” Computation orchestration manager 1422 may be or include device segmentation computation orchestrator 198.

[0150] In some aspects, the edge orchestration manager 1433 can determine which tasks will be performed by the device and which tasks will be performed by the edge. The edge orchestration manager 1433 can send tasks for rendering to the edge GE rendering function 1438. The edge orchestration manager 1433 can receive the rendered results from the edge GE rendering function 1438. Compared to the device GE rendering function 1426, the edge GE rendering function 1438 can be configured to handle more complex rendering. The edge orchestration manager 1433 can also access the second codec, metadata, and game state transmission information 1436 for applications used at the edge to facilitate functionality performed by applications used at the device. The second codec, metadata, and game state transmission information 1436, along with the edge GE rendering function 1438, can be collectively referred to as "edge application functionality," "server application functionality," or "a set of second application functionality associated with a server."

[0151] Modem logic 1428 may include logic for sending data to / receiving data from the edge. In one example, modem logic 1428 may include first logic for communication via RAN (e.g., 5G NR RAN) and second logic for communication via IP (e.g., via WLAN). Modem logic 1428 may include logic for determining the quality of the link between the device and the edge and for predicting the future quality of the link between the device and the edge. Link quality may include bandwidth associated with the link, latency associated with the link, and / or error rate associated with the link. Modem logic 1428 may provide link status and predictions 1430 to computation orchestration manager 1422. Computation orchestration manager 1422 may determine, based on link status and predictions 1430, which tasks will be performed by the device and which tasks will be performed by the edge. In other words, computation orchestration manager 1422 may select a partitioned computation configuration between the device and the edge based on link status and predictions 1430. Computation orchestration manager 1422 may request the edge to perform certain tasks based on the selected partitioned computation configuration. For example, the computation orchestration manager can request (e.g., via modem logic 1428) edge rendering of certain assets (e.g., graphics objects) associated with the application.

[0152] RAN communication logic 1440 may include logic for sending data to / receiving data from a device via the RAN. IP communication logic 1442 may include logic for sending data to / receiving data from a device via IP. RAN communication logic 1440 and / or IP communication logic 1442 may include logic for determining the quality of the link between the device and the edge, and for predicting the future quality of the link between the device and the edge. Link quality may include bandwidth associated with the link, latency associated with the link, and / or error rate associated with the link. RAN communication logic 1440 and / or IP communication logic 1442 may provide link status and predictions 1443 to edge orchestration manager 1433. Edge orchestration manager 1433 may determine, based on link status and predictions 1443, which tasks will be performed by the device and which tasks will be performed by the edge. In other words, edge orchestration manager 1433 may select a partitioned computation configuration between the device and the edge based on link status and predictions 1443. Edge orchestration manager 1433 may request the device to perform certain tasks based on the selected partitioned computation configuration. For example, the edge orchestration manager 1433 may request (e.g., via RAN communication logic 1440 and / or IP communication logic 1442) the UE to render certain assets (e.g., graphical objects) associated with the application.

[0153] The device executable 1406 may also include a compositor 1420, which can communicate with the first application logic and state 1418 and the computational orchestration manager 1422. The compositor 1420 can determine the order of different objects to be rendered. For example, the compositor 1420 can determine which objects will be in front of other objects. The compositor 1420 can create a final image based on different layers associated with the image, where different layers may be associated with different transparency, depth order, etc. In one example, the computational orchestration manager 1422 (or edge orchestration manager 1433) can optionally indicate a segmentation computational configuration that will render a first asset on the device and a second asset on the edges. The computational orchestration manager 1422 can obtain the first asset (e.g., a first object to be displayed, a second layer to be displayed, etc.) from the device GE rendering function 1426, and the computational orchestration manager 1422 can obtain the second asset (e.g., a second object to be displayed, a second layer to be displayed, etc.) from the edges. The computational orchestration manager 1422 can provide a first asset and a second asset to the synthesizer 1420, wherein the synthesizer 1420 can determine the order of the first asset and the second asset. The synthesizer 1420 can provide an instruction on the order of the first asset and the second asset to a first application logic and a state 1418, wherein the first application logic and the state 1418 can cause the first asset and the second asset to be displayed based on the instruction on the order.

[0154] In some aspects, the first application logic and state 1418 may be identical to the second application logic and state 1434, enabling the device and the edge to each run separate instances of the application. In other aspects, the second application logic and state 1434 may be a subset of the first application logic and state 1418. In one example, the first application logic and state 1418 may include information enabling the device to run the application with or without assistance from the edge, and the second application logic and state 1434 may include information enabling the edge to perform functionality (e.g., rendering) in a segmented computation configuration even when the edge cannot fully run a separate instance of the application.

[0155] As described above, the device executable 1406 may include central application server communication logic 1432. For example, the application could be a multiplayer game played by different players on different devices, and the central application server communication logic 1432 enables the device to communicate with the central application server. In one example, the device can use the central application server communication logic 1432 to establish a session with the central application server. The device can obtain status information and / or media information from the central application server via the central application server communication logic 1432. The device can synchronize with the edge based on the status information and / or media information. In another example, the edge can use central application server direct communication logic 1444 to establish a session with the central application server. The edge can obtain status information and / or media information from the central application server via the central application server direct communication logic 1444. The edge can synchronize with the device based on the status information and / or media information.

[0156] Figure 15 This is a schematic diagram 1500 illustrating an example of a developer computing device 1502 including a segmentation computation compiler according to one or more technologies of this disclosure. As will be discussed below, the developer computing device 1502 can be used by developers to develop applications. The developer computing device 1502 may include a processor 1504. The processor 1504 may include a CPU and / or a GPU. The developer computing device 1502 may include a memory 1506, wherein the memory 1506 may store the application source code 1410 and the segmentation computation compiler 1404 described above. The developer computing device 1502 may include a data storage 1508, wherein the data storage 1508 may include the device executable file 1406 and the edge executable file 1408 described above. For example, the processor 1504 of the developer computing device 1502 may execute the segmentation computation compiler 1404 on the application source code 1410 to generate the device executable file 1406 and the edge executable file 1408. The application source code 1410 and / or the segmentation computation compiler 1404 may also be stored in the memory 1506.

[0157] Developer computing device 1502 may include input device 1510, which enables developer computing device 1502 to receive input from a user (e.g., a developer). In one example, the input may be associated with application source code 1410. Input device 1510 may include a mouse, keyboard, touchscreen, scroll wheel, microphone, etc. Developer computing device 1502 may include output device 1512, which enables developer computing device 1502 to output information to a user (e.g., a developer). Output device 1512 may include a display (e.g., a touchscreen display), speaker, printer, etc. Developer computing device 1502 may include communication device 1514, which enables developer computing device 1502 to communicate with other computing devices. In one example, communication device 1514 may include a modem.

[0158] Developer computing device 1502 can execute split computing compiler 1404 and generate device executable file 1406 and edge executable file 1408 as described above. Developer computing device 1502 can provide device executable file 1406 and edge executable file 1408 to application deployment agency 1516 (e.g., online application store). For example, developer computing device 1502 can upload device executable file 1406 and edge executable file 1408 to application deployment agency 1516 via communication device 1514. Application deployment agency 1516 can send device executable file 1406 to device 104 and edge executable file 1408 to edge 1518. As described above, edge 1518 can be or includes servers, compute nodes, nodes, clouds, etc.

[0159] In some aspects, the segmentation computing compiler 1404 and / or developer computing device 1502 can be configured to: obtain source code for an application; decompose the source code into a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with at least one server, wherein at least one of the first set of application functions or the second set of application functions is associated with the quality of the link between the UE and the at least one server; generate a first executable file for the UE based on the first set of application functions and generate a second executable file for the at least one server based on the second set of application functions; and provide the first executable file for the UE and the second executable file for the at least one server.

[0160] Figure 16This is a schematic diagram 1600 illustrating an example of sharing a game state between an edge and a UE (i.e., a device) according to one or more technologies of this disclosure. The UE 1602 can generate a locally rendered view 1604 (e.g., UE-rendered media) via a local rendering loop 1606 while executing a device executable 1406 for an application. The UE 1602 can maintain a first game state 1608 while executing the device executable 1406. For example, the first game state 1608 may include first details related to graphical objects of the application. Similarly, the edge can generate an edge-rendered view 1610 while executing the edge executable 1408. The edge can maintain a second game state 1612 while executing the edge executable 1408. For example, the second game state 1612 may include second details related to graphical objects of the application. The UE 1602 and the edge can synchronize the first game state 1608 and the second game state 1612. UE 1602 may include logic for switching between locally rendered (e.g., locally rendered view 1604) and remotely rendered views (e.g., edge-rendered views) based on the quality of the link between UE 1602 and the edge. In other words, UE 1602 may include a rendering pipeline for supporting split-rendering applications (e.g., mobile applications).

[0161] Figure 17 This is a schematic diagram 1700 illustrating examples of devices, servers, and central application servers according to one or more technologies according to this disclosure. In a first example 1702, device 104 can execute a device executable file 1406 that causes device application 1704 to run on device 104. Edge 1518 may include a processor 1720. Processor 1720 may be or include a graphics processor (e.g., GPU and / or CPU). Edge 1518 may include memory 1722 storing edge executable file 1408. Edge 1518 can execute edge executable file 1408 that causes edge application 1706 to run on edge 1518. Edge 1518 may also include a communication device 1710 (e.g., a modem or IP router interface) that enables edge 1518 to communicate with device 104 (and other devices).

[0162] In the second example 1712, device 104 and edge 1518 can communicate with central application server 1714. Central application server 1714 may include processor 1716 (e.g., graphics processor, CPU, etc.). Central application server 1714 may include memory 1718 storing coordination application 1721, which coordinates communication between device 104, edge 1518, and other devices. Figure 17The transmission of information between devices (not shown in the image). In one example, device application 1704 and edge application 1706 can be associated with multiplayer games or multi-user virtual environments such as Metaverse, and coordination application 1721 can transmit status information and media information to device 104, edge 1518, and other devices (not shown in the image). Figure 17 (Not shown in the image). The central application server 1714 may also include a communication device 1723 (e.g., a modem or IP router interface), which enables the central application server 1714 to communicate with device 104, edge 1518, and other devices. Figure 17 (Not shown in the image) communicates.

[0163] In some aspects, edge 1518 can be configured to: obtain an executable file for an application, which includes a first set of application functions associated with the UE and a second set of application functions associated with the server; obtain an estimated quality of the link between the UE and the server; obtain a segmentation calculation configuration between the first set of application functions and the second set of application functions based on the estimated quality of the link; and output an indication of the segmentation calculation configuration.

[0164] Figure 18 This is a schematic diagram 1800 illustrating an example 1802 of a UE application sharing game state according to one or more technologies of this disclosure. The UE can send gesture, controller, and game engine data 1803 to the edge, and the edge can render edge media information (“edge-rendered media”) based on the gesture, controller, and game engine data 1803. In one example, the UE can send the gesture, controller, and game engine data 1803 via the UE's compute queue 1804. A media buffer interface 1806 associated with the edge can provide the edge-rendered media to a media processor 1808 associated with the UE. The UE can also perform UE rendering 1810 to render UE media information (“UE-rendered media”). For example, the UE can perform UE rendering 1810 while receiving edge-rendered media from the edge. UE rendering 1810 may include filtering mesh drawing commands, recording command buffers, submitting data for rendering, and synchronization.

[0165] The UE's switching chain 1812 can select either edge-rendered media (or a portion thereof) or UE-rendered media (or a portion thereof) for final display on the UE based on various factors (e.g., the quality of the link between the UE and the edge). The switching chain 1812 can be a series of virtual frame buffers used by the UE's graphics processor and / or its graphics application programming interface (API) for frame rate stabilization, discontinuity reduction, and other purposes. The UE may also include message processing / GPU job generation 1814, which can control UE rendering 1810 based on various factors to reduce UE power consumption. For example, message processing / GPU job generation 1814 can disable UE rendering 1810 when the quality of the link between the UE and the edge meets performance metrics (e.g., when the link has bandwidth capable of adapting to a specific frame rate, when the link has latency meeting a target latency, when the link has an error rate below an error rate threshold, etc.). When the quality of the link between the UE and the edge does not meet performance metrics (e.g., when the link has bandwidth that cannot adapt to a specific frame rate, when the link has latency that does not meet the target latency, when the link has an error rate higher than the error rate threshold, etc.), message processing / GPU job generation 1814 can enable UE rendering 1810. The edge can also provide control information to the UE via auxiliary message interface 1816. For example, when the quality of the link between the UE and the edge meets performance metrics (e.g., when the link has bandwidth that can adapt to a specific frame rate, when the link has latency that meets the target latency, when the link has an error rate lower than the error rate threshold, etc.), the edge can disable UE rendering 1810. When the quality of the link between the UE and the edge does not meet performance metrics (e.g., when the link has bandwidth that cannot adapt to a specific frame rate, when the link has latency that does not meet the target latency, when the link has an error rate higher than the error rate threshold, etc.), the edge can enable UE rendering 1810.

[0166] Figure 19 This is a schematic diagram 1900 illustrating example aspects of adaptive rate control and adaptive segmentation acceleration control according to one or more technologies of this disclosure. A link (e.g., a WLAN link, a 5G NR link, etc.) can be used for state and media updates from a central application server to avoid latency, errors, and data rate limitations associated with a path from the central application server (e.g., central application server 1714) to the UE (e.g., device 104) to the edge (e.g., edge 1518) that can traverse the wireless link twice. For example, the link can enable the edge to be tightly synchronized with the central application server. The link can also enable the edge to perform computations that the UE can utilize when the link quality meets a quality threshold. To accommodate the aforementioned synchronization and computation, segmentation sessions can be established with both the central application server and both the UE and the edge. For example, briefly refer to... Figure 17 It can establish segmented sessions with the central application server 1714, as well as device 104 and edge 1518. The central application server 1714 can distribute game / application state information and / or media, along with associated metadata, to device 104 and edge 1518 to avoid “triangulating” state information and / or media information to edge 1518. In an example involving online multiplayer games, edge 1518 can render assets (e.g., player characters), and these assets can be composited by device 104 for display on device 104.

[0167] Return to reference Figure 19 Schematic diagram 1900 includes a first plot 1902 of Adaptive Rate Control (ARC). First plot 1902 illustrates the relationship between downlink bit rate 1904 and downlink delay normalized error rate 1906. First plot 1902 shows the expected ARC behavior within a fixed rendering segment. First plot 1902 may show that as congestion on the link increases, the rate (i.e., video quality) can be reduced. In other words, as the downlink delay normalized error rate 1906 increases, the downlink bit rate 1904 can decrease. In one example, the UE and / or edge may utilize the aspects shown in first plot 1902 to rate-adapt media information (i.e., change the bit rate of the media information) to provide a moderately degraded user experience on the UE.

[0168] Schematic 1900 also includes a second plot 1908 for adapting segmentation and rate control. The second plot 1908 illustrates the relationship between bit rate 1910, client computation 1912, and tolerable latency 1914. The second plot 1908 also illustrates (different) rendering segments 1916 (visually shown as dark circles) with respect to bit rate 1910, client computation 1912, and tolerable latency 1914. Rendering segment 1916 can also be referred to as segmentation computation configuration. The platform (i.e., UE, edge, central application server, and / or a combination thereof) can support multiple rendering segments. When supporting (different) rendering segments 1916, the edge can dynamically determine the rendering segment to utilize based on backlink sensing and / or client capabilities (i.e., UE capabilities). The second plot 1908 illustrates that increased segmentation selection (i.e., increased segmentation computation configuration) can lead to a higher-dimensional approach for ARC and avoid prudently degrading the user experience.

[0169] Indication Figure 20This is a call flow diagram 2000 illustrating example communication between a developer computing device 2006, a UE 2002, and a server 2004 according to one or more technologies of this disclosure. At 2008, the developer computing device 2006 can obtain source code for an application. At 2010, the developer computing device 2006 can decompose the source code into a first set of application functions for the UE 2002 and a second set of application functions for the server 2004. In one example, decomposing the source code into the first set of application functions and the second set of application functions may be based on the capabilities of the UE 2002 (e.g., the graphics processor of the UE 2002) and the server 2004 (e.g., the graphics processor at the server 2004), respectively. At 2012, the developer computing device 2006 can generate a first executable file for the UE 2002 based on the first set of application functions and a second executable file for the server 2004 based on the second set of application functions. When executed by the processor, the first executable and the second executable can respectively enable a first instance of the application to run on UE 2002 and a second instance of the application to run on server 2004. At 2014, developer computing device 2006 can deploy the first executable on UE 2002 (e.g., via a content distribution agency). At 2016, developer computing device 2006 can deploy the second executable on server 2004 (e.g., via a content distribution agency).

[0170] At 2018, UE 2002 can obtain the first executable file. At 2020, server 2004 can obtain the second executable file. At 2022, UE 2002 can obtain a link (e.g., such as Wi-Fi) between UE 2002 and server 2004. TM The estimated quality of a link (such as a WLAN link, a RAN link, or a 5G NR link). In one example, UE 2002 can estimate the link quality via its hardware and / or software. In another example, server 2004 can estimate the link quality via its hardware and / or software, and server 2004 can send an indication of the estimated link quality to UE 2002. According to some examples, the estimated link quality can be based on the power consumed by UE 2002, the power consumption characteristics of UE 2002's transceiver and / or antenna, the current channel capacity and / or future channel capacity of the link, and environmental sensor data (such as video images of the physical space) that may affect link quality.

[0171] At 2024, UE 2002 can identify performance metrics associated with an application. Performance metrics may include the frame rate of the application on UE 2002, the display resolution of the application on UE 2002, and / or the operational state of the application on UE 2002 (e.g., whether the application is rendering a high-motion fight scene or a slowly panning image of a scenic environment to the user). At 2026, UE 2002 can determine the corresponding quality of the links used for segmented computation configuration.

[0172] At time 2028, UE 2002 can obtain the future quality of the link between UE 2002 and server 2004. In one example, at the first time instance, UE 2002 can estimate the future quality of the link at the second time instance that occurs after the first time instance. In another example, at the first time instance, server 2004 can estimate the future quality of the link at the second time instance that occurs after the first time instance, and server 2004 can send an indication of the future quality of the link to UE 2002. Furthermore, at time 2028, UE 2002 can obtain the confidence level of the predicted future quality of the link. In one example, at the first time instance, UE 2002 can estimate this confidence level. In another example, at the first time instance, UE 2002 can receive an indication of this confidence level from server 2004.

[0173] At point 2030, UE 2002 can obtain a segmentation computation configuration between the first application function set and the second application function set based on the estimated link quality. In one example, UE 2002 can select a segmentation computation configuration based on the estimated link quality (e.g., from a number of different segmentation computation configurations). In another example, server 2004 can select a segmentation computation configuration based on the estimated link quality (e.g., from a number of different segmentation computation configurations), and server 2004 can send an indication of the segmentation computation configuration to UE 2002. In some aspects, UE 2002 can additionally obtain the segmentation computation configuration based on the future quality of the link, performance metrics, and / or the corresponding quality of the link used for the segmentation computation configuration.

[0174] At 2032, UE 2002 can output an instruction on the obtained segmentation calculation configuration. For example, at 2034, UE 2002 can send an instruction on the segmentation calculation configuration to server 2004. At 2036, UE 2002 can execute a first executable file based on the segmentation calculation configuration obtained at 2030. Although the first executable file is shown in the schematic diagram as executing after 2022, 2024, 2026, 2028, 2030, 2032, and 2034, the first executable file can be executed concurrently with the execution of 2022, 2024, 2026, 2028, 2030, 2032, and 2034. At 2038, server 2004 can execute a second executable file based on the segmentation calculation configuration. Execution of the first executable and the second executable can cause graphics or 3D data (e.g., media rendered by the UE and / or media rendered by the server) to be displayed on the UE 2002's display.

[0175] In one aspect, at 2040, UE 2002 can determine the server-rendered media to utilize based on the segmentation calculation configuration. At 2042, UE 2002 can send a request for the server-rendered media to server 2004. At 2044, server 2004 can calculate the server-rendered media based on the received request and the segmentation calculation configuration and send the server-rendered media to UE 2002. Alternatively, server 2004 can send the server-rendered media to UE 2002 based on the segmentation calculation configuration without receiving a request from UE 2002. In one example, UE 2002 can display the server-rendered media on its display.

[0176] In one aspect, at 2046, UE 2002 can compute UE-rendered media based on a segmented computation configuration. UE 2002 can then present the UE-rendered media on its display. In one example, UE 2002 can present UE-rendered media simultaneously with server-rendered media. For example, the server-rendered media may be computationally intensive (e.g., ray-traced graphics), and the UE-rendered media may be less computationally intensive compared to the server-rendered media. At 2048, UE 2002 can select either UE-rendered media or server-rendered media based on a switching chain. UE 2002 can then present the selected media on its display.

[0177] At 2050, UE 2002 can obtain an updated estimated quality of the link between UE 2002 and server 2004 at a time instance occurring after 2022. In one example, UE 2002 can estimate the updated quality of the link. In another example, server 2004 can estimate the updated quality of the link, and server 2004 can send an indication of the updated estimated quality of the link to UE 2002.

[0178] At 2052, UE 2002 can obtain a second segmentation calculation configuration based on the updated estimated quality of the link. In one example, UE 2002 can select a second segmentation calculation configuration based on the updated estimated quality of the link (e.g., from a number of different segmentation calculation configurations). In another example, server 2004 can select a second segmentation calculation configuration based on the updated estimated quality of the link (e.g., from a number of different segmentation calculation configurations), and server 2004 can send an indication of the second segmentation calculation configuration to UE 2002. At 2054, UE 2002 can send an indication of the second segmentation calculation configuration to server 2004. Alternatively, at 2054, the indication can instruct server 2004 to select a second segmentation calculation configuration or server 2004 to perform rate adaptation on information associated with the application.

[0179] In one aspect, at 2056, UE 2002 may receive from server 2004 an indication that UE 2002 wants to select a second segmentation calculation configuration or that UE 2002 wants to rate-adapt information associated with the application (e.g., change the bit rate of information associated with the application). In one aspect, at 2058, UE 2002 may establish a session with an application server for the application, during which it obtains state information and / or media information for the application from the application server, and synchronizes with server 2004 based on the state information and / or media information. In one aspect, at 2060, UE 2002 may display frames generated based on the segmentation calculation configuration.

[0180] Figure 21This is a call flow diagram 2100 illustrating example communication between developer computing device 2106, UE 2102, and server 2104 according to one or more technologies of this disclosure. At 2108, developer computing device 2106 can obtain source code for an application. At 2110, developer computing device 2106 can decompose the source code into a first set of application functions for UE 2102 and a second set of application functions for server 2104. In one example, decomposing the source code into the first set of application functions and the second set of application functions may be based on the capabilities of UE 2102 (e.g., the graphics processor of UE 2102) and the capabilities of server 2104 (e.g., the graphics processor at server 2104, etc.), respectively. At 2112, developer computing device 2106 can generate a first executable file for UE 2102 based on the first set of application functions and a second executable file for server 2104 based on the second set of application functions. When executed by the processor, the first executable and the second executable can respectively enable a first instance of the application to run on UE 2102 and a second instance of the application to run on server 2104. At 2114, developer computing device 2106 can deploy the second executable on server 2104 (e.g., via a content distribution agency). At 2116, developer computing device 2106 can deploy the first executable on UE 2102 (e.g., via a content distribution agency).

[0181] At 2118, server 2104 can obtain a second executable file. At 2120, UE 2102 can obtain a first executable file. At 2122, server 2104 can obtain an estimated quality of the link (e.g., a WLAN link, a RAN link such as a 5G NR link, etc.) between UE 2102 and server 2104. In one example, server 2104 can estimate the link quality via its own hardware and / or software. In another example, UE 2102 can estimate the link quality via its own hardware and / or software, and UE 2102 can send an indication of the estimated link quality to server 2104. According to some examples, the estimated link quality can be based on the power consumed by UE 2102, the power consumption characteristics of UE 2102's transceiver and / or antenna, the current channel capacity of the link, and / or the future channel capacity of the link.

[0182] At 2124, server 2104 can identify performance metrics associated with the application. Performance metrics may include the frame rate of the application on UE 2102, the display resolution of the application on UE 2102, and / or the operational status of the application on UE 2102 (e.g., error rate). At 2126, server 2104 can determine the corresponding quality of the links used for segmenting the computational configuration.

[0183] At 2128, server 2104 can obtain the future quality of the link between UE 2102 and server 2104. In one example, at the first time instance, server 2104 can estimate the future quality of the link at the second time instance occurring after the first time instance. In another example, at the first time instance, UE 2102 can estimate the future quality of the link at the second time instance occurring after the first time instance, and UE 2102 can send an indication of the future quality of the link to server 2104. Furthermore, at 2028, server 2104 can obtain the confidence level of the future quality of the link. In one example, at the first time instance, server 2104 can estimate this confidence level. In another example, at the first time instance, server 2104 can receive an indication of this confidence level from UE 2102.

[0184] At 2130, server 2104 can obtain a segmentation computation configuration between the first application function set and the second application function set based on the estimated link quality. In one example, server 2104 can select a segmentation computation configuration based on the estimated link quality (e.g., from a number of different segmentation computation configurations). In another example, UE 2102 can select a segmentation computation configuration based on the estimated link quality (e.g., from a number of different segmentation computation configurations), and UE 2102 can send an indication of the segmentation computation configuration to server 2104. In some aspects, server 2104 can additionally obtain the segmentation computation configuration based on the future quality of the link, performance metrics, and / or the corresponding quality of the link used for the segmentation computation configuration.

[0185] At 2132, server 2104 can output an instruction on the obtained segmentation calculation configuration. For example, at 2134, server 2104 can send an instruction on the segmentation calculation configuration to UE 2102. At 2136, server 2104 can execute a second executable file based on the segmentation calculation configuration obtained at 2130. Although the second executable file is shown in the schematic diagram as executing after 2122, 2124, 2126, 2128, 2130, 2132, and 2134, the second executable file can be executed simultaneously with the execution of 2122, 2124, 2126, 2128, 2130, 2132, and 2134. At 2138, UE 2102 can execute a first executable file based on the segmentation calculation configuration. Execution of the first executable file and the second executable file can cause graphical data (e.g., media rendered by the UE and / or media rendered by the server) to be displayed on the display of the UE 2102.

[0186] In one aspect, at 2140, UE 2102 can determine the server-rendered media to utilize based on the segmentation calculation configuration. At 2142, UE 2102 can send a request for the server-rendered media to server 2104. At 2144, server 2104 can calculate the server-rendered media based on receiving the request and the segmentation calculation configuration and send the server-rendered media to UE 2102. Alternatively, server 2104 can send the server-rendered media to UE 2102 based on the segmentation calculation configuration without receiving a request from UE 2102. In one example, UE 2102 can display the server-rendered media on its display.

[0187] In one aspect, at 2146, UE 2102 can compute UE-rendered media based on a segmented computation configuration. UE 2102 can then display the UE-rendered media on its display. In one example, UE 2102 can display UE-rendered media simultaneously with server-rendered media. For example, the server-rendered media may be computationally intensive (e.g., ray-traced graphics), and the UE-rendered media may be less computationally intensive compared to the server-rendered media. At 2148, UE 2102 can select either UE-rendered media or server-rendered media based on a switching chain. UE 2102 can then display the selected media on its display.

[0188] At 2150, server 2104 can obtain the updated estimated quality of the link between UE 2102 and server 2104 at the time instance occurring after 2122. In one example, server 2104 can estimate the updated quality of the link. In another example, UE 2102 can estimate the updated quality of the link, and UE 2102 can send an indication of the updated estimated quality of the link to server 2104.

[0189] At 2152, server 2104 can obtain a second segmentation computation configuration based on the updated estimated quality of the link. In one example, server 2104 can select a second segmentation computation configuration based on the updated estimated quality of the link (e.g., from a number of different segmentation computation configurations). In another example, UE 2102 can select a second segmentation computation configuration based on the updated estimated quality of the link (e.g., from a number of different segmentation computation configurations), and UE 2102 can send an indication of the second segmentation computation configuration to server 2104. At 2154, server 2104 can send an indication of the second segmentation computation configuration to UE 2102. Alternatively, at 2154, server 2104 can send an indication that instructs UE 2102 to select a second segmentation computation configuration or that UE 2102 wants to rate-adapt information associated with the application.

[0190] In one aspect, at 2156, server 2104 may receive from UE 2102 an indication that server 2104 wants to select a second segmentation calculation configuration or that server 2104 wants to rate-adapt information associated with the application (e.g., change the bit rate of information associated with the application). In one aspect, at 2158, server 2104 may establish a session with an application server for the application, during which it obtains status information and / or media information for the application from the application server, and synchronizes with UE 2102 based on the status information and / or media information.

[0191] Figure 22 This is a flowchart 2200 illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be performed by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21 The method is executed using devices such as graphics processing devices, GPUs, CPUs, wireless communication devices, etc. In one example, the method can be executed by a device segmentation computation orchestrator 198.

[0192] At 2202, the device (e.g., device 104) obtains an executable file for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE. For example, Figure 20 At 2018, it is shown that UE 2002 can obtain a first executable file. In one example, the executable file may be device executable file 1406. In one example, 2202 may be executed by device segmentation calculation orchestrator 198.

[0193] At 2204, the device (e.g., device 104) obtains an estimated quality of the link between the UE and the computing device. For example, Figure 20 At position 2202, it is shown that UE 2002 can obtain an estimated quality of the link between UE 2002 and server 2004. In one example, 2204 can be performed by device segmentation calculation orchestrator 198.

[0194] At 2206, the device (e.g., device 104) obtains the segmentation computation configuration between the first application function set and the second application function set based on the estimated quality of the link. For example, Figure 20 At 2030, it is shown that UE 2002 can obtain a segmentation calculation configuration based on the estimated quality of the link between UE 2002 and server 2004. In one example, 2206 can be performed by device segmentation calculation orchestrator 198.

[0195] At 2208, the device (e.g., apparatus 104) outputs instructions for the segmentation calculation configuration. For example, Figure 20 At 2032, it is shown that UE 2002 can output instructions for the segmentation calculation configuration. In one example, 2208 can be performed by the device segmentation calculation orchestrator 198.

[0196] Figure 23A Flowchart 2300A is an example method of graphic processing based on one or more techniques according to this disclosure. Figure 23B Flowchart 2300B is an example method of graphic processing based on one or more techniques according to this disclosure. Figure 23C This is a flowchart 2300C illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be implemented by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21The method is executed using devices such as graphics processing devices, GPUs, CPUs, wireless communication devices, etc. In one example, the method (including the aspects detailed below) can be executed by a device segmentation computation orchestrator 198.

[0197] At 2302, the device (e.g., device 104) obtains an executable file for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE. For example, Figure 20 At 2018, it is shown that UE 2002 can obtain a first executable file. In one example, the executable file can be device executable file 1406. In one example, 2302 can be executed by device segmentation calculation orchestrator 198.

[0198] At 2304, the device (e.g., device 104) obtains an estimated quality of the link between the UE and the computing device. For example, Figure 20 At position 2022, it is shown that UE 2002 can obtain an estimated quality of the link between UE 2002 and server 2004. In one example, 2304 can be performed by device segmentation calculation orchestrator 198.

[0199] At 2314, the device (e.g., device 104) obtains the segmentation computation configuration between the first application function set and the second application function set based on the estimated quality of the link. For example, Figure 20 At 2030, it is shown that UE 2002 can obtain a segmentation calculation configuration based on the estimated quality of the link between UE 2002 and server 2004. In one example, 2314 can be performed by device segmentation calculation orchestrator 198.

[0200] At point 2316, the device (e.g., apparatus 104) outputs instructions for the segmentation calculation configuration. For example, Figure 20 At 2032, it is shown that UE 2002 can output instructions for the segmentation calculation configuration. In one example, 2316 can be performed by the device segmentation calculation orchestrator 198.

[0201] In one aspect, obtaining the estimated quality of the link may include estimating the quality of the link between the UE and the computing device, and obtaining the segmented computing configuration may include selecting the segmented computing configuration based on the estimated quality of the link. For example, obtaining the estimated quality of the link at 2022 may include estimating the quality of the link between the UE and the server 2004, and obtaining the segmented computing configuration at 2030 may include selecting the segmented computing configuration based on the estimated quality of the link.

[0202] In one aspect, obtaining the estimated quality of the link may include receiving an indication of the estimated quality of the link from a computing device, and obtaining the segmentation computing configuration may include selecting the segmentation computing configuration based on the indication of the estimated quality of the link. For example, obtaining the estimated quality of the link at 2022 may include receiving an indication of the estimated quality of the link from server 2004, and obtaining the segmentation computing configuration at 2030 may include selecting the segmentation computing configuration based on the indication of the estimated quality of the link.

[0203] In one aspect, obtaining the estimated quality of the link may include estimating the quality of the link between the UE and the computing device, and obtaining the segmentation computing configuration may include sending an indication of the estimated quality of the link to the computing device. For example, obtaining the estimated quality of the link at 2022 may include estimating the quality of the link between the UE 2002 and the server 2004, and obtaining the segmentation computing configuration at 2030 may include sending an indication of the estimated quality of the link to the server 2004.

[0204] In one aspect, obtaining the segmentation computation configuration may include receiving the segmentation computation configuration from a computing device based on an indication of the estimated quality of the link. For example, obtaining the estimated quality of the link at 2022 may include receiving the segmentation computation configuration from a server 2004 based on an indication of the estimated quality of the link.

[0205] In one aspect, at 2318, the apparatus (e.g., device 104) can execute an executable file for an application based on a segmented computational configuration. For example, Figure 20 At 2036, it is shown that UE 2002 can execute a first executable file based on a segmentation calculation configuration. In one example, 2318 can be executed by a device segmentation calculation orchestrator 198.

[0206] In one aspect, at 2320, the apparatus (e.g., device 104) can receive from the computing device an updated indication of the quality of the link between the UE and the computing device. For example, Figure 20 At 2050, it is shown that UE 2002 can receive an updated quality indication of the link between UE 2002 and server 2004 from server 2004. In one example, 2320 can be performed by device segmentation calculation orchestrator 198.

[0207] In one aspect, at 2322, the apparatus (e.g., device 104) can select a second segmented computing configuration between a first set of application functions and a second set of application functions based on an updated indication of the quality of the link between the UE and the computing device. For example, Figure 20At 2052, it is shown that UE 2002 can select a second segmentation calculation configuration. In one example, 2322 can be performed by the device segmentation calculation orchestrator 198.

[0208] In one aspect, at 2306, the apparatus (e.g., device 104) can determine the corresponding quality of a link for each segmentation computing configuration in a set of segmentation computing configurations including segmentation computing configurations, wherein the segmentation computing configuration can be further obtained based on the corresponding quality of the link for each segmentation computing configuration in the set of segmentation computing configurations. For example, Figure 20 At position 2026, it is shown that UE 2002 can determine the quality of the links used for segmentation calculation configuration. In one example, 2306 can be performed by the device segmentation calculation orchestrator 198.

[0209] In one aspect, the quality of the link between the UE and the computing device can be based on: the power consumed by the UE during application execution, a set of power consumption characteristics of at least one of the UE's transceiver or antenna, the time period for understanding the channel associated with the link, the current channel capacity associated with the link (e.g., current link capacity), or the future channel capacity associated with the link. For example, Figure 10 The quality of the link between the UE and at least one server is shown to be based on: the power consumed by the UE during the execution of the application, the power consumption characteristics of at least one of the UE's transceiver or antenna, the time period of understanding the channel associated with the link, the current channel capacity associated with the link, or the future channel capacity associated with the link.

[0210] In one aspect, the link may include at least one of a RAN link or a WLAN link. For example, Figure 9 It is shown that the link may include at least one of a RAN link or a WLAN link.

[0211] In one aspect, at 2308, the apparatus (e.g., device 104) can identify a set of performance metrics associated with the application (e.g., frame rate, image quality, motion-to-rendering-to-photon latency), wherein the segmentation computation configuration can be further obtained based on the set of performance metrics. For example, Figure 20 At point 2024, it is shown that UE 2002 can identify performance metrics associated with applications. In one example, 2308 can be performed by device segmentation calculation orchestrator 198.

[0212] In one aspect, the segmented computation configuration can maintain a set of performance metrics while minimizing the UE's power consumption. For example, the segmented computation configuration obtained at 2030 can maintain the performance metrics identified at 2024 while minimizing the power consumption of UE2002.

[0213] In one aspect, the set of performance metrics may include at least one of the application's frame rate, the application's display resolution, or the application's operational state. For example, the performance metrics identified at 2024 may include at least one of the application's frame rate, the application's display resolution, or the application's operational state.

[0214] In one aspect, at 2310, the apparatus (e.g., device 104) can estimate the future quality of the link at a second time instance following the first time instance at the first time instance, wherein the segmentation computation configuration can be further obtained based on the future quality of the link at the second time instance. For example, Figure 20 At 2028, it is shown that UE 2002 can estimate the future quality of the link at a second time instance following the first time instance at the first time instance, wherein the segmentation calculation configuration can be further obtained based on the future quality of the link at the second time instance. In one example, 2310 can be performed by device segmentation calculation orchestrator 198.

[0215] In one aspect, at 2312, the apparatus (e.g., device 104) can estimate, at the first time instance, a confidence level of the future quality of the link at a second time instance following the first time instance, wherein the segmentation computation configuration can be further obtained based on the confidence level of the future quality of the link at the second time instance. For example, Figure 20 At 2028, it is shown that UE 2002 can estimate the confidence level of the future quality of the link at a second time instance following the first time instance at the first time instance, wherein the segmentation calculation configuration can be further obtained based on the confidence level of the future quality of the link at the second time instance. In one example, 2312 can be performed by the device segmentation calculation orchestrator 198.

[0216] In one aspect, outputting an indication of the partitioning computation configuration may include at least one of the following: sending an indication of the partitioning computation configuration to at least one server, or storing an indication of the partitioning computation configuration in at least one of memory or cache. For example, outputting an indication of the partitioning computation configuration at 2032 may include sending an indication of the partitioning computation configuration to server 2004, or storing an indication of the partitioning computation configuration in at least one of memory or cache.

[0217] In one aspect, at 2324, the apparatus (e.g., device 104) can determine, based on the segmentation computation configuration, which the server-rendered media should be utilized by the application. For example, Figure 20 At 2040, it is shown that UE 2002 can determine which server-rendered media to be used by the application based on the segmentation calculation configuration. In one example, 2324 can be performed by the device segmentation calculation orchestrator 198.

[0218] In one aspect, at 2326, the apparatus (e.g., device 104) can send a request to the computing device for media rendered by the server. For example, Figure 20 At 2042, it is shown that UE 2002 can send a request to server 2004 for media rendered by the server. In one example, 2326 can be performed by device segmentation calculation orchestrator 198.

[0219] In one aspect, at 2328, the apparatus (e.g., device 104) can receive, based on the request, the media rendered by the server from the computing device. For example, Figure 20 At position 2044, it is shown that UE 2002 can receive media rendered by the server. In one example, 2328 can be performed by the device segmentation calculation orchestrator 198.

[0220] In one aspect, at 2330, the apparatus (e.g., device 104) can calculate the UE-rendered media associated with the application. For example, Figure 20 At position 2046, it is shown that UE 2002 can calculate the media rendered by the UE. For example, Figure 18 This illustrates how a UE can calculate the media rendered by the UE in relation to an application. In one example, 2330 can be performed by a device segmentation calculation orchestrator 198.

[0221] In one aspect, at 2332, the apparatus (e.g., device 104) can receive media rendered by the server from the computing device. For example, Figure 20 At position 2044, it is shown that UE 2002 can receive media rendered by the server. For example, Figure 18 This demonstrates that the UE can receive server-rendered media from at least one server. In one example, 2332 can be performed by the device segmentation calculation orchestrator 198.

[0222] In one aspect, at 2334, the apparatus (e.g., device 104) can select either the UE-rendered media or the server-rendered media based on the switching chain. For example, Figure 20 At position 2048, it is shown that UE 2002 can select one of the media rendered by the UE based on the switch chain. For example, Figure 18 This demonstrates that the UE can select either UE-rendered media or server-rendered media based on the switching chain. In one example, 2334 can be performed by the device segmentation calculation orchestrator 198.

[0223] In one aspect, the UE may include a first type of graphics processor, and at least one server may include a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor. For example, UE 2002 may include a first type of graphics processor, and server 2004 may include a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

[0224] In one aspect, the first set of application functions may include at least one of the following: a first game engine, a first media codec, first metadata, or first game state transmission information between the UE and the computing device, and the second set of application functions may include at least one of the following: a second game engine, a second media codec, second metadata, and second game state transmission information between the computing device and the UE. For example, the first set of application functions may be or include the first codec, metadata and game state transmission information 1424, and device GE rendering function 1426, and the second set of application functions may be or include the second codec, metadata and game state transmission information 1436, and edge GE rendering function 1438.

[0225] In one aspect, at 2336, the apparatus (e.g., device 104) can determine the updated quality of the link between the UE and the computing device. For example, Figure 20 At 2050, it is shown that UE 2002 can determine the updated quality of the link between UE and server 2004. In one example, 2336 can be performed by device segmentation calculation orchestrator 198.

[0226] In one aspect, at 2338, the apparatus (e.g., device 104) may send a first indication to the computing device and based on the updated quality of the link, the first indication being used to instruct the computing device to select a second segmented computing configuration or for the computing device to rate-adapt first information associated with the application. For example, Figure 20 At 2054, it is shown that UE2002 can send a first instruction to server 2004, which instructs server 2004 to select a second segmentation calculation configuration or to rate-adapt first information associated with the application. In one example, 2338 can be performed by device segmentation calculation orchestrator 198.

[0227] In one aspect, at 2340, the device (e.g., device 104) can establish a session with an application server used for the application. For example, Figure 20At 2058, it is shown that UE 2002 can establish a session with an application server for this application. In one example, the application server may be a central application server 1714. In one example, 2340 may be performed by a device segmentation computing orchestrator 198.

[0228] In one aspect, at 2342, the apparatus (e.g., device 104) can obtain, during a session, at least one of application status information or application media information from the application server. For example, Figure 20 At 2058, it is shown that UE 2002 can obtain at least one of application status information or application media information during a session and from the application server. In one example, 2342 can be performed by device segmentation calculation orchestrator 198.

[0229] In one aspect, at 2344, the device (e.g., device 104) may synchronize with the computing device based on at least one of state information for the application or media information for the application. For example, Figure 20 At 2058, it is shown that UE 2002 can synchronize with server 2004 based on at least one of application state information or application media information. In one example, 2344 can be performed by device segmentation calculation orchestrator 198.

[0230] In one aspect, at 2346, the apparatus (e.g., device 104) can receive a first indication from the computing device, the first indication being used to instruct the UE to select a second segmented computing configuration or for the UE to perform rate adaptation on first information associated with an application. For example, Figure 20 At position 2056, it is shown that UE 2002 can receive a first instruction from server 2004, which instructs UE 2002 to select a second segmentation calculation configuration or to perform rate adaptation on first information associated with an application. For example, Figure 20 At 2056, it is shown that UE 2002 can receive a first instruction from server 2004, which instructs UE 2002 to select a second segmentation calculation configuration or to perform rate adaptation on first information associated with the application. In one example, 2346 can be performed by device segmentation calculation orchestrator 198.

[0231] In one aspect, at 2348, the apparatus (e.g., device 104) can display a frame generated based on the segmentation calculation configuration. For example, Figure 20 At 2060, it is shown that UE 2102 can display frames generated based on the segmentation calculation configuration. For example, 2348 can be performed by the device segmentation calculation orchestrator 198.

[0232] In one aspect, the computing device may include at least one server. For example, the computing device may include server 2104.

[0233] Figure 24 This is a flowchart 2400 illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be implemented by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21 The method is executed by devices used in the process (such as devices for graphics processing, GPUs, CPUs, wireless communication devices, etc.). In one example, the method can be executed by the edge orchestration manager 1433.

[0234] At 2402, the device (e.g., edge 1518) obtains an executable file for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with the server. For example, Figure 21 At 2118, server 2104 is shown to have access to a second executable for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with the server. In one example, the executable could be an edge executable 1408. In one example, 2402 could be executed by an edge orchestration manager 1433.

[0235] At 2404, the device (e.g., edge 1518) obtains an estimated quality of the link between the UE and the server. For example, Figure 21 At 2122, server 2104 is shown to obtain an estimated quality of the link between the UE and the server. In one example, 2404 can be performed by edge orchestration manager 1433.

[0236] At 2406, the device (e.g., edge 1518) obtains the segmentation computation configuration between the first application function set and the second application function set based on the estimated quality of the link. For example, Figure 21 At 2130, server 2104 is shown to obtain a split computation configuration between the first application function set and the second application function set based on the estimated quality of the links. In one example, 2406 can be performed by edge orchestration manager 1433.

[0237] At 2408, the device (e.g., edge 1518) outputs an instruction on the segmentation calculation configuration. For example, Figure 21 At 2132, it is shown that server 2104 can output instructions on the configuration of the segmentation calculation. In one example, 2408 can be performed by edge orchestration manager 1433.

[0238] Figure 25A Flowchart 2500A is an example method of graphic processing according to one or more techniques of this disclosure. Figure 25B This is a flowchart 2500B illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be implemented by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21 The method is executed by devices used for graphics processing (such as graphics processing devices, GPUs, CPUs, wireless communication devices, etc.). In one example, the method (including the aspects detailed below) can be executed by the edge orchestration manager 1433.

[0239] At 2502, the device (e.g., edge 1518) obtains an executable file for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with the server. For example, Figure 21 At 2118, server 2104 is shown to have access to a second executable for an application that includes a first set of application functions associated with the UE and a second set of application functions associated with the server. In one example, the executable could be an edge executable 1408. In one example, 2502 could be executed by an edge orchestration manager 1433.

[0240] At 2504, the device (e.g., edge 1518) obtains an estimated quality of the link between the UE and the server. For example, Figure 21 At 2122, server 2104 is shown to obtain an estimated quality of the link between the UE and the server. In one example, 2504 can be performed by edge orchestration manager 1433.

[0241] At 2512, the device (e.g., edge 1518) obtains the segmentation computation configuration between the first application function set and the second application function set based on the estimated quality of the link. For example, Figure 21 At 2130, server 2104 is shown to obtain a split computation configuration between the first and second application function sets based on the estimated quality of the links. In one example, 2512 can be performed by edge orchestration manager 1433.

[0242] At point 2514, the device (e.g., edge 1518) outputs an instruction for the segmentation calculation configuration. For example, Figure 21 At 2132, it is shown that server 2104 can output instructions on the configuration of the segmentation calculation. In one example, 2514 can be performed by edge orchestration manager 1433.

[0243] In one aspect, obtaining the estimated quality of the link may include estimating the quality of the link between the UE and the server, and obtaining the segmentation calculation configuration may include selecting the segmentation calculation configuration based on the estimated quality of the link. For example, obtaining the estimated quality of the link at 2122 may include estimating the quality of the link between the UE 2102 and the server 2104, and obtaining the segmentation calculation configuration at 2130 may include selecting the segmentation calculation configuration based on the estimated quality of the link.

[0244] In one aspect, obtaining the estimated quality of the link may include receiving an indication of the estimated quality of the link from the UE, and obtaining the segmentation calculation configuration may include selecting the segmentation calculation configuration based on the indication of the estimated quality of the link. For example, obtaining the estimated quality of the link at 2122 may include receiving an indication of the estimated quality of the link from the UE 2102, and obtaining the segmentation calculation configuration at 2130 may include selecting the segmentation calculation configuration based on the indication of the estimated quality of the link.

[0245] In one aspect, obtaining the estimated quality of the link may include estimating the quality of the link between the UE and the server, and obtaining the segmentation calculation configuration may include sending an indication of the estimated quality of the link to the UE. For example, obtaining the estimated quality of the link at 2122 may include estimating the quality of the link between the UE 2102 and the server 2104, and obtaining the segmentation calculation configuration at 2130 may include sending an indication of the estimated quality of the link to the UE 2102.

[0246] In one aspect, obtaining the segmentation calculation configuration may include receiving the segmentation calculation configuration from the UE based on an indication of the estimated quality of the link. For example, obtaining the segmentation calculation configuration at 2130 may include receiving the segmentation calculation configuration from the UE based on an indication of the estimated quality of the link.

[0247] In one aspect, at 2516, the apparatus (e.g., edge 1518) can execute an executable file for an application based on a segmentation computation configuration. For example, Figure 21 At 2136, it is shown that server 2104 can execute a second executable file based on a segmentation computation configuration. In one example, 2516 can be executed by edge orchestration manager 1433.

[0248] In one aspect, at 2518, the device (e.g., edge 1518) can determine the updated quality of the link between the UE and the server. For example, Figure 21At 2150, server 2104 is shown to determine the updated quality of the link between UE 2102 and server 2104. In one example, 2518 can be performed by edge orchestration manager 1433.

[0249] In one aspect, at 2520, the apparatus (e.g., edge 1518) can send an updated quality indication to the UE regarding the link between the UE and the server. For example, server 2104 can send an updated quality indication to UE 2102 regarding the link between UE 2102 and server 2104. In one example, 2520 can be performed by edge orchestration manager 1433.

[0250] In one aspect, at 2522, the apparatus (e.g., edge 1518) can obtain a second segmentation calculation configuration between the first application function set and the second application function set based on an updated indication of the quality of the link between the UE and the server. For example, Figure 21 At 2152, it is shown that server 2104 can obtain a second segmentation calculation configuration between the first application function set and the second application function set based on an updated indication of the quality of the link between UE 2102 and server 2104. In one example, 2522 can be performed by edge orchestration manager 1433.

[0251] In one aspect, the link may include at least one of a RAN link or a WLAN link. For example, Figure 9 The diagram shows that the link can include a RAN link or a WLAN link.

[0252] In one aspect, at 2506, the device (e.g., edge 1518) can identify a set of performance metrics associated with the application, where a segmentation computation configuration can be further obtained based on the set of performance metrics. For example, Figure 21 At 2124, server 2104 is shown to be able to identify performance metrics. In one example, 2506 can be performed by edge orchestration manager 1433.

[0253] In one aspect, the segmented computation configuration can maintain a set of performance metrics while minimizing the power consumption of the UE. For example, the segmented computation configuration obtained at 2130 can maintain a set of performance metrics while minimizing the power consumption of UE 2102.

[0254] In one aspect, the set of performance metrics may include at least one of the application's frame rate, the application's display resolution, or the application's operational state. For example, the performance metrics identified at 2124 may include at least one of the application's frame rate, the application's display resolution, or the application's operational state.

[0255] In one aspect, at 2508, the apparatus (e.g., edge 1518) can estimate the future quality of the link at a second time instance following the first time instance at the first time instance, wherein the segmentation computation configuration can be further obtained based on the future quality of the link at the second time instance. For example, Figure 21 At 2128, it is shown that server 2104 can estimate the future quality of the link at a second time instance after the first time instance. In one example, 2508 can be performed by edge orchestration manager 1433.

[0256] In one aspect, at 2510, the apparatus (e.g., edge 1518) can estimate, at the first time instance, a confidence level of the future quality of the link at a second time instance following the first time instance, wherein the segmentation computation configuration can be further obtained based on the confidence level of the future quality of the link at the second time instance. For example, Figure 21 At 2128, it is shown that server 2104 can estimate the confidence level of the future quality of the link at a second time instance following the first time instance. In one example, 2510 can be performed by edge orchestration manager 1433.

[0257] In one aspect, outputting an indication of the segmentation calculation configuration may include at least one of the following: sending an indication of the segmentation calculation configuration to the UE, or storing an indication of the segmentation calculation configuration in at least one of a memory or a cache. For example, outputting an indication of the segmentation calculation configuration at 2132 may include sending an indication of the segmentation calculation configuration to the UE 2102, or storing an indication of the segmentation calculation configuration in at least one of a memory or a cache.

[0258] In one aspect, at 2526, the device (e.g., edge 1518) can send server-rendered media to the UE. For example, Figure 21 At 2144, it is shown that server 2104 can send server-rendered media to UE 2102. In one example, 2526 can be performed by edge orchestration manager 1433.

[0259] In one aspect, at 2524, the device (e.g., edge 1518) can receive a request from the UE for server-rendered media, wherein the server-rendered media can be sent to the UE based on the request. For example, Figure 21 At 2142, it is shown that server 2104 can receive requests for media rendered by the server. In one example, 2524 can be performed by edge orchestration manager 1433.

[0260] In one aspect, the UE may include a first type of graphics processor, and the server may include a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor. For example, UE 2102 may include a first type of graphics processor, and server 2104 may include a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

[0261] In one aspect, the first set of application functions may include at least one of the following: a first game engine, a first media codec, first metadata, or first game state transmission information between the UE and the server, and the second set of application functions may include at least one of the following: a second game engine, a second media codec, second metadata, and second game state transmission information between the server and the UE. For example, the first set of application functions may be or include the first codec, metadata, and game state transmission information 1424, and the device GE rendering function 1426, and the second set of application functions may be or include the second codec, metadata, and game state transmission information 1436, and the edge GE rendering function 1438.

[0262] In one aspect, at 2528, the device (e.g., edge 1518) can determine the updated quality of the link between the UE and the server. For example, Figure 21 At 2150, server 2104 is shown to determine the updated quality of the link between UE 2102 and server 2104. In one example, 2528 can be performed by edge orchestration manager 1433.

[0263] In one aspect, at 2530, the device (e.g., edge 1518) may send a first indication to the UE and based on the updated quality of the link, the first indication being used to instruct the UE to select a second segmentation calculation configuration or for the UE to rate-adapt to first information associated with the application. For example, Figure 21 At 2154, server 2104 is shown to send a first instruction to instruct the UE to select a second segmentation computing configuration or to rate-adapt first information associated with the application. In one example, 2530 can be performed by edge orchestration manager 1433.

[0264] In one aspect, at 2532, the device (e.g., edge 1518) can establish a session with an application server for the application. For example, at 2158... Figure 21The diagram shows that server 2104 can establish a session with an application server used for applications. In one example, the application server could be a central application server 1714. In another example, 2532 could be executed by an edge orchestration manager 1433.

[0265] In one aspect, at 2534, the device (e.g., edge 1518) can obtain, during the session, at least one of application state information or application media information from the application server. For example, Figure 21 At 2158, it is shown that server 2104 can obtain, during a session, at least one of application status information or application media information from the application server. In one example, 2534 can be performed by edge orchestration manager 1433.

[0266] In one aspect, at 2536, the device (e.g., edge 1518) may synchronize with the UE based on at least one of state information for the application or media information for the application. For example, Figure 21 At 2158, it is shown that server 2104 can synchronize with UE 2102 based on at least one of application state information or application media information. In one example, 2536 can be performed by edge orchestration manager 1433.

[0267] In one aspect, at 2538, the device can receive a first indication from the UE, the first indication being used to instruct the server to select a second segmentation calculation configuration or the server to perform rate adaptation on first information associated with the application. For example, Figure 21 At 2156, it is shown that server 2104 can receive an instruction to select a second segmentation computing configuration or to rate-adapt first information associated with the application. In one example, 2538 can be performed by edge orchestration manager 1433.

[0268] Figure 26 This is a flowchart 2600 illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be implemented by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21 The method is executed using devices such as graphics processing devices, GPUs, CPUs, wireless communication devices, etc. In one example, the method may be executed by a segmentation computing compiler 1404 and / or a developer computing device 1502.

[0269] At point 2602, the device (e.g., developer computing device 1502) obtains the source code for the application. For example, Figure 20 At 2008, it is shown that the developer computing device 2006 can obtain source code for the application. In one example, the source code may be or include application source code 1410. In one example, 2602 may be executed by a segmentation computing compiler 1404 and / or the developer computing device 1502.

[0270] At 2604, the apparatus (e.g., developer computing device 1502) decomposes the source code into a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE, wherein at least one of the first or second set of application functions is associated with the quality of the link between the UE and the computing device. For example, Figure 20 At 2010, it is shown that the developer computing device 2006 can decompose source code into a first set of application functions associated with UE 2002 and a second set of application functions associated with server 2004. In one example, 2604 can be executed by split computing compiler 1404 and / or developer computing device 1502.

[0271] At 2606, the device (e.g., developer computing device 1502) generates a first executable file for the UE based on a first set of application functions, and generates a second executable file for the computing device based on a second set of application functions. For example, Figure 20 At 2012, it is shown that developer computing device 2006 can generate a first executable file for UE 2002 based on a first set of application functions, and a second executable file for server 2004 based on a second set of application functions. In one example, 2606 can be executed by split computing compiler 1404 and / or developer computing device 1502.

[0272] At 2608, the device (e.g., developer computing device 1502) provides a first executable file for the UE and a second executable file for the computing device. For example, Figure 20 At 2014, it was shown that the developer computing device 2006 could provide the first executable file for UE 2002, and Figure 20 At 2016, it is shown that the developer computing device 2006 can provide a second executable file for the server 2004. In one example, 2608 can be executed by the segmentation computing compiler 1404 and / or the developer computing device 1502.

[0273] Figure 27 This is a flowchart 2700 illustrating an example method of graphic processing based on one or more techniques according to this disclosure. The method can be performed by, for example, combining... Figure 1-4 , Figure 5A , Figure 5B , Figure 5C , Figure 5D and Figure 6-21 The method is executed using devices such as graphics processing devices, GPUs, CPUs, wireless communication devices, etc. In one example, the method (including the aspects detailed below) may be executed by a segmentation computing compiler 1404 and / or a developer computing device 1502.

[0274] At point 2702, the device (e.g., developer computing device 1502) obtains the source code for the application. For example, Figure 20 At 2008, it is shown that the developer computing device 2006 can obtain source code for the application. In one example, the source code may be or include application source code 1410. In one example, 2702 may be executed by a segmentation computing compiler 1404 and / or the developer computing device 1502.

[0275] At 2704, the apparatus (e.g., developer computing device 1502) decomposes the source code into a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE, wherein at least one of the first or second set of application functions is associated with the quality of the link between the UE and the computing device. For example, Figure 20 At 2010, it is shown that the developer computing device 2006 can decompose source code into a first set of application functions associated with UE 2002 and a second set of application functions associated with server 2004. In one example, 2704 can be executed by split computing compiler 1404 and / or developer computing device 1502.

[0276] At 2706, the device (e.g., developer computing device 1502) generates a first executable file for the UE based on a first set of application functions, and generates a second executable file for the computing device based on a second set of application functions. For example, Figure 20 At 2012, it is shown that developer computing device 2006 can generate a first executable file for UE 2002 based on a first set of application functions, and a second executable file for server 2004 based on a second set of application functions. In one example, 2706 can be executed by segmentation computing compiler 1404 and / or developer computing device 1502.

[0277] At 2708, the device (e.g., developer computing device 1502) provides a first executable file for the UE and a second executable file for the computing device. For example, Figure 20At 2014, it was shown that the developer computing device 2006 could provide the first executable file for UE 2002, and Figure 20 At 2016, it is shown that the developer computing device 2006 can provide a second executable file for the server 2004. In one example, 2708 can be executed by the segmentation computing compiler 1404 and / or the developer computing device 1502.

[0278] In one aspect, at 2710, the first executable file for the application can instruct the UE to estimate the quality of the link between the UE and the computing device, and select a split computing configuration between a first set of application functions and a second set of application functions based on the link quality. This aspect can correspond to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0279] In one aspect, at 2712, the second executable for the application may instruct at least one server to estimate the quality of the link between the UE and the computing device, and select a split computing configuration between the first application function set and the second application function set based on the link quality. This aspect may correspond to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0280] In one aspect, a first executable file for the application may instruct the UE to estimate the quality of the link between the UE and the computing device, send an indication of the estimated link quality to the computing device, and receive a segmentation computing configuration between a first application function set and a second application function set based on the indication of the estimated link quality. A second executable file for the application may instruct the computing device to select a segmentation computing configuration based on the indication of the estimated link quality, and send the segmentation computing configuration to the UE. The above aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0281] In one aspect, a first executable file for the application may instruct the UE to receive an indication of estimated link quality from the computing device, and to select a segmented computing configuration between a first set of application functions and a second set of application functions based on the indication of estimated link quality; and a second executable file for the application may instruct the computing device to estimate the link quality between the UE and the computing device, and to send an indication of estimated link quality to the UE. The above aspects may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0282] In one aspect, the link quality may be associated with a first segmentation computation configuration between a first set of application functions and a second set of application functions, wherein a first executable file for the application may instruct the UE to receive an updated quality indication of the link between the UE and the computing device, and the UE to select a second segmentation computation configuration between the first set of application functions and the second set of application functions based on the updated quality indication of the link between the UE and the computing device. This aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0283] In one aspect, a first executable file for the application may instruct the UE to determine the corresponding quality of a link for each segment computing configuration in a set of segment computing configurations, including segment computing configurations, and the first executable file may further instruct the selection of a segment computing configuration based on the corresponding quality of the link for each segment computing configuration in the set of segment computing configurations. The above aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0284] In one aspect, the first executable for the application may instruct the UE to estimate the quality of the link between the UE and the computing device based on one or more of the following: power consumed by the UE during application execution, a set of power consumption characteristics of at least one of the UE's transceiver or antenna, the time period for understanding the channel associated with the link, the current channel capacity associated with the link, or the future channel capacity associated with the link. The above aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0285] In one aspect, the link may include at least one of a RAN link or a WLAN link. The above aspect may correspond to the preceding text. Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more aspects described in the description.

[0286] In one aspect, a first executable file for the application may instruct the UE to identify a set of performance metrics associated with the application, and a second executable file for the application may instruct the UE to further select a segmented computation configuration based on the set of performance metrics. The above aspect corresponds to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0287] In one aspect, the first executable file for the application can instruct the UE to select a segmented computing configuration to maintain a set of performance metrics while minimizing power consumption. This aspect corresponds to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0288] In one aspect, the set of performance metrics may include at least one of the application's frame rate, the application's display resolution, or the application's operational state. The above aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0289] In one aspect, the first executable file for the application may instruct the UE to estimate the future quality of the link at a second time instance following the first time instance at the first time instance, and the first executable file for the application may instruct the UE to further select a segmentation calculation configuration based on the future quality of the link at the second time instance. The above aspect corresponds to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0290] In one aspect, the first executable file for the application may instruct the UE to estimate a confidence level at a first time instance that is associated with the future quality of the link at a second time instance, and the first executable file for the application may instruct the UE to further select a segmentation calculation configuration based on that confidence level. The above aspect may correspond to the above... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0291] In one aspect, the UE may include a first type of graphics processor, and at least one server may include a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor. The above aspect may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0292] In one aspect, the first set of application functions may include at least one of the following: a first game engine, a first media codec, first metadata, or first game state transmission information between the UE and the computing device; and the second set of application functions may include at least one of the following: a second game engine, a second media codec, second metadata, and second game state transmission information between the computing device and the UE. The above aspects may correspond to the above description in... Figure 22 , Figure 23A , Figure 23B , Figure 23C , Figure 24 , Figure 25A and / or Figure 25B One or more of the aspects described in the description.

[0293] In the configuration, a method or apparatus for graphics processing is provided. The apparatus may be a GPU, a CPU, or some other processor capable of performing graphics processing. In this aspect, the apparatus may be a processing unit 120 within device 104, or some other hardware within device 104 or another device. The apparatus may include a unit for obtaining an executable file for an application, the application including a first set of application functions associated with a UE and a second set of application functions associated with a computing device different from the UE. The apparatus may also include a unit for obtaining an estimated quality of the link between the UE and the computing device. The apparatus may also include a unit for obtaining a segmented computing configuration between the first set of application functions and the second set of application functions based on the estimated quality of the link. The apparatus may also include a unit for outputting an indication of the segmented computing configuration. The apparatus may also include a unit for executing the executable file for the application based on the segmented computing configuration. The apparatus may also include a unit for receiving an updated indication of the quality of the link between the UE and the computing device from the computing device. The apparatus may also include a unit for selecting a second segmented computing configuration between the first set of application functions and the second set of application functions based on the updated indication of the quality of the link between the UE and the computing device. The apparatus may further include a unit for determining the corresponding quality of a link for each segmentation computing configuration in a set of segmentation computing configurations, including segmentation computing configurations, wherein the segmentation computing configuration is further obtained based on the corresponding quality of the link for each segmentation computing configuration in the set of segmentation computing configurations. The apparatus may further include a unit for identifying a set of performance metrics associated with the application, wherein the segmentation computing configuration is further obtained based on the set of performance metrics. The apparatus may further include a unit for estimating the future quality of a link at a second time instance after the first time instance, wherein the segmentation computing configuration is further obtained based on the future quality of the link at the second time instance. The apparatus may further include a unit for estimating a confidence level of the future quality of the link at the second time instance after the first time instance, wherein the segmentation computing configuration is further obtained based on the confidence level of the future quality of the link at the second time instance. The apparatus may further include a unit for determining, based on the segmentation computing configuration, that server-rendered media should be used by the application. The apparatus may further include a unit for sending a request for server-rendered media to a computing device. The apparatus may further include a unit for receiving server-rendered media from the computing device based on the request. The apparatus may further include a unit for calculating UE-rendered media associated with the application. The apparatus may also include a unit for receiving server-rendered media from a computing device. The apparatus may further include a unit for selecting either UE-rendered media or server-rendered media based on a switching chain.The apparatus may further include a unit for determining the updated quality of the link between the UE and the computing device. The apparatus may further include a unit for sending a first indication to the computing device based on the updated quality of the link, the first indication indicating whether the computing device should select a second segmented computing configuration or perform rate adaptation on first information associated with an application. The apparatus may further include a unit for establishing a session with an application server for the application. The apparatus may further include a unit for obtaining at least one of application status information or application media information from the application server during the session. The apparatus may further include a unit for synchronizing with the computing device based on at least one of the application status information or application media information. The apparatus may further include a unit for receiving a first indication from the computing device, the first indication indicating whether the UE should select a second segmented computing configuration or perform rate adaptation on first information associated with an application. The apparatus may further include a unit for displaying frames generated based on the segmented computing configuration.

[0294] In the configuration, a method or apparatus for graphics processing is provided. The apparatus may be a GPU, a CPU, or some other processor capable of performing graphics processing. In this aspect, the apparatus may be an edge 1518, or some other hardware within the edge 1518 or another device. The apparatus may include units for obtaining an executable file for an application, the application including a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a server. The apparatus may also include units for obtaining an estimated quality of the link between the UE and the server. The apparatus may include units for obtaining a segmentation computation configuration between the first and second set of application functions based on the estimated quality of the link. The apparatus may include units for outputting an indication of the segmentation computation configuration. The apparatus may include units for executing the executable file for the application based on the segmentation computation configuration. The apparatus may include units for determining an updated quality of the link between the UE and the server. The apparatus may include units for sending an indication to the UE of the updated quality of the link between the UE and the server. The apparatus may include units for obtaining a second segmentation calculation configuration between a first set of application functions and a second set of application functions based on an updated indication of the quality of the link between the UE and the server. The apparatus may include units for identifying a set of performance metrics associated with the application, wherein the segmentation calculation configuration is further obtained based on the performance metric set. The apparatus may include units for estimating the future quality of the link at a second time instance after the first time instance, wherein the segmentation calculation configuration is further obtained based on the future quality of the link at the second time instance. The apparatus may include units for estimating a confidence level of the future quality of the link at the second time instance after the first time instance, wherein the segmentation calculation configuration is further obtained based on the confidence level of the future quality of the link at the second time instance. The apparatus may include units for transmitting server-rendered media to the UE. The apparatus may include units for receiving a request for server-rendered media from the UE, wherein the server-rendered media is transmitted to the UE based on the request. The apparatus may include units for determining the updated quality of the link between the UE and the server. The apparatus may include units for sending a first indication to the UE based on the updated quality of the link, the first indication instructing the UE to select a second segmentation calculation configuration or to perform rate adaptation on first information associated with an application. The apparatus may include units for establishing a session with an application server for the application. The apparatus may also include units for obtaining at least one of application-specific status information or application-specific media information from the application server during the session.The apparatus may include a unit for synchronizing with the UE based on at least one of application-specific state information or application-specific media information. The apparatus may also include a unit for receiving a first instruction from the UE, the first instruction instructing the server to select a second segmentation calculation configuration or to perform rate adaptation on first information associated with the application.

[0295] In the configuration, a method or apparatus for graphics processing is provided. The apparatus may be a GPU, a CPU, or some other processor capable of performing graphics processing. In this aspect, the apparatus may be a developer computing device 1502, or some other hardware within the developer computer device 1502 or another device. The apparatus may include units for obtaining source code for an application. The apparatus may also include units for decomposing the source code into a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a computing device different from the UE, wherein at least one of the first or second set of application functions is associated with the quality of the link between the UE and the computing device. The apparatus may also include units for generating a first executable file for the UE based on the first set of application functions and a second executable file for the computing device based on the second set of application functions. The apparatus may also include units for providing the first executable file for the UE and the second executable file for the computing device.

[0296] It should be understood that the specific order or hierarchy of boxes / steps in the processes, flowcharts, and / or call flowcharts disclosed herein is illustrative of the exemplary methods. Based on design preferences, it should be understood that the specific order or hierarchy of boxes / steps in the processes, flowcharts, and / or call flowcharts can be rearranged. Furthermore, some boxes / steps can be combined and / or omitted. Other boxes / steps may also be added. The appended method claims present the elements of various boxes / steps in a sample order, and are not intended to limit one to the specific order or hierarchy presented.

[0297] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but should be given the full scope consistent with the language of the claims, wherein, unless specifically stated otherwise, references to elements in the singular are not intended to mean “one and only one,” but rather “one or more.” The word “exemplary” herein is used to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.

[0298] Unless otherwise specified, the term "some" refers to one or more, and unless the context otherwise specifies, the term "or" may be interpreted as "and / or". Combinations such as "at least one of A, B, or C", "one or more of A, B, or C", "at least one of A, B, and C", "one or more of A, B, and C", and "A, B, C, or any combination thereof" include any combination of A, B, and / or C, and may include multiples of A, multiples of B, or multiples of C. Specifically, combinations such as "at least one of A, B, or C", "one or more of A, B, or C", "at least one of A, B, and C", "one or more of A, B, and C", and "A, B, C, or any combination thereof" may be only A, only B, only C, A and B, A and C, B and C, or A and B and C, wherein any such combination may contain one or more members of A, B, or C. All structural and functional equivalents of the elements described herein, known to or to be known by one of ordinary skill in the art, or to be known later, are expressly incorporated herein by reference and are intended to be covered by the claims. Furthermore, the disclosure herein is not intended to be offered to the public, whether or not such disclosure is expressly stated in the claims. The terms “module,” “mechanism,” “element,” “device,” etc., may not be a substitute for the term “unit.” Therefore, no claim element should be interpreted as a unit plus function unless the element is expressly stated using the phrase “unit for…”. Unless otherwise stated, the phrase “processor” may refer to “any one of one or more processors” (e.g., one processor in one or more processors, several (more than one) processors in one or more processors, or all processors in one or more processors), and the phrase “memory” may refer to “any one of one or more memories” (e.g., one memory in one or more memories, several (more than one) memories in one or more memories, or all memories in one or more memories).

[0299] In one or more examples, the functionality described herein may be implemented in hardware, software, firmware, or any combination thereof. For example, although the term "processing unit" has been used throughout this disclosure, such a processing unit may be implemented in hardware, software, firmware, or any combination thereof. If any functionality, processing unit, technique, or other module described herein is implemented in software, then the functionality, processing unit, technique, or other module described herein may be stored on or transmitted through a computer-readable medium as one or more instructions or code.

[0300] Computer-readable media can include computer data storage media or communication media, with communication media including any medium that facilitates the transfer of a computer program from one place to another. In this way, a computer-readable medium can generally correspond to: (1) a tangible computer-readable storage medium that is non-transitory; or (2) a communication medium such as a signal or carrier wave. Data storage media can be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. By way of example and not limitation, such computer-readable media can include RAM, ROM, EEPROM, optical disc read-only memory (CD-ROM) or other optical disc storage, magnetic disk storage, or other magnetic storage devices. As used herein, magnetic disks and optical discs include compact optical discs (CDs), laser optical discs, optical discs, digital versatile optical discs (DVDs), floppy disks, and Blu-ray discs, wherein magnetic disks typically magnetically copy data, while optical discs typically optically copy data using lasers. The combination of the above should also be included within the scope of computer-readable media. Computer program products can include computer-readable media.

[0301] The technologies disclosed herein can be implemented in various devices or apparatuses, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of a device configured to perform the disclosed technologies, but they do not necessarily require implementation by different hardware units. Rather, as described above, various units can be combined in any hardware unit or provided by a collection of interoperable hardware units including one or more processors as described above, combined with appropriate software and / or firmware. Therefore, the term "processor" as used herein can refer to any of the foregoing structures or any other structure suitable for implementing the technologies described herein. Furthermore, the technologies can be fully implemented in one or more circuit or logic elements.

[0302] The following aspects are illustrative only and may be combined with other aspects or teachings described herein, rather than limiting.

[0303] Aspect 1 is a method for graphics processing at a user equipment (UE), comprising: obtaining an executable file for an application including a first set of application functions associated with the UE and a second set of application functions associated with a computing device other than the UE; obtaining an estimated quality of a link between the UE and the computing device; obtaining a segmented computational configuration between the first set of application functions and the second set of application functions based on the estimated quality of the link; and outputting an indication of the segmented computational configuration.

[0304] Aspect 2 may be combined with aspect 1 and includes: obtaining the estimated quality of the link, including estimating the quality of the link between the UE and the computing device, and wherein obtaining the segmentation computing configuration includes selecting the segmentation computing configuration based on the estimated quality of the link.

[0305] Aspect 3 may be combined with aspect 1 and includes: obtaining the estimated quality of the link includes receiving an indication of the estimated quality of the link from a computing device, and wherein obtaining the segmentation computing configuration includes selecting a segmentation computing configuration based on the indication of the estimated quality of the link.

[0306] Aspect 4 may be combined with aspect 1 and includes: obtaining an estimated link quality including estimating the quality of the link between the UE and the computing device, and wherein obtaining the segmentation computing configuration includes: sending an indication of the estimated link quality to the computing device; and receiving the segmentation computing configuration from the computing device and based on the indication of the estimated link quality.

[0307] Aspect 5 can be combined with any of aspects 1-4, and also includes: executing an executable for the application based on the segmentation computation configuration.

[0308] Aspect 6 may be combined with any of aspects 1-5, and further includes: receiving from the computing device an indication of the updated quality of the link between the UE and the computing device; and selecting a second segmented computing configuration between the first application function set and the second application function set based on the indication of the updated quality of the link between the UE and the computing device.

[0309] Aspect 7 can be combined with any of aspects 1-6, and further includes: determining the corresponding quality of a link for each segment computing configuration in the set of segment computing configurations including segment computing configurations, wherein the segment computing configuration is further obtained based on the corresponding quality of the link for each segment computing configuration in the set of segment computing configurations.

[0310] Aspect 8 may be combined with any of aspects 1-7 and includes: the estimated quality of the link between the UE and the computing device is based on: the power consumed by the UE during the execution of the application, the set of power consumption characteristics of at least one of the UE's transceiver or antenna, the time period of understanding the channel associated with the link, the current channel capacity associated with the link, or the future channel capacity associated with the link.

[0311] Aspect 9 may be combined with any one of aspects 1-8 and includes: the link includes at least one of a radio access network (RAN) link or a wireless local area network (WLAN) link.

[0312] Aspect 10 can be combined with any of aspects 1-9, and also includes: identifying a set of performance metrics associated with the application, wherein the segmented computation configuration is further obtained based on the set of performance metrics.

[0313] Aspect 11 can be combined with aspect 10 and includes: segmenting the computational configuration to maintain the set of performance metrics while minimizing the power consumption of the UE.

[0314] Aspect 12 may be combined with aspect 11 and includes: the set of performance metrics includes at least one of the application's frame rate, the application's display resolution, or the application's operating state.

[0315] Aspect 13 can be combined with any of aspects 1-12, and further includes: estimating the future quality of the link at a second time instance after the first time instance at the first time instance, wherein the segmentation computation configuration is further obtained based on the future quality of the link at the second time instance.

[0316] Aspect 14 can be combined with aspect 13 and further includes: estimating the confidence level of the future quality of the link at a second time instance after the first time instance at the first time instance, wherein the segmentation computation configuration is further obtained based on the confidence level of the future quality of the link at the second time instance.

[0317] Aspect 15 may be combined with any one of aspects 1-14 and includes: outputting an indication of the partitioning computation configuration including at least one of the following: sending an indication of the partitioning computation configuration to a computing device or storing an indication of the partitioning computation configuration in a memory or a cache.

[0318] Aspect 16 may be combined with any of aspects 1-15 and includes sending an instruction to a computing device on a segmented computing configuration, the method further including: determining, based on the segmented computing configuration, that server-rendered media should be used by an application; sending a request to the computing device for the server-rendered media; and receiving the server-rendered media from the computing device based on the request.

[0319] Aspect 17 may be combined with any of aspects 1-15 and includes sending an instruction to a computing device for a segmented computing configuration. The method further includes: calculating UE-rendered media associated with the application; receiving server-rendered media from the computing device; and selecting either UE-rendered media or server-rendered media based on a switching chain.

[0320] Aspect 18 may be combined with any of aspects 1-17, including: the UE includes a first type of graphics processor, and the computing device includes a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

[0321] Aspect 19 may be combined with any one of aspects 1-18 and includes: a first set of application functions including at least one of the following: a first game engine, a first media codec, first metadata or first game state transmission information between the UE and the computing device, and wherein the second set of application functions includes at least one of the following: a second game engine, a second media codec, second metadata and second game state transmission information between the computing device and the UE.

[0322] Aspect 20 may be combined with any of aspects 1-19 and further includes: determining the updated quality of the link between the UE and the computing device; and sending a first indication to the computing device and based on the updated quality of the link, the first indication being used to instruct the computing device to select a second segmented computing configuration or for the computing device to rate-adapt first information associated with the application.

[0323] Aspect 21 may be combined with any one of aspects 1-20, and further includes: establishing a session with an application server for the application; obtaining at least one of application status information or application media information from the application server during the session; and synchronizing with a computing device based on at least one of the application status information or application media information.

[0324] Aspect 22 may be combined with any one of aspects 1-21, and further includes: receiving a first indication from a computing device, the first indication being used to instruct the UE to select a second segmented computing configuration or for the UE to rate adapt to first information associated with an application.

[0325] Aspect 23 can be combined with any of aspects 1-22, and also includes: displaying frames generated based on the segmentation calculation configuration.

[0326] Aspect 24 may be combined with any one of aspects 1-23 and includes: the computing device includes at least one server.

[0327] Aspect 25 is a device for graphics processing that includes a processor coupled to a memory, and the processor is configured to implement the methods of any one of aspects 1-24 based on information stored in the memory.

[0328] Aspect 26 may be combined with aspect 25 and includes: the device is a wireless communication device, the wireless communication device including at least one of a transceiver or an antenna coupled to the processor, wherein the processor is configured to output instructions on the segmentation calculation configuration via at least one of the transceiver or the antenna.

[0329] Aspect 27 is an apparatus for graphics processing, comprising units for implementing the methods of any one of aspects 1-24.

[0330] Aspect 28 is a computer-readable medium (e.g., a non-transitory computer-readable medium) storing computer-executable code that, when executed by a processor, causes the processor to implement the methods of any of aspects 1-24.

[0331] Aspect 29 is a method for graphics processing, the method comprising: obtaining source code for an application; decomposing the source code into a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a computing device, wherein at least one of the first set of application functions or the second set of application functions is associated with the quality of a link between the UE and the computing device; generating a first executable file for the UE based on the first set of application functions, and generating a second executable file for the computing device based on the second set of application functions; and providing the first executable file for the UE and the second executable file for the computing device.

[0332] Aspect 30 may be combined with aspect 29 and includes: a first executable file for the application instructing the UE to estimate the quality of the link between the UE and the computing device, and selecting a split computing configuration between a first set of application functions and a second set of application functions based on the quality of the link.

[0333] Aspect 31 may be combined with aspect 29 and includes: a second executable for the application instructing the computing device to estimate the quality of the link between the UE and the computing device, and selecting a split computing configuration between a first set of application functions and a second set of application functions based on the quality of the link.

[0334] Aspect 32 may be combined with aspect 29, including: a first executable file for the application instructing the UE to estimate the quality of the link between the UE and the computing device, sending an indication of the estimated quality of the link to the computing device, and receiving a segmented computing configuration between a first set of application functions and a second set of application functions based on the indication of the estimated quality of the link from the computing device, wherein a second executable file for the application instructs the computing device to select the segmented computing configuration based on the indication of the estimated quality of the link, and sending the segmented computing configuration to the UE.

[0335] Aspect 33 may be combined with any of aspects 29-32 and includes: a first executable for the application instructing the UE to receive an indication of estimated link quality from the computing device, and selecting a split computing configuration between a first set of application functions and a second set of application functions based on the indication of estimated link quality, wherein a second executable for the application instructs the computing device to estimate the quality of the link between the UE and the computing device, and to send an indication of estimated link quality to the UE.

[0336] Aspect 34 may be combined with any one of aspects 29-33 and includes: link quality associated with a first segmented computational configuration between a first set of application functions and a second set of application functions, wherein a first executable for the application instructs the UE to receive an updated indication of the link quality between the UE and the computing device and the UE to select a second segmented computational configuration between the first set of application functions and the second set of application functions based on the updated indication of the link quality between the UE and the computing device.

[0337] Aspect 35 may be combined with any one of aspects 29-34 and includes: a first executable for application instructing the UE to determine the corresponding quality of the link for each segmented computation configuration in the set of segmented computation configurations, and wherein the first executable further instructs to select a segmented computation configuration based on the corresponding quality of the link for each segmented computation configuration in the set of segmented computation configurations.

[0338] Aspect 36 may be combined with any one of aspects 29-35 and includes: a first executable for the application instructing the UE to estimate the quality of the link between the UE and the computing device based on one or more of the following: power consumed by the UE during the execution of the application, a set of power consumption characteristics of at least one of the UE's transceiver or antenna, the time period for understanding the channel associated with the link, the current channel capacity associated with the link, or the future channel capacity associated with the link.

[0339] Aspect 37 may be combined with any one of aspects 29-36 and includes: the link includes at least one of a radio access network (RAN) link or a wireless local area network (WLAN) link.

[0340] Aspect 38 may be combined with any of aspects 29-37 and includes: a first executable for the application instructs the UE to identify a set of performance metrics associated with the application, and wherein the first executable for the application instructs the UE to further select a segmented computing configuration based on the set of performance metrics.

[0341] Aspect 39 may be combined with aspect 38 and includes: a first executable for the application instructing the UE to select a segmented computing configuration to maintain a set of performance metrics while minimizing power consumption.

[0342] Aspect 40 may be combined with aspect 39 and includes: the set of performance metrics includes at least one of the application's frame rate, the application's display resolution, or the application's operating state.

[0343] Aspect 41 may be combined with any one of aspects 29-40 and includes: a first executable file for the application instructs the UE to estimate the future quality of the link at a second time instance following the first time instance at the first time instance, and wherein the first executable file for the application instructs the UE to further select a segmentation calculation configuration based on the future quality of the link at the second time instance.

[0344] Aspect 42 may be combined with aspect 41 and includes: a first executable for the application instructing the UE to estimate a confidence level at a first time instance that is associated with the future quality of the link at a second time instance, and wherein the first executable for the application instructs the UE to further select a segmentation calculation configuration based on the confidence level.

[0345] Aspect 43 may be combined with any one of aspects 29-42 and includes: the UE includes a first type of graphics processor and the computing device includes a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

[0346] Aspect 44 may be combined with any one of aspects 29-43 and includes: a first set of application functions including at least one of the following: a first game engine, a first media codec, first metadata or first game state transmission information between the UE and the computing device, and wherein the second set of application functions includes at least one of the following: a second game engine, a second media codec, second metadata and second game state transmission information between the computing device and the UE.

[0347] Aspect 45 is a device for graphics processing that includes a processor coupled to a memory, and the processor is configured to implement methods as described in any of aspects 29-44 based on information stored in the memory.

[0348] Aspect 46 may be combined with aspect 45 and includes: the device is a wireless communication device, the wireless communication device including at least one of a transceiver or an antenna coupled to the processor, wherein the processor is configured to provide a first executable file for the UE and a second executable file for the computing device via at least one of the transceiver or the antenna.

[0349] Aspect 47 is an apparatus for graphics processing, comprising units for implementing methods as described in any of aspects 29-44.

[0350] Aspect 48 is a computer-readable medium (e.g., a non-transitory computer-readable medium) storing computer-executable code that, when executed by a processor, causes the processor to implement the methods as described in any of aspects 29-44.

[0351] Aspect 49 is a method for graphics processing at a server, the method comprising: obtaining an executable file for an application including a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a server; obtaining an estimated quality of a link between the UE and the server; obtaining a segmentation calculation configuration between the first set of application functions and the second set of application functions based on the estimated quality of the link; and outputting an indication of the segmentation calculation configuration.

[0352] Aspect 50 may be combined with aspect 49 and includes: obtaining an estimated link quality including estimating the quality of the link between the UE and the server, and wherein obtaining a segmentation calculation configuration includes selecting a segmentation calculation configuration based on the estimated link quality.

[0353] Aspect 51 may be combined with aspect 49 and includes: obtaining the estimated quality of the link includes receiving an indication of the estimated quality of the link from the UE, and wherein obtaining the segmentation calculation configuration includes selecting a segmentation calculation configuration based on the indication of the estimated quality of the link.

[0354] Aspect 52 may be combined with aspect 49 and includes: obtaining an estimated quality of the link, including estimating the quality of the link between the UE and the server, and wherein obtaining the segmentation calculation configuration includes: sending an indication of the estimated quality of the link to the UE; and receiving the segmentation calculation configuration from the UE based on the indication of the estimated quality of the link.

[0355] Aspect 53 can be combined with any of aspects 49-52, and also includes: executing an executable for the application based on the segmentation computation configuration.

[0356] Aspect 54 may be combined with any of aspects 49-53, and further includes: determining the updated quality of the link between the UE and the server; sending an indication to the UE of the updated quality of the link between the UE and the server; and obtaining a second segmentation calculation configuration between the first application function set and the second application function set based on the indication of the updated quality of the link between the UE and the server.

[0357] Aspect 55 may be combined with any one of aspects 49-54 and includes: the link includes at least one of a radio access network (RAN) link or a wireless local area network (WLAN) link.

[0358] Aspect 56 can be combined with any of aspects 49-55, and also includes: identifying a set of performance metrics associated with the application, wherein the segmented computation configuration is further obtained based on the set of performance metrics.

[0359] Aspect 57 can be combined with aspect 56 and includes: segmenting the computational configuration to maintain a set of performance metrics while minimizing the power consumption of the UE.

[0360] Aspect 58 may be combined with aspect 57 and includes: the set of performance metrics includes at least one of the application's frame rate, the application's display resolution, or the application's operating state.

[0361] Aspect 59 can be combined with any of aspects 49-58, and further includes: estimating the future quality of the link at a second time instance after the first time instance at the first time instance, wherein the segmentation computation configuration is further obtained based on the future quality of the link at the second time instance.

[0362] Aspect 60 may be combined with any of aspects 49-59, and further includes: estimating at the first time instance a confidence level of the future quality of the link at a second time instance after the first time instance, wherein the segmentation computation configuration is further obtained based on the confidence level of the future quality of the link at the second time instance.

[0363] Aspect 61 may be combined with any one of aspects 49-60 and includes: outputting an indication of the segmentation calculation configuration including at least one of the following: sending an indication of the segmentation calculation configuration to the UE or storing an indication of the segmentation calculation configuration in a memory or a cache.

[0364] Aspect 62 may be combined with aspect 61 and includes: receiving an instruction from the UE for a segmentation calculation configuration, the method further including: sending server-rendered media to the UE.

[0365] Aspect 63 may be combined with aspect 62 and further includes: receiving a request from the UE for server-rendered media, wherein the server-rendered media is sent to the UE based on the request.

[0366] Aspect 64 may be combined with any one of aspects 49-63 and includes: the UE includes a first type of graphics processor and the server includes a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

[0367] Aspect 65 may be combined with any one of aspects 49-64 and includes: a first set of application functions including at least one of the following: a first game engine, a first media codec, first metadata or first game state transmission information between the UE and the server, and wherein the second set of application functions includes at least one of the following: a second game engine, a second media codec, second metadata and second game state transmission information between the server and the UE.

[0368] Aspect 66 may be combined with any of aspects 49-65, and further includes: determining the updated quality of the link between the UE and the server; and sending a first indication to the UE and based on the updated quality of the link, the first indication being used to instruct the UE to select a second segmentation computing configuration or for the UE to rate-adapt first information associated with the application.

[0369] Aspect 67 may be combined with any one of aspects 49-66, and further includes: establishing a session with an application server for the application; obtaining at least one of application status information or application media information from the application server during the session; and synchronizing with the UE based on at least one of the application status information or application media information.

[0370] Aspect 68 may be combined with any of aspects 49-67, and further includes: receiving a first indication from the UE, the first indication being used to instruct the server to select a second segmentation calculation configuration or the server to rate adapt to first information associated with the application.

[0371] Aspect 69 is a device for graphics processing that includes a processor coupled to a memory, and the processor is configured to implement methods as in any of aspects 49-68 based on information stored in the memory.

[0372] Aspect 70 may be combined with aspect 69 and includes: the device is a wireless communication device, the wireless communication device including at least one of a transceiver or an antenna coupled to the processor, wherein the processor is configured to output instructions on the segmentation calculation configuration via at least one of the transceiver or the antenna.

[0373] Aspect 71 is an apparatus for graphics processing, comprising units for implementing methods as described in any of aspects 49-68.

[0374] Aspect 72 is a computer-readable medium (e.g., a non-transitory computer-readable medium) storing computer-executable code that, when executed by a processor, causes the processor to implement the methods as in any of aspects 49-68.

[0375] Various aspects have been described herein. These aspects, along with others, are within the scope of the following claims.

Claims

1. An apparatus for graphics processing at a user equipment (UE), comprising: Memory; as well as A processor coupled to the memory, and based on information stored in the memory, the processor is configured to: Obtain an executable file for an application, the application including a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE; Obtain the estimated quality of the link between the UE and the computing device; Based on the estimated quality of the link, a segmentation calculation configuration is obtained between the first application function set and the second application function set; as well as Output an instruction for the segmentation calculation configuration.

2. The apparatus according to claim 1, wherein, In order to obtain the estimated quality of the link, the processor is configured to estimate the quality of the link between the UE and the computing device, and wherein, in order to obtain the segmentation computing configuration, the processor is configured to select the segmentation computing configuration based on the estimated quality of the link.

3. The apparatus according to claim 1, wherein, In order to obtain the estimated quality of the link, the processor is configured to receive an indication of the estimated quality of the link from the computing device, and wherein, in order to obtain the segmentation computing configuration, the processor is configured to select the segmentation computing configuration based on the indication of the estimated quality of the link.

4. The apparatus according to claim 1, wherein, To obtain the estimated quality of the link, the processor is configured to estimate the quality of the link between the UE and the computing device, and wherein, to obtain the segmentation computing configuration, the processor is configured to: For the computing device, an indication of the estimated quality of the link is sent; and Based on the indication of the estimated quality of the link and receiving the segmentation calculation configuration from the computing device.

5. The apparatus according to claim 1, wherein, The processor is also configured to: The executable file for the application is executed based on the segmentation calculation configuration.

6. The apparatus according to claim 1, wherein, The processor is also configured to: Receive from the computing device an updated quality indication of the link between the UE and the computing device; as well as Based on the updated quality indication of the link between the UE and the computing device, a second segmented computing configuration is selected between the first application function set and the second application function set.

7. The apparatus according to claim 1, wherein, The processor is also configured to: For each segment computing configuration in a set of segment computing configurations including the segment computing configuration, the corresponding quality of the link is determined, wherein, in order to obtain the segment computing configuration, the processor is configured to further obtain the segment computing configuration based on the corresponding quality of the link for each segment computing configuration in the set of segment computing configurations.

8. The apparatus according to claim 1, wherein, The estimated quality of the link between the UE and the computing device is based on: the power consumed by the UE during the execution of the application, the power consumption characteristics of at least one of the UE's transceiver or antenna, the time period of understanding the channel associated with the link, the current channel capacity associated with the link, or the future channel capacity associated with the link.

9. The apparatus according to claim 1, wherein, The link includes at least one of a radio access network (RAN) link or a wireless local area network (WLAN) link.

10. The apparatus according to claim 1, wherein, The processor is also configured to: Identify a set of performance metrics associated with the application, wherein, in order to obtain the segmentation computing configuration, the processor is configured to further obtain the segmentation computing configuration based on the set of performance metrics.

11. The apparatus according to claim 10, wherein, The segmentation calculation configuration maintains the set of performance metrics while minimizing the power consumption of the UE.

12. The apparatus according to claim 11, wherein, The set of performance metrics includes at least one of the following: the application's frame rate, the application's display resolution, or the application's operating status.

13. The apparatus according to claim 1, wherein, The processor is also configured to: The processor estimates the future quality of the link at a second time instance following the first time instance at the first time instance, wherein, in order to obtain the segmentation computation configuration, the processor is configured to further obtain the segmentation computation configuration based on the future quality of the link at the second time instance.

14. The apparatus according to claim 13, wherein, The processor is also configured to: At the first time instance, the confidence level of the future quality of the link at a second time instance following the first time instance is estimated, wherein, in order to obtain the segmentation computation configuration, the processor is configured to further obtain the segmentation computation configuration based on the confidence level of the future quality of the link at the second time instance.

15. The apparatus according to claim 1, wherein, In order to output an indication of the segmentation computing configuration, the processor is configured to either send an indication of the segmentation computing configuration to the computing device or store an indication of the segmentation computing configuration in at least one of the memory or cache.

16. The apparatus according to claim 15, wherein, The processor is configured to send an instruction to the computing device regarding the segmentation computing configuration, and wherein the processor is further configured to: Based on the segmentation calculation configuration, it is determined that the media rendered by the server will be utilized by the application; Sending a request to the computing device for the media rendered by the server; and Based on the request, the server-rendered media is received from the computing device.

17. The apparatus according to claim 15, wherein, The processor is configured to send an instruction to the computing device regarding the segmentation computing configuration, and wherein the processor is further configured to: Calculate the media rendered by the UE associated with the application; Receive media rendered by the server from the computing device; and The media rendered by the UE or the media rendered by the server is selected based on the exchange chain.

18. The apparatus according to claim 1, wherein, The UE includes a first type of graphics processor, and the computing device includes a second type of graphics processor, wherein at least one performance attribute of the second type of graphics processor is greater than that of the first type of graphics processor.

19. The apparatus according to claim 1, wherein, The first set of application functions includes at least one of the following: a first game engine, a first media codec, a first metadata, or a first game state transmission information between the UE and the computing device, and wherein the second set of application functions includes at least one of the following: a second game engine, a second media codec, a second metadata, and a second game state transmission information between the computing device and the UE.

20. The apparatus according to claim 1, wherein, The processor is also configured to: Determine the updated quality of the link between the UE and the computing device; as well as A first indication is sent to the computing device based on the updated quality of the link, the first indication being used to instruct the computing device to select a second segmented computing configuration or for the computing device to rate-adapt first information associated with the application.

21. The apparatus according to claim 1, wherein, The processor is also configured to: Establish a session with the application server used for the application; During the session, at least one of the following is obtained from the application server: status information for the application or media information for the application. as well as Synchronize with the computing device based on at least one of the status information for the application or the media information for the application.

22. The apparatus according to claim 1, wherein, The processor is also configured to: The UE receives a first instruction from the computing device, the first instruction being used to instruct the UE to select a second segmented computing configuration or to perform rate adaptation on first information associated with the application.

23. The apparatus according to claim 1, wherein, The device is a wireless communication device, which includes at least one of a transceiver or an antenna coupled to the processor, and wherein, in order to output an indication of the segmentation calculation configuration, the processor is configured to output an indication of the segmentation calculation configuration via at least one of the transceiver or the antenna.

24. The apparatus according to claim 1, wherein, The processor is also configured to: Displays the frames generated based on the segmentation calculation configuration.

25. The apparatus according to claim 1, wherein, The computing device includes at least one server.

26. An apparatus for graphics processing, comprising: Memory; as well as A processor coupled to the memory, and based on information stored in the memory, the processor is configured to: Obtain the source code for the application; The source code is decomposed into a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with a computing device different from the UE, wherein at least one of the first set of application functions or the second set of application functions is associated with the quality of the link between the UE and the computing device. A first executable file for the UE is generated based on the first set of application functions, and a second executable file for the computing device is generated based on the second set of application functions; and A first executable file for the UE and a second executable file for the computing device are provided.

27. An apparatus for graphics processing at a server, comprising: Memory; as well as A processor coupled to the memory, and based on information stored in the memory, the processor is configured to: Obtain an executable file for an application, the application including a first set of application functions associated with a user equipment (UE) and a second set of application functions associated with the server; Obtain the estimated quality of the link between the UE and the server; Based on the estimated quality of the link, a segmentation calculation configuration is obtained between the first application function set and the second application function set; as well as Output an instruction for the segmentation calculation configuration.

28. The apparatus according to claim 27, wherein, The device is a wireless communication device, which includes at least one of a transceiver or an antenna coupled to the processor, and wherein, in order to output an indication of the segmentation calculation configuration, the processor is configured to output an indication of the segmentation calculation configuration via at least one of the transceiver or the antenna.

29. The apparatus according to claim 27, wherein, In order to obtain the estimated quality of the link, the processor is configured to estimate the quality of the link between the UE and the server, and wherein, in order to obtain the segmentation calculation configuration, the processor is configured to select the segmentation calculation configuration based on the estimated quality of the link.

30. A method for graphics processing at a user equipment (UE), comprising: Obtain an executable file for an application, the application including a first set of application functions associated with the UE and a second set of application functions associated with a computing device different from the UE; Obtain the estimated quality of the link between the UE and the computing device; Based on the estimated quality of the link, a segmentation calculation configuration is obtained between the first application function set and the second application function set; as well as Output an instruction for the segmentation calculation configuration.