用于图像编解码的方法和装置与流程

文档序号:21009898发布日期:2020-06-05 23:29阅读:202来源:国知局
用于图像编解码的方法和装置与流程

本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。

本申请涉及图像编解码领域,并且更为具体地,涉及一种用于图像编解码的方法和装置。



背景技术:

随着便携式设备和社交媒体(如微信,微博等)的广泛应用,每天有海量的图像在网络上传播。如果不对图像的大小进行压缩,将导致存储空间占用量大、网络信息传播速度慢等问题。

图像中包含大量的冗余信息,因此可以利用图像压缩算法对图像进行压缩,从而减少存储空间,并提高网络信息的传输速度。

传统的图像压缩算法一般包括变换、量化、熵编码等操作。利用变换操作可以提取图像特征。传统变换操作包括离散余弦变换(discretecosinetransform,dct)或离散小波变换(discretewavelettransform,dwt),均是利用人工先验知识提取图像特征。利用人工先验知识提取出的图像特征表达能力不够强。

最近,基于神经网络模型的图像编解码技术被提出,其可以利用神经网络模型执行变换操作。与传统变换方式相比,利用神经网络模型进行变换之后得到的图像特征表达能力更强,更加符合人眼的特性。



技术实现要素:

本申请提供一种用于图像编解码的方法和装置,能够改善基于神经网络模型的图像编解码方式。

第一方面,提供一种用于图像编解码的方法,包括:利用第一神经网络模型提取原始图像的特征,作为所述原始图像的变换结果;根据第一神经网络模型的参数,生成非均匀的量化参数;根据所述量化参数,对所述原始图像的变换结果进行量化,得到所述原始图像的量化结果;根据所述原始图像的量化结果,生成所述原始图像的解码图像;根据所述原始图像和所述解码图像之间的差异,利用反向传播算法,对所述第一神经网络模型的参数进行更新;重复执行上述步骤,直到所述原始图像和所述解码图像之间的差异满足预设条件。

第二方面,提供一种用于图像编解码的装置,包括:存储器,用于存储指令;处理器,用于执行指令,以实现:利用第一神经网络模型提取原始图像的特征,作为所述原始图像的变换结果;根据第一神经网络模型的参数,生成非均匀的量化参数;根据所述量化参数,对所述原始图像的变换结果进行量化,得到所述原始图像的量化结果;根据所述原始图像的量化结果,生成所述原始图像的解码图像;根据所述原始图像和所述解码图像之间的差异,利用反向传播算法,对所述第一神经网络模型的参数进行更新;重复执行上述步骤,直到所述原始图像和所述解码图像之间的差异满足预设条件。

第三方面,提供一种计算机可读存储介质,其上存储有用于执行第一方面中的方法的指令。

第四方面,提供一种计算机程序产品,包含用于执行第一方面中的方法的指令。

采用基于神经网络模型的编码方式对图像进行编码,且在编码过程中采用非均匀量化参数进行量化,使得量化结果能够更好地保留原图的信息。

附图说明

图1是传统图像编解码过程的示意图。

图2是本申请实施例提供的用于图像编解码的方法的示意性流程图。

图3是本申请实施例提供的用于执行变化操作的神经网络模型的结构示例图。

图4是本申请实施例提供的用于执行反变化操作的神经网络模型的结构示例图。

图5是图2中的步骤s220的一种可能的实现方式的流程示意图。

图6是本申请实施例提供的变换和量化过程的示例图。

图7是本申请实施例提供的熵编码过程的示意性流程图。

图8是本申请实施例提供的卷积核的掩膜的示例图。

图9是本申请实施例提供的掩膜的使用方式的示例图。

图10是本申请实施例提供的掩膜卷积神经网络的结构示例图。

图11是本申请实施例提供的图像编解码过程的示例图。

图12是本申请实施例提供的用于图像编解码的装置的结构示意图。

具体实施方式

为了便于理解,先对相关的图像压缩技术进行介绍。

图像编解码技术可用于减少图像的存储空间并提高图像的传播速度。图像编解码技术的标准有很多,如联合图像专家组(jointphotographicexpertsgroup,jpeg)或jpeg2000等。

如图1所示,相关的图像编解码过程大致可以包括由编码端执行的变换、量化、熵编码操作,以及由解码端执行的熵解码、反量化、反变换操作。

变换操作可用于提取图像特征。jpeg标准采用dct方式将图像变换至频域,以获取图像在频域的特征信息。jpeg2000采用dwt方式,多分辨率地提取各个图像的各个波段的信息。

