霍夫曼编码计算图片压缩率
给定一个包含0,1,2,3像素值的灰度图像,其像素值的比例分别为70%,15%,12%,3%,求对其进行霍夫曼编码后相对于原始8bit存储的压缩率是多少?
记符号为 0, 1, 2, 3
频率为 0.7,0.15,0.12,0.03
按照下列步骤构造哈夫曼树:
- 将符号按频率排序,选取频率最小的两个符号("3"和"2")作为树的左右子节点
- 将 "3"和"2"的频率合并得0.15,重新对合并的结果进行频率排序
- 迭代1和2,得到哈夫曼树
- 将哈夫曼树各级左子树标记为0,右子树标记为1
- 得到哈夫曼编码为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
霍夫曼编码计算图片压缩率相关推荐
- 哈夫曼编码压缩率计算_程序员的算法课(8)-贪心算法:理解霍夫曼编码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/ ...
- 信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )
信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码.并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码.译码 ) 原始图片 ...
- 灵光一现的创造——霍夫曼编码
点击上方"LiveVideoStack"关注我们 作者 | Alex 技术审校 | 赵军 霍夫曼 声影传奇 #004# 作为一名科学家和老师,我真的非常执着.如果我觉得自己还没有找 ...
- 贪心算法之最小堆实现霍夫曼编码
贪心算法之最小堆实现霍夫曼编码 实现之前需要学习的地方: 如果你不了解堆.堆的插入.堆的删除,可以先看下我前面几篇博客 http://blog.csdn.net/u011068702/article/ ...
- 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的实现 ...
- labview霍夫曼编码_为什么霍夫曼编码好?
7 个答案: 答案 0 :(得分:3) 如果为最常用使用的符号指定较少的数字或位或较短的代码字词,则可以节省大量存储空间. 假设您要为英文字母分配26个唯一代码,并希望根据这些代码存储英文小说(仅限字 ...
- JPEG霍夫曼编码教程
转译自:https://www.impulseadventure.com/photo/jpeg-huffman-coding.html 量化后,霍夫曼/熵编码是JPEG压缩文件大小节省的重要因素之一. ...
- 【数据结构】图解霍夫曼编码,看了就能懂
今天来给大家普及一下霍夫曼编码(Huffman Coding),一种用于无损数据压缩的熵编码算法,由美国计算机科学家大卫·霍夫曼在 1952 年提出--这么专业的解释,不用问,来自维基百科了. 说实话 ...
- 信息论4—无失真信源编码(非延长码,霍夫曼编码)
无失真信源编码 单义可译码 码字非奇异,码字序列非奇异. 单义可译定理--克拉夫不等式 非延长码(即时码,在无失真信源编码中,常采用此码) 延长码:部分码字是其它码字的前缀.100是10的延长码,01 ...
- 算法科普:有趣的霍夫曼编码
前言 霍夫曼编码 ( Huffman coding ) 是一种可变长的前缀码.霍夫曼编码使用的算法是 David A. Huffman 还是在MIT 的学生时提出的,并且在 1952 年发表了名为&l ...
最新文章
- Xcode SVN配置
- AIProCon在线大会笔记之阿里达摩院司罗:为商业搭建语言桥梁
- Spring系列(六):@Conditional注解用法介绍
- oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
- python异常值删除_python数据清洗中,是如何识别和处理异常值的?
- java opencv 轮廓检测,OpenCV 轮廓检测 - 雷霄骅(leixiaohua1020)的个人页面 - OSCHINA - 中文开源技术交流社区...
- 程序员只能吃“青春饭”?C 认证带你破局!
- python线程监控_Python多线程的事件监控
- java 中append()_调用append()方法在Java中构造一个StringBuffer对象
- 怎么python编程excel_Python操作excel
- mysql的engine不同,导致事物回滚失败的问题
- LordPe dump进程内存实现
- 计算机体系结构量化研究方法——学习(一)
- html5 获取剪切板内容,H5剪切板功能
- scree VS tmux
- 计算机课程设计红绿灯,PLC十字路口红绿灯课程设计(梯形图).doc
- JS中attr 和 prop 的区别
- openrov,bluerov(树莓派代码)水下机器人树莓派、BBB板--组装自己的rov(准备篇)
- sqlite3中,blob字段的读取和写入
- 随机句子我在人间凑数的日子V1.2成品源码+API
热门文章
- android连接wifi不能上网,手机已经连接wifi但无法上网的详细解决方法
- ps 22.4.3版你值得拥有!支持m1转译运行 https://mac.orsoon.com/Mac/180336.html
- 问卷调查报告html,问卷调查报告格式
- 市场调查大赛全保姆教程(经验分享)
- i.MX6ULL 开发板在Ubuntu系统下实现串口通信
- 微信小程序7-云存储
- 保温杯市场前景分析及行业研究报告
- Unity外接设备摇杆控制
- 在oracle中bpa是什么意思,BPA是什么意思_BPA的翻译_音标_读音_用法_例句_爱词霸在线词典...
- WORD 或者 Outlook 提示“无法创建工作文件,请检查临时环境变量” 的解决方法