Mis on tekstuuri kokkupressimine?

Seoses arvutigraafikaga on tekstuuri tihendamine viis pildi tegemiseks, mida kasutatakse objektil tekstuurina, tavaliselt kolmemõõtmelises (3D) stseenis, ja vähendada kujutise jaoks vajalikku mälumahtu. Erinevalt traditsioonilisematest kujutise tihendamise algoritmidest püüavad tekstuuri tihendamise meetodid pakkuda võimalust hoida tihendatud pilti mälus, võimaldades samal ajal programmil pääseda juurde pildi konkreetsetele pikslitele, ilma et peaks pilti täielikult lahti pakkima. Selle saavutamiseks on mitmeid viise, sealhulgas ploki kärpimise kodeerimine (BTC), kuigi programmi täitmise ajal tuleb mäluruumi kokkuhoidu tavaliselt tasakaalustada protsessori kasutuse suurenemise või kadudeta pakkimise kasutamisest tuleneva pildikvaliteedi langusega. Kõige sagedamini rakendavad erinevate graafikakaartide ja muude seadmete tootjad tekstuuri tihendamise tuge otse riistvarasse, mille tulemuseks on mitu levinud tihendusalgoritmi, mis kannavad erinevate riistvaratootjate nimesid.

Üks põhjus, miks tekstuuride tihendamine töötati välja ja sellest on saanud 3D-graafikas tavaline tehnika, on see, et suurema eraldusvõimega monitoridelt vaatamiseks mõeldud stseenide tihendamata kujutiste tekstuuride salvestamiseks võib kuluda mitukümmend gigabaiti mälu. Lisaks on käeshoitavatel digitaalsetel seadmetel üldiselt piiratud mälumaht, mis muidu ei suudaks 3D-stseeni jaoks vajalikke pilte hoida. Tekstuuri tihendamine vähendab süsteemis vajaliku mälumahtu, nii et saab kasutada rohkem tekstuure või kõrgema kvaliteediga tekstuure.

Kõige elementaarsem tekstuuri tihendamise tüüp on tuntud kui ploki kärpimise kodeerimine. See meetod teeb pildi ja jagab selle väikesteks piksliplokkideks, leides plokist kaks värvi, mis on värviruumi vaatenurgast kõige kaugemal. Plokis olevatele tegelikele pildipikslitele määratakse seejärel arvväärtus, mis näitab nende värvi kahe äärmise värvi suhtes. Skeem tihendab kujutise, kuna bittide hulk, mis on vajalik, et salvestada ploki pikslite kõrvalekaldeid värvidest, on väiksem kui tegeliku värvi salvestamiseks. Saadud tihendus pakub ka võimaluse indekseerida piksleid vastavalt vajadusele otse tihendatud pildist.

Sõltuvalt riistvarast, tarkvarast ja muudest teguritest võib tekstuuri tihendamine toimuda käitusajal või seda saab eelnevalt teha ja failina salvestada. Dünaamiliselt loodud tekstuurid tuleb täitmise ajal alati kokku suruda. Tihendatud tekstuuri laadimine failist võib algselt olla kiirem, kuid see võib põhjustada ka probleeme, kui riistvara ei toeta teatud tüüpi tihendamist.