1.本说明书涉及图像压缩技术领域,尤其是涉及一种视频图像压缩方法、装置、设备及存储介质。
背景技术:2.随着计算机技术和网络通信技术的飞速发展,实时可视化通信、多媒体通信、网络电视、视频监控、视频直播等业务的应用越来越广泛。这些业务所涉及的视频图像的传输和存储中,都需要对视频图像进行压缩,以提高传输效率、减少存储资源占用。例如,以庭审为例,随着信息化的持续推进,庭审的录像文件越来越多,为存储这些录像文件,产生的存储成本越来越高。因此,需要对录像文件进行更高压缩率的压缩。但是,基于目前的图像压缩技术,提高压缩率需以牺牲图像清晰度为代价。因此如何在保证图像清晰度的前提下,提高图像压缩率,已成为目前亟待解决的技术问题。
技术实现要素:3.本说明书实施例的目的在于提供一种视频图像压缩方法、装置、设备及存储介质,以实现在保证图像清晰度的前提下,提高图像压缩率。
4.为达到上述目的,一方面,本说明书实施例提供了一种视频图像压缩方法,包括:
5.获取一个图像帧;
6.识别所述图像帧中的运动区域和非运动区域,将所述运动区域的编码质量设置为第一编码质量,并将所述非运动区域的编码质量设置为低于所述第一编码质量的第二编码质量;
7.确定所述图像帧与基准帧的相似度,当所述相似度达到相似度阈值时,将所述图像帧的编码i帧标志设置为非i帧;
8.根据所述编码质量和所述编码i帧标志进行图像帧编码。
9.本说明书实施例的视频图像压缩方法中,所述识别所述图像帧中的运动区域和非运动区域,包括:
10.识别所述图像帧中是否存在运动物体;
11.当所述图像帧中存在运动物体时,将所述运动物体对应的图像区域识别为运动区域,并将所述图像帧中的其余区域识别为非运动区域。
12.本说明书实施例的视频图像压缩方法中,在确定所述图像帧与基准帧的相似度之后,还包括:
13.当所述相似度未达到相似度阈值时,判断当前的连续非i帧数量是否达到帧数阈值;
14.在当前的连续非i帧数量达到帧数阈值时,将所述图像帧的编码i帧标志设置为i 帧;
15.在当前的连续非i帧数量未达到帧数阈值时,将所述图像帧的编码i帧标志设置为
非i帧。
16.本说明书实施例的视频图像压缩方法中,还包括:
17.确认当前检测周期内图像有变动的帧数占比是否大于比例上限;
18.当所述帧数占比大于比例上限时,增大当前帧率值。
19.本说明书实施例的视频图像压缩方法中,所述增大当前帧率值,包括:
20.确认当前帧率值是否达到帧率上限;
21.在当前帧率值未达到帧率上限时,增大当前帧率值;
22.在当前帧率值达到帧率上限时,保持当前帧率值不变。
23.本说明书实施例的视频图像压缩方法中,在判断当前检测周期内图像有变动的帧数占比是否大于比例上限之后,还包括:
24.当所述帧数占比不大于比例上限时,确认所述帧数占比是否小于比例下限;
25.当所述帧数占比小于比例上限时,减小当前帧率值;
26.当所述帧数占比不小于比例上限时,保持当前帧率值不变。
27.本说明书实施例的视频图像压缩方法中,所述减小当前帧率值,包括:
28.确认当前帧率值是否达到帧率下限;
29.在当前帧率值未达到帧率下限时,减小当前帧率值;
30.在当前帧率值达到帧率下限时,保持当前帧率值不变。
31.另一方面,本说明书实施例还提供了一种视频图像压缩装置,包括:
32.图像分析模块,用于获取一个图像帧;识别所述图像帧中的运动区域和非运动区域,并确定所述图像帧与基准帧的相似度;
33.参数设置模块,用于将所述运动区域的编码质量设置为第一编码质量,并将所述非运动区域的编码质量设置为低于所述第一编码质量的第二编码质量;以及当所述相似度达到相似度阈值时,将所述图像帧的编码i帧标志设置为非i帧;
34.图像编码模块,用于根据所述编码质量和所述编码i帧标志进行图像帧编码。
35.另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
36.另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
37.由以上本说明书实施例提供的技术方案可见,本说明书实施例中,对于图像帧中的运动区域设置更高的编码质量,可以提高运动区域部分的图像清晰度,而对于图像帧中的非运动区域则设置更低的编码质量,可以提高非运动区域的图像压缩率;不仅如此,当图像帧与基准帧的相似度达到相似度阈值,表明图像画面变化很小,因此可以将图像帧的编码i帧标志设置为非i帧,以减少i帧的数量,从而可以进一步提高图像压缩率。如此,本说明书实施例不仅保证了图像清晰度,还提高了图像压缩率。
附图说明
38.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是
本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
39.图1示出了本说明书一些实施例中视频图像压缩应用场景示意图;
40.图2示出了本说明书一些实施例中视频图像压缩方法的流程图;
41.图3示出了图2所示方法中设置区域编码的流程图;
42.图4示出了图2所示方法中设置编码i帧标志的流程图;
43.图5示出了本说明书一实施例中连续非i帧的示意图;
44.图6示出了本说明书另一些实施例中视频图像压缩方法的流程图;
45.图7示出了图6所示方法中调整编码器帧率的流程图;
46.图8示出了本说明书一些实施例中视频图像压缩装置的结构框图;
47.图9示出了本说明书一些实施例中计算机设备的结构框图。
48.【附图标记说明】
49.1、视频生产端;
50.2、视频压缩端;
51.3、视频消费端;
52.81、图像分析模块;
53.82、参数设置模块;
54.83、图像编码模块;
55.902、计算机设备;
56.904、处理器;
57.906、存储器;
58.908、驱动机构;
59.910、输入/输出接口;
60.912、输入设备;
61.914、输出设备;
62.916、呈现设备;
63.918、图形用户接口;
64.920、网络接口;
65.922、通信链路;
66.924、通信总线。
具体实施方式
67.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
68.本说明书实施例的视频图像压缩方法和装置等,可以应用于实时可视化通信、多媒体通信、网络电视、视频监控、视频直播等任何需要在保证图像清晰度的前提下,提高图
像压缩率的场景。
69.图1中示出了本说明书一些实施例的视频图像压缩应用场景示意图,该应用场景可以包括视频生产端1、视频压缩端2和视频消费端3。视频压缩端2配置有视频编码器(以下简称编码器),可以从视频生产端1获取图像帧,对图像帧进行压缩编码,并将编码后的图像帧提供给出视频消费端3。在一些实施例中,视频生产端1可以为流媒体服务器(可以提供音视频流)或存储有视频文件(例如mp4格式的视频文件等)的其他设备等。视频压缩端2可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为视频数据压缩处理和网络交互提供业务逻辑的软件。视频消费端3可以为视频播放器或存用于储视频文件的其他设备等。其中,流媒体服务器例如可以为基于实时消息传输协议(real time messaging protocol,rtsp)等媒体流的播放软件。
70.本说明书实施例提供了一种视频图像压缩方法,可以应用于上述的视频压缩端。参考图2所示,在一些实施例中,所述视频图像压缩方法可以包括以下步骤:
71.步骤21、获取一个图像帧。
72.步骤22、识别所述图像帧中的运动区域和非运动区域,将所述运动区域的编码质量设置为第一编码质量,并将所述非运动区域的编码质量设置为低于所述第一编码质量的第二编码质量。
73.步骤23、确定所述图像帧与基准帧的相似度,当所述相似度达到相似度阈值时,将所述图像帧的编码i帧标志设置为非i帧。
74.步骤24、根据所述编码质量和所述编码i帧标志进行图像帧编码。
75.对于图像帧中的运动区域设置更高的编码质量,可以提高运动区域部分的图像清晰度,而对于图像帧中的非运动区域则设置更低的编码质量,可以提高非运动区域的图像压缩率;不仅如此,当图像帧与基准帧的相似度达到相似度阈值,表明图像画面变动很小,因此可以将图像帧的编码i帧标志设置为非i帧,以减少i帧的数量,从而可以进一步提高图像压缩率。如此,本说明书实施例不仅保证了图像清晰度,还提高了图像压缩率。
76.在一些实施例中,获取一个图像可以是指:从视频流或视频文件中读取一帧图像,并对其进行图像解码,以便于后续处理。
77.步骤22即为设置区域编码的过程,以通过区域编码达到既可以保证图像清晰度又可以兼顾图像压缩率的目的。参考图3所示,在一些实施例中,该过程可以包括如下步骤:
78.步骤221、判断图像帧中是否存在运动物体;如果存在运动物体,则执行步骤222,否则执行步骤225。
79.在一些实施例中,可以通过运动检测算法识别图像帧中是否存在运动物体;当所述图像帧中存在运动物体时,将所述运动物体对应的图像区域识别为运动区域,并将所述图像帧中的其余区域识别为非运动区域。其中,运动检测算法例如可以为帧差法、对称帧差法、平均算法、单高斯背景模型或混合高斯背景模型等。
80.应当指出,当图像帧中包含多个运动物体时,需要把每个运动物体对应的图像区域均识作为运动区域,以保证图像帧中所有运动物体的图像清晰度。
81.运动物体可以是指:当前图像帧中相对于前一个图像帧或前几个图像帧(具体可以根据实际需要设定)的均值发生了变化的物体。例如,若当前图像帧中某个“人像”相对于前一个图像帧或前几个图像帧的均值,由站立状态开始向下蹲状态转变,则可以认为当前
图像帧中该“人像”为运动物体。
82.步骤222、将运动物体对应的图像区域识别为运动区域,并将图像帧中的其余区域识别为非运动区域。
83.本说明书实施例中,运动区域是指图像帧中运动物体对应的图像区域,而非运动区域则是指图像帧中运动区域之外的剩余图像区域。通过识别图像帧中的运动区域和非运动区域,可以确认图像帧中哪些区域应以保证图像清晰度为优先(即运动区域应以保证图像清晰度为优先),哪些区域应以保证图像压缩率为优先(即非运动区域应以保证图像压缩率为优先)。
84.步骤223、根据区域编码规则,将运动区域和非运动区域转换为对应的编码区域。
85.在一些实施例中,在识别出图像帧中的运动区域和非运动区域后,可以将运动区域和非运动区域转换成对应的编码区域,以便于进行区域编码,即可以针对不同区域分别使用不同的编码参数进行图像编码。运动区域和非运动区域是图像帧的矩阵区域;进行区域编码涉及到宏块(macroblock)分割问题,需要对画面的区域坐标做一些对齐调整等操作,因此,需要根据区域编码规则将运动区域和非运动区域转换成对应的编码区域。其中,区域编码规则可以是根据编码宏块大小,找到最近的宏块位置,将检测出的区域按照宏块进行对齐。
86.步骤224、将运动区域的编码质量设置为第一编码质量,并将非运动区域的编码质量设置为低于第一编码质量的第二编码质量。
87.在一些实施例中,编码质量例如可以为量化参数qp等。第一编码质量是符合图像清晰度要求的编码质量(具体数值可以根据图像清晰度要求等适当设置)。第二编码质量是符合图像压缩率要求的编码质量(具体数值可以根据图像压缩率要求等适当设置),第一编码质量明显大于第二编码质量。
88.步骤225、将图像帧的编码质量设置为第二编码质量。
89.在一些情况下,可能会出现图像帧不包含任何运动物体的情况,此时,可以不再对图像帧进行区域编码,而可以对图像帧整体设置一个较低的编码质量,以保证压缩率,并有利于提高编码效率。
90.步骤23即为设置编码i帧标志的过程,以通过增减i帧数量达到既可以保证图像清晰度又可以兼顾图像压缩率的目的。其中,增减i帧可以提高图像清晰度,减小增减i帧可以提高图像压缩率。
91.参考图4所示,在一些实施例中,步骤23可以包括如下步骤:
92.步骤231、判断图像帧与基准帧的相似度是否达到相似度阈值;如果图像帧与基准帧的相似度未达到相似度阈值,则执行步骤232,否则执行步骤234。
93.在一些实施例中,可以通过任何合适的相似度算法计算图像帧与基准帧,并据此判断图像帧与基准帧的相似度是否到相似度阈值。其中,相似度算法例如可以包括但不限于欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离、皮尔逊相关系数、汉明距离、杰卡德距离、马氏距离等。
94.基准帧可以是当前图像帧的前一个图像帧或前几个图像帧的均值。例如,在一示例性实施例中,基准帧可以为当前图像帧的前三个图像帧的均值(这里仅是示例性举例说明)。
95.相似度阈值可以根据实际需要适当选择。例如,在一实施例中,相似度阈值例如可以为90%、95%等。
96.步骤232、判断当前的连续非i帧数据量是否达到帧数阈值;如果当前的连续非i帧数据量达到帧数阈值,则执行步骤233,否则执行步骤234。
97.当图像帧与基准帧的相似度未达到相似度阈值时,表明二者的差异较大,即图像帧相对于基准帧发生了相对较大的变化。考虑到需满足最小i帧间隔(即帧数阈值),可以判断当前的连续非i帧数据量是否达到帧数阈值。其中,连续非i帧即是指从上个编码的i帧开始,到现在已经编码的非i帧的帧数,是相邻两个i帧的间隔,即相邻两个i帧之间有多少个非i帧(例如图5所示)。例如,在一实施例中,帧数阈值可以为30。
98.i帧即为帧内编码图像帧,也称为关键帧,它是帧间压缩编码里的一个全帧压缩的编码帧;解码时仅用i帧的数据就可重构完整图像,而不需要参考其他画面而生成,从而有利于保证图像质量。非i帧可以包括b帧和p帧。p帧即为前向预测编码图像帧,表示的是这一帧与之前的一个关键帧(或p帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。也就是说是,p帧是差别帧,p帧没有完整画面数据,只有与前一帧的画面差别的数据。b帧即为双向预测编码图像帧,是一种双向差别帧,也就是b帧记录的是本帧与前后帧的差别(具体比较复杂,有4 种情况),换言之,要解码b帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。因此,b帧压缩率高,但是解码时cpu资源开销较大。
99.步骤233、图像帧的编码i帧标志设置为i帧。
100.在当前的连续非i帧数量达到帧数阈值时,为了保证图像清晰度,可以将图像帧的编码i帧标志设置为i帧(即将图像帧的编码i帧标志设置为if=true)。
101.步骤234、图像帧的编码i帧标志设置为非i帧。
102.当图像帧与基准帧的相似度达到相似度阈值,或者,当前的连续非i帧数量未达到帧数阈值时,表明图像帧与基准帧基本无变化或变化可以忽略,因此,为了提高图像压缩率,可以将图像帧的编码i帧标志设置为非i帧(即将图像帧的编码i帧标志设置为if=false)。
103.本说明书实施例中,通过运动检测算法,找到物体运动的区域,使用区域编码技术,针对运动区域设置更高的编码质量,针对其他区域,设置较低的编码质量;如此,既可以保证运动物体的图像清晰也可以保证静态区域的低码率。然后通过相似度检测算法,计算当前帧图像和前面几帧图像的相似度,如果发现相似度较低时,可以通过编码i帧保证整体的画面质量,如果画面相似度较高,表示画面变动不大,减少i帧的数量,可以大幅的降低码率。最后通过对编码器进行质量控制,实现变码率编码,既可以保证图像清晰度又可以兼顾图像压缩率。例如,在法庭庭审视频场景下,大多数画面相对变动不大,码率都在较低的水平,与定码率相比平均码率明显降低,从而可以在保证图像清晰度的情况下,大幅提高图像压缩率。
104.步骤24中,根据编码质量和编码i帧标志进行图像帧编码,即为将上述设定的编码质量和编码i帧标志更新编码器的编码参数,并根据更新后的编码参数对当前图像帧或后续图像帧进行编码。
105.运动检测和相似度检测都需要一定的时间,图像帧的编码一般要30多毫秒就可以
编码一帧,不能等待检测结果。因此,如果处理器的性能足够强大,可以根据更新后的编码参数对当前图像帧进行编码。而如果处理器的性能不够强大,鉴于图像帧都是连续的(甚至几十毫秒内运动距离不会太大),上一帧画面的检测区域对本帧画面同样适用,可以则根据更新后的编码参数后续图像帧进行编码。
106.参考图6所示,在另一些实施例的视频图像压缩方法中,除了包含步骤21~步骤23之外,还可以包括如下步骤:
107.步骤24’、根据检测周期内的图像变动调整编码器帧率。
108.帧率是指单位时间(例如1秒钟)里传输的图像帧数。帧率影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉暂留。并且当帧率达到一定数值后,再增长的话,人眼也不容易察觉到有明显的流畅度提升了。
109.因此,为了保证画面流畅度并防止帧率波动太过频繁,可以根据检测周期内的图像变动调整编码器帧率,即分时间段统计图像变动情况,并据此确定是否调整帧率以及如何调整。例如,画面相对静止(即图像前后几乎无变化)的情况下,可适当合理的降低帧率,以有效地降低整体的平均码率。
110.步骤25、根据编码质量、编码i帧标志和编码器帧率进行图像帧编码。即将上述设定的编码质量、编码i帧标志和编码器帧率更新编码器的编码参数,并根据更新后的编码参数对当前图像帧或后续图像帧进行编码。
111.结合图7所示,步骤24’中根据检测周期内的图像变动调整编码器帧率可以包括如下步骤:
112.步骤241、判断是否到达时间阈值。如果未到达时间阈值,则继续检测统计图像变动情况,否则执行步骤242。
113.时间阈值可以按需设置。例如,在一示例性实施例中,时间阈值可以为3秒。
114.步骤242、统计当前检测周期内图像有变动的帧数占比。
115.图像有变动的帧数占比是指:一个检测周期内包含运动物体或与基准帧的相似度未达到相似度阈值的帧数,在该检测周期内的总帧数中所占的比例。例如,一个检测周期内有9个帧;其中,有2个帧包含运动物体,1个帧与基准帧的相似度未达到相似度阈值,则该检测周期图像有变动的帧数占比为0.3。
116.步骤243、确认当前检测周期内图像有变动的帧数占比是否大于比例上限。若帧数占比大于比例上限,则执行步骤244,否则执行步骤246。
117.比例上限可以根据实际需要适当选择。例如,在一实施例中,比例上限例如可以为0.5等。
118.步骤244、确认当前帧率值是否达到帧率上限。若未达到帧率上限,则执行步骤 245,否则执行步骤249。
119.帧率上限可以根据实际需要适当选择。例如,在一实施例中,帧率上限例如可以为30等。
120.步骤245、增大当前帧率值,并跳转执行步骤241。
121.具体增大幅度可以根据需要设定,例如一次可“+1”。
122.步骤246、确认当前检测周期内图像有变动的帧数占比是否小于比例下限。若帧数
占比小于比例下限,则执行步骤247,否则执行步骤249。
123.比例下限可以根据实际需要适当选择。例如,在一实施例中,比例下限例如可以为0.1等。
124.步骤247、确认当前帧率值是否达到帧率下限。若未达到帧率下限,则执行步骤 248,否则执行步骤249。
125.帧率下限可以根据实际需要适当选择。例如,在一实施例中,帧率下限例如可以为15等。
126.步骤248、减小当前帧率值,并跳转执行步骤241。
127.具体减小幅度可以根据需要设定,例如一次可
“‑
1”。
128.步骤249、保持当前帧率值不变。
129.虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
130.与上述的视频图像压缩方法对应,本说明书实施例还提供了一种视频图像压缩装置,其可以配置于上述的视频压缩端上。参考图8所示,在一些实施例中,所述视频图像压缩装置可以包括图像分析模块81、参数设置模块82和图像编码模块83。其中:
131.图像分析模块81,可以用于获取一个图像帧;识别所述图像帧中的运动区域和非运动区域,并确定所述图像帧与基准帧的相似度;
132.参数设置模块82,可以用于将所述运动区域的编码质量设置为第一编码质量,并将所述非运动区域的编码质量设置为低于所述第一编码质量的第二编码质量;以及当所述相似度达到相似度阈值时,将所述图像帧的编码i帧标志设置为非i帧;
133.图像编码模块83,可以用于根据所述编码质量和所述编码i帧标志进行图像帧编码。
134.在一些视频图像压缩装置实施例中,所述识别所述图像帧中的运动区域和非运动区域,包括:
135.识别所述图像帧中是否存在运动物体;
136.当所述图像帧中存在运动物体时,将所述运动物体对应的图像区域识别为运动区域,并将所述图像帧中的其余区域识别为非运动区域。
137.在一些视频图像压缩装置实施例中,所述参数设置模块还可以用于根据检测周期内的图像变动调整编码器帧率。
138.在一些视频图像压缩装置实施例中,所述根据检测周期内的图像变动调整编码器帧率包括:
139.当所述相似度未达到相似度阈值时,判断当前的连续非i帧数量是否达到帧数阈值;
140.在当前的连续非i帧数量达到帧数阈值时,将所述图像帧的编码i帧标志设置为i 帧;
141.在当前的连续非i帧数量未达到帧数阈值时,将所述图像帧的编码i帧标志设置为非i帧。
142.在一些视频图像压缩装置实施例中,所述根据检测周期内的图像变动调整编码器
帧率还包括:
143.确认当前检测周期内图像有变动的帧数占比是否大于比例上限;
144.当所述帧数占比大于比例上限时,增大当前帧率值。
145.在一些视频图像压缩装置实施例中,所述增大当前帧率值包括:
146.确认当前帧率值是否达到帧率上限;
147.在当前帧率值未达到帧率上限时,增大当前帧率值;
148.在当前帧率值达到帧率上限时,保持当前帧率值不变。
149.在一些视频图像压缩装置实施例中,所述根据检测周期内的图像变动调整编码器帧率还包括:
150.当所述帧数占比不大于比例上限时,确认所述帧数占比是否小于比例下限;
151.当所述帧数占比小于比例上限时,减小当前帧率值;
152.当所述帧数占比不小于比例上限时,保持当前帧率值不变。
153.在一些视频图像压缩装置实施例中,所述减小当前帧率值包括:
154.确认当前帧率值是否达到帧率下限;
155.在当前帧率值未达到帧率下限时,减小当前帧率值;
156.在当前帧率值达到帧率下限时,保持当前帧率值不变。
157.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
158.本说明书的实施例还提供一种计算机设备。如图9所示,在本说明书一些实施例中,所述计算机设备902可以包括一个或多个处理器904,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备902还可以包括任何存储器906,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器906上并可在处理器904上运行的计算机程序,所述计算机程序被所述处理器904运行时,可以执行上述任一实施例所述的视频图像压缩方法的指令。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备902可以执行相关联指令的任一操作。计算机设备 902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。
159.计算机设备902还可以包括输入/输出接口910(i/o),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914)。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(gui)。在其他实施例中,还可以不包括输入/输出接口910(i/o)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。计算机设备902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。
160.通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链
路、无线链路、路由器、网关功能、名称服务器等的任何组合。
161.本技术是参照本说明书一些实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
162.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
163.这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
164.在一个典型的配置中,计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
165.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/ 或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
166.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
167.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
168.本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
169.还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关
系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
170.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
171.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。