【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩

article/2025/8/7 8:36:57
  • 本文出自ELT.ZIP团队,ELT<=>Elite(精英),.ZIP为压缩格式,ELT.ZIP即压缩精英。
  • 成员:
    • 上海工程技术大学大二在校生
    • 合肥师范学院大二在校生
    • 清华大学大二在校生
    • 成都信息工程大学大一在校生
    • 黑龙江大学大一在校生
    • 华南理工大学大一在校生
  • 我们是来自6个地方的同学,我们在OpenHarmony成长计划啃论文俱乐部里,与华为、软通动力、润和软件、拓维信息、深开鸿等公司一起,学习和研究操作系统技术

文章目录

    • 介绍
    • LZ4 分析
      • 从算法上看
      • 从结构上看
    • LZ4m 分析
    • 评估
    • 结论
    • 参考文献

【往期回顾】
 ① 2月23日 《老子到此一游系列》之 老子为什么是老子 —— ++综述视角解读压缩编码++
 ② 3月11日 《老子到此一游系列》之 老子带你看懂这些风景 —— ++多维探秘通用无损压缩++
 ③ 3月25日 《老子到此一游系列》之 老子见证的沧海桑田 —— ++轻翻那些永垂不朽的诗篇++
 ④ 4月4日  《老子到此一游系列》之 老子游玩了一条河 —— ++细数生活中的压缩点滴++
 ⑤ 4月18日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——一文穿透多媒体过往前沿++
 ⑥ 4月18日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——这些小风景你不应该错过++
 ⑦ 4月18日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——浅析稀疏表示医学图像++
 ⑧ 4月29日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——计算机视觉数据压缩应用++
 ⑨ 4月29日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——点燃主缓存压缩技术火花++
 ⑩ 4月29日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——即刻征服3D网格压缩编码++
 ⑪ 5月10日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——云计算数据压缩方案++
 ⑫ 5月10日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——大数据框架性能优化系统++
 ⑬ 5月10日 ++【ELT.ZIP】OpenHarmony啃论文俱乐部——物联网摇摆门趋势算法++
 ⑭   5月22日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部——电子设备软件更新压缩++
 ⑮   5月22日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部——人工智能短字符串压缩++
 ⑯   5月22日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部——多层存储分级数据压缩++
 ⑰   6月3日    ++【ELT.ZIP】OpenHarmony啃论文俱乐部——数据高通量无损压缩方案++
 ⑱   6月3日    ++【ELT.ZIP】OpenHarmony啃论文俱乐部——快速随机访问字符串压缩++
 ⑲   6月13日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部——gpu上高效无损压缩浮点数 ++
 ⑳   6月13日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部—一种深度神经网压缩算法 ++
 ㉑   6月13日   ++【ELT.ZIP】OpenHarmony啃论文俱乐部—硬件加速的快速无损压缩++

【本期看点】

  • 揭秘谷歌应用EROFS到安卓的原因
  • EROFS为何能在文件压缩系统领域大放光彩
  • 神秘的LZ4m如何给内存压缩领域带来新的生机

【技术DNA】

请添加图片描述

【智慧场景】

********************************************************************************************************************************************************************************************************************************************************************************************************************************************************
场景自动驾驶 / AR语音信号流视频GPU 渲染科学、云计算内存缩减科学应用医学图像数据库服务器人工智能图像文本传输GAN媒体压缩图像压缩文件同步数据库系统通用数据系统数据读写
技术点云压缩‎稀疏快速傅里叶变换‎有损视频压缩网格压缩动态选择压缩算法框架无损压缩分层数据压缩医学图像压缩无损通用压缩人工智能图像压缩短字符串压缩GAN 压缩的在线多粒度蒸馏图像压缩文件传输压缩快速随机访问字符串压缩高通量并行无损压缩增强只读文件系统
开源项目Draco / 基于深度学习算法/PCL/OctNetSFFTAV1 / H.266编码 / H.266解码/VP9MeshOpt / DracoAresLZ4HCompressDICOMBrotliRAISRAIMCSOMGDOpenJPEGrsyncFSSTndzipEROFS

介绍

随着随着互联网突飞猛进地发展,我们已经进入了“大数据时代”。对于大部分像抖音、淘宝等应用来说,其庞大的数据量、数据的复杂程度等都无疑会带来很多问题;就拿淘宝来说,打开淘宝APP,一大堆的信息就会推送给你,像是文字、图片、直播的视频等等都会在数据方面带来巨大的开销。如果能够试图压缩这些 “数据密集型(data-intensive)” 应用所带来的数据,那么对于手机、电脑等等消费设备来说,人们将会从价格高昂的高端设备转而选择更便宜的配备小内存的型号。

