用于增强现实内容的图谱管理的方法和装置转让专利

申请号 : CN202180030400.5

文献号 : CN115668298B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : V·梅尔科特克里希纳普拉萨德S·K·拉克希米坎塔S·班纳吉S·R·卡尔班德S·B·德布A·西塔拉姆A·V·拉奥

申请人 : 高通股份有限公司

摘要 :

本公开内容涉及用于图形处理的方法和装置。该装置可以确定包括与帧中的经渲染内容相关联的一个或多个边界框的眼缓冲区。该装置还可以基于眼缓冲区生成图谱,所述图谱包括与一个或多个边界框相关联的一个或多个分块。另外,该装置可以传送包括一个或多个分块的图谱。该装置还可以计算与帧中的经渲染内容相关联的用户运动量。此外,该装置可以基于所计算的用户运动量来确定一个或多个边界框中的每个边界框的大小。该装置还可以确定图谱中的一个或多个分块中的每个分块的大小和位置。

权利要求 :

1.一种处理增强现实AR内容的方法,所述方法包括:由客户端设备接收AR内容分块的AR内容图谱,所述分块与定义了帧的稀疏AR内容的边界框相关联;

确定所接收的图谱的分块中的每个分块对应的稀疏AR内容在所述边界框中的位置;

基于所述分块和所确定的所述分块中的每个分块对应的稀疏AR内容在所述边界框中的位置,确定包括与所述稀疏AR内容相关联的所述边界框的眼缓冲区;以及由所述客户端设备基于所述稀疏AR内容眼缓冲区来渲染所述AR内容。

2.根据权利要求1所述的方法,其中,所述边界框中的每个边界框的大小是基于与所述帧中的经渲染AR内容相关联的所计算的用户运动量来定义的。

3.根据权利要求1所述的方法,还包括:

确定所述图谱的分块中的每个分块的大小,其对应于所述边界框中的每个边界框的大小。

4.根据权利要求1所述的方法,其中,对所接收的图谱的分块中的每个分块的位置的确定是基于从生成所述图谱的服务器接收的分块元数据的。

5.根据权利要求1所述的方法,还包括:

接收与所述图谱中的所述分块相关联的变形元数据;

其中,由所述客户端设备渲染所述AR内容是进一步基于所述变形元数据的。

6.根据权利要求1所述的方法,还包括:

向服务器发送所述客户端设备的用户的至少一个头部姿态样本,所述至少一个头部姿态样本指示所述用户的定位和移动中的至少一者;以及从所述服务器接收包括与所述边界框相关联的分块的图谱,每个边界框具有基于所述用户的所述至少一个头部姿态样本而定义的相应大小。

7.根据权利要求1所述的方法,还包括:

由所述客户端设备确定所述AR内容的所述帧与先前帧之间的分块对应关系;

基于所确定的分块对应关系来隐藏所接收的图谱的至少一个分块;以及由所述客户端设备基于所述眼缓冲区来渲染所述AR内容以包括所述稀疏AR内容,从而包括所述隐藏的至少一个分块。

8.根据权利要求1所述的方法,还包括:

由客户端设备接收一压缩格式的图谱;以及

由所述客户端设备的解码器解码所述图谱以确定与定义了所述帧的稀疏AR内容的边界框相关联的分块。

9.一种用于处理增强现实AR内容的客户端设备装置,所述装置包括:存储器;以及

至少一个处理器,所述至少一个处理器耦接到所述存储器并且被配置为:接收AR内容分块的AR内容图谱,所述分块与定义了帧的稀疏AR内容的边界框相关联;

确定所接收的图谱的分块中的每个分块对应的稀疏AR内容在所述边界框中的位置;

基于所述分块和所确定的所述分块中的每个分块对应的稀疏AR内容在所述边界框中的位置,确定包括与所述稀疏AR内容相关联的所述边界框的眼缓冲区;以及基于所述稀疏AR内容眼缓冲区来渲染所述AR内容。

10.根据权利要求9所述的装置,其中,所述边界框中的每个边界框的大小是基于与所述帧中的经渲染AR内容相关联的所计算的用户运动量来定义的。

11.根据权利要求9所述的装置,其中,所述至少一个处理器还被配置为:确定所述图谱的分块中的每个分块的大小,其对应于所述边界框中的每个边界框的大小。

12.根据权利要求9所述的装置,其中,对所接收的图谱的分块中的每个分块的位置的确定是基于从生成所述图谱的服务器接收的分块元数据的。

13.根据权利要求9所述的装置,其中,所述至少一个处理器还被配置为:接收与所述图谱中的所述分块相关联的变形元数据,以及基于所述变形元数据来渲染所述AR内容。

14.根据权利要求9所述的装置,其中,所述至少一个处理器还被配置为:向服务器发送所述客户端设备的用户的至少一个头部姿态样本,所述至少一个头部姿态样本指示所述用户的定位和移动中的至少一者;以及从所述服务器接收包括与所述边界框相关联的分块的图谱,每个边界框具有基于所述用户的所述至少一个头部姿态样本定义的相应大小。

15.根据权利要求9所述的装置,其中,所述至少一个处理器还被配置为:确定所述AR内容的所述帧与先前帧之间的分块对应关系;

基于所确定的分块对应关系来隐藏所接收的图谱的至少一个分块;以及基于所述眼缓冲区来渲染所述AR内容以包括所述稀疏AR内容,从而包括所述隐藏的至少一个分块。

16.根据权利要求9所述的装置,还包括解码器,所述解码器被配置为:接收一压缩格式的图谱;以及

解码所述图谱以确定与定义所述帧的稀疏AR内容的边界框相关联的分块。

17.一种处理增强现实AR内容的方法,所述方法包括:确定稀疏AR内容眼缓冲区,所述稀疏AR内容眼缓冲区包括帧的稀疏AR内容的边界框;

生成所述稀疏AR内容的稀疏AR内容图谱,所述稀疏AR内容图谱包括与所述边界框相关联的AR内容分块;

确定所述图谱中与稀疏AR内容对应的每个AR内容分块的位置;以及将所述图谱和所确定的位置发送到客户端设备,以用于基于所述图谱和所确定的位置在所述客户端设备上渲染所述AR内容。

18.根据权利要求17所述的方法,还包括:确定所述图谱的分块中的每个分块的大小,其对应于所述边界框中的每个边界框的大小。

19.根据权利要求18所述的方法,还包括:基于用于将所述图谱发送到所述客户端设备的目标比特速率来确定所述分块中的每个分块的大小。

20.根据权利要求17所述的方法,还包括:确定与所述帧中的经渲染AR内容相关联的用户运动量;以及基于所确定的用户运动量来确定所述边界框中的每个边界框的大小。

21.根据权利要求17所述的方法,还包括:生成与所述图谱中的分块相关联的变形元数据,以供所述客户端设备被配置为基于所述变形元数据来渲染所述AR内容。

22.根据权利要求17所述的方法,还包括:从所述客户端设备接收所述客户端设备的用户的至少一个头部姿态样本,所述至少一个头部姿态样本指示所述用户的定位和移动中的至少一者;以及基于所述用户的所述至少一个头部姿态样本,确定与所述图谱的一个或多个分块相关联的边界框的相应大小。

23.根据权利要求17所述的方法,还包括:以一压缩格式对所述图谱进行编码;以及

