给定一个包含0,1,2,3像素值的灰度图像,其像素值的比例分别为70%,15%,12%,3%,求对其进行霍夫曼编码后相对于原始8bit存储的压缩率是多少?

记符号为 0, 1, 2, 3
频率为 0.7,0.15,0.12,0.03
按照下列步骤构造哈夫曼树:

  1. 将符号按频率排序,选取频率最小的两个符号("3"和"2")作为树的左右子节点
  2. 将 "3"和"2"的频率合并得0.15,重新对合并的结果进行频率排序
  3. 迭代1和2,得到哈夫曼树
  4. 将哈夫曼树各级左子树标记为0,右子树标记为1
  5. 得到哈夫曼编码为3:111,2:110,1:10,0:0


压缩率为
1−((0.03∗3+0.12∗3+0.15∗2+0.7∗1)/(0.03∗2+0.12∗2+0.15∗2+0.7∗2))=0.2751-((0.03*3+0.12*3+0.15*2+0.7*1)/(0.03*2+0.12*2+0.15*2+0.7*2))=0.2751−((0.03∗3+0.12∗3+0.15∗2+0.7∗1)/(0.03∗2+0.12∗2+0.15∗2+0.7∗2))=0.275

霍夫曼编码计算图片压缩率相关推荐

  1. 哈夫曼编码压缩率计算_程序员的算法课(8)-贪心算法:理解霍夫曼编码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/ ...

  2. 信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )

    信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码.并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码.译码 ) 原始图片 ...

  3. 灵光一现的创造——霍夫曼编码

    点击上方"LiveVideoStack"关注我们 作者 | Alex 技术审校 | 赵军 霍夫曼 声影传奇 #004# 作为一名科学家和老师,我真的非常执着.如果我觉得自己还没有找 ...

  4. 贪心算法之最小堆实现霍夫曼编码

    贪心算法之最小堆实现霍夫曼编码 实现之前需要学习的地方: 如果你不了解堆.堆的插入.堆的删除,可以先看下我前面几篇博客 http://blog.csdn.net/u011068702/article/ ...

  5. Zlib压缩算法:LZ77、LZ78、霍夫曼编码、滑动窗口、Rabin-Karp算法、哈希链、I/O缓冲区

    Table of Contents 1.简介 1.1 什么是zlib 2.压缩算法 2.1 放气 2.2 LZ77 2.2.1 滑动窗口 2.2.2 长距离对 2.3 霍夫曼编码 3. zlib的实现 ...

  6. labview霍夫曼编码_为什么霍夫曼编码好?

    7 个答案: 答案 0 :(得分:3) 如果为最常用使用的符号指定较少的数字或位或较短的代码字词,则可以节省大量存储空间. 假设您要为英文字母分配26个唯一代码,并希望根据这些代码存储英文小说(仅限字 ...

  7. JPEG霍夫曼编码教程

    转译自:https://www.impulseadventure.com/photo/jpeg-huffman-coding.html 量化后,霍夫曼/熵编码是JPEG压缩文件大小节省的重要因素之一. ...

  8. 【数据结构】图解霍夫曼编码,看了就能懂

    今天来给大家普及一下霍夫曼编码(Huffman Coding),一种用于无损数据压缩的熵编码算法,由美国计算机科学家大卫·霍夫曼在 1952 年提出--这么专业的解释,不用问,来自维基百科了. 说实话 ...

  9. 信息论4—无失真信源编码(非延长码,霍夫曼编码)

    无失真信源编码 单义可译码 码字非奇异,码字序列非奇异. 单义可译定理--克拉夫不等式 非延长码(即时码,在无失真信源编码中,常采用此码) 延长码:部分码字是其它码字的前缀.100是10的延长码,01 ...

  10. 算法科普:有趣的霍夫曼编码

    前言 霍夫曼编码 ( Huffman coding ) 是一种可变长的前缀码.霍夫曼编码使用的算法是 David A. Huffman 还是在MIT 的学生时提出的,并且在 1952 年发表了名为&l ...

最新文章

  1. Xcode SVN配置
  2. AIProCon在线大会笔记之阿里达摩院司罗:为商业搭建语言桥梁
  3. Spring系列(六):@Conditional注解用法介绍
  4. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
  5. python异常值删除_python数据清洗中,是如何识别和处理异常值的?
  6. java opencv 轮廓检测,OpenCV 轮廓检测 - 雷霄骅(leixiaohua1020)的个人页面 - OSCHINA - 中文开源技术交流社区...
  7. 程序员只能吃“青春饭”?C 认证带你破局!
  8. python线程监控_Python多线程的事件监控
  9. java 中append()_调用append()方法在Java中构造一个StringBuffer对象
  10. 怎么python编程excel_Python操作excel
  11. mysql的engine不同,导致事物回滚失败的问题
  12. LordPe dump进程内存实现
  13. 计算机体系结构量化研究方法——学习(一)
  14. html5 获取剪切板内容,H5剪切板功能
  15. scree VS tmux
  16. 计算机课程设计红绿灯,PLC十字路口红绿灯课程设计(梯形图).doc
  17. JS中attr 和 prop 的区别
  18. openrov,bluerov(树莓派代码)水下机器人树莓派、BBB板--组装自己的rov(准备篇)
  19. sqlite3中,blob字段的读取和写入
  20. 随机句子我在人间凑数的日子V1.2成品源码+API

热门文章

  1. android连接wifi不能上网,手机已经连接wifi但无法上网的详细解决方法
  2. ps 22.4.3版你值得拥有!支持m1转译运行 https://mac.orsoon.com/Mac/180336.html
  3. 问卷调查报告html,问卷调查报告格式
  4. 市场调查大赛全保姆教程(经验分享)
  5. i.MX6ULL 开发板在Ubuntu系统下实现串口通信
  6. 微信小程序7-云存储
  7. 保温杯市场前景分析及行业研究报告
  8. Unity外接设备摇杆控制
  9. 在oracle中bpa是什么意思,BPA是什么意思_BPA的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. WORD 或者 Outlook 提示“无法创建工作文件,请检查临时环境变量” 的解决方法