编码效率

您所在的位置:网站首页 编码效率最高的是 编码效率

编码效率

2024-07-17 07:18:31| 来源: 网络整理| 查看: 265

实验原理:

霍夫曼编码是一种无失真的信源编码,其基本思想是对于概率大的符号用短码表示,对概率小的符号用长码表示,从而使得编码后的信源的平均码长接近香农定理中给出的变长编码平均码长的下界H(X)/logr。为了使得编码得到的码字为即时码,在程序中使用二叉树来对信源进行编码。

霍夫曼编码的步骤如下:

第一步:将文件读入缓存区;

第二步:之字形扫描,统计信源的各符号的概率;

第三步:按照概率排列信源符号,将两个最小的概率作为二叉树的树叶节点,两个概率的和作为根节点,在将新的节点(树叶节点不参与比较)重新排序,选出概率最小的作为树叶节点,重复该步骤直到最终的根节点概率为1,码树生成结束;

第四步:将码表及其他信息写到输出文件,写码表时采用深度优先的遍历方法,将形成的二叉树所有左节点标0,右节点标1,再从根节点向下读,得到每个信源符号的码字,形成完整的码表;

第五步:对原文件进行再次扫描并编码输出。

实验代码分析:

第一步:先看代码中的三个结构体,从结构体可以看数据存储的结构:

Huffman节点:

Huffman码字结构体:

存统计信息的结构体:

第二步:根据编码的过程分析代码:

01.第一次扫描文件,得到256个符号对应的频率,并创建256个huffman_node(树叶节点),得到符号频率的代码如下:

02.根据得到的符号频率生成一棵霍夫曼树,从树叶->根,并根据生成的树从根到树叶采用深度优先的遍历方法得到每个符号对应的码字,代码如下:

03.将生成的码表写到输出文件中,代码如下:

04.再次扫描文件,将每个符号对应的码字写入到输出文件中,代码如下:

实验结果分析:

将十种不同格式的文件进行霍夫曼编码,下列是十种不同格式文件符号概率分布图:

十个文件的统计信息如下表所示:

根据结果可以看出,不同的文件编码效率有所差异。对于符号概率分布越不均匀的信源,其编码效率更高,压缩得越好,由于编码后的文件中存入了码表,因此由结果看来,原文件越大,其压缩比才更小。对于一些信源符号概率分布较为均匀,且文件大小较小的文件如本实验中的gif文件和rar文件,其编码后的文件大小与原文件相差不大甚至可能比原文件更大,就是因为码表的原因。

通过该实验,可以验证霍夫曼编码的编码效率是比较高的,编码后的平均码长与香农定理中给出的变长编码码长的下界很接近了。也可以看出熵编码对于概率分布不均的信源其压缩效果更好,因此在实际操作中应尽量信源转换为概率分布不均的模型后再对其进行熵编码。除了验证了霍夫曼编码的效率外,还通过该实验了解了数据结构和数据的存储方式等相关的知识。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