基于能量泄露和放大的改进SPIHT图像编码和解码方法技术

技术编号:19826113 阅读:25 留言:0更新日期:2018-12-19 16:18
本发明专利技术公开一种基于能量泄露和放大的改进SPIHT图像编码和解码方法,首先,沿着最高频子带的主要梯度方向施加二次小波变换,将那些具有幅值相关性的高幅值系数的能量进一步集中到少量系数上,并增加空间方向树的高度;其次,根据小波变换的高频子带会保留少量的中、低频信息的特点,利用Canny算子检测解码图像的主要边缘和轮廓,并迭代应用具有平滑下降沿的高通滤波器迭代地提取和放大高通系数中残留的中、低频信息,从而增强主要边缘和轮廓处的解码效果。实验结果表明,本发明专利技术可有效改善解码图像在低码率下的主客观质量。

【技术实现步骤摘要】
基于能量泄露和放大的改进SPIHT图像编码和解码方法
本专利技术涉及图像处理领域,尤其是一种基于能量泄露和放大的改进SPIHT图像编码和解码方法。
技术介绍
随着网络多媒体技术及其应用的不断发展,人们对图像编码的要求不断提高,不仅要求解码图像具有较高的重构质量,同时要求其能够适应网络异构特性及终端计算能力不同等应用需求。这就需要一种好的解决方法来实现在保证图像质量的前提下去除各种冗余,用尽量少的比特数来表征图像信息,同时使图像编码码流能很好的适应网络带宽的波动及不同计算能力终端的解码需求。一个图像的编码码流具有可分级性是指利用该码流的一部分(或子集)可以产生对该图像一个有用表示的能力,即解码器能够根据分辨率的实际情况对码流的一部分进行解码。图像编码码流的这种可分级特性可以满足图像的渐进传输、多质量服务以及图像数据库浏览等应用要求。关于静态图像的编码主要需要考虑两个问题:一是如何能有效地表示重要系数的位置信息,同时尽量占用少的比特来编码同步信息;二是如何能有效地编码重要系数的幅值。近年来,基于小波变换的图像可分级编码方法出现了一些经典的算法,如EZW、SPIHT、k-阶零树、MRWD、EBCOT、SPECK和SPACS等,获得了较好的主观质量效果。对于第一个问题,利用系数分布相似特性,EZW提出采用“零树”结构来定位重要系数;SPIHT利用“空间方向树”来定位重要系数;k-阶零树算法则在零树和空间方向树的基础上,抽象出了k-阶零树结构;而利用系数的聚集特性,SPECK采用分裂块结构定位重要系数;SPACS则综合考虑小波变换系数的尺度间传递性和尺度内聚集性,将空间方向树和分裂块相结合,进一步提出基于集合分裂编码系统;MRWD利用数学形态学的膨胀操作,对重要系数的聚簇进行提取和编码;而BSP树(BinarySpacePartitionTree)和GW(GeometricWavelets)方法则通过二值空间分割树确定图像中具有相同系数特性的一致性区域进行编码。对于第二个问题,EBCOT利用分数位平面编码重要系数,而其他方法大都采用基于位平面的逐次逼近量化SAQ(SuccessiveApproximationQuantization)来编码重要系数。宋传鸣等人则设计了一种基于二分查找思路的系数逼近策略,适用于阈值不等于2的整数幂时的逐次逼近量化。然而,现有方法大多忽视了小波变换并非2D图像的最优稀疏表示工具这一不足,图像经过小波变换后,高频子带仍然包含大量具有较大幅值的小波系数,无法实现对复杂边缘奇异的最佳逼近和能量集中。在这种情况下,就不可避免地出现了两方面问题:一方面,EZW、SPIHT、k-阶零树、MRWD、SPECK和SPACS等算法所采用的从低频到高频逐层处理的机制,使得低码率下高频系数无法获得有效解码,信息损失严重,重构图像在边缘轮廓处产生明显的“振铃”效应。而关于结构相似度SSIM(StructuralSimilarity)指标的研究表明,人眼视觉系统对于边缘、轮廓区域的像素值比对平坦区域的像素值更为敏感,这样不利于保证解码图像的主观质量。另一方面,小波变换在滤波过程中,所采用的低通滤波器和高通滤波器均不是理想的滤波器,低于截止频率的高频能量会向低频子带泄露,高于截止频率的低频能量同样也会向高频子带泄露。若能合理地发掘这部分泄露的能量,则能借助解码出的低频系数重构那些丢失的高频系数,实现高频信息的修复和增强,进而改善低码率下解码图像的主观质量。
技术实现思路
本专利技术是为了解决现有技术所存在的上述技术问题,提供一种基于能量泄露和放大的、边缘质量高的改进SPIHT图像编码和解码方法。本专利技术的技术解决方案是:一种基于能量泄露和放大的改进SPIHT图像编码方法,其特征在于按照如下步骤进行:步骤1.输入待编码图像和目标码率,设图像大小为像素,根据码率计算编码所需的比特数Bit_Budget=,并将H和W各用1个字节传输至解码端;步骤2.对图像进行级Daubechies双正交9/7小波变换;步骤3.判断最低频子带是否存在负系数,若包含负系数,则令标志变量HavingNegative=1,否则令HavingNegative=0,然后将HavingNegative的值用1bit传输至解码端;步骤4.计算最低频子带系数的绝对值最大的幅值,进而得出最大位平面数,并将的值用4bit传输至解码端;步骤5.采用前向差分算子计算最高频子带在每个系数处的梯度,然后分别统计3个最高频子带的梯度方向直方图,进而为每个最高频子带选取一个主要梯度方向,并按照LH、HL和HH的顺序,将3个最高频子带的主要梯度方向、、各用8bit传输至解码端;步骤6.对3个最高频子带分别沿着其主要梯度方向进行级一维5/3提升小波变换;步骤7.初始化非重要系数表、重要系数表、非重要子集表和比特位流表;步骤8.采用类似SPIHT的扫描方式编码所有小波变换系数;所述类似SPIHT的扫描方式包括如下步骤:步骤8.1初始化扫描阈值T=2n,将最低频子带的所有系数放入LIP表,将存在孩子系数的最低频系数加入LIS表,并将其扫描类型设置为D型;步骤8.2若或比特位流表中的待输出比特数大于Bit_Budget,则转入步骤9;否则,转入步骤8.3;步骤8.3扫描LIP表:顺序取出LIP表中的每个待处理系数,执行步骤8.3.1~步骤8.3.5;若LIP表中的所有系数均已处理完毕,则转入步骤8.4;步骤8.3.1若,则在比特位流表E的末尾添加比特“0”,则返回步骤8.3;步骤8.3.2若,则在比特位流表E的末尾添加比特“1”,把该系数从LIP表中删除并添加到LSP表末尾;步骤8.3.4若是最低频系数且HavingNegative=0,则返回步骤8.3;否则,转入步骤8.3.5;步骤8.3.5如果系数是正数,则在比特位流表E的末尾添加比特“1”,否则,在比特位流表E的末尾添加比特“0”,返回步骤8.3;步骤8.4扫描LIS表:顺序取出LIS表中的每个待处理元素,执行步骤8.4.1~步骤8.4.3;若LIS表中的所有元素均已处理完毕,则转入步骤8.5;步骤8.4.1若其扫描类型为D型,则转入步骤8.4.2,否则转入步骤8.4.3;步骤8.4.2判断的D型子集是否为重要集合:a.若的D型子集是重要集合,则在比特位流表E的末尾添加比特“1”,再执行4次步骤a.1~步骤a.3来依次判断的4个D型孩子系数的重要性;a.1若某个孩子系数是重要的,则在比特位流表E的末尾添加比特“1”,并且把该孩子系数加到LSP表末尾,进一步,若该孩子系数是正数,则在比特位流表E的末尾添加比特“1”,否则在比特位流表E的末尾添加比特“0”;a.2判断的L型子集是否为空集,如果不为空集,则把的扫描类型由D型转换成L型后添加到LIS表尾部,如果的L型子集为空集,则从LIS表中删除元素;a.3如果某个孩子系数不是重要系数,则把该孩子系数添加到LIP表末尾,并且在比特位流表末尾添加比特“0”;b.如果的D型子集是不重要集合,则在比特位流表末尾添加字符“0”;步骤8.4.2判断的L型子集是否为重要集合:a.如果的L型子集是重要集合,则在比特位流表末尾添加比特“1”,并且把的4个直接孩子系数添加到LIS表尾部,将其本文档来自技高网
...

