Mozilla mozjpeg - JPEGy menší o 10 % při zachování kvality
Cílem projektu mozjpeg je nabídnout kompresní nástroj do formátu JPEG, který bude poskytovat menší výstupní soubory, samozřejmě plně dekódovatelné standardními JPEG knihovnami. mozjpeg tak představuje další krok ve vývoji encoderů formátu JPEG, který je tu s námi již 22 let.
Proč se tím Mozilla vůbec zabývá? Inu, JPEG je jednoznačně kralující formát, pokud se bavíme o fotografiích na internetu. 10% redukce velikosti souborů při zachování vizuální kvality, tak prospěje celému internetu, ať již z hlediska diskové prostoru úložišť či cloudových služeb, či z hlediska datových přenosů.
Jelikož současné dostupné JPEG encodery již (dle Mozilly nějakou dobu stagnují co do vývoje efektivity komprese - prostě proto, že je již tak vyzrálá a dobrá, že se do dalšího vývoje nikomu moc nechce investovat - přicházejí pravidelně na přetřes debaty o nástupci tohoto formátu. Jedním z takových aspirantů byl a stále je WebP od Googlu. Jenže jakákoli výměna zavedeného formátu za nový bude znamenat léta nekompatibility, byť jen částečné v celém workflow od fotoaparátu, přes aplikace, služby až po zobrazení u koncového uživatele.
Proto se Mozilla rozhodla vylepšit tento stav nikoli vyvinutím nového formátu (což je přístup WebP, ale i jiných, vzpomeňme neúspěšný JPEG2000 / JPEG XR - bezva, ale nechytly se na internetu), ale vylepšením toho stávajícího. Dalo by se to hrubě přirovnat k tomu, když projekt x264 přišel nikoli s nějakou skvělou novinkou vybočující ze standardu H.264 (což by znemožnilo tvorbu videí přehratelných na běžných zařízeních), ale s adaptivní kvantizací, která znatelně vylepšila kvalitu produkovaných videí při zachování 100% kompatibility se standardem H.264.
mozjpeg dnes přichází ve verzi 1.0. Jde o fork projektu ligjpeg-turbo s přidanou funkcionalitou z projektu jpegcrush. Pro bezztrátovou kompresi vykazuje 2 až 6% pokles velikosti, pro vzorek 1,5 tisíce JPEG snímků z Wikipedie pak vykazuje pokles o 10 % velikosti výstupních souborů. Činí tak metodou, kdy analyzuje, která progresivní kódovací konfigurace používá nejméně bitů a tudíž bude ve výsledku nejmenší. To je v tuto chvíli primární přínos mozjpegu, jelikož žádný jiný známý JPEG encoder toto nedělá.
Do budoucna je v plánu implementace trellis kvantizace (kterou též známe z x264).