基于小波变换的图像压缩编码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(这里的A(i,j)指的是小波系数表里对应的值:对A的处理有许多想法:目前我 实现的两种spiht算法中有一种是把A”拉”成一条向量;另一种算法把A矩阵的两 个坐标使用(实部+J*虚部)来保存)
• 2.2 for each entry (i,j) in the LIS do:
– 2.2.1 if the entry is of type D then – • output Sn(D(i,j)) if Sn(D(i,j))=1 then
息,只是作为细分的时候使用,此位作重要系数权值/2加减而已)
• 4. Quantization step update: decrement n by 1 and go to step 2
程 序 图 形 界 面
程 序 图 形 界 面
图 象 比 较
原始bit: 6291456
编码后码流bit: 391825 压缩比率: 16.0568
• * for each (k,l)∈O(i,j) do:
– o Output Sn(k,l) » If Sn(k,l) =1 then add (k,l) to the LSP and output the sign of A(k,l) » If Sn(k,l) =0 then add (k,l) to the end of LIP
• JPEG2000等
• SPIHT不同子带的小波系数首先按空间位 置构成许多小波树,所有小波系数组成 阵列。除了最低分辨率的子带(左上角 的)以外,这些系数是上一级更低子带 系数的子孙。与EZW不同的是,SPIHT表 示不重要小波系数集合的方式与EZW不同, 见下图。
a
EZW的不重要系数表示
a1
基于小波变换的图象压缩 算法SPIHT的MATLAB实现
姓名:高志斌 学号:200330002 报告日期:2004-4-20
基于小波变换的图像压缩
• 小波图像压缩是一种重要的图像压缩方法,它 具有好的空间分辨率和好的频率分辨率的特性, 使变换系数的能量同时在频率上和空间上集中, 达到去除像素冗余度的作用。 • 在MATLAB中可以有多种实现小波变换的方法。 本报告使用多级二维离散小波变换来构建小波 系数表。用wavedec2及waverec2函数编程,将其 cs构建成一个[a,h;v,d]的矩阵,使之变换级数使 用形参传递。
SPIHT的不重要系数表示
a2
a3
a11
a12
a13
a14
a21
a22
a23
a24
a31
a32
a33
a34
a111 a112 a113 a114 a121 a122 a123 a124 a131 a132 a133 a134 a141a142 a143 a144
SPIHT 算法定义了四种集合: O (i, j ) :位于 (i , j ) 坐标处小波系数的子女。每个小波系数或 者有 4 个子女,或者没有子女 D (i, j ) :位于 (i , j ) 坐标处小波系数的后代。后代包括子女、 子女的子女、以此类推。 H :所有根节点的集合,即最低分辨率的逼近子带。 L (i , j ) :位于 (i, j ) 坐标处小波系数的除子女之外的后代,即
• Output Sn(L(i,j)) • If Sn(L(i,j))=1 then
– * add each (k,l)∈O(i,j) to the end of the LIS as entry of type D – * remove from the LIS
• 3.Refinement Pass: For each entry in the LSP except those included in the last sorting pass (i.e. with the same n), output the nth most significant bit of abs(A(i,j))(在译码的时候,这一位已经不包含符号信
一旦完成了对 LIS 列表中每个集合的处理,就进入细化步骤。 细化处理时, 对每个本次扫描前产生的 LSP 系数进行进一步的 细致量化,输出第 n 个比特。而对本次扫描产生的 LSP 系数不 进行处理,因为重要图编码时已经指明它们的第 n 个比特。
解码只要按接受到的码流的顺序,并且接收编 码端的权值T,以及码流规格(这些报头开销极 小,计算压缩比时被我忽略不计了)作编码的 逆运算即可。
集合的类型为 D:检查该坐标处小波系数的子女。如果是重要的,传 送 1 和符号比特,并将之移入 LSP;如果不重要,则传送 0,并将之 移入 LIP。这样,我们就从集合 D (i, j ) 中移走了 O (i, j ) ,剩余的集合为 L (i , j ) 。如果 L (i , j ) 不空,则将它移到 LIS 的结尾,并标记为类型 L。需 要注意的是,这个新的 LIS 条目在这一遍扫描中是会被处理的。如果 L (i , j ) 为空,则从列表中移走相应的坐标。 集合的类型为 L:将坐标(i, j ) 处小波系数的子女O (i, j ) 的坐标加入到 LIS 的结尾,类型记为 D,并移走坐标 (i, j ) 。同样的,这些新加入的 集合也将在这遍扫描中处理。
• SPIHT (Set Partitioning in Hierarchical Trees)算法
– 1996年Amir Said和William Pearlman在EZW算法基础上提出。不同 于EZW算法利用零树根(zerotree root)来表示大量不重要小波 系数; SPIHT算法采用树分割的方法,力图使不重要系数保持 在更大子集中。分割判决用二进制的方式传送给收端,从而提 供了比EZW更有效的重要图编码方法。
每一遍扫描,首先处理 LIP 的元素;接着处理 LIS 的元素, 这一步本质上就是重要图编码;最后对 LSP 的元素进行细化。 首先扫描 LIP 中的元素,如果某个坐标的小波系数是重要 的,则传送一个 1 及一个表示系数符号的比特。这个系数接着 被移到 LSP 列表。如果系数是不重要的,则输出 0。 第二步是处理 LIS 列表中集合。 如果坐标(i, j ) 处的集合是不 重要的,传送 0,转到下一个集合;否则传 1,其后的动作依赖 于集合的类型是 D 还是 L。
小波系数表(越往左上角越低频越重要)
LL3 HL3 LH 3 HH 3
LH 2
HL2
HL1
HH 2
LH1
HH 1
小波系数的压缩编码
• 算数编码 • EZW算法( Embedded zero-tree wavelet algorithm )
– Shaprio等人1993年发表,是小波图像压缩史上具有里程碑意义 的一个算法。该算法核心是对小波分解后的子带系数定义一种 零树结构,这种零树结构基于频率衰减假设,即在同一方向上 粗糙尺度子带的系数要比相应位置精细尺度子带的系数大,然 后采用连续逼近量化和熵编码生成嵌入式码流。
编码后码流bit: 225127 压缩比率: 27.9463
编码后码流bit: 96387 压缩比率: 65.2729
编码后码流bit: 55950 压缩比率: 112.448
将RGB分量中的R的第一次扫描的第11个bit取反(表示此位(符号位)被污 染了--)
不足之处:
• 嵌入式编码要求能够随时截断码流以达 到要求的压缩比率,但是本人在进行编 解码算法实现的时候,忽略了对这一点 的考虑。 • 此外,程序尚未精心优化,编写比较仓 促,所以运行时间慢。
• * If L(i,j) ≠ φ then move (i,j) to the end of the LIS as entry of type L, and go to step 2.2.2; otherwise remove entry from the LIS:
– 2.2.2 if the entry is of type L then
程序开始
算法的MATLAB实现
读图
• 大致流程:
是真彩色? Y 分解成三个单色矩阵
N
使用DWT()进行 小波系数表构建 N 压缩比大于1?
分别使用DWT()进行 小波系数表构建
N
Y 压缩比大于1? Y 进行spiht压缩解压 使用IDWT()进行 原始图象还原 进行spiht压缩解压
使用IDWT()进行 原始图象还原
图象显示
程序结束
SPIHT
参考文献:A New,Fast,and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees》Amir Said,William A.Pearlman,IEEE 1996
1.
2.
Initialization: Output Sn; set the LSP as empty list and add the coordinates (i,j) ∈ H to the LIP and only those with descendents also to the LIS, as type A entries. Sorting Pass 2.1 for each entry (i,j) in the LIP do: 2.1.1 Output ቤተ መጻሕፍቲ ባይዱn (i,j) 2.1.2 If Sn (i,j)=1, then move (i,j) to the LSP and output the sign of A(i,j)
L ( i , j ) D ( i , j ) O (i , j )
如果集合里存在大于给定门限的小波系数,就说集合D (i, j ) 或 L (i , j ) 是重要的,反之则是不重要的。算法使用 3 个列表:list of insignificant pixels(LIP) 、 list of significant pixels(LSP) 、 list of insignificant sets(LIS)。对于 LIP 和 LSP 列表,算法保存系数的 坐标;而对 LIS,算法保存集合 D 或 L 的根坐标。算法最初的 门限由下式决定 log 2 Amax T 2 其中 Amax 是编码系数的最大幅度。 H H LIP 列表初始化为 , 中具有后代的元素初始化为 LIS 中的 D 类型条目,LSP 置为空。
结束
相关文档
最新文档