首页> 中国专利> 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备

用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备

摘要

公开了一种用于将数字场景描述数据从发送器场景处理设备发送至至少一个接收器场景处理设备的方法。所述方法包括步骤:通过为场景描述数据和相关渲染命令设置优先级、和根据各自的优先级动态地将所述场景描述数据和相关渲染命令进行重新排序,以便减少发送所需的带宽和/或适应于不可靠带宽,在所述发送器场景处理设备中编码场景描述数据和渲染命令;以及将经编码的场景描述数据和相关渲染命令发送至所述至少一个接收器场景处理设备,用于由所述至少一个接收器场景处理设备解码并执行与所发送的场景描述数据相关的渲染命令,以实现动画数字图形。

著录项

  • 公开/公告号CN103688240A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 梦芯片技术股份有限公司;

    申请/专利号CN201180072421.X

  • 发明设计人 B.斯坦克;

    申请日2011-05-20

  • 分类号G06F3/14(20060101);G06T9/00(20060101);G06T13/00(20110101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邸万奎

  • 地址 德国加尔布森

  • 入库时间 2023-12-17 02:29:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-09

    授权

    授权

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F3/14 申请日:20110520

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本发明涉及一种用于将数字场景描述数据从发送器场景处理设备发送至 至少一个接收器场景处理设备的方法。

本发明还涉及一种发送器场景处理设备和接收器场景处理设备。

背景技术

存在将数字场景描述数据从发送器场景处理设备发送至至少一个接收器 场景处理设备、且进一步使用所发送的具有高质量的数字场景描述数据的需 要。然而,发送待使用的高质量数字场景描述数据需要在合理的时间内发送 大量数据且在合理的时间内处理数字场景描述数据。

在本领域中,用于减少待发送的数据量的渲染过程是公知的。渲染是利 用例如在处理单元上执行的计算机编程指令从至少一个模型或场景生成图像 的处理。场景包含定义的语言或数据结构中的对象。场景包括属性,例如用 于定义几何形状、视点、纹理(texture)、光照和阴影,用以描述场景。对包 括属性的数字场景描述数据执行渲染命令产生动画数字图像或图形图像文 件。

本申请中所述的术语“场景”包括至少一个图片、图片的帧、或图片序 列(即视频)。

多个图形处理工具对于公众可用,包括OpenGL(开放图形库),其提供 程序指令和相关可执行文件用于渲染处理。

作为开放资源,包括渲染库的OpenGL规范编码资源可以无需许可证而 在因特网中从OpenGL机构(http://www.opengl.org)获得。在OpenGL参考 手册中进一步描述了OpenGL:OpenGL的官方参考文档,1.4版本(第4版), 2004年3月26日,编辑Dave Schreiner,专业人员Addison-Wesley;以及Dave  Schreiner的OpenGL编程指南:学习OpenGL的官方指南,3.0和3.1版本(第 7版),2009年7月31日,专业人员Addison-Wesley。

US2007/0153004A1公开了为利用嵌入式系统图形应用编程接口显示动 画文件而提供的动画文件播放器。为了在图形功能的移动设备上显示动画文 件信息,将动画文件存储并转换为图形渲染信息。将图形渲染信息传递至移 动设备图形子系统,在所述移动设备图形子系统中,处理图形渲染信息以获 得像素数据。在移动设备显示器上显示像素数据的动画。

WO2009/040313A1公开了用于使用OpenGL库将图形应用远程可视化 的方法和系统。本地计算机系统包括OpenGL库和编码器,所述编码器用于 将操作系统专用的OpenGL接口操作转变为独立于操作系统的用于在本地计 算机系统与一个或多个远程计算机系统之间发送的操作。至少一个远程计算 机系统包括解码器,其用于将独立于操作系统的操作解码为用于第二种操作 系统的第二OpenGL接口的操作。所述操作可以转至(relay to)视窗系统专 用的渲染方法。

发明内容

现有技术的问题是在设备上处理数字场景描述数据需要大量有限的处理 资源和有限的电池电力、以及用于发送为了更高分辨率显示而所需的数字场 景描述数据量的带宽是有限的。

本发明的目的通过如权利要求1所述的方法、以及如独立权利要求所述 的发送器和接收器场景处理设备实现。

根据本发明,所述方法包括步骤:

-通过以下步骤在发送器场景处理设备中编码场景描述数据和渲染命 令:

-为场景描述数据和相关渲染命令设置优先级,及

-根据各自的优先级动态地将场景描述数据和相关渲染命令进行重 新排序,以便减少发送所需的带宽和/或适应于不可靠带宽;以及

-将经编码的场景描述数据和相关渲染命令发送至至少一个接收器场景 处理设备,用于由所述至少一个接收器场景处理设备解码并执行与所发送的 场景描述数据相关的渲染命令,以实现动画数字图形。

根据本发明,将场景描述数据和相关的经编码的渲染命令从发送器场景 处理设备发送至至少一个接收器场景处理设备,用于解码并执行与所发送的 场景描述数据相关的经编码的渲染命令。

因此,发送器场景处理设备可以是具有有限电池容量的移动设备,因为 执行渲染命令是在接收器场景处理设备上执行的。

此外,发送数字场景描述数据所需的带宽在发送数字场景描述数据时显 著减少,且独立于这些经编码的渲染命令。

根据本发明,动态地将场景描述数据和相关渲染命令进行重新排序,从 而具有显著减少用于待发送至至少一个接收器场景处理设备的数据的带宽的 效果。

通过重新排序场景描述数据和相关渲染命令而进行编码并且在接收器场 景处理设备中执行渲染命令、而非发送经编码的已经渲染的动画数字图形, 由此,压缩方式具有在没有质量损失的情况下维持数字场景描述数据的完整 信息的优点。

所述方法、以及相关的发送器场景处理设备和接收器场景处理设备的效 果是在发送器场景处理设备与至少一个接收器场景处理设备之间的不可靠且 尤其是窄带的链路上提供快速的反应速度和流畅的动画。带链路也可以是宽 带链路。除了有线链路(例如,TCP/IP链路和USB链路)之外,该方法对包 括分布式无线链路的无线链路(例如,WiFi和Bluetooth(蓝牙))也起到很 好的作用。实现本发明的大部分的无线链路具体地是高负载且难处理的无关 的干扰连接,例如许多并发的、无关的且可变的活动链路作为干扰方的多WiFi 接入点环境。

优选的是,首先将压缩的数字场景描述数据(特别是纹理数据)从发送 器场景处理设备发送至至少一个接收器场景处理设备。这将导致所得到的渲 染的动画数字图形的质量下降。为了实现改善的图形质量,通过将具有较高 质量的之前压缩的数字场景描述数据从发送器场景处理设备发送至至少一个 接收器场景处理设备而稍后更新数字场景描述数据。因此,可用带宽可以用 于例如以未压缩形式更新具有较高质量的数字场景描述数据。因此,可以首 先使用具有下降的质量的动画数字图形,其中稍后通过更新数字场景描述数 据来改善动画数字图形的图片质量,而无需干扰或中断动画数字图形的流。

在优选实施例中,从发送器场景处理设备发送至至少一个接收器场景处 理设备的数字场景描述数据包括被提供用于描述场景的场景点的顶点数据。 所述顶点数据包括被提供用于渲染与顶点数据相关的对象的相应场景点的位 置和相应场景点的属性。

本申请中所述的顶点是描述二维(2D)、两个半(2.5D)或三维(3D) 空间中的场景点的数据结构。2.5D是使得一系列图像或场景当它们实际上不 是三维时伪造成或看似为三维(3D)的图形投影。

当利用平坦表面(例如三角形)的阵列来描述对象时,由顶点来定义表 面的角落的位置和其它属性。因此,三角形的角点(corner points)的顶点与 角点的位置关联,并且与包括顶点处的颜色、近似曲面在角点的位置处的法 线以及相关三角形的表面的纹理和反射的附加图形属性关联。因此,顶点数 据包括数据组,其可以优选地被编码并被以经编码和压缩的形式从发送器场 景处理设备发送至至少一个接收器场景处理设备,以便减少数据量。

因为可以独立于顶点数据(例如在无需编码且因此没有质量损失的情况 下)而发送例如对于定义纹理有益的图像数据,所以,即使通过编码减少数 据量,也仍然可以以高分辨率和高质量显示动画图形。

优选的是,利用差值(delta)压缩来编码或压缩数字场景描述数据、并 且特别是顶点数据。在差值压缩的方法中,计算并发送实际数字场景描述数 据与前一组对应的数字场景描述数据的差。在无损数据编码的现有技术中, 差值压缩是公知的。差值压缩的方法具有与发送一个图片或帧本身的场景描 述数据相比数据量显著减少的优点。

此外,优选的是,与具有次级(较低)可见性或在动画数字图形中不可 见的(非优先的)场景描述数据和相关渲染命令相比,以更高的优先级发送 在动画数字图形中对于用户主要可见的场景描述数据以及与这种优先的 (prior)场景描述数据相关的渲染命令。

因此,可用带宽和包括电池电力的资源主要用于编码和发送动画数字图 形的主要可见的内容。以较低优先级处理在背景中或不可见的具有次要 (minor)优先级的数据内容。场景描述数据和相关渲染命令的优先级可以根 据从利用相关渲染命令渲染这些场景描述数据而得到的图形内容的可见性而 设置。此对处理划分优先级(priorisation)的方法可以仅应用于编码和发送渲 染命令、或者应用于编码和发送渲染命令以及发送(可选地,利用预先压缩/ 编码)相关数字场景描述数据两者。

通过忽略与动画数字图形的不可见部分相关的渲染命令、以及可选地忽 略相关数字场景描述数据本身,减少了发送所需的处理资源和带宽。当以减 低的优先级处理具有次级可见性的场景描述数据和相关渲染命令时,处理资 源和带宽可以在可用时被使用,而不减少用于处理动画图形的主要可见内容 的数据的可用资源。

此外,优选的是,通过在接收器场景处理设备中处理数字场景描述数据, 将由发送器场景处理设备提供的数字场景描述数据的渲染分辨率转变为连接 至接收器场景处理设备的显示器所需的分辨率。因此,由接收器场景处理设 备来使动画数字图形适应于接收器场景处理设备所需的分辨率。因此,节省 了发送器场景处理设备上的包括可用电池电力的处理资源。通过利用根据如 权利要求1中所主张的本发明的方法来发送数字场景描述数据,在不显著损 失质量的情况下实际适应于接收器场景处理设备上的分辨率变为可能。

所述发送仅需要发送器场景处理设备和至少一个接收器场景处理设备两 者的松散的或依赖于优先级的同步。原因是独立于渲染命令而发送数字场景 描述数据,其中在接收器场景处理设备中对数字场景描述数据执行以减少的 数据量发送的渲染命令。

在接收器场景处理设备被阻碍而不能继续处理数字数据的时段超过预设 时限的情况下,优选的是,至少一个接收器场景处理设备向发送器场景处理 设备发送同步信息。

在优选实施例中,测量用于传输经编码的场景描述数据和相关渲染命令 的信道的特征。关于信道的实际测量特征而控制动态地进行重新排序的步骤。 信道的这些特征是例如数据传输统计、反应时间(例如ping(侦测)时间) 等。这种关于信道的特性的信息通常用作接口设备的输出、或者可以利用标 准固件资源来实施。

根据信道特性控制编码处理(即动态重新排序的步骤)的优点具有使要 以最优方式发送至接收器场景处理设备的数据量适应于信道的可用带宽的优 点。

此外,优选的是,将场景描述数据缓存在接收器场景处理设备的数据存 储器中。当在发送器场景处理设备中编码场景描述数据时,例如通过设置优 先级为零而不考虑这种已经缓存在相关接收器场景处理设备中的场景描述数 据。因此不再次发送所缓存的场景描述数据。当解码并执行与所缓存的场景 描述数据相关的渲染命令时,接收器场景处理设备可以从存储器中重新使用 这种缓存的场景描述数据。这具有显著减少要从发送器场景处理设备发送至 至少一个接收器场景处理设备的数据量的效果。

所述目的还通过发送器场景处理设备实现,所述发送器场景处理设备包 括用于存储数字场景数据的数据存储器、至少一个处理单元和用于连接至至 少一个接收器场景处理设备以将场景描述数据发送至所述至少一个接收器场 景处理设备的至少一个接口。

根据本发明的发送器场景处理设备包括编码器,其用于通过以下步骤在 发送器场景处理设备中编码场景描述数据和相关渲染命令:

-为场景描述数据和相关渲染命令设置优先级,及

-根据各自的优先级而动态地将场景描述数据和相关渲染命令进行重新 排序,以便减少发送所需的带宽和/或适应于不可靠带宽。

所述渲染命令包括指令,其用于当在处理设备上执行所述指令时,从存 储在数据存储器中的数字场景描述数据获得动画图形。所述发送器场景处理 设备被布置为经由至少一个接口将场景描述数据和相关的被编码的渲染命令 发送至至少一个接收器场景处理设备。

优选地,所述发送器场景处理设备例如通过利用处理单元上执行的可执 行文件的软件编程而被布置为执行意图在发送器场景处理设备上执行的前述 步骤中的至少一个。

所述目的还通过接收器场景处理设备实现,所述接收器场景处理设备包 括用于存储数字场景描述数据的数据存储器、至少一个处理单元和用于互连 至至少一个发送器场景处理设备的至少一个接口。所述接收器场景处理设备 包括被布置用于解码经编码的渲染命令的解码器,其中,所述接收器场景处 理设备被布置为执行与渲染命令相关的经编码的指令,其用于当在处理单元 上执行所述指令时,从经由接口从至少一个发送器场景处理设备接收的数字 场景描述数据获得动画图形。

根据所述发送器场景处理设备,优选地,所述接收器场景处理设备被布 置为执行意图在接收器场景处理设备上执行的步骤中的至少一个(例如,通 过要在处理单元上执行的软件程序可执行文件)。

附图说明

下面,利用附图通过实施例来例示地描述本发明。其示出:

图1示出通过数据链路相互互连的发送器场景处理设备和接收器场景处 理设备的框图;

图2示出用于将数字场景描述数据从发送器场景处理设备发送至至少一 个接收器场景处理设备的方法的流程图。

具体实施方式

图1示出通过数据链路3而链接在一起的发送器场景处理设备1和接收 器场景处理设备2的集合的框图。此数据链路可以是例如利用如TCP/IP或 USB协议等的数据传输协议的有线链路。更优选地,数据链路3是利用如 WiFi或Bluetooth等的数据协议的无线链路。窄带数据链路(例如,WiFi和 Bluetooth)在许多目标设备中已经可用,使得可以通过固件更新来实施本发 明。

至少一个接收器场景处理设备2连接至显示单元4,显示单元4被提供 用于显示通过在接收器场景处理设备2上渲染数字场景描述数据而处理的动 画图形。

发送器场景处理设备1包括例如以可编程图形处理器为形式的处理单元 5、以及连接至处理单元5且被提供用于存储数字场景描述数据的数据存储器 6。可选地,可以将软件程序可执行文件存储在数据存储器6中。

此外,发送器场景处理设备1包括渲染命令库7,其包括用于渲染数字 场景描述数据以实现动画图形的可执行文件和/或命令。这种渲染命令库可以 包括例如根据OpenGL开放源标准的OpenGL库。然而,根据用户的需要且 根据当设计发送器场景处理设备1时所选择的具体实施方式,发送器场景处 理设备1也可以支持任何其它渲染命令语言,如VirtualGL、WebGL等。

发送器场景处理设备1还包括接口8,用于连接至至少一个接收器场景 处理设备2。接口8可以是支持例如有线数据传输协议TCP/IP、USB等或无 线数据传输协议WiFi、Bluetooth等的有线或无线接口8。这些接口8通常以 硬件块(集成电路)、固件或它们的组合的形式可用。

此外,发送器场景处理设备1包括编码器9,其用于编码场景描述数据 和渲染命令库7中存储的相关渲染命令。编码器9例如通过软件编程或以逻 辑硬件块的形式被布置为:利用对场景描述数据和相关渲染命令设置优先级 并关于之前设置的优先级而重新排序场景描述数据和渲染命令的步骤来编码 场景描述数据和相关渲染命令,使得减少了发送场景描述数据和相关渲染命 令所需的带宽和/或使场景描述数据和相关渲染命令的序列适应于不可靠带 宽。

为了重新排序场景描述数据和相关渲染命令,与高优先级的场景描述数 据和相关渲染命令相比,编码器9缓存(中间存储)具有较低优先级的场景 描述数据和相关渲染命令。当重新排序场景描述数据和相关渲染命令时,编 码器9可有权访问高速缓存存储器,用于改变且优化场景描述数据和相关渲 染命令的序列顺序,以实现前述目的。

优选地,接口8包括测量单元,其用于测量信道(即数据链路3)的特 性。这些特性是例如数据传输速率、反应时间(例如ping时间)等。如虚线 箭头所示,接口8控制编码器9、以及特别是设置优先级、缓存和重新排序 的步骤,以使编码器9的数据流适应于所测量的信道特性。

选择之一是首先以压缩的形式将数字场景描述数据从发送器场景处理设 备1发送至至少一个接收器场景处理设备2。结果是高度减少了用于发送此 种数据所需的带宽。然而,当基于压缩数据显示动画图形时存在质量损失的 缺点,因为当压缩数据时存在信息损失。为了克服此缺点,稍后将通过例如 以非压缩形式将具有较高质量的之前压缩的数字场景描述数据从发送器场景 处理设备1发送至至少一个接收器场景处理设备2来更新数字场景描述数据。 可以使用未用于发送具有较高优先级的数据的任何可用带宽,在数据分组中 发送场景描述数据。结果是动画图形的质量稍后改善了。

在实践中,当稍后改善图形质量时,动画图像在开始时的较低质量对于 用户没有显著影响。

另一选择是编码顶点数据以压缩顶点数据。数字场景描述数据包括顶点 数据等,其中顶点数据被提供用于描述场景的场景点。顶点数据包括相应场 景点的位置和相应场景点的属性。所述属性可以包括关于纹理、照度、视点、 线宽、缩放因子、颜色、相关表面的反射率、和近似曲面在顶点的位置处的 法线的信息。

当编码数字场景描述数据、特别是顶点数据时,可以应用差值压缩的方 法。在现有技术中,差值压缩被公知用于无损数据编码。原则上,当执行差 值压缩的方法时,计算并发送实际场景描述数据与前一组相关的场景描述数 据的差。因此,不是实际场景描述数据的绝对值被编码和发送,而是实际场 景描述数据与前一组相关的场景描述数据的差被编码和发送。与绝对数据相 比,差值数据量显著降低。

另一选择是对产生动画数字图形中对于用户主要可见的图形的场景描述 数据和相关渲染命令设置提高的优先级。因此,这些产生处于观察者的焦点 的动画图形的场景描述数据和相关渲染命令优先于涉及动画数字图形的背景 图形或甚至不可见部分的场景描述数据和相关渲染命令。

接收器场景处理设备2还包括连接至数据链路3和发送器场景处理设备 1的接口10。接口10对应于发送器场景处理设备的接口8。

接收器场景处理设备2还包括图形处理单元11和数据存储器12,数据 存储器12被提供用于存储包括数字场景描述数据的数字场景描述数据。

接收器场景处理设备2还包括解码器13,其用于解码从发送器场景处理 设备1接收的数据流。所述数据流包括数字场景描述数据和相关渲染命令的 序列。

接收器场景处理设备2的图形处理单元11被布置为:执行与从发送器场 景处理设备1接收的数字场景描述数据相关接收的渲染命令。优选地,图形 处理单元11由相应的固件控制以执行渲染命令并执行用于图形处理的渲染。

可选地,图形处理单元11可以有权访问包括可执行文件的渲染命令库 14,可执行文件例如为控制图形处理单元11执行具体渲染步骤的固件或软件 代码的形式。于是,由接收器场景处理设备2从发送器场景处理设备1接收 的渲染命令可以被限于涉及接收器场景处理设备2的渲染命令库14中存储的 可执行文件的码字。

于是,渲染命令库7可以被限制于这样的码字的库,而无需将可执行文 件存储在发送器场景处理设备1中。

在图1中所示的实施例中,接收器场景处理设备2(可选地)连接至被 提供用于显示动画数字图形15的显示器4。所述动画数字图形15包括被提 供用于描述场景的场景点16的顶点数据。

图2示出根据本发明的用于发送数字场景描述数据和相关渲染命令的方 法的流程图。

在步骤a)中,基于数字场景描述数据的流,编码场景描述数据(即SDD) 和相关渲染命令。

编码的步骤a)包括:用于为场景描述数据SDD和相关渲染命令设置优先 级的步骤a1)、以及根据在步骤a1)中设置的各自的优先级动态地将场景描述 数据SDD和相关渲染命令进行重新排序的步骤a2),以便减少发送所需的带 宽和/或适应于不可靠带宽。

