Skip to main content

第五章-数字压缩技术

一、数据压缩基础

1.1 多媒体数据冗余

🌳 音频和电视图像所占空间

音频数据:数字激光唱盘(CD-DA)的标准采样频率为44.1 kHz,量化位 数为16 位,立体声。分钟 CD-DA 音乐所需的存储量为
16×44.1K×2(声道)×60s÷8bit= 10584 KB
数字电视图像
标准的VCD图象视频图象(352x240)NTSC制。每秒30帧,其数据量为:
352x240x3x30Byte=7.603MB 8GU盘可存8000/7.603/60=17分钟视频

因此,无论存储介质多大,在不断存储中始终会超出存储界限,所以必须使用到压缩.

数据冗余的通俗解释
image.png
数据冗余的分类 | 解释 :--:|:--: 知识冗余 | 视频或者图像中有着不需要传达就知道的常识。 空间冗余 | 同一帧的相同像素有着很强的相关性 结构冗余 | 视频或者图像的纹理区存在明显的分布式,如果知道了分布式那么就可以生成图像. 时间冗余 | 图像序列中相连的帧对应的像素有很强的相关性 视觉冗余 | 对人不敏感的编码可以压缩数据量 信息熵冗余 | 是指编码冗余

🌳 视觉冗余

人的视觉对某些信号(如颜色)具有不那 么敏感的生理特性,例如视觉惰性(对亮度和 色度,蓝色和红绿色,25帧视频采样等)的遮 蔽效应。
image.png

1.2 数据压缩

如果压缩前表示某信息所需要的总位数为n1 ,压缩后所需要的总位数为n2
压缩率(压缩比):Cr = n1 / n2
其中,n1是压缩前的数据量,n2是压缩后的数据量:
相对数据冗余: Rd = (1 – 1/Cr )×100%

1.3 数据压缩的分类

image.png

无损压缩是指数据在压缩或解压缩过程中不会改变或损失原有的信息,解压缩产生的数据是原始对象的完整复制,没有失真。
image.png
有损压缩是利用了人类视觉对图像中的某些频率成分不敏感的特性,允许压缩过程中损失一定的信息image.png 采用接近的像素,变成了25个34,因此不再准确了.

🌳 按照数据压缩编码的原理和方法划分

1.统计编码(熵编码).针对无记忆信源,根据信息码字出现的概率的分布特征进行压缩编码,寻找概率与长度间的最优匹配.
2.预测编码是利用空间中相邻数据的相关性来压缩数据.
3.变换编码是把时域信号转换为频域信号.
4.分析-合成编码是指通过对源数据的分析,将其分解成一些列的基元或从中提取出若干更为有本质意义的参数.

1.4 信息论和熵和信息量

信息论是数据压缩技术的基础.
是信息论中的一个重要概念.它是信息量的度量方法,它表示,某件事出现的消息越多,事件发生的可能性越小.
信息量信源中某件事件的含量.

若pi为第i个事件的概率为0≤ pi≤1,则该事件的信息量为
image.png

一个信源包括的所有数据叫做数据量,而数据中包含冗余信息:
::: center 信息量 = 数据量 - 冗余信息 :::

信息熵

指信源X发出的xj(j=1,2,…,n)共n个事件的信息量的统计平均:
image.png
H(x)被称为信源x的熵,也就是信源x发出任意一个随机变量的平均信息量.其中,等概率事件的熵最大,假设有n个事件,此时的熵为:
image.png

平均码字长度

Bk为第K个码字的长度(二进制代码的长度),其相应出现的概率为Pk,则码字平均长度R:

SUM(Bk*Pk)

平均码长与信息熵之间的关系为:

R≥H 有冗余,不是最佳。
R< H不可能。
R = H(X)最佳编码
熵值H为平均码长R的下限。

编码效率

Y=H/R*100%
其中H为信息的熵,R为平均码字长度.

二、图像数据压缩编码

变长编码定理

核心要义:对出现概率大的信息符号赋予短码字,对于出现概率小的信息符号赋予长码字.这个理论是哈夫曼编码的理论基础.

哈夫曼编码(Huffman) 💎

在原数据中出现的概率大的信号分配较短的码字,对于出现概率小的信号分配较长的码字.
由于哈夫曼编码所得到的平均码字长度最接近信源的熵,因此哈夫曼编码又称熵编码.

熵编码(Huffman)的实现步骤
  1. 按照符号出现的顺序由大到小排列.
  2. 将两个最小的概率相加,形成新的概率集合,再重复此步骤进行排序,直到只有两个概率为止.
  3. 分配码字,将码字从最后一步进行反向进行.

举例说明
image.png
原占用:(4+3+2+1+5+7)*8=176 bits
将序列进行排序获得哈夫曼编码树:

1 2 3 4 5 7
3 3 4 5 7
4 5 6 7
6 7 9
9 13
22

