基于Python的算数编码实验

基于Python的算数编码实验 一,实验目的 给出算术编码实现的详细原理, 编制编解码程序 设计并实现自适应算术编码(选做) 二

本文包含相关资料包-----> 点击直达获取<-------

基于Python的算数编码实验

一、实验目的

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

  • 编制编解码程序

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

二、实验环境

硬件环境:windows 10; VScode

编程语言:python3.7

三、实验原理

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

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

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

编码过程:

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

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

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

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

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

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

四、实验过程与结果

程序演示截图:

五、实验心得

实践中加深了对算术编码的理解

进一步提升了编程能力

算术编码是一种到目前为止编码效率最高的统计熵编码方法,它比著名的Huffman编码效率提高10%左右,但由于其编码复杂性和实现技术的限制以及一些专利权的限制,所以并不象Huffman编码那样应用广泛。算术编码有两点优于Huffman码: ①它的符号表示更紧凑; ②它的编码和符号的统计模型是分离的,可以和任何一种概率模型协同工作。后者非常重要, 因为只要提高模型的性能就可以提高编码效率。

参考文献

  • 小学生计算思维测评系统的设计与实现研究(山东师范大学·陈会)
  • 基于云的在线学习平台教师子系统的设计与实现(哈尔滨工业大学·王闯磊)
  • 基于数据挖掘的电视节目个性化推荐研究及实现(曲阜师范大学·徐晟杰)
  • 基于.Net和Ajax技术的实验教学管理系统的设计和实现(苏州大学·周骏)
  • 基于MVC的实验课编排系统的设计与实现(北京工业大学·韩姝)
  • 基于Python的非结构化数据检索系统的设计与实现(南京邮电大学·董海兰)
  • 数据挖掘算法的改进及应用研究(广西民族大学·路闯)
  • 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
  • 基于MVC的实验课编排系统的设计与实现(北京工业大学·韩姝)
  • 高校设计型实验管理平台的设计与实现(厦门大学·杰恩斯·玉素甫)
  • 基于Java和Matlab的虚拟仿真实验系统的设计与实现(长江大学·喻盼)
  • 基于iOS的数学速算教学系统设计与实现(广西师范大学·何秋跃)
  • 大数据管理实训辅助评分工具设计与实现(华中科技大学·周辉阳)
  • 中职计算机实验教学管理系统开发与应用(山西师范大学·陈占军)
  • 基于容器技术的大数据实训平台设计与实现(华中科技大学·高路平)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码货栈 ,原文地址:https://bishedaima.com/yuanma/36175.html

相关推荐

  • springboot实现商品进销存管理系统CRM系统源代码javaweb

    这是一个🔥🔥springboot实现商品进销存管理系统CRM系统源代码javaweb🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 商品进销存管理系统开发技术栈为SpringBoot项目
    2024年05月23日
    14 1 4
  • 基于SpringBoot框架的政府管理的系统

    这是一套采用Java语言开发的🔥🔥政府管理系统源代码,基于SpringBoot框架构建,项目中应用了SpringBoot和Vue技术,适合在Idea或Eclipse开发环境下运行
    2024年05月23日
    58 1 6
  • 基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统

    基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统 一 ,项目背景及需求分析 docker-compose 一键部署 (仅需下载 docker-compose 文件夹运行即可) 用户在可靠验证下实现简化身份确认 在已有用户数据库基础上 传统校验方式: 直接选择 ==》 用户 【不安全/不可靠】 用户名 + 密码 查询数据库 ==》 用户 【麻烦/】 新型校验方式 第三方工具
    2024年05月14日
    23 1 3
  • 基于Jsp和MySQL的机票管理系统的设计

    Ticket-management-jsp 基于Jsp和MySQL的机票管理系统的设计 参考文献 河北航空公司基于SSH在线航空订票系统的设计与实现(电子科技大学·张彬) 基于J2EE售票管理系统的设计与实现(东北大学·王琳) 基于互联网的民航售票系统设计与实现(沈阳工业大学·王丹民) 沈阳超高压局通信设备运行参数管理信息系统(大连理工大学·杨楠) 某机票订票系统的设计与实现(北京工业大学·周子杰) XX航空公司机构管理和培训子系统的设计与实现(电子科技大学·张晨) 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚) 某机票订票系统的设计与实现(北京工业大学·周子杰) 旅游管理网站系统的设计与实现(大连理工大学·秦鑫) 基于Web的航空票务管理系统的设计与实现(西安电子科技大学·韩璐) 基于MVC模式的物流信息管理系统设计与开发(电子科技大学·程泳) 某机票订票系统的设计与实现(北京工业大学·周子杰) 物流货运平台的设计与实现(山东大学·任如坤) 旅游管理网站系统的设计与实现(大连理工大学·秦鑫) 基于EPP的域名管理系统(山东大学·孟庆领)
    2024年05月14日
    40 1 7
  • Python生成二维码

    一,实验介绍: ``` Python生成个性二维码: 通过调用MyQR接口来实现生成个人所需二维码,并可设置二维码的大小/是否在现有图片的基础上生成/是否生成动态二维码 在线实验:https://www
    2024年05月14日
    1 1 1
  • 基于JAVA的网吧机房管理系统

    基于JAVA的网吧机房管理系统 摘 要 随着互联网的发展,Internet真正各行各业形成新的热点和经济增长点,网络正在把人们紧密地连接在一起,很难想象在信息时代人们离开网络要怎么生活
    2024年05月14日
    9 1 2
  • 基于Python的车牌检测和识别系统

    车牌检测和识别的Python应用软件实现 徐静 1,车牌检测和识别项目介绍 图片来源:https://www,cnblogs,com/polly333/p/7367479
    2024年05月14日
    2 1 1
  • 基于深度学习的手写数字识别算法Python实现

    基于深度学习的手写数字识别算法Python实现 摘 要 深度学习是传统机器学习下的一个分支,得益于近些年来计算机硬件计算能力质的飞跃,使得深度学习成为了当下热门之一
    2024年05月14日
    1 1 1
  • 基于springboot+mysql+Shiro实现的宠物医院管理系统

    基于springboot+mysql+Shiro实现的宠物医院管理系统 1,项目介绍 系统主要为用户提供了管理员权限的用户,实现了前台查看客户信息,在线添加预约等;后台管理医生坐诊信息
    2024年05月14日
    6 1 1
  • 基于JavaWeb和MySQL的网上书店的设计与实现

    基于JavaWeb和MySQL的网上书店的设计与实现 摘 要 随着网络的普及,越来越多的人喜欢在网上购物,为了满足广大学生和社会上需要购买图书的人群
    2024年05月14日
    49 1 7

发表回复

登录后才能评论