本技术涉及图像处理技术,尤其涉及一种动图播放方法、装置及存储介质。
背景技术:
1、信息流应用中,图片是展现内容最直观有效的方式。图片展示包括动态图片(简称动图)和静态图片(简称静图),动图是由多帧静图组成,相比静图能够提供更多的信息。动图近似于一种小视频,生产简单,数据量小,流行性广,对用户具有更大的吸引力。
2、目前,在以内容为主的社交应用程序(application,app)中,例如短视频、直播、社区等app中,存在着大量的动图。常见的动图有图形交换格式(graphics interchangeformat,gif),webp等,以webp为例,现有客户端播放webp时,通常会为每个webp图像文件单独创建一个cadisplaylink对象,并边解析缓存下一帧,边渲染当前帧来实现动图的播放。
3、然而,当客户端存在多个动图(例如多个webp图像)需要共同播放时,现有动图播放方法往往会出现较高的动图播放混合帧率,导致app渲染帧率较大,从而使得客户端资源(例如图形处理器(graphics processing unit,gpu))消耗较高。
技术实现思路
1、为解决现有技术中存在的问题,本技术提供一种动图播放方法、装置及存储介质。
2、第一方面,本技术实施例提供一种动图播放方法,所述方法应用于动图管理器,所述动图管理器用于对客户端待播放的多个动图进行管理,所述方法包括:
3、调整所述多个动图的相位,以调整所述多个动图对应的混合渲染帧率;
4、将所述多个动图发送至所述客户端的图形处理器,以使所述图形处理器对所述多个动图进行渲染播放。
5、在一种可能的实现方式中,所述调整所述多个动图的相位,以调整所述多个动图对应的混合渲染帧率,包括:
6、将所述多个动图的初始相位对齐,以调整所述多个动图对应的混合渲染帧率。
7、在一种可能的实现方式中,将所述多个动图的初始相位对齐,包括:
8、确定预设相位;
9、分别将所述多个动图的初始相位与所述预设相位对齐。
10、在一种可能的实现方式中,所述方法还包括:
11、确定所述多个动图中的各个动图对应的渲染帧时刻;
12、将所述多个动图发送至所述客户端的图形处理器,以使所述图形处理器对所述多个动图进行渲染播放,包括:将所述多个动图发送至所述客户端的图形处理器,以使所述图形处理器按照各个动图对应的渲染帧时刻对所述各个动图进行渲染播放。
13、在一种可能的实现方式中,所述确定所述各个动图对应的渲染帧时刻,包括:
14、对于所述多个动图中的任一动图,在所述任一动图的渲染帧率属于参考渲染帧率范围的情况下,基于所述任一动图的对齐后的初始相位和所述渲染帧率,确定所述任一动图对应的渲染帧时刻。
15、在一种可能的实现方式中,所述确定所述各个动图对应的渲染帧时刻,包括:
16、对于所述多个动图中的任一动图,在所述任一动图的渲染帧率不属于参考渲染帧率范围的情况下,基于所述图形处理器的帧时刻、所述图形处理器单位时间内的总刷新次数、所述任一动图的图像帧的帧序号及所述任一动图的渲染帧率,确定所述任一动图对应的渲染帧时刻。
17、在一种可能的实现方式中,所述基于所述任一动图对应的图形处理器的帧时刻、所述图形处理器单位时间内的总刷新次数、所述任一动图的图像帧的帧序号及所述任一动图的渲染帧率,确定所述任一动图对应的渲染帧时刻,包括:
18、对于所述任一动图的任一图像帧,根据在所述图形处理器的任一帧时刻及所述图形处理器单位时间内的总刷新次数确定第一比值;
19、根据所述任一图像帧的帧序号及所述任一动图的渲染帧率确定第二比值;
20、若所述第一比值大于或等于所述第二比值,则基于所述图形处理器的任一帧时刻,确定所述任一动图对应的渲染帧时刻。
21、第二方面,本技术实施例提供一种动图播放装置,所述装置应用于动图管理器,所述动图管理器用于对客户端待播放的多个动图进行管理,所述装置包括:
22、调整模块,用于调整所述多个动图的相位,以调整所述多个动图对应的混合渲染帧率;
23、发送模块,用于将所述多个动图发送至所述客户端的图形处理器,以使所述图形处理器对所述多个动图进行渲染播放。
24、在一种可能的实现方式中,所述调整模块,具体用于:
25、将所述多个动图的初始相位对齐,以调整所述多个动图对应的混合渲染帧率。
26、在一种可能的实现方式中,所述调整模块,具体用于:
27、确定预设相位;
28、分别将所述多个动图的初始相位与所述预设相位对齐。
29、在一种可能的实现方式中,所述装置还包括:
30、确定模块,用于确定所述多个动图中的各个动图对应的渲染帧时刻;
31、所述发送模块,用于将所述多个动图发送至所述客户端的图形处理器,以使所述图形处理器按照各个动图对应的渲染帧时刻对所述各个动图进行渲染播放。
32、在一种可能的实现方式中,所述确定模块,具体用于:
33、对于所述多个动图中的任一动图,在所述任一动图的渲染帧率属于参考渲染帧率范围的情况下,基于所述任一动图的对齐后的初始相位和所述渲染帧率,确定所述任一动图对应的渲染帧时刻。
34、在一种可能的实现方式中,所述确定模块,具体用于:
35、对于所述多个动图中的任一动图,在所述任一动图的渲染帧率不属于参考渲染帧率范围的情况下,基于所述图形处理器的帧时刻、所述图形处理器单位时间内的总刷新次数、所述任一动图的图像帧的帧序号及所述任一动图的渲染帧率,确定所述任一动图对应的渲染帧时刻。
36、在一种可能的实现方式中,所述确定模块,具体用于:
37、对于所述任一动图的任一图像帧,根据在所述图形处理器的任一帧时刻及所述图形处理器单位时间内的总刷新次数确定第一比值;
38、根据所述任一图像帧的帧序号及所述任一动图的渲染帧率确定第二比值;
39、若所述第一比值大于或等于所述第二比值,则基于所述图形处理器的任一帧时刻,确定所述任一动图对应的渲染帧时刻。
40、第三方面,本技术实施例提供一种动图播放系统,包括动图管理器和图形处理器,所述动图管理器用于对客户端待播放的多个动图进行管理,所述图形处理器设置在所述客户端;
41、所述动图管理器用于调整所述多个动图的相位,以调整所述多个动图对应的混合渲染帧率,并将所述多个动图发送至所述图形处理器;
42、所述图形处理器用于对所述多个动图进行渲染播放。
43、第四方面,本技术实施例提供一种动图管理器,包括:
44、处理器;
45、存储器;以及
46、计算机程序;
47、其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
48、第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
49、第六方面,本技术实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行第一方面所述的方法。
50、本技术实施例提供的动图播放方法、装置及存储介质,该方法通过一个动图管理器对客户端待播放的多个动图进行统一管理,即在客户端需要同时播放多个动图时,调整多个动图的相位,以调整多个动图对应的混合渲染帧率,进而,将多个动图发送至客户端的图形处理器,以使图形处理器对多个动图进行渲染播放,解决现有多个动图共同播放时出现较高的动图播放混合帧率,导致app渲染帧率较大,从而使得客户端资源消耗较高的问题。而且,本技术实施例由于降低动图播放对客户端资源的消耗,进一步解决了播放大量动图时的顿卡或加载速度过慢的问题,提升了动图播放质量。