开发者社区> 我的一块红布头> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Study - 基于霍夫曼图像压缩重建

简介: Study - 基于霍夫曼图像压缩重建
+关注继续查看

案例背景


  随着人们对图像压缩技术的重视,目前已经提出了多种压缩编码方法。如果以不同种类的媒体信息为处理对象,则每种压缩编码方法都有其自身的优势和特点,如编码复杂度和运行效率的改善、解码正确性的提高、图像恢复的质量提升等"。


特别是,随着互联网.信息量的不断增大,高效能信息检索的质量也与压缩编码方法存在越来越紧密的联系。从发展的现状来看,采用分形和小波混合图像编码方法能充分发挥小波和分形编码的优点,弥补相互的不足,因此成为图像压缩的一个重要研究方向,但是依然存在某些不足之处,有待进一步提高。



理论基础.


  压缩,根据编码前后数据损失的角度可分为无损压缩编码和有损压缩编码;根据已知编码方法分类的实用性角度可分为统计编码、预测编码和变换编码。所谓无损压缩,就是利用数据的统计冗余信息进行压缩,且能够在不引起任何失真的前提下完全恢复原始数据。无损压缩法广泛用于文本、程序和特殊应用场合的图像数据(如指纹图像、医学图像等)的压缩。常用的无损压缩编码方法有香农(Shannon-Fano) 编、霍夫曼(Huffman)编码、行程( Run-length)编码、LZW ( Lempel Ziv-Welch)编码和算术编码等”。


  霍夫曼编码完全依据字符出现的概率来构造异字头的平均长度最短的码字,有时称之为最佳编码。霍夫曼编码将使用次数较多的代码用长度较短的编码代替,将使用次数较少的代码用较长的编码代替,并且.确保编码的唯一可解性。其根本原则是压缩编码的长度(即字符的统计数字x字符的编码长度)最小,也就是权值和最小。


霍夫曼编码的步骤:霍夫曼编码是一种无损压缩方法,其一-般算法如下。


image.png

霍夫曼编码的特点


霍夫曼编码是最佳的变长编码,其特点如下:


1.可重复性:霍夫曼编码不唯一,具有可重复性。


2.效率差异性:霍夫曼编码对于不同的信源往往具有不同的编码效率,具有效率差异性。


3.不等长性:霍夫曼编码的输出内容不等长,因此给硬件实现带来一定的困难,也在一定程度上造成了误码传播的严重性。


4.信源依赖性:霍夫曼编码的运行效率往往要比其他编码算法高,是最佳的变长编码。但是,霍夫曼编码以信源的统计特性为基础,必须先统计信源的概率特性才能编码,因此具有对信源的依赖性,这也在一定程度上限制了霍夫曼编码的实际应用。


image.png



程序实现


  本案例采用基于霍夫曼压缩及解压缩的流程来执行拼接操作,实验载入图片文件夹作为待压缩对象,通过进行图片霍夫曼压缩、解压缩并显示对比来检验压缩效果,最后通过计算PSNR值来对比霍夫曼压缩的效果。


image.png

image.png

压缩结果表明,霍夫曼图像压缩可以在无损的前提下有效地进行图像的编解码,具有良好的压缩比,解压缩后的图像与原始图像相比也具有较高的PSNR值,可以有效地节省图像在传输、存储等过程中所需要的资源消耗,提高图像处理的效率。


  在无损压缩方面,霍夫曼编码具有最佳编码的美誉;在有损压缩方面,预测编码和变换编码也各有所长。因此,对于不同的应用场景可以根据所处理对象和系统要求选择不同的编码算法,提高算法的适用性。特别是,对于经典的JPEG编码包括基于DCT的JPEG编码和基于小波变换的JPEG编码,小波变换编码在性能上更加符合人们的要求,所以在JPEG压缩编码标准的基础.上提出了基于小波变换的JPEG 2000压缩编码标准。


  随着网络信息技术的飞速发展,信息高效快速地传输已经变得越来越重要,而传输信息就需要先经过编码,然后译码。因此,编码技术的提高对整个信息产业的发展具有举足轻重的作用。霍夫曼编码作为- -种可变长度的无损压缩方法,具有较高的压缩效率,在当今的网络传输中具有重要的应用价值。此外,霍夫曼树属于最优二叉树范畴,在不同的程序设计中已经选择它来降低程序运行的时间复杂度,提高编码的性能。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
2个未来技术概念:Web3.0 和元宇宙
2个未来技术概念:Web3.0 和元宇宙最近互联网世界的两个流行语 Web 3.0 和 元宇宙。看到这些新平台提供的发展潜力,许多公司正在探索 Web 3.0 和元宇宙技术所提供的可能性。
1082 0
Go 分布式链路追踪实现原理
在分布式、微服务架构下,应用一个请求往往贯穿多个分布式服务,这给应用的故障排查、性能优化带来新的挑战。分布式链路追踪作为解决分布式应用可观测问题的重要技术,愈发成为分布式应用不可缺少的基础设施。本文将详细介绍分布式链路的核心概念、架构原理和相关开源标准协议,并分享我们在实现无侵入 Go 采集 Sdk 方面的一些实践。
309 0
深度学习与CV教程(17) | 深度强化学习 (马尔可夫决策过程,Q-Learning,DQN)
本文讲解了强化学习的主要挑战、数学定义及实际应用(制定长期决策、估计或者近似未来奖励、状态过多时估计或者近似未来奖励、从数据中学习模型使其真正工作等)【对应 CS231n Lecture 14】
13401 0
流批一体在京东的探索与实践
京东高级技术专家韩飞在 FFA 的演讲。
717 0
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
388 0
Serverless实战——2分钟,教你用Serverless每天给女朋友自动发土味情话
今天说一下如何用Python结合阿里云Serverless函数计算每天定时给女朋友发天气预报和情话,让她明白程序员也有浪漫。欢迎大家学习哈。
34331 0
51万奖池邀你参战!第二届阿里云ECS CloudBuild开发者大赛来袭
一年一次的阿里云ECS cloudbuild开发者大赛重磅来袭,欢迎大家参与或者转发给身边的人。本次cloudbuild开发者大赛奖池超高,三大赛道,豪华的专家阵容;体验活动互动有趣,奖品丰富;如果都没有你的菜,就来抽个奖吧,AirPods也还不错~
618 0
“智物智造”杯2022物联网创新应用大赛,你的idea 改变世界!
你的idea 改变世界!万元奖金、AirPods等你拿!
48683 0
深度学习与CV教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)
本文讲解了 Policy Gradient,结合policy-based 和 value-based 的 Actor-Critic 方法,以及在 Actor-Critic 基础上的 DDPG、A3C方法【对应 CS231n Lecture 14】
13506 0
PolarDB-X 源码解读:DDL的一生(上)
一条SQL语句进入PolarDB-X的CN后,将经历协议层、优化器、执行器的完整处理流程。首先经过解析、鉴权、校验,被解析为关系代数树后,在优化器中经历RBO和CBO生成执行计划,最终在DN上执行完成。与DML不同的是,逻辑DDL语句还涉及对元数据的读写和物理DDL,直接影响系统状态一致性。
126 0
136
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载