JPEG, PNG, WebP, nebo AVIF: který si nechat?
Mám stejný obrázek ve čtyřech formátech. Který si nechat a které smazat?
Začněte u obrázku, ne u formátu
Spor o formát je skoro vždycky ten špatný spor, který se vede jako první. O výsledku rozhoduje obsah obrázku. Fotografie se skládají z plynulých, zašuměných přechodů bez opakujících se řad pixelů. Snímky obrazovky, loga, diagramy a pixel art se skládají z jednolitých ploch, ostrých hran a malého počtu přesných barev. Ty dva druhy obrázků se komprimují úplně jinými mechanismy a formát, který je v jednom výborný, bývá v druhém průměrný.
První otázka tedy nezní „je AVIF lepší než JPEG“. Zní „je tohle fotografie, nebo grafika, a potřebuje průhlednost“. Jakmile si na to odpovíte, užší výběr je obvykle jeden nebo dva formáty dlouhý.
Co který formát skutečně umí
| Formát | Komprese | Průhlednost | Animace | Nejlepší využití |
|---|---|---|---|---|
| JPEG | Jen ztrátová | Ne | Ne | Fotografie, které se musí otevřít všude |
| PNG | Jen bezeztrátová | Ano, 8bitová alfa | Ne (APNG je samostatná funkce) | Snímky obrazovky, loga, plošná grafika, přesné pixely |
| WebP | Ztrátová i bezeztrátová | Ano, v obou režimech | Ano | Univerzální náhrada za JPEG i PNG |
| AVIF | Ztrátová i bezeztrátová | Ano, včetně 10bitové | Ano | Fotografie tam, kde vám nevadí čas kódování |
Tabulka zamlčuje jednu věc, kterou stojí za to říct nahlas: PNG nejde zmenšit snížením posuvníku kvality, protože žádný posuvník kvality nemá. Optimalizátor PNG zmenší soubor tím, že najde lepší predikční filtr a lepší paletu, ne zahazováním detailů. Proto zůstává fotografie uložená jako PNG obrovská, ať na ni pustíte jakýkoli nástroj — ve formátu není nic, co by mu dovolilo informaci zahodit.
Ztrátový a bezeztrátový nejsou známky kvality
Je lákavé číst „bezeztrátový“ jako „dobrý“ a „ztrátový“ jako „špatný“. Nejsou to známky kvality, jsou to různé úkoly. Bezeztrátový znamená, že dekódované pixely jsou bit po bitu shodné s tím, co do formátu vstoupilo; je to správná volba, když jde právě o pixely, třeba u snímku obrazovky, ze kterého bude někdo číst text. Ztrátový znamená, že kodér smí zahodit detaily, které oko špatně postřehne, což je jediný důvod, proč se dvanáctimegapixelová fotografie vůbec vejde do pár set kilobajtů.
Užitečné pravidlo: pokud byste si všimli jediného špatného pixelu, použijte bezeztrátový formát. Pokud ne, ztrátový formát v rozumné kvalitě vyrobí mnohem menší soubor a při běžné velikosti zobrazení rozdíl neuvidíte.
Čím si WebP a AVIF zaslouží své místo
Oba novější formáty používají predikční a transformační nástroje, které JPEG standardizovaný v roce 1992 nemá. V praxi to znamená, že dosáhnou podobné vizuální kvality při menší velikosti, a oba zvládají průhlednost, kterou JPEG neumí vůbec. WebP je ten pragmatický: kóduje rychle a nahrazuje jediným formátem JPEG i PNG. AVIF je ten ambiciózní: používá vnitrosnímkové nástroje video kodeku AV1, podporuje vyšší bitové hloubky a u fotografického obsahu obvykle dává ze všech čtyř nejmenší soubor.
Cenou je čas kódování. Kódování AVIF je úloha hledání a kodér nad ní stráví skutečný strojový čas. V kartě prohlížeče, na telefonu, je ten čas váš — proto FileSlimmer u AVIF ukazuje průběh po jednotlivých souborech, místo aby předstíral, že se nečeká. Když převádíte jeden hlavní obrázek, ta výměna se zjevně vyplatí. Když jich převádíte čtyři sta, zvažte WebP.
Převod starého souboru staré poškození nevrátí
Tohle je zdaleka nejčastější zklamání. Když vezmete JPEG uložený před lety v nízké kvalitě a převedete ho do PNG nebo do bezeztrátového WebP, blokové artefakty a kroužkování se do nového souboru věrně zkopírují. Bezeztrátový znamená „shodný se vstupem“ a vstup měl to poškození už zapečené v pixelech. Dostanete větší soubor s přesně stejnými vadami.
Převod ztrátového souboru do jiného ztrátového formátu je druhý, samostatný kompresní průchod, takže může přidat vlastní artefakty navrch. Když máte na výběr, převádějte z toho nejpůvodnějšího souboru, který ještě máte — z originálu z fotoaparátu, z exportu z návrhového programu — ne z kopie, která už jedním kompresorem prošla.
Užší výběr, který se dá skutečně použít
- Fotografie, která se musí otevřít kdekoli, i ve starém softwaru: nechte si JPEG.
- Fotografie pro váš vlastní web nebo aplikaci, kde určujete, co ji čte: WebP, nebo AVIF, pokud si můžete dovolit čas kódování.
- Snímek obrazovky, logo, diagram, graf nebo cokoli s textem v pixelech: PNG, nebo bezeztrátový WebP, pokud je velikost důležitější než univerzální podpora.
- Cokoli, co potřebuje průhledné pozadí: PNG, WebP nebo AVIF. Ne JPEG.
- Archivní kopie, kterou možná budete znovu upravovat: nechte si původní soubor, ať je jakýkoli, a s každou zkomprimovanou verzí zacházejte jako s jednorázovou.
Co vám tohle srovnání neřekne
Není tu žádné pořadí podle velikosti, a to záměrně. Publikovaná srovnání se měří na konkrétní sadě obrázků, s konkrétními verzemi kodérů a nastaveními, a výsledek se posune, jakmile se cokoli z toho změní. Váš vlastní obrázek je jediný test, který popisuje váš vlastní obrázek. Převeďte stejný zdroj jednou do každého kandidáta při nastavení kvality, které vám vyhovuje, a pak porovnejte obě čísla a oba obrázky vedle sebe.
I podpora se v čase mění. Než svěříte celou knihovnu novějšímu formátu, ověřte, co všechno musí soubory otevřít: prohlížeč, galerie v telefonu, tiskárna, deset let stará desktopová aplikace zákazníka. Nejlepší formát je ten nejmenší, který dokáže přečíst všechno z toho seznamu.
Nástroje k tomuto tématu
Zdroje
- ITU-T T.81 — the JPEG standard
- W3C — Portable Network Graphics (PNG) Specification (Third Edition)
- Google — WebP container and bitstream documentation
- Alliance for Open Media — AV1 Image File Format (AVIF)