Rozmiary WebP: rzetelne porównanie jasnych i ciemnych diagramów

Management Summary
WebP to format obrazu pozwalający zmniejszyć ilość danych przesyłanych przez stronę. Przy diagramach z tekstem i ostrymi krawędziami zachowanie każdego punktu obrazu może czasem dać mniejszy plik niż zapis wysokiej jakości usuwający część szczegółów. W porównaniu dwunastu jasnych i ciemnych par dotyczyło to wszystkich 24 obrazów, a sama kolorystyka miała małe znaczenie. Wynik pokazuje, dlaczego konkretna grafika jest ważniejsza od ogólnego założenia, że jasne obrazy zajmują więcej miejsca.
Spis treści
Jasny diagram może dać większy plik niż ciemna wersja. Sama obserwacja nie wyjaśnia przyczyny. Znaczenie mają treść obrazu, wersja kodera, tryb stratny lub bezstratny, jakość, metadane i przetwarzanie wstępne. Przydatne porównanie oddziela rozmiar pliku od wyjaśnienia tego rozmiaru.
Co może wykazać historyczne porównanie
Pierwotny opis prac podawał 662 pary i sumy 32,5 oraz 56,2 MB. Wynika z tego około 73 procent więcej bajtów dla jasnego zestawu. Przy poprawnie zapisanych pomiarach różnica rozmiaru była rzeczywista; nieuzasadnione było przypisanie całej różnicy jasności.
Podczas tej kontroli nie udało się odtworzyć pełnej dawnej tabeli pomiarów, doboru próby i ustawień kodera. Dawne współczynniki nie są więc przedstawiane jako ponownie potwierdzony test. Szeroki rozrzut nie obala wpływu jasności. Średnia powyżej mediany również nie dowodzi, że różnicę spowodowało zaledwie kilka wartości odstających.

Nowy pomiar z zapisanymi ustawieniami
Kontrola objęła dwanaście istniejących angielskich tematów diagramów w wersji ciemnej i jasnej: 24 pliki RGB PNG, każdy o wymiarach 2240 × 1160 pikseli. Dobór był celowy, a nie losowy. Prywatne kopie zakodowano przy użyciu Pillow 11.1.0 i libwebp 1.5.0, bez zmiany wymiarów i kopiowania metadanych.
Każdy plik zakodowano dwukrotnie: stratnie z jakością 90 i metodą 6 oraz bezstratnie z jakością 90 i metodą 6. W trybie bezstratnym parametr jakości określa wysiłek kompresji, a nie dopuszczalną utratę obrazu. Oba tryby tworzą zatem osobne porównania.
| Tryb | Mediana jasny/ciemny | Zakres |
|---|---|---|
| Bezstratny | 1,000 | 0,965–1,027 |
| Stratny, jakość 90 | 0,974 | 0,952–1,010 |
W tej próbie obie wersje kolorystyczne miały zbliżone rozmiary. Kodowanie bezstratne dało mniejszy wynik niż stratne przy jakości 90 we wszystkich 24 plikach. Dla każdego pliku podzielono rozmiar wersji stratnej przez rozmiar bezstratnej. Środek uporządkowanych wyników, czyli mediana, wyniósł 1,577: taki stosunek odpowiada około 58 procentom więcej bajtów przy kodowaniu stratnym. Po dekodowaniu wszystkie piksele wyników bezstratnych odpowiadały dokładnie źródłom. To uzasadnia sprawdzanie trybu bezstratnego dla tych diagramów, ale nie dowodzi przewagi dla każdej grafiki ani równego rozmiaru wszystkich jasnych i ciemnych obrazów.
Paleta i RGB nie wyjaśniają całego procesu
Paleta PNG opisuje sposób zapisania kolorów źródłowych. Nie narzuca określonego trybu WebP. Proces może przed kodowaniem przekształcić źródła paletowe i RGB do tych samych pikseli. Typ koloru w PNG IHDR jest przydatną informacją o źródle; dalszy przebieg potwierdzają dzienniki kodowania.
Stratny WebP przewiduje bloki pikseli na podstawie sąsiednich pikseli. Różnice między przewidywaniem a źródłem są przekształcane, a otrzymane wartości zaokrąglane, aby oszczędzić miejsce. To zaokrąglanie usuwa część informacji. Jednobarwne obszary również mogą kompresować się wydajnie. Bezstratny WebP stosuje inne transformacje i techniki kodowania, w tym związane z paletami. Stwierdzenie „jakość 90 marnuje bity w każdym jednobarwnym obszarze” nie jest więc wiarygodnym wyjaśnieniem.
Mniejszy wynik także wymaga kontroli jakości
Czterokrotnie większy wynik ponownego kodowania jest powodem do sprawdzenia procesu. Nie wskazuje jednoznacznie zmienionej jakości. Różnić mogą się również wersja kodeka, metadane, przeliczenie pikseli i tryb kompresji. Podobne rozmiary nie dowodzą natomiast identycznych ustawień.
W rzetelnym teście oryginalny PNG stanowi wejście obu trybów. Ponowne stratne kodowanie pliku WebP, który już utracił część informacji, może usunąć kolejne szczegóły obrazu. Porównanie powinno zapisywać skróty źródeł, wymiary, przezroczystość, wersje, jawne opcje, bajty wyniku i jakość zdekodowanego obrazu. Cienkie litery oraz kolorowe krawędzie wymagają kontroli wzrokowej.
Pytania i odpowiedzi
Czy 27 większych plików na 40 odpowiada wynikowi rzutu monetą?
Nie: 27/40 to 67,5 procent. Sama liczba nie dowodzi równych rozmiarów ani nie mierzy wielkości różnicy. Powiązane szablony diagramów podważają też założenie niezależnych obserwacji. Ilorazy i sposób doboru próby są bardziej przydatne niż taka analogia.
Jak rozpoznać tryb WebP?
Dane obrazu używają VP8 dla kodowania stratnego lub VP8L dla bezstratnego. VP8X opisuje rozszerzony kontener; przed obrazem mogą wystąpić bloki metadanych, alfa lub animacji. Pełna kontrola za pomocą webpinfo jest pewniejsza niż odczyt pierwszego bloku.
Czy da się odzyskać pierwotne ustawienie jakości?
WebP nie ma standardowego pola zapisującego pierwotną opcję jakości kodera. Ponowne kodowanie ze znanymi ustawieniami pozwala porównywać wyniki, ale nie odtwarza jednoznacznie wszystkich wcześniejszych wyborów. Mocniejszym dowodem są dzienniki kodowania.
Czy wynik dotyczy również fotografii?
Z tej próby diagramów nie wynika ogólna reguła. Kodowanie stratne często mocno zmniejsza obrazy o złożonej fakturze przy akceptowalnej jakości wizualnej. Wybór zależy od konkretnego obrazu i wymaganej jakości, nie tylko od kategorii.