在这里插入图片描述

要想让“数据密集型”应用所产生的数据“瘦下来”可不是一件容易的事,因为 “压缩自古两难全”,想要压缩比高,又不在性能(压缩速度)上减少,很难有这种两全其美的事。但对于一个应用来说,用户体验不能太差,这直接关系到内存中的数据压缩,因为内存访问的性能将会严重影响整个系统的性能,为此 Wilson 等人提出了 WKdm 算法,该算法利用了从内存数据中观察的规律,从而展现出了非常出色的压缩速度,但是它较差的压缩比成为了它迈向成功的“绊脚石”。因此,作者将本文中提出的算法与其做对照。

文中,作者提出了一种新的压缩算法,LZ4m;和 Wilson 提出的 WKdm 算法一样,通过内存数据中经常观察到的特征来加快 LZ4 算法输入流的扫描;其次,针对 LZ4 算法,作者修改了其编码方案,使其压缩后的数据能够以更简洁的形式表示,结果表明,LZ4m 在压缩和解压缩的速度上分别比 LZ4 算法提高了 2.1x 和 1.8x,压缩比的 marginal loss 小于 3%

LZ4 分析

很多低压缩延迟的压缩算法都是基于 Lempel-Ziv 算法的,但是其仍有缺点,因为其最长匹配以及部分较长的匹配很难再带来时间和空间开销的减少,从而招致很高的时间和空间开销。因此,在实践中,大家通常会改变策略来快速识别足够长的子字符串。

LZ4 则是在 Lempel-Ziv 算法的基础上发展起来的最成功的压缩算法之一,下面为对 LZ4 的匹配过程进行解释:

从算法上看

在这里插入图片描述

  • LZ4 主要在其滑动窗口哈希表部分,滑动窗口每次扫描 4 字节的输入流,并检查窗口中的字符串是否在之前出现过。
  • 为了辅助匹配,LZ4 维护了一个哈希表,并将 4 字节的字符串从输入流开始的地方映射。
  • 如果哈希表中包含当前滑动窗口中的字符串,那么将从当前扫描位置继续匹配字符串,前后两个具有相同前缀的子串能够匹配出一个最长子串,对应哈希表条目更新到当前起始扫描位置。
  • 滑动窗口继续移动,不断更新哈希表中没有的子串的条目,直到滑动窗口达到结尾。

从结构上看

在这里插入图片描述

  • 输入流被编码成了一个编码单元,一个 编码单元(Encoding unit)首部(Token)主体(Body) 两个部分组成。
  • 每个编码单元 都以 1 字节的首部开始,首部的前四位用来表示 主体(Body)字面量长度 的大小,首部的后四位用来表示 匹配长度 的大小。
  • 如果字符串超过15字节,也就是首部的字面量长度的 4 位全为 1 时(1111),首部的字面量长度将减去 15 并放在首部后面的主体上。
  • 主体(Body)字面量数据匹配描述组成,其中匹配描述向后的匹配偏移量匹配长度 组成。
  • 主体中偏移量由 2 字节编码,因此 LZ4 可以回溯到 64 KB(2^16/1024)来查找匹配。
  • 紧跟在某个匹配(Match)之后的其他匹配(Match)以类似的方式编码,只是标记中的文字长度字段被设置为0000,并且主体(Body)省略了字面量(Literal)部分。

LZ4m 分析

由于 LZ4 是一种通用压缩算法没有针对某个特定方面做了特别的优化,它的压缩比以及解压缩速度没有针对某一领域完全释放。因此,这里将利用内存中数据的特性来对 LZ4 进行修改。

其次来说说内存中的数据。内存中的数据由虚拟内存页组成,其中包含来自应用程序的堆和栈的数据。堆和栈中包含常量、变量、指针和基本类型的数组,这些数据通常是结构化的,并与系统的字边界对齐

通过作者的观察,发现扫描匹配单词粒度中的数据可以在不显著损失压缩机会的情况下加速数据压缩。此外,由于 4 字节对其的缘故,更大的粒度可以用更少的位来表示长度和偏移量,子字符串可以用更简洁的形式编码。

在这里插入图片描述

