本发明涉及计算机技术领域,尤其涉及一种数据压缩方法和设备。
背景技术:
随着互联网技术的发展,用户对游戏的画面效果和游戏性能的要求越来越高。三维游戏中逼真的环境模拟,实时的交互体验,以及丰富的声光效果,在很大程度上提升了游戏的用户体验。
游戏开发者在三维动画制作软件(例如:3dmax)中为游戏角色制作角色动画,并将角色动画对应的动作数据从三维动画制作软件中导出,得到角色动画对应的动作数据文件。游戏程序运行过程中,游戏引擎通过运行动作数据文件,为用户展示这个角色动画。
在实际应用中,通常将三维动画制作软件中角色动画对应的动作数据全帧导出,得到角色动画的全帧动作数据文件。例如:角色动画包含100帧,就会导出100帧的动作数据。
但是,全帧动作数据文件的大小较大,例如:对于一个包含50根骨骼的游戏角色大约3秒的角色动画,每根骨骼对应的骨骼动画包含100帧动作数据,因此,这个大约3秒的角色动画对应的全帧动作数据包含50×100=5000帧动作数据。假设一帧动作数据用一个大小为64字节的4×4的矩阵来保存,那么,这个大约3秒的角色动画对应的全帧动作数据的大小为312k,占用空间较大。
由于全帧动作数据较大,游戏程序在运行过程中,加载全帧动作数据的时间较长,加载完成后的全帧动作数据在用户设备中占用的存储空间较大,影响用户对于游戏的用户体验。
技术实现要素:
有鉴于此,本发明实施例提供一种数据的压缩方法和设备,用于解决现有技术中全帧动作数据较大导致的加载时间较长、占用存储空间较大的问题。
本发明实施例提供一种数据的压缩方法,包括:
获取动画对应的原始帧数据;
确定所述原始帧数据中的可计算帧数据,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据;
将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。
优选地,确定所述可计算帧数据,包括:
将所述原始帧数据作为输入帧数据执行如下步骤:
确定所述输入帧数据中的非边缘各帧数据对应的压缩数据,所述输入帧数据中的任一非边缘帧数据对应的压缩数据为缺少该帧数据的所述输入帧数据;
确定所述非边缘各帧数据对应的计算数据与所述原始帧数据之间的误差值,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的;
判断所述非边缘各帧数据对应的误差值中是否存在满足预设条件的误差值;
若存在,则将所述满足预设条件的误差值对应的帧数据确定为可计算帧数据,将该可计算帧数据对应的压缩数据作为输入帧数据,重复执行上述步骤。
优选地,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的,包括:
对所述任一非边缘帧数据对应的所述压缩数据执行线性插值操作,得到该帧数据对应的计算数据。
优选地,所述满足预设条件的误差值表示所述非边缘各帧数据对应的所述误差值中数值最小并且数值小于预设值的误差值。
优选地,所述方法还包括:
若所述非边缘各帧数据对应的误差值中不存在满足预设条件的误差值,终止确定所述可计算帧数据。
本发明实施例还提供一种游戏,所述游戏中的动画数据是采用如上所述的数据的压缩方法对原始帧数据进行压缩之后得到的压缩后的动画数据。
本发明实施例还提供一种数据的压缩设备,包括:
获取单元,用于获取动画对应的原始帧数据;
确定单元,用于确定所述原始帧数据中的可计算帧数据,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据;
所述确定单元,还用于将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。
本发明有益效果如下:
本发明实施例获取动画对应的原始帧数据,确定所述原始帧数据中的可计算帧数据,进而删除所述可计算帧数据,实现对动画对应的所述原始帧数据的数据压缩,得到不包含所述可计算帧数据的压缩后的动画数据,使得游戏程序在运行过程中,提高动画数据的加载速度,减小加载完成后的动画数据占用的存储空间,有效提高用户对于游戏的用户体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据的压缩方法的流程示意图;
图2为本发明实施例提供的一种确定可计算帧数据的方法的流程示意图;
图3本发明实施例提供的原始帧数据对应的动作动画示意图;
图4本发明实施例提供的压缩后的动画数据对应的动作动画示意图;
图5本发明实施例提供的一种数据的压缩设备的结构示意图。
具体实施方式
游戏开发者通过三维动画制作软件为游戏角色制作角色动作时,假设所述游戏角色包含x根骨骼,所述游戏开发者在所述三维动画软件中为每根骨骼制作骨骼动画。
具体地,首先,在三维动画制作软件中创建骨骼动画的关键帧,其中,关键帧表示骨骼动画中的关键动作所处的一帧;其次,三维动画制作软件通过插值算法创建相邻关键帧之间的过渡帧,得到骨骼动画对应的全帧动作数据;最后,为了准确还原游戏开发者制作的角色动画,将每根骨骼的骨骼动画对应的全帧动作数据从三维动画制作软件中导出,得到所述游戏角色对应的角色动画的原始帧数据,游戏引擎通过运行所述原始帧数据,能够为用户展示所述游戏角色相应的动画过程。
但是,由于所述原始帧数据为全帧动作数据,数据量较大,使得游戏程序在运行过程中,加载所述原始帧数据的时间较长,加载完成后的原始帧数据在用户设备中占用的存储空间较大,影响用户对于游戏的用户体验。
在所述角色动画中,很多骨骼并没有动画,或者,角色动画对应的原始帧数据中有很多是可以通过计算得到的帧数据。
为了实现本发明的目的,本发明实施例提供了一种数据的压缩方法和设备,获取动画对应的原始帧数据,确定所述原始帧数据中的可计算帧数据,进而删除所述可计算帧数据,实现对动画对应的所述原始帧数据的数据压缩,得到不包含所述可计算帧数据的压缩后的动画数据,使得游戏程序在运行过程中,提高动画数据的加载速度,减小加载完成后的动画数据占用的存储空间,有效提高用户对于游戏的用户体验。
下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
图1为本发明实施例提供的一种数据的压缩方法的流程示意图。所述方法可以如下所示。
步骤11:获取动画对应的原始帧数据。
在步骤11中,游戏开发者在三维动画软件中制作完成角色动画之后,将所述角色动画对应的动作数据从所述三维动画软件中全帧导出,获取到所述角色动画对应的全帧动作数据,即所述角色动画对应的原始帧数据。
例如:游戏角色包含50根骨骼,每根骨骼对应的骨骼动画包含100帧动作数据,因此,所述游戏角色的角色动画对应的原始帧数据中包含50×100=5000帧数据。
步骤12:确定所述原始帧数据中的可计算帧数据。
其中,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据。
在步骤12中,对于步骤11中获取得到的所述原始帧数据,其中包含可以通过计算得到的帧数据,确定所述原始帧数据中包含的可以通过计算得到的帧数据。
步骤13:将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。。
在步骤13中,将步骤12中确定的所述可计算帧数据从包含所述原始帧数据中去除掉,实现对所述原始帧数据的数据压缩,将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。
需要说明的是,所述原始帧数据压缩后得到的所述压缩后的动画数据中包含的数据帧数是根据实际情况确定的,这里不做具体限定。当所述原始帧数据对应的动作动画越简单时,得到的所述压缩后的动画数据中包含的数据帧数越少。
本发明实施例获取动画对应的原始帧数据,确定所述原始帧数据中的可计算帧数据,进而删除所述可计算帧数据,实现对动画对应的所述原始帧数据的数据压缩,得到不包含所述可计算帧数据的压缩后的动画数据,使得游戏程序在运行过程中,提高动画数据的加载速度,减小加载完成后的动画数据占用的存储空间,有效提高用户对于游戏的用户体验。
实施例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帧数据是可计算帧数据。
实施例3
基于同一个发明构思,对于采用上述实施例1和/或实施例2中所记载的方法确定的压缩后的动画数据,为了确保游戏引擎运行所述压缩后的动画数据得到的游戏效果与运行所述原始帧数据得到的游戏效果不会影响用户对于游戏的用户体验,对所述原始帧数据和所述压缩后的动画数据进行了测试对比。
图3本发明实施例提供的原始帧数据对应的动作动画示意图。
图4本发明实施例提供的压缩后的动画数据对应的动作动画示意图。
由图3和图4对比可知,采用本发明实施例所记载的数据的压缩方法,压缩后的动画数据中仅包含15帧数据,并且所述压缩后的动画数据得到的动作动画与所述原始帧数据得到的动作动画相似,不会影响用户对于游戏的用户体验。
与此同时,本发明实施例还提供一种游戏,所述游戏中的动画数据是采用上述实施例1和/或实施例2记载的所述数据的压缩方法对原始帧数据进行压缩之后得到的压缩后的动画数据。
实施例4
图5本发明实施例提供的一种数据的压缩设备的结构示意图,所述设备包括:获取单元51和确定单元52,其中:
获取单元51,用于获取动画对应的原始帧数据;
确定单元52,用于确定所述原始帧数据中的可计算帧数据,所述可计算帧数据表示所述原始帧数据中可以通过计算得到的帧数据;
所述确定单元52,还用于将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的动画数据。
优选地,所述确定单元52确定所述可计算帧数据,包括:
将所述原始帧数据作为输入帧数据执行如下步骤:
确定所述输入帧数据中的非边缘各帧数据对应的压缩数据,所述输入帧数据中的任一非边缘帧数据对应的所述压缩数据为缺少该帧数据的所述输入帧数据;
确定所述非边缘各帧数据对应的计算数据与所述原始帧数据之间的误差值,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的;
判断所述非边缘各帧数据对应的误差值中是否存在满足预设条件的误差值;
若存在,则将满足所述预设条件的误差值对应的帧数据确定为可计算帧数据,将该可计算帧数据对应的压缩数据作为输入帧数据,重复执行上述步骤。
优选地,所述任一非边缘帧数据对应的计算数据是通过该帧数据对应的压缩数据计算得到的,包括:
对所述任一非边缘帧数据对应的所述压缩数据执行线性插值操作,得到该帧数据对应的计算数据。
优选地,所述满足预设条件的误差值表示所述非边缘各帧数据对应的所述误差值中数值最小并且数值小于预设值的误差值。
优选地,所述压缩设备还包括:终止单元,其中:
所述终止单元,用于若所述非边缘各帧数据对应的误差值中不存在满足预设条件的误差值,终止确定所述可计算帧数据。
通过所述数据的压缩设备,所述获取单元获取动画对应的原始帧数据,所述确定单元确定所述原始帧数据中的可计算帧数据,所述确定单元还用于将不包含所述可计算帧数据的所述原始帧数据确定为压缩后的数据,实现对动画对应的原始帧数据的数据压缩,使得游戏程序在运行过程中,提高动画数据的加载速度,减小加载完成后的动画数据占用的存储空间,有效提高用户对于游戏的用户体验。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。