读数据压缩入门笔记05_字典转换

这篇具有很好参考价值的文章主要介绍了读数据压缩入门笔记05_字典转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读数据压缩入门笔记05_字典转换

1. 瓶颈

1.1. 在网络带宽有限、存储昂贵的时期

1.2. 移动设备正日益成为人们访问互联网的首选的今天

1.3. 数据压缩成了缓解这些瓶颈的关键

2. 字典转换

2.1. dictionary transforms

2.2. 完全改变了人们对数据压缩的认知

2.2.1. 压缩变成了一种对各种类型的数据都有用的算法

2.3. 事实上今天所有的主流压缩算法(比如GZIP或者7-Zip)都会在核心转换步骤中使用字典转换

3. 基本字典转换

3.1. 统计压缩主要关注数据流中单个符号的出现概率

3.2. 这一概率与其周围可能出现的符号无关

3.3. 符号字典

3.4. 任何出现可以重复使用的相似内容分组的地方,都会有“短语”存在

3.5. 步骤

3.5.1. 给定源数据流

3.5.2. 构建出单词字典(而不是符号字典)

3.5.3. 再将统计压缩应用到字典中的单词上

3.6. 字典转换并非是要去替代统计编码

3.6.1. 只是你先应用到数据流上的一个转换,这样统计编码算法就能更有效地对其编码

3.7. 实际是一个数据流的预处理阶段

3.7.1. 生成的数据集会更小,比源数据流压缩率更高

3.8. 当能识别出那些经常重复使用的长字符串,并为它们分配最短的码字时,字典转换的效率最高

4. 分词

4.1. tokenization

4.2. 是信息论领域的一个研究分支

4.3. 一种暴力方法是读取一组符号并搜索字符串的剩余部分来确定该组符号的出现频次

4.3.1. 对所有真实的数据流而言,这样做不仅需要大量的内存,同时还需要花费很长的时间

4.4. 为了找到数据流的理想分词,我们需要有某种方法来处理现有的和那些还没有遇到的符号,并能以一种高效的方式将两者合并为尽可能长的符号集

5. LZ算法

5.1. 1977年,Abraham Lempel和Jacob Ziv提出

5.1.1. Jacob Ziv大学毕业于以色列理工学院,随后于1961年获得了麻省理工学院信息论专业的博士学位

5.1.2. Abraham Lempel在以色列理工学院获得了学士、硕士和博士学位

5.1.3. 1997年获得了IEEE信息理论学会的香农奖

5.2. LZ77 和LZ78

5.2.1. 找出最佳分词方面非常高效,30多年来还没有其他算法可以取代它们

5.3. 衍生算法

5.3.1. 每一种变体都是根据特殊的需要、性能要求的不同或者用例的不同,对LZ77基本算法进行了一些小调整

5.3.1.1. 对数据集越了解,你就越能从中选择出最适合的LZ变换

5.3.2. GIF图像格式中使用的LZW(即Lempel-Ziv-Welch)算法

5.3.2.1. Terry Welch于1984年提出的,它采用了LZ78算法的思想

5.3.2.2. 首个在计算机中广泛采用的通用数据压缩方法

5.3.3. 应用于7-Zip、xz等压缩工具的LZM(即Lempel-Ziv-Markov chain)算法

5.3.4. DEFLATE又应用于PNG图像格式、PKZIP、GZIP等压缩工具及zlib库中

5.3.5. PKZip、ARJ、RAR、ZOO和LHarc使用LZSS算法

5.3.6. 图

读数据压缩入门笔记05_字典转换文章来源地址https://www.toymoban.com/news/detail-485879.html

5.4. 真正吸引人的地方还在于它可以和统计编码结合使用

5.4.1. 将记号中的偏移量、长度值以及字面值分开后,再按照类型合并,组成单独的偏移量集、长度值集和字面值集,然后再对这些数据集进行统计压缩

6. LZ算法的工作原理

6.1. 通过在读取的字符串中寻找当前单词的匹配来分词

6.2. 与读取一组符号然后向后查找它是否重复出现不同

6.2.1. LZ算法向前查找当前单词是否出现过

6.3. 在数据流的前半部分,由于我们见过的单词很少,因此出现新单词的可能性很大

6.4. 数据流的后半部分,由于已经有了很大的缓冲区,因此出现匹配的可能性更大

6.5. 向前寻找匹配可以让我们找出“最长的匹配词”