根据以上信息,作者提出了 LZ4m 算法,即用 LZ4 表示内存中的数据。下图中则是 LZ4 与 LZ4m 的区别的对比,乍一看可能看不出有什么区别,滑动窗口、哈希表,两者该有的都有;但是细看就会发现,LZ4m 的首部比 LZ4 多了偏移量(Offset),其它部分(包括首部的字面量长度首部的匹配长度以及 主体的字面量的偏移量)也对内存大小方面做了改动。

由于 4 字节对齐,来获取结构中元素的偏移量,长度为 4 字节的倍数,两个最不重要的位总会是00(就像0,4,8,12 用 二进制表示为 0000、0100、1000、1100,后面两位总是0,我们便可以将其删掉来节省空间),这样 首部(Token)字面量长度(Literal length)匹配长度(Match length) 以及 主体(Body)匹配偏移量(Match offset) 都可以缩短 2 位。

请添加图片描述

此外,由于 LZ4m 是以 4 字节粒度压缩 4KB 的页面,所以偏移量最多需要 10 位,因此将偏移量的 2 个最高有效位放在首部(Token) 中,将剩下的 8 位放在主体中。

评估

  • 将 LZ4 和 LZO1x 评估为通用算法的代表,将 WKdm 评估为专业算法。论文收集了通过交换从主内存中清除的数据来收集内存数据。
  • 压缩比是页面的平均值,压缩比越小意味着相同数据的压缩大小越小。WKdm的压缩比最大,其次是LZ4m,LZ4,最后是LZO1x,速度归一化为 LZ4m。与通用算法(即 LZ4 和 LZO1x)相比,LZ4m 显示出可比较的压缩比,仅降低了 3%。
  • LZ4m 在速度上优于这些算法高达 2.1× 和 1.8× 分别用于压缩和解压缩。LZ4m 在压缩比和解压速度上高于 WKdm 许多,但代价是压缩速度下降了 21%。综上,LZ4m 在压缩比损失的情况下,大幅提高了 LZ4 的压缩/解压速度。

请添加图片描述

  • 下图显示了页面压缩率的累积分布。LZ4m 的压缩比曲线仅次与于 LZO 和 LZ4 算法一些,没有很大差距。而 WKdm 显示出明显的压缩比曲线,远远落后于其他算法。并且 6.8% 的页面根本无法使用 WKdm 进行压缩,而使用其他页面的比例不到 1%。这表明 WKdm 的压缩加速可以通过其较差的压缩比来抵消
  • 进一步比较 4 字节粒度的匹配偏移量和匹配长度的含义为目的,将从跟踪匹配长度入手,如图原始 LZ4 和 LZ4m 结果中计算匹配子串的长度,与累积匹配计数进行比较。放大了 LZ4 和 LZ4m 匹配长度在 0 到 32 之间的原始结果,增加的粒度只减少了总长度匹配的出现 2.5%,这意味着 4 字节粒度方案对找到匹配的机会影响很小,在匹配长度上的劣势也是微不足道的。

请添加图片描述

  • 时间和压缩比之间的关系,通过测量每个页面的压缩时间并平均具有相同压缩比的页面的时间可以获得算法的压缩速度。压缩良好的压缩页面的时间在算法中是相似的。比起 LZ4 和 LZO1x,LZ4m 显示出了出色的压缩速度 。因为 LZ4m 的扫描过程,如果没有找到前缀匹配,扫描窗口会提前 4 个字节,从而在难以压缩的页面上提高四倍的扫描速度。
  • 算法的解压缩速度与平均解压速度除以压缩比,速度的获得方式与平均压缩速度相同。 LZ4m 在几乎整个压缩比范围内的解压缩速度都优于其他算法。

请添加图片描述

结论

  • LZ4 是目前综合来看效率最高的压缩算法,更加侧重压缩解压速度,压缩比并不是第一。
  • 利用内存数据的固有特性优化了一种流行的通用压缩算法,根据数据,LZ4m 能极大地提高了压缩/解压缩速度,而压缩比没有实质性损失。
  • LZ4m 针对小块大小进行了优化。最大偏移量为 270(在 LZ4 中为 65535)。
  • LZ4m 背后开发人员计划将这种新的压缩算法用于现实世界的内存压缩系统。但从2017年后找不到更多的代码。

在这里插入图片描述

参考文献

[1] Kwon S J, Kim S H, Kim H J, et al. LZ4m: A fast compression algorithm for in-memory data[C]//2017 IEEE International Conference on Consumer Electronics (ICCE). IEEE, 2017: 420-423.


