实施例2
基于同一个发明构思,在本发明实施例中,进一步对上述实施例1中所记载的“确定所述原始帧数据中的可计算帧数据”如何具体实现进项详细说明。
步骤12中记载了“确定所述原始帧数据中的可计算帧数据。其中,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据。”
下面详细描述如何确定所述可计算帧数据。图2为本发明实施例提供的一种确定可计算帧数据的方法的流程示意图。所述方法可以如下所示。
将所述原始帧数据作为输入帧数据第一次执行如下步骤21-24确定所述可计算帧数据:
步骤21:确定所述输入帧数据中的非边缘各帧数据对应的压缩数据。
其中,所述输入帧数据中的任一非边缘帧数据对应的压缩数据为缺少该帧数据的所述输入帧数据。
例如:0.3秒的动画对应的原始帧数据中包含10帧数据,所述10帧数据为时间间隔相等的连续帧数据,相邻两帧数据之间的时间间隔为1/30秒。
将包含10帧数据的所述原始帧数据作为输入帧数据执行步骤21的操作,确定所述输入帧数据中的非边缘各帧数据对应的压缩数据。
所述非边缘各帧数据分别为所述原始帧数据中的第2-9帧数据。
所述输入帧数据中的任一非边缘帧数据对应的所述压缩数据为缺少该帧数据的所述输入帧数据,因此:
所述第2帧数据对应的压缩数据为“第1帧数据、第3-10帧数据”;
所述第3帧数据对应的压缩数据为“第1-2帧数据、第4-10帧数据”;
所述第4帧数据对应的压缩数据为“第1-3帧数据、第5-10帧数据”;
以此类推,分别确定所述第2-9帧数据中的各帧数据对应的压缩数据。
步骤22:确定所述非边缘各帧数据对应的计算数据与所述原始帧数据之间的误差值。
其中,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的。
优选地,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的,包括:
对所述任一非边缘帧数据对应的所述压缩数据执行线性插值操作,得到该帧数据对应的计算数据。
仍以上述0.3秒的动画为例,所述0.3秒的动画对应的所述原始帧数据中包含第1-10帧数据,所述非边缘各帧数据分别为所述原始帧数据中的第2-9帧数据。
确定所述非边缘各帧数据对应的计算数据,即确定所述第2-9帧数据的计算数据。
所述第2帧数据对应的压缩数据为“第1帧数据、第3-10帧数据”。
对与所述第2帧数据相邻的所述第1帧数据和所述第3帧数据执行线性插值操作,确定所述第2帧数据对应的第2计算帧数据。
因此,所述第2帧数据对应的计算数据为“第1帧数据、第2计算帧数据、第3-10帧数据”。
进而,确定所述第2帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定所述“第1帧数据、第2计算帧数据、第3-10帧数据”与所述“第1-10帧数据”之间的误差值。
所述第3帧数据对应的压缩数据为“第1-2帧数据、第4-10帧数据”。
根据与所述第3帧数据相邻的所述第2帧数据和所述第4帧数据执行线性插值操作,确定所述第3帧数据对应的第3计算帧数据。
因此,所述第3帧数据对应的计算数据为“第1-2帧数据、第3计算帧数据、第4-10帧数据”。
进而,确定所述第3帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定“第1-2帧数据、第3计算帧数据、第4-10帧数据”与“第1-10帧数据”之间的误差值。
以此类推,分别确定所述“第2-9帧数据”中的各帧数据对应的的计算数据与所述原始帧数据之间的误差值。
步骤23:判断所述非边缘各帧数据对应的误差值中是否存在满足预设条件的误差值。
优选地,所述满足预设条件的误差值表示所述非边缘各帧数据对应的所述误差值中数值最小并且数值小于预设值的误差值。
需要说明的是,所述预设值可以根据实际情况确定,这里不做具体限定。
仍以上述0.3秒的动画为例,判断所述“第2-9帧数据”中的各帧数据对应的误差值中是否存在满足预设条件的误差值。
所述“第2-9帧数据”中的各帧数据对应的误差值中,第4帧数据对应的误差值是数值最小的误差值,并且所述第4帧数据对应的误差值小于预设值。
因此,所述第4帧数据对应的误差值是满足预设条件的误差值。
步骤24:若存在,则将满足预设条件的误差值对应的帧数据确定为可计算帧数据,将该可计算帧数据对应的压缩数据作为输入帧数据,重复执行上述步骤21-24。
仍以上述0.3秒的动画为例,由于所述第4帧数据对应的误差值是满足预设条件的误差值,因此,将所述第4帧数据确定为可计算帧数据。
将所述第4帧数据对应的压缩数据作为输入帧数据,第二次执行上述步骤21-24确定所述可计算帧数据。
在第二次执行步骤21-24确定所述可计算帧数据的过程中,所述输入帧数据为所述第4帧数据对应的压缩数据,即“第1-3帧数据、第5-10帧数据”。
对所述输入帧数据执行步骤21的操作,确定所述输入帧数据中的非边缘各帧数据对应的压缩数据。
所述非边缘各帧数据为“第2-3帧数据、第5-9帧数据”。
所述输入帧数据中的任一非边缘帧数据对应的压缩数据为缺少该帧数据的所述输入帧数据,因此:
所述第2帧数据对应的压缩数据为“第1帧数据、第3帧数据、第5-10帧数据”;
所述第3帧数据对应的压缩数据为“第1-2帧数据、第5-10帧数据”;
所述第5帧数据对应的压缩数据为“第1-3帧数据、第6-10帧数据”;
以此类推,分别确定所述“第2-3帧数据、第5-9帧数据”中的各帧数据对应的压缩数据。
执行步骤22的操作,确定所述“第2-3帧数据、第5-9帧数据”中的各帧数据对应的计算数据与所述原始帧数据之间的误差值。
所述第2帧数据对应的压缩数据为“第1帧数据、第3帧数据、第5-10帧数据”。
对与所述第2帧数据相邻的所述第1帧数据和所述第3帧数据执行线性插值操作,确定所述第2帧数据对应的第2计算帧数据;对与所述第4帧数据相邻的所述第3帧数据和所述第5帧数据执行线性插值操作,确定所述第4帧数据对应的第4计算帧数据。
因此,所述第2帧数据对应的计算数据为“第1帧数据、第2计算帧数据、第3帧数据、第4计算帧数据,第5-10帧数据”。
进而,确定所述第2帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定所述“第1帧数据、第2计算帧数据、第3帧数据、第4计算帧数据、第5-10帧数据”与所述“第1-10帧数据”之间的误差值。
所述第3帧数据对应的压缩数据为“第1-2帧数据、第5-10帧数据”。
所述第3、4帧数据之间的时间间隔相等,对与所述第3、4帧数据相邻的所述第2帧数据和所述第5帧数据执行线性插值操作,确定所述第3帧数据对应的第3计算帧数据和所述第4帧数据对应的第4计算帧数据。
因此,所述第3帧数据对应的计算数据为“第1-2帧数据、第3-4计算帧数据、第5-10帧数据”。
进而,确定所述第3帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定所述“第1-2帧数据、第3-4计算帧数据、第5-10帧数据”与所述“第1-10帧数据”之间的误差值。
以此类推,分别确定所述输入帧数据中的非边缘各帧数据,即所述“第2-3帧数据、第5-9帧数据”中的各帧数据对应的的计算数据与所述原始帧数据之间的误差值。
判断所述“第2-3帧数据、第5-9帧数据”中的各帧数据对应的误差值中是否存在满足预设条件的误差值。
所述“第2-3帧数据、第5-9帧数据”中的各帧数据中对应的误差值中,所述第7帧数据对应的误差值是数值最小的误差值,并且所述第7帧数据对应的误差值小于预设值。
因此,所述第7帧数据对应的误差值是满足预设条件的误差值,将所述第7帧数据确定为可计算帧数据。
将所述第7帧数据对应的压缩数据作为输入帧数据,第三次执行上述步骤21-24确定所述可计算帧数据。
优选地,所述方法还包括:
若所述非边缘各帧数据对应的误差值中不存在满足预设条件的误差值,终止确定所述可计算帧数据的操作。
仍以上述0.3秒的动画为例,在第三次执行步骤21-24确定所述可计算帧数据的过程中,所述输入帧数据为所述第7帧数据对应的压缩数据,即“第1-3帧数据、第5-6帧数据、第8-10帧数据”。
对所述输入帧数据执行步骤21的操作,确定所述输入帧数据中的非边缘各帧数据对应的压缩数据。
所述非边缘各帧数据为“第2-3帧数据、第5-6帧数据、第8-9帧数据”。
所述输入帧数据中的任一非边缘帧数据对应的压缩数据为缺少该帧数据的所述输入帧数据,因此:
所述第2帧数据对应的压缩数据为“第1帧数据、第3帧数据、第5-6帧数据、第8-10帧数据”;
所述第3帧数据对应的压缩数据为“第1-2帧数据、第5-6帧数据、第8-10帧数据”;
所述第5帧数据对应的压缩数据为“第1-3帧数据、第6帧数据、第8-10帧数据”;
以此类推,分别确定所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的压缩数据。
执行步骤22的操作,确定所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的计算数据与所述原始帧数据之间的误差值。
所述第2帧数据对应的压缩数据为“第1帧数据、第3帧数据、第5-6帧数据、第8-10帧数据”。
对与所述第2帧数据相邻的所述第1帧数据和所述第3帧数据执行线性插值操作,确定所述第2帧数据对应的第2计算帧数据;对与所述第4帧数据相邻的所述第3帧数据和所述第5帧数据执行线性插值操作,确定所述第4帧数据对应的第4计算帧数据;对与所述第7帧数据相邻的所述第6帧数据和所述第8帧数据执行线性插值操作,确定所述第7帧数据对应的第7计算帧数据。
因此,所述第2帧数据对应的计算数据为“第1帧数据、第2计算帧数据、第3帧数据、第4计算帧数据、第5-6帧数据、第7计算帧数据、第8-10帧数据”。
进而,确定所述第2帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定所述“第1帧数据、第2计算帧数据、第3帧数据、第4计算帧数据、第5-6帧数据、第7计算帧数据、第8-10帧数据”与所述“第1-10帧数据”之间的误差值。
所述第3帧数据对应的压缩数据为“第1-2帧数据、第5-6帧数据、第8-10帧数据”。
所述第3、4帧数据之间的时间间隔相等,对与所述第3、4帧数据相邻的所述第2帧数据和所述第5帧数据执行线性插值操作,确定所述第3帧数据对应的第3计算帧数据和所述第4帧数据对应的第4计算帧数据;对与所述第7帧数据相邻的所述第6帧数据和所述第8帧数据执行线性插值操作,确定所述第7帧数据对应的第7计算帧数据。
因此,所述第3帧数据对应的计算数据为“第1-2帧数据、第3-4计算帧数据、第5-6帧数据、第7计算帧数据、第8-10帧数据”。
进而,确定所述第3帧数据对应的计算数据与所述原始帧数据之间的误差值,即确定所述“第1-2帧数据、第3-4计算帧数据、第5-6帧数据、第7计算帧数据、第8-10帧数据”与所述“第1-10帧数据”之间的误差值。
以此类推,分别确定所述输入帧数据中的非边缘各帧数据,即所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的的计算数据与所述原始帧数据之间的误差值。
判断所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的误差值中是否存在满足预设条件的误差值。
所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的误差值中,所述第6帧数据对应的误差值是数值最小的误差值,但是所述第6帧数据对应的误差值不小于预设值。
因此,所述“第2-3帧数据、第5-6帧数据、第8-9帧数据”中的各帧数据对应的误差值中不存在满足预设条件的误差值,终止执行步骤21-24确定所述可计算帧数据的操作。
通过3次执行步骤21-24确定所述可计算帧数据的操作可知,所述0.3秒的动画对应的原始帧数据中包含第1-10帧数据,其中,所述第4帧数据和所述第7帧数据是可计算帧数据。
实施例4
图5本发明实施例提供的一种数据的压缩设备的结构示意图,所述设备包括:获取单元51和确定单元52,其中:
获取单元51,用于获取动画对应的原始帧数据;
确定单元52,用于确定所述原始帧数据中的可计算帧数据,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据;
所述确定单元52,还用于将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。
优选地,所述确定单元52确定所述可计算帧数据,包括:
将所述原始帧数据作为输入帧数据执行如下步骤:
确定所述输入帧数据中的非边缘各帧数据对应的压缩数据,所述输入帧数据中的任一非边缘帧数据对应的所述压缩数据为缺少该帧数据的所述输入帧数据;
确定所述非边缘各帧数据对应的计算数据与所述原始帧数据之间的误差值,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的;
判断所述非边缘各帧数据对应的误差值中是否存在满足预设条件的误差值;
若存在,则将满足所述预设条件的误差值对应的帧数据确定为可计算帧数据,将该可计算帧数据对应的压缩数据作为输入帧数据,重复执行上述步骤。
优选地,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的,包括:
对所述任一非边缘帧数据对应的所述压缩数据执行线性插值操作,得到该帧数据对应的计算数据。
优选地,所述满足预设条件的误差值表示所述非边缘各帧数据对应的所述误差值中数值最小并且数值小于预设值的误差值。
优选地,所述压缩设备还包括:终止单元,其中:
所述终止单元,用于若所述非边缘各帧数据对应的误差值中不存在满足预设条件的误差值,终止确定所述可计算帧数据。
通过所述数据的压缩设备,所述获取单元获取动画对应的原始帧数据,所述确定单元确定所述原始帧数据中的可计算帧数据,所述确定单元还用于将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的数据,实现对动画对应的原始帧数据的数据压缩,使得游戏程序在运行过程中,提高动画数据的加载速度,减小加载完成后的动画数据占用的存储空间,有效提高用户对于游戏的用户体验。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。