视频压缩处理方法及装置、电子设备及存储介质与流程

文档序号:17074121发布日期:2019-03-08 23:34阅读:138来源:国知局
视频压缩处理方法及装置、电子设备及存储介质与流程

本发明涉及信息技术领域,尤其涉及一种视频压缩处理方法及装置、电子设备及存储介质。



背景技术:

视频压缩被广泛应用在各类视频系统中,对于减少视频的存储和传输空间具有十分重要的意义。于此同时很多的计算机视觉任务对于视频压缩的质量十分敏感,因此进一步提升视频压缩的性能,对于其他的视频任务也具有很大的帮助。相关技术中提出了多种视频压缩技术,但是现有的视频压缩技术要不压缩率过低,要不基于视频信息重建的视频质量很差。



技术实现要素:

有鉴于此,本发明实施例期望提供一种视频压缩处理方法及装置、电子设备及存储介质。

本发明的技术方案是这样实现的:

一种视频压缩处理方法,其特征在于,包括:

利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息。

基于上述方案,所述利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息,包括:

根据当前原始帧及前一重建帧获取第一运动信息;

根据所述第一运动信息及所述前一重建帧获得当前预测帧;

根据所述当前原始帧及所述当前预测帧获得第一残差信息,其中,所述第一运动信息及所述第一残差信息,用于形成所述视频压缩信息。

基于上述方案,所述利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息,还包括:根据第一残差信息及所述当前预测帧获得当前重建帧,其中,所述当前重建帧与下一原始帧共同用于获取下一原始帧压缩的第一运动信息。

基于上述方案,所述根据所述第一运动信息及所述前一重建帧获得当前预测帧,包括:

对所述第一运动信息进行编码得到第一运动特征;

对所述第一运动特征进行量化得到第二运动特征;

对所述第二运动特征解码得到重建的第二运动信息;

根据所述前一重建帧和第二运动信息得到当前预测帧。

基于上述方案,对所述第一运动信息进行编码得到第一运动特征,包括:

第一卷积层对所述第一运动信息进行卷积得到第一编码值;

第一编码值对所述第一编码值进行归一化得到第一归一化值;

第n卷积层对第n-1归一化层输出的第n-1归一值进行卷积得到第n编码值;

第n归一化层对第n编码值进行归一化处理,得到第n归一化值;

第n卷积层对第n-1归一化值进行归一化处理,得到所述第一运动特征;

其中,n为大于1且小于n的正整数,n为卷积层的个数。

基于上述方案,所述对所述第二运动特征解码得到重建的第二运动信息,包括:

第一反卷积层对所述第一运动特征进行反卷积得到第一解码值;

第一反归一化层对所述第一解码值进行反归一化处理得到第1反归一化值;

第n反卷积层对第n-1反归一化层输出的第n-1反归一化值进行反卷积得到第n解码值;

第n反归一化层对第n解码值进行归一化处理输出第n反归一化值;

第n反卷积层对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

基于上述方案,所述根据所述当前原始帧及所述当前预测帧,获得第一残差信息,包括:

根据所述当前原始帧和所述当前预测帧获得第一残差信息;

对所述第一残差信息进行编码得到第一残差特征;

对所述第一残差特征进行量化得到第二残差特征;

其中,所述第二残差特征及基于所述第一运动信息形成的第二运动特征为:所述视频压缩信息的组成部分。

基于上述方案,所述根据所述前一重建帧和第二运动信息得到当前预测帧,包括:

拼接所述前一重建帧、所述第二运动信息及投影帧得到第一拼接帧,其中,所述投影帧为基于所述前一重建帧及所述第二运动信息卷积生成的;

对所述第一拼接帧进行卷积得到第一卷积帧;

基于所述第一卷积帧进行s+1次第一残差处理和s次池化处理得到第一中间帧,其中,所述第一残差处理和所述池化处理间隔进行;

对所述第一中间帧进行s+1次第二残差处理和s次上采样处理得到第二中间帧,其中,所述第二残差处理和所述上采样处理间隔进行;

对所述第二中间帧进行第二卷积处理,得到第二卷积帧;

对所述第二卷积帧进行第三卷积处理,得到所述当前预测帧。

基于上述方案,所述上采样处理采用双线性差值方式。

基于上述方案,

所述端到端模型的损失值是:利用所述损失函数基于第一运动信息、第一残差信息、当前原始帧及当前预测帧确定的。

一种视频压缩处理装置,包括:

视频压缩模块,用于利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息。

基于上述方案,所述视频压缩模块,包括:

运动估计模块,用于根据当前原始帧及前一重建帧获取第一运动信息;

当前预测帧模块,用于根据所述第一运动信息及所述前一重建帧获得当前预测帧;

残差处理模块,用于根据所述当前原始帧及所述当前预测帧获得第一残差信息,其中,所述第一运动信息及所述第一残差信息,用于形成所述视频压缩信息。

