掌桥专利:专业的专利平台
掌桥专利
首页

无熵编码的图像压缩方法、装置、电子设备及存储介质

文献发布时间:2024-01-17 01:27:33


无熵编码的图像压缩方法、装置、电子设备及存储介质

技术领域

本申请涉及图像处理技术领域,具体涉及一种无熵编码的图像压缩方法、装置、电子设备及存储介质。

背景技术

相关技术中的图像压缩方法,其编码器的步骤均为先用变换获得信息熵较低的压缩量,再用熵编码将其编码到均匀分布的二进制码流。熵编码是编码器中的一个独立模块,熵编码是其编码器中不可或缺的环节。常用的熵编码有霍夫曼编码、算术编码及在其基础上的改进熵编码方法,这类熵编码算法的一般先要统计字符的概率,再构建霍夫曼树或构建编码区间等,其计算性质决定了该类算法只能串行处理,无法利用相关硬件设备进行并行加速,因此熵编码是编码器中比较耗时的一环,熵编码导致图像压缩耗时较长,导致相关技术的图像压缩方法在效率上难以满足实际应用的需要。

上述的陈述仅用于提供与本申请有关的背景技术信息,而不必然地构成现有技术。

发明内容

本申请的目的是提供一种无熵编码的图像压缩方法、装置、电子设备及存储介质,以改善相关技术中存在的熵编码导致图像压缩耗时较长,导致相关技术的图像压缩方法在效率上难以满足实际应用的需要的状况。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本申请实施例的一个方面,提供一种无熵编码的图像压缩方法,应用于编码器,所述图像压缩方法包括:

采用卷积变换处理原始图像获得压缩量;

将所述压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据。

在本申请的一些实施例中,所述编码器包括串联的三个核长为3的下采样卷积层。

在本申请的一些实施例中,所述三个核长为3的下采样卷积层中的最后一个下采样卷积层之后连接二值映射。

在本申请的一些实施例中,在测试阶段,所述二值映射为阶跃函数,并以0.5为分界线。

在本申请的一些实施例中,在训练阶段,所述二值映射采用公式

在本申请的一些实施例中,所述三个核长为3的下采样卷积层中的前两个下采样卷积层的卷积核个数为64,最后一个下采样卷积层的卷积核个数为64/cr,其中,cr为基础压缩比,表示原始图像元素数量与压缩量元素数量的比值。

在本申请的一些实施例中,所述图像压缩方法还包括:所述编码器将所述图像压缩数据发送给解码器,以使解码器接收来自编码器的图像压缩数据,处理所述图像压缩数据,得到解码后的重建图像;所述解码器包括多个依次连接的解码模块,每一所述解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

根据本申请实施例的另一个方面,提供一种无熵编码的图像压缩方法,应用于解码器,所述解码器包括多个依次连接的解码模块;所述图像压缩方法包括:

接收来自编码器的图像压缩数据;所述图像压缩数据是由所述编码器采用卷积变换处理原始图像获得压缩量,将所述压缩量通过量化映射到服从均匀分布的二进制码流所得到的;

利用所述多个依次连接的解码模块处理所述图像压缩数据,得到解码后的重建图像;每一所述解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

在本申请的一些实施例中,所述解码器设置有目标函数,所述目标函数包括所述原始图像与所述重建图像之间的失真度量以及所述压缩量的熵。

在本申请的一些实施例中,所述自注意力模块执行自注意力机制,所述自注意力机制包括:

针对输入特征图进行三组1×1卷积计算,分别得到查询张量、键张量和值张量;所述输入特征图是所述残差模块对所述图像压缩数据进行处理后得到的;

将所述查询张量转置,再将转置结果与所述键张量进行矩阵相乘得到二者之间的相似度权重矩阵;

将所述相似度权重矩阵经过Softmax激活层进行归一化处理,与所述值张量进行矩阵相乘运算,得到分辨率与输入特征图相同的输出特征图。

在本申请的一些实施例中,所述解码模块中设置熵最大约束的损失函数。

在本申请的一些实施例中,所述解码器还包括卷积模块,所述卷积模块用于对所述图像压缩数据进行卷积处理,得到卷积处理结果,将所述卷积处理结果输入与所述卷积模块相连接的解码模块。

根据本申请实施例的另一个方面,提供一种无熵编码的图像压缩装置,包括编码器和解码器;

所述编码器用于采用卷积变换处理原始图像获得压缩量,将所述压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据;

