一种基于图像压缩的去块效应方法与流程

文档序号:16247741发布日期:2018-12-11 23:44阅读:351来源:国知局
一种基于图像压缩的去块效应方法与流程

本发明属于图像处理领域,涉及一种基于图像压缩的去块效应方法,用以去除压缩图像中存在的块效应。

背景技术

图像压缩为数字终端、移动设备存储和传输图像带来了极大的便利,然而这些设备受客观条件影响,存在计算能力低和带宽受限的问题,通常需要对图像进行较大压缩比的压缩,这就会带来极大的失真,表现为:振铃效应、块效应等。压缩图像的块效应是指图像中编码块边界的不连续性,造成块效应的主要原因是各个块的变换量化编码过程相互独立,相当于对各个块使用了不同的滤波器分别滤波,因此各块引入的量化误差大小及其分布特性相互独立,导致相邻块边界的不连续。

近年来,学者们提出了许多去块效应算法,例如,对块边界进行平滑滤波可以有效地降低、去除块效应,但是峰值信噪比提高不多,视觉效果一般;基于凸集投影pocs的方法,将去块效应视为图像恢复问题,但是这种方法需要经过多次迭代,计算复杂度很高;基于重叠块的正交变换编码、小波变换、预测编码等方式,也取得了不错的去块效应的效果,但是计算复杂度高、去块效应时间长。



技术实现要素:

本发明的目的在于针对上述去块效应技术计算复杂度高、去块效应时间长的不足,提供一种基于图像压缩的图像去块效应方法,用以提高图像压缩中去块效应的能力,减少计算复杂度,提高峰值信噪比,同时提高图像主观上的视觉感受。

为实现上述目的,本发明采用的技术方案为:

一种基于图像压缩的去块效应方法,包括以下步骤:

步骤1.图像压缩

用jpeg图像压缩方法对输入图像进行压缩,将压缩后的图像记为a;

步骤2.图像分块

按照jpeg图像压缩方法中的分块方式将步骤1中得到的压缩图像a划分成互不重叠的、大小为8×8的图像块,将所有图像块中左右相邻的两个图像块分别记为bli和bri,将所有图像块中上下相邻的两个图像块分别记为bui和bdi,i是图像块的下标索引,i=1,2,3,…;

步骤3.二维离散余弦变换

对步骤2中产生的图像块bli、bri、bui与bdi分别进行二维离散余弦变换,得到变换后的系数块,对应记为bli、bri、bui与bdi;

步骤4.产生变换系数向量

首先,将步骤3中得到的系数块bli、bri、bui与bdi均进行如下变换:

将系数块中的系数按照从上到下、从左到右的顺序依次取出,再按照从上到下的顺序组成一个一维的列向量,

对应得到列向量x1、x2、x3与x4;

然后,将列向量x1和列向量x2按照从上到下的顺序组成变换系数向量h:符号t表示转置;将列向量x3和列向量x4按照从上到下的顺序组成变换系数向量v:

步骤5.产生反变换矩阵

首先,构建64×64的反变换矩阵d:其中,c为8×8的离散余弦变换矩阵,代表kronecker乘法中的乘法算子;

然后,按照从上到下的顺序将矩阵d的第57~64个行向量依次取出,按照从上到下的顺序组成8×64的矩阵λ1;按照从上到下的顺序将矩阵d的第1~8个行向量依次取出,按照从上到下的顺序组成8×64的矩阵λ2;按照从上到下的顺序将矩阵d的第8、16、24、32、40、48、56、64个行向量依次取出,按照从上到下的顺序组成8×64的矩阵λ3;按照从上到下的顺序将矩阵d的第1、9、17、25、33、41、49、57个行向量依次取出,按照从上到下的顺序组成8×64的矩阵λ4;

最后,用λ1、λ2构建16×128的变换矩阵d1:用λ3、λ4构建16×128的变换矩阵d2:其中,o是8×64的全零矩阵;

步骤6.产生去块效应算法的相关参数

首先,用8×8的单位矩阵e和8×8的全零矩阵z,按照从左到右的顺序组成8×16的矩阵s1:s1=[ez];再用矩阵z和e,按照从左到右的顺序组成8×16的矩阵s2:s2=[ze];

然后,构建矩阵s:s=s1-s2;

最后,根据jpeg图像压缩方法中的品质因子qf,定义去块效应方法中的调节因子:λ=0.1×qf+0.45;

步骤7.水平方向滤波

其中,为水平方向滤波后的系数列向量,i为128×128的单位矩阵;

进而得到水平方向滤波后的像素列向量x1:

步骤8.垂直方向滤波

其中,为垂直方向滤波后的系数列向量,

进而得到垂直方向滤波后的像素列向量x2:

步骤9.更新图像块像素点

