Terra Compression可能吗?如果是,请说明并提供样品

时间:2010-08-22 22:03:04

标签: algorithm compression data-compression

Long Ascii String Text可以使用复杂的数学公式/算法压缩或压缩成ascii“checksum”的哈希类型。就像可以压缩的空气一样。

要将兆字节的ascii文本压缩成大约128个字节,通过混洗,然后将单个“字节”的新“模式”从第一个转到最后一个。当我们解压缩它时,首先提取最后一个字符,然后我们继续使用公式和从最后一个到第一个的顺序键进行解压缩。必须准确知道顺序键以及最后和第一个字节,包括完全更新的最终编译字符串以及压缩的总字节数。

这是我正在思考的terra压缩。这可能吗?你能解释一下这些例子我正在研究这个理论,这是我自己的想法。

7 个答案:

答案 0 :(得分:8)

一般情况下?绝对不是。

对于某些特定情况?对。仅包含空格的兆字节ASCII文本可能会非常好地压缩。真正的文本通常会很好地压缩漂亮 ...但不是几兆字节到128字节的顺序。

考虑一下有多少字符串 - 甚至只是有效英语单词串 - 可以容纳几兆字节。远远超过256 ^ 128。它们不能所有压缩到128字节,通过鸽子洞原则......

答案 1 :(得分:6)

如果您有 n 可能的输入字符串且 m 可能的压缩字符串且 m 小于 n 那么两个字符串必须映射到相同的压缩字符串。这被称为pigeonhole principle,是限制压缩数据量的最基本原因。

您所描述的更像是哈希函数。设计了许多散列函数,以便给定字符串的散列,您极不可能找到另一个提供相同散列的字符串。但是没有办法给出哈希你可以发现原始字符串。即使您能够反转散列操作以生成提供该散列的有效输入,也会有无数许多其他输入会产生相同的散列。你不会知道哪一个是“正确的”。

答案 2 :(得分:3)

信息理论是解决此类问题的科学领域。它还为您提供了计算存储压缩消息所需的最小位数(无损压缩)的可能性。此下限称为消息的 Entropy

使用Markov model可以计算一段文字的熵。这样的模型使用信息字母的特定字符序列的可能性。

答案 3 :(得分:2)

空气类比是非常错误的。

当你压缩空气时,你会使分子彼此靠近,每个分子的空间都会减少。

压缩数据时,不能缩小数据(除非您将硬盘放在液压机中)。实际上使比特变小的最接近的是增加网络的带宽,但这不是压缩。

压缩是关于找到用于计算数据的可逆公式。关于数据压缩的“规则”就像

  • 算法(包括任何标准的起始词典)是预先共享的,不包含在压缩数据中。
  • 所有启动参数必须包含在压缩数据中,包括:
    • 算法变体的选择
    • 词典选择
    • 所有压缩数据
  • 该算法必须能够压缩/解压缩中的所有可能消息(如纯文本,数字或二进制数据)。

要了解压缩的工作原理,您可以学习一些示例,例如Run length encodingLempel Ziv Welch

答案 4 :(得分:1)

您可能会想到fractal compression通过存储公式和起始值来有效地工作。公式迭代了一定次数,结果是原始输入的近似值

这允许高压缩但是有损(输出接近输入但不完全相同)并且压缩可以非常慢。即便如此,170:1的比率大约是目前达到的最高值。

答案 5 :(得分:0)

您可以将测试压缩到一定程度,因为它不使用所有可用位(即a-z和A-Z组成256个值中的52个)。重复模式允许一些智能存储(zip)。

没有方法可以在任何固定长度的字节数中存储任意大块文本。

你可以压缩空气,但你不会去除它的分子!它的质量保持不变。

答案 6 :(得分:0)

这有点偏离主题,但我想起USENET上出现的Broloid compression笑话线程......当USENET仍然有趣时。

说真的,任何声称拥有将任何文本兆字节文件减少到几百字节的神奇压缩算法的人都是:

  • 骗子,
  • 不了解基本信息理论的人,或
  • 两个