所述解码器用于接收来自编码器的图像压缩数据,处理所述图像压缩数据,得到解码后的重建图像;所述解码器包括多个依次连接的解码模块,每一所述解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现本申请任一实施例所述的无熵编码的图像压缩方法。

根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行,以实现本申请任一实施例所述的无熵编码的图像压缩方法。

本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:

本申请实施例提供的无熵编码的图像压缩方法,采用卷积变换处理原始图像获得压缩量,将所述压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据,实现了无熵编码的图像压缩,缩短了图像压缩耗时,提高了图像压缩效率,改善了相关技术中存在的熵编码导致图像压缩耗时较长,导致相关技术的图像压缩方法在效率上难以满足实际应用的需要的状况。

上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请的实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请一个实施例的无熵编码的图像压缩方法中编码流程图。

图2示出了本申请一个具体示例中的编码器的结构示意图。

图3示出了本申请一个实施例的无熵编码的图像压缩方法中解码流程图。

图4示出了本申请一个具体示例中的解码器的结构示意图。

图5示出了本申请一个具体示例中的残差模块的结构示意图。

图6示出了本申请一个具体示例中的自注意力模块的结构示意图。

图7示出了本申请一个具体示例中的k=3时的核长范围内的自注意力计算示意图。

图8示出了本申请一个具体示例中从特征图提取领域的示意图。

图9示出了本申请一个实施例的无熵编码的图像压缩装置结构框图。

图10示出了本申请一个实施例的电子设备结构框图。

图11示出了本申请一个实施例的计算机可读存储介质示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

针对相关技术中熵编码计算复杂度高导致图像压缩耗时较长的问题,本申请实施例提供了一种无熵编码的图像压缩方法,在编码器上采用极简的卷积变换将压缩量通过量化直接映射到服从均匀分布的二进制码流。在解码器上使用自注意力机制设计解码模块,设计熵最大约束的损失函数进行端到端优化,实现了无需熵编码的有效的图像压缩,提高了图像压缩效率,缩短了图像压缩耗时。

参考图1所示,本申请的一个实施例提供了一种无熵编码的图像压缩方法,应用于编码器,该图像压缩方法可以包括步骤101至步骤102。

步骤101:采用卷积变换处理原始图像获得压缩量。

步骤102:将压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据。

示例性地,编码器包括串联的三个核长为3的下采样卷积层。具体地,所述三个核长为3的下采样卷积层中的最后一个下采样卷积层之后连接二值映射。在测试阶段,所述二值映射为阶跃函数,并以0.5为分界线。

具体地,编码器采用卷积变换处理原始图像获得压缩量;编码器将压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据。编码器将图像压缩数据传输给解码器。

编码器的输入是待压缩的原始图像,输出是被压缩后的数据。基于本实施例的应用背景,编码器的设计原则是极其简洁,只保留最必要的部分。实现下采样的卷积是不可能删减的部分,参考图2所示,在一个具体的示例中,编码器优选采用仅由三个核长为3的下采样卷积层0串联构成。图2中,编码器中的前两个下采样卷积层0之后分别连接一个RELU激活函数5,下采样卷积层的作用是缩小特征图的分辨率,每个下采样卷积降特征图的分辨率缩小一半。设输入的原始图像x∈R

在测试阶段,该二值映射为阶跃函数,并以0.5为分界线,如式(1)所示

数据经过该二值映射后是1比特的01数据组成的,所以在存储或传输时可以用8个数据点占用一个字节,故最终的压缩比为cr×8。

在训练阶段,由于式(1)梯度不连续,无法满足反向传播时梯度可传的要求,所以在训练阶段二值映射用式(2)代替,其中η的值设置为64,其目的是模拟阶跃的二值映射,并且在断点处保持连续使得训练时梯度可以反向传播。

编码器的三个下采样卷积核长为3,设置前两个卷积的卷积核个数为64,最后一个卷积的卷积核个数为64/cr,以压缩比为32倍,即cr=4为例,编码器的参数量为46.7KB,以图像x∈R

参考图3所示,本申请的一个实施例提供了一种无熵编码的图像压缩方法,应用于解码器,该解码器包括多个依次连接的解码模块;该图像压缩方法可以包括步骤S10至S20。

S10:解码器接收来自编码器的图像压缩数据;图像压缩数据是由编码器采用卷积变换处理原始图像获得压缩量,将压缩量通过量化映射到服从均匀分布的二进制码流所得到的。