量化操作可用于进一步压缩图像信息。jpeg和jpeg2000均采用统计方法归纳量化表,并利用查找表完成上述量化操作。

熵编码操作可用于增强图像的抗干扰能力,并进一步去除图像中的冗余信息。熵编码可以先对待编码符号进行概率估计,并基于估计出的概率计算编码该符号所需的比特数。jpeg采用哈夫曼编码方式进行熵编码,jpeg2000采用自适应算术编码方式进行熵编码。解码端的操作为编码端操作的逆操作,此处不再详述。

图像的编码质量通常采用率失真率(rate-distortion)来衡量,以保证低码率的同时能恢复原始图像中的更多信息。其中,码率(rate)可代表压缩后的图像的每个像素所占用的比特数;失真率(distortion)可以指解压缩后的图像与原始图像之间的峰值信噪比(peaksignaltonoiseratio,psnr),可以采用下式计算:

其中mse表示的是均方误差,mse的取值可以通过下式计算:

m代表像素点所在的行,n代表像素点所在的列,y代表解码图像,x代表原始图像。

为了进一步提高图像的率失真率,相关技术提出了基于神经网络模型的图像编解码方式,其利用神经网络模型来执行图1中的变换操作,即利用神经网络模型提取图像特征。相应地,在解码端,可以利用神经网络模型进行反变换操作。利用神经网络模型提取出来的图像特征表达能力更强,更加符合人眼的特性。在这些相关技术中,有些采用卷积神经网络(convolutionalneuralnetwork,cnn)提取图像特征,有些采用递归神经网络(recurrentneuralnetwork,rnn)提取图像特征。

目前,基于神经网络模型的图像编解码方式均采用均匀量化方式对图像特征进行量化。但是,图像的空间信息具有差异性,对图像特征进行均匀量化存在一定的量化误差。因此,目前的基于神经网络模型的图像编解码方式存在被进一步改善的空间。

图2是本申请实施例提供的用于图像编解码的方法的示意性流程图。图2的方法可以由用于图像编解码的装置实现,该装置例如可以是神经网络模型的训练装置。图2的方法可以发生在神经网络模型的训练阶段,实际应用时,直接使用训练好的神经网络模型即可。图2的方法可以包括步骤s210至步骤s260,下面分别对这些步骤进行详细描述。

在步骤s210,利用第一神经网络模型提取原始图像的特征,作为原始图像的变换结果。

本申请实施例对第一神经网络模型的类型不做具体限定,例如可以是cnn,也可以是rnn。该第一神经网络可以具有多层结构(如具有多个卷积层),使得提取出的原始图像的特征具有高度的非线性,以更好地表达原始图像。

以cnn为例,第一神经网络模型可以采用如图3所示的结构。图3中,第一神经网络模型采用层32与层34间隔排布的方式。其中,层32为卷积层;层34包括3个“卷积+激活层”和一个拼接层。可以理解的是,第一神经网络模型还可以有更多或更少的层,图3仅是一个例子。

激活层使用的激活函数例如可以是线性整流函数。线性整流函数也可称为修正线性单元(rectifiedlinearunit,relu)。比较常用的线性整流函数有斜坡函数、带泄露整流函数等。拼接层可用于对层34内的“卷积+激活层”输出的图像特征进行拼接。

第一神经网络模型的参数与第一神经网络模型的类型有关。例如,第一神经网络模型可以是cnn,则第一神经网络模型的参数可以包括滤波器参数(或称权值参数),激活函数相关的参数等。第一神经网络模型的参数的初始值可以任意设定,并通过循环执行图2所示的步骤被不断更新,详见后文描述。

在步骤s220,根据第一神经网络模型的参数,生成非均匀的量化参数。

作为一种可能的实现方式,可以将量化参数的确定过程与第一神经网络模型的训练过程绑定在一起,当第一神经网络模型的参数被更新时,对量化参数也进行相应地更新,二者交替迭代,以达到预期的训练目标(如原始图像和解码图像之间的误差最小)。下文会结合图5对这种实现方式进行详细描述。作为另一种可能的实现方式,也可以根据实验或经验选取与第一神经网络模型的参数适配的非均匀量化参数。

在步骤s230,根据量化参数,对原始图像的变换结果进行量化,得到原始图像的量化结果。

量化参数(包括量化值和/或量化区间)确定之后,可以根据变换结果的取值所属的量化区间,将其映射到相应的量化值。该过程与传统图像编解码技术的量化过程类似,具体可以参见传统量化过程。

