一种基于图像平坦区域特征的压缩方法和装置与流程

文档序号:11157554阅读:647来源:国知局
一种基于图像平坦区域特征的压缩方法和装置与制造工艺

本发明涉及图像压领域,尤其涉及一种基于图像平坦区域特征的压缩方法和装置。



背景技术:

单幅图像压缩的概念是减少表示单幅数字图像时需要的数据量。因此压缩后的图像,在存储图像时会减少占用的存储空间,在传输图像时所需要占用的流量/带宽就会更小。因此图像压缩有广泛的应用。

单幅图像压缩的基本原理如下:

图像数据之所以能被压缩,就是因为数据中存在着冗余。单幅图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

单幅图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。

单幅图像压缩的方法有很多,例如:无损图像压缩方法有:1、行程长度编码,2、熵编码法,3、自适应字典算法等;有损压缩方法有:1、将色彩空间化减到图像中常用的颜色。所选择的颜色定义在压缩图像头的调色板中,图像中的每个像素都用调色板中颜色索引表示。这种方法可以与抖动一起使用以模糊颜色边界。2、色度抽样,这利用了人眼对于亮度变化的敏感性远大于颜色变化,这样就可以将图像中的颜色信息减少一半甚至更多。3、变换编码,这是最常用的方法。首先使用如离散余弦变换DCT或者小波变换这样的傅立叶相关变换,然后进行量化和用熵编码法压缩。单幅图像压缩算法很多,在此不再一一列举。

在现有单幅图像压缩算法中,人们一直更关注细节较多、信息量较大的纹理区域的压缩;平坦区域由于信息量较少,在码流中所占的比例较小,没有得到足够的重视。一般认为,平坦区域像素值分布集中,图像复杂度低,只需要消耗很少的码流便可以较好地描述该区域;但是实际情况是,较大的分块和较小的码率下的平坦区域重建图像质量并不高,容易出现较为明显的块效应。

一般认为,图像编码中平坦区域的块效应是由量化引起的,码率较低时采用的较大的量化步长会导致更大的量化噪声,从而产生更严重的块效应。

实际上,宏观上像素值变化较为平缓的平坦区域,对图像划分小块进行编码时,原始图像中的噪声会对编码器产生很大的干扰,导致编码器对编码块的像素分布情况做出有利于保留噪声影响的错误判断,造成编码效率和编码质量的下降。

在现有的图像编码标准中,平坦区域的压缩都是以局部分块中沿着某方向所有像素值相等的方式进行描述的,忽略了平坦区域中像素的整体的渐变模式在图像局部多个分块中的体现。

研究能保留平坦区域宏观渐变特征、对随机噪声有较强鲁棒性且能对大范围平坦区域进行统一描述的单帧图像压缩算法,是很有意义的。



技术实现要素:

本发明的目的在于提供一种基于视频单帧和单幅图像中平坦区域特征的单幅图像压缩方法及装置,充分考虑了平坦区域像素渐变的特性,应用于具有渐变规律的平坦区域的图像时,能获得更好的压缩效果。

为了达到上述目的,本发明所采用的技术方案如下:一种基于图像平坦区域特征的压缩方法,具体包括如下步骤:

(1)利用视频单帧或单幅图片信息,获得平坦区域并建立平坦区域的像素渐变模型,根据像素渐变模型划分平坦区域,获得平坦区域分块;

(2)利用平坦区域分块内的像素信息,获得平坦区域分块的梯度分布模型,利用梯度分布模型将平坦区域分块内包含的像素进行分类,得到像素集以及像素集对应的像素集描述算子;

(3)对像素集以及像素集对应的像素集描述算子进行压缩,生成描述码流;

(4)利用描述码流获得像素集的预测图像;对像素集原始图像和预测图像进行作差,得到残差图像;对残差图像进行压缩,获得残差码流;

(5)对描述码流和残差码流进行复用压缩处理,生成压缩图像码流或文件。

进一步的,所述步骤(1)具体为:

(1.1)获取原始图像像素信息;

(1.2)使用低通滤波器与原始图像进行卷积滤除原始图像干扰信号;

(1.3)对滤除了干扰信号的图像中所有像素进行下述连通域判断:若某像素与其相邻像素的值相差小于阈值,则认为这些像素属于同一个连通域,通过连通域判断,可将滤除了干扰信号的图像中所有的像素划分成多个连通域;

