图像处理复习3———图像编码和颜色模型
2015-06-18 20:49
676 查看
图像处理复习
CH6 图像编码
6.1 编码与冗余
图像编码,就是对图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码来表示尽可能多的数据的目的编码实现了压缩,所以又称之为压缩编码
图像能够压缩是因为为压缩图像中存在信息的冗余,一般将冗余分成三类:
编码冗余:自然编码将所有灰度值等长编码,出现频率高的灰度值全局相对码字长度较大
像素相关性冗余:帧内像素信息冗余、帧间像素信息冗余
视觉冗余:人眼对不同视觉信息有不同敏感度,并且人眼分辨率有限
6.2 信息熵和编码性能参数
(1)熵
设图像灰度集集合d=d1,d2,...,dmd={d_1,d_2,...,d_m},dkd_k出现频率为p(dk)p(d_k),那么有该图像的熵为:H(d)=−∑i=1mp(di)log2p(di)
H(d)=-\sum_{i=1}^{m}p(d_i)\log_2{p(d_i)}
(2)无失真编码定理
无失真编码定理:在无干扰条件下,存在一种无失真的编码方法,使编码的平均码长与信源的熵H(d)H(d)无限接近推论:
若当前编码平均码长大于H(d)H(d)则一定可以设计出平均码长更短的无失真编码方法
平均码长小于H(d)H(d)的无失真编码不存在
(3)编码性能参数
平均码长:L=∑mi=1p(di)l(di)L=\sum_{i=1}^{m}p(d_i)l(d_i),其中l(di)l(d_i)是灰度级为did_i的码长,单位是比特每像素编码效率:η=H(d)L\eta=\frac{H(d)}{L}
冗余度:Rd=1−ηR_d=1-\eta
压缩比:C=nndC=\frac{n}{n_d}
6.3 简单编码
(1)Huffman编码
每次选两个概率最小的节点构造一个新节点(新节点概率为两节点概率之和),直到构造出一棵二叉树(根节点概率为1),然后左0右1标记树枝,最后从根节点到叶节点路径上的标号串连起来既是该节点的Huffman编码Huffman编码是最优编码,编码效率很高,但是计算量较大,并且有一个致命问题:
当各灰度概率接近时编码(都比较小)长度会较长,可能会超过自然编码长度,导致不压缩反而数据量增大
解决:分子块独立Huffman编码
(2)其他亚最优编码
以下编码均是变长的亚最优编码B2B_2编码:两位信息位编码,一位标志位,按概率从大到小依次安排较短编码
二元平移码: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和B2B_2比较易懂
截断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)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
I=\frac{1}{\sqrt{3}}(R+G+B)\\\\
S=1-3\frac{min(R,G,B)}{R+G+B}\\\\
H=\begin{cases}
\theta,G \geq B\\\\
2\pi - \theta,G \lt B
\end{cases}\\\\
其中\theta=arccos\frac{(R-G)+(R-B)}{2\sqrt{(R-G)^2+(R-B)(G-B)}}
(3)YUV
Y是亮度,U和V是色差:Y=0.299R+0.587G+0.114BU=B−YV=R−Y
Y=0.299R+0.587G+0.114B\\\\
U=B-Y\\\\
V=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)
Y=0.299R+0.587G+0.114B\\\\
Cb=2(1-0.114)(B-Y)\\\\
Cr=2(1-0.299)(R-Y)
相关文章推荐
- 选择排序和 标准冒泡排序算法 (简单优化后的冒泡排序)
- 手机吸费代理 高收费电话 电话群呼器
- OC12_自动释放池
- 【转】测试工程师日常工作需要关注的问题
- iOS项目的完整重命名方法图文教程
- [BZOJ 2154] Crash的数字表格
- 黑马程序员------比较器
- 【华为oj】简单密码破解
- 黑马程序员------集合
- 特征值和特征矩阵的意义和应用
- 全局/静态变量初始化为0放在bss段还是data段
- 京东成都研究所奋战618
- OC11_自动释放池
- 吸费电话致富 加值电话合作 声讯电话平台
- Bean对象封装,数据分离
- win8下uboot启动卡制作
- 分布式版本管理git学习资料整理推荐
- 第15周上机实践项目1——用二进制文件处理学生成绩
- UVA 156 Ananagrams
- 黑马程序员——集合框架