Laboratorium porównywania formatów

Porównanie kompresji tekstur

Zakoduj jeden obraz do BC, ETC, ASTC i Basis Universal tymi samymi koderami, których używają nasze narzędzia, i porównaj jakość, rozmiar pliku oraz pamięć GPU na podstawie rzeczywistych pomiarów.

1

Obraz źródłowy

Upuść tu obraz lub wybierz plik

Wczytywanie obrazu…

Rozmiar roboczy (dłuższy bok)

Większe obrazy są zmniejszane, nigdy powiększane, i przycinane do pełnych bloków 4×4.

Obrazy nigdy nie opuszczają przeglądarki.

2

Formaty

Wybrano: 8
Desktop · BC
Mobilne · ETC
Mobilne · ASTC
Uniwersalne · Basis

Każdy format jest kodowany i dekodowany w workerze w tle.

3

Wyniki

Wybierz formaty i uruchom porównanie, aby zobaczyć tu pomiary.

Jak czytać wyniki

PSNR (dB)

Szczytowy stosunek sygnału do szumu dla R, G i B. Każde 3 dB mniej więcej o połowę zmniejszają błąd kwadratowy. Powyżej około 40 dB różnice trudno zauważyć; poniżej około 30 dB artefakty są zwykle wyraźne.

SSIM

Podobieństwo strukturalne luminancji w zakresie od 0 do 1. Lepiej niż PSNR wychwytuje rozmycie i blokowość, ale pomija przesunięcia kolorów, więc czytaj oba razem.

Pamięć GPU

Ile tekstura zajmuje po przesłaniu, bez mipmap. Zależy tylko od formatu i rozmiaru; pełny łańcuch mipmap dodaje około 33%.

Rozmiar pliku

Zakodowany kontener na dysku. Pliki Basis są superkompresowane i mogą być znacznie mniejsze niż ich zajętość w GPU; pliki DDS, PKM i ASTC to dane GPU z niewielkim nagłówkiem.

Siatka bloków

Powiększ obraz i włącz siatkę, aby zobaczyć granice bloków. Artefakty wyrównane z siatką wynikają z decyzji, które koder podjął dla każdego bloku.

Ustawienia kodera

Każdy format korzysta z ustawień domyślnych swojej strony kodera, np. ASTC w jakości medium. Dla finalnych zasobów otwórz dedykowany koder i dostosuj jakość, przestrzeń kolorów oraz mipmapy.

Najczęstsze pytania

Czy te wyniki odpowiadają prawdziwym koderom?

Tak. Narzędzie uruchamia te same kodery i dekodery WebAssembly co nasze strony kodowania i dekodowania, a następnie mierzy zdekodowane piksele. Sprzęt GPU może zaokrąglać niektóre formaty nieco inaczej, więc różnice poniżej około 1 dB traktuj jako remis.

Dlaczego pamięć GPU dla Basis Universal jest szacunkiem?

Pliki Basis są transkodowane na każdym urządzeniu. ETC1S zwykle staje się BC1 lub ETC1 z 4 bitami na teksel, a UASTC – BC7 lub ASTC 4×4 z 8 bitami na teksel. Jakość mierzymy tu na bezpośrednim dekodowaniu do RGBA; transkodowanie do formatu GPU może dodać niewielką stratę.

Jak traktowane są obrazy z przezroczystością?

Kanał alfa jest zachowany i mierzony w osobnej kolumnie PSNR. Formaty, które nie mogą go zachować, są oznaczone na liście: koder BC1 odrzuca obrazy przezroczyste, a ETC1 i ETC2 RGB pomijają alfę. Do przezroczystych tekstur używaj BC3, BC7, ETC2 RGBA, ASTC lub Basis.

Czy moje obrazy są wysyłane?

Nie. Obrazy są dekodowane, kodowane i mierzone w przeglądarce, a nic nie trafia na serwer.