第五章小波图像压缩技术 -...
Transcript of 第五章小波图像压缩技术 -...
第五章 小波图像压缩技术第五章 小波图像压缩技术
• 二维正交多分辨分析
图像压缩简介• 图像压缩简介
• EZW编码编
• SPIHT编码
• EBCOT编码与JPEG2000介绍• EBCOT编码与JPEG2000介绍
清华大学计算机系 孙延奎 2009
本讲的目的本讲的目的
• 通过典型的小波图像压缩算法,了解小波图像编码的基本
想与关键技术 为小波图像编码的研究与应用奠定基础思想与关键技术,为小波图像编码的研究与应用奠定基础。
清华大学计算机系 孙延奎 2009
图像压缩简介图像压缩简介
• 图像压缩的目的图像压缩的目的
• 两种压缩类型
有损压缩与无损压缩
常用压缩方法• 常用压缩方法
RLE(Run- Length Encoding 行程长度编码), ( g g )
JEPG,JEPG-LS,JEPEG2000
分形编码
小波图像压缩
清华大学计算机系 孙延奎 2009
小波图像压缩
图像压缩简介图像压缩简介
小波图像压缩的 般模型• 小波图像压缩的一般模型
典型的方法: EZW, SPIHT, EBCOT
• 小波图像分解的(一种常用)方法: 可分离二维小波变换• 小波图像分解的(一种常用)方法: 可分离二维小波变换
滤波器的选取、边界延拓
清华大学计算机系 孙延奎 2009
滤波器的选取滤波器的选取
• 主要考虑具有线性相位的、正则性的、完全重构的、有限
长度的双正交小波滤波器。
◆ 线性相位 滤波器的对称性◆ 线性相位:滤波器的对称性
◆ 正则性:保证图像的重构质量。在小波分解中,正则性
使信 获得较 的小波系数表 在小波 构中可以使信号获得较好的小波系数表示;而在小波重构中,
正则性导致平滑扰动。
◆ 完全重构、有限长度:一般希望滤波器的分解重构精度
越高越好,而要求滤波器对量化误差的反应越不敏感越好,
最重要的是需要恢复信号的主、客观质量越高越好。
滤波器的选取滤波器的选取
• 以下几种滤波器具有好的压缩性能:
(9-3)滤波器:
128 4{ } { }128 4[] 3, 6, 16,38,90,38, 16, 6,3 , [] 1,2,12 2
h h= − − − − =
(9-7)滤波器:(9-7)滤波器:
(12-4)滤波器:( )滤波器:
{ }512 [] 5,15,19, 97, 26,350,350, 26, 97,19,15, 52
h = − − − − − −
{ }8 [] 1,3,3,12
h =
清华大学计算机系 孙延奎 2009
“一般地,自然图像是高度非平稳信源,其功率谱是非对称的,般地,自然图像是高度非平稳信源,其功率谱是非对称的,
要求分解滤波器的长度要长,而高通分解滤波器的长度要短。
此外,滤波器长度的非对称性可以使能量较好地集中,特别对
于高频子图,而当低通合成滤波器的长度较短时,可以减少重
构误差”。
Olivier Egger, Wei Li. Subband coding of image using t i l filt b k IEEE T I P 1995 4(4)asymmetrical filter banks. IEEE Trans. Image Proc., 1995,4(4):
478-485
清华大学计算机系 孙延奎 2009
图像小波变换 边界处理图像小波变换:边界处理
• 由于图像小波分解是将图像数据与滤波器系数进行线
性卷积运算,使滤波器的输出样点数大于输入的样点性卷积运算,使滤波器的输出样点数大于输入的样点
数;但从子带压缩编码的效率看,是希望各子图信号
的样点数总数不大于原始图像信号的样点数,且子图
信号应能完全重构其原始信号。常用的方法是对信号信号应能完全重构其原始信号 常用的方法是对信号
进行边界延拓。
清华大学计算机系 孙延奎 2009
简单的小波图像压缩方案简单的小波图像压缩方案
方案1 只保留低频部分方案1: 只保留低频部分.
方案2: 全局阈值法.方案 全局阈值法
方案3: 保留绝对值较大的若干小波系数
讨论: 这些方案利用了小波变换的什么性质?
利用Matlab编程即可实现。
讨论: 这些方案利用了小波变换的什么性质?
去相关性!
小波子带分解中,小波系数还有什么性质?如何开发更
先进的小波压缩算法?
清华大学计算机系 孙延奎 2009
先进的小波压缩算法?
小波图像编码中的关键问题小波图像编码中的关键问题
如何组织小波系数及其位置信息?
如何处理小波系数及其位置信息?
清华大学计算机系 孙延奎 2009
不同分辨率子带之间数据的相关性不同分辨率子带之间数据的相关性.从下图中可观察到 不同分解级小波系数之间具有从下图中可观察到,不同分解级小波系数之间具有
相似性。
,1
,2 ,3
j j
j j
c dd d⎡ ⎤⎢ ⎥⎣ ⎦⎣ ⎦
清华大学计算机系 孙延奎 2009
小波系数的四叉树结构表示小波系数的四叉树结构表示
小波系数的四叉树结构
清华大学计算机系 孙延奎 2009
小波系数的零树特性小波系数的零树特性
对于给定的阈值T,若小波系数x满足|x|<=T,则称x关于T是不重要的
系数。系数。
实验统计表明,若一个小波系数关于T是不重要的,则它的所有子孙
系数关于T是不重要系数的概率在98%以上 [该结论仅供参考]系数关于T是不重要系数的概率在98%以上。[该结论仅供参考]
清华大学计算机系 孙延奎 2009
小波零树编码小波零树编码
1992,Lewis and Knowles 利用小波树中各级子带系
数之间的相似性,最早提出了小波零树编码算法。该算法将量化后系数为零的系数的子孙系数都指定为零算法将量化后系数为零的系数的子孙系数都指定为零。
特点: 利用了不同分辨率子带之间数据的相关性.
问题 ?问题:?
清华大学计算机系 孙延奎 2009
嵌入式零树小波图像压缩技术 EZW编码嵌入式零树小波图像压缩技术----EZW编码
在1993年, Shapiro提出了小波零树编码算法的改进算法,称为嵌入零树小波编码算法,简称为EZW算法。
这是一种简单有效的小波编码算法。受该算法的启发,人们后来开发了更为有效的SPIHT及EBCOT算法。
☆ 基本概念☆ 基本概念
☆ 编码过程
清华大学计算机系 孙延奎 2009
EZW编码 基本概念EZW编码:基本概念
重要系数、不重要系数(相对某个阈值而言)
小波零树(P129):
孤立点(P129):
四个记号: P,N,T,Z。4种类型的系数分
别分配2比特标识符别分配2比特标识符。
(0,0) 63
(0,1) (1,1)(1,0) 31− 2334
清华大学计算机系 孙延奎 2009
( )
小波系数的处理----扫描顺序:小波系数的处理 扫描顺序
为了出现尽可能多的零树根以压缩代码,同时保证先编码重要信息,扫描从最低的精度开始逐渐向高精度级进行。
我们教材中采用的是Morton扫描顺序.
清华大学计算机系 孙延奎 2009
清华大学计算机系 孙延奎 2009
小波系数位置的处理----由扫描顺序及小波零树共同完成
其中, H表示小波系数的绝对值大于或等于当前的阈值;
4 4× 图象
L表示小波系数的绝对值小于当前的阈值.
清华大学计算机系 孙延奎 2009
EZW编码过程
多遍扫描编码小波系数图像,其中每一遍扫描包含以下的处理步骤:
EZW编码过程:
1.选择阈值
2. 主扫描
3 辅扫描3. 辅扫描
5 输出编码信号
4. 重新排序
5. 输出编码信号
注解: 由于”重新排序”需要记录有关信息,且实践表明,这种操作对图像重构的质量影响不大,所以实践中通常忽略这步操作. 为此,以下删除教材中EZW编码算法中的第4步”重新排序”.
清华大学计算机系 孙延奎 2009
1.选择阈值
0T 1T 1LT−对于L级小波变换,EZW算法应用一系列的阈值 , ,…,0 1 1L
2/1−= ii TT i i来确定小波系数的重要性,其中 , 为扫描次数,
=1,2,….,L-1。
初始阈值的选择方法如下:
log {| |}
0,22 Max ci jT
⎢ ⎥⎢ ⎥⎣ ⎦=
320 =T
清华大学计算机系 孙延奎 2009
2. 主扫描
+ −
1D :PNZTPTTTTZTTZZZZZPZZ
在扫描过程中,用一个主扫描表记录这些输出符号。当一个系数的输出符号为T时,它的所有子孙系数就不再扫描,并用×表示。
第i次主扫描结束后,将输出符号为P或N的系数的相应位置加标记或将这些系数置
清华大学计算机系 孙延奎 2009为零,以免在下次主扫描时再对它们编码。
3. 辅扫描
作用:对正 负系数的幅值进行编码作用:对正、负系数的幅值进行编码。
为减少存储的比特数,需要将重要系数的幅值的编码和判断系数重要与否的阈值联系起来。
对主扫描表进行顺序扫描 对其中输出符号为P或N的小波系数进行量化对主扫描表进行顺序扫描,对其中输出符号为P或N的小波系数进行量化。量化值56
1表5.1 第一次辅扫描量化表
系数幅值 量化符号 重构幅值
40 0
系数幅值 量化符号 重构幅值
63 1 56
34 0 40
49 1 56
系数值32 48 64 47 0 40
量化符号组成的位流为 1S :1010系数量化器
清华大学计算机系 孙延奎 2009
5. 输出编码信息5. 输出编码信息
编码器输出两类信息:编码器输出两类信息:
一类是给解码器的信息,包括阈值、主扫描表和辅扫描表;
第二类是用于下次扫描的信息 包括阈值及获得的重要系数序列
320 =T 1D 1S, :PNZTPTTTTZTTZZZZZPZZ; :1010
第二类是用于下次扫描的信息,包括阈值及获得的重要系数序列。
32=T 小波图像数据{ }PPNP 47493463320 =T , ,小波图像数据。{ }PPNP −−−− 47,49,34,63
未排序未排序
清华大学计算机系 孙延奎 2009
第二次编码:第二次编码:
设置新阈值: 162/01 == TT 辅扫描:
主扫描:
× ×
× ×4T 17Z
14Z 15Z
16Z
⊗ ⊗ ⊗ 3T
5T1N 2P 表5.2 第二次辅扫描量化表
×
×
×
×
× ×
× ×
6T 7T
9T
11T
12T8T
10T
13T
系数幅值 量化符号 重构幅值
63 1 60
49 0 52× × × ×
×
×
× × ×
× × ×
× ×
×
×
×
× × ×
⊗×
× ×
34 0 36
47 1 44
31 1 28
23 0 20×
×
× × ×
× × ×
×
×
×
× × ×
× ×
2D :NPTTTTTTTTTTTZZZZ
23 0 20
2S :100110
清华大学计算机系 孙延奎 2009
2D
第二次编码输出结果第二次编码输出结果:
a)为解码器提供的信息
161 =T 2D 2S, :NPTTTTTTTTTTTZZZZ; :100110
b)为下一次扫描的信息
161 =T , ,小波图像数据。{ }63 ,34 , 49 , 47 ,31 , 23P N P P N P− − − − − −
表5.3 二次编码的输出结果
T0 32
11 / SD
/ SD
0
PNZTPTTTTZTTZZZZZPZZ/1010
NPTTTTTTTTTTTZZZZ/10011022 / SD
清华大学计算机系 孙延奎 2009
EZW编码与位平面编码之间的关系
小波系数的表示----位平面编码 (阈值的选取方式)小波系数的表示 位平面编码 (阈值的选取方式)
5 4 3 2 1 063 1 2 1 2 1 2 1 2 1 2 1 2= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅63的二进制表示为111111
符号位平面及前三个高位的位平面
清华大学计算机系 孙延奎 2009
EZW编码与位平面编码之间的关系
通过不同阈值如32,16,8,…对小波系数进行扫描, 可以发现最重要的小波系数 这等价于对位平面依次进行小波零树编码 由此实现累进编码波系数. 这等价于对位平面依次进行小波零树编码. 由此实现累进编码,也称为嵌入式编码.
具体的 第一次主扫描本质上是对第一个位平面编码 第一次辅扫描具体的,第 次主扫描本质上是对第 个位平面编码。第 次辅扫描本质上是发现”重要系数”在下一个位平面上的改进位.对应当前阈值下4个重要系数在次高位平面的位值,是必然,是巧合?
必然. 如 5 4 3 2 1 063 1 2 1 2 1 2 1 2 1 2 1 2= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅5 4 3 2 1 05 4 3 2 1 034 1 2 0 2 0 2 0 2 1 2 0 2= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅
第二次辅扫描对应当前阈值6个重要系数在第三高位平面的位值第二次辅扫描对应当前阈值6个重要系数在第三高位平面的位值
清华大学计算机系 孙延奎 2009
EZW解码
解码过程的主要步骤包括:
接收编码器发送的解码信息后,设置阈值,构造逆量化器。解读位流中接收编码器发送的解码信息后,设置阈值,构造逆量化器。解读位流中包含的位置信息和小波系数信息。
注释: 其它的必要信息,包括小波滤波器, 小波分解的次数与图像大小等
第一次解码
解码器接收到的信息:解码器接收到的信息:
32/ PNZTPTTTTZTTZZZZZPZZ/1010
1D P Z T P ZZZZZZZZ TTTTTTPN
重要的小波系数与其量化符号有如下的对应关系:
1S 1 10 0
解码过程: 当遇到P与N时,…;当遇到Z和T时如何处理?
清华大学计算机系 孙延奎 2009
第二次解码
解码器接收到的信息:16/NPTTTTTTTTTTTZZZZ /100110 其中S2的前4位表示第一次解码时得到的S1中的量化符号,它们的重构值依次为的重构值依次为 。( )40,56,40,56 −
第二次解码过程由两步组成:
1)应用新的量化器,提高第一次解码得到的重要系数的重构精度。
( )40564056 − ( )60 36 52 44( )40,56,40,56 − ( )60, 36,52, 44−
2)求解在第一次解码时尚未恢复的系数。
2D 2S中由系数输出符号组成的位流与 中后两位量化符号间2 2
D N P T T T T T T T T T T T Z Z Z Z
中由系数输出符号组成的位流与 中后两位量化符号间
的对应关系如下:
2D N P T T T T T T T T T T T Z Z Z Z1 0 第二次解码后的结果
清华大学计算机系 孙延奎 2009
EZW解码
EZW算法具有显著编码性能的原因:
(1)离散小波变换: 去相关性与塔式结构
(2)零树编码 利用不同分辨率同方向子带之间的相关性(2)零树编码: 利用不同分辨率同方向子带之间的相关性
(3)累进逼近 : 位平面编码
(4)自适应算法编码: 无损编码方式
EZW编解码算法的实现, 包括C语言与Matlab程序(不考虑排序步骤):
http://perso.wanadoo.fr/polyvalens/clemens/ezw/ezw.html
清华大学计算机系 孙延奎 2009
SPIHT编码
SPIHT算法是EZW算法的改进算法.
SPIHT算法采用与EZW算法相似的零树结构,但它在系数子集的
分割和重要信息的传输方式上采用了独特方法 能够在实现幅值分割和重要信息的传输方式上采用了独特方法,能够在实现幅值大的系数优先传输的同时,不显式传送系数的排序信息。其基本依据是:任何排序算法的执行路径都是使用分支点的比较结果进行定义的 如果编码器和解码器使用相同的排序算法 则对于编行定义的,如果编码器和解码器使用相同的排序算法,则对于编码器输入的系数比较结果,解码器通过执行相同的路径就可获得排序信息。
jj
∗
i
清华大学计算机系 孙延奎 2009
分集规则分集规则
{ }( )
,,
max | | 2( )
ni j
i j Xn
cS X ∈
⎧ ≥⎪= ⎨⎪
1 若 ( ) 1nS X = X 是重要的
( ) 0S X X 是不重要的⎪⎩0 其他 ( ) 0nS X = X 是不重要的
),( jiO :节点(i,j)所有孩子的坐标集;点( ,j)所有孩子 标集
),( jiD :节点(i,j)所有子孙的坐标集;
H :所有树根的坐标集。
),(),(),( jiOjiDjiL −=
),( jiL :节点(i,j)所有非直系子孙的坐标集;
一般地,
{ })1212()212()122()22()( ++++= jijijijijiO { })12,12(),2,12(),12,2(),2,2(),( ++++= jijijijijiO
清华大学计算机系 孙延奎 2009
分集规则
1)最初坐标集由 { }( , ) | ( , )i j i j H∈ 和
{ }( , ) | ( , )D i j i j H∈ 且具有非零子孙 组成;{ }2) 若 ),( jiD 是重要的,则 ),( jiD 分成
),( jiL 及4个单节点 ( ) ),(, jiOlk ∈),( j ( ) )( j
3) 若 是重要的,则 分成
4个集
),( jiL ),( jiL
),( lkD ( ) )( jiOlk ∈4个集 ),( lkD ,( ) ),(, jiOlk ∈
有序表
LIP——不重要系数表;
LSP——重要系数表;
在LIS中,坐标( , )i j 代表 ),( jiD 或者 ),( jiL
分别用(i j)D和(i j)L 表示LIS——不重要子集表。
每一个表项都使用坐标 ( , )i j 标识
分别用(i,j)D和(i,j)L 表示
清华大学计算机系 孙延奎 2009
SPIHT编码的主要步骤
(1)阈值和有序表的初始化
{ }⎣ ⎦设阈值nT 2= ,其中 { }⎣ ⎦)(maxlog ,),(2 jiji cn =
LSP为空集
( ){ }{ }
LIP , | ( , )
LIS ( , ) | ( , )
i j i j H
i j D i j H
= ∈
= ∈ 且具有非零子孙
其中LIP和LIS中小波系数( , )i j 的排列顺序
与零树的扫描顺序相同与零树的扫描顺序相同。
例: 小波系数最大幅值为63,故n=5,阈值 3225 ==T例 小波系数最大幅值为 ,故 ,阈值
{ }LIP (0,0), (0,1), (1,0), (1,1)=
{ }LIS (0,1) , (1,0) , (1,1)D D D=
清华大学计算机系 孙延奎 2009
{ }( , ) , ( , ) , ( , )
{ }LSP =
(2)排序扫描
目的: 编码当前位平面的重要系数
由以下两个大的步骤构成:
1) 顺次检查LIP中的所有小波系数 ( )i j 对于当前阈值 确定其是否重要•如果是重要的系数,则输出“1”及其符号位,其中正、负小波系数的符号位分别采用“1”和“0”表示,然后将该系数从LIP中删除,并添加到有序表LSP的尾部。
1) 顺次检查LIP中的所有小波系数 ( , )i j ,对于当前阈值,确定其是否重要
删除,并添加到有序表LSP的尾部。
•如果是不重要的系数,则输出“0”。
清华大学计算机系 孙延奎 2009
例题:例题:
排序扫描1 输出
T 32T=32%对LIP中的每个表项顺次进行处理
Is (0,0) significant?yes: 1, g y1(符号位)
/将(0,0)从LIP中删除,添加到LSP的尾部/LSP={(0,0)}
( ) ( ) ( )LIP={(0,1),(1,0),(1,1)}
Is (0,1) significant?yes: 10(符号位)0(符号位)
LSP={(0,0),(0,1)}LIP={(1,0) ,(1,1)}Is (1 0) significant?no 0Is (1,0) significant?no: 0Is (1,1) significant?no: 0
清华大学计算机系 孙延奎 2009
2) 对LIS中的每个表项顺次处理,并对D型表项和L型表项分别采用不
Check the significance of all trees in the LIS according to the type of tree type:
2) 对LIS中的每个表项顺次处理,并对D型表项和L型表项分别采用不同的处理方法,具体算法如下:
g g yp yp√ For a tree of type D:
° If it is significant, output 1, and code its children: • If a child is significant, output 1, then a sign bit and add
it to the LSP• If a child is insignificant, output 0 and add it to the end
of LIP.• If the children have descendants, move the tree to the
end of LIS as type L, otherwise remove it from LIS. ° If it is insignificant, output 0.
√ For a tree of type L: ° If it is significant, output 1, add each of the children to the end
of LIS as an entry of type D and remove the parent tree from the LISof LIS as an entry of type D and remove the parent tree from the LIS.° If it is insignificant, output 0.
清华大学计算机系 孙延奎 2009
三个有序表LIP,LSP,LIS的当前状态信息,即
LSP={(0,0),(0,1),(0,2),(4,3)}LIP={(1,0),(1,1),(0,3),(1,2),(1,3),(2,0),(2,1),(3,0),
(3 1) (4 2) (5 2) (5 3)}(3,1),(4,2),(5,2),(5,3)}LIS={(1,1)D,(0,1)L,(2,0)D,(3,0)D,(3,1)D}
(3)精细扫描(3)精细扫描
目的: 给出不是在刚刚进行过的扫描过程中的重要系数在当前位平面中的改进位.
对于LSP中的每个表项 ( , )i j ,若 ( , )i j
(2)中新添加的,
不是在刚刚进行过的扫描过程
则输出 ijc 的第n个最重要的位,其中nT 2= 是扫描
例子(续): 由于排序扫描1进行之前 LIS { } 故没有符号位输出
过程中设定的阈值。
例子(续): 由于排序扫描1进行之前,LIS= { },故没有符号位输出。
(4)进行下一次排序扫描和精细扫描
清华大学计算机系 孙延奎 2009
例5.6第一次SPIHT编码后输出的信息
第一次编码过程完成后,编码器输出两类信息:
1) 给解码器的信息,包括域值52 、排序扫描的输出位流 5S
1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0
:
1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0、
精细扫描位流及三个有序表的初始化信息,即LIP ,LIS和LSP
LIP {(0 0) (0 1) (1 0) (1 1)}LIP={(0,0), (0,1), (1,0), (1,1)}LIS={(0,1)D, (1,0)D, (1,1)D}LSP={ }
2) 用于下次扫描的信息,包括域值52
的当前状态信息.
、三个有序表LIP,LSP,LIS
的当前状态信息
清华大学计算机系 孙延奎 2009
SPIHT解码过程
为获得SPIHT解码器算法,只需将编码器输出的位流、初始值以及三个
控制表LIS、LIP、LSP的初始化信息提供给解码器,并执行编码器的相
同路径即可。为此,只需将SPIHT编码器代码中的输出(output)改为
输入(input)即可 这样 解码器可恢复数据的排序信息输入(input)即可。这样,解码器可恢复数据的排序信息。
解码器需要做的另一项工作是更新重构的图像 对于阈值 nT 2= 当一解码器需要做的另 项工作是更新重构的图像。对于阈值 T 2= ,当
个坐标 ( , )i j 移到LSP中时,这表明, 1,2 2n n
i jc +≤ < 。再由随后输入的
符号位信息 可获得 ( )i j 的重构值 ˆ 1 5 2n± 进 步根据符号位信息,可获得 ( , )i j 的重构值 , 1.5 2ni jc = ± × 。进一步根据
精细扫描过程中 ,i jc 二进表示的位信息以获得更精确的重构信息。
清华大学计算机系 孙延奎 2009
SPIHT解码过程举例----例5.7SPIHT解码器第一次编码为解码器提供的信息如下:
位流 S5: 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0精细扫描表 空集精细扫描表:空集初始n: n=5控制表初始化信息:LIP={(0 0) (0 1) (1 0) (1 1)}LIP={(0,0), (0,1), (1,0), (1,1)}LIS= {(0,1)D, (1,0)D, (1,1)D}LSP={ }
解码器的执行过程:
排序扫描1:
48 4848−
00
0
0 0
× × × ×
× × × ×
排序扫描1:设定阈值T=25=32 %对LIP中的每个表项顺次进行处理%对LIS中每个表项顺次进行处理
0 0
0 0
× ×
× ×
× × × ×
×
×
×
×
× ×
× ×
× × 480%对LIS中每个表项顺次进行处理
精细扫描1:从精细扫描表读取位数据,修改LSP
×
×
× × ×
× × ×
×
×
×
× × ×
0 0
清华大学计算机系 孙延奎 2009中相应系数的重构值。
× × × ×× × × ×
SPIHT与 EZW编码的简单比较
共同点:
基于(广义)小波零树的位平面编码,形成嵌入式位流. 其中,在不
同分辨率子带之间引入向下的相关性.
嵌入式位流的吸引力在于, 希望的压缩等级可以在信源已经压
缩之后确定. 嵌入的一个重要结果是,信源内任意给定的空间区域
的信息内容一般必然是分散(dispersed)贯穿在压缩表示中.
不同点:
重要系数排序信息的显式与隐式处理.系数 序信 式 式
清华大学计算机系 孙延奎 2009
电子资源电子资源
• http://www.cipr.rpi.edu/research/SPIHT/spiht3.html
• http://dcl.ee.washington.edu/amiguel/spiht.htmlhtml
• http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=4808&objectType=filebjectType file
清华大学计算机系 孙延奎 2009
EBCOT编码EBCOT编码
最佳截断嵌入码块编码(embedded block coding with optimized truncation,EBCOT)算法是一种非常有效的小波系数编码方法。
清华大学计算机系 孙延奎 2009
EBCOT编码EBCOT编码
质量可伸缩性
或SNR可伸缩性
清华大学计算机系 孙延奎 2009
或 可伸缩性
或率可伸缩性
EBCOT编码EBCOT编码
EZW与SPIHT算法采用的零树编码结构,在分辨率之间引入向下的相关性 因此所得到的嵌入式码流具有质量可伸缩性向下的相关性,因此所得到的嵌入式码流具有质量可伸缩性,但不具有分辨率可伸缩性.
EBCOT算法采用了将子带样本分成小块,单独对每一个小块进行编码. 各种相关性可能存在于一个块内,但不会存在于不同块之间块之间.
清华大学计算机系 孙延奎 2009
EBCOT 算法介绍:
1. 嵌入码块编码
对每个码块进行编码时,编码器不用其它码块的任何信息,只用该码块本身的信息生成 个嵌入码块流块本身的信息生成一个嵌入码块流。
这种编码方法很容易生成图像的具有分辨率可伸缩性的编码,并可实现感兴趣区域的随机存取.
清华大学计算机系 孙延奎 2009
2. 质量层与结构
基于各个码块的独立编码使得随机存取和分辨率可伸缩性基于各个码块的独立编码使得随机存取和分辨率可伸缩性成为可能,但这里要指出的是,尽管每个码块的嵌入位流是SNR可伸缩性的,但各块简单放在一起生成的码流却不是质量( )可伸缩性的是质量(SNR)可伸缩性的。
为了实现质量可伸缩性,EBCOT引入了“质量层”(quality layer)的概念。图像的最终码块位流以质量层形式进行组织,layer)的概念。图像的最终码块位流以质量层形式进行组织,其中每一层都包含每个码块对图像质量的贡献。
block 1 bit-stream
block 2 bit-stream
block 3 bit-stream
block 4 bit-stream
block 5 bit-stream
block 6 bit-stream
block 7 bit-stream
emptyemptylayer 5
emptyempty
empty
empty
empty
layer 4
layer 3
empty
layer 2
layer 1
清华大学计算机系 孙延奎 2009
layer 1
EBCOT图像压缩算法的两层编码结构流程图图像压缩算法的两层编码结构流程图
由于每个质量层必须包含辅助信息以确定每个码块对该质量层的贡献大小。当层数很多时,对给定的质量层,仅有部分码块对该层有贡献,这样在辅助信息中存在大量的冗余信息。为此EBCOT引入第二编码器(Tier 2)用于压缩每个质量层为 引 第 编码器 用于压缩每个质 层的辅助信息。
清华大学计算机系 孙延奎 2009
JPEG2000简介JPEG2000简介
JEPG2000是关于静态图像压缩的最新国际标准 JPEG2000编码器在很大程JEPG2000是关于静态图像压缩的最新国际标准. JPEG2000编码器在很大程度上借用了EBCOT的编码思想。
JPEG2000压缩码流的特性:
1. 压缩一次: 多种解压缩方式
如右图所示如右图所示。
2. 压缩域图像处理/编辑
1) 提取图像的相关被压缩字节可被抽取并重新组1) 提取图像的相关被压缩字节可被抽取并重新组合到一兼容的码流,而 不需要解压缩。
2)在(部分)压缩域支持一些几何操作。
清华大学计算机系 孙延奎 2009
3. 渐进性支持四维渐进性传输: 质量、分辨率、空间位置和分量质量渐进传输: 0.05位/样本: 可辨认一幅图象;
0.25位/样本: 大量压缩效应失真;0.75~1.0位/样本:无视觉失真………………….
分辨率渐进传输:接收到的前几个字节用于重新显示一个图象的缩略图 当接收到更多字节时 图象的分辨率或尺寸会以每边乘以 倍的略图。当接收到更多字节时,图象的分辨率或尺寸会以每边乘以2倍的速度增加。最后可获得整幅图象。
空间位置渐进传输:利用这种渐进特性,图象序列能够以近似光栅空间位置渐进传输:利用这种渐进特性,图象序列能够以近似光栅形式被接收,从上至下。适用于打印机等低内存应用。
分量渐进传输:适用于多分量图象。利用这种渐进特性,图象的灰度级部分可能首先被解码 后面跟随颜色信息等度级部分可能首先被解码,后面跟随颜色信息等。
重要的是,这几种渐进性可在单个码流中“混合与匹配”。
注意 我们总能利用不同的渐进性顺序对一个现有的码流进行解析注意,我们总能利用不同的渐进性顺序对 个现有的码流进行解析并重写,而不需要实际去解压缩该图象。
清华大学计算机系 孙延奎 2009
4. 低位深度图象二进制图象、包含有限数目颜色的图象及连续色调图象都能够用
JPEG2000压缩JPEG2000压缩。
5. 感兴趣区域编码是在编码时对感兴趣区域进行优先处理 另 种是利用编码块的独一是在编码时对感兴趣区域进行优先处理;另一种是利用编码块的独
立性,在解码时对感兴趣的空间区域进行随机访问与处理。
此外, JPEG2000具有压缩效率高,图像还原质量好,尤其在低码率条件下。
256x256”Lenna”图象,用基线JEPG(左)和JEPG2000 (右)
压缩到0.25bps
清华大学计算机系 孙延奎 2009
JPEG2000简介JPEG2000编码器的编码过程:
源图像数据预处理
离散小波变换
量化
自适应算术编码
码流组织化 算术编码 组织
JPEG2000的两种验证模型:的两种验 模型
1. C语言实现 软件下载网址参见教材参考文献[22]
2. Java实现
参考文献:
JEG2000 Image Compression Fundamentals Standards and PracticeJEG2000 Image Compression Fundamentals,Standards and Practice
David S. Taubman,Michael W. Marcellin
清华大学计算机系 孙延奎 2009
小波图象压缩技术的发展
1. JPEG2000的深入研究
2. 小波视频压缩及其应用技术的研究
3. 小波几何压缩
4. 小波与分形的混合压缩技术
5. 小波多描述编码技术
清华大学计算机系 孙延奎 2009