Zadejte hledaný výraz...

LZW komprimace – něco rychlejšího?

Michal Skoula
verified
rating uzivatele
(18 hodnocení)
27. 3. 2013 13:53:53
Dobrý den,
hraju se s HTML5 canvasem a na určitých verzích Androidu nefunguje metoda canvas.toDataUrl, která vrací data:image/base64. Stáhl jsem si proto knihovnu, která používá metodu getImageData (získá informace o jednotlivých pixelech) a vytvoří z ní požadované data:image, ale BMP - je to dost veliké - potřebuji to před odesláním na server zkomprimovat.
Použil jsem LZW algoritmus, ale pro obrázek 350x350px zkomprimování na Androidu trvá skoro 30s. Neexistuje nějaký lepší (= rychlejší, klidně i s menším komprimačním poměrem) algoritmus implementovaný v JS?
---------- Příspěvek doplněn 27.03.2013 v 14:21 ----------
Zmenšil jsem canvas na 300px a stihne to za 7-8s, to je dostačující :)
27. 3. 2013 13:53:53
https://webtrh.cz/diskuse/lzw-komprimace-neco-rychlejsiho/#reply883423
Jak jsou ta data velká?
Zkoušel jste alternativní implementaci?
Třeba
http://www.hiddentao.com/archives/2011/08/01/asynchronous-implementation-of-lzw-algorithm-in-javascript/
Uvádí 2s na komprimaci 5 MB na stolním počítači.
Nebo alternativní algoritmy
LZMA
http://nmrugg.github.com/LZMA-JS/
LZJB
http://code.google.com/p/jslzjb/
27. 3. 2013 14:32:08
https://webtrh.cz/diskuse/lzw-komprimace-neco-rychlejsiho/#reply883422
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
28. 3. 2013 11:35:21
Nakonec jsem použil http://jsperf.com/lwz-fast-implementation a vychází to o něco rychleji.
28. 3. 2013 11:35:21
https://webtrh.cz/diskuse/lzw-komprimace-neco-rychlejsiho/#reply883421
Pro odpověď se přihlašte.
Přihlásit