多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(3)编码过程——主程序

本文详细介绍了SPIHT(Set Partitioning in Hierarchical Trees)算法的编码过程,提供了一个Matlab编码主程序,并解释了程序中的主要步骤,包括阈值计算、排序扫描、精细扫描和精细编码。文章还给出了计算树根坐标集和按EZW扫描顺序排列的坐标列表的辅助函数。
摘要由CSDN通过智能技术生成

上一篇文章已经详细介绍了SPIHT算法的编码过程,接下来有关编码和解码的部分就直接把代码写出来啦,我的代码里有详细的中文注释,基本上把程序的每个步骤都作了说明,呵呵,利人也利己!

1、首先给出编码的主程序

function [T,SnList,RnList,ini_LSP,ini_LIP,ini_LIS,ini_LisFlag]=spihtcoding(DecIm,imDim,codeDim)
% 函数 SPIHTCODING() 是SPIHT算法的编码主程序
% 输入参数:DecIm   ——小波分解系数矩阵;
%                     imDim   ——小波分解层数;
%                     codeDim ——编码级数。
% 输出参数:T —— 初始阈值,T=2^N,N=floor(log2(max{|c(i,j)|})),c(i,j)为小波系数矩阵的元素
%                     SnList —— 排序扫描输出位流
%                     RnList —— 精细扫描输出位流
%                     ini_L* —— 初始系数(集合)表
%                     LSP:重要系数表
%                     LIP:不重要系数表
%                     LIS:不重要子集表,其中的表项是D型或L型表项的树根点
%                     LisFlag:LIS中各表项的类型,包括D型和L型两种

global Mat rMat cMat
% Mat是输入的小波分解系数矩阵,作为全局变量,在编码的相关程序中使用
% rMat、cMat是Mat的行、列数,作为全局变量,在编码、解码的相关程序中使用

%---------------------------%
% ----- Threshold ----- %
%---------------------------%
Mat=DecIm;
MaxMat=max(ma

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值