一种动画的调度方法及系统与流程

文档序号:13165893阅读:226来源:国知局
一种动画的调度方法及系统与流程

本发明涉及动画处理技术领域,特别涉及一种动画的调度方法及系统。



背景技术:

夜视动画的每一帧由多个独立的动画叠加而成,在显示时需要将所有动画全部叠加在一起进行显示。现有的夜视动画普遍采用动态加载方法,其具体是当需要显示当前帧时,将当前帧需要显示的动画从rom或者文件加载到ram,再将所有需要显示的动画和视频流合成一帧数据。这样,当夜视动画中包含多个动画时,将需要显示的动画从rom里面读取需要大量时间,使得合成动画的速度可能过慢,进而降低视频流的帧率,影响视频的显示效果。

因而现有技术还有待改进和提高。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的不足,提供一种动画的调度方法及系统,以解决现有夜视动画调度方法存在的加载时间慢,影响视频的显示效果的问题。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种动画的调度方法,其包括:

获取当前动画id,并根据所述动画id在ram上的显示控制数组内查找其所需的所有图片id;

依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址;

若未查找到所述图片地址,则将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组。

所述动画的调度方法,其还包括:

若查找到所述图片,则将所述图片地址添加至所述显示控制数组。

所述动画的调度方法,其中,所述依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址具体包括:

依次在所述显示控制数组中查找每个图片id对应的图片地址,并判断所述图片地址是否为0;

当所述图片地址为0时,在所述存储控制数组内查所述图片id对应的图片地址。

所述动画的调度方法,其中,所述若未查找到所述图片地址,则将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组具体包括:

若未查找到所述图片,则根据所述图片id在rom中查找到所述图片;

判断所述ram的剩余空间是否大于所述图片占用空间;

若大于等于,则将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组。

所述动画的调度方法,其中,所述若未查找到所述图片地址,则将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组还包括:

若小于,则获取所述ram内已显示且后续视频帧对应的显示控制数组未包含的图片id;

将所述获取得到的图片id对应的图片按照图片id的排列顺序进行删除;

将所述图片从rom加载至所述ram,并将所述图片的图片地址添加至所述显示控制数组以及存储控制数组。

一种动画的调度系统,其包括:

获取模块,用于获取当前动画id,并根据所述动画id在ram上的显示控制数组内查找其所需的所有图片id;

查找模块,用于依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址;

加载模块,用于当未查找到所述图片时,将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组。

所述动画的调度系统,其还包括:

添加模块,用于当查找到所述图片时,将所述图片地址添加至所述显示控制数组。

所述动画的调度系统,其中,所述查找模块具体包括:

第一判断单元,用于依次在所述显示控制数组中查找每个图片id对应的图片地址,并判断所述图片地址是否为0;

第一查找单元,用于当所述图片地址为0时,在所述存储控制数组内查所述图片id对应的图片地址。

所述动画的调度系统,其中,所述加载模块具体包括:

第一查找单元,用于当未查找到所述图片时,根据所述图片id在rom中查找到所述图片;

第二判断单元,用于判断所述ram的剩余空间是否大于所述图片占用空间;

第一加载单元,用于当大于等于时,将所述图片从rom加载至ram,并将所述图片地址添加至所述显示控制数组以及存储控制数组。

所述动画的调度方法,其中,所述加载模块还包括:

获取单元,用于当小于时,获取所述ram内已显示且后续视频帧对应的显示控制数组未包含的图片id;

删除单元,用于将所述获取得到的图片id对应的图片按照图片id的排列顺序进行删除;

第二加载单元,用于将所述图片从rom加载至ram,并将所述图片的图片地址添加至所述显示控制数组以及存储控制数组。

有益效果:与现有技术相比,本发明提供了一种动画的调度方法及系统,所述方法包括:获取当前动画id,并根据所述动画id在ram上的显示控制数组内查找其所需的所有图片id;依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址;若未查找到所述图片地址,则将所述图片从rom加载至ram,并将所述图片对应的图片地址添加至所述显示控制数组以及存储控制数组。本发明以图片为考虑对象,减少了重复图片的加载过程,提高了图片加载速度慢,进而提高了视频的显示效果。

附图说明

