高效帧渲染的制作方法

文档序号:12290297阅读:261来源:国知局
高效帧渲染的制作方法与工艺

在流视频系统中,可通过编码器来渲染视频帧。编码器例如可以按照与即将对视频流进行显示的显示器兼容的格式和/或分辨率来压缩视频流和/或编码视频流。在渲染视频的装置与显示器之间的连接可以是有线(例如USB)或无线(例如WiFi、蓝牙)连接。与显示器相关联的解码器可以将它接收的经过编码的视频帧解码。当以恒定的帧率渲染视频时,可以用新帧连续更新显示器。



技术实现要素:

根据实施方式,移动设备可以接收远程显示器上的触摸输入的指示。远程显示器可以是与移动设备分立的,且触摸输入可以与对显示器上显示的应用的变化相关联。移动设备可以确定用于应用的渲染速度。可以基于渲染速度向移动设备的编码器发送至少一个伪响应。可以渲染包括至少一个伪帧在内的一个或多个帧。渲染可以填充编码器的管道。可将包括被填充的管道的一个或多个帧发送给被联接到显示器的解码器。

公开了一种包括被连接到移动设备的处理器的系统。可将处理器配置为接收远程显示器上的触摸输入的指示。远程显示器可以是与移动设备分立的,且触摸输入可以与对显示器上显示的应用的变化相关联。可将处理器配置为确定用于应用的渲染速度。处理器可以基于渲染速度向移动设备的编码器发送至少一个伪帧。处理器可以渲染包括至少一个伪帧在内的一个或多个帧。渲染可以填充编码器的管道。可将处理器配置为将组成被填充的管道的帧发送给被联接到显示器的解码器。

公开了一种以下述方式实施的处理,其中,响应于从信息娱乐系统接收的输入生成至少一个帧。可将渲染速度确定为非恒定的。可将至少一个伪帧以及至少一个帧发送给编码器。编码器可以渲染至少一个伪帧和至少一个帧,以形成一个或多个经过渲染的帧。可将一个或多个经过渲染的帧发送给连接到信息娱乐系统的解码器。信息娱乐系统可以显示一个或多个经过渲染的帧。

在实施方式中,根据本公开主题的系统包括用于响应于从信息娱乐系统接收的输入而生成一个或多个帧的装置。它可包括用于确定渲染速度并非恒定的装置。该系统可包括用于将一个或多个伪帧以及一个或多个帧发送给编码器的装置。该系统可包括用于渲染一个或多个伪帧以及一个或多个帧以形成经过渲染的帧的编码器装置。该系统可包括用于将经过渲染的帧发送给被连接到信息娱乐系统的解码器的装置。信息娱乐系统可包括用于显示经过渲染的帧的装置。

通过考虑以下详细描述、附图和权利要求可以阐明所公开主题的附加特征、优点、以及实施方式,或者显而易见。此外应当理解,前面的发明内容以及后面的详细描述提供了实施方式的示例,并且旨在提供进一步的解释而不限制权利要求的范围。

附图说明

为了提供对所公开主题的进一步理解而包括的附图合并在本说明书中并构成说明书的一部分。附图还示出所公开主题的实施方式,并与详细描述一起用于解释所公开主题的实施方式的原理。不打算通过对于所公开主题的基本理解而言所必须的更多细节以及可以实践它的各种方式来示出结构细节。

图1示出将移动设备用于驱动本文所公开的信息娱乐系统的显示器的示例性系统。

图2是本文所公开的用于在远程显示器上渲染视频帧的示例性处理。

图3是本文所公开的用于在远程显示器上渲染视频帧的示例性处理。

图4是本文所公开的用于生成即将通过编码器渲染并发送给被联接到信息娱乐系统的解码器的一个或多个伪帧的示例性处理。

图5示出根据所公开主题的实施方式的计算机。

图6示出根据所公开主题的实施方式的网络配置。

具体实施方式

用户可通过各种方式与显示器交互,例如通过触摸、按压键、或转动拨号盘。用于用户交互的视频编码器在响应于用户输入(例如触摸)而在显示器上高效渲染视频方面可能有困难。典型的视频编码器作为需要若干帧来形成编码帧的管道操作。在只通过周期性方式来更新显示器的情况下,这可能具有挑战性。如果以恒定速度(例如每秒30帧(“FPS”))渲染视频,那么可以不断地刷新屏幕。如果驱动显示器的装置足够强大,那么它可以没有困难地以恒定速度驱动显示器。但是,如果装置(例如移动设备)不是那么强大,那么仅当必须在显示器上显示改变时,渲染用于显示的帧才是有利的。例如,当用户触摸显示器时,用户经由显示器与之交互的应用可以只更新显示器的一小部分。例如,编码器可以渲染一个或两个帧,并将其发送给连接到显示器的解码器。