得到下面的哈夫曼树:
image.png
编码效率为:
H(熵)=SUM"0->n"(-P(i)×log2(P(i)))
R为平均码字长度:(4p1+4p2+3p3+2p4+2p5+2p6)
Y=H/R*100%=99.2%

image.png

练习

已知输入图象的灰度级为a,b,…,h,各灰度级出现的概率分别为0.20,0.19,0.18,0.17.0.15,0.10,0.005,0.005,要求对该图象用Huffman编码方法进行编码,写出各灰度级对应的码字,并求出平均码字长度和编码效率。

Details
答案 先对每个值×1000: >200 190 180 170 150 100 5 5

再进行排序

5 5 100 150 170 180 190 200
10 100 150 170 180 190 200
110 150 170 180 190 200
170 180 190 200 260
190 200 260 350
260 350 390
390 610
1000

画出哈夫曼树:
5b6072cc6ca5c8535e1c8a43722b91f.jpg
a的编码:10
b的编码:11
c的编码:000
d的编码:001
e的编码:010
f的编码:0110
g的编码:01111
h的编码:01110
平均码字长度为:R=5p1+5p2+4p3+3p4+3p5+3p6+2p7+2p8 信息熵为:
H=-0.20×log2(0.20)-0.19×log2(0.19)-0.18×log2(0.18)-0.17×log2(0.17)-0.15×log2(0.15)-0.10×log2(0.10)-2×0.005×log2(0.005)
编码效率:Y=H/R*100%

:::tip 哈夫曼编码的适用范畴 Huffman编码对不同的信源其编码效率不同,*适合于对概率分布不均匀的信源编码*。

:::


游程编码

游程编码也是一种熵编码,通常应用于图像压缩中。 通过改变图像的描述方式来实现压缩,即将一行灰度值相同的相邻像素用一个计数值和该灰度值来代替.
核心思想:用游程的灰度和行程的长度代替游程本身.
image.png


二维游程编码

二维排列的像素,采用某种方式转化成一维排列的方式(游程扫描)后按照一维行程编码方式进行编码。 示例:
image.png

二维游程编码的适用情况

对于大面积色块,效果好(可以用一个像素值来代替),但对于纷杂的图像,压缩效果并不好.

游程编码的应用举例:
3000w是最大的连续白色值. image.png
既然已经可以预知白色多黑色少,所以可对白色和黑色的计数值采用不同的位数
以这个例子,可以定义:白色:12 bit,黑色:4 bit
编码为: 500w,3b,570w,12b,4w,3b,3000w
编码位数为: 12,4,12, 4,12,4,12
所需字节数为:4×12+3×4=60bit

练习

image.png

预测编码(DPCM压缩技术)

差分脉冲编码调制(DPCM),利用信号的相关性找出可以反映信号变化特征的一个差值量进行编码,如果当前像素的灰度颜色的信号数值上与相邻像素比较接近,那么当前像素的灰度或者颜色信号的数值可以由前面已出现的像素值进行预测,得到一个预测值,将实际值与预测值求差,对这个差值信号进行编码和传送.😵😵😵

DPCM的编码思想

认为相邻像素的信息有冗余。当前像素值可以用以前的像素值来获得。
👀👀👀👀👀
用当前的像素值fn,通过预测器预测得一个预测值Yn,然后fn与Yn求差作为压缩数据流中的下一个元素,由于差比原数据要小.所以就得到了压缩的效果.大多情况下,fn的预测是通过前m个以前的像素线性组合而成

round为取最近整数,αi为预测系数。
注意:前m个像素不能用此法编码。

预测编码的编码步骤
  1. 对每一个像素灰度值f(x,y),由前面的值通过预测器求出预测值Y(x,y).
  2. 求出预测误差: e(x,y) = f(x,y) - Y(x,y)
  3. 对误差进行编码,作为压缩值.
  4. 重复上述步骤.

举例:
F = {154,159,151,149,139,121,112,109,129}
m = 2,α= 1/2(使用f1和f2来最开始预测)
yn=α(fn-1+fn-2),e=fn-yn
预测值

y2 = 1/2 ×(154 + 159) ≈ 156 ,e2 = 151 - 156 = -5
y3 = 1/2× (159 + 151) = 155 ,e3 = 149 – 155 = -6
y4 = 1/2 ×(151 + 149) = 150 ,e4 = 139 – 150 = -11
y5 = 1/2× (149 + 139) = 144 ,e5 = 121 – 144 = -23
y6 = 1/2 ×(139 + 121) = 130 ,e6 = 112 – 130 = -18
y7 = 1/2× (121 + 112) ≈ 116 ,e6 = 109 – 116 = -7
y8 = 1/2 × (112 + 109) ≈ 110 ,e6 = 129 – 110 = 19

差分预测压缩法小结
差分脉冲编码调制DPCM压缩技术实现比较简单,但压缩能力不高,抗干扰能力差,且对传输中的误差有积累现象.


变换编码