图1为本发明提供的动画的调度方法较佳实施的流程图。

图2为本发明提供的动画的调度方法中在rom中查找图片的流程图。

图3为本发明提供的动画的调度方法实施例一的流程图。

图4为本发明提供的动画的调度系统的结构原理图。

具体实施方式

本发明提供一种动画的调度方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

请参照图1,图1为本发明提供的动画的调度方法的较佳实施例的流程图。所述方法包括:

s100、获取当前动画id,并根据所述动画id在ram上的显示控制数组内查找其所需的所有图片id。

具体地,所述显示控制数组为预先设置并存储于所述ram上。所述显示控制数组用于存储当前帧所需动画的动画id以及每个动画所需图片的图片id以及图片地址,并且图片地址的初始值为0。所述当前帧所需动画可以为一个也可以为多个。当所述动画为多个时,将多个动画按照覆盖顺序进行标号并排序,并将所述标号作为所述动画的动画id。也就是说,排在后面的动画在播放时覆盖排在其前面的动画。在实际应用中,所述显示控制数组可以采用如表1的形式。值得说明,所述多个动画可以包含相同的图片id。

在本实施例中,所述图片id为预先设置用于标识所述图片的数字,每个图片对应的数字都不同。在所述显示控制数组中,每个动画包含的图片id可以按照图片id从小到大排列,也可以按照图片id从大到小排列等。这里以及下文均以所述图片id按照图片id从小到大排列为例加以说明。

所述图片地址表示所述图片在ram内部的地址,当所述图片地址为0时,表示所述图片未被调用过。值得说明的,不同图片对应的图片id不同,不同动画包含的同一图片的id一致。也就是说,所述图片与图片id之间存在一一对应的关系。

进一步,当绘制当前帧所需动画时,首先从所述显示控制数组内获取当前动画的动画id,在根据所述动画id确定其需要的所有图片的图片id。当然,所述动画可以需要一张图片,也可以需要多张图片。从而,获取到的图片id可以为1个,也可以为多个。

所述ram(randomaccessmemory)为随机存取存储器,在本实施例中,所述ram表示系统内存。

s200、依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址。

具体地,所述存储控制数组为预先在ram上设置的,用于存储动画ram上存储图片的图片id以及图片地址,并且同一图片在所述存储控制数组内存储图片id与显示控制数组存储图片id相同,这样在从显示控制数组内获得到图片id后,可以根据所述图片id从存储控制数组查找到所述图片id以及其对应的图片地址,这样根据所述图片地址可以调用所述图片。在本实施例中,所述存储控制数组可以采用如表2所示的形式。

值得说明的,为了方便根据图片id查找图片地址,所述存储控制数组内的图片是按照图片id从小到大的顺序进行存放。

所述依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址指的是按照所述图片id的排序逐一查找,并且当完成当前图片查找之后,进行下一个图片查找,依次类推直至当前动画所需的所有图片查找完毕。

进一步,所述显示控制数组内存储图片地址,那么在获取所述动画需要的图片id之后还可以包括一个判断过程,所述判断过程用于判断所述显示控制数组内是否存储所述图片id对应的图片地址。这样可以减少根据图片id在存储控制数组内查找图片地址的时间,提高帧刷新的速度。

示例性的,所述依次根据每个图片id在ram上的存储控制数组内查找其对应的图片地址具体可以包括:

s201、依次在所述显示控制数组中查找每个图片id对应的图片地址,并判断所述图片地址是否为0。

具体地,所述依次在所述显示控制数组中查找每个图片id对应的图片地址指的是按照图片id的排列顺序在所述显示控制数组中查找每个图片id对应的图片地址。例如,所述图片id采用1,2,......,n,那么首先查找图片1的图片地址,在图片1的地址确定后,再查询图片2的地址,依次类推直至图片n的图片地址查询完毕。也就是说,所述图片地址的查询以及判断是一个循环的过程,其是从图片1开始一直到当前动画所需图片n全部查询完毕结束,以使得所述显示控制数组内存储所述当前动画所需所有图片的地址,这样在绘制图片时,可以根据显示控制数组内存储的图片地址调用图片以合成动画。

s202、当所述图片地址为0时,在所述存储控制数组内查所述图片id对应的图片地址。