编码的步骤a)包括缓存场景描述数据和相关渲染命令的步骤,以在将降 低的优先级分配给此数据的情况下存储这种数据。当缓存这种数据时,编码 器9稍后可以访问此数据,以将此数据包括在场景描述数据和相关渲染命令 的流中。因此,例如由于相关动画图形场景处于观察者的焦点的可见性而具 有高优先级的场景描述数据和相关渲染命令优先于具有较低优先级的场景描 述数据和相关渲染命令。

然后在步骤b)中,通过数据链路3将重新排序的数字场景描述数据和相 关渲染命令的序列从发送器场景处理设备1发送至至少一个接收器场景处理 设备2。应注意,在优选实施例中,场景描述数据SDD将与渲染命令通过同 一信道(即数据链路3)分开发送。因此,步骤b)被划分为用于发送数字场 景描述数据SDD的步骤b1)和用于发送渲染命令的步骤b2)。数字场景描述数 据SDD和相关渲染命令也可以通过不同信道彼此分开地发送、或者可以经由 同一信道而合并在共同的数据分组中发送。

在接收器场景处理设备2中,在步骤c)中接收所发送的数字场景描述数 据SDD和相关渲染命令。

然后,在步骤d)中,解码所接收的数字场景描述数据SDD,并可选地解 码相关渲染命令。

在步骤e)中,例如利用接收器场景处理设备2的渲染命令库14中存储的 相关可执行文件,执行与已经从发送器场景处理设备1接收的数字场景描述 数据相关的渲染命令。这些相关的数字场景描述数据也可以是已经缓存在接 收器场景处理设备2中以用于后续对同一数据内容的重用的数据。因此,仅 允许从发送器场景处理设备1或任何其它源(例如数据存储介质)发送一次 重复的数据内容至接收器场景处理设备2。

执行渲染命令以处理数字场景描述数据的结果是可以在步骤f)中立即在 显示器上显示、或者被存储用于稍后使用的动画图形。

下面,给出本发明的优选实施例:

具体化(crystallization):在用于RemoteGPU(远程图形处理单元)设置 的多部件装置中实施根据本发明的方法。这实施了用于在低且不可靠带宽链 路上的场景合成元素的协议编码器、动态信道估计器和解码器方法。

实施本发明的系统采用用于在数据链路上有效预处理、编码、发送、并 解码2D、2.5D和3D场景合成元素、以及在给定时间帧和带宽内在连续的 (subsequent)或者非连续但足够的相关场景之间的变换的方法和装置。该方 法是将窄链路内的位置优化为对于具体显示对象最优的最小数据传输的熵。

本发明的关键方法描述了在此最优点上如何处理源-宿交互以仍然实现出色 的反应速度。下面将对此进行详细描述。

