The Basis of Color Management

Overzicht

Het punt van een kleurbeheer is om er zeker van te zijn dat de kleuren uit uw camera of scanner een voorspelbare relatie hebben met de kleuren die zijn gefotografeerd of gescand, dat de kleuren weergegeven op uw monitor overeenkomen met de kleuren uit uw camera of scanner en dat de kleuren die u afdrukt of weergeeft op het web overeenkomen met de kleuren die u in uw digitale donkere kamer hebt gemaakt.

A typical color workflow acquires images with a camera or scanner, displays images on a monitor, and prints images on a printer. While each of these devices may represent colors using 8-bit RGB values, they do not do so in exactly the same way. Specifically, an RGB value of (200,130,200) will probably correspond to different shades of purple on each of these devices. The goal of color management is to adjust the RGB values of the image data as it moves from input, to display, and on to print in such a way that maintains the same perceived colors on all devices.

Color management works by characterizing the color reproduction capability (also called the color space) of each device (e.g. camera, scanner, monitor or printer) in what is called an ICC profile. These ICC profiles are defined so they can be used to translate the RGB numbers used to represent a specific color at one point in the workflow, into the appropriate RGB numbers to represent the exact same color at another point in the workflow. Color management using ICC conversions is illustrated in the following figure.

Het overal schema van kleurruimten gebruikt in een toepassing met kleurbeheer zoals digiKam

In order to be able to convert from any color space to any other color space, it was decided that all ICC profiles would be defined so that they can convert between the device color space and a common working color space. Thus two ICC conversions are shown in the diagram to convert data from a camera into data suitable for display on a monitor: one from the camera to the working space, and one from the working space to the monitor. So color management is largely a matter of using the appropriate device profiles to allow for the appropriate conversion of the image data as it moves from device to device.

Als het tot kleurbeheer komt wil iedereen weten, welke knoppen moeten ingedrukt worden om de juiste kleuren te krijgen. Helaas maakt kleurbeheer omvat geïnformeerde keuzes te maken bij elke stap in de werkmethode van afbeeldingsbewerking. Het doel van deze sectie is om voldoende achtergrondinformatie te leveren over kleurbeheer, naast koppelingen naar meer diepgaande informatie, om u in staat te stellen om te beginnen met het maken van uw eigen geïnformeerde beslissingen.

When You Don’t Need Color Management

Als uw werkmethode voor afbeeldingen aan alle zes onderstaand getoonde criteria voldoet, dan hoeft u zich geen zorgen te maken over kleurbeheer.

  • U werkt op een monitor die juist is gekalibreerd op de sRGB kleurruimte (meer hierover, zie deze sectie van deze handleiding voor gedetailleerde beschrijving van de sRGB kleurruimte).

  • Uw werkmethode voor afbeeldingen start met een in de camera gemaakte JPEG die zich al in de sRGB kleurruimte bevindt.

  • U werkt uitsluitend in de sRGB kleurruimte voor bewerking.

  • Uw printer wil afbeeldingen in de sRGB kleurruimte.

  • Uw scanner produceert afbeeldingen in de sRGB kleurruimte.

  • Uw enige andere uitvoer van afbeeldingen is via e-mail of het web, waar sRGB de de facto standaard is.

Nuttige definities

To better understand Color Management, we need to define some key terms:

ICC profile is a set of data that characterizes a color input or output device, or a color space, according to standards promulgated by the Interglobal Color Consortium (ICC). Profiles describe the color attributes of a particular device (or the viewing requirements for an image) by defining a mapping between the device source or target color space and a profile connection space (PCS). This PCS is either CIELAB (L*a*b*) or CIEXYZ. Mappings may be specified using tables, to which interpolation is applied, or through a series of parameters for transformations.

(The overview section oversimplified the ICC profile as mapping between the device and a working space, when actually they convert to a PCS. The PCS can be thought of as a universal color space. So the camera to monitor flow actually may involve 4 color space conversions: camera to PCS, PCS to working space, working space to PCS, and PCS to monitor. The reasons for these extra steps are described below.)

Gamut is the span of colors that can be accurately encoded into an image, or represented by a device.

White point is a set of RGB values that serve to define the color “white” in an image or reproduction.

Gamma correction is a nonlinear operation used to encode and decode values in images in order to reduce the visual artifacts caused by storing pixel data with a finite number of bits. For example, images are encoded with a gamma of about 0.45 and decoded with the reciprocal gamma of 2.2 for display on most computer monitors.

