图像处理复习
CH6 图像编码
6.1 编码与冗余
图像编码,就是对图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码来表示尽可能多的数据的目的
编码实现了压缩,所以又称之为压缩编码
图像能够压缩是因为为压缩图像中存在信息的冗余,一般将冗余分成三类:
- 编码冗余:自然编码将所有灰度值等长编码,出现频率高的灰度值全局相对码字长度较大
- 像素相关性冗余:帧内像素信息冗余、帧间像素信息冗余
- 视觉冗余:人眼对不同视觉信息有不同敏感度,并且人眼分辨率有限
6.2 信息熵和编码性能参数
(1)熵
设图像灰度集集合 d=d1,d2,...,dm , dk 出现频率为 p(dk) ,那么有该图像的熵为:
(2)无失真编码定理
无失真编码定理:在无干扰条件下,存在一种无失真的编码方法,使编码的平均码长与信源的熵 H(d) 无限接近
推论:
- 若当前编码平均码长大于 H(d) 则一定可以设计出平均码长更短的无失真编码方法
- 平均码长小于 H(d) 的无失真编码不存在
(3)编码性能参数
- 平均码长: L=∑mi=1p(di)l(di) ,其中 l(di) 是灰度级为 di 的码长,单位是比特每像素
- 编码效率: η=H(d)L
- 冗余度: Rd=1−η
- 压缩比: C=nnd
6.3 简单编码
(1)Huffman编码
每次选两个概率最小的节点构造一个新节点(新节点概率为两节点概率之和),直到构造出一棵二叉树(根节点概率为1),然后左0右1标记树枝,最后从根节点到叶节点路径上的标号串连起来既是该节点的Huffman编码
Huffman编码是最优编码,编码效率很高,但是计算量较大,并且有一个致命问题:
- 当各灰度概率接近时编码(都比较小)长度会较长,可能会超过自然编码长度,导致不压缩反而数据量增大
解决:分子块独立Huffman编码
(2)其他亚最优编码
以下编码均是变长的亚最优编码
- B2 编码:两位信息位编码,一位标志位,按概率从大到小依次安排较短编码
- 二元平移码:3位信息位作为一段,按概率从大到小依次安排段数较小的码,并且保证只有最后一段不是111(其余均是)
- 截断Huffman编码:只对最可能出现的M个符号进行哈夫曼编码,而对其它的码都用在1个合适的定长码前加1个前缀码来表示
- Huffman平移码:分块,所有块内后缀和第一块的huffman编码相同,各块再增加前缀区分
截断Huffman编码具体步骤是:
- 重新排列信源符号使它们的概率单减
- 选取一个合适的M
- 将后N-M个节点概率合并看成一个节点A
- 对M+1个节点进行huffman编码
- 前M个节点编码就是分配的huffman码
- 后N-M个节点前缀为节点A的huffman码,并分配最小长度的定长码作为后缀
平移Huffman编码的具体步骤是:
- 重新排列信源符号使它们的概率单减
- 将符号总数分成相同大小的符号块
- 对第一块中节点和剩余节点的合并节点A进行huffman编码
- 第一块节点编码就是分配的huffman码
- 剩余每块的后缀按同样位序取第一块中分配的huffman码
- A的huffman码作为前缀,循环串连作为后面块的前缀:如A的huffman码是00,那么第二块前缀取00,第三块前缀取0000
注,ppt中表述的太含蓄没看懂,是参考这个链接弄懂的:http://netclass.csu.edu.cn/NCourse/hep042/005/li6.html
(3)编码举例
说明:
- 二元码即自然码
- 二元平移码的构造方法之前说的不是很详细,可以参考Huffman平移码理解平移的概念
- Huffman和 B2 比较易懂
- 截断huffman码取M=12,把后N-M=9个节点看成一个节点做Huffman编码
- 二元平移码和Huffman平移码均取块大小为7,那么就按照前7个节点和合并的节点的编码确定各块的前缀和后缀
6.4 变换编码
图像数据经过正交变换后绝大部分信息集中在少数变换系数上,通过对这些系数的量化实现图像压缩,最常用的正交变换是DCT
正交变换图像编码的一般步骤为:
- 压缩:输入 → 构造子图像 → 正交变换 → 量化 → 编码
- 解压:解码 → 反正交变换 → 合并子图像 → 输出
(1)DCT变换编码
DCT图像编码的一般步骤为:
- 压缩:输入 → 构造子图像 → DCT变换 → 除以量化矩阵 → 取整 → 编码
- 解压:解码 → 乘以量化矩阵 → DCT逆变换 → 取整 → 合并子图像 → 输出
核心思路是对DCT变换后的图像(集中)再进行编码,如Huffman编码此时效率更高
CH7 彩色图像处理
7.1 彩色模型
(1)RGB
光的三基色为R、G、B,那么所有颜色可表示为C=rR+gG+bB,三元组(1,b,c)就是RGB颜色模型中颜色表示
(2)HIS
字母的含义为:
- H:亮度
- I:色度/色相,0度为红色、120度为绿色、240度为蓝色
- S:饱和度,色环中用原点到彩色点的半径表示饱和度(越靠近中心饱和度越低)
RGB到HIS转换:
(3)YUV
Y是亮度,U和V是色差:
(4)YCbCr
Y是亮度,Cb和Cr是色差: