持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
总计:今天是十月更文计划第十三天,第二十七篇
图像基本压缩编码
今天介绍几种图像的基本压缩编码:
霍夫曼编码
Huffman编码是1952年由Huffman提出的一种编码方法。这种编码方法是根据信源数据符号发生的概率进行编码的。
思想:在信源数据中出现概率越大的符号,编码以后相应的码长越短;出现概率越小的符号,其码长越长,从而达到用尽可能少的码符表示信源数据。它在无损变长编码方法中是最佳的。下面通过实例来说明这种编码方法。
设输入编码为
其频率分布分别为P(x1)=0.4 ,P(x2)=0.3,P(x3)=0.1,P(x4) =0.1,P(x5)=0.06,P(x6)=0.04。求其最佳霍夫曼编码
编码方法是:
①把输入符号按出现的概率从大到小排列起来,接着把概率最小的两个符号的概率求和;
②把它(概率之和)同其余符号概率由大到小排序,然后把两个最小概率求和;
③重复②,直到最后只剩下两个概率为止。
在上述工作完毕之后,从最后两个概率开始逐步向前进行编码。对于概率大的消息赋予0,小的赋予1。
即:
费诺-仙侬编码
具体编码方法如下:
把x1xn按概率由大到小、由上到下排成一列,然后把 x1xn 分成两组 x1xk , xk+1xn ,并使得
(2) 给两组中的 xi 赋值,将概率大的一组赋为0,概率小的一组赋为1。
(3) 把两组分别按(1)(2)分组、赋值,不断重复,直到每组只有一种输入元素为止。将每个xi 所赋的值依次排列起来就是费诺-仙侬编码。
用霍夫曼方法对源数据流进行编码可达到最佳编码效果。但由于计算机中存储、处理的最小单位是位,因此在一些情况下,实际压缩比与理论压缩比的极限相去甚远。
若要达到最佳编码效果,相应于字符X的码长为0.585位;字符Y的码长为1.58位。
用Huffman 方法对这两个字符进行编码,得到X、Y的代码分别为0和1。显然,对于概率较大的字符X不能给予较短的代码。
这就是实际编码效果不能达到理论压缩比的原因所在。