在后续章节中描述的关键创新是:

●引入优化方法,其取代传统的帧同步的或等步的、且因此为显著冗余 的、并因此为非常低效的对潜在用户的显示通信、以及本质上异步的 以应用为目的的场景变换特征。

●特定于每个内容相关的技术的最大冗余降低使用

●有关反应速度与较不显著的视觉内容的辨识、去耦、优先级划分和再 处理

●用于动态信道估计、编码和解码的处理高效装置。

●基于被辨识的用户交互和预估计的处理需要的节电。

●先验和按需信道特性估计器

●先验和按需应用通信特性估计器

为实施根据本发明的方法而推荐的装置可以至少出现在以下组合实施例 中:

主要的、但并非所有可能的宿-解码器实施例是:

●插头:微型解码器装置。线缆插头尺寸。通过如HDMI或DVI-I的标 准电气接口连接。外部安装在显示设备的插头处。

●STB:中等尺寸的解码器装置。通过如DVI、HDMI、DisplayPort(显 示器端口)线缆的标准电气接口连接。可以包括附加的TV-STB功能。

●集线器:中等尺寸的解码器装置。通过如DVI、HDMI、DisplayPort 的标准线缆连接至显示器。包括用于例如标准键盘和鼠标的附加USB 集线器。

●嵌入:解码器装置被直接实施为显示器本身内部的芯片或ASIC(的一 部分)。

