FLIF - Free Lossless Image Format poráží PNG, WebP, JPEG2000 i BPG
Formáty PNG a JPEG 2000 jistě netřeba představovat. WebP je de facto intra snímek formátu WebM (tedy VP9), BPG je pak návrh formátu, který je de facto intra snímkem H.265. FLIF dle vlastních měření poskytuje ve srovnání s bezztrátovou metodou komprese všech výše uvedených formátů snímky o 26 až 35 % menší oproti PNG, o 37 % menší oproti JPEG 2000, o 15 % menší oproti WebP a o 22 % menší oproti BPG.
Využívá přitom řadu technik, které jej činí v principu fungování nejuniverzálnějším formátem. Podporuje alfa kanál, progresivní ukládání (takže se postupně načítá vždy celý snímek s rostoucím množstvím detailů, nikoli rovnou finální snímek po řádcích odshora dolů). I díky tomu je připraven pro responsivní design webů, neboť v daném velkém obrázku jsou datově ukryty i jeho menší varianty. Podporuje i černobílou verzi, již zmíněný alfa kanál, barevnou hloubku až 16bit/barva, prokládanou (výchozí) i neprokládanou podobu, animace a jeho komprese i dekódování jsou velice rychlé.
FLIF je šířen pod licencí GPL3.
Formát ještě není zcela finální, takže autoři varují, že s novými verzemi může přicházet určitá zpětná nekompatibilita. Počítá se s začlenění metadat (EXIF, XMP, ICC profily), jiných barevných prostorů než RGB (CMYK, YCbCr atd.), ztrátovou kompresí, podporou webových prohlížečů a optimalizacemi v implementaci(ích).
Tvůrce (Belgičan Jon Sneyers působící na univerzitě K.U.Leuven) má na webu ukázky srovnávající postupné načítání obrázků a responsivitu, kde FLIF dosahuje výtečných výkonů, snad jedině BPG si občas vede lépe.
Z technického hlediska tento formát využívá kompresi MANIAC (Meta-Adaptive Near-zero Integer Arithmetic Coding) pro kódování entropie, kterou vyvinuli Jon Sneyers a Pieter Wuille. Je to varianta CABAC (context-adaptive binary arithmetic coding), techniky známé mimo jiné z formátu H.264, narozdíl od ní ale MANIAC nevyužívá vícedimenzionální pole, ale obsah je strukturován v rozhodovacích stromech, které se vytvářejí v procesu komprese. Dále FLIF využívá specifickou formu progresivního prokládání (v podstatě jde o optimalizovanou verzi Adam7 prokládání z PNG), která umožňuje použít částečně načtená data jako podklad pro zobrazení celého obrázku s určitými ztrátami (více opravdu napoví ty srovnávací ukázky). Díky tomu je ve snímku menší množství dat, které vlastně nenesou finální obrazovou informaci, ale umožňují jen ono postupné načítání.
Jistě vás napadá otázka, jak je možné, že se najednou z čistého nebe objevilo něco takto papírové úžasného. Finta je skryta v tom, že jde o bezztrátovou kompresi, takže většina technik chráněných těmi všemožnými patent pooly na H.264 či H.265 (a jiné formáty) se zde neuplatňuje. Trochu obavy bych osobně měl o osud technik, které jsou podobné CABAC atd. nicméně obecně lze říci, že FLIF má slušnou šanci na úspěch. Jistě ale nečekejme, že by „vydrtil“ ztrátové formáty používané na fotografie, a tím nemyslím jen BPG či WebP, ale klidně i dobře optimalizovaný JPEG.
- Ke stažení: FLIF na GitHubu