移动操作系统中的视频帧处理的渲染方法技术方案

技术编号:12057093 阅读:73 留言:0更新日期:2015-09-16 20:09
一种渲染视频帧的方法,通过一具有软件堆栈的计算装置进行,软件堆栈具有一应用层和一内核层,包括若干步骤。首先,初始化一个系统参考时间。等待一个内核层的中断信号的触发。其次,根据来自应用层的渲染函数确定是否更新系统参考时间。根据已确定的系统参考时间和下一个视频帧,通过计算装置渲染内核层中的下一个视频帧。初始化步骤之后的步骤和开始等待步骤是递归执行的。

【技术实现步骤摘要】

本专利技术涉及视频帧处理,更具体的,涉及通过一计算设备运行一移动操作系统来定时控制以植染视频帧。
技术介绍
计算设备包括一移动操作系统,例如,Android,黑莓,1S系统,微软操作系统,火狐OS,旗鱼OS,Symbian和Ubuntu的触摸操作系统,等等,可以运行多种应用程序(app),例如,视频游戏应用程序,视频流应用程序,新闻阅读器应用程序,等等。该移动操作系可以安装到计算设备,例如,智能手机,平板电脑,笔记本电脑,个人数字助理,机顶盒,便携式电脑,等等。这些应用软件可以在比移动操作系统更高的软件层上运行。由于应用程序的复杂性和应用程序的视频处理的数量之多,计算设备及时产生视频图形已成为问题,尤其,从媒体框架到应用层提供的更大的灵活性以允许视频解码器的使用并控制来自用户空间级别的视频帧渲染时间。具体地,计算设备可能无法满足视频解码和为应用程序及时渲染视频的请求,从而引起帧的跳跃。例如,运行在计算设备上的游戏应用程序可以由C++、Java等编程语言编写。游戏应用程序运行在一应用层,但最终采用内核层函数调用来执行游戏应用程序的视频图形解码和渲染。所述计算设备通过该计算设备的视频解码器处理视频解码函数调用。解码的视频帧存储在所述计算设备的存储器中,并在选定的时间通过该计算设备的渲染模块渲染。所述计算设备的处理器(例如,图形处理单元(GPU)或其它计算机处理器)均可以用于实现解码器和渲染模块。然而,由于处理器被淹没于其他计算线程,处理器可能不能以适当的速率解码和渲染视频帧以供计算设备的显示器正确显示视频帧。当这些视频数据被显示在显示器上时可能会导致帧跳跃。帧跳跃进一步由延长的时间量加剧,它需要从应用程序层渲染函数调用来最终到达内核层。典型的,游戏应用程序用来自媒体框架层提供的应用程序编程接口(“API”)发送最新的将要渲染的帧到软件桟层的较低一层(例如内核层),以在内核层执行实际渲染。然而,如果视频渲染落后于视频帧要被渲染的时间,则视频帧可能不在适当的时间渲染并导致视频帧跳跃。视频帧的跳跃会导致非平滑的视频播放,用户观看时,不希望这样。因此,希望提供一种通过具有移动操作系统的计算设备来定时控制视频帧渲染以减少或消除帧跳跃的方法、装置和系统。专利技术摘要简单地说,本公开涉及一种通过一具有一软件桟和一应用程序层和一个内核层的计算设备渲染视频帧的方法,包括以下步骤:初始化一个系统参考时间;等待直到一中断信号触发在内核层;根据应用程序层的渲染函数确定是否更新系统参考时间;以及根据确定的系统参考时间和下一个视频帧通过计算设备在内核层渲染下一个视频帧,其中初始化步骤后的步骤和开始等待步骤递归执行。【附图说明】本公开公开的上述事项和其他方面可以更好地结合以下实施例的详细描述和附图理解。图1示出了在一计算设备上解码和渲染视频数据的框图。图2示出了计算设备用于解码和渲染视频数据的内核空间的隧道模式。图3示出了具有移动操作系统的计算设备的软件桟的框图,如安卓系统。图4示出了通过移动操作系统的应用程序以解码和渲染视频数据的流程图。图5示出了一个在用户控件和内核空间用于解码和渲染视频数据的混合系统的框图。图6示出了一个在用户空间和内核空间用于解码和渲染视频数据的混合系统的流程图。图7示出了用于确定何时停止渲染视频帧的时序图。【具体实施方式】在以下具体实施例的详细描述中,参照附图,这些附图形成其一部分,并且通过附图示出【具体实施方式】以使专利技术可以被实施。本公开提供一种方法、装置和系统涉及通过计算设备的一应用程序运行在移动操作系统中定时控制渲染视频帧。在应用程序具有从用户空间控制渲染视频帧的情况下,赋予应用程序更大的时间窗口(或更多的剩余时间),以满足对视频渲染的关键定时的需求。隧道模式用于视频渲染,这是一个内核层的进程,按照隧道模式不断渲染帧有助于应用程序应用在用户空间级别。然而,当来自应用程序的渲染函数调用的时间标记大于一内核级的系统参考时间的预定义阈值,在隧道模式下的视频帧的渲染,可以停止或暂停。以这种方式,定时控制渲染视频帧可以使用混合方法来实现,其中在隧道模式和用户空间应用程序编程接口(“API”)的渲染功能可以被同时使用在所述计算设备。下面的附图和详细说明将有助于解释本公开及其核心思想。图1示出了在一计算设备上解码和渲染视频数据的框图。计算设备可包括一个解码器10,渲染器12,一个视频帧缓冲器14 (或其它存储器装置),以及用于解码和渲染视频数据8到显示器的显示接口 16(未示出)。显示器可以是连接到该计算设备的外部显示器或该计算设备的一内部显示器。数据8可以输入到解码器10。解码器10将视频数据解码成视频帧。所述视频帧可存储在计算设备的一个视频帧缓冲器14 (或其他存储器),以用于后续渲染或者直接传递到渲染器12以渲染。渲染器12渲染视频帧通过显示接口 16传递给显示器。视频帧必须在适当的时机被渲染以正确地显示且流畅的视频回放。显示接口 16可以在高清晰度多媒体接口(“HDMI”)提供视频帧,以及模拟分量视频输出接口,和/或渲染视频帧的其他视频显示模式以使其正确显示。图2示出了计算设备的内核空间的隧道模式中的用于解码和显示视频数据的数据工作流程图。解码器20将视频数据生成解码视频帧。解码的视频帧被放置在计算装置的存储器中。图形处理单元(“GPU”),未示出,可以应用变换和构成解码视频帧到视频帧缓冲器22。所述视频帧之后可以在适当的时机从视频帧缓冲器22被渲染以通过视频显示输出驱动器24显示。视频显示输出驱动器24可以读取视频帧22以输出到合适的输出显示端口。图3示出了具有移动操作系统的计算设备的软件栈的图。所述计算设备可具有安装和运行在计算设备上的移动操作系统。计算设备的软件堆栈30包括软件应用程序32,一个Android的媒体编码解码器API 34,一个媒体框架36 (例如,一个Android媒体框架),Linux内核38,和编码解码器组件40。Linux内核38是该计算设备的大多数软件的底层以提供类似进程管理的基础系统功能,存储器管理,设备管理(例如,照相机,键盘,显示器等),设备驱动器,网络,和/或其它系统功能。媒体框架36可以是倒数第二层,为专门设计和优化安卓系统提供一虚拟机器。框架传媒36还具有核心库,可以使Android应用程序开发人员使用标准的Java语言编写应用软件。该Android媒体编码解码器API34层允许在软件应用程序32层的应用程序访问已安装在系统中的编码解码器组件40并控制输出的渲染。软件应用程序32层包括在计算设备上运行的应用程序。编码解码器组件40作为具有两个部件的接口。第一部分在连接到媒体框架36的用户空间内及第二部分是在内核空间。当应用程序通过媒体编码器API34发送数据(例如,排队输入数据等)给编码解码器组件40时,编码解码器组件40与媒体框架36的本地层和任何第三方库交界。数据从编码解码器组件40中流到内核层中的解码器部件和其它部件。从软件的角度来看,一个应用程序使用应用程序编程接口与软件栈的较低层通信。例如,Android系统使用媒体编码解码器API。应用层主要是用Java编程语言。本地层(或媒体框架层36)通常用C语言编程。Android的媒体框架层是一本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104915200.html" title="移动操作系统中的视频帧处理的渲染方法原文来自X技术">移动操作系统中的视频帧处理的渲染方法</a>

【技术保护点】
一种用于渲染视频帧的方法,其特征在于,通过包括软件桟、应用层和内核层的计算设备,包括以下步骤:初始化系统参考时间;等待直到内核层触发一个中断信号;根据来自应用层渲染函数确定是否更新所述系统参考时间;及计算设备根据确定的系统参考时间和下一视频帧在内核层渲染下一视频帧,;其中初始化步骤之后的步骤递归执行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:姚挺
申请(专利权)人:晶晨半导体上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1