我想對一種類型的字符串進行可逆壓縮,這樣我就可以將它包含在URL中而無需跟蹤其引用的內容。我想要壓縮的字符串是SVG路徑字符串,這裏是一個簡短的引子:http://apike.ca/prog_svg_paths.html如何壓縮字符串?
基本上,字符串包含一個字符,後面跟隨任意數量的整數,然後是另一個字符,後面跟隨任意數量的整數等等。
如果有人知道這個很好的資源,它將不勝感激!
傑森
我想對一種類型的字符串進行可逆壓縮,這樣我就可以將它包含在URL中而無需跟蹤其引用的內容。我想要壓縮的字符串是SVG路徑字符串,這裏是一個簡短的引子:http://apike.ca/prog_svg_paths.html如何壓縮字符串?
基本上,字符串包含一個字符,後面跟隨任意數量的整數,然後是另一個字符,後面跟隨任意數量的整數等等。
如果有人知道這個很好的資源,它將不勝感激!
傑森
許多壓縮算法是有據可查的,一對夫婦甚至有JS實現:
GZip一個共同的(合理的)良好的壓縮算法,我知道有一個JS IMPL,我是剛剛獵URL
LZW另一個問題點的LZW實施JS
Arithmetic coding(我這樣做,但它使用的模型是愚蠢所以沒有達到它可以在最佳的壓縮率)
你可以嘗試Huffman compression。不同的字符數是20-30,如果字符串很長,壓縮應該是有效的。
聽起來像你可能受益於單和雙RLE壓縮。
底漆上這個可以看這裏:
http://pp19dd.com/2011/10/query-string-limits-encoding-hundreds-of-checkboxes-with-rle/#demo
庫應具有足夠的靈活性來修改你的壓縮模式的東西更好。寫作解釋了這是如何工作的;可能是優化SVG情況的好開始。
RLE不會非常好地壓縮SVG Path數據。 – Phrogz 2012-03-13 20:24:46