用步骤7产生的像素列向量x1的第1~8行的元素按从上到下的顺序替换步骤2中产生的图像块bli的最右侧列向量的元素,将替换后的图像块记为bli′;

用步骤7产生的像素列向量x1的第9~16行的元素按从上到下的顺序替换步骤2中产生的图像块bri的最左侧列向量的元素,将替换后的图像块记为bri′;

用步骤8产生的像素列向量x2的第1~8行的元素按从左到右的顺序替换步骤2中产生的图像块bui的最下侧行向量的元素,将替换后的图像块记为bui′;

用步骤8产生的像素列向量x2的第9~16行的元素按从左到右的顺序替换步骤2中产生的图像块bdi的最上侧行向量的元素,将替换后的图像块记为bdi′;

步骤10.合成滤波后的图像

对于步骤9中产生的图像块bl′i、br′i、bu′i和bd′i,采用jpeg图像压缩方法中图像块合成图像方法,得到滤波后的图像

本发明的有益效果在于:

本发明通过将相邻图像块梯度变化和变换域系数的结合,构造基于变换系数的去块效应优化函数;通过求解有约束的最优化问题,得到滤波后的边界像素点;在最小化相邻压缩图像块边缘区域梯度的同时,保证了变换系数在去块效应前后的一致性,这样在去除块效应的同时,降低了因去块效应而引起的二次误差。本发明应用于解码图像后,能够明显提高解码图像的峰值信噪比,对人眼主观视觉的感受有较大改善;并且,大大降低算法复杂度,能够有效去除因分块压缩所引起的块效应。

附图说明

图1为本发明一种基于图像压缩的去块效应方法的流程示意。

图2为本发明实施例中仿真所使用的图像:(a)butterfly;(b)statue。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

本发明提供一种基于图像压缩的去块效应方法,为方便描述本发明内容,首先做一下术语定义:

定义1:传统的jpeg图像压缩方法

传统的jpeg图像压缩方法是按照jpeg图像压缩标准对图像进行分块式压缩的方法,其中包括了经典的图像分块方法、图像块的二维离散余弦变换方法、变换系数块的量化和反量化方法、系数块的熵编码方法、系数块的二维离散余弦反变换方法以及用压缩后的图像块合成完整图像的方法等,具体描述过程参见“jpeg(jointphotographicexpertsgroup):iso/iecis10918–1/itu-trecommendationt.81,digitalcompressionandcodingofcontinuous-tonestillimage,1993;”

定义2:传统的二维离散余弦变换

传统的二维离散余弦变换是将图像块从像素域转换到变换域的方法,通过对原始图像块矩阵分别左乘和右乘二维离散余弦变换矩阵,能够实现对原始图像块的二维离散余弦变换,具体描述过程参见“jpeg(jointphotographicexpertsgroup):iso/iecis10918–1/itu-trecommendationt.81,digitalcompressionandcodingofcontinuous-tonestillimage,1993;”

定义3:传统的产生离散余弦变换矩阵的方法

传统的产生离散余弦变换矩阵的方法是根据离散余弦变换的定义,计算变换矩阵中的每一个变换系数,产生任意大小的离散余弦变换矩阵的方法,具体描述过程参见文献“数字视频编码技术原理”,高文、赵德斌、马思伟著,科学出版社;

定义4:传统的kronecker乘法

传统的kronecker乘法可以表示为其中,表示kronecker乘法算子,a是大小为m×n的矩阵,aij为矩阵a中的元素,i代表横坐标索引,j代表纵坐标索引。

b是大小为p×q的矩阵,bij为矩阵b中的元素,i代表横坐标索引,j代表纵坐标索引。

c是大小为mp×nq的矩阵,

具体描述过程参见文献“矩阵分析与应用(第2版)”,张贤达著,清华大学出版社;

上述基于图像压缩的图像去块效应方法的具体流程如图1所示,包括以下步骤:

步骤1.图像压缩

用传统的jpeg图像压缩方法对输入图像进行压缩,将压缩后的图像记为a;

步骤2.图像分块

按照传统的jpeg图像压缩方法中的分块方式将步骤1中得到的压缩图像a划分成互不重叠的、大小为8×8的图像块,将所有图像块中左右相邻的两个图像块分别记为bli和bri,将所有图像块中上下相邻的两个图像块分别记为bui和bdi,这里,i是图像块的下标索引,i=1,2,3,…;

步骤3.二维离散余弦变换

首先,对步骤2中产生的图像块bli进行传统的二维离散余弦变换,得到变换后的系数块,记为bli;对步骤2中产生的图像块bri进行传统的二维离散余弦变换,得到变换后的系数块,记为bri;

接着,将步骤2中产生的图像块bui进行传统的二维离散余弦变换,得到变换后的系数块,记为bui;对步骤2中产生的图像块bdi进行传统的二维离散余弦变换,得到变换后的系数块,记为bdi;

步骤4.产生变换系数向量