图1是将移动设备130用于驱动信息娱乐系统160的显示器140的示例性系统。可将其称为投影架构。移动设备130可以接收信息娱乐系统针对显示分辨率、宽高比、一个或多个按钮、以及一个或多个拨号盘的布局的指示。在投影架构系统中,信息娱乐系统160的其它功能性——例如无线电或车辆的温度控制——同样可通过移动设备130控制。可以利用USB电缆或其他有线或无线连接将移动设备130连接到车辆170(或其他远程系统)。用于移动设备130的编码器120可以利用由于功率限制而具有两个以上的级的管道。例如,三级管道可以等待发送编码帧,直到它有三个帧要发送。因此,信息娱乐系统160的显示器140可能不显示任何变化,除非并且直到编码器120从应用110或其他地方收到要渲染的三个帧。如果只有一个用户界面更新(例如,正被渲染的一个帧),那么显示器140可能不适当地未能反映由于用户交互引起的改变,因为编码器120正在等待发送显示所述变化的经过渲染的帧,直到它有两个以上帧来填充三级管道。一旦管道充满,那么可将经过渲染的视频帧发送给连接到信息娱乐系统160的解码器150。

如本文所述,编码器(例如移动设备)可以基于在信息娱乐显示器上显示的在移动设备上操作的一个或多个应用的渲染速度来确定是否需要伪帧。伪帧可以是指简短和简单的帧指示符,其指令所述系统例如显示先前帧。因为伪帧不大,所以它有助于压缩视频流保持小尺寸和/或更容易传输。在应用不是恒定渲染应用的情况下,伪帧可以帮助推动管道。例如,如果应用正在显示电影并且以30FPS的速度渲染,那么伪帧不一定有用。但是,如果应用正在更新用户界面组件,那么它可以周期性地渲染一个或几个帧,而不是连续性地渲染。这可以被反映为管道延迟问题,并且如本文所述,可通过以下方式解决:发送一个或多个伪帧给信息娱乐系统的显示器和/或与其相连的解码器,用以填充管道的所述未填充级以便为了待被发送的下一组经过渲染的帧而清除所述管道。

可以基于渲染速度确定伪帧是否是必须的。可通过若干方式确定渲染速度。系统可以记录在一个时间段内编码器的吞吐量,并基于吞吐量分配编码器的渲染速度。指引编码器的应用可以提供渲染速度的指示。例如,电影渲染应用可以提供它是恒定渲染应用并且不需要伪帧的指示。类似地,所接收的用户输入的类型可以提供对于响应用户输入来讲可能是必须的渲染量的指示。例如,如果用户在显示器上绘制形状,那么系统可以预料用户的附加输入,等待向编码器发送伪帧。因此,发送伪帧的决定可以基于渲染的模式、输入的类型、以及应用的类型。

公开一种用于在远程显示器上渲染视频帧的处理,如图2中的示例所示。在210,移动设备可以接收远程显示器上的输入的指示。远程显示器可以是集成到车辆中的信息娱乐系统的组件。输入例如可以是远程显示器上的触摸输入。移动设备可以驱动远程显示器。例如,导航应用可以在移动设备上操作,以及除了移动设备的显示器之外或者代替移动设备的显示器,在远程显示器上显示。用户可能选择了远程显示器上的软按钮。可将触摸输入的位置发送给移动设备。应用可以确定触摸输入的位置对应于软按钮,并且它可以与需要对远程显示器的更新的特征相关联。

在220,移动设备可以确定应用的渲染速度。如上所述,可以基于应用、输入的类型、以及渲染的模式来确定渲染速度。应用可以是恒定渲染速度,在这种情况下,移动设备可以响应于从其接收的输入来渲染用于远程显示器的适当帧。如果将渲染速度确定为周期性的或者非恒定的,那么在230,移动设备可以向编码器发送一个或多个伪帧。在一些情况下,可以为移动设备预先配置阈值渲染速度,低于它则装置可以发送伪帧,高于它则装置不发送任何伪帧。可以生成伪帧,并且伪帧可以是向显示器指示其应当利用先前帧或后续帧的可计算代码。

如上所述,管道可包括对应于单个帧的一个或多个级。在240,可通过编码器渲染包括任何伪帧的一个或多个帧。在250,可以提供足够数量的伪帧,从而填充管道,使得移动设备将经过渲染的帧从编码器发送给联接到显示器的解码器。一旦管道中的帧被传输,移动设备就可以清除管道,并且编码器可以再次等待用帧填充管道。所提供的伪帧的数量可以与渲染速度相关。如果移动设备在更新显示器的一部分,那么它可以确定,它必须提供足够数量的帧来填充管道。

