II.A - Practical application: choose your color spaces and formats¶
Working within an digital image application, it is important to know and master how the colors are managed in the various functionalities of the application in question, as well as throughout the production pipeline in which it is inserted.
This second part is intended to explain concretely how to organize this production pipeline as regards the color, and to help to parameterize it.
A.1 - Theory¶
Before setting up the various software programs, it is important to understand that colors are regularly converted during the production of images. Indeed, at each stage since the generation of the color until its posting on a device, each end of software and hardware intervening works in its own space.
To control the production pipeline of the colors thus does not imply to choose well a single colorimetric space, but rather to be aware of the various conversions and the various colorimetric spaces coming into play at each stage, within an application as well as between the applications.
This control will not guarantee that the colors will be correctly reproduced on the viewer’s device (TV, computer screen, telephone, cinema screen…) but at least allows to have control throughout the production while ensuring to deliver images that respect the standards in force. It is then up to the broadcaster to take over at the end of the pipeline with a correctly parameterized pipeline.
A.1.a - Journey of a color¶
Let’s follow the journey that a color has to go through before it is correctly displayed.
A color generated by one application and to be exported to another application, through an intermediate file, is likely to undergo two conversions: from the first application to the file, and from the file to the second application. This operation is repeated at each stage of the production pipeline, until broadcast, where the broadcast application (and hardware) convert what they receive into the broadcast color space.
Each of the applications must thus imperatively be correctly informed on the colorimetric space of the files which it imports, in order to be able to carry out the good conversion towards its own colorimetric space. In the same way, at the time of export, the good conversion since the colorimetric space of the application towards that of the exported file must be carried out.
But within an application itself, many conversions can take place:
- From the color space of the imported file to the color space of the application.
- From the color space of the application towards that of the screen of the computer, for the preview.
- From the color space of the application towards that of the output file.
Indeed, all these colorimetric spaces are not necessarily the same…
With each “brick” of the application using colors, a color space is associated. Let us see these various bricks and some recommendations.
All applications do not necessarily allow access to all the settings of all the spaces for these different elements. The “imposed” settings can be more or less practical and intelligent depending on the application…
In the applications, we will have to adjust the different stages of color management:
All the following explanations apply to design applications (3D, drawing, compositing, retouching…) as well as to players (image display, video players…)
B - Workspace (scene referred)¶
The most important space to know is the one in which the application works, in which it performs the color synthesis and the associated calculations.
This space is the one noted scene referred.
Here are the most commonly used characteristics for a workspace :
- Linear in the great majority of the cases, to improve the blending of the colors, it can be useful for the colorimetric corrections to use a nonlinear space.
- Gamut large in order to work in a space capable of faithfully reproducing a large number of colors and gain in precision.
Some applications allow you to change the workspace, which is particularly interesting in the case of 3D renderers: the workspace influences the rendering of colors and allows you to adjust the way you work with lights and materials.
The workspace is chosen before starting to work ; indeed, it is once the space is chosen that you work the colors in the space in question. Changing the workspace once the work has progressed makes no sense ; it will be necessary to adjust all the lights, all the color settings…
C - Input¶
Each time a file or other external element is imported, the application must interpret (know) the element’s color space in order to convert it to its workspace.
There are then several possibilities:
- Either the files respect the most common standards (when they exist…), and the application interprets the files correctly by default.
- Either the files, or the application itself, do not respect these standards, or no standard exists, and the application must then allow to modify the interpretation of the data to specify manually which is the imported color space1.
In any case, in order to control the production, it is imperative to control the interpretation of the colors by the applications during the import; some will systematically “make mistakes” on certain files, and it will then be necessary to think of correcting the interpretation at each import (or automate it)2.
See * A.6 - Intermediate Output and A.7 - Final Output for more information on file-specific color spaces, and II.B - Some Standards* for a list of the most common standards.
D - Display¶
It is important to keep in mind that the working color space, scene referred, is most often different from the display color space!
The application thus carries out a conversion of the colors such as it calculates them towards the display space of the screen.
There are several elements to take into account for this display:
- The color space of the screen itself
- The adjustments of the screen which can deteriorate the colors
- The colorimetric profile applied to the screen by the operating system
- The conversion carried out by the application since its workspace towards that of the display.
See section 2C - Screen Calibration for more details on the subject.
D.1 - Screen space¶
Each screen displays colors in a predefined color space chosen by the manufacturer for the particular model of screen.
There are three main categories of screens:
- Computer screens (and projectors)
- Phones, tablets, etc.
Following these categories, most displays use these color spaces:
- Computer: sRGB, although some displays (often called HDR) are also capable of displaying P3 colors; P3 displays also display sRGB, which is contained entirely “within” P3. Computer monitors display the full/pc range of colors (cf. K.4 - Full range / Limited / TV / PC ?).
- Televisions: Rec.709, or sometimes sRGB (adjustable), or sometimes other spaces when they are HDR. TVs display the limited/tv range of colors (cf. K.4 - Full range / Limited / TV / PC ?).
- Phones, tablets, etc. : sRGB, although some (rare) phones and tablets are also able to display P3 colors. These devices display the full range (full/pc) of colors (cf. K.4 - Full range / Limited / TV / PC ?).
It should be noted that the screens displaying exactly the announced color space are rare, and most generate (more or less) small variations; these variations are in general largely corrected by a controlled calibration. Cf. II.C - screen calibration.
D.2 - Settings and color profiles¶
The great majority of the screens propose several adjustments of the colors on the screen itself, in particular via the parameters of brightness and contrast, complemented, according to the screens, by the gammas* red, green and blue, and sometimes still other adjustments.
These settings can sometimes correct the biggest defects of the screens as they are delivered from the factory (provided you have an efficient calibration method), and can be completed by finer adjustments, both via the colorimetric profile applied by the operating system, and possibly adjustments at the level of the graphics card driver.
Many displays offer “eco”, “auto”, “gaming” modes, etc., which adapt their settings automatically depending on the activity, the type of signal received, etc. In a production pipeline where colors are managed, it is imperative to disable these different modes that change the display in an unpredictable way.
Knowing these settings is important for controlling the correct display of colors on the workstation.
It should also be noted that these settings should be checked (and adjusted) regularly; the color display may vary with the aging of the screen, the ambient temperature, etc.
Cf. II.C - screen calibration for detailed explanations of the screen settings and how to adjust them.
D.3 - Within the application¶
Once the screen is installed and properly set up (or as best as possible), all that is left to do is to select the correct display profile in the application.
Most of the time, a simple display option allows you to specify whether the screen is sRGB, Rec.709 or P3 or whatever; sometimes no setting is available and the application relies on the operating system.
It should be kept in mind that the application continues to work in its own space, which does not depend on the one in which the colors are displayed, and that the file outputs do not depend on this display space either; on the other hand, a bad choice of display leads to bad choices of colors and thus unexpected and non-standard variations in the output!
The worst mistake is for example to choose the wrong display space and then believe that it is the output space that is different from what was expected. This error then leads to changing the interpretation of the colors when importing into the next application to try to compensate, and introduce bad corrections while completely losing control of the production pipeline.
Some applications offer, in addition to controlling the conversions to display space, a simulation or screen proofing*, which consists of performing an intermediate conversion to the output space intended for the current job, before finally converting to display space. When working for specific outputs, it can be useful to activate this kind of tool and thus check the result after the multiple conversions that the colors will undergo until the final format.
This method is in particular very useful to simulate the result of a printing in a space CMJN for example, but also the posting of a video in its format of exit.
However the soft-proofing is only a method of checking and one can often do without it (especially in video).
Cf. Soft-Proofing) for more details on the subject.
E - Color pickers¶
In an application the color pickers can have their own color space.
Most often, they are either in the workspace of the application, which makes them difficult to use when the space is linear, or in the space of the display, more practical.
We prefer non-linear spaces to facilitate the choice of colors; having color selectors in sRGB also allows to easily recover colors from other applications, from images, etc. A conversion is then carried out after the selection of the color towards the working space of the application.
F - Intermediate output¶
When exporting intermediate files, which will be used in the rest of the production, the aim is to lose as little information as possible, to keep a maximum of data for the rest of the work.
In this case, the easiest thing to do is, as far as possible, to export files in the application’s workspace. To do this, the file format best able to store any color information is openEXR (which is supposed to use linear spaces). It is quite possible to use other formats, but in this case, either the choice of space will not be standard and may be misinterpreted later, or unnecessary conversions are introduced, or a loss of data by having to use a smaller or non-linear space.
If it is impossible to export in the workspace and in openEXR (or other format allowing to keep the right space), you should prefer RGB formats (and avoid YUV, or at least use the 4:4:4 subsampling).
When the working space is linear but the output space is not (and vice versa), it is important to know that a loss of precision and quality occurs, and that in this case it is absolutely necessary that the depth of the working space is greater than that of the output space (working in 32 bpc linear to output in 16 bpc non-linear for example).
G - Final output¶
During the final output, it is of course necessary to try to respect as well as possible the standard corresponding to the delivery, or to refer to the request of the broadcaster.
Cf. II.B - A few standards for a list of the most common standards.
Most of the final outputs will be in color spaces dedicated to the display, and therefore with a non-linear transfer; a loss of precision and quality taking place when passing from a linear workspace to a non-linear display space, it is important in this case that the workspace has a depth higher than that of the final output (work in 16 bpc for an output 8 bpc for example)
Sources & References
If an application does not allow you to change the color space during import, be prepared to have unexpected color variations during import. You will then have to guess where the application is “wrong” in order to manually perform a color correction to restore the original colors (most often simply via a gamma* correction or the application of a LUT*). Note that such an application does not really have its place in a production pipeline where one seeks to control the color… ↩
Not all applications allow the automation of color management (for example Adobe After Effects does not have an API for this precise point). In the rest of this document, we will note for the applications explained the errors of interpretation that they make, that we have been able to spot, and the other specificities to know. ↩