到了这里,关于读数据压缩入门笔记05_字典转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu入门05——磁盘管理与备份压缩

    运行时发现上面命令不成功,换成:   (将文件lkw放入压缩文件lkw01.zip中) 解压文件: 实操:权限问题得在命令前加sudo。 3.2.1 将文件压缩为gz类型的压缩文件 将所有文件压缩为gz:  3.2.2 显示gz压缩文件的基本信息 3.2.3 解压gunzip 将压缩文件demo.gz做解压处理: 3.2.4 创建文件

    2024年02月10日
    浏览(25)
  • 读数据压缩入门笔记10_通用压缩和序列化

    1.2.3.1. 如果今天多云,那么明后两天会下雨的概率是多少? 1.2.5.1. 要使马尔可夫链算法变得实用,就必须要解决内存消耗问题与计算性能问题,即使用最佳链来编码 1.4.3.1. 在PPMZ算法中,对于符号如何去响应匹配,人们尝试了多种类型的上下文 1.4.6.1. 缺点是在进行数据压

    2024年02月16日
    浏览(40)
  • 读数据压缩入门笔记03_VLC

    14.4.1.1. 不知道最大的整数会是多大 14.4.3.1. 相应的码字就由两部分组成,即与此整数相当的2的次幂再加上余数 14.4.4.1. 找出最大的整数N,使其满足2 N<n<2 (N+1),并且将n表示为n=2^N+L这样的形式 14.4.4.1.1. L=n-2^N 14.4.4.1.2. n=12,2 3=8,2 4=16,2 3<n<2 4,N=3 14.4.4.1.3. L=12-2^3=4 14.4.4.2

    2024年02月07日
    浏览(111)
  • 读数据压缩入门笔记04_统计编码

    8.1.2.1. ZHuff、LZTurbo、LZA、Oodle和LZNA这些压缩工具已开始使用ANS 8.2.1.1. 它只使用加法、掩码和移位运算,使ANS对开发人员更具吸引力 8.7.1.1. 它使得从符号转换为数值再从数值转换为符号成为可能 8.7.1.2. 表中的每个值都是唯一的(即不存在重复) 8.7.1.3. 每列都按照值从小到

    2024年02月08日
    浏览(39)
  • 读数据压缩入门笔记07_自适应统计编码

    3.3.1.1. 这个符号之前出现过吗? 3.3.1.2. 如果出现过,那么输出当前分配的码字,并更新其出现的概率 3.3.1.3. 如果没有,则进行一些特殊处理 3.3.1.3.1. 动态概率表 3.3.1.3.2. 重置 3.3.1.3.3. 字面值

    2024年02月16日
    浏览(38)
  • RFSoC应用笔记 - RF数据转换器 -05- RFSoC关键配置之RF-ADC内部解析(三)

    RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义。本文参考官方手册,主要对RFSoC ADC的校准机制进行介绍。 Zynq UltraScale+ RFSoC 中的每个 RF-ADC 都建立在交错架构中的多个子 RF-ADC 之上。 交织过程的性质要求

    2024年02月15日
    浏览(47)
  • 读数据压缩入门笔记02_二进制和熵

    2024年02月06日
    浏览(88)
  • 100天精通Python丨基础知识篇 —— 05、7大基础数据类型详解(变量、列表、集合、字典、元组)

    《100天精通Python专栏 - 快速入门到黑科技》 是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造,专栏分为基础知识篇和黑科技应用篇。 基础知识篇 以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框

    2023年04月18日
    浏览(63)
  • WPF 入门笔记 - 05 - 依赖属性

    如果预计中的不幸没有发生的话,我们就会收获意外的喜悦。 --人生的智慧 - 叔本华 这一部分是中途加的,直接依赖属性有点迷糊😪,正好有了绑定的基础,理解起来还一些。 WPF 提供一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。这些服务通常统称为

    2024年02月09日
    浏览(38)
  • python教程 入门学习笔记 第6天 数据类型转换 字符串转换成数值 数值之间互转 其它类型转字符串

    s1=\\\"188\\\" #字符串 ns1=int(s1) #转换成整型数值 print(ns1+8) #打印数值结果 s1=\\\"3.14\\\" #字符串 ns1=float(s1) #转换成浮点型数值 print(ns1+3) #打印数值结果(数值结果为6.140000000000001,出现误差,后面讲解决办法) print(type(ns1)) #获取新数值的数据类型属性 z1=78 nz1=float(z1) print(nz1) #打印结果

    2024年02月14日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包