A simple example of one such conversion might be helpful. To apply a gamma correction of 2.2 to a data value of 212 in an 8-bit representation, you divide the value by 2^8 = 256 in order to convert to a 0 to 1 scale. In this case 212/256 = 0.828. Then raise this value to the 2.2 power, 0.828^2.2 = 0.660. Then multiply by 256 to convert the result back to a scale from 0 to 255: 0.660 * 256 = 169. Gamma correction applies this same algorithm to each color in every pixel in the image, all in real time.

The simplest color spaces can be specified by a combination of gamut, white point, and gamma.

Converteren van een afbeelding naar een nieuw profiel bed het nieuwe profiel in in de afbeelding, maar ook het wijzigen van de RGB getallen in de afbeelding, zodat de betekenis van de RGB waarden – dat is de echte zichtbare kleur gerepresenteerd door het trio van RGB-waarden behorend bij elk pixel in een afbeelding – hetzelfde blijft voor en na de conversie van de ene ruimte naar de andere ruimte.

If the spaces only differ by their gammas, then the conversion involves gamma correction using the respective gammas of the starting and ending color spaces. Color conversions involving gamut and white points are mathematically more complex, but based on similar logic.

In theorie zou u meerdere conversies van een afbeelding van de ene kleurruimte naar een andere kunnen maken en als u een bewerkingsprogramma met kleurbeheer gebruikt, hoewel zelfs alle RGB getallen met elke conversie in de afbeelding zouden wijzigen, zou de afbeelding er op het scherm telkens hetzelfde uit moeten zien. Maar feitelijk, zijn er afrondingsfouten bij elke conversie en afknijpen van heldere of donkere delen (gamut-clipping) kan er plaatsvinden bij het gaan van een grotere kleurruimte naar een kleinere kleurruimte. Dus kleurnauwkeurigheid van de afbeelding vervalt telkens een beetje bij elke keer dat u van de ene ruimte naar een andere gaat.

Assigning a color profile changes the meaning of the RGB numbers in an image by embedding a new profile without changing the actual RGB numbers associated with each pixel in the image. When you simply assign a new color profile, the appearance of the image should more or less drastically change (usually for the worse, unless the wrong profile had previously been inadvertently embedded in the image). The one exception occurs when initially assigning a camera profile to the image file you get from your RAW processing software. This is an exception because the assignment is presumably the correct color profile for an image produced by that camera.

Apparaat-afhankelijke en Apparaat-onafhankelijke profielen: een cameraprofiel, een scannerprofiel, uw beeldschermprofiel en het kleurprofiel van uw printer zijn allen apparaat-afhankelijke profielen*. Deze profielen werken alleen met het specifieke apparaat waarvoor ze werden ontwikkeld. Werkruimteprofielen en de Profile Connection Space zijn apparaat-onafhankelijk. Wanneer een afbeeldingsbestand vertaald is door een LCMS (Little Color Management System, het open-source kleurbeheersysteem gebruikt in digiKam) naar een apparaat-onafhankelijke werkruimte maakt het niet langer uit door welk apparaat het afbeeldingsbestand oorspronkelijk werd aangemaakt. Maar zo gauw u de afbeelding op een ander beeldscherm wilt tonen of het afdrukken, dan maakt het veel uit welk uitvoerapparaat (monitor, printer) wordt gebruikt en moet de afbeelding geconverteerd worden in het profiel van het uitvoerapparaat.

Een RAW-bestand ontdaan van mozaïek is geen RAW-bestand. Om de een of andere reden veroorzaakt dit eenvoudige punt heel wat verwarring. Maar nadat een RAW-bestand geïnterpoleerd van mozaïek ontdaan is door RAW verwerkende software en wordt daarna als een TIFF of JPEG uitgevoerd, terwijl het originele RAW-bestand nog steeds een RAW-bestand is, maar het van mozaïek ontdane bestand is gewoon een afbeeldingsbestand. Het is niet langer een RAW-bestand.

Lineair kent twee aan elkaar verwante maar gemakkelijk te verwarren definities. Lineair kan betekenen dat de kleurtoon van een beeld weergeeft wat de kleurtoon van de gefotografeerde scene was. Het kan ook betekenen dat de gammaconversiecurve van de kleurruimte lineair is. Een beeld kan lineair zijn in een van de twee, in beide of in geen van twee betekenissen. Een RAW-afbeelding zoals ontwikkeld door Libraw is lineair in beide betekenissen. Eenzelfde afbeelding, ontwikkeld door Canon’s verwerkingssoftware, zal in geen van de betekenissen lineair zijn.