S20:解码器利用前述多个依次连接的解码模块处理图像压缩数据,得到解码后的重建图像;解码器包括多个依次连接的解码模块,每一解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

例如,解码器可以包括3个依次连接的解码模块,利用该3个依次连接的解码模块处理图像压缩数据,得到解码后的重建图像。

在一些实施例中,自注意力模块执行自注意力机制,自注意力机制包括:对输入特征图进行三组1×1卷积计算,分别得到查询张量、键张量和值张量;将查询张量转置,再将转置结果与键张量进行矩阵相乘得到二者之间的相似度权重矩阵;将相似度权重矩阵经过Softmax激活层进行归一化处理,与值张量进行矩阵相乘运算,得到分辨率与输入特征图相同的输出特征图。所述输入特征图是所述残差模块对所述图像压缩数据进行处理后得到的。

在一些实施例中,解码模块中可以设置熵最大约束的损失函数。解码器还可以包括卷积模块,卷积模块用于对图像压缩数据进行卷积处理,得到卷积处理结果,将卷积处理结果输入与卷积模块相连接的解码模块。具体地,卷积模块可以是卷积层。

在一个具体示例中,解码器的输入是压缩后的压缩量y∈R

残差模块的用途是缓解网络过深造成的网络退化和梯度消失问题,从而可以构建更深的网络模型以提升性能。残差模块已经成为计算机视觉的各个领域都普遍使用的即插即用模块,简单的堆叠即可带来可观的提升。由于编解码模型中间存在数据量较少的瓶颈层,自然使得梯度反传不如等宽网络顺畅,所以在解码器中加入残差模块,提升梯度传递的效率。参考图5所示,残差模块2可以包括从前向后依次连接的卷积层1、RELU激活函数5和卷积层1,其中残差模块2的输入在经过卷积层6、RELU激活函数5和卷积层7的处理后,得到第一处理结果,在残差模块2中将第一处理结果与残差模块2的输入进行求和计算,得到的计算结果作为残差模块2的输出。

虽然残差模块被广泛应用,但其并不是提升性能最佳的选择,在解码器不考虑计算量的前提下,引入计算量更大、性能更好的模块有助于提升解码的质量。通道注意力和空间像素注意力只能在特定维度上捕获关联关系,而不能跨维度捕获关联,不是最优的选择。

自注意力(Self-Attention)机制最早在自然语言处理(NLP)领域提出,基于Self-Attention的transformer结构被广泛应用。在计算机视觉领域,非局部注意力机制(Non-Local)借鉴于此,其能够获得任意两个特征点之间的依赖关系,在各个领域取得了不错的效果。

自注意力(Self-Attention)模块结构示意图如图6所示。假设x∈R

计算公式如式(3)所示。

自注意力机制的计算过程为:

1)通过f(x),g(x)和h(x)三组1×1的卷积的计算,得到的特征图分别为查询张量query、键张量key和值张量value。query,key,value∈R

2)将query转置,再与key进行矩阵相乘得到二者之间的相似度权重矩阵φ∈R

3)权重矩阵φ经过Softmax激活层进行归一化处理,然后与value进行矩阵相乘运算,得到分辨率与输入特征图相同的输出特征图y∈R

