In informatica ed elettronica, una scheda video ,o scheda graficaIn inglese "video adapter " o "graphics card" o combinazioni di questo genere., è un componente hardware del computer, sotto forma di scheda elettronica, che ha lo scopo di elaborazione del segnale video, ovvero generare, a partire da un segnale elettrico in ingresso dal processore, un determinato segnale elettrico in uscita che possa essere poi inviato in input a video (display o monitor) per essere tradotto da quest'ultimo in immagine e mostrato all'utente.
A seconda del tipo di computer questo dispositivo può essere più o meno potente: i primi modelli di scheda video potevano visualizzare solo testo, successivamente si sono diffuse anche schede in grado di mostrare output grafici (immagini non testuali, definibili a livello di pixel) e infine anche modelli tridimensionali texturizzati in movimento e in tempo reale. Questi ultimi tipi di scheda provvedono anche a elaborare e modificare l'immagine nella propria memoria interna, mentre le schede 2D possono mostrare immagini 3D solo con l'aiuto della CPU che deve eseguire da sola tutti i calcoli necessari.
Tipologia e architettura delle schede video
Una tipica scheda video contiene un chip grafico (o più di uno) che gestisce una certa quantità di RAM dedicata a memorizzare i dati grafici da visualizzare e che risiede fisicamente sulla scheda stessa. Le schede video costruite per i PC IBM e compatibili contengono anche una ROM con un driver molto semplice (chiamato firmware che è aggiornabile nelle moderne schede video), necessario al suo funzionamento.
Il funzionamento di una scheda grafica è, in linea di massima, molto semplice: ogni locazione di RAM grafica contiene il colore di un pixel dello schermo, o di un carattere se la scheda sta visualizzando solo testo; il chip grafico si limita a leggere in sequenza le locazioni necessarie (se sta lavorando in modo testo, ogni locazione viene elaborata da un generatore di caratteri) e a pilotare un convertitore digitale-analogico, detto RAMDAC, che genera il segnale video che sarà visualizzato dal monitor. Dalla quantità di RAM grafica equipaggiata nella scheda e dalla velocità (frequenza) massima del suo RAMDAC dipendono la risoluzione massima raggiungibile e il numero di colori contemporaneamente visibili.
Tutte le schede video possono visualizzare anche grafica tridimensionale (al limite anche quelle con sola modalità testo, se si accetta una rappresentazione ASCII art), ma senza funzioni apposite di accelerazione. L'intero lavoro di calcolo deve essere svolto, pixel per pixel, dalla CPU principale del computer, che viene spesso completamente assorbita da questo compito: una scheda grafica non tridimensionale si limita in pratica a visualizzare una serie di immagini bidimensionali che le vengono inviate dal sistema.
Modo testo
Tutte le schede video dispongono almeno del modo di funzionamento detto "modalità testo" o "a caratteri": in questa modalità lo schermo del computer è organizzato come una griglia di caselle rettangolari in ciascuna delle quali viene scritto un carattere tipografico, di stile prefissato da un generatore di caratteri interno alla scheda (generalmente una sezione del chip video che si occupa di leggere la descrizione dei vari caratteri richiesti dalla ROM o da una parte della RAM video). Per esempio, nei PC IBM originali il modo testo era di 80 colonne per 25 righe. Una parte della RAM della scheda viene poi usata per memorizzare il codice (in genere in codice ASCII) di un carattere tipografico.
In questa modalità, per far comparire sullo schermo la scritta "scheda video" è sufficiente che il calcolatore scriva i dodici codici ASCII delle lettere componenti (115, 99, 104, 101, 100, 97, 32, 118, 105, 100, 101, 111) in dodici locazioni della memoria RAM della scheda video: sarà poi il generatore di caratteri del chip grafico a tradurre i codici in serie di pixel e fare tutto il resto.
Questa modalità era predisposta e veniva limitatamente utilizzata anche per produrre grafica. Di solito molti dei caratteri disponibili non rappresentano simboli alfanumerici, ma semplici forme geometriche che si possono accostare per formare disegni, come avviene con la ASCII art. Molti sistemi storici inoltre danno la possibilità all'utente di ridefinire l'aspetto di ciascun carattere disponibile, modificandone i singoli pixel; in tal modo aumentano molto le possibilità di definizione dell'immagine, sebbene il numero massimo di caratteri differenti che può apparire contemporaneamente a video rimanga sempre lo stesso. Questo tipo di interfaccia è anche detta semigrafica.
Modalità grafica Quasi tutte le schede video moderne (con pochissime eccezioni) possono poi operare anche in modalità grafica, vale a dire senza avvalersi del generatore di caratteri interno ma specificando l'immagine pixel per pixel. In questa modalità il colore di ogni pixel è specificato singolarmente, in genere usando una o più locazioni di memoria video. Questa modalità ha bisogno di molta più memoria RAM del modo testo: una schermata in modo testo occupa generalmente da 2 a 6 KB di RAM video, mentre in modalità grafica, a seconda della risoluzione in pixel e della quantità di colori usati contemporaneamente serve da 10 a 10000 volte tanto. Il modo di rappresentare del singolo pixel in memoria video varia molto a seconda del tipo di approccio usato dal costruttore e dalla particolare modalità grafica: in genere però si adotta una corrispondenza di tipo bitmap, cioè a mappa di bit.
Schede video con accelerazione 2D
Già da un po' di tempo il chip grafico è in grado di eseguire alcune funzioni grafiche 2D in modo autonomo, senza che il processore principale debba intervenire: le schede grafiche con questi chip sono dette 2D accelerate, perché possono svolgere da sole una parte del lavoro di disegno che altrimenti spetterebbe al processore. Le operazioni più comuni da implementare in hardware sono il tracciamento di linee, di archi e di forme geometriche semplici (rettangoli, poligoni, cerchi, ellissi), la generazione e movimento di sprite e il bit blitting, cioè lo spostamento da una parte all'altra dell'immagine di blocchi di pixel. È in genere presente anche un generatore di caratteri evoluto, capace di funzionare anche in modalità grafica e di visualizzare contemporaneamente caratteri di molti font e grandezze diverse.
Schede video con accelerazione 3D
Le schede video con capacità grafiche tridimensionali (o 3D accelerate) hanno le stesse capacità bidimensionali delle precedenti, e in più ne hanno una completamente nuova, la modalità 3D appunto, in cui i pixel dell'immagine da visualizzare vengono calcolati dalla GPU (Graphics Processing Unit), fotogramma per fotogramma, partendo da una serie di dati geometrici forniti dalla CPU.
In questa modalità, la RAM video contiene una serie di sottoimmagini, le texture. Ciascuna di queste viene associata ad una particolare superficie bidimensionale di un modello tridimensionale del quale costituisce la "pelle": volendo, si possono considerare le varie texture come delle carte da parati elettroniche. Per ogni fotogramma (frame) da visualizzare in modalità 3D, la scheda video riceve dal processore una serie di punti geometrici (vertici) che specificano delle superfici in uno spazio tridimensionale con l'indicazione di quali texture applicare alle varie superfici: la GPU si occupa di calcolare, a partire dai dati ricevuti, se la particolare superficie sia visibile o no, e, se visibile, la sua forma in due dimensioni (coordinate schermo); poi si occupa di applicare la (o le) texture indicate. Il valore di ogni pixel viene quindi calcolato a partire da quali e quanti texel (i pixel delle texture) sono contenuti in esso.
Per fare tutto questo, le schede video 3D accelerate sono equipaggiate con una grande quantità di RAM, e ricorrono in modo massiccio al calcolo parallelo: l'integrato principale è un vero e proprio processore e viene detto GPU (anche programmabile a piacere, a partire dalla serie 6800GT di NVIDIA), composto internamente di una serie di unità identiche operanti in parallelo, ciascuna su una diversa serie di pixel alla volta; poiché in grafica non vale il principio di località non è possibile usare una memoria cache come nella CPU principale, e la comunicazione con la RAM grafica deve essere estremamente veloce: questo rende necessario adottare sia una frequenza di lavoro della RAM grafica molto più alta di quella della memoria principale, sia l'adozione di bus RAM-GPU molto ampi (128, 256 bit o anche 512 bit). Per lo stesso motivo, far funzionare la GPU a frequenze molto più elevate della RAM grafica, adottando un moltiplicatore di frequenza come per la CPU principale, non porterebbe nessun beneficio prestazionale.
Ulteriori funzioni di accelerazione, utili per aumentare il livello di realismo delle immagini calcolate, sono il calcolo in hardware delle luci incidenti (Transform and Lighting o T&L), i pixel shader, il vertex shader e il rendering (rasterizzazione), il filtro anisotropico e il filtro antialiasing.
Con questa nuova architettura le schede video 3D accelerate sollevano la CPU da tutti i calcoli necessari alla visualizzazione, lasciandole solo il compito di aggiornare la geometria dell'immagine (calcolo di spigoli e vertici, di rotazioni, intersezioni, animazioni ecc.).
Le prime schede video accelerate 3D destinate al grande pubblico (prima di allora erano molto costose e riservate a professionisti) sono state le famose Voodoo della 3dfx, la prima industria a produrre schede video con capacità 3D a prezzi popolari, assorbita nel 2001 dalla concorrente NVIDIA.
Uscite video Le connessioni più diffuse tra la scheda video e il monitor (o televisore) sono: Video Graphics Array (VGA): standard analogico introdotto nel 1987 e progettato per monitor CRT, ma utilizzato, per compatibilità, anche da diversi monitor LCD, assieme all'interfaccia DVI; ha diversi problemi, come il rumore elettrico, la distorsione dell'immagine e alcuni errori nella valutazione dei pixel. Digital Visual Interface (DVI): introdotto nei monitor LCD, viene usato anche da TV al plasma e videoproiettori. Risolve i problemi del SVGA facendo corrispondere a ogni pixel dell'output un pixel dello schermo, in quanto ne riconosce la risoluzione nativa. S-Video: utilizzato per la connessione a TV, lettori DVD, proiettori e videoregistratori. High-Definition Multimedia Interface (HDMI): pubblicato nel 2003, questo standard, che supporta le risoluzioni ad alta definizione, ha come obiettivo la sostituzione di tutti gli altri standard. DisplayPort: distribuito nel 2006, si presenta come concorrente dell HDMI. È usato sia per connessioni con monitor che con sistemi home theatre.
Altre uscite video (ormai obsolete) sono: Video composito: uscita analogica con risoluzione molto bassa, che fa uso di un connettore RCA Video a componenti: ha tre cavi, ognuno con un connettore RCA, utilizzato per i proiettori.
Interfaccia di connessione con la scheda madre Bus Ampiezza (bits) Frequenza Clock(MHz) Larghezza di banda(MByte/s) Trasferimento ISA XT 8 4,77 8 parallelo ISA AT 16 8,33 16 parallelo MCA 32 10 20 parallelo EISA 32 8,33 32 parallelo VESA 32 40 160 parallelo PCI 32 - 64 33 - 100 132 - 800 parallelo AGP 1x 32 66 264 parallelo AGP 2x 32 133 528 parallelo AGP 4x 32 266 1000 parallelo AGP 8x 32 533 2000 parallelo PCIe x1 1*32 25 / 50 100 / 200 seriale PCIe x4 1*32 25 / 50 400 / 800 seriale PCIe x8 1*32 25 / 50 800 / 1600 seriale PCIe x16 1*32 25 / 50 1600 / 3200 seriale PCIe x16 2.0 1*32 50 / 100 3200 / 6400 seriale
In ordine cronologico, i sistemi di connessione con la scheda madre sono stati: ISA: distribuita nel 1981 da IBM ed utilizzata negli anni '80 MCA: distribuita, sempre da IBM nel 1987, incompatibile con le schede madri precedenti EISA: distribuita nel 1988 per competere con IBM, retrocompatibile VESA: estensione dell'ISA