问题标签 [lz77]

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 回答
1318 浏览

c - LZSS 与 LZ77 压缩差异

LZSS有人可以解释一下和LZ77算法之间的区别吗?我已经在网上找了几个小时,但我找不到区别。我找到了 LZ77 算法并且理解了它的实现。

但是,与 有何LZSS不同LZ77?比方说,如果我们有一个字符串"abracadabra",如何以LZSS不同的方式压缩它LZ77?是否有我可以遵循的 C 伪代码?

感谢您的时间!

0 投票
1 回答
73 浏览

compression - 非字节对齐数据的 gzip 压缩

位打包对 gzip 的性能有害吗?假设我有 7 位值并按以下方式打包:

据我了解,LZ 压缩以字节为基础。7 位中的任何重复模式都将被掩盖。

是否建议为字节对齐添加额外的位以帮助 LZ?

文献中有这方面的结果吗?

0 投票
2 回答
109 浏览

gzip - DEFLATE 只能压缩最多 32 KiB 的重复字符串吗?

根据DEFLATE 规范

  1. 压缩表示概述

压缩数据集由一系列块组成,对应于输入数据的连续块。块大小是任意的,但不可压缩块限制为 65,535 字节。

每个块都使用 LZ77 算法和 Huffman 编码的组合进行压缩。每个块的霍夫曼树独立于前一个或后一个块的霍夫曼树;LZ77 算法可以使用对出现在前一个块中的重复字符串的引用,之前最多 32K 输入字节。

每个块由两部分组成:一对描述压缩数据部分表示的霍夫曼代码树,以及一个压缩数据部分。(霍夫曼树本身是使用霍夫曼编码压缩的。)压缩数据由两种类型的一系列元素组成:文字字节(在之前的 32K 输入字节中未被检测为重复的字符串)和指向重复字符串的指针,其中指针表示为一对<长度,向后距离>。“deflate”格式中使用的表示将距离限制为 32K 字节,长度限制为 258 字节,但不限制块的大小,但不可压缩块除外,如上所述受到限制。

所以指向重复字符串的指针只能返回 32 KiB,但由于块大小不受限制,Huffman 代码树是否可以将两个超过 32 KiB 的重复字符串存储为相同的代码?那么限制因素是块大小吗?

0 投票
1 回答
201 浏览

java - 如何合并霍夫曼和lz77?

我有 huffman 和 lz77 代码,但我需要任何方法来合并这些算法以使 deflate

我怎么能这样做?

我必须在不使用库的情况下手动编写它。

0 投票
1 回答
147 浏览

algorithm - LZ77 压缩速度慢

我正在使用 LZ77 算法编写简单的压缩程序。我的问题是任何大文件的压缩速度都非常慢(对于 2 MB 图像,如果缓冲区大小为 12 且字典大小为 4096,则需要 1 分钟以上)。我使用 Boyer-Moore-Horspool 算法在字典中搜索当前缓冲区前缀。请告诉我什么会导致这种速度变慢,有什么方法可以提高这段代码的性能吗?

0 投票
1 回答
160 浏览

python - 我正在为图像实施 lz77 压缩。但是如果我插入一个 RGB 图像,输出是错误的,你们能帮我吗?

当我插入灰度图像时,如果我插入 rgb 图像,则该算法有效,输出错误。我使用 rgb 图像的方式是否正确?我不明白为什么有人可以帮助我?

使用的图书馆

从 cv2 导入 numpy 作为 np 导入 cv2

元组和字符数组

搜索缓冲区中的指针

空序列

检查 lookAheadBuffer 中是否有匹配项

在数组中保存对应关系和元组

**保存encodedTuple、encodedChar、文件compresses.txt和解压的imsize **

**主要的 **

lz77Compress(路径,500,500)

0 投票
0 回答
71 浏览

image-processing - lzz 77 压缩图像 rgb

如果我插入大小为 (205,205) 的图像,算法会非常快速地压缩它。但是如果我插入一个更大的图像,该算法需要很长时间来压缩它。我的意图是优化代码,从而加快压缩阶段你有什么建议吗?

图书馆

元组和字符数组

0 投票
0 回答
368 浏览

python-3.x - ZPL II 将 Z64(base64 和 LZ77)解码为 Python 中的人类可读文本

我正在尝试在 python 中组合一个应用程序,它将 Zebra Designer 软件生成的 .prn 文件拆分为单个标签文件,该文件包含一个文件中的数千个标签。我需要提取下面突出显示的字段并将其解码为人类可读的形式,以用作单个标签文件的名称。我已尝试按照第 1435 页上的说明对 base64 进行解码并解压缩 LZ77:

Z64 编码执行以下操作:
• 使用 LZ77 算法压缩数据。
• 使用 MIME Base64 算法对压缩数据进行编码。
• 计算编码数据的CRC。
• 添加一个唯一的标头以将新格式与现有的 ASCII 十六进制编码区分开来。

下面是我试图以与打印机相同的方式解码回人类可读形式的标签的一部分。

我尝试使用下面的 python 代码来解码这一行 "eJztlL9uHDcQxoegExYp(...)fLrEEkssscQS/8/4BE9yVVQ=" 所以我剥离了 ZPL 语言编码,即 :Z64: 前缀和 :BB36 CRC 输出。代码来自这个线程

我得到的输出是这样的:

当通过标签查看器运行原始标签代码时,它显示为带有一些特殊字符的文本。如何将此压缩文本计算回人类可读的形式?

0 投票
1 回答
66 浏览

time - 如何设计一种高效的算法来支持 LZ77 压缩序列中的随机访问?

我正在做一个文本压缩项目,我需要在 LZ77 压缩序列中设计一个有效的算法。特别是,给定一个 LZ77 压缩序列和一个索引 i,我们可以恢复输入序列 S 的单个符号 S[i]。算法消耗的空间和随机访问一个符号的时间是我们追求的。</ p>

提前感谢您的建议。

0 投票
1 回答
42 浏览

gzip - 如何从 gzip 档案中提取编码字典

我正在寻找一种可以从 gzip 存档中提取由 DEFLATE 算法制作的编码字典的方法。

我需要 LZ77 从整个档案中制作指针,这些指针引用文件中的模式以及带有上述指针的霍夫曼树。

python有什么解决方案吗?

有谁知道可能提供字典的https://github.com/madler/infgen/blob/master/infgen.c吗?