Prendendo spunto da una discussione nata tra i commenti di un articolo, vi propongo qualche riflessione su quale sia il costo degli schermi ad alta risoluzione in termini di potenza di calcolo e su altre questioni riguardanti gli schermi.

Quanto pesa la risoluzione sulla GPU?

La GPU è quella parte del sistema che si occupa di generare le immagini che vediamo sugli schermi dei nostri dispositivi – siano essi smartphone, tablet o computer. La GPU si occupa di generare e di aggiornare le immagini, siano esse in due dimensioni (ad esempio l’interfaccia di sistema) o a tre dimensioni (ad esempio i giochi), e lo fa alla risoluzione nativa dello schermo.

Se il nostro schermo è a risoluzione HD (o 720p: 1280×720 pixel), la GPU genererà immagini con tale risoluzione; se lo schermo è a risoluzione Full-HD (o 1080p: 1920×1080 pixel) allora la GPU genererà immagini a tale risoluzione. In questo caso non sto parlando di contenuti come filmati o immagini, che hanno una propria risoluzione statica (che, comunque, viene adattata dalla GPU a quella dello schermo!), ma di tutti quegli elementi che vengono generati da zero dalla GPU.

Risoluzioni più elevate significano molti più pixel da generare: la risoluzione HD equivale a 921’600 pixel; la risoluzione Full-HD equivale a 2’073’600 pixel; la risoluzione QHD o 2K (2560×1440) equivale a 3’686’400 pixel e così via. Questo comporta, chiaramente, una quantità di calcoli differente per la GPU: generare circa 900mila pixel è ben diverso da doverne generare più di tre milioni e mezzo! Maggiore è la potenza della GPU, quindi, maggiore è la risoluzione massima che può essere supportata e viceversa: maggiore è la risoluzione e maggiore è la potenza necessaria. A dimostrazione di ciò, nel mondo PC è necessario ad oggi utilizzare più schede grafiche in parallelo per riuscire a giocare su schermi con risoluzione 4K.

A parità di GPU, quindi, ridurre la risoluzione porta a maggiori prestazioni (con più fotogrammi generati al secondo e, quindi, una maggiore fluidità), mentre aumentare risoluzione porta a prestazioni che vanno via via riducendosi (con pochi fotogrammi al secondo che portano a scatti nelle transizioni e ad una percezione di fluidità scarsa o nulla). Una GPU che riesce ad effettuare rendering a 60fps (fotogrammi per secondo) su uno schermo HD come suo picco di prestazioni non sarà in grado di fare altrettanto su uno schermo Full-HD; al contrario, una GPU in grado di generare 60fps su uno schermo Full-HD ne genererà di più su uno schermo HD.

Profondità del colore

I colori che vediamo sono colori continui: le sfumature sono passaggi graduali da un colore ad un altro, senza scalettature in mezzo. Allo stesso modo, gli oggetti sono continui e le curve e le superfici diagonli sono lisce, senza gradini. Purtroppo non è attualmente possibile riprodurre questo fatto sugli schermi e con i mezzi digitali di cattura delle immagini (macchine fotografiche, ad esempio) ed è necessario effettuare un campionamento ed una quantizzazione delle immagini.

Semplificando agli estremi il concetto, il campionamento altro non è che la divisione di un’immagine in piccoli quadratini (pixel), mentre la quantizzazione è la selezione di un colore che rappresenti una via di mezzo dei colori contenuti nel quadratino individuato dal processo di campionamento. Per usare termini più specifici, quantizzazione e campionamento sono una trasformazione in valori discreti (pixel e intensità in bit) dei valori continui rispettivamente di colore e spazio della funzione rappresentante l’immagine acquisita.

Questo significa che, a parità di qualità del sensore usato per catturare l’immagine, un sensore con una risoluzione maggiore riuscirà a riprodurre meglio i dettagli (perché userà quadratini più piccoli, che permettono di ridurre l’effetto di scalettatura), mentre un sensore con risoluzione minore avrà evidenti problemi a riprodurre le curve e i dettagli fini.

Allo stesso modo, un sensore in grado di catturare 1000 colori riuscirà a rendere meglio le sfumature rispetto ad un sensore che ne cattura solo 500 e lo stesso è valido anche per gli schermi.

