{"id":21915,"date":"2012-10-25T16:49:20","date_gmt":"2012-10-25T14:49:20","guid":{"rendered":"http:\/\/www.boscarol.com\/blog\/?p=21915"},"modified":"2017-01-05T01:54:33","modified_gmt":"2017-01-05T00:54:33","slug":"metodi-di-caratterizzazione-di-un-monitor-o-un-videoproiettore","status":"publish","type":"post","link":"http:\/\/www.boscarol.com\/blog\/?p=21915","title":{"rendered":"Metodi di caratterizzazione di un monitor o videoproiettore"},"content":{"rendered":"<p><span style=\"line-height: 1.5em;\">&#8220;Caratterizzare un monitor&#8221; o un videoproiettore significa trovare una relazione tra valori RGB in ingresso al monitor o al proiettore e valori di tristimolo XYZ del colore prodotto. Questa relazione consiste in due trasformazioni: quella diretta, cio\u00e8 da RGB a XYZ, e quella inversa, cio\u00e8 da XYZ a RGB.<\/span><\/p>\n<p>La <strong>trasformazione diretta<\/strong> consente di ottenere i valori di tristimolo XYZ quando sono noti i valori RGB in input; la<strong> trasformazione inversa<\/strong> consente di ottenere \u00a0i valori RGB necessari per visualizzare un colore con determinati valori di tristimolo.<\/p>\n<p>Se poi un utente \u00e8 interessato a simulare su un monitor l&#8217;aspetto di una immagine come apparirebbe su un secondo monitor pu\u00f2 applicare la trasformazione diretta del secondo monitor per avere i valori XYZ seguita dalla trasformazione inversa sul primo monitor per avere i valori RGB. L&#8217;insieme di queste due trasformazioni \u00e8 un esempio di <strong>conversione<\/strong> di colore (in questo caso dallo spazio del secondo monitor allo spazio del primo).<\/p>\n<p><strong><br \/>\nCaratterizzazione mediante tabelle 3D <\/strong>(<em>3D lookup table, LUT<\/em>)<\/p>\n<p>La pi\u00f9 semplice (da capire) forma di caratterizzazione \u00e8 una coppia di tabelle. La prima \u00e8 la tabella <strong>diretta<\/strong>, come questa:<\/p>\n<p><strong>\n<table id=\"tablepress-8\" class=\"tablepress tablepress-id-8\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">R<\/th><th class=\"column-2\">G<\/th><th class=\"column-3\">B<\/th><th class=\"column-4\">X<\/th><th class=\"column-5\">Y<\/th><th class=\"column-6\">Z<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">0<\/td><td class=\"column-2\">0<\/td><td class=\"column-3\">0<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">0<\/td><td class=\"column-2\">0<\/td><td class=\"column-3\">1<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">0<\/td><td class=\"column-2\">0<\/td><td class=\"column-3\">2<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n\t<td class=\"column-1\">0<\/td><td class=\"column-2\">0<\/td><td class=\"column-3\">3<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-6 even\">\n\t<td class=\"column-1\">...<\/td><td class=\"column-2\">...<\/td><td class=\"column-3\">...<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-7 odd\">\n\t<td class=\"column-1\">255<\/td><td class=\"column-2\">255<\/td><td class=\"column-3\">254<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-8 even\">\n\t<td class=\"column-1\">255<\/td><td class=\"column-2\">255<\/td><td class=\"column-3\">255<\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-8 from cache --><\/strong><\/p>\n<p>Questa tabella ha 256 x 256 x 256 \u00a0=\u00a016,777,216 righe. Se dovesse essere costruita mediante singole misurazioni richiederebbe un mucchio di tempo e un mucchio di spazio. Per il tempo, supponendo 1 secondo a misurazione, risultano necessari 194 giorni; Per lo spazio, supponendo un byte per numero, risultano necessari 96 MByte. Una tabella del genere \u00e8 praticamente impossibile da creare.<\/p>\n<p>Si ricorre allora all&#8217;interpolazione, cio\u00e8 si fanno poche misure (per esempio 1000) e i valori non misurati si ricavano per interpolazione. Per esempio si misurano 10 x 10 x 10 colori, si calcolano altri 40 x 40 x 40 valori interpolati, e i valori mancanti si interpolano in fase di lettura della tabella.<\/p>\n<p>Naturalmente sorge il problema di calcolare l&#8217;errore causato dai valori interpolati.<\/p>\n<p>La seconda \u00e8 la tabella <strong>inversa.\u00a0<\/strong>Non \u00e8 semplicissimo calcolare questa tabella a partire dalla prima. Anche in questo caso si tratta di interpolare, ma questa volta l&#8217;insieme dei dati XYZ \u00e8 &#8220;sparso&#8221; il che rende l&#8217;operazione complessa. Un metodo usato \u00e8 la cosiddetta <a href=\"http:\/\/blogs.mathworks.com\/steve\/2006\/11\/24\/tetrahedral-interpolation-for-colorspace-conversion\/\" target=\"_blank\">interpolazione tetraedrica<\/a>.<\/p>\n<p>La caratterizzazione mediante tabelle richiede dunque molte misure ed \u00e8 computazionalmente complessa. Ha per\u00f2 il vantaggio che non occorre assumere nessun particolare comportamento del monitor, cio\u00e8 il monitor pu\u00f2 essere considerato una scatola nera (<em>black box<\/em>) della quale non conosciamo le regola fisiche. Altri tipi di caratterizzazione richiedono invece particoli assunzioni sul comportamento del monitor.<\/p>\n<p><strong><br \/>\nCaratterizzazione mediante modelli <\/strong>(cio\u00e8 formule)<\/p>\n<p>Sono stati descritti diversi modelli matematici per la caratterizzazione di un monitor o un videoproiettore. Molti modelli assumono l&#8217;<strong>indipendenza dei canali<\/strong> R, G e B, che in realt\u00e0 non \u00e8 sempre assicurata, e la <strong>costanza delle cromaticit\u00e0<\/strong> dei primari R, G e B.<\/p>\n<p>L&#8217;indipendenza dei canali significa che la luminanza emessa da ogni pixel sia uguale alla somma delle luminanze emesse da ogni sottopixel di quel pixel.<\/p>\n<p>Il cosiddetto <strong>modello lineare<\/strong>\u00a0\u00e8 detto anche\u00a0PLCC che significa\u00a0<em>piecewise linear interpolation assuming constant chromaticity coordinates<\/em>, e il nome stesso mette in evidenza che questo metodo assume che le cromaticit\u00e0 dei primari R, G e B siano costanti e non dipendano dalla luminanza. Se questo \u00e8 vero o no lo si pu\u00f2 verificare misurando, per ogni primario, i colori prodotti da una serie di numeri.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-21927\" style=\"border: 0px none;\" title=\"crom\" src=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2012\/10\/crom.jpg?resize=547%2C285\" alt=\"\" width=\"547\" height=\"285\" srcset=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2012\/10\/crom.jpg?w=547 547w, https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2012\/10\/crom.jpg?w=300 300w\" sizes=\"(max-width: 547px) 100vw, 547px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Qui sopra, nel diagramma a sinistra le cromaticit\u00e0 dei primari non sono costanti, variano con la luminanza. Nel diagramma a destra sono pressoch\u00e9 costanti, non variano con la luminanza.\u00a0Se le cromaticit\u00e0 non sono costanti, ci\u00f2 pu\u00f2 essere dovuto al fatto che il nero non \u00e8 un nero assoluto, ma ha una sua propria cromaticit\u00e0 che viene aggiunta alle cromaticit\u00e0 delle scale di colori dei primari e quindi ha sempre pi\u00f9 influenza man mano che la luminanza diminuisce. Un metodo per eliminare questo problema consiste nel togliere la cromaticit\u00e0 del nero a tutte le misure prima di fare i calcoli.<\/p>\n<p>Il metodo lineare consiste nel linearizzare i valori RGB, cio\u00e8 togliere l&#8217;effetto della TRC, la curva di risposta tonale, talvolta in forma di curva gamma, ed applicare una trasformazione lineare mediante una matrice 3 x 3 che ha nelle colonne i valori di tristimolo di ogni primario.<\/p>\n<p>Per la linearizzazione si misurano (ed eventualmente si interpolano) i 256 valori di ogni canale e si applica una tecnica matematica che si chiama &#8220;Analisi delle componenti principali&#8221;.<\/p>\n<p>Per il calcolo della trasformazione inversa, la matrice 3 x 3 deve essere invertibile, il che \u00e8 sempre vero se i canali sono linearmente indipendenti. Le funzioni di linearizzazione devono essere monotone; se non lo sono devono essere rese monotone, il che naturalmente riduce l&#8217;accuratezza della linearizzazione.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Caratterizzare un monitor&#8221; o un videoproiettore significa trovare una relazione tra valori RGB in ingresso al monitor o al proiettore e valori di tristimolo XYZ del colore prodotto. Questa relazione consiste in due trasformazioni: quella diretta, cio\u00e8 da RGB a XYZ, e quella inversa, cio\u00e8 da XYZ a RGB. La trasformazione diretta consente di ottenere [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1026,301],"tags":[77,73,33,1494],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pjoVH-5Ht","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/21915"}],"collection":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21915"}],"version-history":[{"count":22,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/21915\/revisions"}],"predecessor-version":[{"id":26237,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/21915\/revisions\/26237"}],"wp:attachment":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21915"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}