嵌入式零树小波EZW编码及其算法改…

在基于小波变换的图象压缩方案中,嵌入式零树小波 EZW(Embedded Zerotree Wavelets)[1]编码很好地利用小波系数的特性使得输出的码流具有嵌入特性。近年来,在对EZW改进的基础上,提出了许多新的性能更好的算法,如多级树集合分裂算法(SPIHT:Set Partitioning In Hierarchical Trees)[2],集合分裂嵌入块编码(SPECK:Set Partitioned Embedded bloCK coder),可逆嵌入小波压缩算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文对这些算法进行了原理分析、性能比较,说明了嵌入式小波图象编码的研究方向。

  1. 嵌入式零树小波编码算法EZW

  1. 1算法原理: 

  内嵌编码[1](embedded coding)就是编码器将待编码的比特流按重要性的不同进行排序,根据目标码率或失真度大小要求随时结束编码;同样,对于给定码流解码器也能够随时结束解码,并可以得到相应码流截断处的目标码率的恢复图象。内嵌编码中首先传输的是最重要的信息,也就是幅值最大的变换系数的位信息。图1显示了一个幅度值由大到小排序后的变换系数的二进制列表。表中每一列代表一个变换系数的二进制表示,每一行代表一层位平面,最上层为符号位,越高层的位平面的信息权重越大,对于编码也越重要。内嵌编码的次序是从最重要的位(最高位)到最不重要的位(最低位)逐个发送,直到达到所需码率后停止。

  由图1可知内嵌编码的输出信息主要包括两部分:排序信息和重要象素的位信息。其中,位信息是编码必不可少的有效信息,对应于表中箭头所划过的比特位;而排序信息则是辅助信息,按其重要性从左到右排列,反映了重要象素在原图上的空间位置,用于恢复原始的数据结构。因此,内嵌算法中排序算法的优劣和排序信息的处理决定了整个编码算法的效率。

  一副图象经过三级小波分解后形成了十个子带,如图2所示。小波系数的分布特点是越往低频子带系数值越大,包含的图象信息越多,如图2中的LL3子带。而越往高频子带系数值越小,包含的图象信息越少。就是在数值相同的情况下,由于低频子带反映的是图象的低频信息,对视觉比较重要,而高频子带反映的是图象的高频信息,对视觉来说不太重要。这样对相同数值的系数选择先传较低频的系数的重要比特,后传输较高频系数的重要比特。正是由于小波系数具有的这些特点,它非常适合于嵌入式图象的编码算法。在JPEG2000标准中以小波变换作为图象编码的变换方法。

  EZW算法利用小波系数的特点较好地实现了图象编码的嵌入功能,主要包括以下三个过程:零树预测,用零树结构编码重要图,逐次逼近量化。

  1) 零树预测

  一副经过小波变换的图象按其频带从低到高形成一个树状结构,树根是最低频子带的结点,它有三个孩子分别位于三个次低频子带的相应位置,见图2左上角,其余子带(最高频子带除外)的结点都有四个孩子位于高一级子带的相应位置(由于高频子带分辨率增加,所以一个低频子带结点对应有四个高频子带结点,即相邻的2×2矩阵,见图2)。这样图2所示的三级小波分解就形成了深度为4的树。

  定义一个零树的数据结构:一个小波系数x,对于一个给定的门限T,如果|x|

  2) 用零树结构编码重要图

  重要图包括三种要素:即重要系数、孤立零和零树根。其中,对于一个给定的阈值T,如果系数X本身和它的所有的子孙都小于T,则该点就称为零树根;如果系数本身小于T,但其子孙至少有一个大于或等于T,则该点就称为孤立零点。在编码时分别用三种符号与之对应。当编码到最高分辨率层的系数时,由于它们没有子孙,零树根不再存在,只需其余两种

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值