图3示出可包括移动设备310以及例如机动车辆信息娱乐系统340的远程显示器360的一个或多个的系统的示例。移动设备310可包括它自己的显示器、处理器322、计算可读存储器324。移动设备310可以同时操作一个或多个应用320。应用320的每一个可以与渲染速度或应用类型相关联。例如,应用320可以根据请求向处理器指示它的渲染速度是多少。应用320可以是与恒定渲染速度相关联的电影类型的应用。移动设备310可包括编码器330,编码器330被配置为在处理器322的指引下渲染一个或多个帧。编码器330例如可以调节它渲染的帧的分辨率、格式、以及压缩。编码器330可以负责生成一个或多个伪帧。例如,它可以生成包括指引远程显示器的解码器以便利用先前帧的计算机可读代码的帧。

可将处理器322配置为接收来自信息娱乐系统340的远程显示器360的输入的指示。如果远程显示器360是触摸屏和/或连接到信息娱乐系统340的按钮或旋钮,那么可以利用触摸来提供输入。可通过有线或无线连接370将输入发送给移动设备310。在移动设备310上操作的应用320可以确定,输入是否需要对远程显示器360的更新。如果需要对远程显示器360的一部分或全部的更新,则移动设备310可以确定用于应用320的渲染速度。如上所述,可以在移动设备310上同时使用一个以上应用320。因此,处理器322可以基于编码器330的活动性而不是单个应用320来确定渲染速度。作为另一个示例,它可以确定用于当前在移动设备310上操作的所有应用的总渲染速度。处理器322可以基于渲染速度向编码器330发送至少一个伪帧。如上所述,编码器330可以负责在一些配置中生成伪帧。可以渲染包括至少一个伪帧的视频帧,从而将编码器的管道完全填充。然后,编码器330可将经过渲染的帧发送给被联接到远程显示器360的解码器350。

在图4中提供其示例的实施方式中,在410,可以响应于从信息娱乐系统接收的输入生成至少一个帧,如上所述。该帧可以对应于联接到信息娱乐系统的远程显示器上显示的用户界面的一部分的更新。用于更新的渲染速度可以低于恒定速度(例如30FPS)或阈值水平(例如低于1FPS)。在420,移动设备可以如上所述确定渲染速度。可将一个或多个伪帧合并到编码器的管道中。伪帧可通过编码器本身生成和/或插入管道中。在一些配置中,在430,伪帧可通过移动设备生成并发送给编码器。在440,编码器可以渲染任何伪帧以及与远程显示器的更新相关联的视频帧。渲染过程可以包括按照正确顺序将帧插入管道中、压缩视频流、格式化视频流(例如,构成流的视频帧)、调节视频帧的分辨率等等。在450,可将经过渲染的帧发送给连接到信息娱乐系统的解码器。解码器可以改编视频帧,用于在信息娱乐系统的远程显示器上呈现。

以上在投影架构系统的背景下描述实施方式,该系统包括移动设备,移动设备驱动在信息娱乐系统上内容的显示以及用户与信息娱乐系统的交互。但是,本文公开的实施方式可以与其他配置兼容。例如,第一移动设备可以驱动在第二移动设备上内容的显示。第二移动设备可以经由第一移动设备与在其显示器上示出的内容交互。作为示例,第一移动设备可以托管视频游戏并且在第二移动设备的显示器以及第一移动设备的显示器上提供对视频游戏的动作的更新。

本公开主题的实施方式可以在各种组件和网络架构中实施以及通过各种组件和网络架构使用。图5是适合于本公开主题的实施方式的示例性计算机20。计算机20包括将计算机20的主要组件互连的总线21,例如中央处理器24,存储器27(通常是RAM,但是也可包括ROM、闪速RAM等等),输入/输出控制器28,用户显示器22——例如经由显示适配器的显示屏,用户输入接口26——其可包括一个或多个控制器以及相关联的用户输入装置例如键盘、鼠标等等并且可以紧密联接到I/O控制器28,固定存储部23——例如硬盘驱动器、闪存、光纤通道网络、SAN装置、SCSI装置等等,以及可操作为控制和接收光盘、闪存驱动器等等的可移动媒体组件。

总线21允许中央处理器24与存储器27之间的数据通信,存储器27可包括只读存储器(ROM)或闪存(未示出)以及随机存取存储器(RAM)(未示出),如上所述。RAM通常是加载操作系统和应用程序的主存储器。除了其他代码之外,ROM或闪速存储器还可包括基本输入-输出系统(BIOS),其控制基本硬件操作,例如与外围组件的交互。驻留在计算机20上的应用通常存储在计算机可读介质上并经由计算机可读介质访问,例如硬盘驱动器(例如固定存储器23)、光驱、软盘、或其他存储介质25。

