改进版 SPIHT 压缩算法的 Matlab 实现,挺适合搞图像压缩研究的你。它叫 ASPIHT,比原版多了个自适应扫描顺序,专挑“周围动静大”的系数先,压图更精准,边缘保留得也不错。

基于自适应顺序的 ASPIHT 算法,用 Matlab 实现的,比较适合做图像压缩实验的场景。它核心思路就是在编码前先观察一下哪个系数“身边热闹”,有显著系数的就优先,逻辑上挺像“谁周围亮,先谁”。

这么一来,编码顺序就不是死的,是根据当前图像内容动态来的。不用额外存顺序信息,这点挺妙。你在压图时要控制压缩比的场景,像医疗图像、遥感照片这类对边缘要求高的图,这套就还挺适合。

代码是基于那篇 2012 年黄克坤的论文写的,结构清晰,关键部分注释也挺全,想改成自己项目里的模块不难。基本函数都集中在几个.m 文件里,自己改阈值或者调整扫描逻辑都方便。

另外,如果你之前玩过原始的SPIHT,那上手这个ASPIHT会顺。压完图再用PSNR评估一下,结果通常会比老算法略高,视觉效果也更柔和些。

你要是想了解 SPIHT 的原理、压缩流程或者对比其它算法的效果,可以顺手看看下面几个链接,蛮有:

如果你正好在做图像压缩或者要跑一些PSNR对比实验,可以把这套代码拉下来跑跑看,效果还不错。