Badanie porównawcze

Porównanie formatów WebP, JPEG i JPEG 2000 (wrzesień 2010 r.)

Uwaga: to wstępne badanie zostało przeprowadzone z pierwszą wersją WebP, która korzystała z biblioteki libvpx. Dodatkowo obrazy źródłowe to obrazy JPEG, które zostały zindeksowane z internetu. Na podstawie opinii społeczności przeprowadziliśmy nowe badanie z wersją libwebp 0.1.2, zaczynając od bezstratnych obrazów (PNG) jako źródła. Nowe badanie zastępuje to badanie.

Zespół WebP przeprowadził badania porównawcze dotyczące 3 metod kompresji obrazu na losowym zbiorze 1 miliona obrazów. Celem badania było zmierzenie kompresji uzyskanej dzięki tym metodom oraz przeanalizowanie kompromisów między rozmiarami i kompresją obrazu.

Trzy metody kompresji (WebP, JPEG 2000 i Re-JPEG) zostały zastosowane do 900 tys. obrazów JPEG zawartych w zbiorze danych. Obrazy JPEG zostały ponownie skompresowane za pomocą Re-JPEG, tak aby były jak najbliższe docelowej wartości szczytowego stosunku sygnału do szumu (PSNR). Analiza zespołu została przeprowadzona na obrazach po ich skompresowaniu.

Oprócz badania na dużą skalę zespół ręcznie sprawdził 100 losowych obrazów i stwierdził, że w większości przypadków format WebP zapewnia akceptowalną jakość wizualną.

Podsumowanie

WebP zapewnia ogólnie wyższą kompresję niż JPEG czy JPEG 2000. Oszczędności wynikające z minimalizacji rozmiaru plików są szczególnie duże w przypadku mniejszych obrazów, które są najczęściej spotykane w internecie.

Zbiór danych

Zestaw danych użyty w badaniu to zbiór 1 mln zdjęć losowo wybranych z repozytorium obrazów zindeksowanych w internecie. Tabela poniżej pokazuje rozkład różnych typów obrazów w zbiorze danych.

Typ Liczba
JPEG ok. 900 tys.
PNG ~47 K
GIF ~47 K
Inne ~6 tys.

Projektowanie eksperymentów

Eksperymenty były przeprowadzane na 2 etapach:

  1. Zespół użył formatu WebP do obrazów z docelową wartością PSNR 42. Dopracowali parametr jakości (QP) dla kodera WebP, aż uzyskali wynik jak najbardziej zbliżony do 42 dla danego obrazu. Dlatego rzeczywisty współczynnik PSNR uzyskany dla każdego obrazu niekoniecznie wynosił dokładnie 42.

  2. Zespół użył wartości PSNR dla obrazów skompresowanych w formacie WebP jako docelowej wartości PSNR dla obrazów JPEG 2000 i Re-JPEG. Przeprowadziliśmy też wyszukiwanie liniowe w przypadku parametrów jakości obrazów JPEG 2000 i JPEG, aby uzyskać jak najbliższą wartość docelową PSNR.

Rzeczywisty wynik kompresji został zmierzony w procentach za pomocą tego wzoru:

compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length

Wyniki

Testy wykazały następujące wyniki w przypadku pozytywnego i ujemnego wzrostu kompresji:

Nieujemny współczynnik kompresji

Zespół nie nakłada kar za metody, które po kompresji zwiększają rozmiar obrazu. Oznacza to, że parametr compression_percentage był uważany za 0, gdy parametr compressed_image.length był większy niż parametr original_image.length.

Ujemny współczynnik kompresji

Zespół zezwolił na wyświetlanie wyników kompresji w ujemnych wartościach, aby lepiej zrozumieć podstawową wydajność różnych kompresorów.

Poniżej znajdziesz średnie wartości procentowe kompresji uzyskane przy użyciu każdej z 3 metod.

Typ Średnia wartość PSNR uzyskana Śr. kompresja %
(nieujemny przyrost kompresji)
Śr. kompresja (%)
(ujemny współczynnik kompresji)
WebP 39,38 41,30 39,80
JPEG 2000 39,49 27,67 9,71
Re-JPEG 39,36 22,37 14,62

Gdy dozwolono na ujemny współczynnik kompresji, średnia wydajność JPEG 2000 była niższa niż JPEG. Może to być spowodowane artefaktami o wysokiej częstotliwości występującymi w obrazach JPEG. Mogą one przyczynić się do nieoptymalnej kompresji.

Implementacja Kakadu użyta w eksperymencie służącym do konwersji na format JPEG 2000 nie udało się przekonwertować około 240 tys. obrazów.

JPEG 2000 miał niższe wartości procentowe kompresji niż Re-JPEG, głównie dlatego, że w przypadku wielu obrazów kompresja JPEG 2000 była ujemna. Z tego powodu obrazy JPEG uzyskały niższy ogólny wynik kompresji.

Na poniższych rysunkach znajdziesz wykresy rozkładu dla tych 3 metod:

Rysunek 1. Rozkład wielkości populacji

Wykres pokazuje, że większość obrazów była mała. Częstotliwość wyświetlania obrazów o rozmiarze większym niż 500 tys. jest zwykle mniejsza niż 100.

Rysunek 2. Procenty kompresji dla obrazów WebP, JPEG i JPEG 2000

Ten wykres pokazuje, że obrazy skompresowane za pomocą WebP zostały skompresowane lepiej niż za pomocą re-jpeg i jpeg 2000. Poza tym zdjęcia skompresowane za pomocą WebP zostały skompresowane bardziej niż inne.

Rys. 3. Porównanie rozmiarów obrazów i procentu kompresji

Ten wykres pokazuje, że format WebP zapewnia lepszą kompresję niż inne formaty, zwłaszcza w przypadku mniejszych obrazów.