基于上述方案,所述视频压缩模块,还包括:

重建帧模块,用于根据第一残差信息及所述当前预测帧获得当前重建帧,其中,所述当前重建帧与下一原始帧共同用于获取下一原始帧压缩的第一运动信息。

基于上述方案,所述当前预测帧模块,包括:

运动信息编码子模块,用于对所述第一运动信息进行编码得到第一运动特征;

第一量化子模块,用于对所述第一运动特征进行量化得到第二运动特征;

运动信息解码子模块,用于对所述第二运动特征解码得到重建的第二运动信息;

运动补偿子模块,用于根据所述前一重建帧和第二运动信息得到当前预测帧。

基于上述方案,所述运动信息编码子模块,包括:

第一卷积层,用于对所述第一运动信息进行卷积得到第一编码值;

第一编码值,用于对所述第一编码值进行归一化得到第一归一化值;

第n卷积层,用于对第n-1归一化层输出的第n-1归一值进行卷积得到第n编码值;

第n归一化层,用于对第n编码值进行归一化处理,得到第n归一化值;

第n反卷积层,用于对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

基于上述方案,所述运动信息解码子模块,包括:

第一反卷积层,用于对所述第一运动特征进行反卷积得到第一解码值;

第一反归一化层,用于对所述第一解码值进行反归一化处理得到第1反归一化值;

第n反卷积层,用于对第n-1反归一化层输出的第n-1反归一化值进行反卷积得到第n解码值;

第n反归一化层,用于对第n解码值进行归一化处理输出第n反归一化值;

第n反卷积层,用于对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

基于上述方案,所述残差处理模块,包括:

残差信息获得子模块,用于根据所述当前原始帧和所述当前预测帧获得第一残差信息;

残差编码子模块,用于对所述第一残差信息进行编码得到第一残差特征;

第二量化子模块,用于对所述第一残差特征进行量化得到第二残差特征;

其中,所述第二残差特征及基于所述第一运动信息形成的第二运动特征为:所述视频压缩信息的组成部分。

基于上述方案,所述运动补偿子模块,包括:

拼接层,用于拼接所述前一重建帧、所述第二运动信息及投影帧得到第一拼接帧,其中,所述投影帧为基于所述前一重建帧及所述第二运动信息卷积生成的;

第一卷积层,用于对所述第一拼接帧进行卷积得到第一卷积帧;

第一中间处理单元,用于基于所述第一卷积帧进行s+1次第一残差处理和s次池化处理得到第一中间帧,其中,所述第一残差处理和所述池化处理间隔进行;

第二中间处理单元,用于对所述第一中间帧进行s+1次第二残差处理和s次上采样处理得到第二中间帧,其中,所述第二残差处理和所述上采样处理间隔进行;

第二卷积层,用于对所述第二中间帧进行第二卷积处理,得到第二卷积帧;

第三卷积层,用于对所述第二卷积帧进行第三卷积处理,得到所述当前预测帧。

基于上述方案,所述上采样处理采用双线性差值方式。

基于上述方案,所述端到端模型的损失值是:利用所述损失函数基于第一运动信息、第一残差信息、当前原始帧及当前预测帧确定的。

一种电子设备,其特征在于,包括:

存储器;

处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,实现前述任意一个技术方案提供的视频压缩处理方法。

一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述任意一个技术方案提供的视频压缩处理方法。

本发明实施例提供的技术方案,利用单一的损失函数训练的端到端模型进行视频压缩处理,如此相对于利用不同损失函数训练的多个深度学习模块组合成的非端到端模型,减少了因为各深度学习模块之间损失值累加导致的视频压缩后失真大的现象,提升了视频压缩效果;与此同时,若采用单一的损失函数可以整体上平衡视频压缩信息的码率和损失值,在确保失真率一定的情况下,尽可能的整体上实现码率的提升。

附图说明

图1为本发明实施例提供的第一种视频压缩处理方法的流程示意图;

图2a为本发明实施例提供的第二种视频压缩处理方法的流程示意图;

图2b为本发明实施例提供的第三种视频压缩处理方法的流程示意图;

图3为本发明实施例提供的生成当前预测帧的流程示意图;

图4为本发明实施例提供的一种运动信息编码和解码的流程示意图;

图5为本发明实施例提供的生成第二残差特征的流程示意图;

图6为本发明实施例提供的另一种生成当前预测帧的流程示意图;

图7为本发明实施例提供的一种视频压缩处理装置的结构示意图;

图8为本发明实施例提供的第四种视频压缩处理方法的流程示意图;

图9为本发明实施例提供的一种基于前一重建帧和第二疼信息生成当前预测帧的示意图;

图10为本发明实施例提供的另一种基于前一重建帧和第二疼信息生成当前预测帧的示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图1所示,本实施例提供一种视频压缩处理方法,包括:

步骤s100:利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息。

本实施例提供的视频压缩处理方法,利用的是利用单一损失函数训练得到的端到端模型进行视频处理。

此处的所述单一损失函数即为一个损失函数。所述端到端模块为将需要压缩的视频输入之后,所述端到端模型就直接输出视频压缩信息。此处的视频压缩信息即为视频压缩之后的信息。

在本实施例中由于采用端到端模型,该端到端模型中的各个深度学习模块对视频处理的损失值由统一的损失函数进行计算,如此一方面,在训练仅用一个损失函数来计算损失值,减少了不同的深度学习模块利用不同损失函数计算损失值产生的冗余计算量;另一方面,由于采用同一个损失函数计算整个端到端模型的损失值,相对于不同深度学习模型分别计算损失值减少了损失值累积导致的模型最终的损失值不可控或者损失过大的现象,从而利用单一损失函数训练的端到端模型减少在训练中分别计算每一个深度学习模块损失值导致的视频压缩的失真率不可控的现象,确保了以预定码率压缩视频的视频压缩质量。

在一些实施例中,如图2a所示,所述步骤s100可包括:

步骤s101:根据当前原始帧及前一重建帧获取第一运动信息;

步骤s102:根据所述第一运动信息及所述前一重建帧获得当前预测帧;

步骤s103:根据所述当前原始帧及所述当前预测帧获得第一残差信息,其中,所述第一运动信息及所述第一残差信息,用于形成所述视频压缩信息。

在本实施例中,视频是由视频帧构成,这些视频帧按照一定时间顺序组成或播放,就会形成动态的连续的影音信息。

所述当前原始帧为需要压缩的视频帧;在本实施例中,会结合当前原始帧及前一重建帧得到第一运动信息。此处,前一重建帧可为基于前一个被压缩的视频帧得到压缩信息重建出的视频帧。前一重建帧对应于前一个原始帧。

所述第一运动信息可以用于描述当前原始帧和前一个原始帧内目标图形的运动状况。

例如,被压缩的视频是一种球赛的视频,在视频内参赛队员成像在不同视频帧之间的差异,就可以由所述第一运动信息来描述。

所述第一运动信息具体可为:所述当前原始帧和前一个重建帧之间逐像素的差分信息。

在获得所述第一运动信息之后,会基于所述第一运动信息和所述前一重建帧得到当前预测帧,具体可如:将所述前一重建帧投影得到一个投影帧,并结合所述第一运动信息校正投影帧,得到当前预测帧。此处的第一运动信息校正投影帧可包括:根据目标图形在前后两帧时间内的运动量,调整投影帧内对应像素的像素坐标,从而得到校正之后的所述当前预测帧。当然此处仅是举例,具体的基于前一重建帧及所述第一运动信息得到所述当前预测帧的方式有多种,不局限于该方式。该当前预测帧对应于在对视频解压缩时基于第一残差信息及前一个解压恢复的帧可得到的解压恢复的视频帧。在一些实施例中,可以将所述前一个重建帧和所述第一运动信息表征的前后两个视频帧的差分信息,逐像素进行加权求和得到所述当前预测帧。

在得到所述当前预测帧之后,将所述当前预测帧和所述当前原始帧进行差分等处理,就可以得到所述第一残差信息。所述第一残差信息可以具体反映了所述当前预测帧和所述当前原始帧之间的差异信息。

在本实施例中,所述第一残差信息和所述第一运动信息进行编码之后,就能够得到所述视频压缩信息。第一残差信息和所述第一运动信息表明的都是差异信息,相对于直接输出所述当前原始帧,可以大大的降低数据量从而实现视频的压缩。

如图2b所示,所述步骤s100还可包括:

步骤s104:根据第一残差信息及所述当前预测帧获得当前重建帧,其中,所述当前重建帧与下一原始帧共同用于获取下一原始帧压缩的第一运动信息。

在本实施例中,所述第一残差信息和当前预测帧可以用于获得当前重建帧,而当前重建帧可以用于下一原始帧的压缩。

在本实施例中,所述前一重建帧是基于前一原始帧对应的第一残差信息及前一预测帧得到的。故在本实施例中,所述步骤s101至步骤s104形成了一个视频压缩的循环处理。

在一些实施例中,如图3所示,步骤s102可包括:

步骤s1021:对所述第一运动信息进行编码得到第一运动特征;

步骤s1022:对所述第一运动特征进行量化得到第二运动特征;

步骤s1023:对所述第二运动特征解码得到重建的第二运动信息;

步骤s1024:根据所述前一重建帧和第二运动信息得到当前预测帧。

在一些实施例中,所述第一运动信息可为基于不同帧的比对得到的信息,可是一些尚未编码的像素信息等信息。在本实施例中,首先对第一运动信息进行编码,例如,利用预定视频编码格式对所述第一运动信息进行编码得到第一运动特征,此时,得到第一运动特征可认为是需要进一步量化处理的模拟信息。