HDR en LDR verwijzen niet naar de bit-diepte van een afbeelding. High dynamic range en Low dynamic range verwijzen naar het totale dynamische bereik van een beeld. Een gewoon beeld met een laag dynamisch bereik, zeg maar, 5 diafragma stops kan opgeslagen worden als, 8-, 16-, 32-, of zelfs 64-bits, afhankelijk van de software. Maar opslaan met meer bits verhoogt niet het dynamische bereik van de afbeelding. Slechts het aantal afzonderlijke stapjes van de helderste tot de donkerste tonen is gewijzigd. Omgekeerd kan een 22-stops (wat in een eenvoudige camera niet haalbaar is) eenvoudig beeld opgeslagen worden als een 8-bits of 16-bits afbeelding maar het resultaat zal verschijnselen van extreme bandvorming te zien geven door de relatief geringe beschikbare stapjes van lichte tot donkere tonen in de afbeelding. Het zal extreme bandvorming laten zien in elk toonbereik op het beeldscherm.

JPEG’s geproduceerd in de camera hebben geen cameraprofiel nodig. Alle JPEG’s (of TIFF’s) die regelrecht uit de camera komen beginnen hun leven als een RAW-bestand dat geconverteerd werd door de inwendige analoog naar digitaal converter (omzetter.) Zelfs wanneer gemaakt door eenvoudige pocket-camera’s. Als u uw beelden opslaat als JPEG’s, dan interpoleert de processor in uw camera het RAW-bestand, wijst een cameraprofiel toe, vertaalt de resulterende RGB waarden naar een werkruimte (gewoonlijk sRGB, maar soms kunt u kiezen voor AdobeRGB), zorgt voor de JPEG-compressie en slaat de afbeelding op op de geheugenkaart van uw camera. Voor JPEG’s (of TIFF’s) van uw camera is het niet nodig een profiel toe te wijzen om dan vertaald te worden naar een werkruimte. JPEG’s van uw camera bevinden zich al in een werkruimte.

Profile Connection Space

Suppose Libraw produces a 16-bit TIFF image from a RAW file produced by a particular (make and model) camera. The question then becomes: what does each particular trio of RGB values assigned to each pixel in the image really mean in terms of some absolute standard, referencing some ideal observer? And is it even possible to define an ideal observer? Do real people even see the same colors when they look at the world?

In 1931 the International Color Consortium decided to map out and mathematically describe all the colors visible to real people in the real world. They did this by showing a whole bunch of people a whole bunch of colors, asking them to say when this color matched that color. This testing was complicated by the fact that two colors that visually match can be produced by differing combinations of wavelengths. Human color perception depends on the fact that we have three types of cone receptors with peak sensitivity to light at wavelengths of approximately 430, 540, and 570 nm, but with considerable overlap in sensitivity between the different cone types. One consequence of how we see color is that many different combinations of differing wavelengths of light will look like the same color.

In the end, the ICC produced the CIE-XYZ color space which mathematically describes and models all the colors visible to an ideal human observer. The term ideal in this case means that the modeling was based on the mean response of lots of individuals.

In de praktijk is deze kleurruimte die overeenkomt met de menselijke perceptie geen kleurprofiel in de normale betekenis van het woord. In plaats daarvan levert het een referentie ruimte voor beschrijven van alle kleuren. Kleurbeheersystemen gebruiken in het algemeen de CIE-XYZ kleurruimte als een Profiel verbindende ruimte (PCS, Profile Connecting Space) voor vertalen va RGB kleurwaarden van de ene kleurruimte naar de andere. Bijvoorbeeld, een cameraprofiel is nodig om nauwkeurig de respons van de pixels van een gegeven camera op licht dat de camera inkomt te karakteriseren of te beschrijven, die kleuren kunnen overgezet worden in een werkruimte. ICC cameraprofielen werken door eerst de RGB-waarden te converteren in een absoluut Profiel verbindende ruimte, vaak gebaseerd op CIE-XYZ en daarna uit de Profiel verbindende ruimte naar uw gekozen werkruimte.

CIE-XYZ is not the only Profile Connection Space. Another commonly used Profile Connection Space is CIE-Lab, which is mathematically derived from the CIE-XYZ space. CIE-Lab is intended to be perceptually uniform, meaning a change of the same amount in a color value should produce a change of about the same visual importance.

The three coordinates of CIE-Lab represent the lightness of the color (L = 0 yields black and L = 100 indicates diffuse white; specular white may be higher), its position between red/magenta and green (a, negative values indicate green while positive values indicate magenta) and its position between yellow and blue (b, negative values indicate blue and positive values indicate yellow).