(1.4)面积大于阈值的连通域即为平坦区域;

(1.5)建立平坦区域在二维坐标系中的像素渐变模型,过程如下:

将平坦区域分割成大小为M×M的规则块,其中M为正整数,若该规则块内的像素值沿着与二维坐标系横轴正方向的夹角为β的方向一直递增,则可以认为该规则块的方向为β,渐变方向α的计算公式如下:

若该规则块内的像素值不沿着统一的方向递增,则对该规则块进行四等分操作,即将该规则块划分为大小为的四个小块,如果某个小块内的像素值沿着统一的方向递增,则认为该小块的方向为βj,其中j为该小块的编号,j为自然数;如果某个小块内的像素值不沿着统一的方向递增,则重复上述四等分操作,获得更小的小块,直到所有小块内的像素沿着统一的方向递增,从而建立各小块的划分方式和渐变方向构成平坦区域的像素渐变模型;

(1.6)根据像素渐变模型划分平坦区域获得平坦区域分块,过程如下;

按顺序扫描平坦区域的像素渐变模型中所有的小块,若两个相邻小块的渐变方向差值小于阈值,则将这两个小块归入同一个平坦区域分块,对所有的小块进行上述操作即可将平坦区域划分为一个或多个平坦区域分块;

3、根据权利要求1所述的基于图像平坦区域特征的压缩方法,其特征在于,所述步骤(2)具体为:

(2.1)利用平坦区域分块内的像素信息,获得平坦区域分块的梯度分布模型,过程如下:

依据平坦区域分块内的像素信息生成平坦区域分块的梯度方向图,将平坦区域分块的梯度方向图分割成大小为N×N的规则块,N为正整数;统计规则块中梯度幅值为0的像素在所有像素中的比例;统计规则块中梯度方向直方图,获得出现频率最高的g个梯度方向值,g为正整数;每个规则块中梯度幅值为0的像素在所有像素中的比例和出现频率最高的g个梯度方向值构成该规则块的梯度分布模型;所有规则块的划分方式和梯度分布模型构成平坦区域分块的梯度分布模型;

(2.2)当相邻规则块的梯度分布模型相似度高于阈值Tg,则将这两个相邻块归并到同一个像素集;对所有规则块进行上述归并操作,即可得到一个或多个所述像素集,像素集的方向α0等于所在的平坦区域分块的渐变方向;

(2.3)将每个像素集对应的原始图像沿着像素集的方向α0分解成只含有单行像素的线段;以该线段上所有像素与线段的最左下顶点之间的距离为横坐标x,以该像素的值为纵坐标y建立二维坐标系(x,y),对线段上所有像素在该二维坐标系中使用最小二乘法进行线性拟合,获得这根线段对应的渐变描述函数表达式y=kx+b,式中与x,y无关的k,b就是该线段的渐变描述函数的参数;所有线段对应的参数k,b按顺序组成的矩阵[KB]即为该像素集的渐变描述矩阵,矩阵K由所有线段的参数k按顺序排列构成,矩阵B的由所有线段的参数b按顺序排列构成,矩阵K和矩阵B的列数为1,行数等于像素集分解得到的线段的个数l。像素集的渐变描述矩阵[KB]和像素集的方向α0构成该像素集的像素集描述算子。

进一步的,所述步骤(3)具体为:

对像素集进行压缩的过程如下:

对像素集的最外围轮廓进行描述,如果该轮廓内部有孔洞,则需要使用该孔洞的轮廓描述最外围轮廓内部需要去除的区域;像素集的最外围轮廓和孔洞的轮廓上所有像素的坐标构成像素集轮廓描述;像素集轮廓描述的压缩采用顶点描述压缩法,将轮廓近似为多条首尾相接的线段,保留所有线段的顶点坐标作为压缩后的轮廓描述;

对像素集对应的像素集描述算子进行压缩的过程如下:

对像素集描述算子包含的方向α0以步长Δα进行量化;对像素集描述算子包含的渐变描述矩阵使用增量压缩方式进行压缩,对增量压缩后的信息采用算术编码进行压缩;记像素集描述算子行的参数矩阵各行的值分别为P0,P1,P2,…,Pl,其中下标0,1,…,l为参数矩阵的行号,即原始的渐变描述矩阵[KB]可表示为[P0 P1 P2 … Pl]T,可记D0=P1-P0,D1=P2-P1,…,Dl-1=Pl-Pl-1,则经过增量压缩后的渐变描述矩阵为[P0 D0 D1 … Dl-1]T