固定存储器23可以与计算机20集成,也可以是分立的,并通过其他接口来访问。网络接口29可以提供经由电话链接到远程服务器的直接连接、经由互联网服务提供商(ISP)到因特网的直接连接、或经由通过POP(存在点)或其他技术连到因特网的直接网络链路来到远程服务器的直接连接。网络接口29可以利用包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等等的无线技术来提供这种连接。例如,网络接口29可以允许计算机经由一个或多个本地、广域、或其他网络与其他计算机通信,如图6所示。

很多其他装置或组件(未示出)可以按照类似的方式连接(例如,文档扫描仪、数码相机等等)。相反,不需要给出图5中所示的全部组件来实施本公开。可以按照与所示方式不同的方式将组件互连。例如图5所示的计算机的操作在本领域中容易得知,并且在本申请中不详细讨论。可将实施本公开的代码存储在计算机可读存储介质中,例如存储器27、固定存储部23、可移动介质25中的一个或多个,或者存储在远程存储位置上。

图6示出根据所公开主题的实施方式的示例性网络布置。一个或多个客户端10、11——例如本地计算机、智能电话、平板计算装置等等——可以经由一个或多个网络7连接到其他装置。网络可以是本地网络、广域网、因特网、或任何其它合适的通信网络或多个网络,并且可以在包括有线和/或无线网络的任何合适的平台上实施。客户端可以与一个或多个服务器13和/或数据库15通信。装置可通过客户端10、11直接访问,或者一个或多个其他装置可以提供中间访问,例如服务器13提供对数据库15中存储的资源的访问。此外,客户端10、11可以访问远程平台17或者由远程平台17提供的服务,例如云计算布置和服务。远程平台17可包括一个或多个服务器13和/或数据库15。

更一般而言,当前所公开主题的各种实施方式可以包括计算机实施的处理以及用于实现这些处理的装置,或者按照计算机实施的处理以及用于实现这些处理的装置的形式来实施。此外,实施方式可以按照具有计算机程序代码的计算机程序产品的形式来实施,计算机程序代码包含在非短暂性和/或有形介质(例如软盘、CD-ROM、硬盘驱动器、USB(通用串行总线)驱动器、或任何其他机器可读存储介质)中实施的指令,其中,在将计算机程序代码加载到计算机中并通过计算机执行时,计算机变成用于实施所公开主题的实施方式的设备。此外,实施方式可以按照计算机程序代码的形式实施,例如,不管是存储在存储介质中、加载到计算机中和/或通过计算机执行,还是通过某些传输介质传输——例如通过电线或电缆、通过光纤光学器件、或经由电磁辐射,其中在将计算机程序代码加载到计算机中并通过计算机执行时,计算机变成用于实施所公开主题的实施方式的设备。当在通用微处理器上实施时,计算机程序代码片段配置微处理器以创建专用逻辑电路。在一些配置中,存储在计算机可读存储介质上的一组计算机可读指令可通过通用处理器来实施,计算机可读指令可将通用处理器或包含通用处理器的装置变换为被配置为实施或执行指令的专用处理器。实施方式可以利用硬件来实施,硬件可包括处理器——例如通用微处理器和/或专用集成电路(ASIC),其在硬件和/或固件中实施根据所公开主题的实施方式的技术的全部或一部分。可将处理器联接到存储器,例如RAM、ROM、闪存、硬盘、或者能够存储电子信息的任何其它装置。存储器可以存储适于通过处理器执行的指令,以进行根据所公开主题的实施方式的技术。

在所公开主题的实施方式收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供机会控制程序或特征是否收集用户信息(例如,用户提供的输入、用户的地理位置、以及与用户相关联的任何其他类似数据),或者控制是否和/或如何从可能与用户更相关的提供商接收数据。此外,可以在存储或使用某些数据之前通过一种或多种方式来处理这些数据,从而消除个人可识别信息。例如,可以对用户的身份进行处理,从而不能对于用户确定个人可识别信息,或者可以在获得位置信息(例如城市、邮政编码、或者州等级)的地方将用户的地理位置一般化,从而不能确定用户的具体位置。因此,用户可以对如何围绕用户来收集信息以及对如何通过本文公开的系统使用信息来施加控制。

出于解释的目的,已经参考特定实施方式描述了说明书。但是,上面的说明性讨论并非要穷举或者将所公开主题的实施方式限制为所公开的精确形式。考虑到上述教导,很多修改和变化是可能的。选择和描述实现以便解释所公开主题的实施方式的原理及其实际应用,从而使得本领域其他技术人员能够利用这些实施方式以及具有各种修改的各种实施方式,如同可以适用于预期的特定用途。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1