Multimediekursus: epræsentation og kodning Søren Olsen Farver og repræsentation af farvebilleder Synligt lys er den del af det elektromagnetiske spektrum med en bølgelængde mellem ca. 400 og ca. 700 nanometer. Som illustreret i nedenstående figur er dette interval omgivet af ultraviolet lys (kortere bølgelængde) og infrarødt lys (længere bølgelængde). Længere ude i begge ender af det elektromagnetiske spektrum findes der også områder, som benyttes til optagelse af billeder. 10-5 10-1 10 0 10 2 10 6 8 15 nm nm nm nm nm 10 nm 10 nm 10 nm kosmisk gamma rongten ultraviolet straling straling lys synligt lys infrarodt lys mikro bolger TV radio elektricitet blat gront gult rodt 400nm 500nm 600nm 700nm Det er vigtigt at fortstå at farver (eller farvet lys) ikke eksisterer. Der findes kun elektromagnetisk stråling med en given frekvenssammensætning. Farver er et begreb som mennesker tillæggger lys inden for bestemte frekvensbånd. Hvis frekvenssammensætningen er uniform (inden for de 400-700 nm) opfattes lyset som hvidt. Hvis hvidt lys passerer et prisme vil lys med forskellige frekvenser afbøjes forskelligt. Man vil se bånd af blåt, grønt, gult, og rødt lys. åndene er ikke skarpe, idet farverne glider glat over i hinanden. Man taler ofte om farverne: rød, grøn og blå som de tre primærfarver. Ifølge international standardisering svarer disse farver til bølgelængderne: rød = 700nm, grøn = 546.1nm, og blå = 45.8nm. Ved at superponere forskellige mængder af lys med disse tre bølgelængder er det muligt at give et visuelt indtryk af næsten enhver farve. Dette skyldes at vores retina er forsynet med tre typer farvesensorer. Disse kan (meget forsimplet) registrerer den udsendte linearkombination af de tre farver. De fleste konsum-produkter (fx. digitalkamera og skannere) benyttes ligeledes sensorer, der hver er følsomme i det røde, det grønne og det blå område. Den værdi som en sensor registrer afhænger af den spektrale fordeling for lyskilden L(λ), reflektionen fra objektet F (λ), og sensor-følsomhedskurverne f r/g/b (λ). 1
= k r L(λ)F (λ)f r (λ) λ = k g L(λ)F (λ)f g (λ) λ = k b L(λ)F (λ)f b (λ) Nedenstående figur viser eksempler på følsomhedskurver. λ Skaleret følsomhed Skaleret følsomhed 445 nm 55 nm 575 nm 400 nm 500 nm 600 nm 700 nm ølgelængde 400 nm 500 nm 600 nm 700 nm ølgelængde Det er klart fra ovenstående formler at den registrerede farve afhænger af sensorens følsomhedskurve. De spektrale filtre, som benyttes i given filmemulsion, i et digitalt kamera, en farveskanner etc. er forskellige, og afviger også for følsomhedskurverne for de typer kegleformede celler der findes i retina hos mennesket. Den registrerede værdi fås ved multiplikation af funktionerne L(λ), F (λ), og f r/g/b (λ), og ved integration af resultatfunktionen. L F f_b f_g f_r b g r 2
Af ovenstående fremgår at to spektrale fordelinger kan meget vel blive registreret med samme -værdi [der findes mange flere spektrale fordelinger end der findes forskellige -værdier]. Mængden af spektrale fordelinger med samme -værdi kaldes en Metamerisk klasse. Når en farve skal gengives skal en repræsentant for den aktuelle metameriske klasse vælges. Forskellige monitorer og printere vælger forskellige repræsentanter. Omvendt gælder at farvefortolkning af en given -værdi kræver viden om følsomhedskurver for sensorerne. Der findes en standard: CIE Standard Colorimetric Observer, der specificerer følsomhedskurver for en standard-sensor. ivet sensor-følsomhedskurve for en bestemt sensor kan man oversætte en registreret værdi til denne standard. Standarden kan benyttes som mellemformat, fx. mellem sensor og printer, således at registrerede og printede farver tilhører samme metameriske klasse. Når en farvemonitor skal frembringe en farve sker dette ved at en elektronkanon anslår de små områder på monitoren, der hver (ved tilbagefald) udsender lys i en af de tre primærfarver (rød, grøn og blå). Der benyttes elektronkanoner, der hver genererer pulser svarende til de røde, grønne, og blå områder på monitoren. Hver kanon styres af et 8-bits billede (det røde, det grønne og det blå farveplan). Monitoren udsender altså en linearkombination af de tre farver som den kan gengive. Fortolket med vores sensorer opfatter vi en farve (svarende til lys af een bestemt bølgelængde), der ligger i samme metameriske klasse som linearkombinationen. Det er vigtigt at bemærke at monitoren ikke kan gengive alle farver, men kun de hvis metameriske klasse omfatter en linearkombination af de tre grundfarver som monitoren kan frembringe. Mængden af frembringelige farver kaldes gamut og er apparat-specifik. amut for en typisk monitor, et typisk kamera og en typisk printer er forskellige. Overlejres tre områder med rødt, grønt og blåt lys vil resultatet blive hvidt lys. De øvrige kombinationer er: - rødt og grønt giver gult - rødt og blåt giver magenta - grønt og blåt giver cyan Farverne gul, cyan, og magenta kaldes for sekundærfarverne. Overlejrer man de tre sekundærfarver fås sort. Primærfarverne rød, grøn og blå benyttes i sensorer (kamera, skannere) samt i monitorer. Sekundærfarverne benyttes i farveprintere. Farvesystemer Intensiteten af et -signal er defineret ved summen af de tre komponenter: I = + + (1) De relative farvekomponenter, også kaldet de trikromatiske koefficienter er tilsvarende defineret ved: r = + +
g = b = + + + + Farverummet er således udspændt af rgb-vektorene (1,0,0), (0,1,0) og (0,0,1). Sort svarer til Origo i systemet, hvidt til punktet (1,1,1). Sekundærfarverne (cmy) er placeret i kubens øvrige tre hjørner: (0,1,1), (1,0,1), og (1,1,0). I det normaliserede -system vil der gælde at b = 1 r g. Vi kan derfor danne et kromaticitets-diagram ved i første kvadrant af et rg-koordinatsystem at afbilde farven (r,g,b). Hvidt lys vil i dette diagram have koordinaterne W = ( 1, 1 ), dvs. lige dele rød, grøn og blå farve. Farven blå vil blive afbildet nær Origo, farven grøn i toppen af diagrammet etc. I kromaticitetsdiagrammet (se næste side) markerer randen af det tungeformede område de rene (mættede) farver. Punkter inden for området angiver umættede farver, dvs. farver der indeholder en større eller mindre andel af hvidt lys. Trekanten illustrerer gamut for en farvemonitor, dvs. de farver, der kan frembringes ved addition af de tre grundfarver som monitoren kan frembringe. CMY-systemet er defineret ved: c m y = 1 1 1 r g b (2) I modsætning til superpositionsprincippet, der anvendes i farvemonitorer benytter printere et subtraktionsprincip. Hvis et papir, der er malet med cyanfaret pigment belyses med hvidt lys vil det røde lys blive absorberet (omdannet til varme). Cyan subtraherer på denne måde det røde lys fra det hvide lys. Tilsvarende reflekteres der ikke grønt lys fra et magenta-farvet materiale. Overlejres pigmenter for magenta og cyan vil der således kun blive reflekteret lys med en bølgelængde svarende til blåt. Farveprintere benytter CMYK, hvor K angiver sort. Separat brug af sort farve er billigere. Desuden er det svært at frembringe en god sort farve ved CMY alene. Ved fjernsynsudsendelser (Composite video) benyttes -systemet ikke direkte. I stedet benyttes systemet YIQ (i USA) og YUV (i Europa). De to systemer YIQ og YUV er defineret som linearkombinationer af ved: Y I Q = 0.299 0.587 0.114 0.596 0.275 0.21 0.212 0.52 0.11 () Y U V = 0.299 0.587 0.114 0.147 0.289 0.47 0.615 0.515 0.100 4
0.9 520 nm 0.8 510 nm 550 nm 0.7 ron / 0.6 500 nm 580 nm 0.5 ul 0.4 Hvid S H 600 nm 0. 490 nm od / 700 nm 780 nm 0.2 la o 0.10 470 nm 450 nm 80 nm 0.0 0.0 0.1 0.2 0. 0.4 0.5 0.6 0.7 5
emærk først at størrelsen Y er den samme i begge systemer. Y angiver den monokrome komponent af signalet (lysstyrken), og svarer til den monokrome komponent i standard sort/hvid-fjernsyn. Komponenterne I og Q hhv. U og V kaldes krominanskomponeter. Disse kan også skrives: U = 0.49( Y ) V = 0.877( Y ) I = 0.74( Y ) 0.27( Y ) Q = 0.48( Y ) + 0.41( Y ) Komponenterne I (inphase) og Q (quadrature) specificerer farvesammensætningen (grøn - cyan) og (magenta - grøn). En af årsagerne til at benytte YIQ hhv. YUV frem for er at krominanskomponenterne i praksis kan samples sjældnere end Y-komponenten hvilket giver mulighed for datakompression. Et andet benyttet format er Y C b C r. Dette benyttes i bl.a. JPE-billedkodning og i videokodning. C b C r er bestemt ved: C b = 0.564( Y ) og C r = 0.71( Y ) eller: Y C b C r = 0.299 0.587 0.114 0.169 0.1 0.5 0.5 0.419 0.081 Der findes mange andre benyttede farvesystemer. I den grafiske branche benyttes CIE Labsystemet. Dette system er tæt relateret til HSI-systemet. Problemet (fx. i grafisk design) er at man ofte ønsker at ændre farveinformationen interaktivt. Her er det ofte vanskeligt at ramme en bestemt farvenuance ved at ændre på -, YUV-, eller YIQ-værdierne hver for sig. I stedet ønskes en repræsentation hvor farvetonen og mætningsgraden kan kontrolleres let. HSI-systemet er et sådant system: De tre komponenter: hue, saturation og intensity angiver netop farvetonen, mætningsgraden og lysintensiteten. Indlægges i kromaticitetsdiagrammet et lokalt koordinatsystem med Origo i W, og med førsteakse parallel med r-aksen kan H- og S-værdierne i HSI-systemet beskrives ved farvens polære koordinat. Således vil værdien af S angive hvor langt farven ligger fra punktet W. Igen skal man huske at de farver, der kan frembringes er linearkombinationer af primærfarverne, og derfor indeholdt i den optegnede trekant i kromaticitetsdiagrammet. Nedenstående figur illustrerer hvorledes farverummet ved HSI-systemet kan beskrives ved en dobbelt-kegle. 6
Hvid Intensitet Hue Sort Transformation mellem - og HSI- systemerne Transformationerne mellem -systemet og HSI-systemet er ganske komplicerede. I det følgende opsummeres transformationerne. En grundig beskrivelse af hvorledes disse er fremkommet kan f.eks. findes i: onzales and Woods: Digital Image Processing, Addison Wesley 2002. I transformationen fra til HSI gælder der at: I = 1 ( + + ) (4) For gælder der at: H = cos 1 1 ( ) + ( ) 2 ( ) 2 + ( )( ) (5) hvis > benyttes (60 - H) i stedet for H. Endelig defineres: MIN[,, ] S = 1 + + Ved transformationen fra HSI-systemet til -systemet skal der opdeles efter hvilken farvesektor H angiver, dvs. -sektoren (fra 0 til 120 grader), -sektoren (fra 120 til 240 grader) og -sektoren (fra 240 til 60 grader). I -sektoren fås: b = 1 (1 S) r = 1 [ 1 + Scos(H) ] cos(60 H) g = 1 (r + b) (7) 7 (6)
For -sektoren fås: Ĥ = H 120 r = 1 (1 S) g = 1 [ 1 + Scos(Ĥ) ] cos(60 Ĥ) b = 1 (r + g) (8) Endelig fås for -sektoren: For -sektoren fås: Ĥ = H 240 g = 1 (1 S) b = 1 [ 1 + Scos(Ĥ) ] cos(60 Ĥ) r = 1 (g + b) (9) Sluttelig kan -værdierne beregnes ved: (,, ) = I(r, g, b). 8