问题标签 [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 投票
2 回答
3348 浏览

php - PHP LZW 二进制解压函数

我一直在网上寻找,在 PHP 中找不到与这些 javascript 函数输出的数据一起使用的 LZW 解压缩实现:

我真的只需要一个 PHP 中的解压缩算法,它可以与上面的压缩 javascript 函数一起使用。

上面的 lzw_encode 函数将“This is a test of the compression function”编码为“This Ă a test ofĈhe comprĊsion functěn”

我发现的库要么有问题(http://code.google.com/p/php-lzw/),要么不输入 UTC 字符。

任何帮助将不胜感激,

谢谢!

0 投票
0 回答
379 浏览

php - PHP 多字节 UTF-8 字符串正在缓慢降级

我正在尝试将以下 javascript 函数转换为 PHP:

这是我转换后的代码:

虽然此函数适用于某些 LZW 编码的字符串,但如果您使用足够长的字符串,您会发现它不是 100% 准确的。我的猜测是多字节字符串的问题和我的粗心。有人有想法么?

0 投票
2 回答
15915 浏览

algorithm - LZW解压算法

我正在为必须实现 LZW 压缩/解压缩的任务编写程序。我为此使用以下算法:

-压缩

-减压

对于压缩阶段,我只是输出表示字典条目索引的整数,起始字典也由 ascii 字符(0 - 255)组成。但是当我进入解压阶段时,我会收到此错误,例如,如果我压缩一个仅包含“booop”的文本文件,它将通过这些步骤生成一个输出文件:

输出.txt:98 111 257 112

然后当我来解压文件时

257 (oo) 尚未添加。谁能看到我在这里出错的地方,因为我很难过。算法错了吗?

0 投票
3 回答
1309 浏览

parallel-processing - 是否可以使 lzw 压缩/解压缩并行?

我已经阅读了这篇关于如何使用 LZW 压缩/解压缩数据的文章,但我希望让它使用多个线程......但我认为这是不可能的。你怎么看?关于这个主题的任何论文或文章?甚至提示如何做到这一点。

0 投票
1 回答
2256 浏览

c# - C# 中的 GIF LZW 压缩

我目前正在使用 C# 进行编程以制作图像解码器的自学练习,我已经制作了几个可行的解决方案,因此我认为我应该在转向更复杂的 PNG 和 JPEG 格式之前处理 GIF。我的问题是我真的很难想出一个解压缩 LZW 子块的实际解决方案。我只是在努力弄清楚如何尝试它;我见过几个松散的伪代码示例,但它们似乎使用了我在 C# 中没有真正遇到过的术语以及我发现难以理解的过程。大多数还专注于压缩,但解压缩是我最感兴趣的。

例如,在 C# 中创建代码表的最佳方法是什么?字节数组、字典或其他东西?那么我该如何解压数据呢?我不一定要代码,只是一些帮助或指向其他人已经完成的示例的链接(我发现图像解码有点被忽视了在线资源和教育材料)。

谢谢。

0 投票
1 回答
307 浏览

perl - 使用 Perl 将 8 位以外的 GIF 图像添加到 PDF

我正在尝试将 8 位以外的非隔行 GIF 图像添加到 PDF 文档,而不必使用PDF::CreatePerl 完全解码比特流。

作为PDF 标准LZWDecode一部分的算法要求所有图像的最小 LZW 代码大小为 8 位,并且硬编码为仅嵌入 8 位图像。PDF::Create

到目前为止,我已经调整了图像加载器PDF::Create读取 5 位图像并完全解码 LZW 流。然后我可以使用编码器算法PDF::Create将图像重新打包为 8 位。

我想做的是消除内存密集型解码/编码步骤。该线程表明,这可以通过“加宽或移位位”来使 LZW 代码适合LZWDecode.

我联系了线程作者,他提供了一些额外的细节,特别是颜色索引的代码保持不变,但用零填充(例如,[10000]变为[000010000]),代码分别更改为<Clear>和,所有其他代码偏移256 - 原始代码。<End><256><257><Clear>

但是,由于雇主的限制,他无法进一步详细说明。<4095>特别是,当修改值超过(LZW代码表的最大索引)时,我不确定如何处理代码。我也不确定如何将修改后的代码重新打包成比特流。

我目前使用的算法如下。

0 投票
1 回答
309 浏览

perl - 使用 Perl 修改比特流

在 Perl 中修改比特后,如何将比特重新打包到比特流中?

我目前正在使用以下内容来解包:

例如,输出可能是 16。

编辑:

这个问题与GIF图像的数据块有关。

我要做的是填充 LZW 代码以匹配 PDFLZWDecode方法所需的长度。

LZWDecode需要 8 位图像,其中<Clear>代码为 256,<End>代码为 257(PDF 参考,第 44 页。)

对于 5 位图像,代码 0-31 映射到图像全局颜色表中的颜色,分别<Clear>为 32 和<End>33。

所以我需要重新打包比特流,使代码 0-31 保持不变,但 32+ 偏移 256-32。

我正在为 Windows 使用 ActiveState Perl。

0 投票
4 回答
2553 浏览

c++ - LZW 压缩和字典

我正在研究在 C++ 中实现 LZW 压缩,但不确定最好的字典实现。

哈希表是有道理的,但我不明白我如何能够“重新分配”值。如果表已满,我需要能够开始覆盖以前的(最旧的)多字符字典条目。哈希表需要我跟踪这些,找到它,删除它,然后插入新的。

有什么建议么?

0 投票
2 回答
2727 浏览

function - Lua 中的 LZW 压缩

这是 Lempel-Ziv-Welch 压缩的伪代码。

我正在尝试在 Lua 中对此进行编码,但它并没有真正起作用。这是我在 Python 中以 LZW 函数为模型的代码,但在第 8 行出现“尝试调用字符串值”错误。

我真的很想得到一些帮助,或者让我的代码运行,或者帮助我在 Lua 中编写 LZW 压缩。非常感谢!

0 投票
1 回答
1022 浏览

function - Lua 中的 LZW 数据压缩

可能的重复:
Lua 中的 LZW 压缩

这是我在 Lua 中使用 LZW 压缩方法压缩数据的代码。我的问题是该函数返回字符“T”,而不是返回完整的压缩字符串“TOBEORNOTTOBEORNOT”。谢谢!