量化后的方向α0和增量压缩后的渐变描述矩阵构成压缩后的像素集描述算子,对压缩后的像素集描述算子使用算术编码进行压缩,得到所述特征描述码流。

进一步的,所述步骤(4)具体为:

利用描述码流获得像素集的预测图像;对像素集原始图像和预测图像进行作差,得到残差图像;对残差图像进行压缩的过程如下:

对残差采用大小为T×T的DCT变换,对DCT变换后的系数进行量化,量化时,需要减少低频系数的量化步长,增加中高频系数的量化步长,对量化后的系数使用Huffman编码或算术编码进行压缩,获得残差码流。

进一步的,所述复用压缩处理使用熵编码方式。

本发明还提供一种基于图像平坦区域特征的压缩的装置,包括图像获取单元、图像分析单元、图像处理单元、区域划分单元、区域特征描述单元、像素集及像素集描述算子压缩单元、残差压缩单元和复用压缩单元,其中:

所述图像获取单元,用于以滑动窗口模式或逐点扫描模式,读取视频单帧或读取图片生成单幅图像;

所述图像分析单元,用于对图像获取单元中获取的图像进行分区域分析,分析干扰信号种类和分布。

所述图像处理单元,用于消除图像分析单元分析出的干扰信号和噪声。

所述区域划分单元,用于识别平坦区域,建立平坦区域的像素渐变模型,并按照像素渐变模型进行划分平坦区域获得平坦区域分块。

所述区域特征描述单元,用于获取区域划分单元划分出的分块的梯度分布模型,并将划分出的平坦区域分块内的像素进行进一步划分,得到像素集以及像素集对应的像素集描述算子;

所述像素集及像素集描述算子压缩单元,用于对像素集和像素集对应的像素集描述算子进行压缩,生成描述码流;

所述残差压缩单元,用于利用描述码流获得像素集的预测图像,对像素集原始图像和预测图像进行作差,得到残差图像,对残差图像进行压缩,获得残差码流;

所述复用压缩单元,用于对描述码流和残差码流进行复用压缩处理,生成压缩图像码流或文件。

从以上技术方案可以看出,本发明实施例具有以下优点:

1、利用视频单帧或单幅图片信息,获得平坦区域,这些平坦区域具有较大的面积;对较大范围的平坦区域建立像素渐变模型,可以避免传统的图像编码中划分规则小块进行编码时块划分数据较大、小块的编码容易受到块内噪声影响的缺点,获得平坦区域较大范围内的像素值宏观变化规律;根据像素渐变模型划分平坦区域,获得平坦区域分块,从而保证各分块内部像素的渐变方向保持较高的一致性;

2、利用平坦区域分块内的梯度分布模型划分像素集,可以使得各像素集内部具有高度的一致性,有利于使用参数更少的描述算子表述整个像素集,通过控制阈值,可以控制分块内像素集的大小、像素集描述算子的复杂度和描述质量,从而比传统的图像编码算法具有更高的灵活性;使用的线段描述算子矩阵,保留了像素集内的部分噪声,在不增加描述算子的比特数的情况下,使得描述更接近原始图像。

3、分别对像素集、像素集的像素集描述算子、残差进行压缩,可以根据不同数据类型的需要采用不同的压缩算法,在保证一定的压缩比的情况获得更好的压缩图像。像素集描述算子采用的是无损的增量压缩,完全保留了描述的精度;残差采用的是有损的量化方式进行压缩,对低频系数采用较小的量化步长,充分保留了色彩偏移的信息,对中高频系数采用较大的量化步长,减小了中高频噪声消耗的比特数。

4、对描述码流和残差码流进行复用压缩处理,生成单幅图像压缩文件,在对各部分数据进行分别压缩后,再采用熵编码的方式消除各部分数据间存在的冗余,可以在完全不损失任何信息的情况下获得比单次压缩更高的压缩比。

因此本发明实施例与现有的图像编码算法相比,在多个方面具有优越性。

附图说明

图1为本发明一种实施例的基于图像平坦区域特征的压缩方法流程图;

图2为本发明实施例的于图像平坦区域特征的压缩方法的具体流程图;

