Ce este compresia texturii?

În ceea ce privește grafica computerizată, compresia texturii este o modalitate de a realiza o imagine care va fi folosită ca textură pe un obiect, de obicei într-o scenă tridimensională (3D), și de a reduce cantitatea de memorie necesară imaginii. Spre deosebire de algoritmii tradiționali de compresie a imaginii, metodele de comprimare a texturii încearcă să ofere o modalitate de a păstra imaginea comprimată în memorie, permițând, de asemenea, unui program să acceseze pixeli specifici din imagine fără a fi nevoie să decomprima complet imaginea. Există mai multe moduri în care se realizează acest lucru, inclusiv codarea trunchierii blocurilor (BTC), deși economiile de spațiu de memorie în timpul execuției programului trebuie de obicei echilibrate cu o creștere a utilizării procesorului sau o reducere a calității imaginii rezultată din utilizarea compresiei cu pierderi. Cel mai frecvent, producătorii de diferite plăci grafice și alte dispozitive implementează suport pentru compresia texturii direct în hardware, ceea ce duce la mai mulți algoritmi de compresie obișnuiți care poartă numele diferiților producători de hardware.

Unul dintre motivele pentru care a fost dezvoltată compresia texturii și a devenit o tehnică comună în grafica 3D este că poate fi nevoie de câteva zeci de gigaocteți de memorie pentru a stoca texturi de imagine necomprimate pentru scenele destinate a fi vizualizate pe monitoare cu rezoluție mai mare. În plus, dispozitivele digitale portabile au, în general, cantități limitate de memorie, care altfel nu ar putea păstra imaginile necesare pentru o scenă 3D. Comprimarea texturii reduce cantitatea de memorie necesară pe un sistem, astfel încât să poată fi utilizate mai multe texturi sau texturi de calitate superioară.

Cel mai elementar tip de compresie a texturii este cunoscut sub denumirea de codare de trunchiere a blocurilor. Această metodă preia o imagine și o împarte în blocuri mici de pixeli, găsind cele două culori din bloc care sunt cele mai îndepărtate din perspectiva spațiului de culoare. Pixelilor reali de imagine din bloc li se atribuie apoi o valoare numerică pentru a indica culoarea lor în raport cu cele două culori extreme. Schema comprimă o imagine deoarece cantitatea de biți necesară pentru a stoca abaterea unui pixel de la culorile dintr-un bloc este mai mică decât ceea ce este necesar pentru a stoca culoarea reală. Comprimarea rezultată oferă, de asemenea, o modalitate de a indexa pixelii direct din imaginea comprimată, după cum este necesar.

În funcție de hardware, software și alți factori, compresia texturii poate apărea în timpul execuției sau poate fi efectuată în prealabil și salvată ca fișier. Texturile create dinamic trebuie să fie întotdeauna comprimate în timpul execuției. Încărcarea unei texturi comprimate dintr-un fișier poate fi mai rapidă inițial, dar poate provoca și probleme dacă hardware-ul nu acceptă un anumit tip de compresie.