http://chatgpt.dhexx.cn/article/PV2ywhRn.shtml

相关文章

Nydus 镜像扫描加速

文&#xff5c;余硕 上海交通大学22届毕业生 阿里云开发工程师 从事云原生底层系统的开发和探索工作。 本文 6369 字 阅读 16 分钟 GitLink 编程夏令营是在 CCF 中国计算机学会指导下&#xff0c;由 CCF 开源发展委员会&#xff08;CCF ODC&#xff09;举办的面向全国高校学生的…

定了,6大领域93个开源任务,阿里开源导师带你参与中科院开源之夏2022

今年&#xff0c;由阿里巴巴开源导师参与的30个核心开源社区再次加入中国科学院软件研究所开源软件供应链点亮计划支持下的系列高校开源活动——开源之夏2022&#xff0c;共开放93个开源任务。通过本活动&#xff0c;同学们可以在顶级开源导师的指导下&#xff0c;通过3个月的时…

龙蜥操作系统 Anolis OS 8.6 - 来自阿里云的 CentOS 8 100% 兼容发行版

请访问原文链接&#xff1a;https://sysin.org/blog/anolis-os-8/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版&#xff0c;它支持多计算架构&#x…

remove是什么意思计算机语言,remove是什么意思?remove是什么意思?

remove()是C语言中的函数&#xff0c;一般作用是删除数组、链表对象所有的元素。函数原型是intremove(char*filename)。 函数功能 remove()函数用于删除指定的文件&#xff0c;其原型如下&#xff1a; int remove(char *filename); 函数声明2&#xff1a; templateinline bool …

Linux 知:文件系统

文章目录 1. 前言2. 文件2.1. 一切皆文件2.2. 文件属性2.3. 目录结构2.4. 文件路径 3. 文件系统3.1. 文件系统种类3.2. 文件系统特性3.2.1. 格式化3.2.2. 格式 3.3. EXT 族文件系统3.3.1. EXT2 文件系统3.3.1.1. data block&#xff08;数据区块&#xff09;3.3.1.2. inode tab…

8 亿邮件地址泄露,源于邮件验证服务;腾讯推出微信公众号直播工具