【技术保护点】
1.一种基于能量泄露和放大的改进SPIHT图像编码方法,其特征在于按照如下步骤进行:步骤 1. 输入待编码图像

【技术特征摘要】
1.一种基于能量泄露和放大的改进SPIHT图像编码方法,其特征在于按照如下步骤进行:步骤1.输入待编码图像和目标码率,设图像大小为像素,根据码率计算编码所需的比特数Bit_Budget=,并将H和W各用1个字节传输至解码端;步骤2.对图像进行级Daubechies双正交9/7小波变换;步骤3.判断最低频子带是否存在负系数,若包含负系数,则令标志变量HavingNegative=1,否则令HavingNegative=0,然后将HavingNegative的值用1bit传输至解码端;步骤4.计算最低频子带系数的绝对值最大的幅值,进而得出最大位平面数,并将的值用4bit传输至解码端;步骤5.采用前向差分算子计算最高频子带在每个系数处的梯度,然后分别统计3个最高频子带的梯度方向直方图,进而为每个最高频子带选取一个主要梯度方向,并按照LH、HL和HH的顺序,将3个最高频子带的主要梯度方向、、各用8bit传输至解码端;步骤6.对3个最高频子带分别沿着其主要梯度方向进行级一维5/3提升小波变换;步骤7.初始化非重要系数表、重要系数表、非重要子集表和比特位流表;步骤8.采用类似SPIHT的扫描方式编码所有小波变换系数;所述类似SPIHT的扫描方式包括如下步骤:步骤8.1初始化扫描阈值T=2n,将最低频子带的所有系数放入LIP表,将存在孩子系数的最低频系数加入LIS表,并将其扫描类型设置为D型;步骤8.2若或比特位流表中的待输出比特数大于Bit_Budget,则转入步骤9;否则,转入步骤8.3;步骤8.3扫描LIP表:顺序取出LIP表中的每个待处理系数,执行步骤8.3.1~步骤8.3.5;若LIP表中的所有系数均已处理完毕,则转入步骤8.4;步骤8.3.1若,则在比特位流表E的末尾添加比特“0”,则返回步骤8.3;步骤8.3.2若,则在比特位流表E的末尾添加比特“1”,把该系数从LIP表中删除并添加到LSP表末尾;步骤8.3.4若是最低频系数且HavingNegative=0,则返回步骤8.3;否则,转入步骤8.3.5;步骤8.3.5如果系数是正数,则在比特位流表E的末尾添加比特“1”,否则,在比特位流表E的末尾添加比特“0”,返回步骤8.3;步骤8.4扫描LIS表:顺序取出LIS表中的每个待处理元素,执行步骤8.4.1~步骤8.4.3;若LIS表中的所有元素均已处理完毕,则转入步骤8.5;步骤8.4.1若其扫描类型为D型,则转入步骤8.4.2,否则转入步骤8.4.3;步骤8.4.2判断的D型子集是否为重要集合:a.若的D型子集是重要集合,则在比特位流表E的末尾添加比特“1”,再执行4次步骤a.1~步骤a.3来依次判断的4个D型孩子系数的重要性;a.1若某个孩子系数是重要的,则在比特位流表E的末尾添加比特“1”,并且把该孩子系数加到LSP表末尾,进一步,若该孩子系数是正数,则在比特位流表E的末尾添加比特“1”,否则在比特位流表E的末尾添加比特“0”;a.2判断的L型子集是否为空集,如果不为空集,则把的扫描类型由D型转换成L型后添加到LIS表尾部,如果的L型子集为空集,则从LIS表中删除元素;a.3如果某个孩子系数不是重要系数,则把该孩子系数添加到LIP表末尾,并且在比特位流表末尾添加比特“0”;b.如果的D型子集是不重要集合,则在比特位流表末尾添加字符“0”;步骤8.4.2判断的L型子集是否为重要集合:a.如果的L型子集是重要集合,则在比特位流表末尾添加比特“1”,并且把的4个直接孩子系数添加到LIS表尾部,将其扫描类型设置为D型;返回步骤8.4;b.如果的L型子集不是重要集合,则在比特位流表末尾添加比特“0”;返回步骤8.4;步骤8.5精细扫描:顺序扫描LSP表,除了本轮扫描增加的那些系数以外,将表中其余系数的第个位平面输出到比特位流表E中;步骤8.6令,,转入步骤8.2;步骤9.将比特位流表E传输至解码端,编码过程结束。2.一种与上述基于能量泄露和放大的改进SPIHT图像编码方法对应的解码方法,其特征在于按照如下步骤进行:步骤1.初始化待解码图像的基本信息;步骤1.1输入待解码比特流和目标码率,从编码端发送来的比特位流的前2个字节中解码出图像的高度H和宽度W,进而确定解码图像所需的比特数Bit_Budget=;步骤1.2从比特位流中读取5bit,解码出HavingNegat...

【专利技术属性】
技术研发人员:宋传鸣谢维冬王相海
申请(专利权)人:辽宁师范大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1