●全部:任何以上选择(插头、STB、集线器或嵌入)解决方案同样适 合。用户基于进一步的功能或价格来选择。

可能的宿-解码器实施例的设置的各种细节为:

●TV:用户远离显示器。外部接口:HDMI。

●监视器:用户直接坐在显示器旁边。因此,对于例如标准鼠标和键盘 设备的线缆连接是共同的地方。这些是物理地连接至解码器盒且通过 相同介质而传输至实现编码器的处理单元的输入设备。典型的实施例 是例如对接站(Docking-station)。

●投影仪:此设备常常安装在房间的天花板上。用于连接膝上型计算机 的显示器线缆在会议室的桌子处可获得。接收器场景处理设备(解码 器)连接至此线缆。这是HDMI、或DVI-I,包含Sub-D VGA。

●汽车:没有标准接口,因此通常直接嵌入。人机接口设备(HID)的 非常具体的设置:方向盘上的键和控制。

一个典型的使用情况是使用方向盘键选择电话中的联系人的字 母。然后,选择导航。电话中的3D地图应用以流畅的动画和瞬时反 应速度在汽车的主显示器上显示。

●眼镜:这些是近眼(Near-to-Eye)显示器(NED)。整个装置必须非常 轻且节能,以用于通过一个微型电池对整个解码器系统进行无线的供 电。

●PoS:销售点(Point of Sale)。此显示设备在公共场所显示广告。此实 施例受益于精细的或抢眼的动画广告。通常是许多这些显示器以菊花 链链接,并且受益于与固有的多解码器渲染能力高效通信。

其它实施例是可能无缝的且显著受益于整合了根据本发明的方法:

●超静音工作站:连接至具有流畅的GUI的多用户服务器PC

●基于云的服务:演示内容流编解码器(CoDec)

●WebGL(基于OpenGL|ES2.0)流加速器。

在所推荐的实施例中的与装置相关的用户交互选择主要为:

●单视图

О仅本地显示:这是旧标准使用

О仅远程:本地LCD关闭(节电),如在膝上型计算机上的触摸屏

●双视图

О镜像同一场景

■相同分辨率:标准方法。不推荐。低显示器利用率

■重新渲染的全屏视图:像素精确的场景放大,不缩放(not  scaling)

О扩展的桌面:从桌面OS公知

●多解码器视图

О镜像:所有显示器显示相同内容、但以原始(不同的)分辨率

О扩展的桌面:可能,但不推荐

●同一3D场景的视图锥截体(viewport frustum)

ОMUD(多用户地下城)游戏的几个用户具有它们自己的3D视角

О自动立体3D显示器对于为从他们自己的视角观看同一场景的许多 用户获得(许多)多于传统的2个视图。这允许用户移动。不再 存在窄最佳点。

本发明的有效实施例至少可以实施上述选择的全部或子集的任意组合。

OpenGL(具体地为OpenGL|ES2.0API示例)的利用不构成对于实施本 发明至任何具体渲染API的方法的适用性的任何限制。

在不可靠接口上的预渲染对象的环境中所主张权利的是:

顶层视图:在以下一般显示对象之间进行区分:

1.媒体内容:优质的或自己创建的内容,如压缩视频、图像、音频

2.2D和2.5D GUI:这考虑到对传统桌面图形传统(legacy)的支持

3.3D和基于向量的GUI:这可以是华丽的动画(2D、2.5D或3D)GUI、 以及游戏

因为第1点已经在现有技术中被很好地覆盖了、但是也是所建议的装置 的一部分,所以以下的权利主张围绕第2点、尤其是第3点。2D和2.5D GUI 被认为是与3D视点垂直的一个(2D)或几个平行(2.5D)表面。

物理接口

用于实施本发明的物理接口依赖于期望的应用复杂度和开始时间需求。 所述装置使得可以使用标准有线和无线链路。对于大部分基于向量和对象的 渲染的GUI应用,Bluetooth足够了。为了加速应用开始时间,推荐Bluetooth 3.0。对于开始时间,为了高吞吐量而使用WiFi-Phy,而在运行期间,通常 Bluetooth2.1足够了。这与WiFi或任何有线或无线帧同步接口相比显著降低 了耗电。

相关图形元素

如X11(Linux)或GDI(Windows)的典型PC图形子系统处置分别构 成所显示的程序的资源。这也应用于智能电话图形子系统。这是:

●位图资源,例如,如图标和背景

●具有具体字形和大小的再次出现的字母的文本

●场景构成描述,例如,在xy位置上且具有xy大小、颜色的矩形框(即 程序窗口),包含即到其它资源(例如图标)的链接或引用

●静态显示:α阴影波特-达夫(Porter Duff)合成

