# Spazio colore sRGB

Lo spazio colore sRGB è uno spazio dei colori RGB standard creato da una collaborazione tra HP e Microsoft nel 1996 utilizzabile su schermi video, stampanti, e Internet.
L'sRGB usa primari ITU-R BT.709-5, gli stessi che vengono usati nei monitor da studio e nell'HDTV, e una funzione di trasferimento (curva di gamma) tipica dei CRT. Questa specifica ha permesso allo standard sRGB di essere visualizzato direttamente sui normali monitor CRT dell'epoca, un fatto che ne ha aiutato molto la diffusione.
Diversamente da molti altri spazi di colore RGB, la correzione di gamma sRGB non può essere espressa con un singolo valore numerico. La gamma complessiva è circa 2,2 ed è costituita da una sezione lineare (gamma 1,0) vicina al nero, e la restante parte non lineare dotata di un esponente di 2,4 e una gamma che varia da 1,0 a circa 2,3.

## Contesto

Lo spazio di colore sRGB è stato appoggiato dal W3C, Exif, Intel, Pantone, Corel, e molti altri rappresentanti dell'industria di settore; viene usato in formati di file grafici proprietari e open source come l'SVG.
Lo spazio colore sRGB è ben definito ed è stato progettato per venire incontro alle esigenze di visualizzazione tipiche degli ambienti casalinghi e di ufficio, al posto degli ambienti più scuri usati tipicamente nell'ambito delle applicazioni di colore commerciali.
Quasi tutto il software era ed è progettato con l'assunto che un'immagine con 8 bit per canale, piazzata intonsa su uno schermo di 8 bit per canale, debba apparire più o meno secondo le direttive delle specifiche sRGB. Gli schermi LCD, le macchine fotografiche digitali, le stampanti, gli scanner seguono tutti lo standard sRGB. I Dispositivi che non seguono naturalmente le specifiche sRGB, (come nel caso dei vecchi schermi CRT) normalmente includono dei circuiti di compensazione o del software che, in definitiva, fa in modo che anch'essi aderiscano allo standard. Per questo motivo, si può generalmente assumere che, in assenza di profili incorporati o altre informazioni, ogni file immagine di profondità di colore di 8 bit per canale o qualsiasi API immagine di 8 bit colore o dispositivo di interfaccia, può essere trattato come appartenente allo spazio di colore sRGB. Se serve uno spazio colore RGB con una gamma più ampia, è in genere necessario ricorrere a tecniche di gestione del colore per mappare i dati immagine in modo da farli apparire correttamente sullo schermo o sul dispositivo in oggetto.

## La gamma sRGB

Nelle pubblicazioni a stampa di alto livello, alle volte sRGB viene evitato, a causa dei suoi limiti di ampiezza di gamma, specialmente nelle tonalità blu-verdi, che non riescono a includere tutti i colori che possono essere riprodotti nella stampa CMYK.

## Specifiche delle trasformazioni
### La trasformazione (da CIE xyY o da CIE XYZ a sRGB)

Il primo passo del calcolo dei valori trimembri sRGB dallo spazio di colore trimembro CIE XYZ è una trasformazione lineare, che si può ottenere da una moltiplicazione di matrici. Notare che questi valori lineari non sono il risultato finale.
    ${\begin{bmatrix}R_{\mathrm {linear} }\\G_{\mathrm {linear} }\\B_{\mathrm {linear} }\end{bmatrix}}={\begin{bmatrix}3{,}2410&-1{,}5374&-0{,}4986\\-0{,}9692&1{,}8760&0{,}0416\\0{,}0556&-0{,}2040&1{,}0570\end{bmatrix}}{\begin{bmatrix}X\\Y\\Z\end{bmatrix}}$
    $X=Yx/y,$
    $Z=Y(1-x-y)/y$
    $C_{\mathrm {srgb} }={\begin{cases}12{,}92C_{\mathrm {linear} },&C_{\mathrm {linear} }\leq 0{,}0031308\\(1+a)C_{\mathrm {linear} }^{1/2{,}4}-a,&C_{\mathrm {linear} }>0{,}0031308\end{cases}}$
* dove $a=0{,}055$ ed $x$ e $y$ sono i valori normalizzati di $X$ e $Y$: $x=X/(X+Y+Z)$ e $y=Y/(X+Y+Z)$
Questi valori corretti di gamma variano tra 0 e 1. Se sono richiesti valori tra 0 e 255, per esempio per la visualizzazione video o per la grafica di computer a 8-bit, la tecnica più comune è di moltiplicare i valori per 255 e arrotondare all'intero.

### La trasformazione inversa

Di nuovo i valori delle componenti sRGB $R_{\mathrm {srgb} }$, $G_{\mathrm {srgb} }$, $B_{\mathrm {srgb} }$ variano da 0 a 1 (partendo da valore che varia da 0 a 255, come per esempio un byte si può semplicemente dividere per 255).
    $C_{\mathrm {linear} }={\begin{cases}{\frac {C_{\mathrm {srgb} }}{12{,}92}},&C_{\mathrm {srgb} }\leq 0{,}04045\\\left({\frac {C_{\mathrm {srgb} }+a}{1+a}}\right)^{2{,}4},&C_{\mathrm {srgb} }>0{,}04045\end{cases}}$
(dove $C$ è $R$, $G$, o $B$). Seguito da una moltiplicazione di matrice dei valori lineari per ottenere XYZ:
    ${\begin{bmatrix}X\\Y\\Z\end{bmatrix}}={\begin{bmatrix}0{,}4124&0{,}3576&0{,}1805\\0{,}2126&0{,}7152&0{,}0722\\0{,}0193&0{,}1192&0{,}9505\end{bmatrix}}{\begin{bmatrix}R_{\mathrm {linear} }\\G_{\mathrm {linear} }\\B_{\mathrm {linear} }\end{bmatrix}}$