一种序列帧图像播放的硬件资源分配方法与流程

文档序号:14943058发布日期:2018-07-13 21:34

本发明属于计算机领域,属于一种序列帧图像播放的硬件资源分配方法。



背景技术:

目前,现有技术方案是直接将序列帧图像解码加入内存,或者播放时实时解码图像,要嘛内存很高,要嘛CPU很高。

对CPU和内存的占用较高,特别时智能移动设备有限的硬件资源下,播放序列帧较多尺寸较大的图像时会出现内存或CPU占用很高的情况,使手机发烫和卡顿。



技术实现要素:

本发明所要解决的技术问题是提供一种序列帧图像播放的硬件资源分配方法,能够解决现有技术存在的问题。

本发明解决上述技术问题所采取的技术方案如下:

一种序列帧图像播放的硬件资源分配方法,包括:

步骤1)设定内存占用阈值和CPU占用阈值以及播放策略;

步骤2)获取要播放的序列帧图像文件,该序列帧文件包括多帧图像;

步骤3)将每一帧图像依此输入CPU中进行解码,并分别获取在播放所述序列帧图像文件时,需要占用的内存占用情况;

步骤4)根据内存占用情况和设定的阈值进行对比,并按照预设的策略动态分配图像的播放方式。

优选的是,步骤4)中,如图像占用内存GIF_Memory>空闲内存Free_Memory–内存阈值Memory_Threshold,则基于CPU实时解码的方式播放此序列帧图像文件。

优选的是,步骤4)中,如果图像占用内存GIF_Memory<空闲内存Free_Memory-内存阈值Memory_Threshold,则采用内存加载方式进行播放。

优选的是,基于CPU实时解码的方式时,通过CPU实时循环解码每一帧图像,内存中只有当前帧的图像。

优选的是,采用内存加载方式进行播放,包括:将序列帧图像解码后全部加入内存,播放时将不再产生CPU解码消耗。

优选的是,图像占用内存GIF_Memory=宽*高*每个像素占用的字节数*帧数,由此计算出此图像全部加载进内存需要占用的内存空间大小。

优选的是,还包括:获取播放当前帧图像的内存和CPU占用情况,并按照预设的策略实时调整图像的播放方式。

优选的是,当空闲内存Free_Memory<内存阈值Memory_Threshold且CPU占用CPU_Used<CPU阈值CPU_Threshold时,则对序列帧图像占用的内存进行释放同时切换到CPU播放模式。

优选的是,当空闲内存Free_Memory>内存阈值Memory_Threshold且CPU占用CPU_Used>CPU阈值CPU_Threshold时,则判断是否满足切换条件;如满足切换条件,则切换到内存模式,即将序列帧图像解码后全部加入内存,播放时将不再产生CPU解码消耗。

优选的是,当空闲内存Free_Memory<内存阈值Memory_Threshold且CPU占用CPU_Used>CPU阈值CPU_Threshold时,则切换到CPU播放模式,通过CPU实时循环解码每一帧图像,内存中只有当前帧的图像。

本发明通过监听CPU和内存的使用情况,动态调整序列帧图像的播放策略,达到资源分配最优化,具有很好的效果。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。其中,

图1是本发明序列帧图像播放的硬件资源分配方法的示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

序列帧图像:由一组有序的一帧一帧图像单元组成的图像文件,常见的有GIF格式图像。

本发明要解决的技术问题:

1、解决移动设备播放序列帧较多尺寸较大的图像时的综合性能优化。

2、减少播放序列帧图像时移动设备耗电和发烫情况。

如图1所示,一种序列帧图像播放的硬件资源分配方法,包括:

步骤1)设定内存占用阈值和CPU占用阈值以及播放策略;

步骤2)获取要播放的序列帧图像文件,该序列帧文件包括多帧图像;

步骤3)将每一帧图像依此输入CPU中进行解码,并分别获取在播放所述序列帧图像文件时,需要占用的内存占用情况;

步骤4)根据内存占用情况和设定的阈值进行对比,并按照预设的策略动态分配图像的播放方式。

优选的是,步骤4)中,如图像占用内存GIF_Memory>空闲内存Free_Memory–内存阈值Memory_Threshold,则基于CPU实时解码的方式播放此序列帧图像文件。

优选的是,步骤4)中,如果图像占用内存GIF_Memory<空闲内存Free_Memory-内存阈值Memory_Threshold,则采用内存加载方式进行播放。

