Žádné nahrávání, 100% lokálně, bez účtu

Článek

Proč obrázky ztrácejí kvalitu při každém uložení

Fotografie, která vypadala ostře v albu fotoaparátu, vyjde po přeposlání přes pár skupinových chatů a opětovném zveřejnění pixelovaná. Nikdo ji úmyslně needitoval; jen prošla několika opětovnými kódováními a každé z nich trochu víc detailů zahodilo. Toto je generační ztráta, staré a dobře popsané chování ztrátové komprese, a vysvětluje, proč hodně přeposílané obrázky mají tendenci vypadat postupně hůř. Zde je, co ztrátové opětovné kódování skutečně zahodí, proč se to hromadí a jak zastavit další degradaci souboru.

Co "ztrátové" skutečně zahodí

JPEG, formát za většinou fotografií sdílených online, je ztrátový záměrně: standard za ním, ITU-T T.81, funguje tak, že transformuje bloky pixelů na frekvenční data a poté je zaokrouhlí víc nebo méně agresivně podle nastavení kvality, krok zvaný kvantizace. Zaokrouhlení nelze přesně vrátit zpět; zahozený detail je opravdu pryč, ne někde skrytý v souboru. Vysoké nastavení kvality zaokrouhluje jemně a ztráta je těžko viditelná, nízké zaokrouhluje tvrdě a soubor viditelně zpixeluje, ale i jediné uložení JPEG vždy něco zahodí.

Každé opětovné kódování je nová generace

Když se fotografie poprvé uloží jako JPEG, pixelová data fotoaparátu se kvantizují jednou. Opětovné otevření a uložení tohoto JPEG, dokonce i bez jakýchkoli úprav, dekóduje už aproximované pixely a kvantizuje je podruhé, navrch prvního zaokrouhlení, ne místo něj. Každé další uložení je další generací a každé z nich zesiluje veškerou pixelizaci a barevné pruhování, které už zavedla předchozí generace. Jediný průchod při rozumném nastavení kvality je téměř neviditelný; stejné nastavení aplikované pětkrát nebo šestkrát po sobě na stejném souboru viditelně degraduje fotografii, protože chyby z každé předchozí generace jsou stále přítomné, když další znovu zaokrouhluje.

Řetěz pěti generací JPEG: každé opětovné kódování začíná od už zaokrouhlených pixelů té předchozí a obrázek je do páté generace viditelně pixelovaný

Proč hodně přeposílané obrázky vypadají hůř

Fotografie, která projde několika chaty, feedy a opětovnými nahráními, získá novou generaci téměř při každém skoku: messenger ji znovu zkomprimuje pro chat, sociální platforma ji znovu zakóduje pro svůj vlastní distribuční proces, někdo pořídí snímek obrazovky výsledku a nahraje tento snímek znovu, což je další úplné opětovné kódování už degradovaného obrázku. Žádný z těchto kroků nemusí být nedbalý ani používat neobvykle nízké nastavení kvality, aby se efekt sčítal; je kumulativní ze své podstaty, což přesně vysvětluje, proč obrázek, který dlouho a široce koloval, často vykazuje viditelně víc pixelizace a barevného pruhování než čerstvá kopie stejné fotografie.

Bezztrátové formáty tento problém nemají

PNG a bezztrátové WebP fungují jinak: komprimují nalezením vzorů v přesných pixelových datech a jejich efektivnějším zabalením, aniž by cokoli zaokrouhlovaly pryč, takže dekódování a opětovné kódování stejného bezztrátového souboru, bez úprav, reprodukuje pixely přesně, generaci po generaci. Tato záruka je důvodem, proč se snímky obrazovky a grafika s ostrými hranami nebo textem obvykle ukládají jako PNG místo JPEG. Má to svou cenu: bezztrátový soubor typické fotografie je mnohem větší než JPEG při rozumné kvalitě, protože není žádné zaokrouhlování, které by ho zmenšilo.

Deset opětovných uložení ve srovnání: JPEG ukazuje narůstající viditelné pixelové artefakty, bezztrátové PNG zůstává pixel po pixelu totožné s originálem

Udržení kvality souboru pod kontrolou

Řetěz generační ztráty se hromadí jen tehdy, když každé uložení začíná od už degradovaných pixelů předchozího uložení. Uchování bezztrátového originálu, souboru přímo z fotoaparátu nebo PNG, a export čerstvého JPEG z tohoto originálu pokaždé znovu zabrání navrstvení nového zaokrouhlení na staré. Náš image compressor vám umožní zvolit nastavení kvality a vidět výslednou velikost souboru ještě předtím, než cokoli odešlete, a náš nástroj pro srovnání obrázků postaví originál a komprimovanou kopii vedle sebe s posuvníkem, takže špatné nastavení odhalíte dřív, než soubor přepošlete dál a spustíte další generaci. Oba běží celé ve vašem prohlížeči: fotografie neopustí vaše zařízení kvůli kontrole.

Nástroje v tomto článku

Časté dotazy

Degraduje kopírování nebo přesun souboru JPEG jeho kvalitu?

Ne. Zkopírování souboru, jeho příloha k e-mailu nebo přesun mezi složkami kopíruje přesně stejné bajty; nic se nedekóduje ani znovu nekóduje, takže se nic znovu nekvantizuje. Generační ztráta nastává jen tehdy, když se pixely skutečně otevřou a znovu uloží, ne když se samotný soubor přesouvá.

Mohu generační ztrátu vrátit zpět a obnovit ztracený detail?

Ne. Kvantizace je opravdu ztrátová: zaokrouhlená frekvenční data, která předchozí uložení zahodilo, nejsou nikde v souboru zaznamenaná, takže je žádný filtr ani algoritmus nedokáže rekonstruovat. Zaostření nebo odšumění degradovaného JPEG může artefakty učinit vizuálně méně nápadnými, ale neobnoví to původní detail.

Zastaví problém převod degradovaného JPEG na PNG?

Převod po tom, co už ke škodě došlo, zachová to, jak JPEG v tu chvíli vypadá, pixel po pixelu, bez přidání nového kroku zaokrouhlování, ale nedokáže obnovit detail ztracený při dřívějších uloženích. Řešením je začít uchovávat bezztrátový originál dříve, než dojde k dalším generacím, ne převádět fotografii pozdě v řetězu.

Zdroje