数据压缩的理论方法与现实意义

摘要

  1. 首先通过信息论引出数据压缩编码的理论方法
  2. 接着结合目前技术发展分析压缩编码的现实意义
  3. 最后总结思考未来通信与存储的压缩方法

Navigator

  • 数据压缩的理论方法与现实意义
    • 一、 信息论与压缩编码的理论方法
    • 二、 当今相关技术发展与压缩编码的现实意义
    • 三、 总结与思考未来通信与存储的压缩方法

一、 信息论与压缩编码的理论方法

通过网络我们容易知道信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科,简而言之信息论就是对信息本身以及如何处理和传达信息的研究。人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文**《A Mathematical Theory of Communications》(通信的数学理论)**作为现代信息论研究的开端。

而为了实现高效、可靠和保密的通信与存储,香农认为关键的事情就是基于信源信号中数据中不同符号出现的随机性规律进行编码,通过对数据压缩、纠错和加密等功能提高传输效率、减少传输错误以及增加信息鲁棒性和安全性。下面我们来思考压缩编码的理论方法。

首先,压缩编码的基本思路是对代表和承载原始信息的数据进行某种变换,去除数据中相关联的冗余,从而产生一组更为简洁的表述,以达到降低通信和存储成本、提高效率的目的。而香农所提出的信源编码定理正好为数据压缩编码提供了理论基础,而其又借鉴了热力学的概念,把信息中排除了冗余后的平均信息量作为信息熵,并给出了计算信息熵的数学表达式,并证明了在信源不同数据出现概率已知的条件下,压缩编码所能产生的平均字节长度最短不可能小于信息熵,从而给出了数据压缩编码的最小极限长度,因此这个理论成果也被称为压缩编码定理,香农用一个简单明了的公式优美地揭示了评估数据冗余的理论基础,给出了平均意义上的信息比特上下极限。

不过完备的理论并不等于实用的技术,要将理论变为实践,编码方法是极为重要的一步,1948年,香农在提出信息熵理论的同时,事实上也给出了一种简单的编码方法–Shannon编码。1952年,麻省理工学院的罗伯特·法诺又进一步提出了Fano编码。两者后来被称为Shannon-Fano编码,这种早期的编码方法揭示了变长编码的基本规律,也确实可以取得一定的压缩效果,但离真正实用的压缩算法还相去甚远。

Huffman编码是第一个真正实用的编码方法,由戴维· 霍夫曼在1952年提出。当时霍夫曼是麻省理工学院的一名学生,据说为了向老师法诺证明自己可以不参加信息论课程的期末考试,他设计了这个看似简单却影响深远的编码方法。Huffman编码效率高,运算速度快,实现方式灵活,从20世纪60年代直到现在,在数据压缩领域得到了广泛的应用。而20世纪80年代初,Huffman编码又出现在CP/M和DOS系统中,即使在今天,在许多知名的压缩工具和压缩算法里(如WinZip和JPEG),也都有Huffman编码的身影。不过,Huffman编码所得的编码长度只是对信息熵计算结果的一种近似,并不能真正逼近信息熵的极限。

LZ算法是其发明者亚伯拉罕·伦佩尔和雅各布·齐夫和两个犹太人姓氏的缩写。此二人于1977年发表题为《顺序数据压缩的一个通用算法》的论文,论文中描述的算法被后人称为LZ77算法。1978年,二人又发表了该论文的续篇,描述了后来被命名为LZ78的压缩算法。其实LZ系列的算法并不新鲜,其中既没有高深的理论背景,也没有复杂的数学公式。它们只是简单的延续了千百年来人们对字典的追崇和喜好,并用一种极为巧妙的方式将字典技术运用于通用数据压缩领域。简单的说如果你习惯用字典中的页码和行号代替文章中的每个单词的时候,那实际上你已经掌握了LZ系列算法的真谛,因此这类编码算法被统称为Dictionary coders

在1984年,Terry Welch发表论文描述了他在Sperry研究中心(现在Unisys公司的一部分)的研究成果,也就是后来非常有名的LZW算法。它实质上是LZ78算法的一个变种,但被认为是一个独立的编码算法。LZW继承了LZ77和LZ78压缩效果好、速度快的优点,而且在算法描述上更容易被人们接受,实现也相对简单。而在其后发展出来的各式各样的字典编码算法,基本上都是这三种编码算法的分支或变体。也就是说LZ77、LZ78和LZW是字典编码中基础的3种编码算法。今天我们熟悉的PKZIP、WinZip、WinRAR等压缩工具都是LZ系列算法的受益者,甚至连PGP这样的加密文件格式也选择了LZ系列算法作为其数据压缩的标准。