图3为本发明的基于图像平坦区域特征的压缩装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

本发明实施例提供了一种图像压缩方法,

如图1所示,该方法主要包括以下几个步骤:

步骤S102,获取包含需要压缩的平坦区域的单幅图像;上述单幅图像需要包含有大面积的平坦区域;

步骤S104,滤除原始图像干扰信号;由于获得的原始图像往往带有噪声和坏点,这些干扰信号有可能对平坦区域的识别、划分和描述产生影响,因此需要使用滤波器与原始图像进行卷积,尽可能消除这些干扰信号的影响;

步骤S106,识别平坦区域并划分平坦区域分块;识别消除了干扰信号的图像中面积较大的平坦区域,并将这些平坦区域根据像素渐变模型进行分块;

步骤S108,划分并描述像素集;利用平坦区域分块内的像素信息,获得平坦区域分块的梯度分布模型,依据该梯度模型将步骤S106获得的平坦区域分块中的所有像素划分成一个或多个像素集,并生成各个像素集对应的像素集描述算子;

步骤S110,生成渐变模式描述码流;对像素集和像素集描述算子进行压缩,获得渐变模式描述码流;

步骤S112,生成残差码流;使用压缩后的渐变模式描述码流对各像素集中的像素进行预测,与原始图像作差得到预测残差;对获得的残差进行压缩获得残差码流;

步骤S114,生成压缩图像码流;对渐变模式码流和残差码流进行复用压缩,获得压缩后的图像码流或文件。

图2是根据本发明实施例的图像压缩方法流程图以及优选实施例对上述实施例提供的单幅图像压缩方法进行更加详细的说明。如图2所示,该流程图包括以下步骤(步骤S202-步骤S214)。

步骤S202,使用滑动窗口或逐点扫描的方式获取原始图像像素信息;本发明实施例中,需要进行压缩的图像,可以来自于相机,或者其他任意图像源。原始图像中需要有大面积的平坦区域。

步骤S204,使用低通滤波器与原始图像卷积滤除原始图像干扰信号;本实施例中,对步骤S202中获得的单幅图像所有像素信息使用低通滤波器进行滤波以消除干扰信号。滤除平坦区域的坏点采用5×5的中值滤波器;滤除平坦区域的随机噪声采用高斯滤波器。在本发明实施例中,滤波器的各项参数是技术人员预先设定的值;这些参数也可以依据后续采用的识别和描述算法的要求进行调整。一般来说,低通滤波器设定的平滑尺度越大,图像的平滑程度越高,保留的中高频信息越少,后续识别出的平坦区域越多;低通滤波器设定的平滑尺度越小,保留的中高频信息越多,一部分含有较大噪声的平坦区域会被后续的识别算法判定为非平坦区域。

步骤S206,识别平坦区域并建立平坦区域的像素渐变模型,根据像素渐变模型划分平坦区域分块;本实施例中,对滤除了干扰信号的图像中所有像素进行下述连通域判断:若某像素与其相邻像素的值相差小于阈值1,则认为这些像素属于同一个连通域,通过连通域判断,可将滤除了干扰信号的图像中所有的像素划分成多个连通域;面积大于阈值10000的连通域即为平坦区域;

本实施例中,建立平坦区域在二维坐标系中的像素渐变模型的过程如下:

优选对图像采用量化的方法进行平坦区域的划分;将滤波后的图像量化为色彩深度为4比特的图像;将量化后的平坦区域分割成大小为64×64的规则块,分别计算所有规则块的方向β,本实施例中,对方向β的计算在笛卡尔坐标系中完成;规则块B的方向的计算通过fB⊥β:B→Lβ映射完成,其中Lβ代表经过所述色彩深度为4比特的图像原点,且与x轴正方向夹角为β∈[0,π)的直线;映射fB⊥β代表的映射方法等价于将规则块B内所有的像素点对直线Lβ作垂直映射操作,方法如下:

若规则块B内的像素值不着统一的方向递增,则将规则块B内所有像素点映射到经过该像素的Lβ的法线与直线Lβ的交点;最终直线Lβ上有对应映射像素点的点组成的线段的长度称为投影面积,投影面积可用像素点个数进行度量,记为N(fB⊥β),使得N(fB⊥β)最小的β则认为是规则块B的角度β。

