天天看点

图像处理复习3———图像编码和颜色模型图像处理复习

图像处理复习

CH6 图像编码

6.1 编码与冗余

图像编码,就是对图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码来表示尽可能多的数据的目的

编码实现了压缩,所以又称之为压缩编码

图像能够压缩是因为为压缩图像中存在信息的冗余,一般将冗余分成三类:

  • 编码冗余:自然编码将所有灰度值等长编码,出现频率高的灰度值全局相对码字长度较大
  • 像素相关性冗余:帧内像素信息冗余、帧间像素信息冗余
  • 视觉冗余:人眼对不同视觉信息有不同敏感度,并且人眼分辨率有限

6.2 信息熵和编码性能参数

(1)熵

设图像灰度集集合 d=d1,d2,...,dm , dk 出现频率为 p(dk) ,那么有该图像的熵为:

H(d)=−∑i=1mp(di)log2p(di)

(2)无失真编码定理

无失真编码定理:在无干扰条件下,存在一种无失真的编码方法,使编码的平均码长与信源的熵 H(d) 无限接近

推论:

  1. 若当前编码平均码长大于 H(d) 则一定可以设计出平均码长更短的无失真编码方法
  2. 平均码长小于 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)其他亚最优编码

以下编码均是变长的亚最优编码

  1. B2 编码:两位信息位编码,一位标志位,按概率从大到小依次安排较短编码
  2. 二元平移码:3位信息位作为一段,按概率从大到小依次安排段数较小的码,并且保证只有最后一段不是111(其余均是)
  3. 截断Huffman编码:只对最可能出现的M个符号进行哈夫曼编码,而对其它的码都用在1个合适的定长码前加1个前缀码来表示
  4. Huffman平移码:分块,所有块内后缀和第一块的huffman编码相同,各块再增加前缀区分

截断Huffman编码具体步骤是:

  1. 重新排列信源符号使它们的概率单减
  2. 选取一个合适的M
  3. 将后N-M个节点概率合并看成一个节点A
  4. 对M+1个节点进行huffman编码
  5. 前M个节点编码就是分配的huffman码
  6. 后N-M个节点前缀为节点A的huffman码,并分配最小长度的定长码作为后缀

平移Huffman编码的具体步骤是:

  1. 重新排列信源符号使它们的概率单减
  2. 将符号总数分成相同大小的符号块
  3. 对第一块中节点和剩余节点的合并节点A进行huffman编码
  4. 第一块节点编码就是分配的huffman码
  5. 剩余每块的后缀按同样位序取第一块中分配的huffman码
  6. A的huffman码作为前缀,循环串连作为后面块的前缀:如A的huffman码是00,那么第二块前缀取00,第三块前缀取0000

注,ppt中表述的太含蓄没看懂,是参考这个链接弄懂的:http://netclass.csu.edu.cn/NCourse/hep042/005/li6.html

(3)编码举例

图像处理复习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转换:

I=13‾‾√(R+G+B)S=1−3min(R,G,B)R+G+BH=⎧⎩⎨⎪⎪θ,G≥B2π−θ,G<B其中θ=arccos(R−G)+(R−B)2(R−G)2+(R−B)(G−B)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√

(3)YUV

Y是亮度,U和V是色差:

Y=0.299R+0.587G+0.114BU=B−YV=R−Y

(4)YCbCr

Y是亮度,Cb和Cr是色差:

Y=0.299R+0.587G+0.114BCb=2(1−0.114)(B−Y)Cr=2(1−0.299)(R−Y)

继续阅读