字典式编码不但在压缩效果上大大超过了Huffman编码,而且在实现上,压缩和解压缩的速度也异常惊人。于是LZ系列算法的优越性很快就在数据压缩领域里体现出来,使用LZ系列算法的工具软件数量呈爆炸式增长。UNIX系统上最先出现了使用LZW算法的Compress程序,该程序性能优良,很快成为UNIX世界的压缩程序标准。紧随其后的是MS-DOS环境下的ARC程序,还有像PKARC等仿制品。LZ78和LZW一时间几乎统治了UNIX和DOS两大平台。但最终由于专利权等等原因,技术实现上更为优秀的LZ78和LZW没有成为主流的算法,目前为止占据个人用户计算机的主流压缩工具几乎都采用LZ77变种算法。

二、 当今相关技术发展与压缩编码的现实意义

通过《数据智能科学技术导论》中的视频数据传输所包含的信息量可知简单传输和存储原始数据将消耗大量的通信和存储资源,而在这篇报告中我想从当今游戏方面所包含的数据量的角度分析压缩编码的现实意义。
关注游戏方面的玩家大都知道最近美国游戏开发商 Epic Games 宣布虚幻引擎更新到了第五代(Unreal Engine 5),并公布了一段 PlayStation5 上的真机演示视频,为我们揭开了虚幻引擎5的神秘面纱。人类对于次世代的愿景就是让实时渲染细节能够媲美电影CG和真实世界,并通过高效的工具和内容库让不同规模的开发团队都能实现这一目标,在看完虚幻引擎五的真机演示之后不仅让我感慨于游戏引擎品质上的飞跃与技术团队的极致追求,更让我感慨这个引擎所产生的数据量之大。

该演示展示了虚幻引擎5的两大全新核心技术:首先是Nanite虚拟微多边形几何体可以让美术师们创建出人眼所能看到的一切几何体细节。Nanite虚拟几何体的出现意味着由数以亿计的多边形组成的影视级美术作品可以被直接导入虚幻引擎——无论是来自Zbrush的雕塑还是用摄影测量法扫描的CAD数据。Nanite几何体可以被实时流送和缩放,因此无需再考虑多边形数量预算、多边形内存预算或绘制次数预算了,也不用再将细节烘焙到法线贴图或手动编辑LOD,画面质量不会再有丝毫损失。
其次Lumen是一套全动态全局光照解决方案,能够对场景和光照变化做出实时反应,且无需专门的光线追踪硬件。该系统能在宏大而精细的场景中渲染间接镜面反射和可以无限反弹的漫反射;小到毫米级、大到千米级,Lumen都能游刃有余。美术师和设计师们可以使用Lumen创建出更动态的场景,例如改变白天的日照角度,打开手电或在天花板上开个洞,系统会根据情况调整间接光照。Lumen的出现将为美术师省下大量的时间,大家无需因为在虚幻编辑器中移动了光源再等待光照贴图烘焙完成,也无需再编辑光照贴图UV。同时光照效果将和在主机上运行游戏时保持完全一致。
与此同时,虚幻引擎五现有的引擎功能还有Chaos物理与破坏系统、Niagara VFX、卷积混响和环境立体声渲染,这些毫无疑问都会带来惊人的数据量,并且其远远高出视频数据许多,可见数据压缩在人类追求细节极限时所产生的极大数据量的通信与存储方面的重大意义,其与计算机与通信的其他技术密不可分,相辅相成,共同革新进步,改变着我们现有的世界并刷新我们的认知。

三、 总结与思考未来通信与存储的压缩方法

从Shannon编码到Huffman编码,从LZ算法到WinRAR,再从视频压缩到游戏压缩,数据压缩技术沿着时间的洪流不断革新,进步,随着人类对信息数量与质量永无止境的追求,一代又一代人不断接近数据压缩的极限,但我们依然满怀期待着未来会有更多的像香农,像霍夫曼的改变世界的伟人出现,引领我们走向更好的未来。

如今, BWT 算法在开放源码的压缩工具bzip中获得了巨大的成功, bzip 对于文本文件的压缩效果要远好于使用 LZ 系列算法的工具软件。这至少可以表明,即便在日趋成熟的通用数据压缩领域,只要能在思路和技术上不断创新,我们仍然可以找到新的突破口。另外,分形压缩是图像压缩领域里最有潜力的一种技术体系,在经过了几十年的高速发展之后,我们可能需要一种新的理论来支撑和推动数据压缩技术继续向前跃进,但不管怎样,可以预见的是随着信息产业的进一步发展,数据压缩技术还会以更完美的形式出现,给未来的大数据通信与存储带来更大的发展空间,也会促进人工智能,虚拟现实等前沿技术的突破与革新。

参考文献
[1] 黄卫平. 数据智能科学技术导论
[2] https://www.sciencedirect.com/
[3] https://baike.baidu.com/

