Beh... la situazione tipica è questa :
“ "ForwardMatrix1": [
[ 0.699500, 0.293000, -0.028300 ] ,
[ 0.278600, 0.970600, -0.249200 ] ,
[ 0.025900, -0.162200, 0.961500 ]
] „
Qui potete vedere la forwardmatrix di una Sony. Come è facile notare ci sono anche moltiplicatori negativi, che sono necessari, ma non previsti dal modello.
La forwardmatrix converte da RGB devicedipendent a XYZ D50, quindi incorpora una CAT; è una conversione lineare tra due spazi vettoriali che dovrebbero avere dominio nei reali positivi limitatamente a un ambito normalizzato da 0 a 1. Quindi due cubi con origine a 0,0,0 e assi con limite a 1.
Il primo cubo rispetta questa idealizzazione (RGB devicedipendent), mentre nel secondo, per alcuni valori RGB si producono delle terne XYZ anomale, che non solo sono oltre il locus umano, ma sono proprio fuori dal modello CIE 1931.
Quei moltiplicatori negativi sono però necessari se si vuole una rappresentazione realistica dei colori.
La prima colonna della matrice rappresenta i moltiplicatori di R, la seconda di G e la terza di B; mentre le righe sono rispettivamente X Y e Z.
Per i rossi il problema dei domini negativi è praticamente assente, molto limitato per i verdi e tremendo per i blu; cioè proprio il punto dove il modello CIE 1931 fu corretto artificialmente.
Per aggirare il problema la nuova generazione di profili Cobalt prevede l'impiego di speciali forwardmatrix che sono ricalcolate senza elementi negativi, con vertici nel locus umano e con il minimo scostamento dalla forwardmatrix ideale.
Le HueSatMap che seguono riposizionano le coordinate colorimetriche nella giusta posizione; il profilo diviene così colorimetrico al secondo stadio. Un ibrido Matrix + Lut che elimina dalla pipeline di sviluppo tutte le coordinate rognose.
L'approccio è lo stesso dei più recenti profili Adobe; con la differenza che i Cobalt sono full 3D mentre gli Adobe 2D.
Poi la CAT è diversa e migliore... e altre cosucce...