Apple se rozhodl nahradit v iOS 11 formát JPEG modernějším High Efficient Image Format neboli HEIF. Ten slibuje uživatelům zhruba 50% úsporu místa při stejné či lepší kvalitě. Znamená to, že je starý dobrý JPEG mrtvý? Pojďme se podívat na zoubek formátu HEIF. Co nabízí a jaká je jeho budoucnost.
Trocha historie
Formát JPEG byl poprvé představen v roce 1992 s jednoduchým cílem – výrazně zmenšit soubory s digitálními fotografiemi. Byla to doba příchodu prvních digitálních fotoaparátů, kdy bylo jasné, že bez komprese obrazu se do budoucna neobejdeme. JPEG je postaven na ztrátové fraktálové kompresi využívající matematickou metodu Inverzní Kosinovy transformace. Celé to funguje poměrně jednoduše. Obraz se rozloží na malé bloky typicky 8 x 8 bodů, které se zpracovávají každý zvlášť, což snižuje výpočetní náročnost. To bylo v roce 1992 důležité pro rychlost uložení a otevření fotografií. Na každém bloku se provede fraktálová analýza obrazu. Nejdůležitější kresba se zachová a méně důležité detaily se zahodí. Uživatel rozhoduje nastavením kompresního poměru, kolik detailů se má zahodit. Tím určuje, jak agresivní a úspěšná komprese bude. Ve srovnání s nekomprimovanou podobou JPEG typicky zmenší soubor o řád, což z něj za posledních skoro 30 let udělalo zcela dominantní formát pro ukládání fotografií.
JPEG má i své nevýhody. Úspěch komprese výrazně záleží na obsahu fotografie. Čím více detailů obsahuje, tím méně úspěšná komprese je. U jednolitých ploch naopak JPEG způsobuje vznik falešné kresby, takzvaných kompresních artefaktů a poškození jemných hran. Čím vyšší je rozlišení fotografií, tím větší problémy s JPEGem jsou. V průběhu času proto vznikla řada modifikací JPEGu řešících tyto problémy, ale žádná z nich nikdy nezískala dostatečnou popularitu. A tak se dodnes používá skoro původní verze JPEGu s 8bitovým ukládáním informací, jednoduchou EXIF hlavičkou, bez možnosti práce s průhledností a dalšími omezeními.
Proč vznikl HEIF
Primární motivací k vzniku nového formátu nebylo ani tak zvýšit účinnost komprese, ale reagovat na to, že za posledních 30 let se změnil svět výpočetní techniky. Rozlišení fotografií vzrostlo tisícinásobně, stejně tak barevná hloubka. Přišel masivní nástup internetu, a kromě statických fotografií dnes pracujeme s mnohem širší škálou obrazových formátů. Digitální fotoaparáty dělají rychlé sekvence snímků, HDR fotografie, panoramata, bracketing (série různě exponovaných fotek) a při zpracování bychom rádi ukládali nedestruktivní úpravy. Mnohonásobně vzrostla výkonnost zařízení, takže si můžeme dovolit mnohem náročnější výpočty. JPEG ničemu z toho nemůže dostačovat a byla potřeba nová alternativa.
Kdo HEIF navrhl
Formát HEIF není vlastní technologií Applu. Apple se dlouhodobě podílí na fungování Moving Picture Experts Group (MPEG), která společně s ITU-T VCEG začala na tomto formátu pracovat v roce 2013. Po roce a půl byl formát závazně standardizován v současné podobě a Apple je první z velkých společností, která jej masově nasadila. Na všech iPhonech s iOS 11 se HEIF standardně používá pro záznam fotografií a díky tomu vznikají denně milióny fotografií v tomto formátu. To vytvořilo poptávku po masovém rozšíření jeho podpory a od oznámení nasazení formátu HEIF v iOS 11 se objevují programy s podporou tohoto formátu jako houby po dešti.
Apple je tedy jedním ze spolutvůrců formátu HEIF a hlavně se nyní stal jeho hlavním propagátorem. Vzal na sebe roli hráče, který první vsadil na nový formát a masivně ho integruje do všech svých systémů a aplikací.
Jak HEIF funguje?
Formát HEIF je postaven na zcela jiném základě než původní formát JPEG. Jeho vnitřní fungování vychází z video formátu HEVC, se kterým má mnoho společných prvků. Také rozkládá fotografii na bloky jako JPEG, ale mohou být libovolně velké a typicky jsou výrazně větší (64 x 64 bodů). JPEG vnitřně používá historický TIFF formát v 8 bitové RGB podobě. HEIF jej nahradil moderním ISOBMFF formátem s možností volby libovolné bitovou hloubkou (typicky 8, 12 nebo 16 bitů). Navíc používá barevnou reprezentaci Y’CrCb, která odděluje jas (Y) od barevné informace (CrCb) a lépe odpovídá vnímání barev lidským okem než RGB model. Standardně se využívá vzorkování s poměrem 4:2:2, kdy prioritu má jasová složka před barevnou. Standard umožňuje zvolit i prostorově náročnější, ale přesnější 4:4:4. Díky tomu dokáže efektivněji rozlišit důležitou a méně důležitou obrazovou informaci. Existuje také ztrátová a bezztrátová varianta uložení.
Nejdůležitější změnou je komprese založená na prediktivním porovnávání informací uvnitř bloků i mezi bloky samotnými (inner/inter block). To znamená, že pokud obraz obsahuje velkou plochu s jednotnou barevností či vzorkem, může být celá plocha uložena pouze jako jeden blok s informací o opakování a vektoru. Zároveň je možné ukládat informaci o rozdílu mezi jednotlivými bloky místo popisu celých bloků, což dál zvyšuje úsporu místa. Celý algoritmus umožňuje výrazně efektivnější uložení fotografií s vysokým rozlišením, u kterých je vyšší pravděpodobnost opakujících se bloků. I HEIF provádí uvnitř bloků ztrátovou kompresi s tím, že uživatel může volit kompresní poměr. Díky odlišné metodě nabízí HEIF ve srovnání s JPEG vyšší kvalitu obrazu při stejné velikosti souboru či menší velikost souboru při stejné kvalitě.
Díky kompatibilitě celého systému ukládání s videoformátem HEVC se výrobcům otevřela možnost snadné hardwarové akcelerace pro oba formáty. Koneckonců nové procesory a grafické čipy použité v poslední generaci iPhonů a MacBooků již tyto výpočty přímo podporují.
Proč mají fotografie koncovku HEIC?
Formát HEIF je velice univerzální a nabízí několik variant implementace. Apple zvolil nejuniverzálnější High Effecient Image Container, který umožňuje mnohem víc, než je uložení jedné statické fotografie. Do jednoho souboru s koncovkou .HEIC může být uložena nejen jedna fotografie, ale celá série snímků. Může jít o Živou fotografii z iPhonu, několik snímků pro HDR, rychlá sekvence snímků, výsledek bracketingu nebo je možné do jednoho souboru ukládat různě upravené verze snímku. HEIC navíc nabízí možnost ukládat pouze rozdíl mezi jednotlivými snímky v kontejneru s prediktivními prvky. To výrazně zmenšuje prostorovou náročnost, pokud se fotografie příliš neliší.
HEIC navíc podporuje základní operace bez nutnosti měnit obrazová data. Do hlavičky souboru je možné uložit požadavek na nedestruktivní ořez, rotaci o 90, 180 či 270 stupňů, masku průhlednosti či další mapování.
Apple HEIF nasadil chytře
Problémem každého nového formátu je jeho všeobecné přijetí a podpora v dostatečném množství zařízení. Díky nasazení v iOS 11 začalo vznikat obrovské množství fotografií ve formátu HEIF. Apple tento formát používá u nově pořízených nebo upravených fotografií jak na iOS, tak i v iCloud knihovně fotografií. Nový formát tedy podporuje aplikace Fotky na iOS, macOS i ve webové podobě. Aplikace třetích stran přidávají podporu postupně, a tak byl Apple postaven před problém kompatibility. Pokud je snímek v prostředí iOS či macOS, není pro Apple problém zjistit, zda aplikace HEIF podporuje a podle toho jí buď poskytnout takto naformátovaný snímek nebo jej převést do JPEG. V případě sdílení či odeslání fotografie ze zařízení se zatím konverze do JPEG provádí automaticky, aby uživatel nenarazil na problém nekompatibility. Dá se předpokládat, že časem dojde k odstranění této konverze, až bude formát HEIF dostatečně rozšířen.
Apple do nového formátu ukládá pouze nově vznikající fotografie, neprovádí převod již existujících snímků. Sice by tím ušetřil zhruba polovinu místa v zařízení, ale došlo by ke zhoršení kvality snímků. HEIF při použití úsporné ztrátové komprese s každým uložením zahazuje jemné detaily, a tak opětovné uložení by znamenalo kvalitativní zhoršení. Tomu se Apple viditelně chce vyhnout.
Závěr
HEIF je moderní, velice univerzální formát. Ve srovnání s JPEG nabízí v průměru o 40 procent vyšší efektivitu komprese při stejné kvalitě, a navíc přináší podporu 16 bitového uložení a zjednodušuje práci s nedestruktivními úpravami. Zároveň umožňuje efektivnější a snazší práci se sekvenčním focením, HDR, bracketingem či animacemi. Právě podpora animací znamená, že HEIF může zcela nahradit nejen JPEG, ale i formát GIF. Zároveň podporuje i průhlednost a je tak vhodný jako náhrada formátu PNG. Je i modernější než WebP a BPG, takže má všechny předpoklady pro to, stát se zcela univerzálním řešením, které nahradí všechny zmíněné formáty.
Je tedy JPEG, původní král formátů mrtev? Určitě ne. Internet a zařízení uživatelů jsou plná miliard fotografií uložených ve formátu JPEG a nikdo se je nesnaží převést do nového HEIF. Na druhou stranu je zřejmé, že nové fotografie budou čím dál častěji ukládány právě v novém, úspornějším a flexibilnějším formátu.
Díky Applu a jeho obrovské uživatelské základě se dá očekávat, že formát HEIF bude v horizontu několika málo let nejpopulárnějším formátem pro ukládání statického obrazu. Vývoj IT technologií je dnes tak rychlý, že to, co dříve trvalo roky, trvá jen měsíce.
Ahoj Honzo,
díky za detailní článek. Je jasné, že v těch jednolitých plochách HEIF vede, ale zkoušel jsi dělat trochu detailnější porovnání v jemných detailech (listí na stromech, tráva, struktury)?
Díky
Pavel
Asi je z textu vidět, že jsem detailista… 🙂
Zatím se mi nepodařilo najít výraznější rozdíl v detailech, ale zatím je trochu problém si hrát s kompresním poměrem, takže ukáže až čas…