JPEG, PNG, WebP czy AVIF: który zachować?
Mam to samo zdjęcie w czterech formatach. Który zostawić, a które skasować?
Zacznij od obrazu, nie od formatu
Spór o format jest niemal zawsze złym sporem na początek. O wyniku decyduje zawartość obrazu. Zdjęcia składają się z gładkich, zaszumionych gradientów bez powtarzających się ciągów pikseli. Zrzuty ekranu, logotypy, diagramy i pixel art składają się z jednolitych płaszczyzn, ostrych krawędzi i niewielkiej liczby dokładnych kolorów. Te dwa rodzaje obrazu kompresują się zupełnie innymi mechanizmami, a format doskonały w jednym jest zwykle przeciętny w drugim.
Pierwsze pytanie nie brzmi więc „czy AVIF jest lepszy od JPEG”. Brzmi „czy to zdjęcie, czy grafika, i czy potrzebuje przezroczystości”. Gdy na nie odpowiesz, na krótkiej liście zostaje zwykle jeden albo dwa formaty.
Co naprawdę robi każdy format
| Format | Kompresja | Przezroczystość | Animacja | Najlepsze zastosowanie |
|---|---|---|---|---|
| JPEG | Tylko stratna | Nie | Nie | Zdjęcia, które muszą otworzyć się wszędzie |
| PNG | Tylko bezstratna | Tak, 8-bitowa alfa | Nie (APNG to osobna funkcja) | Zrzuty ekranu, logotypy, płaska grafika, dokładne piksele |
| WebP | Stratna lub bezstratna | Tak, w obu trybach | Tak | Uniwersalny zamiennik zarówno JPEG, jak i PNG |
| AVIF | Stratna lub bezstratna | Tak, również 10-bitowa | Tak | Zdjęcia tam, gdzie czas kodowania jest do przyjęcia |
Tabela ukrywa jedną rzecz, którą warto powiedzieć głośno: PNG nie da się zmniejszyć obniżeniem suwaka jakości, bo nie ma suwaka jakości. Optymalizator PNG zmniejsza plik, znajdując lepszy filtr predykcji i lepszą paletę, a nie odrzucając szczegóły. Dlatego zdjęcie zapisane jako PNG pozostaje ogromne, jakiegokolwiek narzędzia byś na nie nie puścił — w tym formacie nie ma niczego, co pozwalałoby wyrzucić informację.
Stratny i bezstratny to nie oceny jakości
Kusi, żeby czytać „bezstratny” jako „dobry”, a „stratny” jako „zły”. To nie są oceny jakości, tylko różne zadania. Bezstratny znaczy, że zdekodowane piksele są bit w bit identyczne z tym, co weszło; to właściwy wybór, gdy liczą się same piksele, jak w zrzucie ekranu interfejsu, z którego ktoś będzie czytał tekst. Stratny znaczy, że koder może odrzucić szczegóły, których oko słabo zauważa, i tylko dzięki temu dwunastomegapikselowe zdjęcie w ogóle mieści się w kilkuset kilobajtach.
Przydatna zasada: jeśli zauważyłbyś jeden nieprawidłowy piksel, użyj formatu bezstratnego. Jeśli nie, format stratny przy rozsądnym ustawieniu jakości da plik wielokrotnie mniejszy, a różnicy przy normalnej wielkości oglądania nie zobaczysz.
Gdzie WebP i AVIF się bronią
Oba nowsze formaty korzystają z narzędzi predykcji i transformacji, których JPEG, ustandaryzowany w 1992 roku, nie ma. W praktyce znaczy to, że przy podobnej jakości wizualnej potrafią zejść do mniejszego rozmiaru, a oba obsługują przezroczystość, czego JPEG nie potrafi wcale. WebP jest tym pragmatycznym: koduje szybko i zastępuje jednym formatem zarówno JPEG, jak i PNG. AVIF jest tym ambitnym: korzysta z narzędzi wewnątrzklatkowych kodeka wideo AV1, obsługuje większe głębie bitowe i dla materiału fotograficznego daje zwykle najmniejszy plik z całej czwórki.
Kosztem jest czas kodowania. Kodowanie AVIF to problem przeszukiwania, a koder poświęca na nie realny czas procesora. W karcie przeglądarki, na telefonie, to twój czas — dlatego FileSlimmer pokazuje postęp osobno dla każdego pliku AVIF, zamiast udawać, że czekania nie ma. Jeśli konwertujesz jeden obraz nagłówkowy, ten kompromis jest oczywiście tego wart. Jeśli konwertujesz czterysta, rozważ WebP.
Konwersja starego pliku nie cofa starych szkód
To najczęstsze rozczarowanie. Jeśli weźmiesz plik JPEG zapisany lata temu w niskiej jakości i przekonwertujesz go na PNG albo na bezstratny WebP, artefakty blokowe i obwódki zostaną wiernie skopiowane do nowego pliku. Bezstratny znaczy „identyczny z wejściem”, a wejście miało szkody już wypalone w pikselach. Dostajesz większy plik z dokładnie tymi samymi wadami.
Konwersja pliku stratnego na inny format stratny to drugi, osobny przebieg kompresji, więc może dołożyć własne artefakty. Kiedy masz wybór, konwertuj z najbardziej oryginalnego pliku, jaki nadal posiadasz — oryginału z aparatu, eksportu z narzędzia projektowego — a nie z kopii, która przeszła już przez kompresor.
Krótka lista, z której da się korzystać
- Zdjęcie, które ma otworzyć się we wszystkim, łącznie ze starym oprogramowaniem: zostań przy JPEG.
- Zdjęcie na własną stronę lub do własnej aplikacji, gdzie kontrolujesz, co je czyta: WebP albo AVIF, jeśli możesz poświęcić czas kodowania.
- Zrzut ekranu, logo, diagram, wykres albo cokolwiek z tekstem w pikselach: PNG albo bezstratny WebP, jeśli rozmiar liczy się bardziej niż uniwersalna obsługa.
- Cokolwiek, co potrzebuje przezroczystego tła: PNG, WebP lub AVIF. Nie JPEG.
- Kopia archiwalna, którą możesz jeszcze edytować: zachowaj oryginalny plik, jakikolwiek jest, i traktuj każdą skompresowaną wersję jako jednorazową.
Czego to porównanie ci nie mówi
Nie ma tu rankingu rozmiarów i jest to celowe. Publikowane porównania są mierzone na konkretnym zestawie obrazów, z konkretnymi wersjami koderów i konkretnymi ustawieniami, a wynik zmienia się, gdy zmieni się którykolwiek z tych elementów. Twój własny obraz jest jedynym testem, który opisuje twój własny obraz. Przekonwertuj to samo źródło raz na każdego kandydata przy ustawieniu jakości, które uznasz za akceptowalne, a potem porównaj obie liczby i oba obrazy obok siebie.
Obsługa też zmienia się w czasie. Zanim przeniesiesz bibliotekę na nowszy format, sprawdź, co ma te pliki otwierać: przeglądarka, galeria w telefonie, drukarka, dziesięcioletni program na komputerze klienta. Najlepszy format to najmniejszy z tych, które wszystko z tej listy naprawdę potrafi odczytać.
Narzędzia do tego zadania
Źródła
- 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)