Hlavní navigace

Mozilla v nové formáty nevěří. Enkodér mozjpeg slibuje lepší kompresi JPEG

5. 3. 2014

Sdílet

Zdroj: Redakce

Možná jste již slyšeli o formátu WebP, kterým by Google chtěl nahradit dnes používané obrázky v JPEG a PNG. Google není prvním, kdo se o něco takového pokouší, a ani jemu se nijak zvlášť nedaří vymýtit dinosaura webového světa (JPEG je s námi už od roku 1992). Klíčová je podpora ze strany prohlížečů a obrázek ve formátu WebP si v současné době neprohlédnete ani v Internet Exploreru, ani ve Firefoxu.

Mozilla Foundation, která druhý jmenovaný prohlížeč vyvíjí, se navíc vydala zcela opačným směrem: namísto snahy zavést nový formát chce vylepšit kompresi JPEG při zachování kompatibility s existujícími dekodéry. „Zajímalo nás, zdali enkodéry JPEG po více než 20 letech existence dosáhly svého plného potenciálu. Hovořili jsme s několika inženýry a usoudili, že odpověď je »ne«,“ vysvětluje na blogu Mozilly Josh Aas. „Měli jsme v ruce slibnou zpětnou vazbu na možné cesty vývoje, a tak jsme začali projekt »mozjpeg«.“

Enkodér mozjpeg je fork open-sourcového projektu libjpeg-turbo a ve své první verzi přináší jediné vylepšení – obsahuje funkcionalitu skriptu „jpgcrush“. Skript v jazyce Perl původně napsal Loren Merritt, jeden z hlavních vývojářů enkodéru x264. Funguje tak, že převede JPEG do progresivního formátu a optimalizuje Huffmanovu tabulku, což už dlouhá léta umí například editor XnView, podle Mozilly je však mozjpeg prvním enkodérem, který má tuto funkcionalitu vestavěnou. Na testovací množině 1500 obrázků z Wikipedie prý algoritmus vyrobil v průměru o 10 % menší soubory při zachování totožné kvality.

 

V budoucnu chce Mozilla dále zlepšit kompresi použitím trellis kvantizace. Postup ztrátové komprese jinak nazývaný též mřížková kvantizace se už dlouho používá v enkodérech videa – je například součástí enkodérů Xvid, x264 nebo VP8.

CS24

Zdrojový kód mozjepg je k dispozici na GitHubu.

Zdroj: Mozilla