没有合适的资源?快使用搜索试试~ 我知道了~
首页ezw算法的MATLAB实现
ezw算法的MATLAB实现

EZW的算法实现及算法理解,基本原理,方法步骤,内容很详细的解释,算法实现编程
资源详情
资源评论
资源推荐

嵌入式小波零树(EZW)算法的过程详解和 Matlab 代码(3)解码过程 收藏
、初始化
()全局初始化:包括获取扫描次序列表 ,初始化符号矩阵 ,创建以下
几个空表:重要系数重构列表 ,量化器编号列表 ,上一次解码用到的辅扫描表
。
()每级扫描的初始化:获取本级解码需要的主扫描表 和辅扫描表 。
创建解码矩阵 ,量化符号列表编号 ,主扫描表扫描编号 。
、构造逆量化器
()逆量化器包括两个部分,一是量化值部分,与编码程序中的量化器函数代码相同;二是
量化器编号列表 的构造,这个是难点和重点,把它构造出来,才能解码出重要系数的数
值。
()以下是编码过程中经过 次扫描产生的辅扫描表 和量化器编号列表 :
:
:
:
:
:
: !!
:
""
: ! #!
""
仔细观察可以发现两者之间存在一种函数关系:
以第一级扫描产生的三个量化符号(,,)为例,其编号列表为(,,),在随后的
第 、、 级分解后,量化符号相继变化为(,,)、(,,)、(,,),编
号列表相继变化为(,,)、( ,!,!)、(,, ),这里有一个规律:

(,,) $%(,,)&(,,)
( ,!,!) $%(,,)&(,,)
(,, )$%( ,!,!)&(,,)
这样,我们就得到如下公式:
设 表示扫描级数,则有: '($%')(&')(
从而,就可以轻松编写出逆量化器的函数代码:
*
+,,-$.'/,,,,
(
$+-0
12$%/0
33$/45')(0
$12433)0
*$6
$+033%'&7 (33%'&7! (-0
$3'(0
$3'(0
*$6
'($%'(&'(0
**$&6
'*($0
$0
、提高上一级解码的重要系数的重构精度
这里主要是根据逆量化器生成的重构值矩阵 和逆量化器编号列表 来更新

重要系数列表 的值,并将更新数据存入解码矩阵 中。这四个矩阵(列
表)的每一行(个)元素都是一一对应的关系,更新就很容易实现,代码如下:
*
+,,-$8',,,
,,(
*98:'(
+;,<-$='(0
*$6;
*'($$
2$''(,(0
*'(>
2$)20
',($20
'',(,',(($20
$&0? 矩阵的第 、 列储存的是对应于
中的行、列号(,)
2$''(,(0
*'(>
2$)20
',($20
'',(,',(($20
$&0

、解码
解码过程其实与主扫描过程非常类似,按照扫描次序 扫描解码矩阵 :
() 首先检查对应的 是否为“@或“A@,是则跳过,扫描下一个元素。
() 然后对照主扫描表 ,作如下操作:
如果为“B@或“@,则更新 ,根据逆量化器重构 相应元素的值,并存入重
要系数矩阵 中;
如果为“C@,则 相应元素的值置零;
如果为“/@,则更新 , 相应元素的值置零,并使该点所有子孙的
置为“A@。
()本级解码完毕,保存符号矩阵 到解码符号矩阵 中,然后使
中的元素重置为“@或“C@,供下一级解码使用。
*
+,,-$',,,
,,,,,,(
D;
*$6;%
*'',(,',(($$EE
0
*'',(,',(($$EAE
0
*'($$EBE
'',(,',(($EBE0
*'($$
2$''(,(0
$+02,',(,',(-0
'',(,',(($20
$&0

2$''(,(0
$+02,',(,',(-0
'',(,',(($20
$&0
$&0
*'($$EE
'',(,',(($EE0
*'($$
2$)''(,(0
$+02,',(,',(-0
'',(,',(($20
$&0
2$)''(,(0
$+02,',(,',(-0
'',(,',(($20
$&0
$&0
*'($$ECE
'',(,',(($0
$&0
*'($$E/E
'',(,',(($E/E0
'',(,',(($0
3/$'',(,',((0
+;3,3-$='3/(0
*$6;3
剩余37页未读,继续阅读

安全验证
文档复制为VIP权益,开通VIP直接复制

评论14