具体地,当所述图片地址为0时,表明显示控制数组内并没有存储所述图片id对应的图片地址。这样需要在存储控制数组内查找所述图片id对应的图片地址,并且在查找到图片时,将所述图片地址添加至显示控制数组,完成当前图片id的查询,并继续按照图片id的排列序列查询下一个图片id,直至所有图片id查询完毕。

s300、若未查找到所述图片地址,则将所述图片从rom加载至所述存储控制数组,并将所述图片对应的图片地址添加至所述显示控制数组。

具体地,所述rom(read-onlymemory)为只读存储器,其是一种只能读出事先所存数据的固态半导体存储器。在本实施例中,所述rom用于存储构成当前帧所述动画的所有图片,并且所述图片也预先设置了图片id,并且rom中存储图片的图片id与所述显示控制数组内存储的图片id采用相同方式设置,并且所述rom中的图片也是按照图片id从小到大的顺序排列。也就是说,所述动画需要图片的图片id是唯一的。

进一步,由于所述存储控制数组设置于所述ram上,而所述ram的存储空间有限,从而在将所述图片从rom加载至所述存储控制数组之前还可以包括一个判断过程,用于判断所述ram空间是否存满,这样可以避免由于ram空间满而造成的图片加载失败,使得动画无法合成。

示例性的,所述若未查找到所述图片,则将所述图片从rom加载至所述存储控制数组,并将所述图片对应的图片地址添加至所述显示控制数组具体包括:

s301、若未查找到所述图片,则根据所述图片id在rom中查找到所述图片。

具体地,在rom中采用折半查找法查找所述图片id,这样可以减少查找的时间。当然,也可以采取其他方法查找,这里就不一一说明。

s302、判断所述ram的剩余空间是否大于所述图片占用空间,若小于,则执行步骤s303,若大于等于,则执行步骤s205;

具体地,首先获取ram的剩余空间以及所述图片需占用的空间,再将两者进行比较以判断所述图片是否可以保存到所述存储控制数组内。

s303、若小于,则获取所述ram内已显示且后续视频帧对应的显示控制数组未包含的图片id。

具体地,所述后续视频帧包含当前帧以后当前帧后需要显示的所有视频帧。由于每一个视频帧需要显示的图片id预先配于显示控制数组内,这样可以根据显示控制数组确定当前帧前已经显示的图片的图片id,以及当前帧以及当前帧后需要显示的所有视频帧需要显示的图片id,这样可以确定已经显示过且后续视频帧不需要显示的图片的图片id。

s304、将所述获取得到的图片id对应的图片按照图片id的排列顺序进行删除。

具体地,所述删除将所述图片从ram中删除,以减少存储控制数组占用的空间,进而释放ram的存储空间。

s305、将所述图片从rom加载至ram,并将所述图片的图片地址添加至所述显示控制数组以及存储控制数组。

具体地,所述图片地址为所述图片在ram中的存储地址,所述图片地址添加至存储控制数组和显示控制数组后,并将所述图片id添加至存储控制数组,所述图片id与所述图片地址关联存储。在将所述图片id添加至所述存储控制数组后,并更新所述存储控制数组内图片id的排列顺序以使得所述存储控制数组内图片id的排列顺序符合图片id从小到大的顺序。在实际应用总,可以才折中查找法将所述图片id以及图片地址添加至所述存储控制数组内,这样在图片id以及图片地址添加至所述存储控制数组的同时,还可以保证存储控制数组内图片id的排列顺序符合图片id从小到大的顺序。

在本发明的一个实施例中,如图2所示,所述若未查找到所述图片,则将所述图片从rom加载至所述ram,并将所述图片对应的图片地址添加至所述显示控制数组以及存储控制数组具体可以包括:

h10、若未查找到所述图片地址,则根据所述图片id在rom中查找到所述图片;

h20、判断所述ram的剩余空间是否大于所述图片占用空间,若小于,则执行步骤h30,若大于等于,则执行步骤h90;

h30、检查当前刷新帧是否整理过ram,若整理过,则进入异常处理,如果未整理过,则执行步骤h40;

h40、获取所述ram内已显示且后续视频帧对应的显示控制数组未包含的图片id对应的图片保存至内存整理数组;