在步骤s1022中对第一运动特征进行量化,得到量化后的第二运动特征。

量化第一运动特征的方式有很多种,例如,对第一运动特征进行四舍五入处理得到所述第二运动特征。再例如,对所述第一运动特征向上取整得到所述第二运动特征。还例如,对所述第一运动特征向下取整得到所述第二运动特征。

若在所述端到端模型的训练阶段,对所述第一运动特征的量化还可包括:

在所述第一运动特征加上一个预设噪声,得到所述第二运动特征。由于模型在训练的过程中涉及模型梯度求解,若直接进行四舍五入或者向上取整或向下取整会使得梯度求解困难,从而导致端到端模型训练出现异常,故在一些实施例中,通过所述预设噪声的引入,使得梯度求解可以实现,从而便于所述端到端模型的训练。

得到所述第二运动特征之后,将基于所述第二运动特征进行解码,从而模拟视频压缩解码过程中解码端对第二运动特征的解码,得到重建后的第二运动信息。

最后在步骤s1024中将结合第二运动信息及所述前一重建帧生成所述当前预测帧。

在一些实施例中,所述步骤s1021具体可包括:

第一卷积层对所述第一运动信息进行卷积得到第一编码值;

第一归一化层对所述第一编码值进行归一化得到第一归一化值;

第n卷积层对第n-1归一化层输出的第n-1归一值进行卷积得到第n编码值;

第n归一化层对第n编码值进行归一化处理,得到第n归一化值;

第n卷积层对第n-1归一化值进行归一化处理,得到所述第一运动特征;

其中,n为大于1且小于n的正整数,n为卷积层的个数。

本实施例中所述第一运动信息编码成所述第一运动特征可以利用卷积网络来实现。所述卷积网络可包括:n个卷积层和n-1个归一化层。卷积层和归一化层可以间隔分布。如此,卷积网络的第一卷积层(即第1个卷积层)直接接收到第一运动信息进行卷积处理得到第一编码值。在得到第一编码值之后,利用第一归一化层(即第1个归一化层)进行第一编码值的归一化。此处的第一编码值的归一化可以采用各种归一化处理来实现,具体的实现方式有多种,在此就不重复了。此处的归一化处理也可以称之为规范化操作。

如此,反复执行n次卷积和n-1次归一化处理之后就得到了第n卷积层输出的第n编码值即为所述第一运动特征。

所述n的取值可为不小于2的正整数,在一些实施例中,所述n的取值可为3、4或5等取值。

在本实施例中,所述第一卷积层至第n卷积层使用的卷积参数可相同。例如,所述卷积参数可为(m1,m2,s1),其中,m1表示m1*m1的卷积核;例如,所述m1的取值可为3或4等取值。m2表示该卷积层的输出个数。例如,所述m2可为128、256或512等取值。s2可为卷积核移动的步长,例如,s1的取值可为1或2等。若s1等于1,则一个图像输入该卷积层进行卷积处理之后得到输出图像的图像尺寸维持不变。若s2为2或2以上的正整数,则图像输入卷积层之后通过卷积处理得到的图像尺寸会缩小。

在一些实施例中,所述s1023可包括:

第一反卷积层对所述第一运动特征进行反卷积得到第一解码值;

第一反归一化层对所述第一解码值进行反归一化处理得到第一反归一化值;

第n反卷积层对第n-1反归一化层输出的第n-1反归一化值进行反卷积得到第n解码值;

第n反归一化层对第n解码值进行归一化处理输出第n反归一化值;

第n反卷积层对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

在本实施例中对所述第二运动特征的解码为所述第一运动信息编码的逆过程。在本实施例中,利用反卷积网络会得到所述第二运动信息。该反卷积网络包括与编码使用的卷积网络中卷积层数目相同的反卷积层。反卷积网络中包括的反归一化层个数与编码使用的卷积网络中归一化层数目相同。反卷积网络中,反卷积层和反归一化层间隔分布。在本实施例中,第一反卷积层至第n-1反卷积层使用的反卷积参数与编码过程中使用过的卷积参数对应,均可为(m1,m2,s1)。第n个反卷积层的反卷积参数可以不同。例如,第n个反卷积层使用的卷积核与所述第一反卷积层值第n-1反卷积层使用的卷积核相同,均是m1*m1的卷积核,但是输入通道数目可以变更。例如,第一反卷积层值第n-1反卷积层使用的反卷积参数为(3,128,2),则第n反卷积层的反卷积参数可为(3,2,2)。

在本实施例中,所述第一运动信息的编码器及所述第二运动特征的解码器,之间可以利用通过量化网络连接起来。图4所示的为对运动信息的编码及解码的网络结构示意图。图4中的gdn表示归一化层;igdn表示反归一化层;conv表示卷积层;deconv表示反卷积层。图4中vt表示所述第一运动信息;表示所述第二运动信息,mt表示第一运动特征表示第二运动特征。q代表量化操作。

