用于对应用计算的分配的方法和装置与流程

文档序号:31824316发布日期:2022-10-14 23:46阅读:54来源:国知局
用于对应用计算的分配的方法和装置与流程
用于对应用计算的分配的方法和装置
1.依据35u.s.c.
§
119要求优先权
2.本技术要求享受于2020年3月5日递交的美国非临时申请no.16/810,071的优先权和权益,将上述申请通过引用的方式明确地并入本文。
技术领域
3.概括而言,本公开内容涉及处理系统,并且更具体地,本公开内容涉及用于计算机处理的一种或多种技术。


背景技术:

4.计算设备通常利用图形处理单元(gpu)或中央处理单元(cpu)来加速对用于显示的图形数据的渲染。这样的计算设备可以包括例如计算机工作站、诸如所谓的智能电话之类的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。gpu执行图形处理流水线,图形处理流水线包括一个或多个处理阶段,其一起操作以执行图形处理命令以及输出帧。cpu可以通过向gpu发布一个或多个图形处理命令来控制gpu的操作。现代的cpu典型地能够并发地执行多个应用,其中的每个应用可能需要在执行期间利用gpu。提供内容以供在显示器上进行视觉呈现的设备通常包括gpu。
5.通常,设备的cpu或gpu被配置为执行计算机或图形处理中的过程。然而,随着无线通信和更小的手持设备的出现,对改进的计算机或图形处理的需求已经不断增加。


技术实现要素:

