Professional Documents
Culture Documents
03 数据压缩技术
03 数据压缩技术
多媒体应用普及的难题:海量数据的存储、处理和传输。
解决途径:
① 大容量的光盘存储技术(如: CD-ROM )
② 高速 CPU / Cache / DSP — 芯片集成
③ 宽带网络通信技术
④ 数据压缩技术(软件算法,专用芯片)
3.1 数据压缩的基本原理
压缩目的:① 减少存储量,以节省存储开销
② 降低实时传输量,以提高数据传输效率
Page: 1
3.1.1 数据压缩的必要性与可能性
1. 数据压缩的必要性
①音频数据量:根据采样定理数字电话的速率:
Adata = 4KHz×2 × 8bit / s = 64Kbit / s
Page: 2
2. 数据压缩的可能性
各种媒体数据内部存在冗余 ( 相关性 ) 。所以可采用不同编码与
解码算法以减弱冗余,达到压缩目的。
数据冗余类型:是有效采用各种压缩算法的基本依据。
⑴ 空间冗余
相邻区域图像灰度或颜色等特性基本相同。
例:像素点 P(x,y) 具有邻域强相关性 — 空间冗余
Page: 3
(2) 时间冗余
① 人眼视觉暂留特性
例: F1 和 F2 之间时域相关 — 具有时间冗余
F2
② 相邻帧间或相邻音域间是渐变的或局部相同的;
Page: 4
3. 压缩的指标
⑴ 压缩比
输出数据与输入数据之比。
(2) 压缩质量 : 压缩后在多大程度上接近压缩前
压缩分为有损压缩和无损压缩;
有损压缩采用主观 ( 感受 ) 和客观方式(信噪比等)。
(3) 压缩和解压缩速度
与压缩和解压缩算法密切相关
(4) 压缩和解压缩标准化
Page: 5
3.1.2 压缩模型的构成原理
1. 压缩的基本思想
针对数据冗余类型采用合适的压缩方法;
建立以少代多或以局部代全体的数据变换关系;从而以最少的
数码表示信号。
⑴ 空间压缩:把相同视觉区当作一个整体进行表示。
⑵ 时间压缩:把连续帧间的相同部分
或渐变过程中的相似部分当作一个整体,
用极少的数据量表示。
Page: 6
2. 压缩过程的框架构成 ( 简 )
⑴ 编码过程:原始数据符号化;体现压缩算法及正变换
(有内容信息→无内容的信号序列)
① 信源编码器:完成大部分压缩任务;
② 信道编码器:侧重解决传输可靠性的问题
· 把压缩的位流转译成既适应存储又适合传输的信号
· 降低信号调制/解调过程中的误码率
⑵ 解码过程:码元恢复与信号合成;体现解压算法及逆变换
(无内容的编码数据→有内容的还原数据)
⑶ 对称/非对称:压/解实时;压缩非实时,解压实时
Page: 7
3.2 数据压缩编码方法分类
压缩类型 编码技术
行程编码
无损压缩 统计编码 霍夫曼
算术编码
快速傅里叶变换 (FFT)
变换编码 离散余弦变换 (DCT)
有损压缩 离散小波变换 (DWT)
重要性 子带编码
JPEG JPEG2000
MPEG-1 MPEG-2 MPEG-4 H.261-264
Page: 8
3.3 常用压缩编码方法
熵编码技术:利用数据的熵冗余 ( 统计冗余 ) 压缩。
熵编码的基本思想:
根据信源符号出现的概率分布特性,
用短码字表示出现概率大的信息,
用长码字表示出现概率小的信息;
从而减少符号序列中的冗余度,
提高符号的平均信息量,达到数据压缩的目的。
— 可变字长的统计编码方法
数据压缩标准中常用的熵编码方法:
· Huffman 编码
· 算术编码
· 行程编码
Page: 9
2. Huffman 编码方法
哈夫曼编码:无失真编码的优选算法;
已用于 JPEG 标准的基本系统
⑴ 算法流程
统计信源符号出现的频率,以建立 Huffman 码表。
① 把信源符号按概率递减排列,以建立二叉树
② 沿 H 树的路径赋予二进制值,以生成符号编码
③ 计算平均码长,以验证方案的合理性
⑵ 算法实现实例
例:设有一组待编码符号 {Xi|i=1,2,…8}, 其出现频度为
Page: 11
讨论:
① 求出信源符号集 { Xi } 中符号概率 P(Xi) 以建立 Huffman 码
表。 8
P( X i ) X i P( X )
i 1
i
11
00
101
100
011
0100
01011
01010
Page: 12
② 根据 P(Xi) 计算值,
按概率递减序把符号集 { Xi } 排列成一棵二叉树
a. 设置各符号 Xi 的叶节点位置;
自底向上计算两个最小概率项之和,
作为新的复合项,且以中间节点表示
其中,底层叶节点的概率值为左大右小
b. 沿二叉树逐次计算两个最小概率项之和,
并逐次归并成一个复合项,
以作为中间节点;直至最后一项到达顶层的根节点
c. 可以验证:根节点的概率值必为 1 ;即
ΣP(Xi)=1
Page: 13
信源符号 : X1 X2 X3 X4 X5 X6 X7 X8
概率 : 0.30 0.20 0.16 0.12 0.12 0.04 0.04 0.02
X1 X3 X4 X5 X6 X7 X8 X2 X1= 11
0.30 0.16 0.12 0.12 0.04 0.04 0.02 0.20 X2 =00
1 0
X3 =101
0 1 0.06
1 0 X4 =100
1 0 0.10
1 0 0.28 1 0.22 0 X5=011
1 0.58 0 0.42 X6 =0100
1.00 X7=01011
X8=01010
Page: 14
③ 生成码字
a. 从根节点开始遍历树,按从左到右顺序
依次给每个节点的路径赋予二进制代码( 1 , 0 )值
b. 取出从根节点到每个叶节点的路径上的代码组合,
得到该叶节点的码字;这就是信源符号 Xi 的编码结果
Page: 15
编码方案的效率如何评判?
信息量:某信息消除不确定性的度量。设信源 X 的符号集为
Xi ( i=1,2,…N ), Xi 出现的概率为 P(Xi) ;则 Xi 的信息量为:
S ( X i ) log 2 P ( X i )
信息熵:信源数据所携带的平均信息量。故信源
n X 的熵定义为:
S ( X ) P ( X i ) log 2 P ( X i )
i 1
若信源 X 的熵为 2bit ,意味着为 X 编码需要的平均码长为 2 。
这就是熵编码原理的数学依据:信源符号集的平均码长→ S(X) 。
按熵值定义信源符号集的最小平均码长,设计编码方案。
Page: 16
④ 计算信源符号集 {Xi} 的平均码长,并与 {Xi} 的最小码长比较
平均码长 :
n
La li P ( X i ) 2 0.30 2 0.20 3 0.16 3 0.12
i 1
最小平均码长:
n
S ( X ) P ( X i ) log 2 P ( X i ) 2.63
i 1
Page: 17
⑶ Huffman 算法小结
① 适用场合:可用于非均匀概率分布的信源编码
只要码表以大量统计数据为基础,就能获得好的压缩效果。
注意:均匀概率的信源,编码会产生定长码 — 失效。
② Huffman 树及编码不唯一,与信源初始条件和左右节点
赋值 {(0,1),(1,0)} 有关;
但平均码长应相等,故压缩效率相同。
Page: 18
3. 行程编码方法
行程:具有相同灰度值的连续符号的长度;
实例:把一幅二维图像划分成许多 8×8 子块时,每个子块含有 64 个像
素的灰度值如下;水平扫描后的行程为:
扫描方式:行程越长压缩率越高。
应选择行程长的扫描方向:
水平,垂直,之字形 (Zig-Zag) 。
Page: 20
4. 算术编码方法
在 JPEG 扩展系统中取代 Huffman 编码。优点:
① 用在数据概率分布较均匀的场合;与 Huffman 编码形成互补;
② 压缩效率高出 Huffman 编码约 5% 。
⑴ 算术编码的基本原理
基本思想:基于递归概率区间划分的二进制编码。具体过程:
① 把信源符号序列 {Xi|i=1,2,…,n} 发生的概率
② 按符号概率大小来分配符号间隔,
使 [0 , 1] 随迭代计算次数的增加而逐次变窄;
③ 最后范围便是替代 {Xi} 符号串编码的取值范围。
Page: 21
算术编码图解
信源符号,概率和初始编码区间
符号 (X0) (X1) (X2) (X3)
概率 0.1 0.4 0.2 0.3
初始编码区间 [0, 0.1) [0.1, 0.5) [0.5, 0.7) [0.7, 1]
要发送符号序列:
X2 X0 X3 X0 X2 X3 X1
Page: 22
算术编码图解
信源符号,概率和初始编码区间
符号 (X0) (X1) (X2) (X3)
概率 0.1 0.4 0.2 0.3
初始编码区间 [0, 0.1) [0.1, 0.5) [0.5, 0.7) [0.7, 1]
X2 X0 X3 X0 X2 X3 X1
从区间中选择一个数作为这串码元的代表,如 0.51439 。
Page: 23
算术编码的解码
信源符号,概率和初始编码区间
Page: 25
算术编码实例
(1) 在第 1 个字符 e 被编码时 ,e 的 rangelow = 0.2 , rangehigh = 0.5
low = 0+1 × 0.2 = 0.2
high=0+1 × 0.5=0.5
range=high-low=0.5-0.2=0.3
此时分配给 e 的范围为 [0.2,0.5] 。
Page: 28
(1)DPCM 的框架原理:
① 对预测误差进行编码前,需选取合适的量化器与预测器
② 将采样获得的样本值序列 Xn 送入量化器进行量化处理
③ 量化数据送预测器并产生一个预测值 ,加到差分比较点
④ 在输入与反馈比较点,实际样本值与预测值进行差值比较,
从而获得误差值 en ,即
⑤ 对预测误差 e 进行量化处理后,送编码器进行编码处理
Page: 29
⑵ DPCM 预测编码算法
算法设计:根据原理框图来设计预测器的预测模型
设: tn 时刻的采样信号即样本值为 Xn ,
预测值为 ;则 的预测方程为:
则 en 的预测误差为:
Page: 30
• 子带编码 (SB-ADPCM 可视电话
G.722 64Kb/s , 7KHz 声音信号 , MPEG
系列 )
• 线性预测编码 (MPEG-4)
p
x p (n) ai x(n 1)
i 1
p
e(n) x(n) x p (n) ai x(n 1)
i 0
Page: 31
Page: 32