●动态显示:欧几里得、相似、仿射或其它投影变换

●OpenGL|ES元素,诸如顶点、顶点属性、顶点阵列、矩阵、顶点着色 器、片段着色器、或具有不同特性的纹理

场景传送协议—一般概览

STP协议由两个独立的上行链路和一个下行链路连接组成。由编码器初 始化连接。流在不同端口上运转。因此,在服务质量(QoS)控制的环境中, 可以进一步提升性能。优选方法由三个连接—每个服务器将QoS评估结果发 送回客户端的第三信道—组成。这些信息提供关于例如当前渲染速度(最小、 最大和平均FPS)、负载条件的信息,其可以被客户端用于优化网络流量。

●命令流:用于推送实际GL命令。这些很小,但是对于流畅的用户体 验来说是关键的,因为它们引导例如GUI变化和渲染。

●资源流:用于推送二进制资源,诸如纹理。这些在网络通信方面较大。

●统计环:用于异步地实施控制环以基于所测量的信道统计、服务器统 计和渲染-HW统计动态地优化客户端行为。最小主题组是:粗糙的 IP网络带宽、ping延时、最大帧尺寸、最小帧尺寸、渲染fps

这两个上行链路通信信道之间的分离确保大的纹理上传不阻碍渲染管 线。此外,其允许服务器做出关于渲染还未到达的资源的决定。例如,可以 将缺少的纹理渲染为纯色(例如灰色)、背景色、或方格图案(iOS风格), 或者使用低分辨率占位符纹理。替代地,可以引导服务器等待(阻碍)此具 体资源到达。

基于向量和对象的方法被如下组织:

设置:未修改的GL、GL扩展、更好地展现、打破环、新命令、群组(group) 控制命令,例如WM.、解码器统计。

●编码器和解码器的松散同步

●依赖于对象和视觉重要性的逐步传输和多步骤缓存

О标准的、未修改的GL资源(例如纹理)的传输

●标准的、未修改的EGL和GL命令的传输

●优化的展现的GL命令的传输

●易于可用性方法的装置(apparatus ease of usability methods)

●较低带宽解决方案:场景-图形编码优先级划分

●可用性改进方法

编码器和解码器的同步

装置实施松散同步。大部分编码器方法不需要与解码器紧密同步、或者 完全不需要同步。这尤其适用于那些没有任何用户交互的动画。其它应用根 据设备能力和利用率而增加每秒渲染的帧的数目。这允许此应用在更快的 HW上显得更流畅。为了使得能在此现在更长的环上也采用这种动态应用而 不经受同步环内延迟,编码器在本地提供动态渲染指导信息。这基于环上信 道估计和宿GPU能力。因为信道可能改变此测量的吞吐量和延迟扩散信息, 所以基于上一次的渲染的帧的吞吐量更新对该应用的相应渲染指导。根据环 境条件和装置能力,此精细时间窗是可变的。

通过对本地或远程渲染硬件的不可预见的阻碍而引入了进一步的同步方 法。该应用没有完整的先验知识,其命令将实际上在有关的时间段内阻碍渲 染硬件。通常,包括渲染命令的大部分命令耗费可忽略的时间,而一些很少 发生的事件将使得通常毫无来由地快的命令被延迟几毫秒。这是由渲染硬件 的实际实施所导致的。GPU阻碍是因为其用完了内存、需要在执行一些在前 工作的不同核心上同步、等待缓冲器读取到达等。

根据本发明的编码器的主要优点是与导致编码器HW的阻碍几乎完全脱 钩。对于GL命令的应用可见的执行时间接近零,因为它们正被缓冲且未被 执行。因此,客户端应用会假设不真实的帧速率,并且实际上是无限帧速率。 对于与渲染HW可以导致延迟且能够缓冲此相比差得多的信道定时行为,将 编码器队列实施方式参数化。如果阻碍时间超过预设限制,则解码器方法是 将此伪阻碍和下降(drop)警告报告回编码器。所有短期和部分中期延迟的 总和的倒数是所报告的每秒帧速率。此均衡的可能帧速率随后通过阻碍而被 施行。

以下条件将使得GL功能调用阻碍客户端应用:

●存储器阈值:如果累积的命令的数量超过特定装载量(fill-level),例 如,200个未发送的命令在发送缓冲器中、或者分配给未发送资源的 内存量达到上限阈值。

●初始块Fps:由客户端引入以覆盖(cap)处于给定水平的帧速率,例 如60Fps。如果现场信道估计和实际渲染HW重放(replay)统计指 示余量(headroom),则此初始值可以增加。

●eglSwapBuffers调用:如果已经有在命令队列中调度的两个或更多个 类似的调用仍未发送至服务器,则此被阻碍。在eglSwapBuffers调用 之间的命令展现出全帧更新。这忽略局部更新,局部更新被独立地处 置。如果编码器装置调度了多于2两个全帧,则通知客户端。

阻碍并重新分组网络流量

●默认地,从EGL API调用提取的命令被插入队列中,并且依赖于信道 估计和计算的分组优先级,其被编码器写入到套接字(socket)。当帧 完成时,套接字被刷新。这通过接收到eglSwapBuffers命令而被触发。

●然而,为了确保在拥塞的或带宽非常有限的传输介质(例如WiFi或 Bluetooth)上的完美性能,附加的分组(grouping)和优先级划分方 法影响网络调度(dispatch)。这些规则另外对命令项进行分组或阻碍 命令项,并以对人的观点重要性特定的布置发送它们。根据信道估计 和实际应用需求,这包括无损和有损方法。所述装置基于当前条件下 的人的感知模型而确保最大流畅渲染结果。

●物理链路优化对于TCP/IP分组尺寸例如考虑具体的最大片段尺寸 (MSS)作为匹配的块尺寸,以确保不发生IP分段。因为MSS的尺 寸改变,所以当在公知环境中运行时,这通过配置而被初始化为理智、 默认和可控的。自动优化的自动调节在运行时间期间被调用,并且基 于作为信道估计反馈的解码器反馈。

