Doku sıkıştırma pikselleri sıkıştırmaz. Piksel bloklarını sıkıştırır. Tek bir piksele başvuru yapıldığında GPU, hangi bloğun pikseli temsil ettiğini hesaplar. Daha sonra bu pikselin rengini elde etmek için tüm bloğu işler.
Bir örnek
Bir RGB dokusunda blok boyutunun 4x4 piksel olduğunu varsayalım. Sıkıştırılmamış, her blok 4x4x3 = 48
doku belleğinde bayt tüketir .
Şimdi sıkıştırma algoritması her kanalın (RGB) ortalamasını hesaplayacak ve bunu blokla (3 bayt) saklayacaktır. Şimdi, pikseli orijinal rengine daha yakın olacak şekilde ortalamayı ayarlamak için her piksele 2 bit verelim. Bu başka bir 4x4x2x3/8 = 12
bayt.
Bu yeni icat edilen kompresör tarafından kullanılan toplam bayt, blok başına 15 bayttır, sıkıştırma oranı% 31.25'tir.
Efsanevi kompresörüm 7.5 bpp kullanıyor. Bu, 2 bpp pvrtc'nin başarabileceği kadar iyi değil, ancak şimdi 2 bbp'nin nasıl elde edilebileceğine dair kaba bir fikriniz var.
güncelleme:
Sadece pvrtc için wikipedia sayfasına baktım . Görünüşe göre pvrtc geleneksel blok tabanlı sıkıştırma kullanmıyor. İşte blok tabanlı sıkıştırmanın nasıl çalıştığını ve pvrtc'nin nasıl farklı olduğunu açıklayan kağıt . Özellikle not: Blok tabanlı filtreler 4bpp (alfa yok) kullanarak iyi görünümlü görüntüler üretebilirken, nvrtc 2bpp ile bunu yapabilir.