6.下文给出一个或多个方面的简要概述,以便提供对这样的方面的基本理解。该概述不是对全部预期方面的广泛概述,以及既不旨在标识全部方面的关键要素,也不旨在描绘任何或全部方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更加详细的描述的序言。
7.在本公开内容的一个方面中,提供了一种方法、计算机可读介质和装置。所述装置可以是服务器、客户端设备、中央处理单元(cpu)、图形处理单元(gpu)或可以执行计算机或图形处理的任何装置。该装置可以确定用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项。该装置还可以确定用于客户端设备与服务器之间的应用计算的计算负载。另外,该装置还可以基于以下各项中的至少一项来调整用于客户端设备与服务器之间的应用计算的计算分配:用于应用计算的计算负载、或者通信链路的质量、时延或容量中的至少一项。在一些方面中,该装置可以确定客户端设备或服务器中的至少一者的计算容量。该装置还可以确定客户端设备或服务器中的至少一者的热门限水平。该装置还可以确定客户端设备或服务器中的至少一者的计算功率水平。该装置还可以确定客户端设备或服务器中的至少一者是否支持最低计算容量。此外,该装置还可以基于客户端设备或服务器中的至少一者的计算容量来调整用于客户端设备与服务器之间的应用计算的计算分配。该装置还可以确定用于客户端设备与服务器之间的通信的通信链路是否支持最
低质量、时延或容量水平。该装置还可以测量用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项。
8.在附图和下文的描述中阐述了本公开内容的一个或多个示例的细节。根据说明书和附图以及根据权利要求书,本公开内容的其它特征、目的和优势将是显而易见的。
附图说明
9.图1是示出根据本公开内容的一种或多种技术的示例内容生成系统的框图。
10.图2示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示例图。
11.图3示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示例图。
12.图4示出了根据本公开内容的一种或多种技术的示例方法的示例流程图。
具体实施方式
13.当在扩展现实(xr)、增强现实(ar)或虚拟现实(vr)应用期间进行渲染时,移动设备可以利用大量功率。为了节省功率,渲染架构可以在服务器与客户端设备之间拆分或分配。因此,将渲染工作负载中的一些渲染工作负载卸载到服务器以便节省客户端设备处的功率可以是有利的。本公开内容的各方面可以根据服务器与客户端之间的通信网络条件或服务质量(qos)水平来分配或拆分渲染架构。在一些情况下,如果某个网络(例如,5g网络)正在产生低时延水平和高qos水平,则将更多的渲染工作负载卸载到服务器可以是有利的。此外,如果qos水平是低的,则在客户端设备处执行更多的渲染工作负载可以是有利的。因此,由客户端或服务器执行的渲染量可以取决于客户端与服务器之间的qos水平。本公开内容的各方面还可以根据服务器和/或客户端设备的计算容量来分配或拆分渲染架构。因此,本公开内容的各方面可以基于多个不同的因素来拆分渲染架构,以便:(i)减少在移动客户端上本地利用的功率量,(ii)保持高水平的渲染质量,(iii)维持头部运动与和该运动相关联的内容在移动客户端上显示的时间之间的低时延,或者(iv)在给定移动设备能力、当前移动设备处理负载、当前核心服务器负载以及当前通信网络条件或qos的情况下优化以上性能指标。
14.下文参考附图更加充分地描述系统、装置、计算机程序产品和方法的各个方面。然而,本公开内容可以以许多不同的形式来体现,以及不应当被解释为限于遍及本公开内容所呈现的任何特定的结构或功能。确切而言,提供这些方面以使得本公开内容将是全面和完整的,以及将向本领域技术人员充分地传达本公开内容的范围。基于本文的教导,本领域技术人员应当认识到的是,本公开内容的范围旨在涵盖本文所公开的系统、装置、计算机程序产品和方法的任何方面,无论该方面是独立于本公开内容的其它方面实现的还是与其它方面结合地实现的。例如,使用本文所阐述的任何数量的方面,可以实现装置或者可以实践方法。此外,本公开内容的范围旨在涵盖使用除了本文所阐述的本公开内容的各个方面以外或不同于本文所阐述的本公开内容的各个方面的其它结构、功能或者结构和功能来实践的这样的装置或方法。本文所公开的任何方面可以通过权利要求的一个或多个元素来体现。
15.尽管本文描述了各个方面,但是这些方面的许多变型和置换落在本公开内容的范围之内。尽管提到本公开内容的各方面的一些潜在益处和优势,但是本公开内容的范围并非旨在限于特定益处、用途或目标。确切而言,本公开内容的各方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些是通过示例的方式在附图和下文的描述中进行说明的。具体实施方式和附图仅是对本公开内容的说明而不是限制,本公开内容的范围是通过所附的权利要求以及其等效物来限定的。
16.参考各种装置和方法给出了若干方面。通过各种框、组件、电路、过程、算法等(统称为“元素”)在下文的具体实施方式中描述以及在附图中示出这些装置和方法。这些元素可以是使用电子硬件、计算机软件或其任何组合来实现的。这样的元素是实现为硬件还是软件,取决于特定的应用和对整个系统所施加的设计约束。
17.举例而言,元素、或元素的任何部分、或元素的任何组合可以实现为“处理系统”,“处理系统”包括一个或多个处理器(其还可以称为处理单元)。处理器的示例包括:微处理器、微控制器、图形处理单元(gpu)、通用gpu(gpgpu)、中央处理单元(cpu)、应用处理器、数字信号处理器(dsp)、精简指令集计算(risc)处理器、片上系统(soc)、基带处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门控逻辑、分立硬件电路、以及被配置为执行遍及本公开内容描述的各种功能的其它合适的硬件。处理系统中的一个或多个处理器可以执行软件。无论被称为软件、固件、中间件、微代码、硬件描述语言还是其它,软件可以广泛地解释为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行的线程、过程、函数等。术语应用可以是指软件。如本文所描述的,一种或多种技术可以是指被配置为执行一种或多种功能的应用,即软件。在这样的示例中,应用可以被存储在存储器上,例如处理器的片上存储器、系统存储器或任何其它存储器。本文所描述的硬件(诸如处理器)可以被配置为执行应用。例如,应用可以被描述为包括当由硬件执行时使得硬件执行本文所描述的一种或多种技术的代码。作为示例,硬件可以从存储器访问代码以及执行从存储器访问的代码以执行本文所描述的一种或多种技术。在一些示例中,在本公开内容中标识了组件。在这样的示例中,组件可以是硬件、软件或其组合。组件可以是单独的组件或单个组件的子组件。
18.相应地,在本文描述的一个或多个示例中,所描述的功能可以是以硬件、软件或其任何组合来实现的。如果以软件来实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或编码为计算机可读介质上的一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是能够由计算机访问的任何可用介质。通过举例而非限制的方式,这样的计算机可读介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程rom(eeprom)、光盘存储、磁盘存储、其它磁存储设备、上述类型的计算机可读介质的组合、或者可以用于以指令或数据结构的形式存储能够由计算机存取的计算机可执行代码的任何其它介质。
19.概括而言,本公开内容描述了如下的技术:所述技术用于在单个设备或多个设备中具有图形处理流水线,从而改善对图形内容的渲染和/或减少处理单元(即,被配置为执行本文所描述的一种或多种技术的任何处理单元,诸如gpu)的负载。例如,本公开内容描述了用于在利用图形处理的任何设备中的图形处理的技术。贯穿本公开内容描述了其它示例
益处。
20.如本文所使用的,术语“内容”的实例可以是指“图形内容”、“图像”,反之亦然。不管术语被用作为形容词、名词还是其它词性,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以是指由图形处理流水线的一个或多个过程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以是指由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以是指由图形处理单元产生的内容。
21.在一些示例中,如本文所使用的,术语“显示内容”可以是指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以是指由显示处理单元生成的内容。图形内容可以被处理以成为显示内容。例如,图形处理单元可以将诸如帧之类的图形内容输出给缓冲器(其可以被称为帧缓冲器)。显示处理单元可以从缓冲器读取图形内容(诸如一个或多个帧),以及对其执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为对一个或多个渲染层执行合成以生成帧。作为另一示例,显示处理单元可以被配置为将两个或更多个层合成、混合或者以其它方式组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放(例如,放大或缩小)。在一些示例中,帧可以是指层。在其它示例中,帧可以是指已经被混合在一起以形成帧的两个或更多个层,即帧包括两个或更多个层,以及包括两个或更多个层的帧随后可以被混合。
22.图1是示出被配置为实现本公开内容的一种或多种技术的示例内容生成系统100的框图。内容生成系统100包括设备104。设备104可以包括用于执行本文所描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是soc的组件。设备104可以包括被配置为执行本公开内容的一种或多种技术的一个或多个组件。在所示的示例中,设备104可以包括处理单元120、内容编码器/解码器122和系统存储器124。在一些方面中,设备104可以包括多个可选组件,例如,通信接口126、收发机132、接收机128、发射机130、显示处理器127和一个或多个显示器131。对显示器131的引用可以是指一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,而第二显示器可以是右眼显示器。在一些示例中,第一显示器和第二显示器可以接收用于在其上呈现的不同的帧。在其它示例中,第一显示器和第二显示器可以接收用于在其上呈现的相同的帧。在进一步的示例中,图形处理的结果可以不显示在设备上,例如第一显示器和第二显示器可以不接收用于在其上呈现的任何帧。相反地,帧或图形处理结果可以被传输给另一设备。在一些方面中,这可以被称为拆分渲染。
23.处理单元120可以包括内部存储器121。处理单元120可以被配置为执行图形处理,诸如在图形处理流水线107中。内容编码器/解码器127可以包括内部存储器123。在一些示例中,设备104可以包括显示处理器(诸如显示处理器127)以在由一个或多个显示器131进行呈现之前对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示或以其它方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示器131可以包括以下各项中的一项或多项:液晶显示器(lcd)、等离子体显示器、有机发光二极管
(oled)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器、或任何其它类型的显示设备。
24.在处理单元120和内容编码器/解码器122外部的存储器(诸如系统存储器124)可以是对于处理单元120和内容编码器/解码器122可访问的。例如,处理单元120和内容编码器/解码器122可以被配置为从诸如系统存储器124之类的外部存储器进行读取和/或写入该外部存储器。处理单元120和内容编码器/解码器122可以通过总线通信地耦合到系统存储器124。在一些示例中,处理单元120和内容编码器/解码器122可以通过总线或不同的连接彼此通信地耦合。
25.内容编码器/解码器122可以被配置为从诸如系统存储器124和/或通信接口126之类的任何源接收图形内容。系统存储器124可以被配置为存储所接收的经编码或经解码的图形内容。内容编码器/解码器122可以被配置为例如从系统存储器124和/或通信接口126接收具有经编码的像素数据的形式的经编码或经解码的图形内容。内容编码器/解码器122可以被配置为对任何图形内容进行编码或解码。
26.内部存储器121或系统存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或系统存储器124可以包括ram、sram、dram、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、磁性数据介质或光学存储介质、或任何其它类型的存储器。
27.根据一些示例,内部存储器121或系统存储器124可以是非暂时性存储介质。术语“非暂时性”可以指示存储介质没有体现在载波或传播的信号中。然而,术语“非暂时性”不应当被解释为意指内部存储器121或系统存储器124是不可移动的或者其内容是静态的。作为一个示例,系统存储器124可以从设备104移除以及移动到另一设备。作为另一示例,系统存储器124可以是不可从设备104移除的。
28.处理单元120可以是中央处理单元(cpu)、图形处理单元(gpu)、通用gpu(gpgpu)、或可以被配置为执行图形处理的任何其它处理单元。在一些示例中,处理单元120可以被整合到设备104的主板中。在一些示例中,处理单元120可以存在于安装在设备104的主板中的端口中的图形卡上,或者可以以其它方式并入被配置为与设备104进行互操作的外围设备内。处理单元120可以包括一个或多个处理器,诸如一个或多个微处理器、gpu、专用集成电路(asic)、现场可编程门阵列(fpga)、算术逻辑单元(alu)、数字信号处理器(dsp)、分立逻辑、软件、硬件、固件、其它等效的集成或分立逻辑电路、或其任何组合。如果技术是部分地以软件来实现的,则处理单元120可以将用于软件的指令存储在合适的非暂时性计算机可读存储介质(例如,内部存储器121)中,以及可以使用一个或多个处理器在硬件中执行指令,以执行本公开内容的技术。包括硬件、软件、硬件和软件的组合等的前述内容中的任何内容可以被认为是一个或多个处理器。
29.内容编码器/解码器122可以是被配置为执行内容编码/解码的任何处理单元。在一些示例中,内容编码器/解码器122可以被集成到设备104的主板中。内容编码器/解码器122可以包括一个或多个处理器,诸如一个或多个微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、算术逻辑单元(alu)、数字信号处理器(dsp)、视频处理器、分立逻辑、软件、硬件、固件、其它等效的集成或分立逻辑电路、或其任何组合。如果所述技术部分地在软件中实现,则内容编码器/解码器122可以将用于软件的指令存储在合适的非暂时性计算机
可读存储介质(例如,内部存储器123)中,以及可以使用一个或多个处理器在硬件中执行所述指令,以执行本公开内容的技术。包括硬件、软件、硬件和软件的组合等的任何前述内容可以被认为是一个或多个处理器。
30.在一些方面中,内容生成系统100可以包括可选的通信接口126。通信接口126可以包括接收机128和发射机130。接收机128可以被配置为执行本文中关于设备104描述的任何接收功能。另外,接收机128可以被配置为从另一设备接收信息(例如,眼睛或头部位置信息、渲染命令或位置信息)。发射机130可以被配置为执行本文中关于设备104描述的任何发送功能。例如,发射机130可以被配置为向另一设备发送可以包括针对内容的请求的信息。接收机128和发射机130可以被组合成收发机132。在这样的示例中,收发机132可以被配置为执行本文关于设备104描述的任何接收功能和/或发送功能。
31.再次参考图1,在某些方面中,图形处理流水线107可以包括确定组件198,其被配置为确定用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项。确定组件198还可以被配置为确定用于客户端设备与服务器之间的应用计算的计算负载。确定组件198还可以被配置为基于以下各项中的至少一项来调整针对客户端设备与服务器之间的应用计算的计算分配:用于应用计算的计算负载、或者用于通信链路的质量、时延或容量中的至少一项。确定组件198还可以被配置为确定客户端设备或服务器中的至少一者的计算容量。确定组件198还可以被配置为确定客户端设备或服务器中的至少一者的热门限水平。确定组件198还可以被配置为确定客户端设备或服务器中的至少一者的计算功率水平。确定组件198还可以被配置为确定客户端设备或服务器中的至少一者是否支持最低计算容量。确定组件198还可以被配置为基于客户端设备或服务器中的至少一者的计算容量来调整针对客户端设备与服务器之间的应用计算的计算分配。确定组件198还可以被配置为确定用于客户端设备与服务器之间的通信的通信链路是否支持最低质量、时延或容量水平。确定组件198还可以被配置为测量用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项。
32.如本文所描述的,诸如设备104之类的设备可以是指被配置为执行本文所描述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站、或大型计算机)、最终产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持设备(例如,便携式视频游戏设备或个人数字助理(pda))、可穿戴计算设备(例如,智能手表、增强现实设备或虚拟现实设备)、非可穿戴设备、显示器或显示设备、电视机、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或者被配置为执行本文所描述的一种或多种技术的任何设备。本文中的过程可以描述为由特定组件(例如,gpu)来执行,但是在进一步的实施例中,可以是使用与所公开的实施例一致的其它组件(例如,cpu)来执行的。
33.在一些方面中,可以在多个位置中和/或在多个设备上执行对图像或帧的渲染,例如,以便在不同的设备之间分割渲染工作负载。例如,渲染工作负载可以在服务器与客户端设备之间划分。在一些方面中,该过程可以被称为“拆分渲染”。在一些情况下,拆分渲染可以是用于将内容带到客户端设备或头戴式显示器(hmd)的方法,其中,计算机或图形处理的一部分可以是在客户端设备或hmd之外(例如,在服务器处)执行的。
34.可以针对多种不同类型的应用(例如,虚拟现实(vr)应用、增强现实(ar)应用和/或扩展现实(xr)应用)执行拆分渲染。在vr应用中,在客户端设备处显示的内容可以对应于经渲染的内容或动画内容,例如,在服务器或客户端设备处渲染的内容。在ar或xr应用中,在客户端设备处显示的内容的一部分可以对应于真实世界内容(例如,真实世界中的对象),并且该内容的一部分可以是经渲染的内容或动画内容。此外,经渲染的内容或动画内容和真实世界内容可以被显示在光学透视或视频透视设备中,使得用户可以同时查看真实世界对象和经渲染的内容。在一些方面中,xr内容可以指代vr和ar内容两者。xr、vr和ar应用可以全部涉及用户通过头戴式设备(headset)查看经渲染的内容。
35.通过在客户端或用户设备(例如,hmd或头戴式设备)与服务器之间拆分计算工作负载,拆分渲染可以在xr、ar或vr应用中提供高质量的用户体验。在一些方面中,客户端设备和服务器可以经由低时延通信链路(例如,5g或wi-fi)彼此连接。此外,服务器可以被定位为靠近低时延通信链路,以便减少时延。在一些方面中,服务器可以被称为边缘服务器或云服务器。
36.在xr、vr和ar应用的一些情况下,客户端设备或头戴式设备可以包括gpu或图形处理设备,其可以针对经渲染的内容执行必要的计算或图形处理。利用拆分渲染可以将重要部分的计算或图形处理卸载到服务器。在这些情况下,服务器可以是可以执行从客户端设备卸载的一些计算或图形处理的任何设备。例如,服务器可以是云服务器、边缘服务器、个人计算机、智能电话或任何适当的设备。
37.拆分渲染可以以多种不同的方式在服务器与客户端设备之间分配渲染计算。例如,所有渲染都可以是在客户端设备上执行的,即,其中所有计算都是在客户端上执行的,并且客户端与服务器共享计算状态。此外,所有渲染都可以是在服务器上执行的,即,其中所有计算都是在服务器上执行的,即使是要在客户端上显示的图像。在一些方面中,为了减少拆分渲染中的时延,一些客户端设备可以将未经压缩的视频流式传输到服务器。然而,对未经压缩的视频进行流式传输可能需要对于特定类型的服务器可用的吞吐量水平。
38.拆分xr、vr和ar系统在向客户端设备递送经渲染的内容时也可能引入时延。在一些方面中,与客户端渲染相比,当在服务器上发生渲染时,这种时延可能甚至更高,但是其也可以实现更复杂的xr、vr和ar内容。此外,在计算相机姿势的时间与对应于该相机姿势的内容出现在客户端显示器上的时间之间可能存在不可忽略的时延。例如,在拆分xr、vr和ar系统中可能始终存在一定的时延量。
39.在xr、vr和ar应用的一些实例中,用户在观察可能与用户感知的运动不对应的xr、vr或ar内容时可能由于时延问题而经历眩晕或恶心。为了减少用户所经历的潜在眩晕或恶心,客户端设备可能需要执行一种类型的设备跟踪。这种跟踪可以利用相机或惯性测量单元或两者的组合来执行,并且可以是在cpu、或gpu、或数字信号处理器(dsp)单元或专用处理单元上完全或部分地执行。在一些方面中,这种设备姿势跟踪算法可以跟踪六个自由度(6dof),即三维(3d)空间中的任意移动。在6dof中,用户头部的相对位置可以经由六个数值来指示。例如,三个数值可以定义相对偏移或平移,而三个数值可以定义相对旋转。
40.在一些情况下,客户端设备可以运行6dof算法以减少恶心或眩晕。例如,客户端设备可以减少6dof计算中的时延,以便减少由于在运动发生时与在渲染中计算出所产生的运动时之间的滞后而经历的可能发生的恶心。例如,如果时延或滞后超过某个门限(例如,
25ms),用户可能经历恶心或眩晕。这种时延可以是在用户移动时间与在头戴式设备上显示的内容中正确地计算出用户移动的时间之间经历的时延。此外,在渲染内容时,可能需要计算出这种6dof用户姿势。在拆分ar或vr应用中,总时延可以包括用户移动与在头戴式设备上显示对应于这种移动的内容的时刻之间的时间。
41.下面的表1显示了计算工作负载可以在服务器与客户端设备之间拆分的多种不同的方式。例如,表1显示了偏客户端分配、偏服务器分配以及服务器与客户端设备之间的均匀分配。在偏客户端分配中,大多数操作可以是由客户端设备执行的,而诊断和游戏状态维护可以是在服务器处执行的。在均匀分配中,时间敏感和其它非计算密集型操作可以是由客户端设备执行的,而计算繁重型和非时间敏感的操作可以是在服务器处执行的。此外,在偏服务器分配中,时间敏感和重要操作可以是由客户端设备执行的,而所有其它操作可以是在服务器处执行的。
[0042][0043]
表1
[0044]
图2示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示意图200。更具体地,图2中的示意图200是xr、vr或ar系统中的拆分渲染架构。示意图200包括游戏引擎210、视频和音频编码器212、低时延传输220、低时延传输222、显示和姿势计算单元230、视频和音频解码器232以及vr优化后处理单元234。在一些方面中,显示和姿势计算单元230、视频和音频解码器232以及vr优化后处理模块234都可以被包括在hmd中。图2显示了客户端设备与服务器之间的信息传输协议。
[0045]
客户端设备可以包括显示和姿势计算单元230、视频和音频解码器232以及vr优化后处理单元234。在一些方面中,显示和姿势计算单元230可以以高帧速率来生成姿势或帧,并且将这些姿势或帧上传到服务器。此外,服务器可以包括游戏引擎210以及视频和音频编码器212。游戏引擎210可以是产生从特定视点(例如,房间)拍摄的帧的应用,特定视点可以取决于来自客户端设备的姿势。在一些情况下,可以渲染帧中的每个物品,例如房间中的每个物品。
[0046]
在一些方面中,游戏引擎210可以渲染多个眼睛缓冲器,其中,每个眼睛缓冲器代表在客户端上捕获的唯一视角。这些眼睛缓冲器可以被编码为视频。此外,这些眼睛缓冲器以及相应的音频内容可以从游戏引擎210发送给视频和音频编码器212,视频和音频解码器212可以对流或信息进行压缩,并且将其以下行链路发送给客户端设备(例如,经由低时延传输222)。客户端设备可以对流或信息进行解压缩(例如,使用视频和音频解码器232),并且然后在vr优化后处理单元234处执行后处理。
[0047]
在后处理期间,客户端设备可以执行镜头失真校正(ldc)和/或色差校正(cac),这可以校正由hmd镜头引入的失真。例如,服务器上的游戏引擎可以产生未失真的视频,但是hmd中的镜头可能引入桶形失真以扩展视场(fov),例如,将fov从30度扩展到90度。这种桶
形失真可能需要校正,使得所产生的图像对于观看者来说看起来“自然”。校正可以通过在ldc和/或cac中编码的映射来引入,例如使得当通过hmd镜头观看时,所产生的枕形失真图像对于观看者来说看起来自然。
[0048]
在一些方面中,可以使用时间扭曲来执行后处理,这可以隐藏来自过程中的其它步骤的时延。这种时延可能是由于从客户端设备到服务器并且返回到客户端设备的往返发送的信息造成的。这种往返信息传输可以被称为运动到渲染到光子(m2r2p)。m2r2p可以包括来自显示和姿势计算单元230的运动到服务器上的渲染到显示和姿势计算单元230上的光子或显示。如上文所提及的,这可能在用户移动的时间与用户在头戴式设备上查看所产生的运动的时间之间产生时延。在一些情况下,在不使用拆分渲染的情况下,这种时延对于用户舒适来说可能太长。例如,后处理和时间扭曲可能产生长时延(例如,大于50毫秒),这可能导致用户经历恶心或眩晕。时间扭曲可以是图像或帧的重新投影。
[0049]
如本文所提及的,眼睛缓冲器可以从服务器发送给客户端设备,并且然后眼睛缓冲器可以被重新投影以对应于稍后姿势。在一些方面中,可以在显示和姿势计算单元230中估计稍后姿势,并且在后处理单元234中应用稍后姿势。因此,客户端设备可以采用稍后姿态,并且使用该稍后姿势来重新投影从服务器以下行链路发送的眼睛缓冲器。在一些方面中,针对总往返信息传输的时延(例如,50ms)可以大于针对该眼睛缓冲器重新投影循环的时延(例如,15ms),并且最终用户感知的时延可以等于重新投影循环的时延(例如,15ms)。
[0050]
在一些情况下,只要服务器与客户端设备之间的通信链路是足够的,则时延可以保持在某些时延门限以下。例如,基于在图2中所示的组件和步骤的组合(例如,在后处理期间的低时延传输和重新投影),如果通信链路是足够的,则服务器可以位于远离客户端设备的多个不同的位置上。应注意,例如,通过标准参数(诸如发射功率、信道几何结构或相对干扰)确定的通信链路的质量可能是关于时延为什么高的许多原因之一。例如,由于服务器可能不是与基站共置的,所以无线通信链路时延可能高于传统链路时延。
[0051]
在一些方面中,当用户在客户端设备上启动xr、ar或vr应用时,会话建立协议可以建立应用会话。这可以在检查服务器和低时延通信链路资源的可用性之后发生。如果未检查服务器和低时延通信链路资源可用性,并且假设其是足够的,则用户体验可能受到影响。在一些方面中,如果甚至没有检查服务器可用性,而假设其是足够的,则用户体验可能更差。
[0052]
此外,当在xr、ar或vr应用期间进行渲染时,客户端设备或hmd可能利用大量功率。由于客户端设备可能在渲染时利用大量功率,因此在服务器和客户端设备之间拆分渲染架构可以是有利的。通过这样做,客户端设备能够减少在xr、ar或vr应用期间利用的功率量。因此,目前需要在xr、ar或vr应用期间将渲染架构中的一些渲染架构从客户端设备卸载到服务器。
[0053]
本公开内容的各方面可以通过将渲染工作负载中的一些渲染工作负载卸载到服务器,从而在服务器与客户端设备之间分配或拆分渲染负载。在一些情况下,这可以取决于服务器与客户端之间的通信网络条件。可以有助于确定在移动客户端上承担多少渲染负载以及在远程服务器上启动多少渲染负载的其它因素是:在设备上可用的电池功率、维持最低qos所需要的移动调制解调器功率的估计、加入服务器渲染负载的组合成本(例如,传递给用户的基础设施成本)。例如,本公开内容的各方面可以在客户端设备与服务器之间拆分
渲染工作负载,以便减少在客户端设备处利用的功率量。此外,可以有利的是,每当服务器是可用的并且服务器与客户端之间的组合网络和通信链路允许低时延传输时,就将渲染工作负载中的一些渲染工作负载卸载到服务器。
[0054]
在一些方面中,通信网络条件可以被称为服务质量(qos)水平。在一些情况下,如果某个网络(例如,5g网络)正在产生低时延水平和/或高qos水平,则将更多的渲染工作负载卸载到服务器可以是有利的。在一些方面中,多个因素可能对qos水平起作用,例如,分组错误率(per)或块错误率(bler)。此外,在一些方面中,通信链路的qos水平可以是per或bler和时延水平的组合。此外,如果qos水平是低的,则在客户端设备处执行更多的渲染工作负载可以是有利的。因此,由客户端或服务器执行的渲染量可以取决于客户端与服务器之间的qos水平。本公开内容的各方面还可以根据服务器和/或客户端设备的计算容量来分配或拆分渲染架构。
[0055]
如上所指出的,根据通信网络条件来改变渲染架构可以有助于节省客户端设备或hmd处的功率。因此,如果网络条件或qos水平是良好的,则在客户端设备处可以不需要那么多功率,因为服务器可以执行更多的渲染工作负载。相反,如果qos水平是差的,所以服务器将无法处理重要部分的渲染工作负载,则客户端设备可能需要执行更多的渲染工作负载。
[0056]
如本文所指出的,卸载到服务器的计算或渲染量可以取决于客户端与服务器之间的通信链路中的qos水平或时延,例如,m2r2p时延。此外,在服务器上执行的渲染功能越多,在客户端设备处的后处理就越简单。
[0057]
在一些方面中,即使当qos水平是高的并且计算分配是偏服务器的时,客户端也可以执行最少量的功能。例如,当qos水平是高的时,客户端设备可以执行6dof姿势,解码内容和/或执行异步时间扭曲(atw)或其它类型的优化后处理。此外,如果xr体验包括使用手持控制器或其它交互性外围设备,则hmd可以将来自这些外围设备的信息与6dof姿势信息进行组合,并且在上行链路信道上将两者发送给服务器。因此,客户端设备应当能够处理针对用户的姿势以及某种水平的后处理。
[0058]
此外,在服务器处执行的计算量可以取决于qos水平。例如,游戏引擎可以在服务器上运行,但是服务器还可以执行环境检测和理解(在可能需要这种服务的系统或体验中)。例如,环境理解可能需要检测和理解在用户周围或前方的物理空间中的真实世界对象,例如,其形状、大小以及在物理世界中的位置。因此,如果qos水平是高的,并且客户端设备确定在本地执行环境理解超出其能力,或者负载计算太高,则其可以向服务器发送图像或真实世界对象。
[0059]
此外,服务器可以计算若干游戏引擎渲染功能,例如,可见性计算、着色、特效、光线跟踪或物理引擎计算,所有这些都可能需要大量计算工作负载。例如,在可见性阶段期间,可以确定场景中的不同网格的可见性,这是计算密集步骤。此外,确定针对场景的着色是计算密集步骤,尤其是在存在多个且动态光源、间接照明或全局照明、有光泽的材料、光传输介质中的粒子等情况下。物理引擎可以确定场景中的对象的不同物理属性,例如,球将如何从不同对象反弹。此外,服务器可以执行协作型游戏服务,其中,其可以确定用户状态和/或向客户端设备通知要渲染的下一对象。在一些情况下,在偏客户端计算中,大部分渲染可以是在客户端设备上执行的,而服务器可以提供游戏状态信息。
[0060]
qos水平还可以对应于通信网络的时延和/或通信网络的可靠性。因此,网络的时
延和可靠性可以直接相关。例如,当可靠地传输特定百分比的通信(这可能导致时延水平增加)时,客户端设备可以正常地运行。因此,如果通信是在高可靠性的情况下以特定速率发送的,则这可能导致较高时延。而如果通信是在低可靠性的情况下以较低速率发送的,则这可能导致较低时延。
[0061]
在一些方面中,如果qos水平被确定为低(例如,在客户端设备上的应用上检测到的),则通信可以被切换到偏客户端模式。此外,如果往返时延是高的,则可以在客户端设备上执行时延敏感操作。可以在发起或协商服务时确定这种权衡,使得可以确定渲染流水线中的计算负载。
[0062]
在一些方面中,当在客户端设备与服务器之间初始建立通信时,可以评估qos水平。在一些情况下,对于服务器与客户端设备之间的通信,还可以以特定时间间隔(例如,每10或15分钟)周期性地评估qos水平。此外,在一些方面中,可以连续地评估服务器与客户端设备之间的qos水平。
[0063]
如上所提及的,当用户在客户端设备上启动应用时,会话建立协议可以在检查服务器和低时延通信链路资源的可用性之后建立应用会话。本公开内容的各方面可以在应用会话的建立期间作出关于计算工作负载在客户端设备与服务器之间的分配的决策。在一些方面中,本公开内容可以执行会话建立,并且在应用级别评估通信链路的性能,例如,经由来自客户端设备上的应用或服务器上的应用的反馈。在一些情况下,服务器可以是可用的,但是可能存在请求来自同一服务器的协助的许多用户,例如,当计算中心是边缘服务器时。在这些情况下,服务器还可以拒绝服务或向高端用户提供服务(例如以高端费用)。然后,应用可以适应客户端设备与服务器之间的通信链路的当前条件。
[0064]
本公开内容的各方面还可以包括ar应用会话建立,其检查服务器和低时延通信链路资源的可用性。如果资源不是可用的,则可以采用在客户端设备上运行大多数计算的决策。因此,本公开内容可以基于多个不同的因素来调整计算分配,诸如通信链路的qos水平、客户端设备上的可用资源、服务器上的可用资源和/或偏服务器分配的所产生的操作成本。
[0065]
本公开内容的各方面可以包括在客户端设备与服务器之间分配计算工作负载的多种不同的方式。下面的表2显示了用于分配计算工作负载的这些模式中的若干种模式。例如,表2显示了偏客户端工作负载分配、偏服务器工作负载分配和均匀工作负载分配。表2还示出了客户端设备计算、服务器计算、上行链路业务和下行链路业务。
[0066][0067]
表2
[0068]
如在上面的表2中所示,在本公开内容的包括偏客户端分配的各方面中,客户端设备可以计算6dof姿势跟踪、环境感测、游戏引擎渲染和/或atw或其它专门的后处理。此外,在偏客户端分配中,服务器可以计算协作型游戏服务,例如,多用户玩和绘图、位置相关资产采购和/或传输。偏客户端分配中的上行链路业务可以包括游戏状态、6dof姿势和/或绘图参数。此外,偏客户端分配中的下行链路业务可以包括某些游戏资产、多用户游戏中的所有用户的游戏状态、地图和/或支持材料。
[0069]
如在上面的表2中进一步所示,在本公开内容的包括均匀分配的各方面中,客户端设备可以计算6dof跟踪、低水平感知(例如,人体感知、几何形状图元、特征描述符等)。客户端还可以实例化并且执行低等级游戏引擎实例以用于部分内容渲染。此外,客户端还可以负责内容解码、atw和/或其它后处理、以及内容合成(当适用时)。在均匀分配中,服务器可以计算较高水平感知例如语义分割、对象分类、精确的对象形状或位置以及对象级别的环境绘图、和/或侧重于某些方面例如,基于物理的渲染、材料、粒子效果等的游戏引擎实例。均匀分配中的上行链路业务可以包括游戏状态、6dof姿势和/或感知图元(例如,骨骼信息、几何形状图元、特征描述符等)。此外,均匀分配中的下行链路业务可以包括可以作为替用者、网格和/或着色纹理发送的适应环境的经渲染的内容(例如,取决于环境的渲染参数)。
[0070]
此外,如在上面的表2中所示,在本公开内容的包括偏服务器分配的各方面中,客户端设备可以计算6dof跟踪、内容解码、atw、其它类型的优化后处理和/或内容合成。在偏服务器分配中,服务器可以计算环境检测和理解、游戏引擎渲染(例如,可见性计算、着色、光线跟踪、特效和物理引擎)和/或内容编码。偏服务器分配中的上行链路业务可以包括hmd 6dof姿势、控制器姿势和状态和/或安装在hmd上的相机馈送。此外,在偏服务器分配中,下行链路业务可以包括可以作为帧和/或替用者发送的适应环境的经渲染的内容(例如,取决于环境的渲染参数)。
[0071]
在一些方面中,如果ar、vr或xr应用会话建立推断底层通信链路无法支持最低qos
水平,则会话可以在大部分计算在本地执行的情况下进行(即本地或偏客户端应用)。这可以通过评估qos水平来实现,例如,如果针对某些水平的计算拆分存在最低qos水平。因此,本公开内容可以基于计算拆分的水平来评估qos水平。
[0072]
此外,如果ar、vr或xr应用会话建立推断服务器无法支持最低计算容量,则会话可以在大部分计算在本地执行的情况下进行,即本地或偏客户端应用。此外,客户端设备可以关于客户端设备计算能力向服务器进行报告。根据本公开内容的服务器/客户端计算拆分决策的至少一些实例可以包括:(i)在给定当前负载的情况下的本地计算能力(例如,在客户端处),(ii)在给定当前负载的情况下的远程计算能力(例如,在服务器处),(iii)在给定当时的热考虑因素的情况下的本地和远程能力,(iv)通信链路考虑因素,其包括qos和/或在最低可接受qos下的端到端组合平均链路时延,(v)在给定本地渲染选项(例如,低通信规范)或远程渲染选项(例如,低本地渲染规范)的情况下的客户端电池寿命考虑因素。
[0073]
在一些方面中,ar、vr或xr应用可以使用通信链路来与服务器或另一ar、vr、或xr应用客户端设备交换应用信息,例如,游戏信息交换。此外,ar、vr或xr应用可以使用到服务器的通信链路,以传输利用可以被卸载到服务器的计算的某些功能的输入和输出。例如,服务器可以执行某些计算密集型功能,例如,光线跟踪或物理引擎计算。
[0074]
在一些情况下,ar、vr或xr应用可以使用通信链路来与服务器或另一ar、vr、或xr应用客户端设备交换应用信息,例如,游戏信息交换。此外,在一些方面中,ar、vr或xr应用会话建立可以推断通信链路是否支持降低的通信水平,并且如果支持的话,会话可以利用ar、vr或者xr应用的不超过降低的通信链路水平的版本继续进行。此外,在一些方面中,ar、vr或xr应用会话建立可以推断服务器是否支持降低的qos水平或容量,并且如果支持的话,会话可以利用应用的不超过降低的qos水平或服务器容量的版本继续进行。因此,qos水平可以通过通信设备和/或进行通信所花费的时间量来确定。
[0075]
在一些方面中,可以基于服务器与客户端设备之间的通信链路来确定计算拆分或分配。这可以基于支持的吞吐量的量以及传输用于在移动客户端上创建下一设备的刷新内容(例如,帧)所需要的信息组的平均时延来确定。此外,可以基于服务器的计算容量和/或客户端设备的计算容量来确定计算拆分或分配。例如,计算拆分可以基于服务器的计算容量和/或服务器上的计算成本来确定。此外,计算拆分可以基于客户端设备的计算容量和/或客户端设备上的计算可能需要的功率量来确定。因此,计算拆分或分配可以基于多个不同的因素来确定。
[0076]
图3示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示意图300。如图3中所示,示意图300包括服务器310、通信链路320、通信链路322和客户端设备330。在一些方面中,服务器310可以包括游戏引擎和/或视频和音频编码器。此外,客户端设备330可以包括hmd或头戴式设备、视频和音频解码器和/或vr优化后处理单元。此外,通信链路320和/或322可以包括低时延传输。
[0077]
图3示出了用于在拆分渲染中在客户端设备与服务器之间分配应用计算的前述过程的示例。如图3中所示,本公开内容的各方面(例如,本文中的服务器和客户端设备)可以执行多个不同的步骤或过程来分配应用计算。例如,本文中的服务器和客户端设备可以确定用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的通信的通信链路的质量、时延或容量中的至少一项。
[0078]
本文中的服务器和客户端设备还可以确定用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的应用计算的计算负载。此外,本文中的服务器和客户端设备可以确定用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的通信的通信链路(例如,通信链路320或通信链路322)是否支持最低质量、时延或容量水平。
[0079]
本文中的服务器和客户端设备还可以测量用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的通信的通信链路的质量、时延或容量中的至少一项。在一些方面中,对用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的通信的通信链路的质量、时延或容量的测量可以是基于xr应用、ar应用或vr应用的。此外,对用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的通信的通信链路的质量、时延或容量的测量可以由客户端设备(例如,客户端设备330)和/或服务器(例如,服务器310)来发起。
[0080]
此外,本文中的服务器和客户端设备可以确定客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者的计算容量。本文中的服务器和客户端设备还可以确定客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者的热门限水平。本文中的服务器和客户端设备还可以确定客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者的计算功率水平。在一些方面中,客户端设备(例如,客户端设备330)的计算功率水平可以包括剩余电池水平。
[0081]
本文中的服务器和客户端设备还可以确定客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者是否支持最低计算容量。在一些方面中,客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者的计算容量可以是用于xr应用、ar应用或vr应用的计算容量。此外,客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中的至少一者的计算容量可以是渲染计算容量。
[0082]
此外,本文中的服务器和客户端设备可以基于以下各项中的至少一项来调整用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的应用计算的计算分配:用于应用计算的计算负载、或者通信链路的质量、时延或容量中的至少一项。此外,本文中的服务器和客户端设备可以基于客户端设备(例如,客户端设备330)或服务器(例如,服务器310)中至少一者的计算容量来调整用于客户端设备与服务器之间的应用计算的计算分配。
[0083]
在一些方面中,当所确定的用于应用计算的计算负载小于计算负载门限时,客户端设备(例如,客户端设备330)可以执行第一客户端水平的应用计算,并且服务器(例如,服务器310)可以执行第二服务器水平的应用计算。此外,当所确定的用于应用计算的计算负载大于或等于计算负载门限时,客户端设备(例如,客户端设备330)可以执行第二客户端水平的应用计算,并且服务器(例如,服务器310)可以执行第一服务器水平的应用计算。当所确定的用于应用计算的计算负载近似等于计算负载门限时,客户端设备还可以执行第三客户端水平的应用计算,并且服务器可以执行第三服务器水平的应用计算。
[0084]
在一些方面中,用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的应用计算的计算分配可以对应于拆分xr架构、拆分ar架构或拆分vr架构。此外,服务器(例如,服务器310)可以是边缘服务器或云服务器。客户端设备(例如,客户端设备
330)也可以是头戴式显示器(hmd)或头戴式设备。此外,用于客户端设备(例如,客户端设备330)与服务器(例如,服务器310)之间的应用计算的计算分配可以是由中央处理单元(cpu)或图形处理单元(gpu)来调整的。
[0085]
在一些方面中,通信链路(例如,通信链路320或通信链路322)的质量、时延或容量可以是基于服务质量(qos)通知消息来确定的。该qos通知消息可以是从无线通信系统(例如,nr系统或lte系统)接收的。此外,计算分配可以是基于qos通知消息来调整的。此外,计算分配的调整的时间段可以是基于qos通知消息的。在一些情况下,调整的时间段可以至少是特定时间段,例如,至少100ms。此外,应用计算可以是用于多媒体应用。例如,多媒体应用可以包括xr应用、ar应用、vr应用、云游戏应用或云辅助感知应用中的至少一者。
[0086]
图4示出了根据本公开内容的一种或多种技术的示例方法的示例流程图400。该方法可以由诸如服务器、客户端设备、cpu、gpu或用于计算机或图形处理的装置之类的装置来执行。在402处,该装置可以确定用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项,如结合图2和3中的示例所描述的。在404处,该装置可以确定用于客户端设备与服务器之间的通信的通信链路是否支持最低质量、时延或容量水平,如结合图2和3中的示例所描述的。
[0087]
在406处,该装置可以测量用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项,如结合图2和3中的示例所描述的。在一些方面中,对用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量的测量可以是基于xr应用、ar应用或vr应用的,如结合图2和3中的示例所描述的。此外,对用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量的测量可以是由客户端设备和/或服务器的发起,如结合图2和3中的示例所描述的。
[0088]
在408处,该装置可以确定用于客户端设备与服务器之间的应用计算的计算负载,如结合图2和3中的示例所描述的。在410处,该装置可以确定客户端设备或服务器中的至少一者的计算容量,如结合图2和3中的示例所描述的。在412处,该装置可以确定客户端设备或服务器中的至少一者的热门限水平。在414处,该装置可以确定客户端设备或服务器中的至少一者的计算功率水平。在一些方面中,客户端设备的计算功率水平可以包括剩余电池水平。
[0089]
在416处,该装置还可以确定客户端设备或服务器中的至少一者是否支持最低计算容量,如结合图2和3中的示例所描述的。在一些方面中,客户端设备或服务器中的至少一者的计算容量可以是用于xr应用、ar应用或vr应用的计算容量,如结合图2和3中的示例所描述的。此外,客户端设备或服务器中的至少一者的计算容量可以是渲染计算容量,如结合图2和3中的示例所描述的。
[0090]
在418处,该装置可以基于以下各项中的至少一项来调整用于客户端设备与服务器之间的应用计算的计算分配:用于应用计算的计算负载、或者通信链路的质量、时延或容量中的至少一项,如结合图2和3中的示例所描述的。在420处,该装置还可以基于客户端设备或服务器中的至少一者的计算容量来调整用于客户端设备与服务器之间的应用计算的计算分配,如结合图2和3中的示例所描述的。
[0091]
在一些方面中,当所确定的用于应用计算的计算负载小于计算负载门限时,客户端设备可以执行第一客户端水平的应用计算,并且服务器可以执行第一服务器水平的应用
计算,如结合图2和3中的示例所描述的。此外,当所确定的用于应用计算的计算负载大于或等于计算负载门限时,客户端设备可以执行第二客户端水平的应用计算,并且服务器可以执行第二服务器水平的应用计算,如结合图2和3中的示例所描述的。此外,当所确定的用于应用计算的计算负载近似等于计算负载门限时,客户端设备可以执行第三客户端水平的应用计算,并且服务器可以执行第三服务器水平的应用计算,如结合图2和3中的示例所描述的。
[0092]
在一些方面中,用于客户端设备与服务器之间的应用计算的计算分配可以对应于拆分xr架构、拆分ar架构或拆分vr架构,如结合图2和3中的示例所描述的。此外,服务器可以是边缘服务器或云服务器,如结合图2和3中的示例所描述的。客户端设备也可以是hmd或头戴式设备,如结合图2和3中的示例所描述的。此外,用于客户端设备与服务器之间的应用计算的计算分配可以是由cpu或gpu来调整的,如结合图2和3中的示例所描述的。在一些方面中,质量或负载水平可以包括服务质量(qos)水平,如结合图2和3中的示例所描述的。
[0093]
在一些方面中,通信链路的质量、时延或容量可以是基于服务质量(qos)通知消息来确定的,如结合图2和3中的示例所描述的。该qos通知消息可以是从无线通信系统(例如,nr系统或lte系统)接收的,如结合图2和3中的示例所描述的。此外,计算分配可以是基于qos通知消息来调整的,如结合图2和3中的示例所描述的。此外,计算分配的调整的时间段可以是基于qos通知消息的,如结合图2和3中的示例所描述的。在一些情况下,调整的时间段可以至少是特定时间段(例如,至少100ms),如结合图2和3中的示例所描述的。此外,应用计算可以是用于多媒体应用。例如,多媒体应用可以包括xr应用、ar应用、vr应用、云游戏应用或云辅助感知应用中的至少一者,如结合图2和3中的示例所描述的。
[0094]
在一种配置中,提供了用于图形处理的方法或装置。该装置可以是服务器、客户端设备、cpu、gpu或可以执行计算机或图形处理的某种其它处理器。在一个方面中,该装置可以是设备104内的处理单元120,或者可以是设备102或另一设备内的某种其它硬件。该装置可以包括用于确定用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项的单元。该装置还可以包括用于确定用于客户端设备与服务器之间的应用计算的计算负载的单元。该装置还可以包括用于基于以下各项中的至少一项来调整用于客户端设备与服务器之间的应用计算的计算分配的单元:用于应用计算的计算负载、或者通信链路的质量、时延或容量中的至少一项。该装置还可以包括用于确定客户端设备或服务器中的至少一者的计算容量的单元。该装置还可以包括用于确定客户端设备或服务器中的至少一者的热门限水平的单元。该装置还可以包括用于确定客户端设备或服务器中的至少一者的计算功率水平的单元。该装置还可以包括用于确定客户端设备或服务器中的至少一者是否支持最低计算容量的单元。该装置还可以包括用于基于客户端设备或服务器中的至少一者的计算容量来调整用于客户端设备与服务器之间的应用计算的计算分配的单元。该装置还可以包括用于确定用于客户端设备与服务器之间的通信的通信链路是否支持最低质量、时延或容量水平的单元。该装置还可以包括用于测量用于客户端设备与服务器之间的通信的通信链路的质量、时延或容量中的至少一项的单元。
[0095]
可以实现本文描述的主题以实现一个或多个益处或优点。例如,所描述的图形处理技术可以由服务器、客户端、gpu、cpu或可以执行计算机或图形处理以实现本文描述的拆分渲染技术的某种其它处理器来使用。与其它计算机或图形处理技术相比,这也可以以低
成本来实现。此外,本文中的计算机或图形处理技术可以改进或加速数据处理或执行。进一步地,本文中的计算机或图形处理技术可以提高资源或数据利用和/或资源效率。此外,本公开内容的各方面可以利用拆分渲染过程,其可以减少所利用的功率量并且仍然维持高水平的渲染质量。
[0096]
根据本公开内容,在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。另外,虽然诸如“一个或多个”或“至少一个”等的短语可能已经用于本文所公开的一些特征,而没有用于其它特征,但是没有使用这样的语言的特征可以被解释为在上下文没有另外规定的情况下暗示了这样的含义。
[0097]
在一个或多个示例中,本文所描述的功能可以用硬件、软件、固件或其任何组合来实现。例如,尽管已经遍及本公开内容使用了术语“处理单元”,但是这样的处理单元可以用硬件、软件、固件或其任何组合来实现。如果任何功能、处理单元、本文所描述的技术或其它模块是用软件实现的,则功能、处理单元、本文所描述的技术或其它模块可以作为一个或多个指令或代码存储在计算机可读介质上或者通过其进行发送。计算机可读介质可以包括计算机数据存储介质或通信介质,所述通信介质包括促进将计算机程序从一个地方传送到另一个地方的任何介质。以此方式,计算机可读介质通常可以对应于:(1)有形计算机可读存储介质,其是非暂时性的;或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器存取以取回用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述各项的组合也应当被包括在计算机可读介质的范围之内。计算机程序产品可以包括计算机可读介质。
[0098]
代码可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、算术逻辑单元(alu)、现场可编程逻辑阵列(fpga)、或其它等效的集成的或分立的逻辑电路。因此,如本文所使用的术语“处理器”可以是指前述结构中的任何一者或者适合于实现本文所描述的技术的任何其它结构。此外,所述技术可以是在一个或多个电路或逻辑元件中充分地实现的。
[0099]
本公开内容的技术可以是在各种各样的设备或装置中实现的,包括无线手机、集成电路(ic)或一组ic(例如,芯片集)。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。确切而言,如上文所描述的,各个单元可以被组合在任何硬件单元中,或者由一批可互操作的硬件单元(包括如上文所描述的一个或多个处理器)结合合适的软件和/或固件来提供。
[0100]
已经描述了各个示例。这些和其它示例在跟随的权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1