我知道大多数压缩方法都依赖一些重复的数据才能生效。例如,刺痛的“AAAAAaaaQWERTY”可以被表示为“5A3aQWERTY”用于无损和诸如“8aqwerty”用于有损(这些仅仅是例如,不是实际的工作方法)。据我所知,所有的压缩算法都依赖于 - >常量< - 字符串的重复。压缩方法
这里带有字符串“ABCDEFGHIJKLMNOPQRSTUVWXYZ”的问题。这里没有什么重复,但正如你可能看到的字符串中的信息可以用更短的方式表示。在类似正则表达式的str中。将会是“[a-z]”,或者可能是“for(x = 0; x < 25; ++){ascii(97 + x)}”。
也考虑字符串“0149162536496481100121” - 它可以用“for(x = 0; x <11; ++){x * x}”表示。
字符串 “ABEJQZer” 可表示为 “为(X = 0; 8; ++){ASCII(64 + X * X)}”
最后两个是知道的算法的例子,它可以重现原始字符串。我知道一般算法(如果它们是高效的)比它们可以产生的数据占用的空间要小得多。
像在svg图像(它只有在文件中的算法)的大小小于jpeg。
我的问题是有压缩的一种方式,这需要数据和tryes找到高效的算法,可以代表它。像向量化光栅图像(如http://vectormagic.com/),也可以与其他数据一起使用。考虑音频数据(因为它可以压缩有损) - 一些音频编辑器(例如,大胆度)项目文件包含诸如“从时间0到时间2分钟45.6秒产生具有0.8幅度的120Hz恒定频率”的信息(大胆性商店信息以xml格式)。这个元数据占用的内存非常少,当项目导出为wav或mp3时,程序会将信息“呈现”为导出格式的实际样本。
在这种情况下,压缩机应该反转渲染过程。它应该采用wav或mp3文件,找出哪些算法可以表示样本(如果它是有损的,则算法必须产生样本的一些近似值 - 就像vectormagic.com合成图像一样)并生成压缩文件。
据我所知,压缩时间将是令人难以置信的长,但是否有这样的(或类似)的压缩算法?
我认为[“PAQ”](http://en.wikipedia.org/wiki/PAQ)系列无损压缩算法是你正在寻找的。 –