• 【图像处理】基于二叉树的改进SPIHT算法matlab代码


    1 内容介绍

    为在保持多级树集合分裂(SPIHT)算法编码速度的同时提高其性能,提出一种基于二叉树的改进SPIHT算法.对D型集合分裂得到的4个系数进行二叉树编码,优先编码L型集合的重要性,并以较高的概率提前判断二叉树根节点的重要性,从而提高编码效率.实验结果表明,该算法的执行速度与SPIHT算法相当,且具有较高的峰值信噪比.

    随着现代社会越来越大量的信息需要存储和传输,通常 会对这些信息进行压缩。人们不仅希望压缩算法有较高的压 缩比,而且希望算法执行速度快。小波变换具有良好的时频 局部表达能力和多分辨率分析特性,并有快速分解重构算法, 在图像编码领域得到了广泛的应用。嵌入式零树编码算 法[1](Embedded Zerotree Wavelet, EZW)是一种基于小波变换 的图像压缩算法,它通过不同尺度的小波系数在每个比特平 面的空间相似性构造零树,从而用一个零树根成功地预测了 大量非重要系数,取得了比基于离散余弦变换的 JPEG 更好 的 压 缩 效 果 。 多 级 树 集 合 分 裂 (Set Partitioning in Hierarchical Trees, SPIHT)算法[2]对 EZW 算法做了重要改 进,其具有更高的压缩效率、更快的执行速度等优点,是目 前基于零树结构的压缩算法中的较优的算法[3]。SPECK(Set Partitioning Embedded block)算法[4]加快了计算速度并进一步 利用了子带内相连系数块的关系。 为寻找速度快并且压缩效果好的算法,人们进行了很多 研究。文献[5]在小波变换的基础上提出了一种四叉树编码方 案,以较低的复杂度取得了较快的执行速度。文献[6]引入 2 个重要性矩阵,并在扫描时按照分辨率级依次处理系数和 集合,减少了重要性判断时的比较次数。文献[7]提出了一种 基于高频子带自适应扫描的图像编码算法, 通过小波系数的 绝对值大小及所处背景亮度,自适应确定同一高频子带小波 系数的扫描次序,取得了一定的效果。文献[8]利用人眼视觉 特性对小波系数进行加权。 为取得更好的压缩效果,以上文献中几乎所有算法都需 要进行无损压缩(熵编码)以便提高算法效率。然而,进行熵 编码需要很大的计算量。如果在 SPIHT 算法中使用算术编 码,编码时间将会多一倍以上。为在保持 SPIHT 算法速度 的同时改进压缩效果,本文提出一种新的基于 SPIHT 和二叉 树的快速编码算法。该算法与上述文献不同,虽然文献[9]提 出了一种基于提升小波的二叉树图像编码方法,不过此方法 中的二叉树是一种和 SPIHT 的方向树类似的跨尺度的零树结 构,而本文算法中的二叉树则建立在同一尺度的相邻系数上。

    2 仿真代码

    function code = func_2_code(sig)% 对2*2小块的(4,3,2,1)个系数的重要性进行二叉树编码ls = length(sig);if ls<=2    code = sig;    elseif ls==3      ss = sig(1) + sig(2)*2;    if ss == 0        code = 0;    elseif ss == 1        code = [1,1,0];    elseif ss==2        code = [1,0];    else        code = [1,1,1];    end        code = [code,sig(3)];  else    ss = sig(1) + sig(2)*2;    if ss == 0        code = 0;    elseif ss == 1        code = [1,1,0];    elseif ss==2        code = [1,0];    else        code = [1,1,1];    end        ss = sig(3) + sig(4)*2;    if ss == 0        code = [code, 0];    elseif ss == 1        code = [code, 1,1,0];    elseif ss==2        code = [code, 1,0];    else        code = [code, 1,1,1];    end    end

    3 运行结果

    4 参考文献

    [1]黄可坤. 基于二叉树的改进SPIHT算法[J]. 计算机工程, 2012, 38(15):4.

    [1] Shapiro J. Embedded Image Coding Using Zerotrees of Wavelet

    Coefficients[J]. IEEE Transactions on Signal Processing, 1993,

    41(12): 3445-3462.

    [2] Said A, Pearlman W A. A New, Fast, and Efficient Image Codec

    Based on Set Partitioning in Hierarchical Trees[J]. IEEE

    Transactions on Circuits System Video Technology, 1996, 6(3):

    243-250.

    [3] Brahimi T, Melit A, Khelifi F. An Improved SPIHT Algorithm for

    Lossless Image Coding[J]. Digital Signal Processing, 2009, 19(2):

    220-228.

    [4] Pearlman W A, Islam A, Nagaraj N, et al. Efficient

    Low-complexity Image Coding with a Set-partitioning Embedded

    Block Coder[J]. IEEE Transactions on Circuits System Video

    Technology, 2004, 14(11): 1219-1235.

    [5] Hsiang S T, Woods J W. Embedded Image Coding Using

    Zeroblock of Subband/Wavelet Coefficients and Context

    Modeling[C]//Proceedings of Data Compression Conference.

    Washington D. C., USA: [s. n.], 2001: 83-92.

    [6] 宋春林, 冯 瑞, 金 炜. 改进的多分辨率 SPIHT 算法[J].

    计算机工程, 2008, 34(4): 241-243.

    [7] 王向阳, 杨红颖. 基于高频子带自适应扫描的改进零树图像编

    码算法[J]. 计算机研究与发展, 2003, 30(3): 469-475.

    [8] 李 玲, 王向阳. 基于视觉敏感特性的小波域图像编码算法研

    究[J]. 小型微型计算机系统, 2010, 31(4): 780-783.

    博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

  • 相关阅读:
    Python + SQLAlchemy操作MySQL数据库(ORM)
    TypeScript入门
    【大数据存储技术】第4章&第5章 HBase 原理与使用
    【实战技能】非技术背景经理的技术管理
    CentOS7 网络配置
    (内部资料)收下这几个人工智能学习秘籍!
    淘宝天猫店铺商品API,店铺商品分类接口代码对接教程
    计算机网络笔记【面试】
    pyquery库和parsel库的使用
    Doris学习笔记之优化
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126038189