Google i dwumian
Baza Uniwersalna uzupełnia poprzednio
Format Basis Universal pozwala osiągnąć wydajność natywnych tekstur GPU, ale zapewnia wyższy poziom kompresji.
Basis to format pośredni, który zapewnia szybkie transkodowanie tekstur GPU do różnych formatów niskiego poziomu do użytku zarówno w systemach stacjonarnych, jak i na urządzeniach mobilnych przed użyciem. Obecnie obsługiwane są formaty PVRTC1 (4bpp RGB), BC7 (tryb 6 RGB), BC1-5, ETC1 i ETC2. Oczekuje się, że w przyszłości będzie obsługiwana format ASTC (RGB lub RGBA) oraz tryby 4/5 RGBA dla BC7 i 4bpp RGBA dla PVRTC1.
Tekstury w formacie bazowym zajmują 6-8 razy mniej pamięci wideo i wymagają przesłania w przybliżeniu o połowę mniej danych niż typowe tekstury oparte na formacie JPEG i 10-25% mniej niż tekstury w trybie RDO. Na przykład przy rozmiarze obrazu JPEG wynoszącym 891 KB i teksturze ETC1 wynoszącej 1 MB, rozmiar danych w formacie Basis wynosi 469 KB w trybie najwyższej jakości. Podczas umieszczania tekstur w pamięci wideo użyte w testach tekstury JPEG i PNG zużywały 16 MB pamięci, natomiast tekstury w
Podstawa wymagała 2 MB pamięci do translacji do BC1, PVRTC1 i ETC1 oraz 4 MB do translacji do BC7.
Proces migracji istniejących aplikacji do Basis Universal jest dość prosty. Wystarczy przekodować istniejące tekstury lub obrazy do nowego formatu za pomocą narzędzia „basisu” dostarczonego z projektem, wybierając wymagany poziom jakości. Następnie w aplikacji, przed kodem renderującym, należy zainicjować transkoder baseu, który odpowiada za tłumaczenie formatu pośredniego na format obsługiwany przez aktualny układ GPU. Jednocześnie obrazy w całym łańcuchu przetwarzania pozostają skompresowane, łącznie z ładowaniem w postaci skompresowanej do procesora graficznego. Zamiast z wyprzedzeniem transkodować cały obraz, procesor graficzny selektywnie dekoduje tylko niezbędne części obrazu.
Obsługuje zapisywanie heterogenicznych tablic tekstur (map sześciennych), tekstur wolumetrycznych, tablic tekstur, poziomów mipmap, sekwencji wideo lub dowolnych fragmentów tekstur w jednym pliku. Na przykład możliwe jest spakowanie serii obrazów w jednym pliku w celu utworzenia małych filmów lub połączenie kilku tekstur przy użyciu wspólnej palety dla wszystkich obrazów i deduplikacji typowych szablonów obrazów. Implementacja kodera Basis Universal obsługuje kodowanie wielowątkowe przy użyciu OpenMP. Transkoder obecnie działa tylko w trybie jednowątkowym.
dodatkowo
Należy zauważyć, że możliwość osadzania wideo z jego późniejszą obróbką wyłącznie po stronie GPU sprawia, że Basis Universal jest ciekawym rozwiązaniem do tworzenia dynamicznych interfejsów użytkownika na WebAssembly i WebGL, które mogą jednocześnie wyświetlać setki małych filmów przy minimalnym obciążeniu procesora. Dopóki instrukcje SIMD nie będą mogły być używane w WebAssembly z tradycyjnymi kodekami, ten poziom wydajności nie jest jeszcze osiągalny, więc wideo oparte na teksturach może być używane w obszarach, w których konwencjonalne wideo nie ma zastosowania. Kod z dodatkowymi optymalizacjami dla wideo jest obecnie przygotowywany do publikacji, łącznie z możliwością wykorzystania
Źródło: opennet.ru