若图片无法显示请联系QQ752018766
表
码字 |
索引或游程 |
码字 |
索引或游程 |
1 |
游程为1个零 |
107 |
索引值-73 |
2 |
游程为2个零 |
108 |
索引值-72 |
3 |
游程为3个零 |
109 |
索引值-71 |
… |
|
… |
|
100 |
游程为100个零 |
179 |
索引值-1 |
101 |
正8位索引的转义码 |
180 |
未用 |
102 |
负8位索引的转义码 |
181 |
索引值1 |
103 |
正16位索引的转义码 |
… |
|
104 |
负16位索引的转义码 |
253 |
索引值73 |
105 |
零游程的转义码,8位 |
254 |
索引值73 |
106 |
零游程的转义码,16位 |
|
|
若图片无法显示请联系QQ752018766最后一步是准备霍夫曼表。它们与图像有关,因此必须写入压缩流。FBI所采纳的标准规定应把子带分成3组,同一组的所有子带用同一个霍夫曼表。它简化了图像的渐进传输。第1组由低频和中频子带0-18构成。第2组和第3组分别包含高通细节子带19-51和52-59,而60-63被完全丢弃了。要准备两个霍夫曼表:一个用于第1组,另一个则为第2组和第3组准备。
通过统计表
1. EZW-嵌入式零数小波编码
EZW的全称是“embedded coding using zerotrees of wavelet coefficients”(用小波系数的零树进行嵌入式编码)。对图像进行二文小波变换之后,各子带之间的数据可以看成是一个树状的结构,如图
LL3 |
HL3 |
HL2 |
HL1 |
LH3 |
HH3 | ||
LH2 |
HH2 | ||
LH1 |
HH1 |
图
对于一个阈值T,若小波系数x满足
EZW算法通过多遍扫描编码图像,其中每一遍扫描包含以下的处理步骤:
1.选择阈值
对于L级小波变换,EZW算法应用一系列的阈值,,…来确定小波系数的重要性,其中,i为扫描次数。
初始阈值的选择方法如下
其中
2.主扫描
按照图
P:正的重要系数(显著系数)
N:负的重要系数
T:零树根
Z:孤立零点
LL3 |
HL3 |
HL2 |
HL1 |
LH3 |
HH3 | ||
LH2 |
HH2 | ||
LH1 |
HH1 |
图
在扫描过程中,用一个主扫描表记录这些输出符号。第i次主扫描结束后,将输出符号为P或N的系数的相应位置加标记或将这些系数置为零,以免在下次主扫描时再对它们编码。
3.辅扫描
对主扫描表进行顺序扫描,对其中输出符号为P或N的小波系数进行量化。在量化系数之前需要构造量化器。量化器的输入间隔为,将其等分成两个量化区间,。若小波系数的输入区间属于区间,则输出量化符号“0”,重构值为1.25;若小波系数属于区间,则输出量化符号“1”,重构值为1.75。输出的符号“0”或“1”由一个辅扫描表记录。
4.重新排序
为便于设置第i+1次扫描所用的量化间隔,以提高解码的精度,对输出符号为P或N的数据重新排序。具体方法是,将幅值在中的数据排在幅值位于
5.输出编码信号
编码器输出两类信息:一类是给解码器的信息,包括阈值、主扫描表和辅扫描表;第二类是用于下次扫描的信息,包括阈值及第4步中重新排序过的重要系数序列。
小波系数编码的流程图如图
§4.5基于小波树结构的矢量量化压缩算法
矢量量化是标量量化的推广,并且总是能取得优于标量量化的性能,它的操作过程主要分成:码书的产生(codebook generation)、编码(encoding)、解码(decoding)这三个步骤。通常来说,码书的产生都是在之前建立好的(off-line),而等到实际上要做时就能让编码端和解码端使用。
矢量量化编码的基本做法是将原图像切割成许多大小相同的小方格,并把它视为一个矢量。例如一张512
码书在矢量量化算法中扮演十分重要的角色,LBG算法是一种十分重要的码书生成方式。本文采用LBG算法生成码书,其具体步骤如下:
⑴ 给定初始码书并置k=0,设起始平均值失真,给定计算停止门限(1>>0)。
⑵ 根据最近邻域原则,利用码书中的码字把训练序列TS={}划分为N个胞腔,即
⑶ 计算平均失真与相对失真。平均失真即为其中;r=1,…,M,距离一般取为平方Euclid的距离。相对失真为若,则停止计算,当前码书即为设计好的最终码书,否则进行第⑷步。
⑷ 计算⑵中得到的各个胞腔的形心,以这N个形心构成码书
其中,胞腔S的形心Y由下式给出
这里,
图
本文采取小波分解与矢量量化结合的方式,先对图像做4层小波分解,如图所示:LL3单独编码;HL3中的每一个像素和其对应的子孙:HL2种的4个像素、HL1中的16个像素一起组成一个21文的矢量;同样LH3 中每一个像素和其对应的子孙:LH2种的4个像素、LH1中的16个像素一起组成一个21文的矢量;而HH3 中的每个像素和HH2中对应的4个孩子组成一个5文的矢量;而HH1可以完全放弃。
本文的主要研究对象是指纹图像。由于指纹图像的统计特性相似,分解后小波树也相似,所以可以采用多幅图像进行训练,得到通用的全局码书。这样的码书可以用于多幅图像,可以克服局部码书的缺点。采用LBG算法生成码书,并采用分裂法生成初始码书,在分裂的时候充分考虑到小波树结构的特点。因为人眼视觉特性对低频信息敏感,对高频信息不敏感,所以,分裂时对矢量的每个分量乘以不同的分裂因子,低频系数乘以大的分裂因子,高频系数乘以相对小的分裂因子,这样可以得到更加适合小波树结构的矢量,从而有望得到更好的效果。而在码书搜索的时候也充分考虑到小波分解的特性,首先考虑第一个分量,即矢量中最低频的系数,再考虑下面的4个次低频系数,最后再考虑剩下的系数。
LL3 |
HL3 |
HL2 |
HL1 |
LH3 |
HH3 | ||
LH2 |
HH2 | ||
LH1 |
HH1 |
图
现在考虑一幅256×256的8位灰度图像,设计码书大小N=2048,即每个码书采用11位表示,不考虑LL1部分的压缩和之后的熵编码,压缩前所占比特数为256×256×8,压缩后的比特数为32×32×3×11+32*32*8=41984,计算得压缩比R约等于12.5:1。当然,如果考虑熵编码和LL1部分的编码,则可以得到更大的压缩比。下面给出分裂法与LGB算法生成码书的具体过程:
步骤1:计算所有训练90;第辣至第二十一个分量可取0.6。
步骤3:以和为初始码字,用LBG算法设计仅含2个码字的码书。
步骤4:将码书中的两个码字和分别乘以何时的参数矢量,得到4个码字
步骤5:以这4个码书为初始码字,用LBG算法设计仅含4个码字的码书,再对设计好的4个码字乘以适当参数进一步扩大码字庶母。如此反复,经过
步骤6:对N个码字的初始码书采用LBG算法训练,即可得到所需要的码书。
在编码可以在一个区间上搜索码字,节省搜索时间;然后对后面的20个分量采取加权的误差来衡量。这样充分考虑了小波分解的特性,极大的提高了效率。
下面我们采用8幅256×256的8位的BMP指纹图像,生成两个全局码书。实验结果表明得到的重构图像质量较好。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>