本实施例为了获得更好的渐变方向,分别计算规则块B内像素值相等区域的各N(fB⊥β),其中Bi是规则块B中像素值为i的像素构成的子集。此时渐变方向为的联合最优解,详细计算步骤如下:

将区间[0,π)进行N等分,N为经验值,一般可取7或9。得到N个区间:

将像素集内所有像素对直线Lβ做垂直投影映射,β取①中获得的N个区间的左边界,得到对应的投影面积之和找出所有Nβ的最小值Nβ0和次最小值Nβ1,分别对应渐变直线Lβ0和Lβ1;当出现最小值或次最小值对应多个β的情况时,取这些β中位数作为结果。如果|β0-β1|<thresh,即最小值和次最小值对应的角度差小于设定的精度阈值时,跳转步骤⑤;

如果β0和β1所属的区间不相邻,跳转步骤④。以为区间,重复步骤①~步骤③;

找出步骤②算得的Nβ中除Nβ0和Nβ1外最小值Nβ2,将β的取值区间设为如果该区间超出[0,π),则将取值范围约束到[0,π)之内,然后重复步骤①~步骤③。

该规则块的方向与x轴正方向的夹角定为β0,算法结束。

若某规则块的方向为β,则该规则块渐变方向α的计算公式如下:

若规则块B内的像素值不沿着统一的方向递增,则对该规则块进行四等分操作,即将该规则块划分为大小为的四个小块,如果某个小块内的像素值沿着统一的方向递增,则认为该小块的方向为βj,其中j为该小块的编号;如果某个小块内的像素值不沿着统一的方向递增,则重复上述四等分操作,获得更小的小块,直到所有小块内的像素沿着统一的方向递增,从而建立各小块的划分方式和渐变方向构成平坦区域的像素渐变模型;

根据像素渐变模型划分平坦区域获得平坦区域分块,过程如下:

按顺序扫描平坦区域的像素渐变模型中所有的小块,若两个相邻小块的渐变方向差值小于阈值,则将这两个小块归入同一个平坦区域分块,对所有的小块进行上述操作即可将平坦区域划分为一个或多个平坦区域分块;

这里应说明的是,量化只是平坦区域识别和分割的一种实施方案,其他可选的方案还有划分为规则矩形块后计算块内所有像素值的平均值和判断块内像素的标准差或方差是否小于阈值等,阈值可以在划分前由技术人员指定,也可以在划分过程中根据平坦区域分块的大小进行等比例计算获得;

步骤S208,依据梯度分布模式划分像素集并获得像素集描述算子;本实施例中,采用统计量化后梯度图中梯度方向的分布模式的方法划分平坦区域及分块中的像素集。操作步骤为:将平坦区域分块的梯度方向图分割成大小为64×64的规则块;统计规则块中梯度幅值为0的像素在所有像素中的比例;统计规则块中梯度方向直方图,获得出现频率最高的3个梯度方向值,3为正整数;每个规则块中梯度幅值为0的像素在所有像素中的比例和出现频率最高的3个梯度方向值构成该规则块的梯度分布模型;所有规则块的划分方式和梯度分布模型构成平坦区域分块的梯度分布模型;

当相邻规则块的梯度分布模型相似度高于阈值Tg,则将这两个相邻块归并到同一个像素集;梯度分布模型相似度由两个规则块中梯度幅值为0的像素在所有像素中的比例之差和两个规则块中出现频率最高的3个梯度方向值中相同方向值所占比例进行加权得到;对所有规则块进行上述归并操作,即可得到一个或多个所述像素集,像素集的方向α0等于所在的平坦区域分块的渐变方向α;

将每个像素集对应的原始图像沿着像素集的方向α0分解成只含有单行像素的线段;以该线段上所有像素与线段的最左下顶点之间的距离为横坐标x,以该像素的值为纵坐标y建立二维坐标系(x,y),对线段上所有像素在该二维坐标系中使用最小二乘法进行线性拟合,获得这根线段对应的渐变描述函数表达式y=kx+b,式中与x,y无关的k,b就是该线段的渐变描述函数的参数;所有线段对应的参数k,b按顺序组成的矩阵[KB]即为该像素集的渐变描述矩阵,矩阵K由所有线段的参数k按顺序排列构成,矩阵B的由所有线段的参数b按顺序排列构成,矩阵K和矩阵B的列数为1,行数等于像素集分解得到的线段的个数l。像素集的渐变描述矩阵[KB]和像素集的方向α0构成该像素集的像素集描述算子。