傅里叶分析是将原始信号分解成不同频率成分的正弦波,将时域信号转变为频域信号的一种数学方法。 离散傅里叶变换(Discrete Fourier Transform,DFT):将时域上的波形分解成正弦波的过程;
其逆变换表示为IDFT(Inverse Discrete Fourier Transform,IDFT):将频域上的波形叠加,映射到时域上。

离散傅里叶变换

傅立叶变换是一种可逆变换,即它允许原始信号和变换过的信号之间互相转换。
在任意时刻只有一种信息是可用的,也就是说,在傅立叶变换后的频域中不包含时间信 息,逆变换后的时域中不包含时间信息。
image.png

小波变换

多分辨率分析:我们在分析信号的低频部分的时候,只需要较高的频率分辨率 和较低的时间分辨率就能够很好的体现低频的信息;对于高频部分,就需要较 高的时间分辨率和较低的频率分辨率就能够很好的体现高频的信息。
拿图像信号举例,图像的低频部分显示的是图像的基本信息,而高频部分更多的是细节信息
小波变换主要应用于图像编码,其基本思想是,把图像进行多分辨率分析,分解成不同空间、不同频率的子图像,再对子图像进行系数编码
小波是指一个有限周期内平均值为零的波形.
image.png

DCT变换编码

image.png
DCT变换是图象压缩标准中常用的变换方法,如JPEG标准中将图象按照8x8分块,然后利用DCT变换编码实现图象的压缩。
image.png image.png

DCT变换编码解析

图像变换编码是指将以空间域中像素形式描述的图像转换至变换域以变换系数的形式加以表示
大部分图像是平坦区域和内容变换缓慢的区域,即大部分是直流和低频,高频比较少,所以适当的变换可以使图像能量在空间域的分散分布转换为在变换域的相对集中分布,以达到去除冗余的目的.


大部分图像是平坦区域和内容变换缓慢的区域,即大部分是直流和低频,高频比较少,所以适当的变换可以使图像能量在空间域的分散分布转换为在变换域的相对集中分布,以达到去除冗余的目的.


混合编码

image.png
image.png

Details
练习题

三、动态图像压缩技术和标准

视频和图像编码标准

数字音频解码标准
MP3 MP4
数字图像压缩标准
JPEG 数字视频编码解码标准
MPEG系列 H.26x系列 AVS

国际标准化组织

image.png

JPEG算法压缩标准

JPEG包含两种基本的压缩算法:无损压缩算法(基于差分脉冲调制DPCM)和有损压缩算法(基于离散余弦变换DCT变换)。 image.png
(1)使用正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)把信息从空间域变换成频率域的数据,并利用数据的频率特性进行处理;
(2)使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的;
(3)使用霍夫曼可变字长熵编码器对量化系数进行编码。

视频编码技术

视频压缩主要是通过去除视频中的空间冗余、时间冗余和编码冗余实现.
视频编码器中包括很多编码算法,这些算法在编码器中被有效组合在一起,使整个编码器具有较高的压缩效率。
目前主流的视频编码器采用的技术主要有:预测、变换、量化、熵编码和环路滤波
image.png

帧内压缩和帧间压缩

帧内压缩:采用图像压缩技术,对每帧图像进行独立编码.编码过程不依赖于前后帧.
帧间压缩:利用数据的时域冗余,常用方法有运动补偿交换编码.

主流的编码方法是将图像划分为块,每一个块作为编码的单元.按照从上到下,从左到右的顺序进行划分处理. image.png

常见视频压缩标准

标准名称比特率
MPEG-1面向数字存储的运动图像及其伴音编码≤1.5Mbit/s
MPEG-2运动图像及其伴音信息的通用编码1.5-100Mbit/s
MPEG-4音视频对象的通用编码8Kbit/s-35Mbit/s
H.261P×64Kbit/s音视频业务编解码P×64Kbit/s(P:1-30)
H.263低比特率通信视频编码8Kbit/s-1.5Mbit/s
H.264先进视频编码8Kbit/s-100Mbit/s

码流结构

image.png

MPEG-1

MPEG-1标准 1992年公布,是MEPG工作组开发的第一个视频压缩标准

  1. 主要应用于数字媒体动态图像的存储和检索,如VCD
  2. 相关技术:采用了双向预测的B帧;自适应量化;逐行视频编码
  3. 编码码流分层结构:序列层-图像组层-图像层-条带层-宏块层-块层
  4. 首次定义了I、P、B三种图像类型的编码结构
MPEG-2

它是一个直接与数字电视广播有关的高质量图像和声音编码标准。 MPEG2所能提供的传输率在3~10Mbit/s之间,在NTSC制式下的 分辨率可达720×486,可提供广播级的图像质量和CD级的音质。 MPEG-2主要针对高清晰度电视(HDTV)所需要的视频及伴音信号, 与MPEG-1兼容。

四、H.26x压缩标准

image.png