首先,将步骤3中产生的系数块bli中的系数按照从上到下、从左到右的顺序依次取出,再按照从上到下的顺序组成一个一维的列向量,记为x1;将步骤3中产生的系数块bri中的系数按照从上到下、从左到右的顺序依次取出,按照从上到下的顺序组成一个一维的列向量,记为x2;

接着,将步骤3中产生的系数块bui中的系数按照从上到下、从左到右的顺序依次取出,再按照从上到下的顺序组成一个一维的列向量,记为x3;将步骤3中产生的系数块bdi中的系数按照从上到下、从左到右的顺序依次取出,按照从上到下的顺序组成一个一维的列向量,记为x4;

最后,将列向量x1和列向量x2按照从上到下的顺序组成一个列向量,记为h,这里,符号t表示对向量进行转置操作;将列向量x3和列向量x4按照从上到下的顺序组成一个列向量,记为v,这里,

步骤5.产生反变换矩阵

首先,用传统的产生离散余弦变换矩阵的方法产生一个大小为8×8的离散余弦变换矩阵,记为c;

其次,用传统的kronecker乘法和离散余弦变换矩阵c,产生一个大小为64×64的反变换矩阵,记为d,这里,符号代表传统的kronecker乘法中的乘法算子;

接着,按照从上到下的顺序将矩阵d的第57~64个行向量依次取出,按照从上到下的顺序组成一个大小为8×64的矩阵,记为λ1;按照从上到下的顺序将矩阵d的第1~8个行向量依次取出,按照从上到下的顺序组成一个大小为8×64的矩阵,记为λ2;按照从上到下的顺序将矩阵d的第8、16、24、32、40、48、56、64个行向量依次取出,按照从上到下的顺序组成一个大小为8×64的矩阵,记为λ3;按照从上到下的顺序将矩阵d的第1、9、17、25、33、41、49、57个行向量依次取出,按照从上到下的顺序组成一个大小为8×64的矩阵,记为λ4;

最后,用λ1、λ2和大小为8×64的全零矩阵,产生一个大小为16×128的矩阵,记为d1,这里,o是大小为8×64的全零矩阵;用λ3、λ4和大小为8×64的全零矩阵,产生一个大小为16×128的矩阵,记为d2,这里,

步骤6.产生去块效应算法的相关参数

首先,用大小为8×8的单位矩阵,记为e,和大小为8×8的全零矩阵,记为z,按照从左到右的顺序组成一个大小为8×16的矩阵,记为s1,这里,s1=[ez];

其次,用矩阵z和e,按照从左到右的顺序组成一个大小为8×16的矩阵,记为s2,这里,s2=[ze];

接着,用矩阵s1和矩阵s2生成一个大小为8×16的矩阵,记为s,这里,s=s1-s2;

最后,根据传统的jpeg图像压缩方法中的品质因子qf,定义去块效应算法中的调节因子,记为λ,这里,λ=0.1×qf+0.45;

步骤7.水平方向滤波

首先,将水平方向滤波后的系数列向量记为这里,其中,i是大小为128×128的单位矩阵;

然后,用d1和产生水平方向滤波后的像素列向量,记为x1,这里

步骤8.垂直方向滤波

首先,将垂直方向滤波后的系数列向量记为这里

然后,用d2和产生垂直方向滤波后的像素列向量,记为x2,这里

步骤9.更新图像块像素点

首先,用步骤7产生的像素列向量x1的第1~8行的元素按从上到下的顺序替换步骤2中产生的图像块bli的最右侧列向量的元素,将替换后的图像块记为bl′i;

其次,用步骤7产生的像素列向量x1的第9~16行的元素按从上到下的顺序替换步骤2中产生的图像块bri的最左侧列向量的元素,将替换后的图像块记为br′i;

接着,用步骤8产生的像素列向量x2的第1~8行的元素按从左到右的顺序替换步骤2中产生的图像块bui的最下侧行向量的元素,将替换后的图像块记为bui′;

最后,用步骤8产生的像素列向量x2的第9~16行的元素按从左到右的顺序替换步骤2中产生的图像块bdi的最上侧行向量的元素,将替换后的图像块记为bdi′;

步骤10.合成滤波后的图像

对于步骤9中产生的图像块bl′i、br′i、bu′i和bd′i,采用传统的jpeg图像压缩方法中图像块合成图像的方法,产生滤波后的图像,记为

本实施例中采用的测试图像如图2所示,分别为“butterfly”和“statue”图像;将图像按照上述方法进行去块滤波处理,其结果如下表所示:

从上表中可以看出,当图像分别使用0.25bpp、0.30bpp、0.35bpp、0.40bpp、0.45bpp的码率进行编码时,使用本发明方法所得到的图像的峰值信噪比相比于压缩后的图像的峰值信噪比,有十分明显的提升。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

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