步骤S210,对像素集以及像素集对应的像素集描述算子进行压缩获得描述码流;

对像素集进行压缩的过程如下:

对像素集的最外围轮廓进行描述,如果该轮廓内部有孔洞,则需要使用该孔洞的轮廓描述最外围轮廓内部需要去除的区域;像素集的最外围轮廓和孔洞的轮廓上所有像素的坐标构成像素集轮廓描述;像素集轮廓描述的压缩采用顶点描述压缩法,将轮廓近似为多条首尾相接的线段,保留所有线段的顶点坐标作为压缩后的轮廓描述;

对像素集对应的像素集描述算子进行压缩的过程如下:

对像素集描述算子包含的方向α0以步长Δα进行量化;对像素集描述算子包含的渐变描述矩阵使用增量压缩方式进行压缩,对增量压缩后的信息采用算术编码进行压缩;记像素集描述算子行的参数矩阵各行的值分别为P0,P1,P2,…,Pl,其中下标0,1,…,l为参数矩阵的行号,即原始的渐变描述矩阵[KB]可表示为[P0 P1 P2 … Pl]T,可记D0=P1-P0,D1=P2-P1,…,Dl-1=Pl-Pl-1,则经过增量压缩后的渐变描述矩阵为[P0 D0 D1 … Dl-1]T

量化后的方向α0和增量压缩后的渐变描述矩阵构成压缩后的像素集描述算子,对压缩后的像素集描述算子使用算术编码进行压缩,得到所述描述码流。

步骤S212,对残差应用变换、量化和熵编码算法生成残差码流;将所有的像素集使用步骤S210所述压缩后的描述码流进行预测,得到所有像素集对应像素的预测图像,将预测图像与原始图像作差可得到平坦区域的残差。对本实施例中获得的残差优选与使用现有的图像压缩算法相似的压缩方法获得残差码流。可选的图像压缩算法有很多,比如HEVC、H.264的帧内压缩算法,JPEG图像压缩算法等。在本实施例中,对残差采用大小为32×32的DCT变换;对DCT变换后的系数进行量化时,需要减少后低频系数的量化步长,增加高频系数的量化步长;最后使用Huffman编码或算术编码进行熵编码得到最后的残差码流。

步骤S214,对描述码流和残差码流进行复用压缩生成压缩图像码流或文件;在本实施例中,将所述描述码流和残差码流使用熵编码方式进行复用压缩,即可得到原始图像压缩后的码流或文件。优选的,熵编码方式可以采用自适应上下文二进算术编码(CABAC)、自适应上下文变长编码(CAVLC)等。

本发明实施例还提供了一种图像压缩装置,如图3所示,该装置用于实现上述实施例提供的基于图像平坦区域特征的压缩方法,该装置主要包括:

步骤S402,图像获取单元,该单元用于从各图像源获得待压缩的图像;图像源可以是各种带摄像头的终端,如手机、平板电脑、照相机等,也可以是互联网或本地存储器中已通过其他图像压缩方法压缩后的重建图像。该单元用于以滑动窗口模式或逐点扫描模式,读取图像源所有像素的信息生成待处理图像。

步骤S404,图像分析单元,用于对图像获取单元中获取的图像进行分区域分析,分析干扰信号种类和分布。本实施例中,所述干扰信号为可能对所述区域识别单元造成影响的干扰信号,包括但不限于噪声、图像坏点及图像坏块。本实施例中,当某个像素点与其5×5领域内像素作差,获得差的平均值和方差,若平均值大于阈值且方差小于阈值则认为该像素点为坏点;

步骤S406,图像处理单元,用于对图像进行预处理操作,主要包括消除图像分析单元中分析出的干扰信号和将图像处理为后续单元较易识别出平坦区域的图像。

本实施例中,对整幅图像应用中值滤波器去除可能存在的坏点;应用高斯滤波器减弱或消除随机噪声。在本实施例中,将消除干扰信号后的图像进行4bit量化操作以获得较易识别出平坦区域的预处理图像。

