基于Python的算数编码实验

一、实验目的

  • 给出算术编码实现的详细原理。

  • 编制编解码程序

  • 设计并实现自适应算术编码(选做)

二、实验环境

硬件环境:windows 10; VScode

编程语言:python3.7

三、实验原理

算术编码是图像压缩的主要算法之一。 是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0 ≤ n < 1.0)的小数n。

算术编码的基本原理: 根据信源可能发现的不同符号序列的概率,把[0,1]区间划分为互不重叠的子区间,子区间的宽度恰好是各符号序列的概率。这样信源发出的不同符号序列将与各子区间一一对应,因此每个子区间内的任意一个实数都可以用来表示对应的符号序列,这个数就是该符号序列所对应的码字。显然,一串符号序列发生的概率越大,对应的子区间就越宽,要表达它所用的比特数就减少,因而相应的码字就越短。

在给定符号集和符号概率的情况下,算术编码可以给出接近最优的编码结果。使用算术编码的压缩算法通常先要对输入符号的概率进行估计,然后再编码。这个估计越准,编码结果就越接近最优的结果。

编码过程:

  • 编码器在开始时将“当前间隔” [ L, H) 设置为[0,1)。

  • 对每一事件,编码器按步骤(a)和(b)进行处理

  • 编码器将“当前间隔”分为子间隔,每一个事件一个。

  • 个子间隔的大小与下一个将出现的事件的概率成比例,编码器选择子间隔对应于下一个确切发生的事件相对应,并使它成为新的“当前间隔”。

  • 最后输出的“当前间隔”的下边界就是该给定事件序列的算术编码。

解码过程:解码前首先需要对区间[0,1)按照初始时的符号频度进行分割。然后观察输入的小数位于那个子区间。输出对应的符号,选择对应的子区间,然后从选择的子区间中继续进行下一轮的分割。不断的进行这个过程,直到所有的符号都解码出来。

四、实验过程与结果

程序演示截图:

基于Python的算术编码的设计与实现相关推荐

  1. python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx

    湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...

  2. 基于Python的图书推荐系统的设计与实现

    基于Python的图书推荐系统的设计与实现 课题描述 在这个数据爆炸的年代,人们的需求逐渐增多,而所对应的资源更是海量. 一个人要从无数的选择中选中自己所感兴趣的无异于大海捞针. 本系统在实现个人信息 ...

  3. python网络爬虫的流程图_基于Python的网络爬虫的设计与实现

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的网络爬虫的设计与实现 作者:高祖彦 来源:<商情> 2020 年第 33 期 [摘要]一个爬虫从网上爬取数 ...

  4. 基于python可视化的网页搜索引擎设计#毕业设计

    开发环境 项目编号:基于python可视化的网页搜索引擎设计#毕业设计 开发语言:Python python框架:django 软件版本:python3.7/python3.8 数据库:mysql 5 ...

  5. 基于Python的数据分析系统的设计和实现

    <基于Python的数据分析系统的设计和实现>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代 ...

  6. 可视化平台python_基于Python的可视化数据分析平台设计与实现

    Computer Era No. 12 2017 0 引言 随着云计算.物联网.社交网络等的兴起和数据库技术的成熟,社会中的各类数据正在以前所未有的速度增长.传统的数据处理方式难以发掘出海量数据中所隐 ...

  7. 基于Python的数独游戏的设计与实现

    源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 基于Python的数独游戏的设计与实现

  8. 基于python的飞机大战游戏设计与实现

    基于python的飞机大战游戏设计与实现,采用MySQL+pygame+Tkinter实现飞机大战游戏,主要功能有注册+登录+游戏初始化(开始游戏+游戏操作说明+版权信息)+游戏主界面[设置敌机种类并 ...

  9. 基于Python的汽车销售系统的设计和实现

    <基于Python的汽车销售系统的设计和实现>该项目采用技术Python的django框架.mysql数据库,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码 ...

最新文章

  1. visio mysql使用教程_visio2007使用方法
  2. 遗传算法原理及其python实现
  3. 俄罗斯方块(C语言源代码)
  4. Nginx面试题及基础
  5. java 坦克大战设计论文,java坦克大战毕业设计论文
  6. ant组件中select默认选中某一项
  7. android课设会议室预约系统,教室及会议室预约系统(C#小程序,课堂作业)
  8. 「360企业安全云」上线,免费护航中小微企业数字化建设
  9. 什么是 Web 3.0?|互联网的下一波浪潮解释
  10. android 强制开启wifi,强制Android使用无网络的Wifi网络
  11. 卡饭PDF转换器之CAJ转换
  12. 前端开发常见的英语词汇
  13. 基于RK3568商显版开源鸿蒙板卡产品解决方案
  14. 学习可泛化的特定深度的结构表示CVPR2021
  15. 一个简单的三极管音频放大电路
  16. 随机发牌_Java项目实战:斗地主洗牌发牌小游戏
  17. 计算机抽象及相关技术
  18. 程序jar冲突或类冲突问题解决【IncompatibleClassChangeError: Implementing class】
  19. finally和return执行的先后顺序
  20. linux基础管道命令参数用法

热门文章

  1. HAL(Hardware Abstract Layer)硬件抽象层工作原理
  2. 第26讲-项目一-投票表决器
  3. 2021-1-17微淼商学院基金篇
  4. linux 系统编程之-程序设计
  5. 微信小程序之实时聊天系统——页面介绍
  6. 计算机网络知识点总结——第六章应用层
  7. TALIB 中文文档 Momentum Indicator Functions 动量指标函数
  8. ISV 生态合作伙伴体系多领域赋能,开拓市场赛道
  9. 打开Excle出现配置进度解决方法【WPS罪魁祸首】
  10. UA PHYS515A 电磁理论IV 时变电磁场理论3 电磁场的能量守恒