优选的是,基于CPU实时解码的方式时,通过CPU实时循环解码每一帧图像,内存中只有当前帧的图像。

优选的是,采用内存加载方式进行播放,包括:将序列帧图像解码后全部加入内存,播放时将不再产生CPU解码消耗。

优选的是,图像占用内存GIF_Memory=宽*高*每个像素占用的字节数*帧数,由此计算出此图像全部加载进内存需要占用的内存空间大小。

优选的是,还包括:获取播放当前帧图像的内存和CPU占用情况,并按照预设的策略实时调整图像的播放方式。

优选的是,当空闲内存Free_Memory<内存阈值Memory_Threshold且CPU占用CPU_Used<CPU阈值CPU_Threshold时,则对序列帧图像占用的内存进行释放同时切换到CPU播放模式。

优选的是,当空闲内存Free_Memory>内存阈值Memory_Threshold且CPU占用CPU_Used>CPU阈值CPU_Threshold时,则判断是否满足切换条件;如满足切换条件,则切换到内存模式,即将序列帧图像解码后全部加入内存,播放时将不再产生CPU解码消耗。

优选的是,当空闲内存Free_Memory<内存阈值Memory_Threshold且CPU占用CPU_Used>CPU阈值CPU_Threshold时,则切换到CPU播放模式,通过CPU实时循环解码每一帧图像,内存中只有当前帧的图像。

本发明通过监听CPU和内存的使用情况,动态调整序列帧图像的播放策略,达到资源分配最优化,具有很好的效果。

在一个详细实施例中,具体包括:

1、假设需要播放一个宽高为1024*1024且含有64帧图像的GIF文件

2、如果将GIF文件解码,图像全部存入内存中用于播放,此时需要占用的内存为:Memory=宽*高*每个像素占用的字节数*帧数=1024*1024*4*64=256MB

即将占用256兆字节内存。此大小的内存对于移动设备来说很,可能会导致应用因为内存占用满而崩溃。

本方案中有三种序列帧图像的播放模式:

模式1:CPU播放模式,即通过CPU实时循环解码每一帧图像,内存中只有当前帧的图像。此模式将对CPU产生一定的消耗;

模式2:内存模式,即将序列帧图像解码后全部加入内存,播放时将不再产生CPU解码消耗,可有效降低CPU和电量的消耗。

本方案通过监测CPU和内存的使用情况,动态控制序列帧图像的加载方式,达到资源的最优化处理。

1)通过系统提供的方法可以对系统CPU和内存的使用情况进行监听,监听CPU占用率CPU_Used和设备内存空闲大小Free_Memory。

2)设定2个阈值CPU_Threshold=80%表示CPU占用为80%、Memory_Threshold=50表示设备剩余内存空闲50,单位MB。

3)加载序列帧图像前,可以通过公式:GIF_Memory=宽*高*每个像素占用的字节数*帧数.计算出此图像全部加载进内存需要占用的内存空间大小。

4)比较GIF_Memory与Free_Memory:

a、如果GIF_Memory>Free_Memory-Memory_Threshold,则说明剩余的内存已不能满足此序列帧图像的全部加载,只能采用CPU实时解码的方式播放此序列帧图像。

b、如果GIF_Memory<Free_Memory-Memory_Threshold,则说明剩余的内存满足此序列帧图像的全部加载,采用内存加载方式,减少CPU的消耗。

5)序列帧图像不管以哪种方式开始播放后,在CPU和内存的监听回调里,做下面的计算:

a、当Free_Memory<Memory_Threshold且CPU_Used<CPU_Threshold时,即空闲内存小于我们设定的阈值而且CPU占用未达到阈值时,此时内存占用较高,需要对序列帧图像占用的内存进行释放同时切换到CPU播放模式。

b、当Free_Memory>Memory_Threshold且CPU_Used>CPU_Threshold时,即空闲内存大于我们设定的阈值而且CPU占用超过阈值时,此时CPU占用较高,需要切换到内存模式,减少CPU的消耗。但在切换之前先进行4)的运算,看是否满足切换条件

c、当Free_Memory<Memory_Threshold且CPU_Used>CPU_Threshold时,即空闲内存小于我们设定的阈值而且CPU占用超过阈值时,此时CPU和内存都占有较高,将切换到CPU播放模式,因为内存继续占用将可能会导致程序崩溃。

本发明的有益效果:合理进行硬件资源分配,使应用更流畅,减少CPU和电量的消耗。

需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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