在一些实施例中,如图5所示,所述s103可,包括:

步骤s1031:根据所述当前原始帧和所述当前预测帧获得第一残差信息;

步骤s1032:对所述第一残差信息进行编码得到第一残差特征;

步骤s1033:对所述第一残差特征进行量化得到第二残差特征;

其中,所述第二残差特征及基于所述第一运动信息形成的第二运动特征为:所述视频压缩信息的组成部分。

在本实施例中会结合当前原始帧和当前预测帧得到第一残差信息,例如,直接逐个像素比较所述当前原始帧和当前预测帧得到所述第一残差信息。

然后第一对残差信息进行编码得到所述第一残差特征。同样的需要对第一残差特征量化得到第二残差特征。此处的量化可包括:对第一残差特征的四舍五入、对第一残差特征的向上取整或对所述第一残差特征的向下取整。

在训练阶段同样的可以对所述第一残差特征添加一个预定噪声之后,得到所述第二残差特征。

在一些实施例中,所述s1024可包括:

拼接所述前一重建帧、所述第二运动信息及投影帧得到第一拼接帧,其中,所述投影帧为基于所述前一重建帧及所述第二运动信息卷积生成的;

对所述第一拼接帧进行卷积得到第一卷积帧;

基于所述第一卷积帧进行s+1次第一残差处理和s次池化处理得到第一中间帧,其中,所述第一残差处理和所述池化处理间隔进行;

对所述第一中间帧进行s+1次第二残差处理和s次上采样处理得到第二中间帧,其中,所述第二残差处理和所述上采样处理间隔进行;

对所述第二中间帧进行第二卷积处理,得到第二卷积帧;

对所述第二卷积帧进行第三卷积处理,得到所述当前预测帧。

所述s的取值可为2、3或4等取值。

在本实施例中,将所述前一重建帧、第二运动信息及投影帧进行拼接得到第一拼接帧。例如,所述前一重建帧可为w*h*c1的图像帧,所述第二运动信息可为w*h*c2;所述投影帧为w*h*c3的图像帧,则所述前一重建帧、第二运动信息及投影帧拼接得到的第一拼接帧可为:w*h*(c1+c2+c3)的图像帧。在该第一拼接帧中,每一个像素的数据长度从原来的c1、c2或c3变成了c1+c2+c3。所述投影帧可为所述前一重建帧和所述第二运动信息卷积之后得到的图像帧。例如,将前一重建帧与所述第一运动信息进行卷积,可以得到与所述前一重建帧包含同样多像素的投影帧。

例如,若所述s等于3,则所述步骤s1024可包括:

拼接所述前一重建帧、所述第二运动信息及投影帧得到第一拼接帧,其中,所述投影帧为基于所述前一重建帧及所述第二运动信息卷积生成的;

对所述第一拼接帧进行卷积得到第一卷积帧;

对所述第一卷积帧进行线性修正及卷积处理之后与所述第一卷积帧进行残差得到第一残差帧;

对所述第一残差帧进行池化处理的第一池化帧;

对所述第一池化帧进行线性修正及卷积之后与所述第一池化帧进行残差得到第二残差帧;

对所述第二残差帧进行池化处理得到第二池化帧;

对所述第二池化帧进行线性修正及卷积之后与所述第二池化帧残差得到第三残差帧;

对所述第三残差帧线性修正及卷积处理后与所述第三残差帧进行残差处理得到第四残差帧;

对所述第四残差帧进行上采样得到第一上采样帧;

对第二拼接帧进行线性修正及卷积处理后与所述第二拼接帧进行残差处理,得到第五残差帧,其中,所述第二拼接帧是基于所述第一上采样帧和所述第二残差帧生成的;

对所述第五残差帧进行上采样得到第二上采样帧;

对第三拼接帧进行线性修正及卷积处理后与所述第三拼接帧进行残差得到第六残差帧,其中,所述第三拼接帧是基于所述第二上采样帧及所述第一残差帧生成的;

对所述第六残差帧进行卷积得到第二卷积帧;

对所述第二卷积帧进行卷积得到所述当前预测帧。

在完成拼接之后,得到第一拼接帧,然后对第一拼接帧进行卷积之后,间隔进行预定次数的残差处理和池化处理,然后再间隔进行预定次数的残差处理和上采样处理,再进行卷积最后输出所述当前预测帧。

图6所示为获得当前预测帧的处理流程示意图。图6中为第二运动信息;代表的是投影帧;代表的是前一重建帧。

在一些实施例中,所述上采样处理采用双线性差值方式。

在本实施例中所述双线性插值可以通过在x方向和y方向上的插值处理,实现数据的上采样。所述x方向和y方向为相互垂直的方向。例如,在图像帧中,可以基于相邻两个像素值在行和列上分别进行插值处理,从而增加图像帧所包含的像素个数。

