我知道大多數壓縮方法都依賴一些重複的數據才能生效。例如,刺痛的「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)系列無損壓縮算法是你正在尋找的。 –