(给技术最前线加星标&#xff0c;每天看技术热点) 转自&#xff1a;开源中国、solidot、cnBeta、腾讯科技、快科技等 【技术资讯】 0、8 亿邮件地址遭泄露&#xff0c;源于邮件验证服务 近日&#xff0c;Security Discovery 安全研究人员 Bob Diachenko 发现了一个150 GB 大小、…

LWN: 5.17 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e; 5.16 Merge window, part 1 By Jonathan CorbetNovember 4, 2021DeepL assisted translationhttps://lwn.net/Articles/874683/ 截止到撰写此文的时候&#xff0c;Linus Torvalds 已经为 5.16 版本内核而向内核合入了 6800 个 no…

Linux出现Read-only file system错误解决方法

执行命令时遇到如下错误 这个问题是文件系统受损导致得&#xff0c;fstab文件未正确配置 解决方法&#xff1a; df -hT  #查看一下分区及挂载信息 fsck -a /dev/sda3  -a &#xff1a;检查文件系统&#xff0c;有异常便自动修复 执行完毕之后重启服务器 reboot 进入服务器&…

只需 6 步,你就可以搭建一个云原生操作系统原型

编者按&#xff1a;过去的三年对基础软件领域来说是不平凡的三年&#xff0c;是波涛汹涌的三年。随着国际形势和行业格局的变化&#xff0c;大家一定充分感受到了云原生和操作系统这两个话题的热度。那么当云原生和操作系统这两个热点话题相遇的时候&#xff0c;会发生什么故事…

Linux 内核源代码情景分析(四)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理 Linux 内核源代码情景分析&#xff08;一&#xff09; Linux 内核源代码情景分析&#xff08;二&#xff09; Linux 内核源代码情景分析&#xff…

TWS蓝牙耳机推荐哪个?2022国产无线蓝牙耳机推荐

随着各大手机厂商逐渐取消了传统的耳机插孔后&#xff0c;就有越来越多的人开始使用蓝牙耳机了。即使是过去一直觉得蓝牙耳机不太实用&#xff0c;最后也无法摆脱“真香理论”&#xff01;&#xff01;在蓝牙技术的快速发展的今天&#xff0c;蓝牙耳机在连接性能和音质方面取得…

女生小清新高颜值蓝牙耳机分享,低延迟高性价比TWS蓝牙耳机推荐

在电子竞技空前火热的今天,玩家对于游戏耳机的要求不仅仅停留在能听见声音的层面。特别是目前比较火热的射击类游戏对于游戏耳机的要求更加高,一款出色的游戏耳机可以让玩家在战场上“如虎添翼”,不仅如此,对于玩家而言,游戏时间基本两三个小时起步,因此长期佩戴的舒适性…

真无线蓝牙耳机什么牌子好?TWS蓝牙耳机推荐

蓝牙耳机的形态可以说是多种多样了&#xff0c;随着时代的发展&#xff0c;蓝牙耳机变成了我们不可或缺的东西&#xff0c;左右耳两只小小的耳机&#xff0c;搭配一个耳机仓。整个过程仅需要打开蓝牙就行&#xff0c;非常方便。那么在蓝牙耳机的带领下&#xff0c;什么款式的蓝…

2022TWS蓝牙耳机推荐,盘点600元真无线蓝牙耳机

近年来&#xff0c;随着蓝牙技术的发展和续航能力的提升&#xff0c;蓝牙耳机开始进入了"真"无线时代。在短短的几年内&#xff0c;TWS耳机成为了大家竞相占领的重要“城池”&#xff0c;各类蓝牙耳机如雨后春笋般出现。今天就来说说被各大网友推荐上榜单的音质好的蓝…

TWS蓝牙耳机哪些品牌好?TWS蓝牙耳机品牌排行榜

或许有很多人在挑选蓝牙耳机时候有所困扰&#xff0c;因为有一些蓝牙耳机动辄上千元&#xff0c;对于预算不足&#xff0c;对我朋友来说实在是头疼。每个人的需求不同&#xff0c;所以在挑选蓝牙耳机时候也会有所侧重。推荐几款平价蓝牙耳机&#xff0c;不足千元的价格&#xf…

PT2050(TWS 蓝牙耳机二合一触摸 IC)

1. 产品概述 PT2050 是一款应用于双入耳检测或单入耳检测的 TWS 蓝牙耳机二合一触摸检测芯片。该芯片内建稳压电路&#xff0c;提供稳定电压给触摸感应电路使用&#xff0c;同时内部集成高效完善的触摸检测算法&#xff0c;使得芯片具有稳定的触摸检测效果&#xff0c;具有宽工…

2021年TWS蓝牙耳机哪个好?tws蓝牙耳机排名!

自从各大手机取消了3.5mm耳机孔后&#xff0c;随身音频行业的发展速度就相当快&#xff0c;因此&#xff0c;TWS蓝牙耳机成为了更普遍的选择。越来越多的厂家也都涉足到这一领域&#xff0c;使得大家的选择越来越丰富&#xff0c;可谓乱花渐欲迷人眼&#xff0c;那么多的耳机&a…

TWS蓝牙耳机推荐,新手入门高性价比高音质蓝牙耳机

对于新手来说,买真无线蓝牙耳机确实是一个头痛的问题,毕竟近年来真无线蓝牙耳机市场特别火爆,各个品牌上市的真无线蓝牙耳机型号层出不穷。所以,笔者今天就以自身经验,盘点全网最火爆的三款蓝牙耳机品牌。 第一款:网易云音乐定制款--Music Pods 做工质感: 防滑防指纹…

苹果6s解除耳机模式_百元TWS蓝牙耳机i27小试

前言 我是个上下班通勤时间以小时计算的苦逼上班族&#xff0c;上个班差点横跨武汉三镇&#xff01;步行地铁模式&#xff0c;入耳式耳机戴久了会有些不舒服&#xff0c;听诊器效应你懂的&#xff0c;所以我的铁三角CK90长期在家里待命。急需一款佩戴舒适、音质尚可且价格亲民的…

耳机不分主从是什么意思_可以信赖的游戏队友,红魔TWS蓝牙耳机入手试听

你需要一个什么样的游戏耳机 蓝牙耳机的细分是越来越详细了&#xff0c;就拿游戏来说&#xff0c;为了提高游戏体验&#xff0c;游戏竞技蓝牙耳机应运而生。和普通蓝牙耳机相比&#xff0c;竞技蓝牙耳机在提升声音效果的同时更加注重游戏体验的提升&#xff0c;如声音还原更加到…