lz4 与 lz77 压缩算法举例

news2024/11/23 14:04:54

lz4算法

abcd efab cdeh

压缩过程:

以长度4为滑窗,1为步长,对abcd计算hash存入hash table,计算 bcde, cdef,defa,efab,fabc的 hash 分别加入 hash table,下一个滑窗 abcd 找到了匹配,于是扩大匹配,bcde 也有匹配,且start 位置是在abcd 之后1位,再扩大匹配,cdeh 没有匹配,所以匹配长度为5,向前偏移为6。

这时前面未出现匹配的abcedf就可以编码了,编码为0b01100000 (token) + abcdef,其中0110是未匹配字节的长度(6),如果未匹配长度为512,大于19(15 + 最小匹配长4),则token编码为0b11110000 0b11111111 0b 11101100(即 4 + 15(第一字节高4位) + 256 (第二字节)+ 237(第三字节)),前一部分编码为了token + abcdef。

后面匹配的abcde编码为0b00000110 (token) + 6(2byte),即0110(低4位表示匹配长度),后两个字节填充6。

编码的格式为
在这里插入图片描述

lz77 算法

在长度为2n窗口内,每3个字节求为一个hash值,以此来找在匹配的hash字符串链,hash表的字符串链中存的是当前窗口内字符串的位置。当滑窗中未读的部分长度小于阈值时,就把前一半丢掉,窗口向后移动一半长度。最后输出三个文件:

  • 文件1:标记:0表示原字符,从文件2读1字节;1表示从文件3读距离,与这后面的长度组成一对,从前面解压的输出中去读。
  • 文件2:原字符:(1字节)
  • 文件3:距离:(两字节)
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/848800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Acwing.883 高斯消元解线性方程组

题目 输入一个包含n个方程n个未知数的线性方程组。 方程组中的系数为实数。 求解这个方程组。 下图为一个包含m个方程n个未知数的线性方程组示例: 输入格式 第一行包含整数n。 接下来n行,每行包含n1个实数,表示一个方程的n个系数以及等号右侧的常数。 …

Spark Catalog详解

前言 旁边的实习生说:我想要用spark代码中对hive库中的内部表和外部表进行删除(包括数据),咋感觉网上搜了一圈都找不到解决方案啊,spark这么鸡肋吗? 我:你应该静下心来好好把spark基础知识进行全面学习。 实习生:难道spark有这功能,而我没有学习过?咋弄啊? 我:学习…

WinForm项目打包成一个exe安装包教程(VS2022)

目录 1、下载扩展Microsoft Visual Studio Installer Projects 2、新建Set up项目 3、应用程序文件夹下添加文件 4、添加卸载程序 5、添加运行环境 6、添加程序图标(选做) 7、生成项目exe 1、下载扩展Microsoft Visual Studio Installer Projects…

深入篇【C++】C++<继承>特性详细总结附代码案例(单继承/多继承)