在步骤s240,根据原始图像的量化结果,生成原始图像的解码图像。

例如,可以先根据原始图像的量化结果进行熵编码,再对熵编码结果进行熵解码、反量化、反变换等操作,从而得到原始图像的解码图像。解码图像可以按照传统方式进行解码,也可以采用基于神经网络模型的解码方式进行解码。

作为一个示例,解码端使用的神经网络模型可以与编码端使用的神经网络模型相对应。例如,编码端使用基于神网络模型的变换方式,则解码端可以使用基于神经网络模型的反变换方式。两个神经网络模型执行互逆操作。举例说明,假设编码端的用于执行变换操作的神经网络模型的结构如图3所示,则解码端的用于执行反变换的神经网络模型可以采用如图4所示的结构。参见图4,该神经网络模型可以采用层42和层44间隔排布的结构。其中,层42可以是子像素采样层(subpixels)。层44可以包括3个“卷积+激活层”和一个拼接层。该激活层例如可以是relu。拼接层可用于对层44内的“卷积+激活层”输出的图像特征进行拼接。此外,层42和层44之间还可以插入其他层,如图4所示的卷积层46。

在步骤s250,根据原始图像和解码图像之间的差异,利用反向传播算法,对第一神经网络模型的参数进行更新。

在步骤s260,重复执行上述步骤,直到原始图像和解码图像之间的差异满足预设条件。

本申请实施例采用基于神经网络模型的编码方式对图像进行编码,且在编码过程中采用非均匀量化参数进行量化,使得量化结果能够更好地保留原图的信息。

下面以第一神经网络模型为cnn为例,介绍第一神经网络模型的参数的一种可能的训练方式。

原始图像经过变换、反变换等一些列操作,可以得到解码图像。对图像进行编解码的过程通常希望恢复出的解码图像与原始图像尽可能接近。因此,可以将原始图像与解码图像之间的差异的最小化作为第一神经网络模型的训练目标。

举例说明,针对输入的原始图像x(i),可以利用多个随机初始化的滤波器wl(滤波器的大小可以根据实际需要设定,例如可以是5×5的滤波器,即该滤波器可以包含25个权值)与原始图像x(i)进行卷积操作,然后再利用激活函数(如relu)对卷积后的特征图进行非线性变换与反变换,得到解码图像y=f(x(i),ω)。上述过程可以采用如下公式表示:

y=f(x(i),ω)=σ(wl*x(i)+bi)

经过若干层卷积与非线性操作后,可以采用l1范数作为损失函数(lossfunction),该损失函数的定义如下:

其中,n可以表示输入的原始图像的数量。为了使原始图像和解码图像之间的误差最小化,从而使得变化后的解码图像f(x(i),ω)尽可能接近原始图像x(i),可以根据公式利用反向传播算法将解码图像与原始图像之间的误差反向传播到第一神经网络模型的输入端,从而对第一神经网络模型的滤波器wl的取值进行更新。然后,通过不断更新滤波器wl的取值,使得解码图像y与原始图像x(i)一致。反向传播算法的具体实现方式可以参见相关技术,此处并不详述。

步骤s240描述的是解码图像的获取方式,正如前文描述的那样,解码图像的获取方式有多种,可以按照传统方式获取,也可以采用基于神经网络模型的方式获取。当解码图像采用基于神经网络模型的方式获取时,该神经网络模型模型的训练可以与编码端的神经网络模型的训练过程合并在一起,进行端到端的训练。例如,可以利用反向传播算法对编码端和解码端使用的神经网络模型的参数进行同步更新。

下面结合图5,给出图2中的步骤s220的一种可能的实现方式(即非均匀量化参数的一种可能的生成方式)。

如图5所示,步骤s220可以包括步骤s222和步骤s224。

在步骤s222,根据第一神经网络模型的参数,计算第一神经网络模型的概率密度。

在步骤s224,根据第一神经网络模型的概率密度,生成使得第一神经网络模型计算出的变换结果的量化误差最小的量化参数。

例如,可以采用如下两个步骤计算最优的量化参数(量化参数可以包括量化值和量化区间):

步骤1:

根据第一神经网络模型变换后的中间结果z=e(x,ω)(其中,x表示原始图像,ω表示第一神经网络模型的参数),统计出中间结果的概率密度函数p(z),并利用p(z)计算最优的量化器q*(z):

