图像压缩的方法、装置、电子设备和计算机存储介质
技术领域
本发明涉及图像处理的技术领域,尤其是涉及一种图像压缩的方法、装置、电子设备和计算机存储介质。
背景技术
图像压缩算法对于节省图像数据传输带宽、提高图像数据传输效率有着重要的意义,当前存在许多在普通场景中行之有效的图像压缩算法。
当对视频流中的图像帧进行压缩时,通常采用的图像压缩方法是通过确定的一种压缩算法对视频流中的每一图像帧进行串行压缩。但是对于不同的图像帧,其对应有压缩比最优的压缩算法,上述通过确定的一种压缩算法对视频流中每一图像帧进行串行压缩的方式显然无法使整个视频流达到最优的压缩效果,进而无法最大限度的提高图像数据的传输效率;另外,在一些高噪声的ISP(Image Signal Processing,图像信号处理)场景下,通过压缩算法对视频流中的某一图像帧进行压缩后,会出现压缩后的图像大小高于压缩前的图像大小的现象,这样,图像压缩后非但不能提高图像数据的传输效率,反而会降低图像数据的传输效率。
综上,现有技术提供的图像压缩方法无法对视频流中的图像帧提供最优的压缩算法,进而无法通过图像压缩最大限度的提高图像数据的传输效率。
发明内容
有鉴于此,本发明的目的在于提供一种图像压缩的方法、装置、电子设备和计算机存储介质,以缓解现有的图像压缩方法无法对视频流中的图像帧提供最优的压缩算法,无法有效的提高图像数据传输效率的技术问题。
第一方面,本发明实施例提供了一种图像压缩的方法,包括:获取待压缩视频流;所述待压缩视频流包含多帧图像;据所述多帧图像中的当前帧图像,从压缩算法集合中确定所述当前帧图像所对应的最优压缩算法;采用所述最优压缩算法对目标帧图像进行压缩处理;所述目标帧图像包括以下任一种:所述当前帧图像和所述当前帧图像之后的预设帧图像。
进一步的,当所述当前帧图像为所述待压缩视频流中的第一帧图像时,所述方法还包括:采用预设初始压缩算法对所述第一帧图像进行压缩处理。
进一步的,所述方法还包括:基于所述当前帧图像之前的预设帧图像确定的最优压缩算法,对所述目标帧图像进行压缩处理。
进一步的,根据所述多帧图像中的当前帧图像,从压缩算法集合中确定所述当前帧图像所对应的最优压缩算法的步骤包括:采用压缩算法预测模型对所述当前帧图像进行压缩算法预测,进而从所述压缩算法集合中确定所述当前帧图像所对应的最优压缩算法。
进一步的,采用压缩算法预测模型对所述当前帧图像进行压缩算法预测,进而从所述压缩算法集合中确定所述当前帧图像所对应的最优压缩算法的步骤包括:采用所述压缩算法预测模型对所述当前帧图像进行压缩算法预测,得到所述压缩算法集合中每种压缩算法对应的压缩比;根据所述压缩算法集合中每种压缩算法对应的压缩比确定所述当前帧图像所对应的最优压缩算法。
进一步的,所述方法还包括:获取所述最优压缩算法对所述目标帧图像进行压缩处理后,所述最优压缩算法对应的真实压缩比;采用所述压缩算法集合中除所述最优压缩算法之外的预设压缩算法对所述目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;基于所述最优压缩算法对应的真实压缩比、所述预设压缩算法对应的真实压缩比和所述目标帧图像对所述压缩算法预测模型进行在线训练,更新所述压缩算法预测模型中的参数。
进一步的,所述方法还包括:获取所述最优压缩算法对所述目标帧图像进行压缩处理后,所述最优压缩算法对应的真实压缩比;采用所述压缩算法集合中除所述最优压缩算法之外的预设压缩算法对所述目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;基于所述最优压缩算法对应的真实压缩比和所述预设压缩算法对应的真实压缩比,确定所述目标帧图像所对应的真实最优压缩算法;基于所述目标帧图像所对应的真实最优压缩算法和所述目标帧图像对所述压缩算法预测模型进行在线训练,更新所述压缩算法预测模型中的参数。
进一步的,所述方法还包括:判断所述压缩处理后的结果是否满足预设要求;如果不满足所述预设要求,则根据所述压缩处理后的结果对所述最优压缩算法进行调整。
进一步的,所述方法还包括:获取待压缩图像样本集合和压缩算法集合;所述待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,所述压缩算法集合中包括:多种压缩算法;通过所述压缩算法集合中的每种压缩算法分别对所述待压缩图像样本集合中的目标图像样本进行压缩处理,得到每种压缩算法对所述目标图像样本压缩的压缩比;基于所述待压缩图像样本集合和所述每种压缩算法对所述目标图像样本压缩的压缩比对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
进一步的,所述方法还包括:获取待压缩图像样本集合和压缩算法集合;所述待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,所述压缩算法集合中包括:多种压缩算法;通过所述压缩算法集合中的每种压缩算法分别对所述待压缩图像样本集合中的目标图像样本进行压缩处理;根据压缩处理结果确定所述目标图像样本所对应的最优压缩算法;基于所述待压缩图像样本集合和所述目标图像样本所对应的最优压缩算法对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
进一步的,所述压缩处理结果包括:每种压缩算法对应的压缩比。
进一步的,还包括:当每种压缩算法对应的压缩比均大于预设阈值时,确定不对所述目标图像样本进行压缩;当每种压缩算法对应的压缩比不都大于所述预设阈值时,将最小压缩比对应的压缩算法作为所述目标图像样本所对应的最优压缩算法。
第二方面,本发明实施例还提供了一种图像压缩的装置,包括:获取单元,用于获取待压缩视频流;所述待压缩视频流包含多帧图像;最优压缩算法确定单元,用于根据所述多帧图像中的当前帧图像,从压缩算法集合中确定所述当前帧图像所对应的最优压缩算法;压缩处理单元,用于采用所述最优压缩算法对目标帧图像进行压缩处理;所述目标帧图像包括以下任一种:所述当前帧图像和所述当前帧图像之后的预设帧图像。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
第四方面,本发明实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机运行所述计算机程序时执行执行上述第一方面任一项所述的方法的步骤。
在本发明实施例中,先获取待压缩视频流;然后,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法;最后,采用最优压缩算法对目标帧图像(即当前帧图像或当前帧图像之后的预设帧图像)进行压缩处理。通过上述描述可知,该方法能够从压缩算法集合中确定当前帧图像所对应的最优压缩算法,进而通过确定的最优压缩算法对当前帧图像或当前帧图像之后的预设帧图像进行压缩处理,这样,在对待压缩视频流进行压缩时,能够为待压缩视频流中的每帧图像都提供最优压缩算法,使得最终压缩得到的图像数据最小,能够最大限度的提高图像数据的传输效率,缓解了现有的图像压缩方法无法对视频流中的图像帧提供最优的压缩算法,无法有效的提高图像数据传输效率的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的电子设备的示意图;
图2为本发明实施例提供的图像压缩的方法的流程图;
图3为本发明实施例提供的一种在线学习机制的方法流程图;
图4为本发明实施例提供的另一种在线学习机制的方法流程图;
图5为本发明实施例提供的一种训练压缩算法预测模型的方法流程图;
图6为本发明实施例提供的另一种训练压缩算法预测模型的方法流程图;
图7为本发明实施例提供的图像压缩的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
首先,参照图1来描述用于实现本发明实施例的电子设备100,该电子设备可以用于运行本发明各实施例的图像压缩的方法。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储器104、输入装置106、输出装置108以及摄像机110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以采用数字信号处理器(DSP,Digital Signal Processing)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、可编程逻辑阵列(PLA,Programmable Logic Array)和ASIC(Application Specific Integrated Circuit)中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(CPU,Central ProcessingUnit)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述摄像机110用于进行待压缩视频流的采集,其中,摄像机所采集的待压缩视频流经过所述图像压缩的方法进行处理之后得到多帧压缩后的图像,例如,摄像机可以拍摄用户期望的图像(例如照片、视频等),然后,将该图像经过所述图像压缩的方法进行处理之后得到压缩后的图像,摄像机还可以将所拍摄的图像存储在所述存储器104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的图像压缩的方法的电子设备可以被实现为诸如智能手机、平板电脑等智能移动终端,还可以被实现为具备计算能力的摄像机设备。
实施例2:
根据本发明实施例,提供了一种图像压缩的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种图像压缩的方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取待压缩视频流。
其中,待压缩视频流中包含多帧图像。
在本发明实施例中,上述待压缩视频流可以为摄像机实时拍摄得到的视频流,还可以为预先存储的视频流,还可以是从目标位置中下载得到的视频流,本实施例对上述待压缩视频流的获取方式不做具体限定。
另外,本发明实施例中的图像压缩的方法可以应用于摄像机中的硬件处理器,当上述图像压缩的方法应用于摄像机中的硬件处理器时,该硬件处理器能够实时对摄像机拍摄的视频流中的图像进行处理;当然,上述图像压缩的方法还可以用于其它具备计算能力的设备(例如,计算机、手机、平板电脑等),当上述图像压缩的方法应用于其它具备计算能力的设备时,该设备可以对视频流中的图像进行后处理,本发明实施例对上述实现过程不进行具体限定。
步骤S204,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法。
步骤S206,采用最优压缩算法对目标帧图像进行压缩处理。
其中,目标帧图像包括以下任一种:当前帧图像和当前帧图像之后的预设帧图像。
在本发明实施例中,具体提供了两种模式的图像压缩方法,一种是串行模式的图像压缩方法,另一种是并行模式的图像压缩方法,下面分别对两种模式的图像压缩方法进行介绍:
一、串行模式的图像压缩方法
在该种模式下,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法后,通过确定的最优压缩算法对当前帧图像进行压缩处理。也就是,对待压缩视频流进行压缩时,都能够从压缩算法集合中为待压缩视频流的当前帧图像确定其对应的最优压缩算法,然后再采用确定的最优压缩算法对当前帧图像进行压缩处理,即确定最优压缩算法的过程和压缩处理的过程是串行的。
二、并行模式的图像压缩方法
在该种模式下,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法后,通过确定的最优压缩算法对当前帧图像之后的预设帧图像进行压缩处理,而在确定当前帧图像所对应的最优压缩算法的同时,基于当前帧图像之前的预设帧图像确定的最优压缩算法,对当前帧图像进行压缩处理,也就是在确定最优压缩算法的同时,也进行图像的压缩处理,确定最优压缩算法的过程和压缩处理的过程是并行的。在该种模式下,是基于当前帧图像确定的最优压缩算法对当前帧图像之后的预设帧图像进行压缩处理,从而进一步节省图像压缩处理的时间。
下面以当前帧图像之后的预设帧图像为当前帧图像的下一帧图像为例进行说明:
发明人之所以想到上述并行模式的图像压缩方法是因为:在一个视频流中,一般1秒的时间内,会拍摄得到30帧图像,在1/30的时间内,相邻两帧的图像不管是在图像场景、还是在图像质量方面,都是非常相近的,所以基于当前帧图像确定的最优压缩算法与基于下一帧图像确定的最优压缩算法变化不大,这样,就完全可以基于当前帧图像确定的最优压缩算法对下一帧图像进行压缩处理,达到节省图像压缩处理时间的目的。
为了能够凸显出上述并行模式的图像压缩方法的正确性,下面以一个具体实例进行对比说明:
假设有10张图像,编号分别为1,2,3,….,10,在压缩算法集合中确定得到这10张图像中,前5张图像对应的最优压缩算法为a压缩算法,后5张图像对应的最优压缩算法为b压缩算法。
那么,串行模式下的图像压缩时,前5张图像即采用a压缩算法,后5张图像即采用b压缩算法;
而并行模式下的图像压缩时,第1张图像前面没有图像,那么采用预设初始压缩算法对第1张图像进行压缩,而第2张图像至第6张图像采用前5张图像对应的压缩算法,即a压缩算法,第7张至第10张的图像采用b压缩算法;
通过两种模式下的压缩结果可知,相较于串行模式下的图像压缩,并行模式下的图像压缩中,只有第1张图像和第6张图像所采用的压缩算法不是其自身所对应的压缩算法,而对于一个包含大量图像帧的视频流来讲,这样的压缩误差完全没有影响,另外,上述并行模式下的压缩方法显然是牺牲了小部分的压缩精度,换取了节省大量压缩时间的效果。
需要说明的是:当前帧图像之后的预设帧图像也可以不是当前帧图像的下一帧图像,其可以为当前帧图像之后的任一帧图像,但是,当前帧图像之后的预设帧图像距离当前帧图像越远时,压缩精度就越差。
在本发明实施例中,先获取待压缩视频流;然后,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法;最后,采用最优压缩算法对目标帧图像(即当前帧图像或当前帧图像之后的预设帧图像)进行压缩处理。通过上述描述可知,该方法能够从压缩算法集合中确定当前帧图像所对应的最优压缩算法,进而通过确定的最优压缩算法对当前帧图像或当前帧图像之后的预设帧图像进行压缩处理,这样,在对待压缩视频流进行压缩时,能够为待压缩视频流中的每帧图像都提供最优压缩算法,使得最终压缩得到的图像数据最小,能够最大限度的提高图像数据的传输效率,缓解了现有的图像压缩方法无法对视频流中的图像帧提供最优的压缩算法,无法有效的提高图像数据传输效率的技术问题。
上述内容对本发明的图像压缩的方法进行了简要介绍,下面对并行模式的图像压缩方法中的其它内容进行详细介绍。
在本发明的一个可选实施例中,当前帧图像为待压缩视频流中的第一帧待图像时,该方法还包括:
采用预设初始压缩算法对第一帧图像进行压缩处理。
在本发明的一个可选实施例中,该方法还包括:
基于当前帧图像之前的预设帧图像确定的最优压缩算法,对当前帧图像进行压缩处理。
需要说明的是,当当前帧图像之后的预设帧图像为当前帧图像的下一帧图像时,当前帧图像之前的预设帧图像为当前帧图像的上一帧图像;而当当前帧图像之后的预设帧图像为当前帧图像之后的第二帧图像时,当前帧图像之前的预设帧图像为当前帧图像之前的第二帧图像,两个是对应的。
在确定当前帧图像所对应的最优压缩算法时,可以采用压缩算法预测模型对当前帧图像进行压缩算法预测,进而从压缩算法集合中确定当前帧图像所对应的最优压缩算法。也就是在确定最优压缩算法时,可以基于压缩算法预测模型进行确定。本发明实施例中给出了如下两种用于确定当前帧图像所对应的最优压缩算法的压缩算法预测模型,下面分别对这两种模型确定当前帧图像所对应的最优压缩算法的过程进行介绍:
第一种压缩算法模型确定当前帧图像所对应的最优压缩算法的过程:采用压缩算法预测模型对当前帧图像进行压缩算法预测,得到当前帧图像所对应的最优压缩算法。也就是将当前帧图像输入至压缩算法预测模型,便可直接输出得到当前帧图像所对应的最优压缩算法。
第二种压缩算法模型确定当前帧图像所对应的最优压缩算法的过程:采用压缩算法预测模型对当前帧图像进行压缩算法预测,得到压缩算法集合中每种压缩算法对应的压缩比;根据压缩算法集合中每种压缩算法对应的压缩比确定当前帧图像所对应的最优压缩算法。也就是将当前帧图像输入至压缩算法预测模型,输出得到的是每种压缩算法对当前帧图像压缩后的压缩比(即每种压缩算法对应的压缩比),进而再根据每种压缩算法对应的压缩比确定当前帧图像所对应的最优压缩算法。
其中,将每种压缩算法对应的压缩比中最小压缩比对应的压缩算法作为当前帧图像所对应的最优压缩算法。
需要说明的是:如果每种压缩算法对应的压缩比均大于预设阈值时,确定当前帧图像所对应的最优压缩算法为不压缩的算法;如果每种压缩算法对应的压缩比中不都大于预设阈值时,将最小压缩比对应的压缩算法作为当前帧图像所对应的最优压缩算法。
通俗地讲,如果每种压缩算法对应的压缩比均大于1(即预设阈值,这说明压缩后的图像大小大于压缩前图像的大小),那么确定当前帧图像所对应的最优压缩算法为不压缩的算法;而如果每种压缩算法对应的压缩比不都大于1,那么就将压缩比中最小压缩比所对应的压缩算法作为当前帧图像所对应的最优压缩算法,因为压缩比越小,说明压缩后的图像的大小越小,压缩效果越好。
考虑到压缩算法预测模型使用时间长后,可能会存在效果不佳的情况,本发明实施例设计了如下在线学习的机制对两种压缩算法模型进行在线学习:
当压缩算法预测模型为第一种压缩算法模型时,参考图3,对第一种压缩算法模型进行在线学习的过程如下:
步骤S301,获取最优压缩算法对目标帧图像进行压缩处理后,最优压缩算法对应的真实压缩比;
步骤S302,采用压缩算法集合中除最优压缩算法之外的预设压缩算法对目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;
步骤S303,基于最优压缩算法对应的真实压缩比和预设压缩算法对应的真实压缩比,确定目标帧图像所对应的真实最优压缩算法;
步骤S304,基于目标帧图像所对应的真实最优压缩算法和目标帧图像对压缩算法预测模型进行在线训练,更新压缩算法预测模型中的参数。
在第一种压缩算法预测模型使用过程中,若发现预测得到的最优压缩算法对图像的压缩效果不佳,可以打开该在线学习的机制,第一种压缩算法预测模型通过上述在线学习的机制,便能实现自身的在线训练,无需再对该压缩算法预测模型进行线下训练,更加方便,实用性好。
当压缩算法预测模型为第二种压缩算法模型时,参考图4,对第二种压缩算法模型进行在线学习的过程如下:
步骤S401,获取最优压缩算法对目标帧图像进行压缩处理后,最优压缩算法对应的真实压缩比;
步骤S402,采用压缩算法集合中除最优压缩算法之外的预设压缩算法对目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;
步骤S403,基于最优压缩算法对应的真实压缩比、预设压缩算法对应的真实压缩比和目标帧图像对压缩算法预测模型进行在线训练,更新压缩算法预测模型中的参数。
在第二种压缩算法预测模型使用过程中,若发现预测得到的最优压缩算法对图像的压缩效果不佳,可以打开该在线学习的机制,第二种压缩算法预测模型通过上述在线学习的机制,便能实现自身的在线训练,无需再对该压缩算法预测模型进行线下训练,更加方便,实用性好。
在本发明的一个可选实施例中,在采用最优压缩算法对目标帧图像进行压缩处理之后,该方法还包括:
判断压缩处理后的结果是否满足预设要求;如果不满足预设要求,则根据压缩处理后的结果对最优压缩算法进行调整,以采用调整后的最优压缩算法对目标帧图像进行压缩处理。
下面以一个实例对该过程进行介绍:如果通过最优压缩算法对目标帧图像进行压缩处理之后,压缩处理后的结果(例如,压缩比)为0.8,预设要求是不大于0.6,显然不满足预设要求,那么就对最优压缩算法进行调整,将次优压缩算法调整为最优压缩算法,进而采用调整后的最优压缩算法对目标帧图像进行压缩处理。
为了更好的理解本发明的上述图像压缩的方法,下面以伪代码的形式对上述两种模式的图像压缩方法,以及并行模式的图像压缩方法和在线学习机制进行介绍:
模式一:串行模式的图像压缩方法
inputset S={frame0,frame1,frame2,…},compression algorithm set N={n0,n1,n2,…}//输入视频流S,压缩算法集合N;
exclude_compression_algorithm=None
for frame in S://遍历视频流每一帧;
compression_ratios=CompressPredictNetwork(frame)//预测当前帧所有压缩算法对应的压缩比;
compression_algorithm=index_min(compression_ratios)//取最小压缩比对应的压缩算法(即最优压缩算法);
if exclude_compression_algorithm==compression_algorithm:
compression_algorithm==index_second_min(compression_ratios)//如果模型预测的最优算法是停用算法,则选择次优算法;
compress_ratio=sizeof(Res)/sizeof(frame)//计算实时压缩比;
exclude_compression_algorithm=None
if compress_ratio>compress_threshold:
exclude_compression_algorithm=compression_algorithm//压缩比不满足预设要求,当前压缩算法停用一帧;
Res=compression_algorithm(frame)//通过预测得到的最优压缩算法处理当前帧,得到压缩结果Res。
模式二:并行模式的图像压缩方法
模式三:并行模式的图像压缩方法和在线学习机制
下面分别对上述两种压缩算法预测模型的训练过程进行介绍:
在本发明的一个可选实施例中,参考图5,训练第一种压缩算法预测模型的过程包括如下步骤:
步骤S501,获取待压缩图像样本集合和压缩算法集合。
其中,待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,压缩算法集合中包括:多种压缩算法;
具体的,为了确保训练得到的压缩算法预测模型能够对各种图像都进行准确的最优压缩算法预测,在获取待压缩图像样本集合时,待压缩图像样本集合中应该包含多种多样的待压缩图像样本,经发明人研究发现,噪声级、图像场景和感光度是影响压缩算法的主要因素,所以,待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本。
上述场景可以理解为图像的纹理是单调还是丰富,图像中是否含有运动物体,图像是前景还是背景等一些图像内容信息。
步骤S502,通过压缩算法集合中的每种压缩算法分别对待压缩图像样本集合中的目标图像样本进行压缩处理。
其中,目标图像样本为待压缩图像样本集合中的任一待压缩图像样本。
通俗地讲,即为采用压缩算法集合中的每种压缩算法对目标图像样本都进行一次图像压缩处理,得到不同压缩算法对该目标图像样本进行压缩后的压缩处理结果。
在本发明实施例中,上述压缩处理结果包括:每种压缩算法对应的压缩比。
所谓的压缩比是指压缩后的图像的大小与压缩前的图像的大小之间的比值。
步骤S503,根据压缩处理结果确定目标图像样本所对应的最优压缩算法。
具体的:
(1)如果每种压缩算法对应的压缩比均大于预设阈值时,确定不对目标图像样本进行压缩;
(2)如果每种压缩算法对应的压缩比不都大于预设阈值时,将最小压缩比对应的压缩算法作为目标图像样本所对应的最优压缩算法。
通俗地讲,如果每种压缩算法对应的压缩比均大于1(即预设阈值,这说明压缩后的图像大小大于压缩前图像的大小),那么确定目标图像样本所对应的最优压缩算法为不压缩的算法;而如果每种压缩算法对目标图像样本的压缩比不都大于1,那么就将压缩比中最小压缩比所对应的压缩算法作为目标图像样本所对应的最优压缩算法,因为压缩比越小,说明压缩后的图像的大小越小,压缩效果越好。
步骤S504,基于待压缩图像样本集合和目标图像样本所对应的最优压缩算法对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
在对压缩算法预测模型进行训练时,将待压缩图像样本集合中的待压缩图像样本输入至压缩算法预测模型,输出得到该待压缩图像样本所对应的最优压缩算法,将模型输出的最优压缩算法与前面步骤得到的目标图像样本所对应的最优压缩算法进行比较,如果对于同一张图像样本,模型输出的最优压缩算法与之前确定的最优压缩算法不一致,则对压缩算法预测模型进行调节,如此,进行多次调节后,便训练得到了压缩算法预测模型。
同样,下面以伪代码的形式对第一种压缩算法预测模型的训练过程进行介绍:
在本发明的一个可选实施例中,参考图6,训练第二种压缩算法预测模型的过程包括如下步骤:
步骤S601,获取待压缩图像样本集合和压缩算法集合。
其中,待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,压缩算法集合中包括:多种压缩算法;
具体的,为了确保训练得到的压缩算法预测模型能够对各种图像都进行准确的最优压缩算法预测,在获取待压缩图像样本集合时,待压缩图像样本集合中应该包含多种多样的待压缩图像样本,经发明人研究发现,噪声级、图像场景和感光度是影响压缩算法的主要因素,所以,待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本。
上述场景可以理解为图像的纹理是单调还是丰富,图像中是否含有运动物体,图像是前景还是背景等一些图像内容信息。
步骤S602,通过压缩算法集合中的每种压缩算法分别对待压缩图像样本集合中的目标图像样本进行压缩处理,得到每种压缩算法对目标图像样本压缩的压缩比。
其中,目标图像样本为待压缩图像样本集合中的任一待压缩图像样本。
通俗地讲,即为采用压缩算法集合中的每种压缩算法对目标图像样本都进行一次图像压缩处理,得到不同压缩算法对该目标图像样本进行压缩后的压缩比。
所谓的压缩比是指压缩后的图像的大小与压缩前的图像的大小之间的比值。
步骤S603,基于待压缩图像样本集合和每种压缩算法对目标图像样本压缩的压缩比对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
在对压缩算法预测模型进行训练时,将待压缩图像样本集合中的待压缩图像样本输入至压缩算法预测模型,输出得到每种压缩算法对该待压缩图像样本压缩的压缩比,将模型输出的每种压缩算法对该待压缩图像样本压缩的压缩比与前面步骤得到的每种压缩算法对目标图像样本压缩的压缩比进行比较,如果对于同一张图像样本,模型输出的压缩算法对应的压缩比与之前确定的压缩算法对应的压缩比不一致,则对压缩算法预测模型进行调节,如此,进行多次调节后,便训练得到了压缩算法预测模型。
同样,下面以伪代码的形式对第二种压缩算法预测模型的训练过程进行介绍:
本发明的图像压缩的方法能够为视频流中的每帧图像都能提供最优压缩算法,使得最终压缩得到的图像数据最小,能够最大限度的提高图像数据的传输效率,另外,并行模式的图像压缩方法还能够提高并行度,大量节省图像压缩的时间。
实施例3:
本发明实施例还提供了一种图像压缩的装置,该图像压缩的装置主要用于执行本发明实施例上述内容所提供的图像压缩的方法,以下对本发明实施例提供的图像压缩的装置做具体介绍。
图7是根据本发明实施例的一种图像压缩的装置的示意图,如图7所示,该图像压缩的装置主要包括:获取单元10、最优压缩算法确定单元20和压缩处理单元30,其中:
获取单元,用于获取待压缩视频流;待压缩视频流包含多帧图像;
最优压缩算法确定单元,用于根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法;
压缩处理单元,用于采用最优压缩算法对目标帧图像进行压缩处理;目标帧图像包括以下任一种:当前帧图像和当前帧图像之后的预设帧图像。
在本发明实施例中,先获取待压缩视频流;然后,根据多帧图像中的当前帧图像,从压缩算法集合中确定当前帧图像所对应的最优压缩算法;最后,采用最优压缩算法对目标帧图像(即当前帧图像或当前帧图像之后的预设帧图像)进行压缩处理。通过上述描述可知,该方法能够从压缩算法集合中确定当前帧图像所对应的最优压缩算法,进而通过确定的最优压缩算法对当前帧图像或当前帧图像之后的预设帧图像进行压缩处理,这样,在对待压缩视频流进行压缩时,能够为待压缩视频流中的每帧图像都提供最优压缩算法,使得最终压缩得到的图像数据最小,能够最大限度的提高图像数据的传输效率,缓解了现有的图像压缩方法无法对视频流中的图像帧提供最优的压缩算法,无法有效的提高图像数据传输效率的技术问题。
可选地,当当前帧图像为待压缩视频流中的第一帧图像时,该装置还用于:采用预设初始压缩算法对第一帧图像进行压缩处理。
可选地,该装置还用于:基于当前帧图像之前的预设帧图像确定的最优压缩算法,对目标帧图像进行压缩处理。
可选地,最优压缩算法确定单元还用于:采用压缩算法预测模型对当前帧图像进行压缩算法预测,进而从压缩算法集合中确定当前帧图像所对应的最优压缩算法。
可选地,最优压缩算法确定单元还用于:采用压缩算法预测模型对当前帧图像进行压缩算法预测,得到压缩算法集合中每种压缩算法对应的压缩比;根据压缩算法集合中每种压缩算法对应的压缩比确定当前帧图像所对应的最优压缩算法。
可选地,该装置还用于:获取最优压缩算法对目标帧图像进行压缩处理后,最优压缩算法对应的真实压缩比;采用压缩算法集合中除最优压缩算法之外的预设压缩算法对目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;基于最优压缩算法对应的真实压缩比、预设压缩算法对应的真实压缩比和目标帧图像对压缩算法预测模型进行在线训练,更新压缩算法预测模型中的参数。
可选地,该装置还用于:获取最优压缩算法对目标帧图像进行压缩处理后,最优压缩算法对应的真实压缩比;采用压缩算法集合中除最优压缩算法之外的预设压缩算法对目标帧图像进行压缩处理,得到预设压缩算法对应的真实压缩比;基于最优压缩算法对应的真实压缩比和预设压缩算法对应的真实压缩比,确定目标帧图像所对应的真实最优压缩算法;基于目标帧图像所对应的真实最优压缩算法和目标帧图像对压缩算法预测模型进行在线训练,更新压缩算法预测模型中的参数。
可选地,该装置还用于:判断压缩处理后的结果是否满足预设要求;如果不满足预设要求,则根据压缩处理后的结果对最优压缩算法进行调整。
可选地,该装置还用于:获取待压缩图像样本集合和压缩算法集合;待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,压缩算法集合中包括:多种压缩算法;通过压缩算法集合中的每种压缩算法分别对待压缩图像样本集合中的目标图像样本进行压缩处理,得到每种压缩算法对目标图像样本压缩的压缩比;基于待压缩图像样本集合和每种压缩算法对目标图像样本压缩的压缩比对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
可选地,该装置还用于:获取待压缩图像样本集合和压缩算法集合;待压缩图像样本集合中至少包括:多张不同噪声级的待压缩图像样本、多张不同场景的待压缩图像样本和多张不同感光度的待压缩图像样本,压缩算法集合中包括:多种压缩算法;通过压缩算法集合中的每种压缩算法分别对待压缩图像样本集合中的目标图像样本进行压缩处理;根据压缩处理结果确定目标图像样本所对应的最优压缩算法;基于待压缩图像样本集合和目标图像样本所对应的最优压缩算法对压缩算法预测模型进行训练,得到训练完成的压缩算法预测模型。
可选地,压缩处理结果包括:每种压缩算法对应的压缩比。
可选地,该装置还用于:当每种压缩算法对应的压缩比均大于预设阈值时,确定不对目标图像样本进行压缩;当每种压缩算法对应的压缩比不都大于预设阈值时,将最小压缩比对应的压缩算法作为目标图像样本所对应的最优压缩算法。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明的另一个实施中,还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机运行所述计算机程序时执行上述方法实施例2中任一项所述的方法的步骤。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。