The software used in digiKam to translate from the camera profile to the Profile Connection Space and from the Profile Connection Space to your chosen working space and eventually to your chosen output space (for printing or perhaps monitor display) is based on Lcms (the Little Color Management engine).

Voor wat het waard is, Lcms voert meer accurate conversies uit dan de eigen kleurconversie engine van Adobe. Verder is de RAW-conversie in digiKam gebaseerd op decoderen van het eigen RAW-bestand door Libraw. Deze bibliotheek, is een geweldige open-source component omdat we zonder deze vastzitten aan het gebruik van de gewoonlijk alleen-Windows of alleen-Mac bedrijfseigen software die komt met onze digitale camera’s. De algoritmen voor ontdoen van mozaïek van Libraw (niet te verwarren met de eerder genoemde decodering van het bedrijfseigen RAW-bestand) produceren resultaten gelijk aan of beter dan commerciële, gesloten broncode software.

So in summary, all color management conversions are made to and from Profile Connection Spaces that are defined with a color gamut that closely matches human perception. The PCS is used internal to the conversion process, and you’ll never see data in the PCS. But you can think of a Profile Connection Space as a Universal Translator between all other color profiles.

Kleurruimteverbindingen

The workflow that a typical image might follow in the course of its journey from camera RAW file to final output includes the following steps:

  1. Lcms gebruikt het cameraprofiel, ook wel genoemd het Invoerprofiel, om de geïnterpoleerde, door Libraw geproduceerde, RGB-getallen, die alleen betekenis hebben voor uw (merk en model) camera, te vertalen naar een tweede set RGB-getallen die alleen van betekenis zijn voor de Profiel verbindende ruimte.

  2. Lcms vertaalt de RGB-getallen van de Profiel verbindende ruimte naar de overeenkomstige getallen in uw gekozen werkruimte zodat u uw beeldbestand kan bewerken. En deze werkruimtegetallen hebben alleen betekenis voor een gegeven werkruimte. Hetzelfde rood, visueel gesproken, wordt in verschillende werkruimten vertegenwoordigd door verschillende trio’s van RGB-getallen; en als u het verkeerde profiel toewijst zal het beeld er ofwel een beetje verkeerd of heel erg verkeerd uitzien, afhankelijk van de verschillen tussen de twee profielen.

  3. Terwijl u een afbeelding in uw gekozen Werkruimte bewerkt, zou Lcms alle RGB-getallen terug moeten vertalen naar de Profiel verbindende ruimte en daarna naar de juiste RGB-getallen die uw monitor (uw weergaveapparaat) in staat stelt u de meest accuraat mogelijke representatie op uw scherm van uw afbeelding te geven. Deze vertaling in kleurruimte van het scherm wordt on-the-fly gedaan en u zou nooit moeten merken dat het wordt gedaan.

  4. Wanneer u vindt dat uw afbeelding gereed is om aan de buitenwereld te presenteren vertaalt Lcms de Werkruimte RGB-getallen terug naar de Profile Connection Space-ruimte en verder naar de kleurruimte van de printer met gebruik van het printerprofiel dat aangeeft welke printer/papier combinatie gebruikt wordt. Of, naar de sRGB kleurruimte (als u van plan bent de afbeelding op internet te tonen of het per e-mail te verzenden naar vrienden of om misschien een diashow te maken die op andere beeldschermen getoond kan worden.

Deze magie van converteren van profielen ondersteunt ook Soft-proofing wat een manier is om op het scherm het te verwachten resultaat van uitvoer op een ander apparaat vooraf te bekijken, typisch een printer. Soft-proofing toont u het te de te verwachten uitvoer voordat u het echt doet en uw kostbare inkt verspilt. Dit biedt u uw kleurinstellingen te verbeteren zonder tijd en geld te verspillen. Voor meer informatie neem een kijkje in de toegespitste sectie Soft Proofing in deze handleiding.

Natuurlijk zijn profielconversies niet perfect, speciaal bij converteren tussen ruimten die een verschillenden gamuts hebben. Rendering-intentie refereert aan de manier waarop gamuts worden behandeld wanneer de kleurruimte van het doel niet de volledige gamut aankan. Voor meer informatie neem een kijkje in deze sectie van deze handleiding .

Now that you’ve seen the outline of how color management is used to convert from camera to working space (for editing) to display to printer, it should be clear that color management is all about applying the right profiles for the devices you are using, and picking the right color spaces for editing and storing images. So where do we get the profiles, and how do we pick a working space? Those are the subjects of the following sections.