步骤S408,区域划分单元,识别平坦区域,建立平坦区域的像素渐变模型,并按照像素渐变模型进行划分平坦区域获得平坦区域分块。本实施例中,对滤除了干扰信号并进行了4bit量化操作的图像中所有像素进行下述连通域判断:若某像素与其相邻像素的值相差小于阈值1,则认为这些像素属于同一个连通域,通过连通域判断,可将滤除了干扰信号的图像中所有的像素划分成多个连通域;面积大于阈值10000的连通域即为平坦区域;

本实施例中,建立平坦区域在二维坐标系中的像素渐变模型的过程如下:

优选对图像采用量化的方法进行平坦区域的划分;将滤波后的图像量化为色彩深度为4比特的图像;将量化后的平坦区域分割成大小为64×64的规则块,分别计算所有规则块的方向β,本实施例中,对方向β的计算在笛卡尔坐标系中完成;规则块B的方向的计算通过fB⊥β:B→Lβ映射完成,其中Lβ代表经过所述色彩深度为4比特的图像原点,且与x轴正方向夹角为β∈[0,π)的直线;映射fB⊥β代表的映射方法等价于将规则块B内所有的像素点对直线Lβ作垂直映射操作,方法如下:

若规则块B内的像素值不着统一的方向递增,则将规则块B内所有像素点映射到经过该像素的Lβ的法线与直线Lβ的交点;最终直线Lβ上有对应映射像素点的点组成的线段的长度称为投影面积,投影面积可用像素点个数进行度量,记为N(fB⊥β),使得N(fB⊥β)最小的β则认为是规则块B的角度β。

本实施例为了获得更好的渐变方向,分别计算规则块B内像素值相等区域的各N(fB⊥β),其中Bi是规则块B中像素值为i的像素构成的子集。此时渐变方向为的联合最优解,详细计算步骤如下:

将区间[0,π)进行N等分,N为经验值,一般可取7或9。得到N个区间:

将像素集内所有像素对直线Lβ做垂直投影映射,β取①中获得的N个区间的左边界,得到对应的投影面积之和找出所有Nβ的最小值Nβ0和次最小值Nβ1,分别对应渐变直线Lβ0和Lβ1;当出现最小值或次最小值对应多个β的情况时,取这些β中位数作为结果。如果|β0-β1|<thresh,即最小值和次最小值对应的角度差小于设定的精度阈值时,跳转步骤⑤;

如果β0和β1所属的区间不相邻,跳转步骤④。以为区间,重复步骤①~步骤③;

找出步骤②算得的Nβ中除Nβ0和Nβ1外最小值Nβ2,将β的取值区间设为如果该区间超出[0,π),则将取值范围约束到[0,π)之内,然后重复步骤①~步骤③。

该规则块的方向与x轴正方向的夹角定为β0,算法结束。

若某规则块的方向为β,则该规则块渐变方向α的计算公式如下:

若规则块B内的像素值不沿着统一的方向递增,则对该规则块进行四等分操作,即将该规则块划分为大小为的四个小块,如果某个小块内的像素值沿着统一的方向递增,则认为该小块沿着方向βj渐变,其中j为该小块的编号;如果某个小块内的像素值不沿着统一的方向递增,则重复上述四等分操作,获得更小的小块,直到所有小块内的像素沿着统一的方向递增,各小块的划分方式和渐变方向构成平坦区域的像素渐变模型;

根据像素渐变模型划分平坦区域获得平坦区域分块,过程如下:

按顺序扫描平坦区域的像素渐变模型中所有的小块,若两个相邻小块的渐变方向差值小于阈值,则将这两个小块归入同一个平坦区域分块,对所有的小块进行上述操作即可将平坦区域划分为一个或多个平坦区域分块;

步骤S410,区域特征描述单元,用于获取区域划分单元划分出的平坦区域分块的梯度分布模型,并将划分出的平坦区域分块内的像素进行进一步划分,得到像素集以及像素集对应的像素集描述算子;本实施例中,采用统计量化后梯度图中梯度方向的分布模式的方法划分平坦区域及分块中的像素集。操作步骤为:将平坦区域分块的梯度方向图分割成大小为64×64的规则块;统计规则块中梯度幅值为0的像素在所有像素中的比例;统计规则块中梯度方向直方图,获得出现频率最高的3个梯度方向值,3为正整数;每个规则块中梯度幅值为0的像素在所有像素中的比例和出现频率最高的3个梯度方向值构成该规则块的梯度分布模型;所有规则块的划分方式和梯度分布模型构成平坦区域分块的梯度分布模型;

