基于字典学习的图像编码方法及系统
技术领域
本发明涉及多媒体信息处理与通信技术领域,具体涉及一种基于字典学习的图像编码方法及系统。
背景技术
近些年来,移动互联网用户数飞速增长,人们期望能够获得更高质量的多媒体业务服务。因此,在无线网络带宽依然相对受限的环境下,如何提供高品质的多媒体业务并满足与日俱增的用户体验需求,面临着巨大挑战。例如:移动终端上大量高质量图片、照片的浏览与分享等移动多媒体应用。
为了解决高质量用户体验需求与有限带宽的矛盾,高质量的图像编码压缩技术十分必要。其中,信号的变换与表示方法被认为是图像编码压缩技术的最核心部分,例如,离散余弦变换(DCT)应用于JPEG图像压缩标准、MPEG4/H.264、HEVC视频压缩标准,离散小波变换应用于JPEG2000图像压缩标准中。然而,DCT和离散小波都是预先定义好的正交完备基信号,用于通用图像、视频压缩,并不考虑图像的内容以及其中的纹理特点。因此,对于图像的纹理特征不具有自适应性。
近些年来,关于人眼视觉心理学的研究表明,通过从自然图像库中学习得到的过完备信号基更符合人的主观视觉感受。这些通过计算学习获得的信号基组成一个字典矩阵,通过使用其中较少的元素形成某种线形组合,从而对未知图像块进行逼近和重建。其中,求解该线形组合中非零权系数的过程,称为稀疏表示或稀疏编码。在已知大量自然图像样本的前提下,归纳学习获取字典矩阵的过程,称为字典学习。现有的字典学习方法计算复杂度高,算法缓存空间开销大,无法用于大规模图像样本的训练与处理,而现有的在线学习算法虽然为处理大量样本问题提供了可能性,但是训练精度与重建误差较大。
为了解决这个问题,在保证能够处理大量样本训练的前提下,同时降低重建误差,本发明提出了一种基于批处理的稀疏表示方法(BSR,batch based sparse representation),可以提高重建精度,并基于此方法,进行高效在线字典学习。利用该字典,对图像进行稀疏表示,并对直流分量和非零系数及其索引分别进行量化、熵编码,从而提升压缩效率。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提供一种基于字典学习的图像编码方法及系统,其在保证能够处理大量训练样本的前提下,同时降低了图像样本的重建误差,提高了图像压缩的率失真性能。
(二)技术方案
为解决上述问题,本发明提供了一种基于字典学习的图像编码方法,包括以下步骤:
A、从图像样本中随机选取图像块,进行基于批处理的稀疏表示,通过交替优化方法求解字典矩阵;
B、根据已获得的字典矩阵,利用批处理的稀疏表示对待编码的图像块进行稀疏表示,并对稀疏系数向量中的非零系数进行量化熵编码;
C、在解码端,根据已获得的字典矩阵,对上述编码后的图像进行解码和稀疏重建。
优选地,所述步骤A进一步包括以下步骤:
A1、从图像样本中随机选取图像块,初始化中间变量矩阵H0←0、G0←0,其中H0为m行m列的实数矩阵,m为字典矩阵的列数,G0为n行m列的实数矩阵,n为图象块的维度,←表示初始化运算;初始化字典矩阵D0,所述D0为n行m列的实数矩阵;
A2、令迭代次数为t,从t=1开始,循环迭代所述图像块样本到第T次,其中T为获取样本次数;
A3、对于第t次循环,获取第t批图像块样本yt,1,...,yt,P,其中每个图像块样本为n行1列的列向量,共P个;
A4、在已知字典矩阵Dt-1的情况下,通过基于批处理的稀疏表示算法,求得P个稀疏系数列向量其中Dt-1为n行m列实数矩阵;
A5、更新中间变量矩阵:
A6、初始化以下矩阵:
A=[a1,...,am],B=[b1,...,bm],Q=[q1,...,qm],其中A←Ht,B←Gt,Q←Dt-1;
A7、逐列更新字典矩阵:
从第i=1列开始到第m列,依次逐列更新字典矩阵,
如果Ai,i≠0,那么 第i次循环结束;
A8、更新字典矩阵Dt←Q,循环结束;
A9、直到第T次循环结束,求得最终字典矩阵DT。
优选地,所述基于批处理的稀疏表示算法的求解步骤如下:
S1、初始化图像块矩阵
和对角字典矩阵
S2、求解约束条件下的最小二乘系数矩阵:
利用最小角度回归将
松弛到
其中
是该列向量
中的非零系数个数,
是该列向量
中的非零系数绝对值的和,s为非零系数个数的约束,利用最小角度回归方法LARS进行求解;
S3、从系数列向量
中求得稀疏系数[β
1,...,β
P]。
优选地,所述步骤B进一步包括以下步骤:
B1、对每个图像块的直流分量DC系数和交流分量AC系数进行分离;
B2、对所述直流分量DC系数进行差分脉冲编码调制,得到残差向量;
B3、对所述交流分量AC系数进行基于批处理的稀疏表示,求得相应的稀疏系数向量共J个列向量,其中J为待编码的图像块个数;
B4、对差分脉冲编码调制后的DC系数和经过基于批处理的稀疏表示求得的稀疏系数向量进行量化和熵编码,即对所述稀疏系数向量
中的非零元素及其索引进行量化和Huffman熵编码,形成压缩数据。
优选地,所述步骤C进一步包括以下步骤:
C1、对所述压缩数据进行Huffman熵解码和反量化,恢复图像块的稀疏系数
及每个图像块的差分脉冲编码调制后的直流分量DC系数及残差向量;
C2、进行解码重建,从差分脉冲编码调制后的直流分量DC系数和残差向量中恢复每个图像块的直流分量DC系数;
C3、在已知字典D
T的前提下,通过矩阵相乘,稀疏重建第j个图像块
恢复图像块的交流分量AC系数向量
共J个列向量;
C4、将重建后的直流分量DC系数、交流分量AC系数合并叠加,得到重建图像。
本发明还提供了一种基于字典学习的图像编码系统,该系统包括:
基于批处理的稀疏表示的字典学习模块,用于从图像样本中随机选取图像块,进行基于批处理的稀疏表示的字典学习,获得字典矩阵;
图像编码模块,与所述基于批处理的稀疏表示的字典学习模块相连,用于根据已获得的字典矩阵,利用批处理的稀疏表示对所述图像块进行稀疏表示,并进行图像编码;
图像解码模块,与所述基于批处理的稀疏表示的字典学习模块和所述图像编码模块相连,用于根据已获得的字典矩阵,对上述编码后的图像进行图像解码重建。
优选地,所述基于批处理的稀疏表示的字典学习模块包括:
训练图像样本库,用于存放用于训练学习的各种图像样本;
样本预处理单元,与所述训练图像样本库相连,用于去除图像样本块的均值,并进行归一化处理;
字典训练学习单元,与所述样本预处理单元相连,用于对预处理后的图像样本块进行稀疏表示与纹理归纳学习。
优选地,所述图像编码模块包括:
图像块分割与DC、AC系数分离单元,用于将输入的图像块划分为8x8或12x12或16x16大小的图像块,并对每块图像的直流分量DC系数与交流分量AC系数分开;
差分脉冲编码调制单元,与所述图像块分割与DC、AC系数分离单元相连,用于对图像块的直流分量DC系数进行差分编码,得到残差向量;
基于批处理的稀疏表示单元,与所述图像块分割与DC、AC系数分离单元相连,在已知字典矩阵的条件下,用于对图像块的交流分量AC系数进行稀疏变换,求得图像块的稀疏系数;
量化与熵编码单元,与所述差分脉冲编码调制单元和所述基于批处理的稀疏表示单元相连,用于对差分脉冲编码调制后的直流分量DC系数和经过基于批处理的稀疏表示求得的稀疏系数及其索引进行量化和Huffman熵编码,最终形成压缩数据。
优选地,所述图像解码模块包括:
反量化与熵解码单元,用于对上述压缩数据进行Huffman熵解码和反量化,恢复图像块的稀疏系数及每个图像块的差分脉冲编码调制后的直流分量DC系数及残差向量;
差分脉冲编码信号重建单元,与所述反量化与熵解码单元相连,用于从差分脉冲编码调制后的直流分量DC系数和残差向量中恢复每个图像块的直流分量DC系数;
基于批处理的稀疏表示的图像块稀疏重建单元,与所述反量化与熵解码单元相连,在已知字典矩阵的条件下,用于对图像块进行稀疏重建,恢复每个图像块的交流分量AC系数;
DC、AC系数合并与图像恢复单元,与所述差分脉冲编码信号重建单元和所述基于批处理的稀疏表示的图像块稀疏重建单元相连,用于对图像的直流分量DC系数和交流分量AC系数进行叠加,得到重建图像。
(三)有益效果
本发明给出了一种基于字典学习的图像编码方法及系统。从若干类自然图像样本中,获取大量图像纹理块,通过基于批处理的稀疏表示算法和快速在线学习方法,统计归纳出自然图像的纹理字典库,更符合人眼主观感受。利用该字典库,对图像进行稀疏表示,并对直流分量和非零系数及其索引分别进行量化、熵编码,从而获得更优的率失真压缩性能。
附图说明
图1是本发明方法的流程图;
图2是本发明系统的结构框图;
图3是基于BSR的字典学习模块框图;
图4是图像编码模块框图;
图5是图像解码模块框图;
图6是本发明方法与JPEG2000和JPEG标准相比的率失真性能曲线。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明提供了一种基于字典学习的图像编码方法,包括以下步骤:
步骤A:样本训练,从大量图像样本中随机选取图像块,进行基于批处理的稀疏表示(BSR)的字典学习,获得字典矩阵;
本步骤中,进一步包括以下步骤:
A1、从图像样本中随机选取图像块,初始化中间变量矩阵H0←0,G0←0,其中H0为m行m列的实数矩阵,m为字典矩阵的列数,G0为n行m列的实数矩阵,n为图象块的维度,初始化字典矩阵D0,所述D0为n行m列的实数矩阵;
A2、令迭代次数为t,从t=1开始,循环迭代所述图像块样本到第T次,其中T为获取样本次数;
A3、对于第t次循环,获取第t批图像块样本yt,1,...,yt,P,其中每个图像块样本为n行1列的列向量,共P个;
A4、在已知字典矩阵D
t-1的情况下,通过基于批处理的稀疏表示算法,求得P个稀疏系数列向量
其中D
t-1为n行m列实数矩阵;
A5、更新中间变量矩阵:
A6、初始化以下矩阵:
A=[a1,...,am],B=[b1,...,bm],Q=[q1,...,qm],其中A←Ht,B←Gt,Q←Dt-1;
A7、逐列更新字典矩阵:
从第i=1列开始到第m列,依次逐列更新字典矩阵,
如果Ai,i≠0,那么 第i次循环结束;
A8、更新字典矩阵Dt←Q,循环结束;
A9、直到第T次循环结束,求得最终字典矩阵DT。
其中,基于批处理的稀疏表示(BSR)的求解步骤如下所述:
S1、初始化图像块矩阵和对角字典矩阵
S2、求解约束条件下的最小二乘系数矩阵:
利用最小角度回归将
松弛到
其中
是该列向量
中的非零系数个数,
是该列向量
中的非零系数绝对值的和,s为非零系数个数的约束,利用最小角度回归方法LARS进行求解;
S3、从系数列向量
中求得稀疏系数[β
1,...,β
P]。
步骤B:在已知字典的前提下,利用批处理的稀疏表示(BSR)对图像块进行稀疏表示,并进行图像编码;
本步骤中,进一步包括以下步骤:
B1、对每个图像块的直流分量DC系数和交流分量AC系数进行分离;
B2、对所述直流分量DC系数进行差分脉冲编码调制,得到残差向量;
B3、对所述交流分量AC系数进行基于批处理的稀疏表示,求得相应的稀疏系数向量共J个列向量,其中J为待编码的图像块个数;
B4、对差分脉冲编码调制后的DC系数和经过基于批处理的稀疏表示求得的稀疏系数向量进行量化和熵编码,即对所述稀疏系数向量
中的非零元素及其索引进行量化和Huffman熵编码,形成压缩数据。
步骤C:在已知字典的前提下,进行图像的解码重建。
本步骤中,进一步包括以下步骤:
C1、对所述压缩数据进行Huffman熵解码和反量化,恢复图像块的稀疏系数
及每个图像块的差分脉冲编码调制后的直流分量DC系数及残差向量;
C2、进行解码重建,从差分脉冲编码调制后的直流分量DC系数和残差向量中恢复每个图像块的直流分量DC系数;
C3、在已知字典D
T的前提下,通过矩阵相乘,稀疏重建第j个图像块
恢复图像块的交流分量AC系数向量
共J个列向量;
C4、将重建后的直流分量DC系数、交流分量AC系数合并叠加,得到重建图像。
如图2所示,本发明还提供了一种基于字典学习的图像编码系统,该系统包括:
基于BSR的字典学习模块,用于从图像样本中随机选取图像块,进行基于批处理的稀疏表示的字典学习,获得字典矩阵;
图像编码模块,与所述基于BSR的字典学习模块相连,用于根据已获得的字典矩阵,利用批处理的稀疏表示对所述图像块进行稀疏表示,并进行图像编码;
图像解码模块,与所述基于BSR的字典学习模块和所述图像编码模块相连,用于根据已获得的字典矩阵,对上述编码后的图像进行图像解码重建。
如图3所示,所述基于BSR的字典学习模块包括:
1)训练图像样本库,用于存放大量的用于训练学习的各种图像样本;
2)样本预处理单元,与所述训练图像样本库相连,用于去除图像样本块的均值,并进行归一化处理;
3)字典训练学习单元,与所述样本预处理单元相连,用于对预处理后的图像样本块进行稀疏表示与纹理归纳学习。
如图4所示,所述图像编码模块包括:
1)图像块分割与DC、AC系数分离单元,用于将输入图像划分为8x8或12x12或16x16大小的图像块,并对每块图像的直流分量DC值与交流分量AC值分开;
2)差分脉冲编码调制单元(DPCM),与所述图像块分割与DC、AC系数分离单元相连,用于对图像块的直流分量DC进行差分编码,得到残差向量;
3)基于批处理的稀疏表示单元(BSR),与所述图像块分割与DC、AC系数分离单元相连,在已知字典矩阵的条件下,用于对图像块的交流分量AC进行稀疏变换,求得图像块的稀疏系数;
4)量化与熵编码单元,与所述差分脉冲编码调制单元和所述基于批处理的稀疏表示单元相连,用于对差分编码后的DC值和经过BSR求得的稀疏系数及其索引进行量化和Huffman熵编码,最终形成压缩数据。
如图5所示,所述图像解码模块包括:
1)反量化与熵解码单元,用于对压缩数据进行Huffman熵解码和反量化,恢复图像块的稀疏系数及每个图像块的直流分量DC及残差向量;
2)差分脉冲编码信号重建单元(DPCM),与所述反量化与熵解码单元相连,用于从图像块DC值和残差向量中恢复每个图像块的DC值;
3)基于BSR的图像块稀疏重建单元,与所述反量化与熵解码单元相连,在已知字典矩阵的条件下,用于对图像块进行稀疏重建,恢复每个图像块的AC系数向量;
4)DC、AC系数合并与图像恢复单元,与所述差分脉冲编码信号重建单元和所述基于BSR的图像块稀疏重建单元相连,用于对图像的DC系数和AC系数进行叠加,从而得到重建图像。
图6为本发明所述的基于BSR字典学习的图像编码方法与JPEG2000和JPEG标准相比的率失真性能曲线。
测试条件:标准测试图像lena和barbara,灰度图像,尺寸512x512;典型参数配置如下所示:图像块大小8x8,即n=64;字典矩阵大小64x256,即m=256;批处理个数P=8;非零系数个数的约束条件s=10;总计训练样本图像块个数不少于10万(即P与获取样本次数T的乘积);对比算法为JPEG2000和JPEG图像压缩标准,如图6所示;图样为
的曲线为本文提供的方法,图样为
的曲线为JPEG2000压缩标准,图样为
的曲线为JPEG压缩标准。从图中可以看出,在相同压缩率的条件下,本文提供的基于BSR字典学习的图像编码方法平均优于JPEG2000压缩标准1.5dB的峰值信噪比(PSNR,Peak Signal-to-Noise Ratio),体现出更优的率失真性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。