h50、将所述显示控制数组所有的图片地址设置为0;

h60、删除ram内所有图片以使得ram空闲空间为最大;

h70、将内存整理数组内的图片转存至ram,并更新每个图片的图片地址;

h80、将更新后的图片地址更新至显示控制数组以及存储控制数组;

h90、将所述图片从rom加载至ram,并将所述图片的图片地址添加至所述显示控制数组以及存储控制数组。

在本发明的一个实施例中,所述动画的调度方法还包括:

s400、若查找到所述图片地址,则将所述图片对应的图片地址添加至所述显示控制数组。

在本实施例中,当存储控制数组内保存图片地址时,说明ram中保存所述图片,则直接将所述图片地址添加至显示控制数组,无需从rom中加载所述图片,减少了图片调度的时间。

为了进一步理解本发明提供的动画的调度方法,下面结合一个具体实施例加以说明。

实施例一

本实施例提供了一种动画的调度方法,如图3所示,其包括:

s10、获取当前动画id,并根据所述动画id在显示控制数字内查找其所需的所有图片id;

s20、在显示控制数组内按顺序逐一获取每个图片id对应的图片地址;

s30、判断所述图片地址是否为0,如果图片地址不为0,则执行步骤s80,如果图片地址为0,则执行步骤s40;

s40、采用折半查找法在存储控制数组内查找所述图片id,如果查找到,则执行步骤s50,如果未查找到,则执行步骤s60;

s50、将存储控制数组存储的所述图片id对应的图片地址添加至显示控制数组,并执行步骤s80;

s60、根据所述图片id在rom中查找所述图片,并将查找到的图片加载到ram;

s70、将所述图片地址添加至所述显示控制数组以及存储控制数组,并执行步骤s80;

s80、判断所述图片id是否为最后一个,若为最后一个,则结束,若不为最后一个,则执行步骤s10。

在本实施例中,按照图片id的排列顺序逐一查询所述图片id对应的图片地址,并采用折中方法在存储控制数组内查找图片id,减少了图片id查找的时间,提高了图片调度的效率。

本实施例中,所述ram的空间预设设定,并且所述ram可以同时存放当前帧需要显示图片的最大数目,这样可以避免ram空间不够存放所有需要显示的图片而产生发生异常处理。同时,在动画调度过程红,还对ram空间进行整理,在整理时将需要显示的图片放置于所述内存整理数组。这样所剩余的空间就是被删掉的不需要显示的图片数据,可以减少ram空间的利用。

本发明还提供了一种动画的调度系统,如图4所示,其包括:

获取模块100,用于获取当前动画id,并根据所述动画id在ram的显示控制数组内查找其所需的所有图片id;

查找模块200,用于依次根据每个图片id在ram的存储控制数组内查找其对应的图片;

加载模块300,用于当未查找到所述图片时,将所述图片从rom加载至所述存储控制数组,并将所述图片对应的图片地址添加至所述显示控制数组。

所述动画的调度系统,其还包括:

添加模块,用于当查找到所述图片时,将所述图片对应的图片地址添加至所述显示控制数组。

所述动画的调度系统,其中,所述查找模块具体包括:

第一判断单元,用于依次在所述显示控制数组中查找每个图片id对应的图片地址,并判断所述图片地址是否为0;

查找单元,用于当所述图片地址为0时,在所述存储控制数组内查找所述图片id对应的图片。

所述动画的调度系统,其中,所述加载模块具体包括:

第一获取单元,用于当未查找到所述图片时,根据所述图片id在rom中获取所述图片;

第二判断单元,用于判断所述ram的剩余空间是否大于所述图片占用空间;

第一加载单元,用于当大于等于时,将所述图片从rom加载至所述存储控制数组,并将所述图片的图片地址添加至所述显示控制数组。

所述动画的调度方法,其中,所述加载模块还包括:

获取单元,用于当小于时,获取所述ram内已显示且后续视频帧对应的显示控制数组未包含的图片id;

删除单元,用于将所述获取得到的图片id对应的图片按照图片id的排列顺序进行删除;

第二加载单元,用于将所述图片从rom加载至所述存储控制数组,并将所述图片的图片地址添加至所述显示控制数组

上述动画的调度系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。

在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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