深入篇【C】C<继承>特性详细总结(单继承/多继承&#xff09; Ⅰ.继承理解Ⅱ.继承方式Ⅲ.基类派生类对象赋值转化Ⅳ.继承中同名成员Ⅴ.派生类的默认成员函数Ⅵ.继承中友元与静态Ⅶ.多继承<菱形继承问题>Ⅷ.继承与组合 Ⅰ.继承理解 继承的本质就是复用&#xff0c;而…

螺旋模型四象限指的是什么?

螺旋模型融合了瀑布模型、快速原型模型&#xff0c;最大的优点强调了风险分析&#xff0c;有助于将软件质量融入开发中;小分段构建大型软件&#xff0c;易于计算成本;客户参与&#xff0c;保证项目可控性。但构建过程太过繁琐&#xff0c;适合大型项目不适合小型项目。 上图是螺…

通信原理板块——基础知识(一)

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、通信的基本概念——消息、信息和…

【QT】 QTabWidgetQTabBar控件样式设计(QSS)

很高兴在雪易的CSDN遇见你 &#xff0c;给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT控件QTabWidget&QTabBar的样式设计&#xff0c;介绍两者可以自定义的内容&#xff0c;以及如何定义&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴…

内生安全构建数据存储

一、数据安全成为防护核心&#xff0c;存储安全防护不容有失 1、数据作为企业的核心资产亟需重点保护&#xff0c;数据安全已成网络空间防护核心 2、国家高度重视关键信息基础设施的数据安全&#xff0c;存储安全已成为审核重点 二、存储安全是数据安全的关键一环&#xff0c;应…

Linux6.35 Kubernetes Pod详解

文章目录 计算机系统5G云计算第三章 LINUX Kubernetes Pod详解一、Pod基础概念1.在Kubrenetes集群中Pod有如下两种使用方式2.pause容器使得Pod中的所有容器可以共享两种资源&#xff1a;网络和存储3.kubernetes中的pause容器主要为每个容器提供以下功能4.Kubernetes设计这样的P…

VBA技术资料MF41:VBA_将常规数字转换为文本数字

【分享成果&#xff0c;随喜正能量】时有落花至&#xff0c;远随流水香。人生漫长&#xff0c;不攀缘&#xff0c;不强求&#xff0c;按照自己喜欢的方式生活&#xff0c;不必太过在意&#xff0c;顺其自然就好。路再长也有终点&#xff0c;夜再黑也有尽头。 我给VBA的定义&am…

纯鸿蒙!华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件

8月7日消息&#xff0c;近日&#xff0c;华为举行2023年华为开发者大会&#xff08;HDC.Together&#xff09;上&#xff0c;除了发布HarmonyOS 4、全新升级的鸿蒙开发套件外&#xff0c;华为还带来了HarmonyOS NEXT开发者预览版。 据了解&#xff0c;HarmonyOS NEXT开发者预览…

Android Framework解析——WMS原理

作者&#xff1a;bobby_developer 1. WMS原理&#xff1a;WMS角色与实例化过程 window:它是一个抽象类&#xff0c;具体实现类为 PhoneWindow &#xff0c;它对 View 进行管理。Window是View的容器&#xff0c;View是Window的具体表现内容&#xff1b; windowManager:是一个接…

个人玩具小程序商城制作攻略,不容错过

在如今的移动互联网时代&#xff0c;小程序成为了企业和个人开展业务的重要工具。如果你是一个小白用户&#xff0c;想要打造一个玩具小程序商城&#xff0c;但又没有编程基础&#xff0c;不用担心&#xff01;本文将通过乔拓云提供的简单操作步骤&#xff0c;教你如何轻松实现…

林【2019】

关键字&#xff1a; 哈夫曼树权值最小、哈夫曼编码、邻接矩阵时间复杂度、二叉树后序遍历、二叉排序树最差时间复杂度、非连通无向图顶点数&#xff08;完全图&#xff09;、带双亲的孩子链表、平衡二叉树调整、AOE网关键路径 一、判断 二、单选 三、填空 四、应用题 五、算…

VScode中同时打开两个脚本

使用快捷键&#xff1a; CtrlAltRightArrow 效果&#xff1a; 可以看到&#xff0c;上述两个脚本使用独立的窗口进行编辑和查看。

Ajax 笔记(二)

笔记目录 2. Ajax 综合案例2.1 案例一-图书管理2.1.1 渲染列表2.1.2 新增图书2.1.3 删除图书2.1.4 编辑图书 2.2 案例二-背景图的上传和更换2.2.1 上传2.2.2 更换 2.3 案例三-个人信息设置2.3.1 信息渲染2.3.2 头像修改2.2.3 信息修改2.3.4 提示框 Ajax 笔记接口文档&#xff1…

图片如何转化为pdf格式?几种好用方法推荐

图片如何转化为pdf格式&#xff1f;在当今社会&#xff0c;我们经常需要将多张图片转化为PDF格式&#xff0c;比如将多张照片合并成一份文档&#xff0c;或者将一系列的截图整合在一起。那么&#xff0c;我们该如何将图片转化为PDF格式呢&#xff1f;本文将介绍几种好用的方法&…

Qt做警告处理界面

解决的问题&#xff1a; 做上位机时&#xff0c;多有检测仪器状态&#xff0c;事实显示警告&#xff0c;错误等状态&#xff0c;笔者就是需要显示各种仪器状态&#xff0c;做显示&#xff0c;后做出处理逻辑 Axure设计图&#xff1a; 需求&#xff1a;更新状态&#xff0c;根…

7.2 手撕VGG11模型 使用Fashion_mnist数据训练VGG

VGG首先引入块的思想将模型通用模板化 VGG模型的特点 与AlexNet&#xff0c;LeNet一样&#xff0c;VGG网络可以分为两部分&#xff0c;第一部分主要由卷积层和汇聚层组成&#xff0c;第二部分由全连接层组成。 VGG有5个卷积块&#xff0c;前两个块包含一个卷积层&#xff0c…

qemu 虚拟化

一、介绍QEMU Qemu是种非常古老的虚拟化技术&#xff0c;用于虚拟化系统组件并在其上运行多种CPU架构的程序或操作系统。 借助KVM&#xff0c;Qemu可以通过使用基于硬件的虚拟化来获得超快的计算速度。QEMU充当硬件供应商&#xff0c;KVM是CPU。KVM驻留在Linux内核中&#xff0…