问题标签 [lzw]

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

c - C语言中的LZW解压

我有一个用 C 编写的 LZW 压缩器/解压缩器。

初始表由 ASCII 字符组成,然后每个现在要保存到表中的字符串由一个前缀和一个字符组成,两者都保存在一个列表中作为 int。

我的压缩有效,但我的解压缩留下了一些字符。

输入:

我得到的输出(注意缺少'e'和'<'):

这是我使用的代码(相关部分):

你能发现吗?我将不胜感激。

0 投票
4 回答
13939 浏览

java - 如何在 Java 中进行 LZW 解码?

我有一个数据库,其中包含存储为二进制 blob 的图片数据。文档说数据是使用 LZW 编码的。我认为我可以使用 Java 库中的 Zip 或 GZip 输入流对其进行解码,但它不起作用 - 我收到一个异常,说数据格式不正确。

根据我的阅读,该库使用 DEFLATE,而不是 LZW。此外,我还阅读了有关使用 LZW 算法的一些许可问题。

我可以用什么来解码数据?有图书馆吗?我必须自己实施吗?许可问题怎么办?

0 投票
2 回答
533 浏览

c++ - 我可以在 Turbo C++ 程序中使用 dll,我们是否有任何用于 lzw 压缩和解压缩的 dll

我试图创建一个 lzw 压缩程序。但是我需要在今天自己完成它,所以我想使用一些 dll 将我的输入作为 txt 文件并作为文本文件输出。我想在执行我剩余功能的TURBO C++代码中执行此操作。任何人都可以建议我一些方法。

0 投票
8 回答
7728 浏览

c - 低内存条件下的LZW压缩/解压

任何人都可以指点我如何在低内存条件下(< 2k)实现 lzw 压缩/解压缩。那可能吗?

0 投票
3 回答
2282 浏览

javascript - 错误的 ELF 类 - Python

我正在尝试安装此库以进行LZJB压缩。PyLZJB 链接

该库是一个 C 库的绑定,该文件位于此处PyLZJB.so


不幸的是,通过在导入时复制到站点包目录,我得到“错误的 ELF 类”错误


帮助会很棒。:)

PS:我正在运行 Ubuntu 10.4 64bit


编辑:

如果有人可以建议我一种替代压缩算法,我会同样高兴。:)

该算法用于HTML 压缩,它也需要客户端Javascript 解压缩/压缩支持

我真的希望有人可以帮助解决这个问题。多谢你们!

0 投票
2 回答
23443 浏览

javascript - 在base64编码之前缩短字符串以使其更短的无损压缩方法?

刚刚构建了一个用于预览 HTML 文档的小型 Web 应用程序,该应用程序生成 URL:s,其中包含 base64 编码数据中的 HTML(以及所有内联 CSS 和 Javascript)。问题是,URL:s 很快就会变得有点长。首先压缩字符串而不丢失数据的“事实上的”标准方式(最好是Javascript )是什么?

附言; 前段时间我在学校读到 Huffman 和 Lempel-Ziv,我记得我真的很喜欢 LZW :)

编辑:

找到解决方案;似乎 rawStr => utf8Str => lzwStr => base64Str 是要走的路。我正在进一步致力于在 utf8 和 lzw 之间实现霍夫曼压缩。到目前为止的问题是,当编码为 base64 时,太多的字符会变得很长。

0 投票
1 回答
532 浏览

compression - 数据压缩和解压

我研究了不同的 LZ 系列数据压缩。其中最流行的算法是 LZ77 和 LZ78。但是 LZcomp 压缩有什么不同呢?

0 投票
1 回答
778 浏览

c# - LZ 复杂度算法

您能否解释一下:LZ 复杂度算法如何与数据压缩相结合?它(或打算)压缩数据还是只估计词汇表中唯一子串的数量?

谢谢!

0 投票
2 回答
1837 浏览

dictionary - LZW(Limpel-Ziv-Welch)字典编码分隔符问题

这个问题可能并不严格限于 LZW 算法,可能会涵盖 LZ77 和 LZ78 的其他实现:

我一直在尝试编写一个涉及 LZW 字典编码方案的压缩/解压缩实用程序。问题是我发现在编码阶段写出每个代码字(或“代码”)之后有必要包含一个定界字符(空格)。我一直在这样做,因为我不能假设输出直接流式传输到解码器,并且可以存储在压缩文件中以便稍后解码(在这种情况下,解码器将需要某种方法来检测分离的内容码字 - 分隔符)。

我最近被告知这是不必要的,并且解码器应该能够动态地“计算”每次要读取多少压缩文件,大概是基于先前读取的代码。据说这将消除(昂贵的)在每个代码之后插入额外字节的需要。

我只是不确定解码器如何解决这个问题。也许了解它如何工作的人可以向我解释一下?谢谢。

编辑:

字典是一个将“输入字符串”映射到整数(代码)的哈希表,并且随着更多的输入数据被读入而以通常的方式构建。代码被写出到压缩文件中。解码器从压缩文件中读取每个代码(整数),并在其字典中查找要输出的关联字符串,或者如果该代码没有条目,那么它会以通常的方式确定字符串应该是什么并更新它的字典。

“为什么文件是流式传输或存储的?” 如果编码器的输出一次将一个代码流式传输到解码器,则解码器可以在接收到每个代码时对其进行处理。但是,如果编码器将所有代码写入一个文件(压缩文件),然后将该文件馈送到解码器,那么解码器如何知道一个代码从哪里开始,另一个代码从哪里开始。该文件将只是一个混搭的数字序列。

例如:分隔压缩文件:127 32 45 22 228 122 209.... 非分隔压缩文件:127324522228122209...

-抢

0 投票
1 回答
137 浏览

c - LZW 和 CGPDFScanner

CGPDFScanner 是否解压缩它遇到的任何 LZW 压缩?还是我对此负责?[我假设确实如此,因为我正在挑选大量的Tj运营商等]