问题标签 [lz4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1200 浏览

delphi - 解压未知大小的 LZ4 流

我想解压缩二进制数据中的 LZ4 原始流。我阅读了文档并提出了以下功能。根据代码,它应该继续解压缩,直到用完压缩数据,但事实并非如此。我究竟做错了什么?另外,我想为压缩大小添加一个 writeln。

编辑1:删除了释放输出缓冲区(临时缓冲区)的部分,问题仍然存在,而不是解压缩整个流然后退出,它只是事先退出循环。

0 投票
1 回答
1017 浏览

ios - 从 iOS 的 compression_encode_buffer 解码 LZ4 输出

我有一个压缩一堆小数据块的 iOS 应用程序。我使用在 LZ4 模式下运行的 compression_encode_buffer 来执行此操作,以便它足够快以满足我的需要。

后来,我拿了我制作的文件并在非 Apple 设备上对其进行解码。以前我一直在使用他们的 ZLIB 压缩模式,并且可以使用 System.IO.Compression.DeflateStream 在 C# 中成功对其进行解码。

但是,我对 LZ4 的输出玩得很开心。根据此处的 LZ4 文档,Apple 将流分成一堆块,每个块都以 4 字节幻数、4 字节解压缩大小和 4 字节压缩大小开始。所有这些都是有道理的,我能够将文件解析为其组成的 raw-LZ4 块。iOS 输出缓冲区中的每个块都解压缩到大约 65,635 个字节,在我的例子中大约有 10 个。

但是后来:我不知道如何处理剩下的 LZ4 块。我尝试使用 LZ4net 的 LZ4.LZ4Stream、LZ4net 的 LZ4.LZ4Codec 对它们进行解码(它管理第一个块,但是当我输入第二个块时失败)。我还尝试了几个 C++ 库来解码数据。他们每个人似乎都在寻找 iOS 压缩函数以非标准方式编码的标头。

0 投票
0 回答
189 浏览

compression - LZ4 在 mips(小端)上压缩文件并在 x86(大端)上解压缩时崩溃

我在具有不同架构的设备上使用 LZ4 压缩算法时遇到问题。

这是场景:

  • 我有两台设备,一台是带有 openwrt 操作系统的 mips32,另一台是 x86(32 位)ubuntu
  • mips 是小端,x86 是大端
  • 我使用 lz4 git 代码形式https://github.com/lz4/lz4并为每个设备编译
  • 当我在 mips 设备或 x86 上压缩文件并在同一设备上解压缩时,一切正常,但是当我在 mips 上压缩文件并在 x86 中解压缩时,反之亦然,它无法解压缩并返回零大小的文件.

似乎 lz4 应该在不同的架构中工作,但我找不到这里发生了什么。

任何帮助将不胜感激。

最好的,

马吉德。

0 投票
1 回答
99 浏览

compression - lz4能找到连续重复的子串吗?

我查看了链接以了解 lz4 的工作原理。我写了以下测试。我们可以看到 sinInput2 不能被压缩,因为它只有随机数据。sinInput1 的大小减小到 1/8。我猜这是因为它的数据有 8 个不同的块。这是否意味着 lz4 可以找到重复的子字符串?它对可以找到子字符串的时间有任何限制吗?

0 投票
1 回答
748 浏览

python - 使用 lz4 解压缩十六进制字节数据

首先,使用 tcpdump 捕获 udp 广播数据,其中一个数据包(所有数据包都相似)看起来像这样。

从这里开始,通过获取数据块,下面给出了使用 LZ4 压缩算法编码的字节压缩数据。

关于如何解压缩和获取实际数据的任何建议,压缩数据看起来像这样。

0 投票
0 回答
422 浏览

node.js - node js LZ4 decodeBlock用Buffer解压循环

现在我正在编码解压缩文件,我在https://github.com/pierrec/node-lz4中引用 LZ4.decodeBlock 。但我需要读取一个切片并使用循环解压缩。我编码如下。它工作正常。但它使用了大量的内存。就像每个带有新的 64K 缓冲区的切片一样。

然后我想优化内存使用,我修改如下。它将使用更少的内存。但它不能解压到与原始文件相同的内容。

那么我应该如何使用缓冲区优化内存使用呢?

0 投票
1 回答
659 浏览

c++ - C++ 使用 lz4 压缩,压缩信息不如预期

我在mac上使用lz4并做一个实验来压缩我的程序中的一个字符串(名为str)。

运行这个程序,我检查了“lz4.dat”文件:

它是 34 字节,可以,但是程序输出是:

很奇怪,收到的文件大小似乎是 1 字节,我实际上输出了一些随机 @1010。为什么我的“is.tellg()”没有得到正确的文件长度?

谢谢。

0 投票
0 回答
93 浏览

compression - LZ4 压缩是否消除了手动位打包的需要?

我正在考虑将 LZ4 压缩用于我正在开发的高带宽浏览器游戏。我目前正在将 1000 个 float32 值预压缩到 16 位。我想知道我是否预压缩到 12 位但将这些值保存为 uint16s,LZ4 是否会删除空位并为我节省手动位打包这些值的工作。

0 投票
2 回答
2124 浏览

python - Pandas to_hdf 的溢出错误

Python新手在这里。

我正在尝试使用 to_hdf 使用 lz4 压缩将大型数据帧保存到 HDF 文件中。

我使用 Windows 10、Python 3、Pandas 20.2

我收到错误“OverflowError: Python int too large to convert to C long”。

没有任何机器资源接近其限制(RAM、CPU、SWAP 使用)

以前的帖子讨论了dtype,但下面的例子表明还有一些其他问题,可能与大小有关?

0 投票
0 回答
238 浏览

java - 带有 lz4 压缩的 Jetty 9

目前我已经嵌入了带有默认 gzip 压缩的 Jetty 9,它可以处理压缩成 4.6MB 的 65MB 文本数据。当一次性提供所有数据时,这非常快。但是,当文本数据作为流给出时,性能会下降很多。

我正在尝试找到可以插入 Jetty 9 以加快压缩速度的替代压缩算法。我正在寻找此处描述的 LZ4 压缩,并想知道如何插入 Jetty 9。