q*(z)=argminq∫p(z)(q(z)-z)2d

其中q(z)是初始化的量化器。

步骤2:

针对量化区间数m(m的取值可以根据实际需要预先设定,q取值从1至m),对上述公式求导,得到最优的量化值z与最优的量化区间b,求导过程可以参考下式进行:

根据q(z)可以确定初始的量化值和量化区间,然后再进行迭代求解,以求解出所有的量化值和量化区间。在得到所有的和bq之后,就得到了最优的量化器。

通过交替迭代步骤s222和步骤s224,使得量化参数随着第一神经网络模型的更新而更新,最终可以得到与第一神经网络模型适配的最优量化参数。

假设编码端的变换过程与解码端的变换过程均是基于神经网络模型完成的,且量化参数按照图5所示的方式随着编解码端的神经网络模型的训练过程而不断更新,则变换和非均匀量化过程可以合并在一起,统一进行训练。假设变换操作采用图3所示的神经网络模型实现,反变换操作采用图4所示的神经网络模型实现,则变换、量化、反量化、反变换的整个流程可以参照图6所示的方式进行。可选地,在量化前,还可以对第一神经网络模型提取的图像特征进行预处理(如降维和归一化处理),以简化量化操作。降维处理可以采用卷积层实现,归一化处理可以采用sigmoid函数实现,本申请实施例对此并不限定。

本申请实施例使用神经网络模型提取图像特征,并采用一种迭代的量化算法对图像特征进行非均匀量化,从而使得量化参数始终与神经网络模型相匹配,并使得量化结果能够更好地包含原图的信息。

上文指出,步骤s230可以包含熵编码的步骤。熵编码的方式有很多种,如霍夫曼编码,算术编码等。熵编码操作通常会先根据待编码符合(例如可以是量化后的系数,也可以是需要熵编码的其他信息)的上下文对待编码符号进行概率估计,然后根据待编码符号出现的概率,确定编码待编码符号所需的比特数,从而对待编码符号进行编码。

下面结合图7,给出本申请实施例提供的一种熵编码方式。与传统熵编码方式不同之处在于,本申请实施例利用神经网络模型对待编码符号进行概率估计。

如图7所述,在步骤s710,根据待编码符号中的当前符号的上下文,通过第二神经网络模型,预测当前符号出现的概率。

在步骤s720,根据当前符号出现的概率,对当前符号进行编码。

本申请实施例采用基于神经网络模型的熵编码方式,由于图像的变换反变换过程也是基于神经网络模型实现的,因此,图像的熵编码过程能够与图像的变换反变换过程一起进行端到端的训练,避免分开设计所引起的误差累计,提高图像的编码质量。

该第二神经网络模型例如可以是卷积神经网络模型。进一步地,在一些实施例中,第二神经网络模型的卷积核可以包括当前符号的已知上下文中的符号对应的权值和未知上下文中的符号对应的权值。为了能够模拟真实情况下后续码流的未知情况,在某些实施例中,可以将未知上下文中的符号对应的权值为0,相当于为卷积核设计了一层掩膜。

以图8为例,假设卷积核的形式如图8左侧所示,则掩膜可以采用图8右侧所示的形式。在对当前符号进行预测时,可以按照行优先的方式执行卷积操作,并使得当前符号以及当前符号的已知上下文中的符号位于与掩膜中的“1”对应的位置,未知上下文中的符号位于与掩膜中的“0”对应的位置,其中,当前符号与掩膜中的最后一个“1”(即位于第3行第2列的“1”)对齐。经过掩膜处理之后,在计算待编码符号的概率时,未知上下文中的符号将不会被考虑,从而使得编码端的概率估计方式与解码端的真实情况相一致。

需要说明的是,在对第一个符号进行概率估计前,可以先在包含待编码符号的特征图周围填充(padding)0元素,以使第一个符号与掩膜中的最后一个“1”对齐。参见图9,以3×3的掩膜为例,可以在包含待编码符号的特征图周围填充一圈0元素(图9中的阴影表示0元素),然后按照行优先的方式从左向右滑动掩膜窗口。图9示出了对第一个符号进行概率估计时,掩膜窗口的位置,即第一个符号与掩膜中的最后一个“1”对齐(第2行第2列中的“1”)对齐。

上述掩膜神经网络具有如下优势:相对于传统的概率估计模式,使用掩模神经网络能大大的提高待编码符号的估计概率(或称概率估计值),进而降低待编码符号的熵,从而可以减少需要编码的比特数。受益于大数据以及反向传播算法,卷积神经网络能更好的提取出图像的特征信息,从而使提高其表达能力,使得其在概率估计上取得重大的突破。