在一些实施例中,所述端到端模型的损失值是:利用所述损失函数基于第一运动信息、所述第一残差信息、所述当前原始帧及所述当前预测帧确定的。

具体如,所述第一运动信息被编码量化之后得到第二运动特征,所述第一残差信息编码量化之后得到第二残差特征,可以用于作为所述损失函数的自变量参与损失值的计算。

在一些实施例中,所述损失函数包括:

其中,loss为损失值;为所述当前帧和所述当前重建帧之间的失真值;为所述第一残差信息编码量化后的第二运动特征;为所述第一残差信息编码量化后第二残差特征;为对编码后的码字数量;为对编码后的码字数量;λ为码率和失真之间的平衡系数。

在一些实施例中,所述可为:基于当前原始帧和当前重建帧之间的峰值信噪比(peaksignaltonoiseratio,psnr)。例如,psnr=10*log10((2^n-1)^2/mse);mse可为所述当前原始帧和所述当前重建帧之间的均方误差。

在一些实施例中,所述可为:基于当前原始帧和当前重建帧之间的平均平方误差(structuralsimilarityindex,ssim)或者,多层级平均平方误差(multi-scale-structuralsimilarityindex,ms-ssim)确定的。

的码率和对的码率会相同,故对的代价是相同的。此时,λ码率和失真之间的平衡系数。若λ不变,对编码后的码字数量越高,则损失值越大,对编码后的码字数量越低,则损失值越小。

在一些实施例中,所述λ是可调的,不同的端到端模型的λ可是不同的。若λ越大,则的影响就越小,则码率对端到端模型的损失影响越大。

在本实施例中,前述的损失函数在λ足够大时,则损失函数可等效为:

若所述端到端模型编码后的码字数量比较低或者λ比较小时,所述损失函数可等效为:

总之,在本实施例中采用端到端模型进行视频压缩编码,如此得到的视频压缩信息可以很好的平衡码率和视频失真,一方面确保压缩后的视频的还原效果,另一方面可以确保有足够的压缩率;实现了视频压缩效果和压缩率之间很好的平衡。

本实施例提供一种视频压缩处理装置,包括:

视频压缩模块,用于利用采用单一损失函数训练得到的端到端模型进行视频压缩,获得视频压缩信息。

在本实施例中,所述端到端模块可包括多个用于视频压缩的深度学习模型,但是这些深度学习模块用同一个损失函数计算损失,可以很好控制整个端到端模型的损失输出,确保视频压缩的压缩效果,并实现很好的码率和失真之间的平衡。

在一些实施例中,所述视频压缩处理装置还包括:存储模块,用于存储信息,例如,存储模块可以用于缓存当前原始帧或前一原始帧的重建帧等。该存储模块与所述视频压缩模块连接,用于为视频压缩处理提供信息存储的空间。

在一些实施例中,如图7所示,所述视频压缩模块,包括:

运动估计模块101,用于根据当前原始帧及前一重建帧获取第一运动信息;

当前预测帧模块102,用于根据所述第一运动信息及所述前一重建帧获得当前预测帧;

残差处理模块103,用于根据所述当前原始帧及所述当前预测帧获得第一残差信息,其中,所述第一运动信息及所述第一残差信息,用于形成所述视频压缩信息。

在一些实施例中,如图7所示,所述视频压缩模块还包括:

重建帧模块104,用于根据第一残差信息及所述当前预测帧获得当前重建帧,其中,所述当前重建帧与下一原始帧共同用于获取下一原始帧压缩的第一运动信息。

在一些实施例中,所述当前预测帧模块102,包括:

运动信息编码子模块,用于对所述第一运动信息进行编码得到第一运动特征;

第一量化子模块,用于对所述第一运动特征进行量化得到第二运动特征;

运动信息解码子模块,用于对所述第二运动特征解码得到重建的第二运动信息;

运动补偿子模块,用于根据所述前一重建帧和第二运动信息得到当前预测帧。

在一些实施例中,所述运动信息编码子模块,包括:

所述运动信息编码子模块,包括:

第一卷积层,用于对所述第一运动信息进行卷积得到第一编码值;

第一归一层,用于对所述第一编码值进行归一化得到第一归一化值;

第n卷积层,用于对第n-1归一化层输出的第n-1归一值进行卷积得到第n编码值;

第n归一化层,用于对第n编码值进行归一化处理,得到第n归一化值;

第n反卷积层,用于对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

在一些实施例中,所述运动信息解码子模块,包括:

第一反卷积层,用于对所述第一运动特征进行反卷积得到第一解码值;

第一反归一化层,用于对所述第一解码值进行反归一化处理得到第一反归一化值;

第n反卷积层,用于对第n-1反归一化层输出的第n-1反归一化值进行反卷积得到第n解码值;

第n反归一化层,用于对第n解码值进行归一化处理输出第n反归一化值;

