Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AeronauticaComunicatiiElectronica electricitateMerceologieTehnica mecanica


ADAPTOARE VIDEO: Structura unui adaptor video

Electronica electricitate



+ Font mai mare | - Font mai mic



ADAPTOARE VIDEO

Adaptorul video este componenta sistemului de calcul care realizeaza interfata cu echipamentul de afisare. In general, acest adaptor se afla pe o placa de extensie separata, dar unele sisteme au functiile adaptorului video integrate pe placa de baza. Primele adaptoare video erau conectate la magistrala ISA. Odata cu cresterea rezolutiei imaginilor afisate si a numarului de culori, a crescut rata de transfer necesara pentru reimprospatarea imaginilor de pe ecran. Deoarece magistrala ISA nu oferea o rata de transfer suficienta, adaptoarele video au fost conectate la magistrala VL Bus sau PCI. Adaptoarele actuale utilizeaza interfata AGP (Accelerated Graphics Port care asigura o cale de comunicare directa intre adaptorul video si memoria interna a sistemului, fara utilizarea magistralei PCI. Astfel se evita congestia magistralei PCI, in special in cazul aplicatiilor 3D care necesita transferul unui volum foarte mare de date.



1.1. Structura unui adaptor video

Schema bloc de principiu a unui adaptor video este prezentata in figura 1.1. Acesta este un adaptor care se conecteaza la magistrala sistemului, de exemplu, la magistrala PCI. Adaptoarele care utilizeaza interfata AGP sunt descrise in capitolul II.

Figura 1.1. Schema bloc de principiu a unui adaptor video.

Componentele principale ale adaptorului sunt urmatoarele: controlerul grafic, BIOS-ul video, memoria video, circuitul RAMDAC (RAM Digital to Analog Converter), controlerul CRT, generatorul semnalelor de ceas si portul video. Aceste componente, cu exceptia memoriei video, pot fi integrate intr-un singur circuit grafic sau intr-un set de circuite grafice. Principalele componente ale unui adaptor video sunt descrise in continuare.

1.1.1. Controlerul graphic

Controlerul grafic realizeaza principalele functii ale adaptorului video. Acest controler contine interfata cu magistrala sistemului, prin care se realizeaza legatura intre memoria sistemului si memoria video. Viteza asigurata de interfata cu magistrala este un element important, deoarece multe operatii grafice implica copierea unui volum mare de date din memoria sistemului in memoria adaptorului video. O interfata performanta cu magistrala trebuie sa aiba doua caracteristici importante. In primul rand, trebuie sa admita transferuri in mod exploziv ("burst") prin specificarea adresei de inceput si a lungimii blocului. In al doilea rand, interfata trebuie sa permita transferuri fara stari de asteptare. Un astfel de mod este important mai ales la citirea memoriei video. La scrierea in memoria video, trebuie utilizata o memorie FIFO pentru a asigura scrierea eficienta a datelor sau actualizarea imaginilor de pe ecran.

Controlerul grafic contine de asemenea interfata cu memoria video, prin care se realizeaza controlul accesului la memoria video pentru actualizarea imaginilor. Registrele VGA (Video Graphics Array) si registrele de control asigura programarea adaptorului video pentru functionarea in modurile compatibile cu standardul VGA. Majoritatea adaptoarelor sunt compatibile cu standardul VGA, iar acest standard asigura si compatibilitatea cu standardele anterioare. Exista insa si adaptoare care nu mai sunt compatibile cu standardul VGA, la care registrele VGA nu se mai regasesc. O alta functie a controlerului grafic este generarea prin hardware a cursorului pentru ecran. Controlerul grafic poate executa si diferite functii grafice, ca desenarea unor linii, umplerea unor suprafete sau transferul unor blocuri de date. Functiile grafice sunt implementate de obicei de catre acceleratoarele grafice, controlerul grafic fiind numit in acest caz si procesor grafic. Acceleratoarele grafice pentru aplicatii 2D sau 3D sunt prezentate in sectiunile urmatoare.

1.1.2. BIOS-ul video

BIOS-ul video pune la dispozitie functii video care pot fi utilizate de programe pentru accesul la adaptorul video, realizand interfata cu controlerul grafic. Deoarece BIOS-urile diferitelor adaptoare sunt diferite, programarea a devenit dificila datorita cresterii numarului de adaptoare de tipuri diferite. Organizatia VESA a elaborat un standard pentru functiile BIOS in modurile cu inalta rezolutie, numit VESA BIOS Extensions (VBE).

1.1.3. Memoria video

Memoria video pastreaza imaginea video, aceasta memorie fiind numita si buffer de cadre. Dimensiunea, timpul de acces si organizarea memoriei video reprezinta factori importanti care influenteaza performantele adaptorului video. Detalii despre aceste aspecte ale memoriei video sunt prezentate in sectiunea 1.4.

1.1.4. Circuitul RAMDAC

Circuitul RAMDAC (RAM Digital to Analog Converter) preia imaginea sub forma de date numerice si o converteste in semnale analogice care pot fi afisate de monitor. Functiile circuitului RAMDAC pot fi integrate in cadrul controlerului grafic. Pentru arhitecturile mai performante, care utilizeaza memorii video cu port dual, circuitul RAMDAC trebuie sa fie separat de controlerul grafic. Functionarea circuitului RAMDAC este descrisa mai detaliat in sectiunea 1.2.

1.1.5. Controlerul CRT

Controlerul CRT genereaza semnalele de sincronizare necesare pentru afisarea imaginilor de catre monitor. Aceste semnale sunt semnalul de sincronizare pe orizontala SH si semnalul de

sincronizare pe verticala SV.

1.1.6. Generatorul de ceas

Generatorul de ceas este utilizat pentru a converti frecventa oscilatorului cu cuart in frecventele necesare pentru controlerul grafic, controlerul CRT si circuitul RAMDAC.

1.1.7. Portul video

Portul video permite ca imaginile video preluate din alte surse sa fie mixate sau incluse in imaginile afisate pe ecran. Acest port poate fi utilizat, de exemplu, pentru afisarea pe ecran a

imaginilor TV simultan cu imaginile grafice generate de calculator. Exista mai multe variante ale

portului video, o parte din acestea fiind standardizate de organizatia VESA.

O prima varianta este interfata VFC (VGA Feature Connector), care a fost elaborata pentru standardul VGA. Aceasta varianta, care nu mai este utilizata astazi, specifica o magistrala de pixeli de 8 biti pentru conectarea unei surse video la calculator si permitea afisarea unor imagini video intr-o fereastra de pe ecranul monitorului, cu o rezolutie de numai 640 480 pixeli si un numar de 256 de culori. Rata de transfer maxima ajungea la 40 MB/s. O varianta imbunatatita a interfetei VFC este VAFC (VESA Advanced Feature Connector), varianta care a fost standardizata de organizatia VESA in anul 1994 si revizuita in 1995. Interfata VAFC pune la dispozitie o magistrala dedicata de 32 de biti pentru transferul datelor video, cu o rata de transfer maxima de 150 MB/s. Caracteristicile imaginilor afisate sunt rezolutia maxima de 1024 768 pixeli, 256 de culori si frecventa de reimprospatare de 75 Hz. Varianta VAFC a reprezentat doar o solutie pe termen scurt pentru mixarea imaginilor video si a celor grafice. O alta interfata video este VMC (VESA Media Channel), care a fost standardizata in anul 1993. Aceasta interfata, care s-a dorit a fi o solutie pe termen mai lung pentru sistemele multimedia, defineste un canal separat de 32 de biti pentru transferul datelor video si audio necomprimate, la o rata de transfer maxima de 132 MB/s. Canalul dedicat pentru transferul datelor multimedia permite comunicatia directa, bidirectionala si simultana intre mai multe adaptoare video sau mai multe periferice de 8, 16 sau 32 de biti, fara a incarca magistrala sistemului si fara interventia UCP. Aceste periferice pot fi, de exemplu, decodoare MPEG-2, controlere HDTV sau aparate Video CD. Interfata VMC permite aplicatii video in timp real, gestionand simultan pana la 15 siruri de date multimedia. Specificatiile VMC permit utilizarea oricarei tehnologii pentru memoria video, inclusiv a unor tehnologii aparute ulterior elaborarii acestor specificatii.

O ultima varianta de interfata video prezentata este interfata VIP (Video Interface Port), versiunea a 2 a standardului acestei interfete fiind publicata de organizatia VESA in anul 1998. Similar interfetei VMC, interfata VIP permite accesul diferitelor dispozitive video digitale la bufferul de cadre al adaptorului video pentru realizarea unor aplicatii cum sunt videoconferinte, redarea discurilor DVD video sau aplicatii TV. Interfata VIP este o conexiune fizica dedicata intre adaptorul video si dispozitive cum sunt decodoare MPEG-2 sau HDTV, digitizoare video sau codificatoare video.

Aceasta interfata este mai simpla decat interfata VMC si permite realizarea unor configuratii la costuri mai scazute. In sectiunea 1.8 vor fi descrise diferite metode de combinare a imaginilor video cu cele grafice.

1.2. Functionarea circuitului RAMDAC

Structura unui circuit RAMDAC este ilustrata in figura 1.2.

Figura 1.2. Structura circuitului RAMDAC.

Componentele circuitului RAMDAC sunt tabela de selectie a culorilor RAM CLUT (Color Look-Up Table) si convertoarele numeric-analogice DAC. Dupa cum se observa din figura 1.2, datele video pot fi aplicate la intrarile circuitelor DAC fie direct, ocolind tabela RAM CLUT, fie prin intermediul acestei tabele. Varianta utilizata depinde de modul video utilizat si, implicit, de numarul de biti alocati in memoria video pentru culoarea fiecarui pixel. Modurile video pentru care datele din memoria video sunt transmise direct la intrarile circuitelor DAC se numesc moduri video cu culori directe, iar cele pentru care se utilizeaza tabela RAM CLUT se numesc moduri video cu culori indexate. Majoritatea aplicatiilor actuale utilizeaza moduri video cu culori directe. Totusi, tabela RAM CLUT se utilizeaza in unele situatii.

Tabela RAM CLUT este in principiu un convertor de cod care transforma un cod de culoare exprimat pe un numar mai redus de biti (de exemplu, 8) intr-o valoare extinsa (de exemplu, pe 24 de biti) pentru a permite utilizarea unui numar mare de culori. Aceasta tabela se utilizeaza pentru

aplicatiile care nu necesita un numar mare de culori sau in cazul in care adaptorul nu contine o memorie suficienta pentru alocarea unui numar de 24 sau 32 de biti pentru culoarea fiecarui pixel.

Consideram, de exemplu, cazul in care memoria video contine cate 8 biti pentru codul de culoare al fiecarui pixel, ceea ce permite utilizarea unui numar de 256 de culori. Daca se utilizeaza trei circuite DAC de cate 8 biti pentru culorile fundamentale, vor fi disponibile 16,7 milioane culori. Selectia celor 256 de culori care vor fi utilizate din numarul total de culori disponibile se realizeaza cu ajutorul tabelei RAM CLUT. Cu alte cuvinte, aceasta tabela selecteaza 256 de culori care vor fi afisate simultan pe ecran dintr-o paleta de 16,7 milioane culori.

Tabela RAM CLUT este o memorie RAM care contine 256 de cuvinte de cate 24 de biti, fiecare cuvant fiind impartit in trei campuri de cate 8 biti pentru cele trei culori fundamentale. Unele adaptoare utilizeaza o tabela RAM CLUT cu dimensiunea cuvantului de 18 biti, ceea ce limiteaza numarul total de culori la 262.144. Cei 8 biti reprezentand codul culorii, cititi din memoria video, se utilizeaza ca index in tabela RAM CLUT, continutul cuvantului selectat fiind transmis la cele trei circuite DAC. Tabela RAM CLUT este programabila, deci fiecare cuvant al tabelei poate fi incarcat prin program cu o noua valoare. Prin simpla modificare a valorii unui cuvant din tabela RAM CLUT se poate defini o noua culoare care va fi disponibila in cadrul setului de 256 de culori. Astfel este posibila si modificarea rapida a culorii unor obiecte afisate pe ecran sau stergerea obiectelor respective. Figura 1.3 ilustreaza modul in care se utilizeaza tabela RAM CLUT.

Figura 1.3. Utilizarea tabelei de selectie a culorilor RAM CLUT.

Fiecare din cele trei convertoare numeric-analogice (circuite DAC) primeste la intrare o valoare pe 8 biti si genereaza la iesire un semnal analogic care poate avea 256 de nivele de tensiune. Cele trei semnale analogice R, G si B generate de circuitele DAC sunt transmise prin conectorul si cablul interfetei la monitor pentru modularea celor trei fascicule de electroni.

Tipul si frecventa de functionare a circuitelor DAC influenteaza in mod direct rezolutia maxima a imaginii si frecventa de reimprospatare a acesteia. Rezolutiile mai mari implica un numar mai mare de pixeli care trebuie transmisi de circuitele DAC pentru a mentine o anumita frecventa de reimprospatare. Functionarea circuitelor DAC este controlata de un ceas de pixeli. Tabelul 1.1 indica frecventa circuitelor DAC (frecventa ceasului de pixeli) in functie de rezolutia ecranului si rata de reimprospatare. Frecventa este indicata in MHz, valorile reprezentand numarul de pixeli (exprimat in milioane de pixeli) care trebuie generati in fiecare secunda de circuitele DAC. S-a utilizat un factor de multiplicare de 1,32 pentru a tine cont de duratele intervalelor de stingere pe orizontala si pe verticala, in care fasciculele nu sunt vizibile pe ecran.

Tabelul 1.1. Frecventa in MHz a circuitelor DAC in functie de rezolutia ecranului si frecventa de reamprospatare.

Pe langa frecventa de functionare a circuitelor DAC, posibilitatea de a obtine anumite frecvente de reimprospatare depinde si de alti factori:

Calitatea adaptorului video. Anumite adaptoare nu sunt proiectate pentru a depasi anumite frecvente de reimprospatare, indiferent de alti factori.

Rata de transfer a memoriei video. Ratele de reimprospatare mai mari implica rate mai mari de transfer necesare pentru citirea memoriei video. Pentru rezolutii mari si un numar mare de culori, rata de transfer a memoriei video poate deveni un factor de limitare, viteza circuitelor DAC nefiind relevanta daca memoria nu poate furniza datele suficient de rapid.

1.3. Reprezentarea culorilor

Numarul de culori care pot fi afisate pe ecran depinde in primul rand de adaptorul video. Un monitor analogic cu tub catodic poate genera un numar de peste 16 milioane culori. Adaptorul video poate limita insa numarul de culori care pot fi afisate pe ecran. Numarul maxim de culori depinde de dimensiunea memoriei video si de numarul de biti alocati fiecarui pixel.

Adaptoarele utilizeaza diferite moduri de reprezentare a informatiilor pentru culoarea fiecarui pixel in memoria video. Aceste moduri sunt ilustrate in figura 1.4. Primul mod ilustrat (figura 1.4(a)) este cel in care se utilizeaza 8 biti pentru a reprezenta culoarea unui pixel. Acest mod, numit si mod pseudo-color, permite utilizarea simultana a 256 de culori. In acest mod nu se pastreaza separat componentele pentru cele trei culori fundamentale. Se utilizeaza tabela RAM CLUT pentru extinderea numarului total de culori, dupa cum s-a prezentat in sectiunea 1.1.4

Figura 1.4. Moduri de reprezentare a culorilor in memoria video.

Daca se utilizeaza 15 biti pentru fiecare pixel (figura 1.4(b)), sunt posibile 32.768 culori. In memoria video se aloca 16 biti pentru fiecare pixel, dar bitul cel mai semnificativ din cei 16 nu este utilizat. Pentru fiecare culoare fundamentala sunt rezervati cate 5 biti. Acest mod de rezervare a bitilor este desemnat prin 1:5:5:5. Un alt mod de reprezentare este cel in care se utilizeaza 16 biti pentru fiecare pixel (figura 1.4(c)). Pentru culoarea verde sunt rezervati 6 biti, in timp ce pentru culorile rosu si albastru sunt rezervati cate 5 biti. Modul de rezervare a bitilor este indicat prin 5:6:5, numarul maxim de culori fiind de 65.536. Modurile cu 15 si 16 biti pe pixel sunt numite si moduri "high color

Figura 1.4(d) ilustreaza modul in care se rezerva 32 de biti pentru fiecare pixel, din care cei 8 biti mai semnificativi nu sunt utilizati. Aceasta reprezentare permite simplificarea structurii adaptorului video, dar reduce eficienta utilizarii memoriei video. Acest mod se numeste cu pixeli

necompactati. Adaptoarele actuale utilizeaza modul cu pixeli compactati, in care se rezerva 24 de biti pentru fiecare pixel (figura 1.4(e)). Astfel, memoria video este utilizata mai eficient, si in acelasi timp se reduce rata de transfer necesara pentru afisarea imaginilor. In ambele moduri, cu 32 sau 24 de biti pe pixel, sunt rezervati cate 8 biti pentru fiecare culoare fundamentala, modul de rezervare a bitilor fiind indicat prin 8:8:8. Numarul maxim de culori este de 16,7 milioane (16.777.216 culori). Aceste moduri sunt numite si moduri "true color

1.4. Memoria video

1.4.1. Amplasarea memoriei video

La primele calculatoare PC, ca memorie video se utiliza o parte a memoriei principale DRAM.

UCP realiza operatiile necesare pentru actualizarea acestei zone, iar controlerul grafic actualiza imaginile de pe ecran citind continutul acestei zone. O asemenea solutie se numeste arhitectura cu memorie unificata (UMA - Unified Memory Architecture). Costul acestei solutii este redus, dar performantele video sunt de asemenea mai reduse. Pentru a se utiliza rezolutii mari si rate de

reimprospatare ridicate, performantele memoriei video trebuie sa fie mai ridicate decat cele ale memoriei DRAM obisnuite.

Pe masura ce dimensiunile necesare pentru memoria video au crescut, aceasta a fost plasata pe placa adaptorului video. Avantajul plasarii memoriei video in cadrul adaptorului video este cresterea eficientei si posibilitatea de a imbunatati performantele memoriei video pe masura ce devin disponibile noi tehnologii pentru aceasta memorie.

O solutie combinata este utilizata la interfata AGP, care permite procesorului video accesul la memoria principala pentru efectuarea diferitelor calcule necesare operatiilor grafice, dar dispune si de o memorie video dedicata. Astfel este posibila utilizarea mai flexibila a memoriei fara reducerea performantelor.

La calculatoarele PC, memoriei video i se aloca o portiune a spatiului de adresare al memoriei principale a sistemului. Aceasta portiune are dimensiunea de 64 KB sau 128 KB si este formata din segmentele A si/sau B (adresele fizice A0000h si B0000h) din primul MB al memoriei principale.

Aceasta zona poate fi accesata de UCP si in modul real. Deoarece pentru majoritatea rezolutiilor acest spatiu nu este suficient, controlerul grafic imparte memoria video in pagini pe care le muta succesiv in aceasta zona in care UCP are acces la imaginile grafice. Controlerele grafice actuale pot muta intreaga memorie video in spatiul de adresare aflat deasupra limitei de 1 MB, care este utilizat in modul protejat. In acest caz nu este necesara paginarea pentru a avea acces la intreaga memorie video. Acest tip de acces liniar la memoria video poate imbunatati in mod semnificativ performantele sistemului de afisare.

1.4.2. Organizarea memoriei video

Organizarea memoriei video influenteaza in mare masura valoarea ratei de transfer. Prin utilizarea tehnicii de intercalare a bancurilor de memorie, se obtine cresterea semnificativa a performantelor la accesul memoriei video. Aceasta tehnica permite ca doua sau mai multe bancuri de memorie sa fie accesate simultan, iar datele provenite de la mai multe bancuri de memorie sa fie multiplexate spre controlerul grafic sau circuitele DAC. Astfel, o memorie cu doua bancuri de cate 64 de biti devine prin intercalare aproape la fel de rapida ca o memorie cu lungimea cuvantului de 128 de biti.

Memoriile video pot fi cu port unic sau cu port dual, in ultimul caz fiind posibil accesul simultan la ambele porturi de memorie. In figura 1.5 se prezinta amplasarea unei memorii video cu port unic.

Figura 1.5. Amplasarea unei memorii video cu port unic.

O memorie video cu port unic dispune de un singur port de date, care este utilizat atat pentru reimprospatarea ecranului cu ajutorul circuitului RAMDAC, cat si pentru accesul de catre UCP sau controlerul grafic pentru inscrierea unor noi informatii. O asemenea memorie realizata in tehnologia conventionala nu poate asigura de obicei o rata de transfer suficienta pentru o rezolutie ridicata si un numar mare de culori. Pentru a elimina acest dezavantaj, au fost create memorii video cu port dual.

Amplasarea unei asemenea memorii este prezentata in figura 1.6.

Figura 1.6. Amplasarea unei memorii video cu port dual.

Unul din porturi este similar celui de la memoriile conventionale si este utilizat de UCP sau de catre controlerul grafic pentru actualizarea imaginilor. Al doilea port este un port cu acces serial si este utilizat pentru accesul la datele video in vederea reimprospatarii imaginii de pe ecran. Astfel, actualizarea memoriei si reimprospatarea ecranului se pot realiza in paralel. In cazul memoriei cu port dual, este necesar un circuit RAMDAC extern, deoarece portul serial nu poate fi directionat catre controlerul grafic.

1.4.3. Caracteristici ale memoriei video

Una din caracteristicile memoriei video care influenteaza performantele adaptorului video este dimensiunea memoriei. Aceasta dimensiune determina rezolutia posibila a ecranului si numarul de culori care pot fi afisate. Dimensiunea memoriei necesare pentru afisarea unei imagini se calculeaza in functie de numarul de culori disponibile pentru un pixel. Se poate utiliza urmatoarea formula:

D = (RX RY Bpp) /

unde D este dimensiunea memoriei, RX este numarul de pixeli pe orizontala, RY este numarul de pixeli pe verticala, iar Bpp este numarul bitilor de culoare alocati unui pixel. Dimensiunea rezulta in octeti.

Dimensiunea memoriei necesare este de obicei mai mare decat cea rezultata in urma calculului de mai sus. Din cauza organizarii memoriei si a modului de acces, adaptoarele sunt disponibile de obicei cu memorii de 2, 4, 8, 16, 32, 64 sau 128 MB, o parte a memoriei fiind neutilizata. Tehnologia de memorie numita MDRAM (Multibank DRAM) permite utilizarea unor bancuri de memorie de dimensiune mai redusa, astfel incat se pot realiza adaptoare cu o dimensiune mai flexibila a memoriei video.

Un alt motiv pentru care este necesara o memorie video cu dimensiunea mai mare este ca anumite adaptoare video, mai ales acceleratoarele 3D, utilizeaza o zona de memorie pentru diferite functii grafice, pe langa zona utilizata pentru pastrarea imaginilor. Adaptoarele utilizeaza metode diferite pentru alocarea memoriei necesare acestor functii. Unele utilizeaza zona ramasa libera dupa alocarea bufferului de cadre, in timp ce altele aloca in prealabil memoria pentru calcule si apoi limiteaza dimensiunea bufferului de cadre in mod corespunzator.

Tabelul 1.2 prezinta dimensiunea in MB a memoriei video necesare pentru unele combinatii de rezolutii si numar de culori. In paranteze se indica configuratia standard de memorie necesara pentru combinatia respectiva, pentru organizarea conventionala a memoriei video. Aceste dimensiuni nu se refera la acceleratoarele 3D, pentru aplicatiile 3D necesarul de memorie fiind mult mai ridicat.

Tabelul 1.2. Dimensiunea memoriei video (in MB) in functie de rezolutia ecranului si numarul de biti rezervati pentru culoarea unui pixel.

Pe langa dimensiunea memoriei video, este importanta si rata de transfer a memoriei. Rata de transfer maxima este numita si latime de banda a memoriei. Aceasta rata este influentata de tehnologia memoriei video si de timpul de acces al memoriei. Rata de transfer determina performantele globale ale adaptorului si este unul din factorii care conditioneaza utilizarea unor rezolutii inalte si a unui numar mare de culori la rate de reimprospatare acceptabile.

Exista mai multe functii ale adaptorului video care trebuie sa partajeze latimea de banda a memoriei video. Principala functie si cel mai important utilizator al latimii de banda este functia de reimprospatare a ecranului. O valoare aproximativa a ratei de transfer necesare pentru reimprospatarea ecranului poate fi calculata prin inmultirea valorilor urmatoare: numarul de pixeli pe orizontala, numarul de pixeli pe verticala, numarul de octeti rezervati pentru un pixel si frecventa de reimprospatare a ecranului. Exista si alte functii ale adaptorului video care necesita o anumita latime de banda pentru accesul la memoria video. Pe langa circuitele de reimprospatare, memoria trebuie sa fie accesata si de UCP, ca si de controlerul grafic. De exemplu, UCP poate solicita transferul unei ferestre sau a unei imagini din memoria principala in memoria video. De asemenea, controlerul grafic poate crea o noua fereastra sau poate transfera o fereastra existenta. S-a constatat ca este necesar ca un procent cuprins intre 30% si 50% din latimea de banda a memoriei video sa fie rezervat pentru alte functii decat cea de reimprospatare a ecranului.

Tabelul 1.3 indica, in MB/s, rata de transfer minima de care trebuie sa dispuna memoria video pentru diferite combinatii de rezolutii si frecvente de reimprospatare. Valorile corespund modului cu 16,7 milioane culori cu pixeli compactati si se refera doar la functia de reimprospatare a ecranului.

Tabelul 1.3. Rata de transfer (in MB/s) minima necesara pentru memoria video in functie de rezolutia ecranului si frecventa de reimprospatare in modul cu 16,7 milioane culori.

Memoriile SDRAM (Synchronous DRAM) de 64 de biti functionand la 133 MHz (numite si PC133) au o rata de transfer maxima teoretica de 800 MB/s, insa rata lor de transfer medie este mult mai redusa, de 320-400 MB/s. Performante superioare sunt asigurate de memoriile DDR SDRAM (Double Data Rate SDRAM). Astfel, memoriile DDR-266 (PC2100), care functioneaza cu un semnal de ceas de 133 MHz, au o rata de transfer maxima teoretica de 2128 MB/s, iar rata lor de transfer medie poate fi in jur de 1200 MB/s. Se observa ca memoriile DDR-266 asigura performantele necesare pentru memoria video, inclusiv la rezolutii mari. In plus, sunt disponibile memorii DDR care functioneaza la frecvente mai ridicate, de 150 MHz (DDR-300, PC2400) sau 166 MHz (DDR-333, PC2700), cu rate de transfer maxime teoretice de 2400 MB/s, respectiv 2656 MB/s.

Pentru a satisface cerintele ratelor de transfer, adaptoarele video utilizeaza magistrale cu latime mare intre setul de circuite video, memoria video si circuitul RAMDAC. Astfel, majoritatea adaptoarelor video actuale utilizeaza magistrale de 128 de biti, dar exista si adaptoare video cu performante ridicate care utilizeaza magistrale de 256 de biti. Pentru a utiliza in mod eficient aceste magistrale, lungimea cuvantului de memorie trebuie sa fie suficient de mare.

De obicei, adaptoarele video la care magistrala interna este de 64 de biti utilizeaza bancuri de memorie de 32 de biti. Daca un asemenea adaptor contine, de exemplu, o memorie video de 1 MB, aceasta este organizata ca 256 KB 32 biti. Deci, cu doar 1 MB de memorie, adaptorul video de 64 de biti poate accesa memoria numai pe 32 de biti, ceea ce injumatateste rata de transfer potentiala. Daca se extinde memoria video la 2 MB, ea va fi organizata ca 256 KB 64 biti, astfel incat aceasta va fi utilizata in mod eficient. Similar, adaptoarele video cu magistrale interne de 128 de biti necesita de obicei o memorie de cel putin 4 MB, in caz contrar performantele lor fiind injumatatite.

1.5. Acceleratoare grafice

La introducerea sistemelor de operare prevazute cu o interfata grafica, toate operatiile pentru desenarea imaginilor grafice pe ecran trebuiau efectuate de UCP, ceea ce reducea viteza calculatorului in mod semnificativ. De aceea, producatorii seturilor de circuite video au adaugat acestora circuite specializate destinate accelerarii functiilor grafice, care sa elibereze UCP de sarcina executiei acestor functii. Adaptoarele care sunt dotate cu circuite de accelerare pentru aplicatiile grafice sunt cunoscute sub numele de acceleratoare grafice. Primele acceleratoare grafice au fost numite adaptoare AVGA (Accelerated VGA), acceleratoare Windows sau acceleratoare GUI (Graphical User Interface

Urmatoarele acceleratoare grafice au fost numite acceleratoare 2D, pentru a le deosebi de acceleratoarele 3D aparute ulterior.

Circuitele de accelerare ale diferitilor producatori nu trebuie sa fie compatibile intre ele, legatura cu sistemul de operare si cu utilizatorul realizandu-se prin intermediul unui driver furnizat de producator. Acest driver realizeaza legatura cu interfata pentru programele de aplicatii si transfera

comenzile grafice catre circuitele de accelerare. Un asemenea driver poate imbunatati in mod semnificativ performantele sistemului de afisare.

Elementul principal al unui accelerator grafic este procesorul pentru operatii grafice 2D. Acest procesor functioneaza sub controlul UCP, dar independent de acesta. Functiile grafice 2D obisnuite realizate de acest procesor sunt transferurile pe biti si pe blocuri (functii Bliter), trasarea de linii, umplerea unor suprafete si adaugarea culorii.

Functia de transfer pe biti si pe blocuri se utilizeaza pentru crearea si mutarea unor blocuri rectangulare de date, de exemplu, a unor ferestre pe ecran. Viteza de executie a acestei functii este esentiala pentru performantele grafice ale sistemului, circuitele de accelerare fiind deseori proiectate special pentru a executa in mod eficient functiile grafice puse la dispozitie de sistemul de operare. Prin functia de trasare a liniilor se poate trasa un vector intre doua puncte arbitrare de pe ecran, in toate modurile de afisare color. O alta functie oferita de acceleratoarele grafice este cea de umplere a unor suprafete sau poligoane cu o culoare sau un model specificat. Adaugarea culorii reprezinta posibilitatea de a prelua o reprezentare monocroma prin puncte si de a plasa imaginea pe ecran in orice pozitie, utilizand culoarea selectata anterior si o anumita culoare de fond.

Odata cu raspandirea aplicatiilor multimedia, acceleratoarele grafice au fost extinse cu functii de accelerare audio si video. Aceste acceleratoare multimedia permit decodificarea prin hardware a

sirurilor de date audio, scalarea imaginilor video dupa directiile x si y, sau conversia semnalului video digital in semnalele RGB necesare pentru afisarea pe ecranul calculatorului. Anumite acceleratoare permit si decomprimarea prin hardware a imaginilor video reprezentate in diferite formate.

1.6. Acceleratoare 3D

1.6.1. Necesitatea acceleratoarelor 3D

Deoarece ecranul monitorului este bidimensional, imaginile afisate de calculator trebuie sa fie de asemenea bidimensionale. Pentru a lucra cu obiecte 3D, este necesar ca ele sa fie convertite in imagini 2D. Aceasta necesita prelucrari speciale si o mare putere de calcul. Pentru a crea imagini 3D nu este necesar un accelerator grafic 3D, dar cantitatea mare de calcule necesare pentru translatarea imaginilor 3D in imagini 2D intr-un mod realist reduce viteza calculatorului in mod semnificativ.

Utilizarea unui accelerator 3D permite programelor afisarea imaginilor virtuale 3D cu un nivel de detaliere care nu este posibil cu un accelerator grafic 2D. Motivul pentru care acceleratoarele 3D au devenit raspandite este ca programele utilizeaza din ce in ce mai multe reprezentari 3D. Pentru a obtine mai mult realism, imagini grafice mai detaliate si viteze mai mari in programe ca jocuri de actiune, simulatoare de zbor, programe grafice si aplicatii CAD, trebuie efectuate mai multe prelucrari 3D intr-o perioada mai scurta de timp.

1.6.2. Imagini 3D

Imaginile 3D sunt mult mai complexe decat imaginile 2D din cauza cantitatii mai mari de informatii care trebuie utilizate pentru a crea imagini 3D realiste. In plus, trebuie utilizate mai multe operatii matematice pentru a converti aceste imagini 3D in imagini care pot fi afisate pe ecran. Imaginile 3D sunt gestionate de calculator utilizand modele abstracte. Un obiect este reprezentat mai intai ca un set de puncte definite prin coordonatele de-a lungul axelor x y si z. Aceste puncte definesc pozitia varfurilor obiectului in spatiul tridimensional. Daca se conecteaza varfurile obiectului prin linii, se obtin suprafete care pot fi umplute cu o anumita culoare sau textura. De obicei, fiecare obiect 3D este compus dintr-un numar mare de mici triunghiuri (sau alte poligoane) care descriu suprafata sa.

Grafica 3D animata necesita executia unei serii continue de calcule geometrice care definesc pozitia obiectelor in spatiul 3D. In mod obisnuit, calculele geometrice care manipuleaza varfurile triunghiurilor sunt executate de UCP, deoarece operatiile in virgula mobila necesare pot fi executate in mod eficient de UCP. In acelasi timp, acceleratorul grafic trebuie sa converteasca aceste triunghiuri in suprafete solide, ceea ce implica calcule intense.

In lumea reala, obiectele interactioneaza unele cu altele. Ele se suprapun, creeaza umbre, reflecta lumina si apar mai intunecate atunci cand sunt la distanta. Exista ecuatii matematice foarte complexe care se utilizeaza pentru a determina daca un obiect este vizibil intr-o scena dintr-un unghi dat, care ar trebui sa fie culoarea acestuia etc. Pentru un joc 3D, in scopul obtinerii unei animatii uniforme, aceste calcule trebuie refacute de 20-30 de ori pe secunda. Acceleratoarele 3D sunt adaptate pentru a executa aceste calcule care solicita in mod intens resursele sistemului.

In cazul imaginilor 3D, pe langa cele trei componente de culoare, pentru fiecare pixel trebuie memorata si o a patra valoare. Aceasta se numeste valoare alfa si indica gradul de transparenta (sau opacitate) al pixelului in imaginea finala. O alta informatie care trebuie memorata este adancimea in spatiu sau coordonata z a fiecarui pixel. Acceleratorul 3D determina valoarea z a pixelilor obiectelor dintr-un anumit plan si le afiseaza numai pe cele cu o valoare z mai mica. Informatia de adancime a pixelilor este memorata intr-un buffer separat din memoria video, numit buffer z. Numarul de biti alocati fiecarui pixel din bufferul z determina numarul unitatilor de adancime disponibile in cadrul unei scene. In mod normal, in bufferul z trebuie sa se aloce cel putin 16 biti pentru fiecare pixel. De fiecare data cand imaginea de pe ecran este actualizata, trebuie sa se recalculeze culoarea si adancimea fiecarui pixel de pe ecranul 2D. Aceasta se realizeaza prin aplicarea diferitelor calcule 3D asupra scenei, intr-un proces numit redare (rendering). Prin acest proces se completeaza toate punctele de pe suprafata obiectului care a fost memorat in prealabil doar ca un set de varfuri. Astfel, pe ecranul monitorului se va desena un obiect solid cu efecte 3D. Prin eliberarea UCP de operatia de redare, acceleratorul 3D permite UCP sa dedice o putere de calcul mai mare altor functii, rezultand o frecventa de cadre crescuta si o calitate imbunatatita a imaginii.

1.6.3. Operatii 3D

Exista diferite tipuri de operatii care sunt executate in cadrul prelucrarilor 3D. Aceste operatii sunt executate in doua etape. Prima etapa este cea geometrica si cuprinde operatii cum sunt decuparea, transformarea si iluminarea. Operatiile din aceasta etapa sunt intensive din punct de vedere al calculelor si sunt executate de procesorul sistemului. A doua etapa este cea de redare, cuprinzand operatii cum sunt umbrirea, maparea texturilor cu adaugarea efectului de perspectiva, filtrarea texturilor, incetosarea, mixajul alfa si eliminarea efectului zimtat. Operatiile din aceasta etapa necesita un spatiu de memorie ridicat si sunt executate de catre acceleratorul grafic.

Cele mai frecvente operatii 3D sunt descrise in continuare.

Decuparea. Aceasta operatie determina partea unui obiect care este vizibila pe ecran si decupeaza partile pe care utilizatorul nu le poate vedea. Astfel se economiseste timp, deoarece partile obiectelor care nu sunt afisate pe ecran sunt ignorate.

Iluminarea. Obiectele din lumea reala sunt modelate de sursele de lumina din cadrul scenei. Efectele de lumina creeaza nuante ale culorilor, reflexii de lumina, umbre si alte efecte care trebuie adaugate obiectelor pe baza pozitiei relative a acestora fata de pozitia surselor de lumina. Umbrirea Gourad. Acesta este cel mai utilizat algoritm pentru reprezentarea obiectelor 3D pe un ecran 2D, permitand realizarea unei umbriri realiste a suprafetelor 3D. Adaugarea umbrelor permite ca forma obiectului sa fie mai bine definita. Umbrirea Gourad se realizeaza prin citirea informatiilor de culoare ale varfurilor triunghiurilor sau poligoanelor care descriu un obiect 3D si interpolarea intensitatilor pentru cele trei componente de culoare intre diferitele varfuri.

Maparea texturilor. In cazul graficii 3D, obiectele pot avea diferite detalii ale suprafetelor sub forma unor texturi, cum sunt diferite esente de lemn. Adaugarea acestor detalii la poligoanele care

reprezinta suprafetele obiectelor se numeste maparea texturilor. Aceasta mapare consta in incarcarea dintr-o harta de biti a unuia sau a mai multor elemente de textura, numite texeli, combinarea acestora si scrierea pixelului rezultat in memoria video.

Realismul obiectelor sau scenelor 3D creste prin aplicarea texturilor bidimensionale asupra poligoanelor 3D. Exista diferite tipuri de mapare a texturilor care sunt utilizate de diferitele acceleratoare grafice. Cea mai simpla metoda este aplicarea unei singure texturi unui obiect. Un grad mai mare de realism se poate obtine printr-o metoda de multi-texturare, prin care se aplica o

combinatie de texturi unui obiect. Aceasta combinatie poate cuprinde texturi transparente sau texturi care reprezinta anumite rugozitati ale unei suprafete. Texturile pot necesita un spatiu ridicat in memorie, motiv pentru care se utilizeaza compresia lor. Interfetele API pentru grafica 3D pun la dispozitie diferite procedee de compresie a texturilor.

Texturile cu care sunt mapate obiectele trebuie corectate pentru a realiza efectul de perspectiva. Prin aceasta corectie se determina modul in care se modifica perspectiva fata de obiectele scenei pe masura ce unghiul din care acestea sunt vizualizate se schimba.

Filtrarea texturilor. Acest procedeu este utilizat pentru reducerea unor efecte nedorite care pot apare in procesul de mapare a texturilor, in special la cresterea gradului de detaliere a acestora. De exemplu, la maparea texturilor unele console de jocuri si procesoare grafice utilizeaza elementul de textura cel mai apropiat pentru adaugarea unor noi pixeli in imaginea de pe ecran. Aceasta poate conduce la aparitia efectului zimtat in imaginea generata. Prin utilizarea diferitelor metode de filtrare acest efect este redus, culoarea unui nou pixel fiind determinata printr-o interpolare intre culorile mai multor texeli din textura originala.

Una din metodele de filtrare utilizate este filtrarea biliniara. Prin aceasta metoda, pentru determinarea culorii pixelului corespunzator unui anumit texel se utilizeaza media ponderata a patru texeli cei mai apropiati de texelul respectiv. Se elimina astfel modificarile bruste de culoare din cadrul unei texturi.

O alta metoda care se utilizeaza la scenele dinamice este filtrarea triliniara. In cazul acestor scene, pe masura ce un obiect texturat se indeparteaza de punctul de vizualizare, dimensiunea texturii trebuie redusa in acelasi timp cu micsorarea obiectului. Pentru a se evita unele efecte nedorite introduse de procesul de scalare a texturii, acceleratoarele 3D permit pastrarea in memoria video a mai multor variante ale aceleiasi texturi, acestea avand diferite nivele de detaliere. Utilizand aceasta facilitate, cunoscuta sub numele de "mip mapping", acceleratorul 3D poate determina cu usurinta textura care trebuie aplicata asupra unei suprafete aflata la o anumita distanta de punctul de vizualizare, fara a fi necesare prelucrari suplimentare. Filtrarea triliniara se realizeaza prin combinarea facilitatii amintite cu filtrarea biliniara. In procesul de obtinere a unei noi variante a texturii, se utilizeaza doua variante existente cu nivele diferite de detaliere, carora li se aplica separat filtrarea biliniara. Apoi, cele doua texturi sunt mixate intre ele, obtinandu-se o noua textura filtrata. Calitatea texturilor obtinute in acest fel este mai ridicata.

Incetosarea. Acesta este un procedeu utilizat la scenele de exterior. Procedeul este utilizat in doua scopuri. In primul rand, prin estomparea gradata a obiectelor scena va apare mai realista, fiind creata iluzia unor obiecte aflate la distanta. La distanta, obiectele apar neclare datorita umezelii atmosferice sau impuritatilor. In al doilea rand, procedeul permite ca prelucrarea 3D sa fie executata mai rapid, deoarece obiectele de la distanta care sunt incetosate pot fi prezentate cu mai putine detalii.

Mixajul alfa. Anumite obiecte din lumea reala sunt transparente sau semitransparente. Procedeul de mixaj alfa este utilizat pentru a produce efectul de transparenta al unor obiecte care compun o scena, de exemplu, al unor ferestre. Acelasi procedeu poate fi utilizat si pentru a reprezenta fumul sau ceata, cu un nivel de realism mai inalt decat prin alte procedee.

Eliminarea efectului zimtat. Liniile oblice sau cele curbe care sunt afisate pe ecran, cum sunt muchiile cu contururi neregulate ale obiectelor, trebuie sa fie aproximate prin combinarea unor segmente verticale cu segmente orizontale. Rezultatul este aparitia efectului zimtat, care este mai pronuntat la rezolutii mai reduse. Procedura de eliminare a acestui efect, cunoscuta sub numele de "anti-aliasing", consta in colorarea pixelilor din imediata apropiere a contururilor folosind culoarea de fond mixata gradat cu cea a obiectului. Se realizeaza deci o tranzitie mai gradata intre cele doua culori, rezultatul fiind o oarecare reducere a claritatii contururilor. Aspectul obiectelor va fi insa mai natural decat in cazul unor contururi neregulate.

Figura 1.8 prezinta modul in care se efectueaza maparea texturilor.

Figura 1.8. Operatiile executate pentru maparea texturilor.

Exista urmatoarele etape de baza implicate in prelucrarea texturilor.

1. Inainte de utilizarea lor, texturile sunt citite de pe unitatea de disc si sunt incarcate in memoria

sistemului.

2. Atunci cand o scena trebuie sa utilizeze o textura, aceasta este citita din memoria sistemului de catre UCP.

3. Asupra texturii se aplica apoi transformari de iluminare si de perspectiva. Rezultatele acestor operatii sunt scrise apoi in memoria sistemului.

4. Controlerul grafic citeste texturile transformate din memoria sistemului si le scrie in memoria video. Aceste date trebuie sa treaca prin magistrala PCI pentru a ajunge la controlerul grafic.

5. Controlerul grafic citeste in continuare texturile si informatiile 2D de culoare din memoria video. Aceste date sunt utilizate pentru redarea unui cadru care se poate afisa pe ecranul monitorului. Rezultatul este scris inapoi in memoria video. Circuitul RAMDAC al adaptorului video citeste cadrul si il converteste in semnale analogice care controleaza monitorul.

Exista mai multe probleme legate de modul in care sunt gestionate texturile:

. In primul rand, texturile trebuie pastrate atat in memoria sistemului, cat si in memoria video. Aceste cpii redundante determina o utilizare ineficienta a resurselor de memorie.

. In al doilea rand, pastrarea, chiar temporara, a texturilor in memoria video limiteaza dimensiunea acestora. Exista o cerere pentru texturi din ce in ce mai detaliate, ceea ce obliga producatorii sa echipeze adaptoarele lor cu o memorie video de dimensiuni mari.

. In sfarsit, rata de transfer a magistralei PCI limiteaza viteza cu care texturile pot fi transferate catre subsistemul grafic. Mai mult, in sistemele tipice mai multe dispozitive de I/E conectate la magistrala PCI trebuie sa partajeze rata de transfer disponibila. Introducerea altor dispozitive de viteza ridicata creeaza o congestie pe magistrala PCI care poate limita performantele graficii 3D. Aplicatiile utilizeaza diferite strategii pentru a compensa limitarile calculatoarelor actuale. Se utilizeaza diferiti algoritmi pentru a determina texturile care trebuie pastrate in memoria video si cele care trebuie pastrate in memoria sistemului. In mod tipic, aplicatiile dedica o parte a memoriei video ca spatiu pentru schimbarea texturilor, in timp ce memoria video ramasa contine texturi utilizate in mod frecvent. Depinzand de numarul de texturi utilizate intr-un cadru, algoritmul poate varia proportia memoriei alocate pentru schimbarea texturilor si a memoriei pentru texturile utilizate frecvent. Daca acceleratorul 3D poate executa maparea texturilor numai din memoria video, algoritmul incearca sa incarce in prealabil in memoria video texturile necesare pentru fiecare cadru sau scena. Fara aceasta incarcare prealabila, utilizatorii vor observa o pauza in timp ce se incarca textura necesara din memoria sistemului in memoria video sau de pe disc in memoria sistemului.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1876
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved