Advertisement

SPIHT算法的过程详解及其Matlab实现(2)数学表述

阅读量:

在前一篇文章中,我们探讨了SPIHT算法与EZW算法之间的关联,并对SPIHT算法的树状结构、分集规则以及有序表的生成方式进行了介绍。在此基础上,接下来将深入分析该算法的编码机制。以下内容提供了较为详尽的数学描述,充分理解这一流程后,有助于更顺利地编写程序代码。

SPIHT算法的编码步骤如下:
(1)初始化阶段
首先确定初始阈值T对应的指数N,其计算公式为N = floor ( log2 ( max{| Cr,c |} ) ) (其中Matlab函数floor( num )用于获取不大于数值num的最大整数)。
定义LSP为空集合;
LIP集合包含所有属于H中的坐标点(r,c);
LIS集合由满足条件(r,c)∈H且(r,c)具有非零后代的所有D(r,c)组成。
初始状态下,LIS中各元素类型均为‘D’,并且LIS与LIP中的坐标点排列顺序与EZW算法中零树结构所采用的扫描顺序一致(即按照从上至下、从左向右的“Z”型方式进行排列)。

(2)排序扫描阶段
1)对LIP队列进行扫描:
对于队列中的每一个元素(r,c),依次执行以下操作:
① 输出SnOut(r,c)的结果(该函数用于判断(r,c)的重要性);
② 若SnOut(r,c)= 1,则在排序位流Sn中输出‘1’及对应坐标的符号位(用‘1’或‘0’表示),随后将该坐标点从LIP队

全部评论 (0)

还没有任何评论哟~