将经编码的图谱发给所述客户端设备。

24.一种用于处理增强现实AR内容的装置,所述装置包括:存储器;以及

至少一个处理器,所述至少一个处理器耦接到所述存储器并且被配置为:确定稀疏AR内容眼缓冲区,所述稀疏AR内容眼缓冲区包括帧的稀疏AR内容的边界框;

生成所述稀疏AR内容的稀疏AR内容图谱,所述稀疏AR内容图谱包括与所述边界框相关联的AR内容分块;

确定所述图谱中与稀疏AR内容对应的每个AR内容分块的位置;以及将所述图谱和所确定的位置发送到客户端设备,以用于基于所述图谱和所确定的位置在所述客户端设备上渲染所述AR内容。

25.根据权利要求24所述的装置,其中,所述至少一个处理器还被配置为:确定所述图谱的分块中的每个分块的大小,其对应于所述边界框中的每个边界框的大小。

26.根据权利要求25所述的装置,其中,所述至少一个处理器还被配置为:基于用于将所述图谱发送到所述客户端设备的目标比特速率来确定所述分块中的每个分块的大小。

27.根据权利要求24所述的装置,其中,所述至少一个处理器还被配置为:确定与所述帧中的经渲染AR内容相关联的用户运动量;以及基于所确定的用户运动量来确定所述边界框中的每个边界框的大小。

28.根据权利要求24所述的装置,其中,所述至少一个处理器还被配置为:生成与所述图谱中的分块相关联的变形元数据,以供所述客户端设备被配置为基于所述变形元数据来渲染所述AR内容。

29.根据权利要求24所述的装置,其中,所述至少一个处理器还被配置为:从所述客户端设备接收所述客户端设备的用户的至少一个头部姿态样本,所述至少一个头部姿态样本指示所述用户的定位和移动中的至少一者;以及基于所述用户的所述至少一个头部姿态样本,确定与所述图谱的一个或多个分块相关联的边界框的相应大小。

30.根据权利要求24所述的装置,还包括编码器,所述编码器被配置为:以一压缩格式对所述图谱进行编码;以及

将经编码的图谱发送到所述客户端设备。

说明书 :

用于增强现实内容的图谱管理的方法和装置

[0001] 相关申请的交叉引用
[0002] 本申请要求享有于2020年5月14日提交的题为“METHOD AND APPRATUS FOR ATLAS MANAGEMENT OF AUGMENTED REALITY CONTENT”的印度专利申请No.202041020333,和于2020年9月30日提交的题为“METHOD AND APPRATUS FOR ATLAS MANAGEMENT OF AUGMENTED REALITY CONTENT”的美国专利申请No.17/039,834的优先权,其全部内容由此通过引用的方式整体并入本文。

技术领域

[0003] 本公开内容总体上涉及处理系统,并且更具体而言,涉及用于图形或计算机处理的一种或多种技术。

背景技术

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

发明内容

[0006] 以下呈现一个或多个方面的简要概述以提供对这些方面的基本理解。本概述不是对所有预期方面的广泛综述,既不旨在标识所有方面的关键元素,也不是描述任何或全部方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
[0007] 在本公开内容的一方面,提供了一种方法、一种计算机可读介质和一种装置。所述装置可以是客户端设备、中央处理单元(CPU)、图形处理单元(GPU)或可以执行图形或计算机处理的任何装置。所述装置可以在帧中生成渲染的内容。所述装置可以接收图谱(atlas),所述图谱包括与定义帧的稀疏AR内容的一个或多个边界框相关联的一个或多个分块(patch);确定针对所述稀疏AR内容的所述一个或多个分块中的每个分块在所接收的图谱中的位置;基于所确定的所述一个或多个分块中的每个分块的位置,来确定包括与所述帧中的所述稀疏AR内容相关联的所述一个或多个边界框的眼缓冲区;以及基于所述眼缓冲区来渲染所述AR内容以包括所述稀疏AR内容。另外,所述一个或多个边界框中的每个边界框的大小是基于与所述帧中的经渲染AR内容相关联的所计算的用户运动量来定义的。所述装置还可以确定所述图谱中的所述一个或多个分块中的每个分块的大小,其对应于所述一个或多个边界框中的每个边界框的大小。所述装置还可以基于从生成所述图谱的服务器接收的分块元数据,来确定在所接收的图谱中的针对所述稀疏AR内容的所述一个或多个分块中的每个分块的位置。所述装置还可以接收与所述图谱中的所述一个或多个分块相关联的变形元数据;以及基于所述变形元数据来渲染所述AR内容。所述装置还可以向服务器发送客户端设备的用户的至少一个头部姿态样本,其指示所述用户的定位和移动中的至少一者;以及从所述服务器接收包括与所述一个或多个边界框相关联的所述一个或多个分块的图谱,每个边界框具有基于所述用户的所述至少一个头部姿态样本而定义的相应大小。此外,所述装置还可以确定所述AR内容的所述帧与先前帧之间的分块对应关系;基于所确定的分块对应关系来隐藏所接收的图谱的至少一个分块;以及基于所述眼缓冲区来渲染所述AR内容以包括所述稀疏AR内容,从而包括所述隐藏的至少一个分块。此外,所述装置还可以包括解码器,所述解码器被配置为接收压缩格式的所述图谱并解码所述图谱以确定与定义所述帧的稀疏AR内容的一个或多个边界框相关联的所述一个或多个分块。
[0008] 此外,在本公开内容的一方面,提供了一种方法、一种计算机可读介质和一种装置。所述装置可以是服务器、中央处理单元(CPU)、图形处理单元(GPU)或可以执行图形或计算机处理的任何装置。所述装置可以确定包括与帧中的稀疏AR内容相关联的一个或多个边界框的眼缓冲区;生成包括与所述帧中的所述稀疏AR内容相关联的所述一个或多个边界框的图谱;确定所述图谱中的针对所述稀疏AR内容的对应于所述一个或多个边界框的一个或多个分块的位置;以及基于所确定的所述帧的所述稀疏AR内容的所述一个或多个分块的位置,将所述图谱发送到客户端设备以在其上渲染AR内容。此外,所述装置可以确定所述图谱中的所述一个或多个分块中的每个分块的大小,其对应于所述一个或多个边界框中的每个边界框的大小。所述装置还可以基于用于将所述图谱发送到所述客户端设备的目标比特速率来确定所述一个或多个分块中的每个分块的大小。所述装置还可以确定与所述帧中所渲染的AR内容相关联的用户运动量;以及基于所计算的用户运动量来确定所述一个或多个边界框中的每个边界框的大小。所述装置还可以生成与所述图谱中的所述一个或多个分块相关联的变形元数据,使得所述客户端设备被配置为基于所述变形元数据来渲染所述AR内容。所述装置还可以从所述客户端设备接收所述客户端设备的用户的至少一个头部姿态样本,其指示所述用户的定位和移动中的至少一者;以及基于所述用户的所述至少一个头部姿态样本,确定与所述图谱的所述一个或多个分块相关联的所述一个或多个边界框的相应大小。所述装置还可以包括编码器,所述编码器可以以压缩格式对所述图谱进行编码,并将所述编码的图谱发送到所述客户端设备。
[0009] 在附图和以下描述中阐述本公开内容的一个或多个示例的细节。根据说明书和附图以及权利要求书,本公开内容的其他特征、目的和优点将是显而易见的。