虽然自注意力机制实现了任意特征点之间的权重计算,但是其存在的问题是计算量较大,尤其是两个矩阵相乘的运算,query与key矩阵相乘的计算复杂度为O(c×W

卷积的计算模式:设输入特征图

类似于卷积,给定像素

式(5)中,查询向量query

在类似于卷积的领域上进行自注意力计算,采取的方法是对key和value用滑动窗口的办法取出所有的k×k区域组成新的张量参与运算。例如,对于x∈R

相对位置的定义从像素(i,j)到

query与

该自注意力模块的参数量集中在W

至于计算量,模块的计算量主要分两部分,一是三组1×1卷积,计算量为3×1×1×c

在一些实施例中,解码器设置有目标函数,目标函数包括原始图像与重建图像之间的失真度量以及压缩量的熵。

具体地,目标函数由两部分组成,一是原始图像x与重建图像

因为优化后压缩量y需要尽可能接近均匀分布,所以R(y)的优化目标是1,λ的取值不会对模型的性能有明显的影响,考虑到这两项的数值上的平衡,这里取λ=0.01。这一点与之前的基于深度学习的图像压缩方案完全不同,后者的压缩比在训练前无法确定,熵编码压缩比完全靠超参数λ的取值来对应,故取不同的λ对于获取不同码率的模型是有意义的。

本申请实施例提供的无熵编码的图像压缩方法,采用卷积变换处理原始图像获得压缩量;将所述压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据,实现了无熵编码的图像压缩,缩短了图像压缩耗时,提高了图像压缩效率,改善了相关技术中存在的熵编码导致图像压缩耗时较长,导致相关技术的图像压缩方法在效率上难以满足实际应用的需要的状况。

本申请的一个实施例提供了一种无熵编码的图像压缩方法,包括:编码器采用卷积变换处理原始图像获得压缩量;编码器将压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据。

具体地,编码器可以包括变换模块和量化模块,变换模块用于采用卷积变换处理原始图像获得压缩量;量化模块用于将压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据。

在一些实施例中,编码器将图像压缩数据发送给解码器,以使解码器接收来自编码器的图像压缩数据,处理图像压缩数据,得到解码后的重建图像;解码器包括多个依次连接的解码模块,每一解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

本申请实施例提出的图像压缩方法的优势在于舍去了熵编码环节,编码器的运行速度更快,使用自注意力模块后PSNR和SSIM都有较为明显的提升。

本申请实施例提出无熵编码的图像压缩方法,在编码器上设计极简的卷积变换将压缩量通过1比特量化直接映射到服从均匀分布的二进制码流。在解码器上使用自注意力机制设计解码模块,设置熵最大约束的损失函数进行端到端优化,实现了无需熵编码的图像压缩。该方法的压缩性能在低分辨率图像、语义信息丰富的图像、高压缩比这三种情况下更具有优势,且编码时间耗时短。

参考图9所示,本申请的另一个实施例提供了一种无熵编码的图像压缩装置,包括编码器和解码器;所述编码器用于采用卷积变换处理原始图像获得压缩量,将所述压缩量通过量化映射到服从均匀分布的二进制码流,得到图像压缩数据;所述解码器用于接收来自编码器的图像压缩数据,处理所述图像压缩数据,得到解码后的重建图像;所述解码器包括多个依次连接的解码模块,每一所述解码模块包括依次连接的残差模块、自注意力模块和转置卷积层。

在本申请的一些实施例中,所述解码器设置有目标函数,所述目标函数包括所述原始图像与所述重建图像之间的失真度量以及所述压缩量的熵。

在本申请的一些实施例中,所述自注意力模块执行自注意力机制,所述自注意力机制包括:对输入特征图进行三组1×1卷积计算,分别得到查询张量、键张量和值张量;将所述查询张量转置,再将转置结果与所述键张量进行矩阵相乘得到二者之间的相似度权重矩阵;将所述相似度权重矩阵经过Softmax激活层进行归一化处理,与所述值张量进行矩阵相乘运算,得到分辨率与输入特征图相同的输出特征图。

在本申请的一些实施例中,所述解码模块中设置熵最大约束的损失函数。

在本申请的一些实施例中,所述解码器还包括卷积模块,所述卷积模块用于对所述图像压缩数据进行卷积处理,得到卷积处理结果,将所述卷积处理结果输入与所述卷积模块相连接的解码模块。

本申请实施例提出的装置实现了无熵编码的图像压缩。本申请实施例提出的装置在编码器上设置极简的多层变换模块,在其输出侧设定固定的量化比特来限制压缩量的取值可能性,与解码器构成端到端联合优化的结构,使得二者可以相互影响,从而达到全局最优的模型参数选择。在解码器上,设置了计算量较小的自注意力模块获得重建图像,通过增加网络结构提升解码器的学习能力,进而弥补极简的编码器可能造成的性能损失。

本申请另一个实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现上述任一实施方式所述的无熵编码的图像压缩方法。

参考图10所示,电子设备10可以包括:处理器100,存储器101,总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接;存储器101中存储有可在处理器100上运行的计算机程序,处理器100运行该计算机程序时执行本申请前述任一实施方式所提供的方法。

存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。

总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器101用于存储程序,处理器100在接收到执行指令后,执行该程序,前述本申请实施例任一实施方式揭示的方法可以应用于处理器100中,或者由处理器100实现。

处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,可以包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成上述方法的步骤。

本申请实施例提供的电子设备与本申请实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。

本申请另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行,以实现上述任一实施方式所述的无熵编码的图像压缩方法。参考图11所示,其示出的计算机可读存储介质为光盘20,其上存储有计算机程序(即程序产品),该计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。

需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。

本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。

需要说明的是:

术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示例一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116228840