当相邻规则块的梯度分布模型相似度高于阈值Tg,则将这两个相邻块归并到同一个像素集;梯度分布模型相似度由两个规则块中梯度幅值为0的像素在所有像素中的比例之差和两个规则块中出现频率最高的3个梯度方向值中相同方向值所占比例进行加权得到;对所有规则块进行上述归并操作,即可得到一个或多个所述像素集,像素集的方向α0等于所在的平坦区域分块的渐变方向α;

将每个像素集对应的原始图像沿着像素集的方向α0分解成只含有单行像素的线段;以该线段上所有像素与线段的最左下顶点之间的距离为横坐标x,以该像素的值为纵坐标y建立二维坐标系(x,y),对线段上所有像素在该二维坐标系中使用最小二乘法进行线性拟合,获得这根线段对应的渐变描述函数表达式y=kx+b,式中与x,y无关的k,b就是该线段的渐变描述函数的参数;所有线段对应的参数k,b按顺序组成的矩阵[KB]即为该像素集的渐变描述矩阵,矩阵K由所有线段的参数k按顺序排列构成,矩阵B的由所有线段的参数b按顺序排列构成,矩阵K和矩阵B的列数为1,行数等于像素集分解得到的线段的个数l。像素集的渐变描述矩阵[KB]和像素集的方向α0构成该像素集的像素集描述算子。

步骤S412,像素集及像素集描述算子压缩单元,于对像素集和像素集对应的像素集描述算子进行压缩,生成描述码流;对像素集进行压缩的过程如下:

对像素集的最外围轮廓进行描述,如果该轮廓内部有孔洞,则需要使用该孔洞的轮廓描述最外围轮廓内部需要去除的区域;像素集的最外围轮廓和孔洞的轮廓上所有像素的坐标构成像素集轮廓描述;像素集轮廓描述的压缩采用顶点描述压缩法,将轮廓近似为多条首尾相接的线段,保留所有线段的顶点坐标作为压缩后的轮廓描述;

对像素集对应的像素集描述算子进行压缩的过程如下:

对像素集描述算子包含的方向α0以步长Δα进行量化;对像素集描述算子包含的渐变描述矩阵使用增量压缩方式进行压缩,对增量压缩后的信息采用算术编码进行压缩;记像素集描述算子行的参数矩阵各行的值分别为P0,P1,P2,…,Pl,其中下标0,1,…,l为参数矩阵的行号,即原始的渐变描述矩阵[KB]可表示为[P0 P1 P2 … Pl]T,可记D0=P1-P0,D1=P2-P1,…,Dl-1=Pl-Pl-1,则经过增量压缩后的渐变描述矩阵为[P0 D0 D1 … Dl-1]T

量化后的方向α0和增量压缩后的渐变描述矩阵构成压缩后的像素集描述算子,对压缩后的像素集描述算子使用算术编码进行压缩,得到所述描述码流。

步骤S414,残差压缩单元,利用区域特征描述单元获得的描述码流获得像素集的预测图像,对像素集原始图像和预测图像进行作差,得到残差图像,对残差图像进行压缩,获得残差码流,步骤为:将所有的像素集使用步骤S412所述压缩后的描述码流进行预测,得到所有像素集对应像素的预测图像,将预测图像与原始图像作差可得到平坦区域的残差。对本实施例中获得的残差优选与使用现有的图像压缩算法相似,的压缩方法获得残差码流。可选的图像压缩算法有很多,比如HEVC、H.264的帧内压缩算法,JPEG图像压缩算法等。在本实施例中,对残差采用大小为32×32的DCT变换;对DCT变换后的系数进行量化时,需要减少后低频系数的量化步长,增加高频系数的量化步长;最后使用Huffman编码或算术编码进行熵编码得到最后的残差码流。

步骤S416,复用压缩单元,用于对描述码流和残差码流进行复用压缩处理,生成单幅图像压缩文件。在本实施例中,将像素集及像素集描述算子压缩单元生成的描述码流和残差压缩单元生成的残差码流使用熵编码方式进行复用压缩,即可得到原始图像压缩后的码流或文件。优选的,熵编码方式可以采用自适应上下文二进算术编码(CABAC)、自适应上下文变长编码(CAVLC)等。

值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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