附图说明

[0010] 图1是示出根据本公开内容的一种或多种技术的示例内容生成系统的方框图。
[0011] 图2示出了根据本公开内容的一种或多种技术的示例GPU。
[0012] 图3示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示例图。
[0013] 图4示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示例图。
[0014] 图5示出了根据本公开内容的一种或多种技术的图谱管理的示例图。
[0015] 图6示出了根据本公开内容的一种或多种技术的图谱管理的示例图。
[0016] 图7示出了根据本公开内容的一种或多种技术的图谱管理的示例图。
[0017] 图8示出根据本公开内容的一种或多种技术的示例性方法的示例性流程图。

具体实施方式

[0018] 通常,假设可以在现实世界的情景中查看虚拟内容,则针对增强现实(AR)渲染的内容可以是稀疏的。在AR的一些方面中,一个帧中在经渲染视场的一个或多个边界框外部的部分(例如,高达50%或更多)可以是透明的,通过所述部分观看到现实世界。在一些AR用例中,可以在服务器(例如,电话或边缘服务器)与客户端AR设备(例如,头盔)之间对渲染进行分割。这些设备可以通过有线或无线连接来连接。在一些情况下,内容可以在服务器上进行渲染,然后被编码并发送到客户端设备。然后,客户端设备可以对内容进行解码并将其变形至最新的用户姿态,以及显示该内容。对与全显示分辨率相对应的眼缓冲区(例如,其包括透明区域)进行编码和解码可能导致显著的延迟和功率而没有相称的输出。因此,本公开内容的示例性方面可以包括在分割渲染中的图谱和眼缓冲区,其对应于导致经优化的延迟量和所利用功率量的全显示分辨率。如下面详细讨论的,本公开内容的示例性方法、装置和系统可以包括图谱管理。例如,图谱管理可以使稀疏AR内容紧凑并减少解码延迟,以及减少所利用功率量。此外,本公开内容的各方面还可以减少客户端侧的双倍数据速率(DDR)带宽的量。
[0019] 在下文中参考附图更全面地描述了系统、装置、计算机程序产品和方法的各个方面。然而,本公开内容可以以许多不同的形式来体现,并且不应当被解释为限于贯穿本公开内容给出的任何特定结构或功能。相反,提供这些方面使得本公开内容将是透彻和完整的,并且将向本领域技术人员充分传达本公开内容的范围。基于本文的教导,本领域技术人员应当理解,本公开内容的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论其是独立于本公开内容的其他方面实现的还是与本公开内容的其他方面组合实现的。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。另外,本公开内容的范围旨在覆盖使用除了本文所阐述的本公开内容的各个方面之外或不同于本文所阐述的本公开内容的各个方面的其他结构、功能或者结构和功能来实践的这种装置或方法。本文公开的任何方面可以由权利要求的一个或多个要素来体现。
[0020] 尽管本文描述了各个方面,但是这些方面的许多变型和排列落入本公开内容的范围内。尽管提及了本公开内容的各方面的一些潜在益处和优点,但是本公开内容的范围不旨在限于特定益处、用途或目标。相反,本公开内容的各方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些在附图和以下描述中通过示例的方式示出。具体实施方式和附图仅仅是对本公开内容的说明而不是限制,本公开内容的范围由所附权利要求及其等同方案来限定。
[0021] 参考各种装置和方法来呈现若干方面。将借助各种框、组件、电路、过程、算法等(统称为“要素”)在以下具体实施方式中描述并在附图中例示这些装置和方法。这些要素可以使用电子硬件、计算机软件或其任何组合来实现。这些要素是被实施为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。
[0022] 作为示例,以下针对示例性方面描述的要素或要素的任何部分或要素的任何组合可以被实施为包括一个或多个处理器(其也可被称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SoC)处理器、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路以及被配置为执行本公开内容通篇所描述的各种功能的其他适合的硬件。处理系统中的一个或多个处理器可以执行软件。软件应被广义地解释为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行程序、执行线程、过程、函数等等,无论被称为软件、固件、中间件、微代码、硬件描述语言或其他术语。术语应用程序可以指代软件。如本文所述,一种或多种技术可以指被配置为执行一个或多个功能的应用程序,即软件。在这样的示例中,应用程序可以存储在存储器上,例如,处理器的片上存储器、系统存储器或任何其他存储器。本文描述的硬件(诸如处理器)可以被配置为执行应用程序。例如,应用程序可以被描述为包括当由硬件执行时使硬件执行本文描述的一种或多种技术的代码。作为示例,硬件可以从存储器存取代码并执行从存储器存取的代码以执行本文描述的一种或多种技术。在一些示例中,在本公开内容中标识了组件。在这样的示例中,组件可以是硬件、软件或其组合。组件可以是单独的组件或单个组件的子组件。
[0023] 相应地,在本文所描述的一个或多个示例中,所描述的功能可以用硬件、软件或其任何组合来实施。如果以软件来实施,则所述功能可以作为一个或多个指令或代码存储或编码在计算机可读介质上。计算机可读介质包括计算机储存介质。储存介质可以是可由计算机访问的任何可用介质。示例性而非限制性地,这样的计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘储存设备、磁盘储存设备、其他磁储存设备、上述类型的计算机可读介质的组合,或者可以用于以可由计算机访问的指令或数据结构的形式存储计算机可执行代码的任何其他介质。
[0024] 总体而言,本公开内容描述了用于在单个设备或多个设备中具有图形处理流水线、改进图形内容的渲染和/或减少处理单元(即,被配置为执行本文中所描述的一种或多种技术的任何处理单元,例如GPU)的负荷的技术。例如,本公开内容描述了用于利用图形处理的任何设备中的图形处理的技术。贯穿本公开内容描述了其他示例益处。
[0025] 如本文所使用的,术语“内容”的实例可以指“图形内容”、“图像”,并且反之亦然。无论术语是否用作形容词、名词或其他词性,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理流水线的一个或多个过程产生的内容。在一些示例中,如本文中所使用,术语“图形内容”可以指由被配置为执行图形处理的处理单元产生的内容。
在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理单元产生的内容。
[0026] 在一些示例中,如本文所使用的,术语“显示内容”可以指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由显示处理单元生成的内容。可以处理图形内容以成为显示内容。例如,图形处理单元可以将诸如帧的图形内容输出到缓冲区(其可以被称为帧缓冲区)。显示处理单元可以从缓冲区读取图形内容(诸如一个或多个帧),并且对其执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为对一个或多个经渲染的层执行合成以生成帧。作为另一示例,显示处理单元可以被配置为将两个或更多个层进行合成、混合或以其他方式组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放,例如,放大或缩小。在一些示例中,帧可以指层。在其他示例中,帧可以指已经混合在一起以形成帧的两个或更多个层,即,帧包括两个或更多个层,并且可以随后混合包括两个或更多个层的帧。
[0027] 图1是例示被配置为实施本公开内容的一种或多种技术的示例内容生成系统100的方框图。内容生成系统100包括设备104。设备104可以包括用于执行本文描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是SoC的组件。设备104可以包括被配置为执行本公开内容的一种或多种技术的一个或多个组件。在所示的示例中,设备104可以包括处理单元120、内容编码器/解码器122和系统存储器124。在一些方面中,设备104可以包括多个可任选组件,例如通信接口126、收发机132、接收机128、发射机130、显示处理器127和一个或多个显示器131。对显示器131的引用可以指一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器,并且在某些方面中可以被配置为显示增强现实内容,如下所述。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,并且第二显示器可以是右眼显示器。在一些示例中,第一显示器和第二显示器可以接收用于在其上呈现的不同的帧。在其他示例中,第一显示器和第二显示器可以接收用于在其上呈现的相同的帧。在另外的示例中,图形处理的结果可以不显示在该设备上,例如,第一显示器和第二显示器可以不接收用于在其上呈现的任何帧。取而代之的是,可以将帧或图形处理结果发送到另一设备。在一些方面中,这可以被称为分割渲染。
[0028] 处理单元120可以包括内部存储器121。处理单元120可以被配置为执行图形处理,诸如在图形处理流水线107中。内容编码器/解码器122可以包括内部存储器123。在一些示例中,设备104可以包括显示处理器,诸如显示处理器127,以在由一个或多个显示器131呈现之前对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示或以其他方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示器131可以包括以下一项或多项:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器或任何其他类型的显示设备。
[0029] 处理单元120和内容编码器/解码器122外部的存储器(诸如系统存储器124)可以是处理单元120和内容编码器/解码器122可访问的。例如,处理单元120和内容编码器/解码器122可以被配置为从外部存储器(诸如系统存储器124)读取和/或写入外部存储器。处理单元120和内容编码器/解码器122可以通过总线通信地耦接到系统存储器124。在一些示例中,处理单元120和内容编码器/解码器122可以通过总线或不同的连接彼此通信地耦接。
[0030] 内容编码器/解码器122可以被配置为从诸如系统存储器124和/或通信接口126的任何源接收图形内容。系统存储器124可以被配置为存储所接收的编码或解码的图形内容。内容编码器/解码器122可以被配置为接收经编码像素数据形式的编码或解码的图形内容,例如从系统存储器124和/或通信接口126接收。内容编码器/解码器122可以被配置为对任何图形内容进行编码或解码。
[0031] 内部存储器121或系统存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或系统存储器124可以包括RAM、SRAM、DRAM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁性数据介质或光学存储介质,或任何其他类型的存储器。
[0032] 根据一些示例,内部存储器121或系统存储器124可为非暂时性存储介质。术语“非暂时性”可以指示存储介质不体现在载波或传播信号中。然而,术语“非暂时性”不应被解释为意味着内部存储器121或系统存储器124是不可移动的或者其内容是静态的。作为一个示例,系统存储器124可以从设备104移除并移动到另一设备。作为另一示例,系统存储器124可以是不可从设备104移除的。
[0033] 处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或可以被配置为根据如本文所述的用于压缩和渲染AR内容的示例性技术来执行图形处理的任何其他处理单元。在一些示例中,处理单元120可集成到设备104的主板中。在一些示例中,处理单元120可存在于安装在设备104的主板中的端口中的图形卡上,或可以其他方式并入被配置为与设备104互操作的外围设备内。处理单元120可以包括一个或多个处理器,例如一个或多个微处理器、GPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、分立逻辑、软件、硬件、固件、其他等效集成或分立逻辑电路,或其任何组合。如果所述技术部分地以软件实施,则处理单元120可将用于软件的指令存储于合适的非暂时性计算机可读存储介质(例如,内部存储器121)中,且可使用一个或多个处理器以硬件执行指令以执行本公开内容的技术。前述中的任何一项,包括硬件、软件、硬件和软件的组合等等,可以被认为是一个或多个处理器。
[0034] 内容编码器/解码器122可以是被配置为执行数字内容的内容编码/解码的任何处理单元。在一些示例中,内容编码器/解码器122可集成到设备104的主板中。内容编码器/解码器122可以包括一个或多个处理器,例如一个或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、视频处理器、分立逻辑、软件、硬件、固件、其他等效集成或分立逻辑电路,或其任何组合。如果所述技术部分地以软件实施,则内容编码器/解码器122可将用于软件的指令存储于合适的非暂时性计算机可读存储介质(例如,内部存储器123)中,且可使用一个或多个处理器以硬件执行指令以执行本公开内容的技术。前述中的任何一项,包括硬件、软件、硬件和软件的组合等,可以被认为是一个或多个处理器。
[0035] 在一些方面中,内容生成系统100可以包括可选的通信接口126。通信接口126可以包括接收机128和发射机130。接收机128可以被配置为执行本文中关于设备104所描述的任何接收功能。另外,接收机128可以被配置为从另一设备接收信息,例如眼睛或头部位置信息、渲染命令或位置信息。发射机130可以被配置为执行本文中关于设备104所描述的任何发送功能。例如,发射机130可以被配置为向另一设备发送信息,所述信息可以包括对内容的请求。接收机128和发射机130可以组合成收发机132。在此类示例中,收发机132可以被配置为执行本文中关于设备104所描述的任何接收功能和/或发送功能。
[0036] 再次参考图1,在某些方面,图形处理流水线107可以包括被配置为生成帧中的经渲染内容的确定组件198。确定组件198还可以被配置为根据下面描述的示例性方面来确定包括与帧中的经渲染内容相关联的一个或多个边界框的眼缓冲区。确定组件198还可以被配置为计算与帧中的经渲染内容相关联的用户运动量。确定组件198还可以被配置为基于所计算的用户运动量来确定一个或多个边界框中的每个边界框的大小。确定组件198还可以被配置为图谱管理器,以基于眼缓冲区生成图谱,其中,图谱可以包括与一个或多个边界框相关联的一个或多个分块。确定部件198还可以被配置为确定图谱中的一个或多个分块中的每个分块的大小和位置。确定组件198还可以被配置为对包括一个或多个分块的图谱进行编码。确定组件198还可以被配置为将包括一个或多个分块的图谱发送到例如客户端设备。更具体地,确定组件198还可以被配置为向客户端设备发送包括一个或多个分块的图谱。确定组件198还可以被配置为从服务器接收包括一个或多个分块的图谱。确定组件198还可以被配置为对包括一个或多个分块的图谱进行解码,并且基于客户端眼缓冲区中的一个或多个边界框来变形解码的图谱中的一个或多个分块。确定组件198还可以被配置为基于包括一个或多个分块的图谱来确定包括一个或多个边界框的客户端眼缓冲区。确定组件198还可以被配置为在显示器处显示客户端眼缓冲区中的一个或多个边界框,其中,所述一个或多个边界框可以与帧中的经渲染内容相关联。
[0037] 如本文中所描述,设备(例如设备104)可以指被配置为执行本文中所描述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)、终端产品、装置、电话、智能电话、服务器、视频游戏平台或游戏机、手持设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表)、增强现实设备或虚拟现实设备、不可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或被配置为执行本文描述的一种或多种技术的任何设备。本文中的处理可以被描述为由特定组件(例如,GPU)执行,但是在另外的实施例中,可以使用与所公开的实施例一致的其他组件(例如,CPU)来执行。
[0038] GPU可以在GPU流水线中处理多种类型的数据或数据分组。例如,在一些方面中,GPU可以处理两种类型的数据或数据分组,例如上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如关于全局寄存器、着色程序或常数数据的信息,其可以对如何处理图形上下文进行调节。例如,上下文寄存器分组可以包括关于颜色格式的信息。在上下文寄存器分组的一些方面中,可以存在指示哪个工作负荷属于上下文寄存器的比特。而且,可以存在同时地和/或并行地运行的多个功能或编程。例如,功能或编程可以描述某个操作,例如颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。
[0039] 上下文状态可用于确定相应处理单元(例如,顶点提取器(VFD)、顶点着色器(VS)、着色器处理器或几何处理器)是如何运行的,和/或处理单元以什么模式运行。为了这样做,GPU可以使用上下文寄存器和编程数据。在一些方面中,GPU可以基于模式或状态的上下文寄存器定义来生成流水线中的工作负荷,例如顶点或像素工作负荷。某些处理单元(例如,VFD)可以使用这些状态来确定某些功能,例如,如何组装顶点。由于这些模式或状态可以改变,GPU可能需要改变对应的上下文。另外,与模式或状态相对应的工作负荷可以遵循变化的模式或状态。
[0040] 图2示出了根据本公开内容的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(CP)210、绘制调用分组212、VFD 220、VS 222、顶点高速缓存(VPC)224、三角形设置引擎(TSE)226、光栅化器(RAS)228、Z处理引擎(ZPE)230、像素内插器(PI)232、片段着色器(FS)234、渲染后端(RB)236、L2高速缓存(UCHE)238和系统存储器240。尽管图2显示GPU 200包括处理单元220‑238,但是GPU 200可以包括多个附加处理单元。另外,处理单元220‑238仅仅是示例,并且根据本公开内容的GPU可以使用任何组合或顺序的处理单元。GPU 200还包括命令缓冲器250、上下文寄存器分组260和上下文状态261。
[0041] 如图2所示,GPU可以利用CP(例如CP 210)或硬件加速器来将命令缓冲器解析成上下文寄存器分组(例如上下文寄存器分组260)和/或绘制调用数据分组(例如绘制调用分组212)。然后,CP 210可以通过分开的路径将上下文寄存器分组260或绘制调用数据分组212发送到GPU中的处理单元或块。此外,命令缓冲器250可以交替上下文寄存器和绘制调用的不同状态。例如,命令缓冲器可以以以下方式构造:上下文N的上下文寄存器、上下文N的一个(或多个)绘制调用、上下文N+1的上下文寄存器、以及上下文N+1的一个(或多个)绘制调用。
[0042] 在一些方面中,可以在多个位置和/或在多个设备处执行图像或帧的渲染,例如,以便在不同设备之间划分渲染工作负荷。例如,可以在服务器和客户端设备之间分割渲染工作负荷。在一些方面中,该过程可以被称为“分割渲染”。在一些情况下,分割渲染可以是用于将内容带到客户端设备或头戴式显示器(HMD)的方法,其中,可以在客户端设备或HMD外部(例如,在服务器处)执行计算机或图形处理的一部分。
[0043] 可以针对多种不同类型的应用(例如,虚拟现实(VR)应用、增强现实(AR)应用和/或扩展现实(XR)应用)执行分割渲染。在VR应用中,在客户端设备处显示的内容可以对应于经渲染或经动画化的内容,例如,在服务器或客户端设备处渲染的内容。在AR或XR应用中,在客户端设备处显示的内容的一部分可以对应于现实世界内容,例如现实世界中的对象,且内容的一部分可以是经渲染或经动画化的内容。此外,经渲染或经动画化的内容和现实世界内容可以显示在光学透视或视频透视设备中,使得用户可以同时查看到现实世界对象和经渲染内容。在一些方面中,XR内容可以指VR和AR内容两者。XR、VR和AR应用都可以涉及用户通过头盔查看经渲染内容。
[0044] 分割渲染可以通过在客户端或用户设备(例如,头戴式显示器(HMD)或头盔)与服务器之间分割计算工作负荷,来在XR、AR或VR应用中提供高质量的用户体验。在一些方面中,客户端设备和服务器可以经由低延迟通信链路(例如,5G或Wi‑Fi)彼此连接。此外,服务器可以位于低延迟通信链路附近,以便减少延迟。在一些方面中,服务器可以被称为边缘服务器或云服务器。
[0045] 在XR、VR和AR应用的一些示例中,客户端设备或头盔可以包括GPU或图形处理装置,其可执行所渲染内容的必要计算或图形处理。利用分割渲染可以将计算或图形处理的大部分卸载到服务器。在这些情况下,服务器可以是能够执行从客户端设备卸载的一些计算或图形处理的任何设备。例如,服务器可以是云服务器、边缘服务器、个人计算机、智能电话或任何适当的设备。
[0046] 分割渲染可以以多种不同的方式在服务器和客户端设备之间分布渲染计算。例如,可以在客户端设备上执行所有渲染,即,在客户端上执行所有计算,并且客户端与服务器共享计算状态。另外,可以在服务器上执行所有渲染,即,在服务器上执行所有计算,甚至是要在客户端上显示的图像。在一些方面中,为了减少分割渲染中的延迟,一些客户端设备可以将未压缩视频流式传输到服务器。然而,流式传输未压缩视频可能需要某些类型的服务器可用的吞吐量水平。
[0047] 如上所述,假定可以在现实世界的情境中查看虚拟内容,则针对增强现实(AR)渲染的内容可以是稀疏的。例如,在AR的一些方面中,一个帧中在经渲染视场的一个或多个边界框外部的部分(例如,高达50%或更多)可以是透明的,通过所述部分观看到现实世界。
[0048] 在一些AR用例中,可以在服务器(例如,电话或边缘服务器)与客户端AR设备(例如,头盔)之间对渲染进行分割。这些设备可以通过有线或无线连接来连接。在这种情况下,内容可以在服务器上渲染,然后被编码并发送到客户端设备。然后,客户端设备可以对内容进行解码并将其变形至最新的用户姿态,以及显示内容。此外,对与全显示分辨率相对应的眼缓冲区(例如,其包括透明区域)进行编码和解码可能导致显著的延迟和功率而没有相称的输出。因此,存在对分割渲染中与全显示分辨率相对应的图谱和眼缓冲区的需要,其导致经优化量的延迟和所利用功率。
[0049] 本公开内容的各方面可以包括分割渲染中与全显示分辨率相对应的图谱和眼缓冲区,其导致经优化量的延迟和所利用功率。在一些方面中,本公开内容可以包括图谱管理。例如,本公开内容的图谱管理可以使稀疏AR内容紧凑并减少解码延迟,以及减少所利用功率量。本公开内容的各方面还可以减少客户端侧的双倍数据速率(DDR)带宽的量。
[0050] 图3示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示意图300。如图3所示,示意图300包括服务器或电话310和客户端设备或眼镜330。总体而言,包括服务器310和客户端设备330的组合系统300协调如上所述的对AR内容的分割渲染。服务器侧310和客户端侧330二者都可以被配置为生成/处理眼缓冲区318和图谱
320。更一般地,服务器310可以执行许多不同的功能,诸如渲染、图谱管理和编码。客户端
330也可以执行许多不同的功能,诸如解码、图谱管理和XR运行时或显示。此外,总体而言,注意,服务器310和客户端设备330中的每一个可以包括内容生成系统100和/或GPU 200中的一个或多个,以执行本文描述的功能和技术。
[0051] 根据示例性方面,服务器310包括渲染引擎312,渲染引擎312被配置为产生包括AR内容的活动部分或分量的稀疏眼缓冲区318,即,换言之,眼缓冲区318不包括帧中的与经渲染内容的透明背景相对应的像素。在一个方面中,通过触摸(例如,经由用户界面)经渲染的像素以选择AR内容的活动部分来生成眼缓冲区318。在另一个方面中,所产生的眼缓冲区318包括经渲染AR内容的、与通过其观看现实世界的透明视场分开的、用户可见的那些部分。服务器310还包括图谱管理器314,图谱管理器314被配置为将眼缓冲区318整理在一起以生成紧凑图谱320。即,所生成的紧凑图谱仅包含AR内容中的客户端设备330用于重新创建并显示AR内容所需的那些部分。根据一个方面,在AR内容的每个帧的像素中的客户端设备330不需要的剩余部分将会被从紧凑图谱320中排除。
[0052] 如进一步所示,服务器310包括编码器316,其被配置为对媒体内容进行编码并随后将经编码内容发送到客户端设备330。在一个方面中,编码器316可以是例如H.264或HEVC编码器。因此,在示例性方面中,编码器316接收由图谱管理器314生成的紧凑图谱320,并且进行编码并将经编码内容流式传输(例如,作为比特流324)到客户端330。总体而言,应注意,编码器316可实施为例如上文针对图1所描述的内容编码器/解码器122。此外,在一个方面中,例如,可以使用如上文针对图1所描述的通信接口126将比特流324发送到客户端设备330。
[0053] 此外,图谱管理器314还被配置为生成元数据322,元数据322向客户端330通知在经渲染的眼缓冲区318与具有相同内容的图谱320之间的位置映射,其可以包括分块信息(例如稀疏AR内容的分块信息)。即,元数据322将包括分块信息322A,其可以由客户端设备330处理以确定用于生成图谱320的眼缓冲区318的每个活动部分的相应位置。附加元数据可以包括变形元数据322B,诸如头部姿态、每个活动部分的深度、或活动部分的三维位置,其也可以作为流的一部分发送。通常,元数据322可以与经编码图谱320的比特流324一起或者作为单独的流发送到客户端330。
[0054] 在任一情况下,客户端330接收经编码内容(例如,比特流324)和元数据322。在一个方面中,例如,可以使用如上文针对图1所描述的通信接口126来接收比特流324。
[0055] 基本上,客户端330包括与服务器310类似的组件,但是被配置为执行与服务器相反的工作,例如,基于所接收的元数据将解码的图谱320分解到眼缓冲区318中。更具体地,客户端330包括解码器336,其可以类似地是H.264或HEVC编码器,其被配置为解码所接收的比特流324。总体而言,应注意,解码器336可实施为例如上文针对图1所描述的内容编码器/解码器122。
[0056] 此外,图谱管理器334被配置为接收和处理图谱320以单独获得眼缓冲区318。例如,图谱管理器334可以被配置为使用分块信息322A来确定内容的每个部分在图谱320内的相应位置,并且进而再现眼缓冲区318。然后可以将该眼缓冲区318馈送到显示器/平台332(例如,AR显示设备(诸如眼镜等)上的XR运行时),其还使用变形元数据322B来产生/显示AR内容,其细节将在下面讨论。
[0057] 图4示出了根据本公开内容的一种或多种技术的包括客户端设备与服务器之间的通信的示意图400。总体而言,应注意,所示的示意图或系统400包括具有与上面针对图3描述的相同附图标记的许多相同组件,其细节将不再重复。
[0058] 然而,在该示例性方面中,客户端设备430包括显示器/平台432(例如,XR运行时应用程序),其可以被设计为使得其可以直接接受图谱320和分块信息元数据322A以及通常的变形元数据322B。作为时间变形过程的一部分,图谱320的适当部分可以被不同地变形并放置到显示器的正确区域中。进而,这可以由分块信息元数据322A以及变形元数据322B两者引导,以在客户端设备430上重新创建AR内容。因此,在此方面中,如上文针对图3所描述的图谱管理器334的配置被直接包括为显示器/平台432(例如,XR运行时应用程序)的一部分以重新创建AR内容。
[0059] 图5示出了根据本公开内容的一种或多种技术的图谱管理的示意图500。总体而言,示意图500示出了如上面针对图3和4所描述的服务器310的组件,并且更具体地,包括图谱管理器314的组件,其可以包括如根据一方面所示的虚线框。
[0060] 在一个方面中,AR应用程序502可以包括由渲染引擎312生成的经渲染内容。此外,眼缓冲区504(例如,对应于眼缓冲区318)和深度缓冲区506由AR应用程序502提供给定制游戏引擎插件510。总体而言,注意,定制游戏引擎插件510可以是由系统100并且特别是如上面针对图1所述的设备104所执行的应用程序,例如以便显示稀疏AR内容。此外,定制游戏引擎插件510可以被配置为执行如上所述的图谱管理器314的功能。
[0061] 在示例性方面,定制游戏引擎插件510包括边界框提取器512、边界框映射器514、APR平面参数计算引擎516和图谱生成器518。在一个方面中,边界框提取器512、边界框映射器514和图谱生成器518中的每一个可以被配置为共同执行如上所述的图谱管理器314的功能。在一个方面中,这些组件可以由处理单元120执行。
[0062] 如图所示,经渲染的眼缓冲区504被馈送到边界框提取器512,边界框提取器512可以被配置为分析眼缓冲区504以产生包含场景中的经渲染的虚拟内容的边界框。此举可以基于连接分量分析,用于确定眼缓冲区504中完全包含经渲染对象的闭合轮廓。每个边界框540通常可以被认为是在经渲染的AR内容中的活动内容的每个分块的边界周界。注意,术语“边界框”不一定意味着正方形或矩形框,并且可以更一般地被认为是标识要发送到客户端设备330的稀疏AR内容的任何类型的周界。
[0063] 在一些情况下,统一(unity)和虚构(unreal)二者都可以提供应用程序接口(API)以查询用于场景中的演员的边界框。因此,可以通过将边界框与对象重叠进行合并,来确定这样的封闭轮廓。所产生的边界框540可以被映射到图谱320的占用区域(real estate)上的分块,使得可以实现到图谱占用区域中的紧密打包。此举可以包括缩放边界框内的内容以实现有效打包。此外,可以基于边界框信息提取眼缓冲区504中的内容,并基于先前确定的分块信息或元数据将其写入图谱320中。
[0064] 因此,如进一步所示,边界框540被馈送到边界框映射器514和APR平面参数计算引擎516。边界框映射器514被配置为生成如上所述的分块信息322A,其提供关于每个框中包围的经渲染内容的位置和/或大小的信息。如上所述,分块信息322A作为元数据被提供给客户端设备330。此外,图谱生成器518被配置为基于所接收的眼缓冲区504使用边界框540和分块信息322A两者来生成如上所述的紧凑图谱320。此外,APR平面参数计算引擎516被配置为基于深度缓冲区506并针对每个边界框540来确定每帧中的经渲染AR内容的变形元数据322B(例如,头部姿态、每个活动部分的深度、和/或活动部分的三维位置)。APR平面参数计算引擎516然后将该信息输出为变形元数据322B,其同样如上所述被发送到客户端设备
330。
[0065] 图6示出了根据本公开内容的一种或多种技术的图谱管理的示意图600。总体而言,应注意,所示的示意图或系统600包括由与上文针对图5的系统500所描述的相同附图标记标识的许多相同组件,其细节将不再重复。在一个方面中,系统600是服务器310的配置,其被配置为生成紧凑图谱320并将其与内容的活动部分的姿态预测一起打包。
[0066] 更具体地,在一些方面中,频繁地改变图谱的尺寸可能对后续视频编解码器对图谱的编码造成不利影响。另一方面,当用户移动时,锚定内容可能在眼缓冲区中放大或缩小,这进而在假设质量无变化情况下可能利用不同大小的图谱。基于过去的用户运动,可以预测在短时间段(例如,60fps的10帧或160ms)内的用户的未来位置。此外,给定场景中的对象的已知锚定位置,可以基于用户运动预测来预测对象在边界框540中的大小变化。然后可以基于这些预测来固定在该短时间段内的图谱320的大小。
[0067] 如图6所示,定制游戏引擎插件510还可以包括姿态预测器630,姿态预测器630被配置为从AR应用程序502接收多个头部姿态样本632,作为指示例如AR设备(例如,客户端设备或眼镜330)的用户的定位和/或移动的元数据。即,姿态预测器被配置为从客户端设备330接收这些过去的姿态样本,并且基于这些过去的姿态样本,姿态预测器630可以被配置为预测例如AR应用程序502的下一帧的用户的未来位置和移动/运动(例如,姿态)。此外,给定经渲染AR场景中的对象的已知锚定位置634(例如,在物理世界中,在眼缓冲区中看到的虚拟对象已经被锚定到的位置或对象距用户的距离),可以基于来自姿态预测器630的用户运动预测和来自已知锚定位置的对象的位置来预测对象在边界框540中的大小变化。因此,当在图谱320中为眼缓冲区504的该对象分配占用区域时,定制游戏引擎插件510被配置为使用在接下来的几帧上估计的在用户视角中的对象的最大尺寸。在一个方面中,该占用区域分配在接下来的几帧上保持恒定。此外,例如,在这些帧中的一些帧中,分配给对象的整个占用区域可能不被使用(例如,对象在视角上较小),并且在一些帧中,它被完全使用。
[0068] 在一些附加方面中,其中通过共享无线链路(例如,5G空中链路)发送视频数据的系统的关注点可以是在用户与比特速率或质量之间的权衡。根据可用的用户吞吐量,例如,由于拥塞或用户的位置及其对链路的影响,可以设置编码比特速率。
[0069] 在一些情况下,当确定分块元数据322A时,可以提供目标比特速率作为附加输入,使得可以缩放眼缓冲区318中的内容以帮助编码器316进行速率控制。本公开内容的各方面可以分配全局缩放因子α和针对每个边界框k的每层缩放因子sk。该每框缩放因子可以取决于框中的内容距用户位置的距离、感知重要性、或眼缓冲区318中的位置(其中其可以是相对于中央凹的)、或内容复杂度。给定一个层的方差 本公开内容可以假设每层的速率其中β是可调常数。本公开内容的各方面还可以求解α,使得以使得D为最小的。此外,本公开内容可以在帧的短时间序
列(例如,图片群组(GOP))内保持αsk不变。基于为用户预测的位置范围,本公开内容可以确定针对该时间段的平均值sk。
[0070] 图7示出了根据本公开内容的一种或多种技术的图谱管理的示意图700。总体而言,示意图700示出了如上面针对图3和4所描述的客户端设备330的组件,并且更具体地,包括图谱管理器334的组件,其可以包括如根据一方面所示的虚线框。
[0071] 如上所述,在客户端侧330,解码器336可以接收图谱比特流324并将其解码到图谱像素缓冲区中。如果存在分组丢失,则这可以包括使用来自先前图谱帧中的对应分块的信息来隐藏当前经解码图谱320中的分块。根据一方面,可以维持连续图谱帧之间的分块对应关系。可以在元数据中明确地标记新的分块或边界框。此外,隐藏可以应对用户取向变化对眼缓冲区中的对象外观的影响。经隐藏的帧随后可以用作用于解码从服务器310接收的下一个图谱320的参考。当前分块信息(例如,分块元数据322A)随后可以用于将图谱320分解到眼缓冲区318中。
[0072] 因此,如图7所示,示意图700提供了根据本公开内容的一种或多种技术的图谱管理。具体而言,图700包括多个不同的组件,诸如客户端330处的图谱管理器334,其可以包括解码器336、隐藏组件752和图谱分解器756。如上所述,图谱管理器334从服务器310接收压缩图谱的分块信息322A、变形元数据322B和比特流324。解码器336同样如上所述对比特流324进行解码,并且将AR内容的紧凑图谱320提供给隐藏组件752,隐藏组件752还接收分块元数据322A和变形元数据322B。
[0073] 如上所述,当比特流324中存在分组丢失时,例如,隐藏组件752被配置为使用来自例如先前图谱帧中的对应分块的信息来隐藏当前经解码图谱320中的这些分块。因此,根据一方面,可以维持连续图谱帧之间的分块对应关系。经隐藏的图谱754随后被提供给分解器756,分解器756被配置为使用边界框540重新创建眼缓冲区318,同样如上所述。即,分解器
756接收图谱320中的每个分块的位置和大小信息(例如,来自分块元数据322A),并且被配置为利用使用该分块元数据322A正确放置和确定大小的分块来重新创建眼缓冲区318。
[0074] 在一些方面中,写入图谱320可以涉及触摸经渲染的像素,并且可以是可以影响其他像素修改的点。此外,例如,颜色空间变换可以作为图谱管理器314的图谱写入操作的一部分来执行。内容的中央凹压缩可以是可被折叠到图谱写入操作中的另一操作。可以生成附加元数据以指示在客户端侧如何在每个边界框上应用中央凹解压缩。在示例性方面中,服务器310和客户端330处的图谱管理的操作可以包含在AR编码器或解码器中。
[0075] 此外,例如,可以存在从服务器310实时或周期性地发送到客户端330的多个图谱320。例如,每个图谱320可以包含以特定帧速率更新的数据。例如,在以比前景更低的速率更新背景AR场景的情况下,前景对象可以作为单独的图谱320发送。另外,当同一图谱中的一些分块与其他分块相比更新较不频繁时,编解码器能够处理未被更新的分块中的时间冗余。
[0076] 如上所述,本公开内容的各方面可以包括一种使用边界框元数据将AR眼缓冲区318中的稀疏内容以空间方式打包到图谱320中的方法。本公开内容还可以在由显示器/平台322进行显示之前在客户端AR设备330处解包该内容。在一些情况下,在没有图谱的显式解包并且在客户端处的时间变形操作中是隐式的情况下,该操作可以由分块信息和变形元数据来引导。另外,本公开内容可以确定分块信息元数据322A,使得每个分块的大小在一段时间内是一致的,而没有内容质量的实质性变化,诸如通过使用用户姿态预测。
[0077] 本公开内容还可以确定分块信息元数据322A,使得目标比特速率得到满足,这可以通过用户的姿态预测和场景内的对象位置来辅助。本公开内容还可以将颜色空间变换和中央凹压缩与图谱管理器进行组合。此外,本公开内容可以包括将传统压缩和图谱管理组合成单个操作的硬件编码器或解码器模块。此外,本公开内容的各方面可以在由分块元数据驱动的分组丢失隐藏的情况下在客户端上生成眼缓冲区。
[0078] 图8示出根据本公开内容的一种或多种技术的示例性方法的示例性流程图800。该方法可以由诸如服务器、客户端设备、CPU、GPU的装置或用于计算机或图形处理的装置来执行。在一个方面中,该方法可以由包括一个或多个组件的服务器/电话310和客户端/眼镜330来执行,如上所述。
[0079] 在802处,该装置可以在帧中生成经渲染内容,例如,通过渲染引擎312。在804处,该装置可以确定包括与帧中的经渲染内容相关联的一个或多个边界框540的眼缓冲区318,同样如上所述。在一些方面中,一个或多个边界框540可以包括关于帧中的经渲染内容的信息。
[0080] 在806处,该装置可以计算与帧中的经渲染内容相关联的用户运动量。在808处,该装置可以基于所计算的用户运动量来确定一个或多个边界框中的每个边界框的大小。在一些方面中,一个或多个分块中的每个分块的大小可对应于一个或多个边界框540中的每个边界框的大小。此外,在一个方面中,可以基于目标比特速率来确定一个或多个分块中的每个分块的大小。
[0081] 在810处,该装置可以基于眼缓冲区318来生成图谱320,其中,图谱320可以包括与一个或多个边界框540相关联的一个或多个分块。在一些方面中,一个或多个分块中的每个分块可以与分块元数据322A相关联。
[0082] 在812处,该装置可以确定图谱320中的一个或多个分块中的每个分块的大小和位置。在814处,该装置可以对包括一个或多个分块的图谱320进行编码(例如,使用编码器316)。在816处,该装置可以传送包括一个或多个分块的图谱320(例如,作为比特流324)。
[0083] 在816处,该装置还可以向客户端设备330发送图谱320。在816处,该装置(例如,客户端设备330)可以从服务器(例如,客户端设备310)接收包括一个或多个分块的图谱320。在818处,装置可以解码(例如,由解码器336)包括一个或多个分块的图谱320。
[0084] 在820处,该装置可以基于一个或多个边界框540来变形经解码图谱320中的一个或多个分块,以重新创建客户端眼缓冲区318。在822处,该装置(例如,客户端设备330)可以基于包括一个或多个分块的图谱320来确定包括一个或多个边界框540的客户端眼缓冲区318。在824处,该装置可以在客户端眼缓冲区318中显示(例如,在显示器/平台332上)一个或多个边界框,其中,一个或多个边界框可以与帧中的经渲染内容相关联。
[0085] 在一种配置中,提供了一种用于图形处理的方法或装置。如上文所描述,所述装置可以是服务器、客户端设备、CPU、GPU或可执行计算机或图形处理的某个其他处理器。在一个方面中,所述装置可以是设备104内的处理单元120,或可以是设备104或另一设备内的某个其他硬件。所述装置可以包括用于确定包括与帧中的经渲染内容相关联的一个或多个边界框的眼缓冲区的单元。所述装置还可以包括用于基于眼缓冲区来生成图谱的单元,所述图谱包括与一个或多个边界框相关联的一个或多个分块。所述装置还可以包括用于传送包括一个或多个分块的图谱的单元。所述装置还可以包括用于计算与帧中的经渲染内容相关联的用户运动量的单元。所述装置还可以包括用于基于所计算的用户运动量来确定一个或多个边界框中的每个边界框的大小的单元。所述装置还可以包括用于确定图谱中的一个或多个分块中的每个分块的大小和位置的单元。所述装置还可以包括用于对包括一个或多个分块的图谱进行编码的单元。所述装置还可以包括用于向客户端设备发送包括一个或多个分块的图谱的单元。所述装置还可以包括用于从服务器接收包括一个或多个分块的图谱的单元。所述装置还可以包括用于对包括一个或多个分块的图谱进行解码的单元。所述装置还可以包括用于基于客户端眼缓冲区中的一个或多个边界框来变形经解码图谱中的一个或多个分块的单元。所述装置还可以包括用于基于包括一个或多个分块的图谱来确定包括一个或多个边界框的客户端眼缓冲区的单元。所述装置还可以包括用于在显示器处显示客户端眼缓冲区中的一个或多个边界框的单元,其中,所述一个或多个边界框与帧中的经渲染内容相关联。所述装置还可以包括用于在帧中生成经渲染内容的单元。
[0086] 可以实施本文描述的主题以实现一个或多个益处或优点。例如,所描述的图形处理技术可以由服务器、客户端、GPU、CPU或可以执行计算机或图形处理以实现本文描述的分割渲染技术的某个其他处理器使用。与其他计算机或图形处理技术相比,这也可以以低成本实现。此外,本文中的计算机或图形处理技术可以改进或加速数据处理或执行。此外,本文的计算机或图形处理技术可以提高资源或数据利用率和/或资源效率。另外,本公开内容的各方面可以利用分割渲染过程,该分割渲染过程可以减少延迟量和/或所利用的功率量并且维持高质量水平。
[0087] 根据本公开内容,在上下文没有指示其他状况的情况下,术语“或”可以被解释为“和/或”。另外,虽然诸如“一个或多个”或“至少一个”等的短语可能已经用于本文公开的一些特征而不是其他特征,但是在上下文没有指示其他状况的情况下,没有使用这样的语言的特征可以被解释为具有暗示的这种含义。
[0088] 在一个或多个示例中,本文中所描述的功能可以以硬件、软件、固件或其任何组合实施。例如,尽管贯穿本公开内容使用了术语“处理单元”,但此类处理单元可以以硬件、软件、固件或其任何组合实施。如果本文中所描述的任何功能、处理单元、技术或其他模块以软件实施,则本文中所描述的功能、处理单元、技术或其他模块可作为一个或多个指令或代码存储于计算机可读介质上或经由计算机可读介质发送。计算机可读介质可以包括计算机数据存储介质或通信介质,其包括促进将计算机程序从一处传递到另一处的任何介质。以此方式,计算机可读介质通常可对应于(1)有形计算机可读存储介质,其是非暂时性的,或(2)通信介质,例如信号或载波。数据存储介质可为可由一个或多个计算机或一个或多个处理器存取以取回用于实施本公开内容中所描述的技术的指令、代码和/或数据结构的任何可用介质。作为示例而非限定,此类计算机可读介质可以包括RAM、ROM、EEPROM、CD‑ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备。如本文中所使用,磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述的组合也应当包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
[0089] 代码可由一个或多个处理器执行,所述一个或多个处理器例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)或其他等效集成或分立逻辑电路。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任何其他结构中的任一个。而且,所述技术可完全在一个或多个电路或逻辑元件中实施。
[0090] 本公开内容的技术可以在广泛的多种设备或装置中实施,包括无线手持机、集成电路(IC)或一组IC,例如芯片组。在本公开内容中描述了各种组件、模块或单元以强调被配置为执行所公开技术的设备的各个功能方面,但未必需要由不同硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在任何硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
[0091] 已经描述了各种示例。这些示例和其他示例在所附权利要求的范围内。