●在解码器装置中实现类似的方法以限制所需吞吐量的相应预测,并且 用此先验已知的性能来引导DVFS和更深睡眠模式的需求,用于依赖 于例如显示定时以及得出的场景复杂度需求的增强型节电需要。

缩放:分辨率优化方法

解码器自动转变解码器渲染分辨率以适合全屏。在实践中,应用假设其 以本地分辨率(例如,其写入的800×480像素)进行渲染,而解码器实际上 以例如1920×1080进行像素准确渲染。

如果经编码的场景视点的长宽比与解码显示设备不同,则解码器装置对 于较多宽屏的原始内容使用上下加框模式(letter boxing)并且对于较少宽屏 原始内容使用左右加框模式(Pillar boxing),以保留原始长宽比。

如果在经编码的和经解码的分辨率之间,分辨率在任一或两个方向上不 同,则以下方法适用:

解码器对于仿射变换矩阵计算在场景设置所需的矩阵,以将顶点坐标从 由运行在编码器侧的应用定义的视点线性地转置到解码器侧的最优坐标系 统。所得到的视锥然后如应用所预期地被渲染,但是以不同的(通常为高得 多的)分辨率被栅格化。例如:所得到的非正交线在高得多的分辨率上也呈 现画得完美的像素,其中所得到的非正交线根据传统位图缩放会具有丑陋的 阶梯(step)。

诸如纹理的位图内容必然经受被绘制在高得多的分辨率的表面上,因为 如果纹理的原始分辨率太低,则那会需要位图缩放。为了减少在更高分辨率 显示器上变得更差的此公知影响,解码器用最高质量缩放(例如,解码器平 台的双线性纹理渲染)来替换应用可能已经调用以期望低分辨率显示的低质 量缩放命令。替代地,因为编码器可以报告真正的最大分辨率显示,所以应 用可以选择更高分辨率纹理。此方法也用于应对带宽拥塞。这里,经二次采 样的非常低分辨率的纹理首先通过窄带接口被发送、渲染并显示。在背景中, 更好质量、更高分辨率、且因此更大量的批量数据被传输,并在到达时被解 码器替换。应用来自短期和更长期或永久缓存方法的其它方法。

管理的多缓存

当编码场景描述数据和相关渲染命令时,用于重新排序的三种不同缓存 数据是初步感兴趣的。在持久缓存策略中,使得数据在持久数据存储器中可 用,从而可以在处理动画图形的完整时间期间访问数据。这需要相比于短或 长的动态缓存策略而增加存储器容量,同时具有极大灵活性和重新排序过程 的效果的优点。在短或长的动态缓存策略中,数据仅被缓存长或短时间,使 得重新排序仅考虑动画图形的序列的时间限制的时间帧。优点是需要减少的 存储器容量。

对于窄带宽条件的资源流优化

本方法的优选实施方式允许逐步地更新纹理资源。客户端开始可以发送 资源的大力压缩的JPEG版本,并稍后用全质量图像更新它。此方法消除了 从解码器到编码器的全部往返时间,因为编码器不需要等待解码器应答。当 程序在客户端侧生成纹理资源时,编码器从其池中将唯一本地id分配给纹理 资源。例如,编码器向纹理提供为5的id。编码器利用作为5的此id号将请 求推送至解码器,其中资源将被此特定客户端引用至此id号。客户端执行实 际的芯片上资源创建命令,并获得例如为11的id。现在,解码器知道客户端 纹理id5是实际id11。此映射永不需要被传递回至编码器。客户端当识别资 源时将继续使用5,并且服务器将此映射为11。

对于连接至同一解码器的多个编码器设置,解码器为每个连接的编码器 分别维持此映射。

较低带宽解决方案:

基于场景图形的编码优先级划分方法

在对于与此发明的此目的相比不同的目的的不同上下文中已知以下方 法。它们已经被用于改善在本地图形加速系统中对具有非常高性能的目标点 的更高复杂度场景的处理。完成此以在详细处理图元(primitives)并对最后 反正没有显示的分段进行渲染之前,剔除掉图元来减少图元,以获得更多可 用计算能力以渲染可见像素。

所述装置将在新应用场景中使用这些已知方法作为优先编码方法,其区 分在显著带宽限制的情形到远程顶点缓冲器下的传输相关性和优先级。这些 方法所得到的效果是快得多的应用开始和较快的非先验已知的场景在低带宽 条件下随着高复杂度场景而改变。称为“视锥剔除(view-frustum culling)”、“遮 挡(occlusion)剔除”、“小特征剔除”和“细节级(LOD)节点”的传统的高性 能方法现在变成:

●视锥重新排序

可以如金字塔型树桩(=视锥)那样将实际的和瞬间的2D视图视角 描绘成3D场景。已经定义了一些3D场景内容,但是它们在此视锥外部, 因此(最初)不可见。

所述装置利用“视锥剔除”确定或测试方法将位于视锥内部的顶点 划分优先级为优先级1因子。根据外部多远的距离,其它顶点的优先级 降低。因此,如在前实施例中,外部元素不被剔除,但是被划分优先级 并重新排序,用于也通过甚至更小频带的接口而传输或初始可见部分的 更快可见性。

●遮挡(occlusion)重新排序

基于实际视图视角,一些元素隐藏在从当前视角可见的其它元素后 面。在在前实施例中剔除(去除)了隐藏的元素。编码器将可见顶点划 分优先级为优先级1因子。在当前视图视角中,根据之前确定的带宽拥 塞情形,将隐藏的顶点划分更低优先级。

●细节级(LOD)节点减少

这是不相关减少方法,如果所描述的图在3D场景中更远,则该方 法将多边形、顶点的数目减少至低于特定阈值。这考虑到准确地与前景 相比,人类视觉系统通常不注意背景中的细节。

编码器在非常低的带宽条件下将具有较小z坐标的顶点划分优先级 为较高优先级因子。这立即传输前景中的图元,而背景细节可能最初不 完整,但被加载在背景中,并在之后被渲染。

