数字图像处理---图像编码与压缩
图像编码与压缩
概述
数据压缩的研究内容包括数据的表示、传输、变换和编码方法,目的是减少存储数据所需的空间和传输所用时间
图像编码与压缩就是对图像数据按一定的规则进行变换和组合,达到以尽可能少的代码(符号)来表示尽可能多的图像信息
冗余数据
冗余数据有:编码冗余、像素间冗余、心理视觉冗余
- 编码冗余:图像的灰度级编码,使用了多余实际需要的编码符号
- 像素冗余:图像中的多个单个像素对视觉贡献的冗余
- 视觉心理冗余:人眼不能感知或不敏感的那部分图像信息
传输流程
源数据编码:对原数据的压缩
通道编码:增加冗余位,抗干扰
通道:传输信道
通道解码:反通道编码
分类
-
根据解压重建后的图像和原始图像之间是否存在误差
分为无误差编码(无失真、无损、信息保持)和有误差编码(有失真或有损)
-
根据编码作用域划分
分为空间域编码和变换域编码
图像保真度准则
描述解码图像相对原始图像偏离程度的测度一般称为保真度
客观保真度准则
最常用的客观保真度准则是原图像和解码图像之间的均方根误差和均方信噪比
主观保真度准则
通过观察者评分确定图像质量,即主观保真度标准
图像冗余度和编码效率
根据Shannon无干扰信息保持编码定理,无损编码压缩后的平均码长存在一个下限,即图像信息熵H,理论最佳信息保持编码的平均码长无限接近图像信息熵H
\[H = - \sum _{i=0}^{L-1} p_i log_2 p_i
\]
平均码长
\[\overline{B} = \sum _{L-1}^{i=0} \beta_i p_i
\]
\[\beta_i = 灰度值为i的编码长度
\]
冗余度
\[r = \frac{\overline{B}}{H} -1
\]
编码效率
\[\eta = \frac{H}{\overline{B}}=\frac{1}{1+r}
\]
统计编码方法
Huffman编码(霍夫曼编码)
Huffman编码是根据信源数据符号的发生概率所进行的编码
-
核心思想:信源数据中出现概率越大的符号(灰度值),编码后相应的码长越短,以尽可能少的码符表示数据
-
方法:
- 把输入符号按出现的概率从大到小排序,把概率最小的两个符号的概率求和,移除序列
- 将求和结果插入序列,再次从大到小排序
- 重复上述过程直至序列中仅剩两个数
- 反算结果,概率大的赋0,小的赋1
Fano-Shannon编码(费诺仙侬编码)
-
方法
- 把输入符号按出现的概率从大到小排序,并分为两组\(x_1 \sim x_k\)和\(x_k+1 \sim x_n\),使
\[\sum _{i=1}^{k} p(x_i) \approx \sum _{i=k+1}^{n} p(x_i) \]- 将两个子集概率大的赋0,小的赋1
- 对两个子集重复步骤1、2
- 重复步骤3,直至子集字符个数为1时,得到最终结果
-
特点
- Fano-Shannon编码是唯一可译码,短码不会成为长码的起始部分
- Fano-Shannon编码的平均码长接近于熵,编码效率略低于Huffman编码
算术编码
算术编码中,信源符号与码字之间不存在一一对应的关系,一个码字赋给整个消息队列
码字定义为一个介于0与1之间的实数,区间中任何一个实数就代表一个编码的消息队列
当消息中的符号数目增加后,用于描述消息的间隔减小,表示间隔所需要的消息单元增多
-
方法
- 计算每个信源符号的概率及其区间
- 通过消息队列计算算术编码区间
行程编码(RLE编码)
行程编码是一种最简单的,在某些场合非常有效的无损压缩编码方法
-
基本原理
- 通过改变图像的描述方式,来实现图像的压缩
- 将一行中灰度值相同的相邻像素,用一个计数值和该灰度值来代替
-
实现方法
- 二维行程编码
- 核心问题:将二维排列的像素通过某种方式转化为一维排列的方式。