【信息科学技术与创新】数据压缩的理论方法与现实意义 信息论 压缩编码 通信的数学理论 Huffman编码 LZ算法 虚幻引擎与数据压缩相关推荐

  1. 通信的数学理论_《香农传》告诉你为什么要学好数学

    可能是你正在大学攻读数学,又或者你已经有孩子,需要辅导他数学,都可以看看这本书,(美)吉米·索尼 罗伯·古德曼的<香农传>,或对数学有个新的认识. 书写得有趣.精巧,让非常复杂的数学和通信 ...

  2. 【信息科学技术与创新】 人类大脑中数据的产生,积累,增长 数据与信息 神经信息学

    人类大脑中数据的产生.积累与增长 摘要 本文首先提出人类大脑的基本定义,数据与信息的相关概念 之后从神经元以及突触的作用机制分析人类大脑中数据的产生.积累与增长 最后结合神经信息学对未来的脑科学相关技 ...

  3. 【信息科学技术与创新】情绪智能的扩展分析与总结 情绪概念及其模型 结合神经生物学对情绪智能深度分析 情绪智能对个人发展所能做的贡献及其提高方法

    情绪智能的扩展分析与总结 摘要 首先对情绪概念及其模型作再度的深入探究 接着结合情绪会改变我们看待世界和理解他人行为的方式以及神经生物学对情绪智能深度分析 最后总结思考情绪智能在未被充分科学验证的情况 ...

  4. 【信息科学技术与创新】数字世界 智能系统 人机交互 增强智能 虚拟化趋势与元宇宙浪潮 《元宇宙七大规则》

    数字世界给人类所带来的空间与自由 摘要 数据是人类和智能系统认识和改造世界的工具 人机交互与增强智能对人类自身能力的辅助与强化作用 人类发展的虚拟化趋势与元宇宙浪潮 Navigator 数字世界给人类 ...

  5. 通信的数学理论_21机械丨数学、英语、专业课究竟考什么?

    小特工来喽! 机械考研备考攻略,一篇搞定! 一.数学 机械考研,考的是数学一和数学二,一般来说,学硕考的是数学一,专硕考的是数学二,但有些知名度高的院校,或者要求高的院校,专硕也考数一. 数学一 针对 ...

  6. 数据压缩实验三:用c语言实现Huffman编码和压缩效率分析

    实验原理: 1.Huffman编码 Huffman编码是一种无失真的编码方式,是可变字长编码(VLC)的一种. Huffman编码基于信源的概率统计模型,它的基本思路是: 出现概率大的信源符号编长码, ...

  7. 神经网络的数学方法及应用,神经网络的数学理论

    神经网络算法原理 4.2.1 概述人工神经网络的研究与计算机的研究几乎是同步发展的. 1943年心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,20世纪50年代末,Rose ...

  8. 语言计算:信息科学技术中长期发展的战略制高点

    语言计算:信息科学技术中长期发展的战略制高点 (2010-10-10 17:31:25) 标签: 校园 分类: 工作篇 自然语言处理,简单地说,就是用计算机来处理人类的语言(英文.中文等).由于语言是 ...

  9. 北京大学信息科学技术学院本科生课程体系(修订版)

    第1章引言 1.1成书动因 1.22008年版(简称红皮书)成书过程 1.32012年版(简称蓝皮书)成书过程 1.4本书(简称绿皮书)成书过程 1.5本书特点 第2章培养理念与培养体系 2.1培养理 ...

最新文章

  1. 根据传入坐标和图片URL地址对图片进行切图操作、将图片转化成Base64位码
  2. 解决vue初始化数据时的闪烁问题
  3. 使用命令行结合jq提取出Kubernetes配置文件里的secret信息
  4. Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
  5. 禁售苹果手机_苹果、华为供应商工厂突发火灾!浓烟冲天
  6. oracle 12c 低版本,oracle高版本迁移数据到低版本(12c至11g)方法
  7. VMware Workstation 端口映射 How to
  8. cad命令栏还原默认_CAD十五个必学的命令 掌握后能走天下了
  9. Linux命令解释之find
  10. 怎么方便地不通过鼠标在应用之间复制/粘贴文本
  11. Cocos2d-x 着色器
  12. 【C语言】规范掌握C语言函数|数组名的妙用|指针快速入门|综合使用小案例
  13. C语言n层嵌套平方根的计算n
  14. Weakly Supervised Instance Segmentation using Class Peak Response
  15. 洗地机什么牌子最好?洗地机品牌排行榜前十名
  16. python 重试—retry库的使用和自定义超时retry
  17. 使用Markdown输出LaTex数学公式
  18. java智能家居_基于JAVA的智能家居控制系统的设计(毕业设计).doc
  19. zookeeper操作封装——curator使用分布式锁使用
  20. java得到sql语句表名_使用fdb-sql-parser替换SQL语句中的表名

热门文章

  1. matlab 获取文件扩展名
  2. 全方位剖析 清华同方 ,脉络千里
  3. 股份期权激励协议书模板
  4. 图形学笔记(十九)动画 —— 动画的历史、关键帧插值、物理仿真、质点弹簧系统、粒子系统、(反向IK)动力学、Rigging 绑定、Blend Shapes、动作捕捉
  5. 一篇就够——Kotlin快速入门
  6. 计算机专业几大标准,计算机5大类分类标准
  7. 嵌入式Linux系统开发笔记(七)
  8. EMWIN图标网站大全
  9. 3D视觉摄像机标定(张氏标定法)
  10. 华为防火墙攻击防范攻击分类