如果用许多顶点描述具有非常高的复杂度的场景、但其仍未到达前 景,则此方法尤其也被推荐用于不那么窄的带宽情形。

●小特征减少

这是不相关减少方法。通常不需要小特征来提供3D场景的主要印 象。这被认为是有损编码选择。这仅被推荐作为最后的方法,并且因此 利用较低优先级表达式因子来计算。

该方法是将具有在至少两个相反方向上距其它顶点较近的坐标的顶 点划分为较低优先级。而且,较小的三角形被划分为较低优先级。那意 味着边具有较高优先级,而以较低优先级编码通过要在边之间的表面上 显示的几个顶点描绘的细节。

这些方法仅作为最后的手段用于非常低带宽情形中、或者用于加速太高 复杂度的场景。此方法仍然允许对用户交互的相当快的反应、但是减少了用 于在3D场景内移动视角的直接能力。在背景中仅最大努力传输较低优先级 的元素。在稍后传输一些细节的情况下,当此细节到达解码器时包括了此细 节。因此,如果用户不快速移动,则用户将更有可能不被此硬挤压的情形打 扰。

以下用于数据压缩的编码方法可以优选地用于该方法中:

顶点/索引数据的压缩

利用传统的基于LZ的方法,浮点或16/32比特整数数据压缩得不好。因 为大部分相邻的顶点坐标被编码,所以从差值编码实现显著的尺寸减小。这 编码基值,并通过短得多的表示方式来表示一个值与下一个值之间的差“差 值”。因此,相邻顶点称作仅使用偏移的共同基编码。

差值压缩也用于增量传输。编码器维持基本数据的完整拷贝。当传输其 它数据块时,从旧数据中减去新数据并发送差。通常可以用比完整数据少得 多的数据来表示差信息,从而承诺对于动态纹理数据的高增益。

熵压缩

较不高效但更常规的用于命令协议流编码器的方法是通过使用例如zlib 的已知无损熵压缩方法对于基本编码流的应用。每个帧被封装并作为压缩包 被传递。解码器将此分解回为各个命令并分别处理它们。

熵压缩的具体实施例为:

命令和对象特定的编码主张(claims)

网络格式通过尽可能地对较低数据、但可见的反应命令进行优先级划分, 以确保快速反应,如以下对用户立即可见。利用16比特命令ID+16比特大小 来编码报头。

功能参数以最紧凑的可能方式被编码。例如,GLenum:通常在CPU上 为32比特,但是仅16比特被使用。这被编码为16比特并被封装。

模板掩码在CPU上被处理为32比特,但是模板缓冲器只有8比特,因 此这里对于本发明使用分段封装。

颜色值是CPU上的浮点,但是显示器仅具有8比特。

以下方法可以用于改进实施例中:

渐进式纹理上传

通过独立流与解码器完全异步地发送纹理。存在对于渐进式上传的支持。 解码器在发送需要较高吞吐量的高细节纹理之前,首先发送纹理的快速低分 辨率经二次采样的版本。编码器缩小比服务器侧GLES驱动器所支持的大的 纹理。

动态帧成形支持

基于来自服务器的反馈,客户端自动调节其FPS渲染速率以适合服务器/ 网络性能。

冗余命令跳过:编码器维持本地栈拷贝/状态。这通过跳过已经设置了设 置值的命令来去除冗余的高优先级命令流量。例如,终端用户应用经常“仅 仅为了确定”而在每帧上将状态开关重置为开启。这种行为被检测和跳过。

纹理状态跟踪优化

对于全球GL状态,编码器高速缓存每个纹理的状态并跳过冗余操作。 此优化对于像Qt的工具包尤其有效。

如状态改变、顶点属性等的简单功能仅传送几个字节的数据(大部分为 0-16、一些为64)。这是:glUseProgram、glTexParameteri、glUniform3f、 glFlush、……大约所有OpenGLES2.0功能的一半属于此类别。

与在前实施方式是传送如纹理数据、顶点缓冲器、……的批量数据的功 能相比,这可以是从几字节到多兆字节的任何大小。每帧更新此数据中的一 些。示例为:glTexImage2D、glBufferData、glDrawElements、……这些功 能是主要的带宽瓶颈!

特殊改进:glVertexAttribPointer。在本地渲染的OpenGL|ES中,此功 能实际不上传数据至图形芯片。而是,该功能仅更新到图形数据的指针。直 到下个glDrawArrays或glDrawElements调用之前都不读取实际数据。优选 实施方式状态跟踪由顶点属性指针引用的此数据,因为那在引起调用(draw  call)之间每次都改变。

相反,传送小数量的功能是例如识别着色器变量的字符串、缓冲器列 表、……这通常少于100字节,并且不被频繁使用,即,不太可能在每帧中 出现。属于此类别的是:glUniformLocation、glDeleteTextures、……传送字 符串的功能是着色器源、或二进制代码通信,其典型的范围是100字节至10k 字节。不被频繁使用、即不太可能在每帧中出现的是glShaderSource、 glShaderBinary。这两者均通常通过常见的基于LZ的无损压缩方法而压缩良 好。本发明的改进实施方式利用延缓的索引和标准压缩传送。

说明书中使用的缩写具有以下含义:

API  应用编程接口

DVI-I  数字视频接口-集成的

DHCP  动态主机配置协议

DTV  数字电视

DVFS  动态电压和频率缩放

EGL  嵌入式系统图形库

FPS  每秒帧

GL  图形库

HDMI  高分辨率多媒体接口

HW  硬件

LCD  液晶显示器

LRU  最近最少使用的

MSS  最大分段大小

MUD  多用户地下城

OpenGL  开放图形库

OpenGL|ES  图形库嵌入式解决方案

OS  操作系统

PoS  销售点

QoS  服务质量

QR  快速响应

RemoteGPU  远程图形处理单元

SSID  服务组标识符

STP  场景传输协议

Sub-D VGA  子-D视频图形阵列

TCP/IP  传输控制协议/因特网协议

TV  电视

USB  通用串行总线

VNC  虚拟网络计算

WebGL  网络图形库

WM  视窗管理器

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号