您的位置:首页 > 其它

图像处理复习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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: