问题标签 [text-compression]

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 投票
3 回答
28362 浏览

compression - 纯文本压缩算法的当前状态是什么?

为了纪念Hutter 奖,文本压缩的顶级算法(以及每种算法的简要说明)是什么?

注意:这个问题的目的是了解压缩算法,而不是压缩程序。

0 投票
2 回答
468 浏览

ascii - 旧 ASCII 协议头像问题

对于任何记得协议 Avatar 的人,(我很确定这是它的名字)我正在尝试查找有关它的信息。到目前为止,我发现它是一种 ANSI 风格的压缩协议,通过压缩常见的 ANSI 转义序列来完成。

但是,回到那天,(90 年代初)我发誓我记得它被用来压缩调制解调器的 ASCII 文本,比如早期的 2400 波特 BIS 调制解调器。(我不记得当时的所有协议版本、名称等,抱歉)。

无论如何,由于显示速度,这使得阅读消息和使用远程 shell 变得更好。它对文件传输没有任何作用,它只是一种将 ASCII 文本压缩到尽可能小的方式。

我正在尝试对这个主题进行研究,并认为这是一个开始寻找的好地方。我认为该协议使用了书中的所有技巧来压缩 ASCII,例如将常用单词替换为单个字节,甚至可能是一个字节。

我不记得你能从中得到的比例,但我记得,它相当不错。

有人有这方面的信息吗?将 ASCII 文本压缩到少于 7 位,或 Avatar 上的协议信息,或者甚至可能是对我所说的任何 ASCII 压缩的答案?

0 投票
4 回答
4465 浏览

mysql - 存储大量文本(到数据库还是作为文件?)的最佳实践是什么,以及压缩它呢?

我正在构建一个网络应用程序来处理用户和客户之间的内部电子邮件和其他常见的中小型文本块。存储这些数据的最佳方法是什么?在数据库(MySQL)中还是作为数千个单独的文件?压缩它(PHP 的 gzcompress() 或 MySQL 的压缩特性)怎么样?

这将不是一个公共应用程序,因此用户负载将是最小的(一次少于 20 个用户)。然而,应用程序中每天都会有大量的通信来回进行,所以我预计随着时间的推移数据量会增长得相当大(这就是我想压缩它的原因)。

我想将数据保存在数据库中以便于访问和移植,但是我在这里看到的一些关于图像的线程建议使用文件存储。你怎么看?

谢谢你,赛斯

编辑澄清:我不需要对文本进行任何形式的搜索,这就是为什么我倾向于压缩它以节省空间。

0 投票
3 回答
1601 浏览

php - 压缩字符串,最终结果没有换行符?

我正在尝试将任何给定的字符串压缩为更短的版本,复制不包含任何换行符的可粘贴压缩字符串。

我尝试了 gzcompress,但随后将结果复制/粘贴到不同的 php 脚本中并尝试 gzuncompress 抛出“警告:gzuncompress():数据错误”

有没有任何原生的php函数可以压缩一个字符串,结果是一个没有任何换行符的字符串?

谢谢。

0 投票
5 回答
313 浏览

php - 为什么不同的文本文件压缩后变成不同的大小?

我有一些随机文本大小 = 27 gb 的文件,压缩后它变成 40 mb 左右。

一个 3.5 GB 的 sql 文件压缩后变成 45 Mb。

但是一个 109 mb 的文本文件在压缩后变成了 72 mb,所以它可能有什么问题。

为什么压缩得这么少,它必须 10 mb 左右,否则我错过了一些东西。

我可以看到的所有文件都是英文文本和一些语法符号(/ , . - = + 等)

为什么?

如果不是,你能告诉我如何超级压缩文本文件吗?

我可以在 PHP 中编码,np 在其中。

0 投票
3 回答
10454 浏览

python - python中的文本压缩

我有这段文字:

2,3,5,1,13,7,17​​,11,89,1,233,29,61,47,1597,19,37,41,421,199,28657,23,3001,521,53,281,514229,31,557,2207, 19801,3571,141961,107,73,9349,135721,2161,2789,211,433494437,43,109441,139,2971215073,1103,97,101,6376021,90481,9553,5779,791,453,5779,659,31, 2521,4513,3010349,35239681,1087,14736206161,9901,269,67,137,71,6673,103681,9375829,54018521,230686501,29134601,988681,79,157,1601,2269,370248451,99194853094755497,83,9521,6709, 173,263,1069,181,741469,4969,4531100550901,6643838879,761,769,193,599786069,197,401,743519377,919,519121,103,8288823481,119218851371,1247833,11128427,827728777,331,1459000305513721,10745088481,677,229,1381,347, 29717,709,159512939815855788121,

这是从我的生成器程序生成的数字,现在问题有源代码限制,所以我不能在我的解决方案中使用上述文本,所以我想压缩它并将其放入 python 中的数据结构中,以便我可以打印它们通过如下索引:

并且F[0]会给出2 F[5]这样7的……请给我推荐一种合适的压缩技术。

PS:我是python的新手,所以请解释一下你的方法。

0 投票
2 回答
586 浏览

json - 压缩小块数据

我有一个 4KB 的缓冲区,其中包含类似 JSON 格式的数据。我需要向它添加更多信息(最多可以说是 3 倍),但我必须适应这一小块内存。我正在考虑使用 libZ 来压缩文本,但我担心它不会表现良好,因为数据主要由一些独特的子字符串组成。在这种情况下你会推荐什么?谢谢,克里斯

0 投票
1 回答
332 浏览

algorithm - Haskell 线性时间在线算法

如果我用错了标题中的大词,请原谅我;我对他们不太了解,但希望他们能描述我的问题。我编写了一个精心设计的方案来尝试根据这些要求对字符串进行编码。对于长度为 10^4 或更高的字符串,我编写的代码非常慢,我想知道 - 因为它一次处理 200 个块(尽管有时只向前移动一个字符来获取下一个块),可以吗?修改为更快或更线性地输出结果(例如,每处理 200 个字符立即输出结果)。任何有关该优化或其他明显优化的帮助将不胜感激。

根据电话的建议,我简化了我的示例:

0 投票
3 回答
4760 浏览

algorithm - 文本压缩算法

我只是想知道是否有人可以向我介绍任何将 Unicode 文本压缩到其原始大小的 10-20% 的算法?实际上我已经阅读了Lempel-Ziv 压缩算法,它将文本大小减少到原始大小的 60%,但我听说有一些算法具有这种性能

0 投票
1 回答
251 浏览

algorithm - 这个文本压缩方案的名称是什么?

几年前,我读到了一种非常轻量级的文本压缩算法,但现在我找不到参考资料或记住它的名称。

它使用每对连续字符之间的差异。例如,由于小写字母预测下一个字符也将是小写字母,因此差异往往很小。(它可能在减去之前已经丢弃了前一个字符的低位;我不记得了。)即时复杂性降低。而且它是 Unicode 友好的。

当然有一些花里胡哨的东西,以及产生比特流的细节,但它是超轻量级的,适用于嵌入式系统。没有大量的字典来存储。我很确定我看到的摘要在维基百科上,但我找不到任何东西。

我记得它是在 Google 发明的,但不是Snappy