本发明涉及云手机,尤其是涉及一种安卓云手机vsync优化方法。
背景技术:
1、安卓图形系统每帧图像的渲染、合成都是由垂直同步信号(vertical sync,简称vsync)驱动的,传统安卓真机的vsync信号通常来源于底层硬件,而安卓云手机的vsync信号则是通过软件模拟出来的,和底层显示模块(视频编码)之间缺乏同步,且两者之间的频率存在较大差异,例如安卓vsync频率通常为60hz,而视频编帧率通常只有30fps,这使得安卓云手机所渲染、合成的帧存在编码不及时甚至被“丢弃”的情况,比如视频编码模块没来得及取图编码安卓就产生了新的帧,从而导致旧帧无法被编码并送到客户端进行显示,从客户端的角度看,该帧相当于丢了。
2、上述中的现有技术方案存在以下缺陷:安卓云手机的vsync信号则是通过软件模拟出来的,和底层显示模块,即视频编码之间缺乏同步,且两者之间的频率存在较大差异,不仅影响了显示流畅度,还浪费了宝贵的算力。
技术实现思路
1、本发明的目的是提供一种可以降低时延,还可以节省算力的安卓云手机vsync优化方法。
2、为实现上述目的,本发明提供了如下技术方案:
3、一种安卓云手机vsync优化方法,包括以下步骤:
4、步骤一:开始初始化;
5、步骤二:产生vsync-enc;
6、步骤三:调整vsync基准;
7、步骤四:设置vsync时间;
8、步骤五:vsync信号分类;
9、步骤六:产生vsync信号;
10、步骤七:渲染与合成;
11、步骤八:编码与送显。
12、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤一中的开始初始化,具体包括有:
13、设置vsync-ref=当前时间,设置偏移倍数n=0,vsync-offset=16.67ms。
14、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤二中的产生vsync-enc,具体包括有:
15、视频编码器在每帧编码开始时向安卓系统发出vsync-enc信号。
16、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤三中的调整vsync基准,具体包括有:
17、当视频编码器产生vsync-enc时设置vsync-ref=vsync-enc,n=0,否则直接进入步骤四。
18、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤四中的设置vsync时间,具体包括有:
19、vsync-ref分别加上n倍和n+1倍的偏移vsync-offset得到vsync-app和vsync-sf。
20、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤五中的vsync信号分类,具体包括有:
21、vsync-ref加上0倍偏移vsync-offset得到vsync-app类型标记为real,1倍及以上的为fake;vsync-ref加上1倍偏移vsync-offset得到vsync-sf类型标记为real,0倍、2陪及以上的为fake。
22、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤六中的产生vsync信号,具体包括有:
23、等至前面设置的vsync时间,启动渲染与合成后设置n=n+1,然后跳转步骤四进入下一个vsync循环。
24、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤七中的渲染与合成,具体包括有:
25、choreographer和surfaceflinger收到fake类型vsync信号不作具体的渲染或合成操作,只更新相关状态;收到real类型vsync信号则启动真正的渲染或合成计算。
26、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:所述步骤八中的编码与送显,具体包括有:
27、视频编码模块启动编码和送显流程,同时产生vsync-enc信号,然后跳转到步骤三。
28、作为本发明所述一种安卓云手机vsync优化方法的一种优选方案,其中:具体方法还包括有:
29、将视频编码的周期信号定义为vsync-enc,以此为基准来校准vsync-app和vsync-sf,三者之间保持固定的偏移量,同时将其分为real和fake两个类型,前者会触发渲染、合成以及编码送显,而后者对应的帧会被视频编码器忽略,因此无需执行真正的渲染、合成操作。
30、综上,本发明的有益技术效果为:
31、1.本发明以视频编码时间为基准校准安卓vsync,可应用于安卓云手机,减少非必要渲染、合成计算,降低从渲染、合成到视频编码的时延;
32、2.本发明将vsync划分fake和real两大类型,前者不触发真正的渲染、合成计算,节省算力。
1.一种安卓云手机vsync优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤一中的开始初始化,具体包括有:
3.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤二中的产生vsync-enc,具体包括有:
4.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤三中的调整vsync基准,具体包括有:
5.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤四中的设置vsync时间,具体包括有:
6.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤五中的vsync信号分类,具体包括有:
7.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤六中的产生vsync信号,具体包括有:
8.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤七中的渲染与合成,具体包括有:
9.根据权利要求1所述的安卓云手机vsync优化方法,其特征在于,所述步骤八中的编码与送显,具体包括有:
10.一种如权利要求1-9任意一项所述的一种安卓云手机vsync优化方法,其特征在于,具体方法还包括有: