问题标签 [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.
c - C语言中的LZW解压
我有一个用 C 编写的 LZW 压缩器/解压缩器。
初始表由 ASCII 字符组成,然后每个现在要保存到表中的字符串由一个前缀和一个字符组成,两者都保存在一个列表中作为 int。
我的压缩有效,但我的解压缩留下了一些字符。
输入:
我得到的输出(注意缺少'e'和'<'):
这是我使用的代码(相关部分):
你能发现吗?我将不胜感激。
java - 如何在 Java 中进行 LZW 解码?
我有一个数据库,其中包含存储为二进制 blob 的图片数据。文档说数据是使用 LZW 编码的。我认为我可以使用 Java 库中的 Zip 或 GZip 输入流对其进行解码,但它不起作用 - 我收到一个异常,说数据格式不正确。
根据我的阅读,该库使用 DEFLATE,而不是 LZW。此外,我还阅读了有关使用 LZW 算法的一些许可问题。
我可以用什么来解码数据?有图书馆吗?我必须自己实施吗?许可问题怎么办?
c++ - 我可以在 Turbo C++ 程序中使用 dll,我们是否有任何用于 lzw 压缩和解压缩的 dll
我试图创建一个 lzw 压缩程序。但是我需要在今天自己完成它,所以我想使用一些 dll 将我的输入作为 txt 文件并作为文本文件输出。我想在执行我剩余功能的TURBO C++代码中执行此操作。任何人都可以建议我一些方法。
c - 低内存条件下的LZW压缩/解压
任何人都可以指点我如何在低内存条件下(< 2k)实现 lzw 压缩/解压缩。那可能吗?
javascript - 在base64编码之前缩短字符串以使其更短的无损压缩方法?
刚刚构建了一个用于预览 HTML 文档的小型 Web 应用程序,该应用程序生成 URL:s,其中包含 base64 编码数据中的 HTML(以及所有内联 CSS 和 Javascript)。问题是,URL:s 很快就会变得有点长。首先压缩字符串而不丢失数据的“事实上的”标准方式(最好是Javascript )是什么?
附言; 前段时间我在学校读到 Huffman 和 Lempel-Ziv,我记得我真的很喜欢 LZW :)
编辑:
找到解决方案;似乎 rawStr => utf8Str => lzwStr => base64Str 是要走的路。我正在进一步致力于在 utf8 和 lzw 之间实现霍夫曼压缩。到目前为止的问题是,当编码为 base64 时,太多的字符会变得很长。
compression - 数据压缩和解压
我研究了不同的 LZ 系列数据压缩。其中最流行的算法是 LZ77 和 LZ78。但是 LZcomp 压缩有什么不同呢?
c# - LZ 复杂度算法
您能否解释一下:LZ 复杂度算法如何与数据压缩相结合?它(或打算)压缩数据还是只估计词汇表中唯一子串的数量?
谢谢!
dictionary - LZW(Limpel-Ziv-Welch)字典编码分隔符问题
这个问题可能并不严格限于 LZW 算法,可能会涵盖 LZ77 和 LZ78 的其他实现:
我一直在尝试编写一个涉及 LZW 字典编码方案的压缩/解压缩实用程序。问题是我发现在编码阶段写出每个代码字(或“代码”)之后有必要包含一个定界字符(空格)。我一直在这样做,因为我不能假设输出直接流式传输到解码器,并且可以存储在压缩文件中以便稍后解码(在这种情况下,解码器将需要某种方法来检测分离的内容码字 - 分隔符)。
我最近被告知这是不必要的,并且解码器应该能够动态地“计算”每次要读取多少压缩文件,大概是基于先前读取的代码。据说这将消除(昂贵的)在每个代码之后插入额外字节的需要。
我只是不确定解码器如何解决这个问题。也许了解它如何工作的人可以向我解释一下?谢谢。
编辑:
字典是一个将“输入字符串”映射到整数(代码)的哈希表,并且随着更多的输入数据被读入而以通常的方式构建。代码被写出到压缩文件中。解码器从压缩文件中读取每个代码(整数),并在其字典中查找要输出的关联字符串,或者如果该代码没有条目,那么它会以通常的方式确定字符串应该是什么并更新它的字典。
“为什么文件是流式传输或存储的?” 如果编码器的输出一次将一个代码流式传输到解码器,则解码器可以在接收到每个代码时对其进行处理。但是,如果编码器将所有代码写入一个文件(压缩文件),然后将该文件馈送到解码器,那么解码器如何知道一个代码从哪里开始,另一个代码从哪里开始。该文件将只是一个混搭的数字序列。
例如:分隔压缩文件:127 32 45 22 228 122 209.... 非分隔压缩文件:127324522228122209...
-抢
c - LZW 和 CGPDFScanner
CGPDFScanner 是否解压缩它遇到的任何 LZW 压缩?还是我对此负责?[我假设确实如此,因为我正在挑选大量的Tj
运营商等]