对于待编码符号的概率估计来说,由于在解码端只能利用当前信息以及过去的信息来对当前码元进行估计,因此,相关技术为了在编码端模拟解码端的解码过程,编码的时候需要对每一个待编码符号独立进行概率估计,这样大大增加了计算开销和存储空间,而利用掩模神经网络可以提高计算速度和降低存储空间。本申请实施例通过设计适当的掩膜和卷积核可以使每一个待编码符号只用到已知上下文的信息,从而模拟了解码端的解码过程,通过基于掩膜的卷积神经网络模型输出每一个待编码符号的概率值,可以降低每个待编码符号需要编码的比特数。

第二神经网络模型的结构可以根据实际需要设定。图10示出了第二神经网络模型的一种可能的结构。如图10所示,该第二神经网络模型包括多个“掩膜卷积+激活层”和全连接层。其中,第一个“掩膜卷积+激活层”可用于接收待熵编码的图像,第二至第四个“掩膜卷积+激活层”以及用于求和的神经网络层共同构成一个残差块(residualblock)。残差块的输出经过全连接层1、2的处理,可以得到待编码符号的概率。应当理解的是,图10仅是第二神经网络模型的一个示例,第二神经网络模型还可以具有更多或更少的神经网络层。

第二神经网络模型训练过程可以使用交叉熵作为损失函数(lossfunction)。

第二神经网络模型(属于熵编码部分)可以与上文提及的第一神经网络模型(属于变换部分)、非均匀量化参数一起进行训练,从而有利于做到端到端的训练。例如,如图11所示,编码端使用基于神经网络模型的变换方式,相应地,解码端可以使用基于神经网络模型的反变换方式;编码端使用非均匀量化,相应地,解码端可以使用非均匀的反量化;编码端使用基于掩膜神经网络的熵编码方式,相应地,解码端可以使用基于掩膜神经网络的熵解码方式。因此,上文提及的基于神经网络模型的解码方式中的神经网络模型可以包括反变换部分对应的神经网络,还也可以包括熵解码部分对应的神经网络。

上文结合图1至图11,详细描述了本申请的方法实施例,下面结合图12,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图12是本申请实施例提供的用于图像编解码的装置的示意性结构图。如图12所示,装置1200可以包括存储器1210和处理器1220。

存储器1210可用于存储指令。

处理器1220可用于执行指令,以实现:利用第一神经网络模型提取原始图像的特征,作为所述原始图像的变换结果;根据第一神经网络模型的参数,生成非均匀的量化参数;根据所述量化参数,对所述原始图像的变换结果进行量化,得到所述原始图像的量化结果;根据所述原始图像的量化结果,生成所述原始图像的解码图像;根据所述原始图像和所述解码图像之间的差异,利用反向传播算法,对所述第一神经网络模型的参数进行更新;重复执行上述步骤,直到所述原始图像和所述解码图像之间的差异满足预设条件。

可选地,所述根据第一神经网络模型的参数,生成非均匀的量化参数,包括:根据所述第一神经网络模型的参数,计算所述第一神经网络模型的概率密度;根据所述第一神经网络模型的概率密度,生成使得所述第一神经网络模型计算出的变换结果的量化误差最小的所述量化参数。

可选地,所述根据所述原始图像的量化结果,生成所述原始图像的解码图像,包括:对所述原始图像的包含所述量化结果在内的待编码符号进行熵编码,得到所述原始图像的码流;根据所述原始图像的码流,生成所述原始图像的解码图像。

可选地,所述对所述原始图像的包含所述量化结果在内的待编码符号进行熵编码,包括:根据所述待编码符号中的当前符号的上下文,通过第二神经网络模型,预测所述当前符号出现的概率;根据所述当前符号出现的概率,对所述当前符号进行编码。

可选地,所述第二神经网络模型为卷积神经网络模型,所述第二神经网络模型的卷积核包括所述当前符号的已知上下文中的符号对应的权值和未知上下文中的符号对应的权值,其中所述未知上下文中的符号对应的权值为0。

可选地,所述解码图像对应的解码过程是基于第三神经网络模型进行的,所述反向传播算法还用于对所述第三神经网络模型的权值进行更新。

可选地,所述第一神经网络模型为卷积神经网络模型。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digitalvideodisc,dvd))、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

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

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

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