码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-18 22:12:59      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:图像处理   图像编码   图像压缩   huffman   颜色模型   

图像处理复习


CH6 图像编码

6.1 编码与冗余

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

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

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

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

6.2 信息熵和编码性能参数

(1)熵

设图像灰度集集合d=d1,d2,...,dmdk出现频率为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)编码举例

技术分享

说明:

  • 二元码即自然码
  • 二元平移码的构造方法之前说的不是很详细,可以参考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=?????θ,GB2π?θ,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)

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

标签:图像处理   图像编码   图像压缩   huffman   颜色模型   

原文地址:http://blog.csdn.net/u014030117/article/details/46552331

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!