记录研究生封校生活的学习day14(第一篇)图像基本压缩编码(霍夫曼编码/费诺-仙侬编码)

165 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

总计:今天是十月更文计划第十三天,第二十七篇

图像基本压缩编码

今天介绍几种图像的基本压缩编码:

霍夫曼编码

Huffman编码是1952年由Huffman提出的一种编码方法。这种编码方法是根据信源数据符号发生的概率进行编码的。

思想:在信源数据中出现概率越大的符号,编码以后相应的码长越短;出现概率越小的符号,其码长越长,从而达到用尽可能少的码符表示信源数据。它在无损变长编码方法中是最佳的。下面通过实例来说明这种编码方法。

设输入编码为

image.png

其频率分布分别为P(x1)=0.4 ,P(x2)=0.3,P(x3)=0.1,P(x4) =0.1,P(x5)=0.06,P(x6)=0.04。求其最佳霍夫曼编码

image.png

编码方法是:

①把输入符号按出现的概率从大到小排列起来,接着把概率最小的两个符号的概率求和;

②把它(概率之和)同其余符号概率由大到小排序,然后把两个最小概率求和;

③重复②,直到最后只剩下两个概率为止。

在上述工作完毕之后,从最后两个概率开始逐步向前进行编码。对于概率大的消息赋予0,小的赋予1。

即:

image.png

费诺-仙侬编码

具体编码方法如下:

把x1xn按概率由大到小、由上到下排成一列,然后把 x1xn 分成两组 x1xk , xk+1xn ,并使得

image.png

(2) 给两组中的 xi 赋值,将概率大的一组赋为0,概率小的一组赋为1。

(3) 把两组分别按(1)(2)分组、赋值,不断重复,直到每组只有一种输入元素为止。将每个xi 所赋的值依次排列起来就是费诺-仙侬编码。

用霍夫曼方法对源数据流进行编码可达到最佳编码效果。但由于计算机中存储、处理的最小单位是位,因此在一些情况下,实际压缩比与理论压缩比的极限相去甚远。

若要达到最佳编码效果,相应于字符X的码长为0.585位;字符Y的码长为1.58位。

用Huffman 方法对这两个字符进行编码,得到X、Y的代码分别为0和1。显然,对于概率较大的字符X不能给予较短的代码。

这就是实际编码效果不能达到理论压缩比的原因所在。