Per memorizzare i colori si usano normalmente i tre canali rosso, verde e blu, ciascuno dei quali cattura la rispettiva porzione dell’immagine. Il canale rosso cattura la parte rossa di un’immagine, il canale verde quella verde e il canale blu quella blu. Mettendo assieme i tre canali si ottiene l’immagine come era in origine. La profondità del colore, o intensità, è un prodotto diretto della quantizzazione: in base alla quantità di colori per il singolo canale che è possibile catturare si hanno più o meno colori. La maggior parte degli schermi è in grado di riprodurre colori a 24 bit, ovvero 8 bit per canale: parliamo di ben 16’777’216 colori differenti, che risultano però insufficienti per rendere al meglio le sfumature più fini.

Per questo motivo GPU e schermi professionali supportano il colore a 10 bit: questo significa che ogni canale supporta 1024 differenti sfumature di colore, per un totale di oltre un miliardo di colori (1’073’741’824, per la precisione)! Chiaramente dover supportare più colori implica problemi non da poco, perché la quantità di bit da processare aumenta notevolmente e aumenta, quindi, la richiesta di banda necessaria per svolgere le operazioni e per trasferire le immagini dalla GPU allo schermo.

Fonte di parte delle informazioni: Rafael C. Gonzalez e Richard E. Woods, Digital Image Processing, Third Edition. Pearson Education International editore.

La disposizione dei subpixel influenza la GPU?

Gli schermi odierni usano gli stessi tre canali usati dai sensori: ogni pixel visibile è in realtà composto da tre subpixel di colore rosso, verde e blu (RGB). Questo è vero solo in parte: alcuni schermi, come gran parte di quelli AMOLED, non usano la classica disposizione RGB dei pixel, preferendo disposizioni con più pixel blu (ad esempio la famosa disposizione PenTile).

Che influenza ha questo sulla quantità di lavoro della GPU? In realtà poca o nessuna: anche se è possibile tenere in conto le caratteristiche fisiche dello schermo su cui verranno visualizzate le immagini, è l’elettronica dello schermo che deve poi accendere i subpixel per rendere correttamente le informazioni inviate dalla GPU sul singolo pixel.

Esempio pratico: se la GPU chiede allo schermo di riprodurre il colore #01fc2a nella posizione (230,  350), sarà l’elettronica dello schermo a convertire tale informazione da informazione complessiva sul pixel a intensità con cui accendere ciascun pixel. Nei display con disposizione non-RGB, ad esempio, è presente un motore di rendering dei subpixel che converte le informazioni in RGB dalla GPU in informazioni utilizabili dal display.

In conclusione

Schermi con una maggiore quantità di pixel richiedono un maggiore sforzo da parte della GPU e questo è vero anche nel caso in cui i subpixel vengano ordinati in maniera differente da quella standard. Ecco perché su dispositivi come il Nexus 6, che hanno uno schermo con disposizione non-RGB, è necessaria una GPU che abbia almeno pari potenza rispetto a quella di LG G3, che ha invece uno schermo RGB.

Viceversa, un gioco eseguito su LG G3 andrà più lentamente rispetto al Samsung Galaxy S5 o a HTC One M8 (tutti e tre i dispositivi hanno lo stesso processore!), perché il primo ha una risoluzione più elevata e “brucia” quindi parte della potenza di calcolo per generare immagini più grandi anziché per generare fotogrammi.

Aumentare la profondità del colore è un’operazione che aumenta drasticamente le richieste in termini di potenza di calcolo ed è per questo che non vedremo ancora per molto tempo colore a 30 bit (3 canali x 10 bit) sui dispositivi mobili.

Il miglioramento costante di CPU e GPU porta a supportare risoluzioni sempre più elevate. Non è questo il luogo per discutere dell’utilità o dell’inutilità di queste, ma viceversa è utile sapere che uno smartphone o un tablet avrà prestazioni paragonabilmente superiori rispetto ad un altro dispositivo con lo stesso processore ma risoluzione dello schermo superiore. Se, quindi, tenere in particolar modo alla fluidità del sistema, delle applicazioni e dei giochi, orientatevi su dispositivi che non abbiano risoluzioni elevatissime senza avere processori di ultimissima generazione!