第n反卷积层,用于对第n-1反归一化值进行反卷积得到所述第二运动信息;

其中,n为大于1且小于n的正整数,n为反卷积层的个数。

在一些实施例中,残差处理模块103,包括:

残差信息获得子模块,用于根据所述当前原始帧和所述当前预测帧获得第一残差信息;

残差编码子模块,用于对所述第一残差信息进行编码得到第一残差特征;

第二量化子模块,用于对所述第一残差特征进行量化得到第二残差特征;

其中,所述第二残差特征及基于所述第一运动信息形成的第二运动特征为:所述视频压缩信息的组成部分。

在一些实施例中,所述运动补偿子模块,包括:

拼接层,用于拼接所述前一重建帧、所述第二运动信息及投影帧得到第一拼接帧,其中,所述投影帧为基于所述前一重建帧及所述第二运动信息卷积生成的;

第一卷积层,用于对所述第一拼接帧进行卷积得到第一卷积帧;

第一中间处理单元,用于基于所述第一卷积帧进行s+1次第一残差处理和s次池化处理得到第一中间帧,其中,所述第一残差处理和所述池化处理间隔进行;

第二中间处理单元,用于对所述第一中间帧进行s+1次第二残差处理和s次上采样处理得到第二中间帧,其中,所述第二残差处理和所述上采样处理间隔进行;

第二卷积层,用于对所述第二中间帧进行第二卷积处理,得到第二卷积帧;

第三卷积层,用于对所述第二卷积帧进行第三卷积处理,得到所述当前预测帧。

在一些实施例中,所述第一中间层可以包括一个或多个残差单元和池化层;和/或,所述第二中间层可以包括一个或多个残差单元及上采样层。

例如,所述第一中间层包括:

第一残差单元,用于对所述第一卷积帧进行线性修正及卷积处理之后与所述第一卷积帧进行残差得到第一残差帧;

第一池化层,用于对所述第一残差帧进行池化处理的第一池化帧;

第二残差单元,用于对所述第一池化帧进行线性修正及卷积之后与所述第一池化帧进行残差得到第二残差帧;

第二池化层,用于对所述第二残差帧进行池化处理得到第二池化帧;

第三残差单元,用于对所述第二池化帧进行线性修正及卷积之后与所述第二池化帧残差得到第三残差帧。

和/或,

所述第二中间层包括:

第四残差单元,用于对所述第三残差帧线性修正及卷积处理后与所述第三残差帧进行残差处理得到第四残差帧;

第一上采样层,用于对所述第四残差帧进行上采样得到第一上采样帧;

第五残差单元,用于对第二拼接帧进行线性修正及卷积处理后与所述第二拼接帧进行残差处理,得到第五残差帧,其中,所述第二拼接帧是基于所述第一上采样帧和所述第二残差帧生成的;

第二上采样层,用于对所述第五残差帧进行上采样得到第二上采样帧;

第六残差单元,用于对第三拼接帧进行线性修正及卷积处理后与所述第三拼接帧进行残差得到第六残差帧,其中,所述第三拼接帧是基于所述第二上采样帧及所述第一残差帧生成的。

第二卷积层,用于对所述第六残差帧进行卷积得到第二卷积帧;

第三卷积层,用于对所述第二卷积帧进行卷积得到所述当前预测帧。

在一些实施例中,所述上采样处理采用双线性差值方式。

在一些实施例中,所述端到端模型的损失值是:利用所述单一损失函数基于第一运动信息、所述第一残差信息、所述当前原始帧及所述当前预测帧确定的。

在一些实施例中,所述单一损失函数包括:

其中,loss为损失值;为所述当前帧和所述当前重建帧之间的失真值;为所述第一残差信息编码量化后的第二运动特征;为所述第一残差信息编码量化后第二残差特征;为对编码后的码字数量;为对编码后的码字数量;λ为码率和失真之间的平衡系数。

以下结合上述任意实施例提供一个具体示例:

本示例建立了一个完全的端到端优化的基于深度学习的视频压缩系统。视频编码的所有关键模块,包括:运动估计模块、运动补偿模块、运动信息压缩模块、残差信息压缩模块、量化模块及码率估计模块等,全部采用深度神经网络实现,可以实现完全的端到端优化。

本示例提出的基于深度神经网络的视频压缩架构,在优化的过程中充分考虑了重建图像的质量和压缩需要的码率的平衡,能够实现更高的压缩效率。

针对运动估计和运动信息的压缩,本示例采用一个光流估计的神经网络得到对应的光流作为运动信息。

与此同时,本示例提出一个运动信息的压缩网络,对视频压缩进行如下处理:

第一步:对估计得到的光流进行压缩,得到对应运动特征,将运动特征量化后并且经过运动解码器得到对应的重建运动信息。

第二步:运动补偿包括:根据第一步得到的重建运动信息,进行运动补偿,根据运动补偿后的结果,可以计算得到对应的残差信息。

第三步:残差编码包括:将第二步的残差信息,首先经过一个残差编码器,然后经过量化,得到量化后的残差特征。然后将量化后的残差经过一个残差解码器,得到对应的重建残差。

第四步:熵编码,根据第一步得到的运动特征和第三步得到残差特征,进行估计编码后的码字数量。此处熵编码之后的码字可以作为视频压缩信息输出。

第五步:重建,将第二步得到运动补偿帧和第三步得到的重建残差加在一起得到最终的重建图像,也就是编码图像。

第六步:针对运动估计和运动信息压缩,本示例采用spynet进行光流估计网络得到对应的运动信息。其他的基于学习的光流网络都可以在这里使用。为了压缩运动信息,提出了一个自编码器类型的网络对运动信息进行压缩。

如图8所示,经过光流网络得到的运动信息为vt,首先经过一个运动信息编码子模块(mvencodernet)得到运动特征mt,q代表量化操作,量化后的结果为mt经过mvdecodernet得到对应重建的运动信息对应mvencodernet和mvdecodernet如图6所示。

卷积层的卷积参数可为:conv(3,128,2);conv(3,128,2)代表卷积核为3*3,输出通道为128,步长为2的标准卷积操作。

反卷积层的反卷积参数可为:deconv(3,128,2)。deconv(3,128,2)代表卷积核为3*3,输出通道为128,步长为2的标准反卷积操作gdn代表的对应的归一化;igdn代表反归一化处理。

运动补偿,本示例提出一个运动补偿网络得到对应预测帧具体步骤如下所示:

首先参照图9所示,重建的运动信息,将前一时刻的重建帧投影到当前时刻,得到投影帧或者称之为初始卷积帧(warpedframe)。然后将warpedframe,前一时刻重建帧,重建运动信息拼接到一起。输入到一个卷积神经网络中,得到对应预测帧图9中cnn表示卷积网络。

图8中所示的卷积神经网络如图10所示。

代表的是投影帧。残差单元(residualblock)代表常用的残差网络。该残差单元可包括:线性修正层(rectifiedlinearunit,relu)及卷积层构成。所述线性修正层可以用于对输入的数据进行修正。例如,利用激活函数进行一些异常值的修正等。该残差单元可包括:等同数目的relu和卷积层,relu和卷积层间隔分布,且在本示例中将relu置于卷积层之前,例如,所述残差单元可包括:2个relu和2个卷积层。

在本实例中,所述预测帧的生成网络中还包括:池化层。池化层通过池化操作对图像帧进行下采样。上采样层是与池化层对应的层,可认为池化层和上采样层是互为逆操作的。在上采样过程采用双线性插值进行上采样。

残差编码网络(对应于前述残差编码子模块)和残差解码网络(对应于前述残差解码子模块),可如图6所示。

根据预测帧和原始帧,可以得到对应残差信息rt。将输入到残差编码器,得到残差特征yt,经过量化后得到输入到残差解码器得到残差编码网络和残差解码网络可以采用当前的图片压缩的相关网络。

熵编码。将量化后的运动特征和量化后的残差特征输入到对应码率估计网络,得到对应码字数量。

本申请实施例提供了一种电子设备,包括:

存储器,可用于信息存储;

处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,能够实现前述一个或多个技术方案提供的视频压缩处理方法,例如,如图1、图2a、图2b、图3、图4、图5、图6图8、图9及图10所示的方法中的一个或多个。

该存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。所述存储器可用于信息存储,例如,存储计算机可执行指令等。所述计算机可执行指令可为各种程序指令,例如,目标程序指令和/或源程序指令等。

所述处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器、可编程阵列、数字信号处理器、专用集成电路或图像处理器等。所述处理器可以通过总线与所述存储器连接。所述总线可为集成电路总线等。

在本实施例中,所述电子设备可为运行有所述绘制客户端的各种类型的电子设备,例如,台式电脑、笔记本电脑、平板电脑或可穿戴设备等。

在一些实施例中,所述终端设备还可包括:通信接口,该通信接口可包括:网络接口、例如,局域网接口、收发天线等。所述通信接口同样与所述处理器连接,能够用于信息收发。

在一些实施例中,所述终端设备还包括人机交互接口,例如,所述人机交互接口可包括各种输入输出设备,例如,键盘或鼠标等。

本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现前述一个或多个技术方案提供的视频压缩处理方法,例如,如图1、图2a、图2b、图3、图4、图5、图6图8、图9及图10的方法中的一个或多个。

所述存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。所述存储介质可为非瞬间存储介质。

本申请实施例提供一种计算机程序产品,所述程序产品包括计算机可执行指令;所述计算机可执行指令被执行后,能够实现前述任意实施提供的视频压缩处理方法,例如,如图1、图2a、图2b、图3、图4、图5、图6图8、图9及图10所示的方法中的一个或多个。

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

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

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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