Przecież masz narysowane na obrazku:
- "total 64 bits", a więc każdy blok 4x4 to 64 bity w skompresowanym ciągu,
- 64 bity składają się z 16 bitów na color0, 16 bitów na color1 i 32 bitów na macierz,
- na każdy element macierzy przypadają 2 bity i wszystko się zgadza bo 16 elementów * 2 bity/ element = 32 bity,
Jeśli chodzi o kompresję to musisz albo znaleźć gotowe heurezy do znajdowania dobrych wartości color0 i color1 albo sam szukać. W zależności od tego jak oceniasz jakość skompresowanego obrazu, procedura szukania color0 i color1, a także współczynników w macierzy będzie wyglądać inaczej.
Np wymyślona na szybko heureza:
- color0 będzie uśrednioną wartością 3 najciemniejszych pikseli z bloku,
- color1 analogicznie tylko dla najjaśniejszych 3,
- wartości w macierzy będą dobrane tak, by różnica jasności między wartościami oryginalnymi, a odtworzonymi była jak najmniejsza,
Wzór na jasność, czyli luminancję, możesz wziąć np stąd: http://en.wikipedia.org/wiki/YCbCr - to co ciebie interesuje to wzory na Y.
16 bitów na kolor może być (tzn strzelam) podzielone np tak, że jest 5 bitów na kanał czerwony, 6 bitów na zielony i 5 bitów na niebieski. Ale może być też inaczej, zajrzyj do specyfikacji DXT1.