【技术实现步骤摘要】
基于小波模极大值重建的改进SPIHT图像编码和解码方法
本专利技术涉及图像处理领域,尤其是一种边缘解码精度高、主观质量好的基于小波模极大值重建的改进SPIHT图像编码和解码方法。
技术介绍
图像可分级编码方法能够根据空间分辨率、网络带宽或终端计算能力的实际情况对码流的一部分进行解码且解码图像具有较高的重构质量,能够很好地适应网络的异构特性、带宽的动态波动及终端计算能力的多样性,并满足图像的渐进传输、多质量服务以及图像数据库浏览等应用要求。由于其优良的执行效率和压缩比,被广泛应用在高光谱图像压缩、视频压缩、指纹图像压缩、医学图像压缩和图像加密等领域。图像可分级编码由三个阶段组成,即变换、量化扫描和熵编码。其中,量化扫描阶段是可分级编码的核心步骤,决定了其整体编码效率和渐进逼近效率,其目的是在可接受的数据失真范围内,通过减少像素值或变换系数的值域区间,降低待编码图像的信息熵,进而实现图像压缩。国内外的研究人员提出了多种有效的量化扫描方法,如嵌入式零树方法(EmbeddedZerotreeWavelet,EZW)、多级树集合分裂方法(SetPartitioninginHierarchicalTrees,SPIHT)、集合分裂嵌入块方法(SetPartitionedEmbeddedBlock,SPECK)和优化截断的嵌入块方法(EmbeddedBlockCodingwithOptimizedTruncation,EBCOT)等。在面向静态图像的众多可分级编码方法中,SPIHT是应用范围最广泛、受到关注最多、改 ...
【技术保护点】
1.一种基于小波模极大值重建的改进SPIHT图像编码方法,其特征在于按照如下步骤进行:/n步骤1.输入待编码图像I和目标码率R,设待编码图像I大小为H×W像素,根据目标码率R计算编码图像I所需的比特数Bit_Budget=H×W×R,并将H和W各用1个字节传输至解码端;/n步骤2.对待编码图像I进行log
【技术特征摘要】
20190801 CN 20191070718141.一种基于小波模极大值重建的改进SPIHT图像编码方法,其特征在于按照如下步骤进行:
步骤1.输入待编码图像I和目标码率R,设待编码图像I大小为H×W像素,根据目标码率R计算编码图像I所需的比特数Bit_Budget=H×W×R,并将H和W各用1个字节传输至解码端;
步骤2.对待编码图像I进行log2min{H,W}-3级Daubechies双正交9/7小波变换;
步骤3.判断最低频子带是否存在负系数,若包含负系数,则令标志变量HavingNegative=1,否则令HavingNegative=0,然后将HavingNegative的值用1bit传输至解码端;
步骤4.计算最低频子带系数的绝对值最大的幅值Max,进而得出最大位平面数并将n的值用4bit传输至解码端;
步骤5.采用前向差分算子,计算最高频的LH、HL和HH子带在每个系数处的梯度,然后分别统计这三个子带的平均梯度模长,令其分别为ΘLH、ΘHL和ΘHH,并将其各用8bit传输至解码端;
步骤6.选取ΘLH、ΘHL和ΘHH中的最大者所对应的子带B,并提取子带B的模极大值序列:
步骤6.1按照光栅扫描顺序,将子带B的二维小波系数重新组织成一个长度为l的一维系数序列S,且l=H×W/4;
步骤6.2对一维系数序列S进行1阶一维小波变换,从而将系数能量进一步集中;
步骤6.3令SMax表示小波系数的模极大值序列,并将SMax初始化为空集;
步骤6.4将一维系数序列S的第1个系数加入到SMax中,向解码端传输一个比特“1”,并令index←2;
步骤6.5令S(index)、S(index-1)和S(index+1)分别表示一维系数序列S的第index个系数、第(index-1)个系数和第(index+1)个系数,若|S(index)|>|S(index-1)|且|S(index)|>|S(index+1)|,则S(index)为一个局部模极大值,将其加入到SMax中,并向解码端传输一个比特“1”,否则将“0”加入到SMax中,向解码端传输一个比特“0”;
步骤6.6令index←index+1,若index=l,则转入步骤6.7,否则转入步骤6.5;
步骤6.7将一维系数序列S的第l个系数加入到SMax中,并向解码端传输一个比特“1”;
步骤6.8舍弃子带B的全部原始小波系数,并用模极大值序列SMax中的系数代替子带B的小波系数,转入步骤7;
步骤7.初始化非重要系数表重要系数表非重要子集表和比特位流表
步骤8.采用类似SPIHT的扫描方式编码所有小波变换系数:
步骤8.1初始化扫描阈值T=2n,将最低频子带的所有系数放入LIP表,将存在孩子系数的最低频系数加入LIS表,并将其扫描类型设置为D型;
步骤8.2若T<1或比特位流表中的待输出比特数大于Bit_Budget,则转入步骤9;否则,转入步骤8.3;
步骤8.3扫描LIP表:顺序取出LIP表中的每个待处理系数c,执行步骤8.3.1~步骤8.3.5;若LIP表中的所有系数均已处理完毕,则转入步骤8.4;
步骤8.3.1若|c|<T,则在位流表E的末尾添加比特“0”,返回步骤8.3;
步骤8.3.2若|c|≥T,则在位流表E的末尾添加比特“1”,把该系数c从LIP表中删除并添加到LSP表末尾;
步骤8.3.4若c是最低频系数且HavingNegative=0,则返回步骤8.3;否则,转入步骤8.3.5;
步骤8.3.5如果系数c是正数,则在位流表E的末尾添加比特“1”,否则,在位流表E的末尾添加比特“0”,返回步骤8.3;
步骤8.4扫描LIS表:顺序取出LIS表中的每个待处理元素e,执行步骤8.4.1~步骤8.4.3;若LIS表中的所有元素均已处理完毕,则转入步骤8.5;
步骤8.4.1若其扫描类型为D型,则转入步骤8.4.2,否则转入步骤8.4.3;
步骤8.4.2判断e的D型子集是否为重要集合:
a若e的D型子集是重要集合,则在比特位流表E的末尾添加比特“1”,再执行4次步骤a.1~步骤a.3来依次判断e的4个D型孩子系数的重要性;
a.1若某个孩子系数是重要的,则在比特位流表E的末尾添加比特“1”,并且把该孩子系数加到LSP表末尾,进一步,若该孩子系数是正数,则在比特位流表E的末尾添加比特“1”,否则在比特位流表E的末尾添加比特“0”;
a.2判断e的L型子集是否为空集,如果不为空集,则把e的扫描类型由D型转换成L型后添加到LIS表尾部,如果e的L型子集为空集,则从LIS表中删除元素e;
a.3如果某个孩子系数不是重要系数,则把该孩子系数添加到LIP表末尾,并且在比特位流表末尾添加比特“0”;
b如果e的D型子集是不重要集合,则在位流表末尾添加字符“0”;
步骤8.4.2判断e的L型子集是否为重要集合:
a如果e的L型子集是重要集合,则在比特位流表末尾添加比特“1”,并且把e的4个直接孩子系数添加到LIS表尾部,将其扫描类型设置为D型;返回步骤8.4;
b如果e的L型子集不是重要集合,则在比特位流表末尾添加比特“0”;返回步骤8.4;
步骤8.5精细扫描:顺序扫描LSP表,除了本轮扫描增加的那些系数以外,将表中其余系数的第n个位平面输出到比特位流表E中;
步骤8.6令T←T/2,n←n-1,转入步骤8.2。
步骤9.将比特位流表E传输至解码端,编码过程结束。
<...
【专利技术属性】
技术研发人员:宋传鸣,谢维冬,张晋豪,王相海,
申请(专利权)人:辽宁师范大学,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。