kompresja tekstur - Texture compression

Kompresja tekstur jest wyspecjalizowaną formą kompresji obrazu przeznaczonego do przechowywania map tekstur w 3D grafiki komputerowej systemów renderowania. W przeciwieństwie do konwencjonalnych algorytmów kompresji obrazu, algorytmy kompresji tekstur są zoptymalizowane dla losowego dostępu .

kompromisów

W swojej przełomowej pracy na kompresję tekstur, piw, Agrawala i lista Chaddha cztery cechy, które mają tendencję do różnicowania kompresja tekstur z innych technik kompresji obrazu. Te cechy to:

Szybkość dekodowania
Jest bardzo pożądane, aby móc uczynić bezpośrednio z danych skompresowanych tekstur i tak, aby nie wpływać wydajność renderowania, dekompresja musi być szybki.
Losowy dostęp
Ponieważ przewidywanie kolejności, że renderujący dostęp teksele byłoby trudne, każdy system kompresji tekstur musi umożliwiać szybki swobodny dostęp do dekompresji danych tekstur. Prowadzi to do wyklucza wiele lepiej znane schematy kompresji obrazu, takie jak JPEG lub uruchomienia długości kodowania .
Kompresja Oceń i jakość obrazu
W systemie renderowania, kompresja stratna może być lepiej tolerowane niż dla innych przypadków użycia. Niektóre biblioteki kompresja tekstur, takie jak kryzys, pozwalają programiście elastycznie kompromis współczynnik kompresji w porównaniu z jakością obrazu, z wykorzystaniem metod, takich jak optymalizacja szybkości odkształcenia (RDO).
Szybkość kodowania
Kompresja struktura jest bardziej odporny asymetrycznych szybkości kodowania / dekodowania, ponieważ proces kodowania jest często wykonywana tylko raz podczas procesu tworzenia aplikacji.

Biorąc pod uwagę powyższe, większość algorytmów kompresji tekstury obejmować jakąś formę stałej szybkości stratny kwantyzacji wektorowej małych pakietów o stałym rozmiarze pikseli na małe bloki o stałej liczby bitów kodujących czasami dodatkowe dodatkowe etapy obróbki wstępnej i obróbki końcowej. Blok Obcinanie Kodowanie jest bardzo prosty przykład z tej rodziny algorytmów.

Ponieważ ich stanie uzyskać dostęp do danych są dobrze zdefiniowane, tekstury dekompresja może być wykonywany on-the-fly podczas renderowania jako część ogólnego potoku graficznego , zmniejszając ogólne wymagania w zakresie przepustowości i pamięci masowej w całym układzie graficznym. Jak również mapy tekstury, kompresja tekstur mogą być również wykorzystywane do innych rodzajów kodowania renderingu mapy, w tym mapy pumeksu i normalną do powierzchni mapy . Kompresja tekstur mogą być również stosowany w połączeniu z innymi formami przetwarzania map, takich jak mapy WPI i filtrowania anizotropowego .

Dostępność

Niektóre przykłady układów zaciskowych praktyczne tekstury są S3 tekstury kompresji (S3TC) PVRTC , Ericsson tekstury kompresji (ITP) i adaptacyjny skalowalny tekstury kompresji (ASTC); mogą one być obsługiwane za pomocą specjalnych jednostek funkcyjnych w nowoczesnych procesorów graficznych .

OpenGL i OpenGL ES, jak realizowany na wielu kartach akceleratora wideo i mobilnych procesorów graficznych, może obsługiwać wiele wspólnych rodzajów kompresji tekstur - zazwyczaj poprzez zastosowanie rozszerzeń dostawców.

Kompresja tekstur mogą być stosowane w celu zmniejszenia zużycia pamięci w czasie wykonywania, w przeciwieństwie do kompresji tekstur, przeznaczonego do ograniczenia pobierania lub rozmiar dysku. Dla 64-bitowej iPhone i iPad sprzętu, RenderReduce ramowa może być stosowany do znacznego zmniejszenia zużycia pamięci. Dane tekstura jest często największym źródłem zużycia pamięci w aplikacji mobilnej.

Zobacz też

Referencje

Linki zewnętrzne