Online JPEG optimalizátor, který funguje nejlíp na originálu, ne na už zkomprimovaném souboru

Online JPEG optimalizátor funguje nejlépe tehdy, když se pustí do souboru jen jednou, na jeho původní, ještě nezkomprimované podobě, protože JPEG patří mezi ztrátové formáty a každé další uložení znamená další, byť malou, ztrátu kvality. Tento dřívější text o kompresi obrázků pro mobilní web popsal, jak se z jednoho zdrojového souboru pomocí atributu srcset generuje víc verzí pro různé velikosti displeje, tenhle článek se zaměřuje na to, co se stane, když se jako zdroj pro takové verze použije už dřív zkomprimovaný soubor místo originálu. Rozdíl je u jednoho souboru malý, ale sčítá se pokaždé, když se ze stejného zdroje znovu generuje další velikost či verze.

Proč se JPEG s každým uložením trochu zhorší

Ztrátová komprese při každém uložení zahodí část obrazových dat, a pokud se už jednou zkomprimovaný soubor znovu otevře, upraví a uloží do JPEG podruhé, přidá se k původní ztrátě další. Podle stejného materiálu tento efekt nepředstavuje velké riziko, pokud se soubor takto přeukládá jen párkrát a kvalita zůstává na vyšší úrovni, problém ale nastává tam, kde se stejný web soubor stane zdrojem pro další a další exporty. Konkrétní ukázka z téhož materiálu na fotografii o velikosti 352 kB uvádí, že kvalita 80 procent zmenší soubor zhruba 5,7krát prakticky beze ztráty patrné pouhým okem, kvalita 30 procent už soubor zmenší 18,5krát, ale objeví se první artefakty kolem písmen, a při kvalitě blížící se nule klesne soubor na necelou třicetinu původní velikosti za cenu zjevně viditelné degradace detailů.

Kdy degradace skutečně vadí

Jedno uložení originálu do kvalitního JPEGu prakticky žádné viditelné artefakty nevytvoří. Opakované ukládání ovšem ztrátu kumuluje, a čím nižší kvalita se při každém kroku zvolí, tím dřív se objeví rozostřené hrany a kostičkování kolem textu či jemné kresby. Tyto čtvercové artefakty vznikají tím, že JPEG zpracovává obraz po blocích osm krát osm pixelů, právě v těchto blocích se při agresivní kompresi ztrácí nejvíc informací o jemných detailech a hranách, zatímco plochy s jednolitou barvou zůstávají prakticky beze změny.

Proč u zdroje pro víc velikostí vyhraje originál

Responzivní obrázky ze srcset potřebují víc verzí téhož souboru v různých rozměrech, a každá z nich se ideálně generuje zvlášť přímo z originálu. Pokud se místo toho jako zdroj použije verze, která už kompresí prošla, zdědí každá další velikost i její ztrátu a přidá k ní vlastní, čímž se výsledek zbytečně zhorší napříč celou sadou. U menšího rozlišení navíc stejná procentuální komprese ubere víc detailů, protože na méně pixelech zbývá menší rezerva, ze které lze ztrátu odečíst, aniž by byla vidět.

Jaká kvalita se hodí na archivaci a jaká na web

Pro archivní kopii, ze které se budou verze teprve odvozovat, dává smysl vyšší kvalita blízká originálu a zachování metadat, zatímco finální export pro web snese výraznější kompresi a metadata v podobě EXIF na webu nikdo nepotřebuje. Online JPEG optimalizátor tuto volbu obvykle nabízí formou předvoleb, od varianty blízké originálu přes vyváženou kvalitu pro web až po agresivní kompresi tam, kde je velikost souboru prioritou.

Proč se EXIF pro web odstraňuje

Metadata z fotoaparátu, tedy model přístroje, čas pořízení či nastavení expozice, prohlížeč pro zobrazení stránky vůbec nepotřebuje, přesto v souboru zabírají desítky kilobajtů navíc. Odstranění EXIF dat proto patří mezi kroky, které se u finálního webového exportu vyplatí zapnout téměř vždy.

Co online JPEG optimalizátor s originálem udělá

Nástroj po nahrání souboru nabídne posuvník nebo předvolbu kvality a výsledek porovná s originálem ještě před stažením, takže je vidět, na jaké hranici se ztráta stává patrná. Dávkové zpracování víc souborů najednou umožňuje připravit celou sadu velikostí z originálů, aniž by bylo nutné každý soubor upravovat zvlášť v samostatném kroku. Volba mezi zachováním rozměrů, zmenšením na maximální šířku či výšku a přepnutím výstupního formátu na JPEG, PNG nebo WebP navíc umožňuje z jednoho originálu připravit rovnou všechny varianty, které responzivní šablona webu potřebuje.

Co se děje s nahranými soubory

Online nástroje tohoto typu obvykle zpracují soubor a po určité době, často po hodině od nahrání, data automaticky odstraní ze serveru. Původní fotografie zůstává nedotčená v zařízení uživatele, takže je možné se k originálu kdykoliv vrátit a vygenerovat z něj další verzi.

Nejčastější chyby v praxi

V praxi se u přípravy JPEG souborů pro web opakuje několik podobných problémů:

  1. Použití už zkomprimovaného webového souboru jako zdroje pro další velikosti místo originálu.
  2. Opakované přeukládání téhož souboru do JPEG při každé drobné úpravě.
  3. Ponechání EXIF metadat ve finální webové verzi souboru.
  4. Volba stejné kvality pro archivní kopii i pro finální export na web.

Co si z tohoto postupu odnést

Ztráta kvality u JPEGu se s každým dalším uložením kumuluje, proto se vyplatí uchovávat originál a z něj generovat každou další velikost či verzi zvlášť, místo aby posloužila jako zdroj už zkomprimovaná webová verze. Volba vyšší kvality pro archiv a přiměřené komprese pro web patří mezi jednoduché kroky, které tuhle kumulaci ztráty prakticky vyřeší.

Generujete jednotlivé velikosti obrázků pro web z originálu, nebo se vám někdy stalo, že zdrojem byla už dřív zkomprimovaná verze?

Jana Paulusová