We were meant to write that entry since a while, and a
great post by
Tom Forsyth from
Oculus VR triggered us in doing so.
As I was quickly reading his article, I
tweeted
back about the missing description of sRGB as being an RGB colourspace: a
set of primaries, whitepoint and transfer functions components.
The article first description of sRGB is as follows:
sRGB is a slight tweaking of the simple gamma 2.2 curve.
While this depiction of sRGB colourspace Electro-Optical Transfer Function
(EOTF) is exact, it may be confusing for non experts by omitting an explicit
emphasis of the components of an RGB colourspace.
For people experienced with colour theory and science, the post title and the
mention of Gamma indicates that the article will likely only involves the
sRGB colourspace EOTF and its inverse.
Warning
When using the term Gamma at
colour-science.org,
we are always referring to a pure power function whose exponent is
known as Gamma.
Note
Charles Poynton's Gamma FAQ
is an extensive reference on Gamma correction.
Tom confirms that intuition a few paragraph later:
(the broader sRGB standard also has a bunch of gamut and colour-transform
specifications, but we’ll ignore those and just focus on the gamma-curve
part for now, since that is what concerns us for graphics rendering)
Note
The gamut defined by sRGB colourspace should actually be of a
concern if one tries to achieve photo-realistic rendering as shown by
Steve Agland
and us.
What is sRGB?
Terminology in a given scientific domain is key to its understanding, and this
is especially true in colour science. Everybody knows what colour is but yet
only a few can define it correctly, in this regard, we often cite
Mark D. Fairchild:
Why should it be particularly difficult to agree upon consistent
terminology in the field of color appearance? Perhaps the answer lies in
the very nature of the subject. Almost everyone knows what color is.
After all, they have had firsthand experience of it since shortly after
birth. However, very few can precisely describe their color experiences or
even precisely define color.[1]
The ISO 22028-1 Standard definition of an additive RGB colourspace is
quoted in its entirety for reference:
3.3
additive RGB colour space
colorimetric colour space having three colour primaries (generally red,
green and blue) such that CIE XYZ tristimulus values can be determined
from the RGB colour space values by forming a weighted combination of the
CIE XYZ tristimulus values for the individual colour primaries, where the
weights are proportional to the radio-metrically linear colour space values
for the corresponding colour primaries
Note 1 to entry: A simple linear 3 × 3 matrix transformation can be used to
transform between CIE XYZ tristimulus values and the radio-metrically linear
colour space values for an additive RGB colour space.
Note 2 to entry: Additive RGB colour spaces are defined by specifying the
CIE chromaticity values for a set of additive RGB primaries and a colour
space white point, together with a colour component transfer function.
Primaries
The primarieschromaticity coordinates define the gamut (the triangle
of colours) that can be encoded by a given RGB colourspace.
Note
When performing computations allowing for negative values and with
enough precision, a given RGB colorspace can virtually encode any colours.
Colours exceeding its gamut are simply represented with negative values.
It is important to understand that while commonly represented as triangles on a
Chromaticity Diagram (such as the CIE 1931 Chromaticity Diagram), RGB colourspacegamuts define the boundaries of an actual 3D volume within the
CIE xyY colourspace:
The Chromaticity Diagram is a 2D projection of the CIE xyY colourspace volume
along its YLuminance axis.
Various RGB colourspacegamuts compared in the CIE 1931 Chromaticity Diagram.
The CIE 1931 Chromaticity Diagram in the bottom right view is a 2D
projection of the CIE xyY colourspace in the left view.
(Colour - Analysis)
Achromatic reference stimulus in a chromaticity diagram that corresponds to
the stimulus that produces an image area that has the perception of white.
Any set of colours lying on the neutral axis passing through the whitepoint,
no matter their Luminance, will be neutral to that RGB colourspace.
CIE Standard Illuminant D65 is located at the apex of sRGB colourspace
volume.
(Colour - Analysis)
An RGB colourspace can have
different whitepoints
depending its context usage, sRGB colourspaceIEC 61966-2-1:1999 Standard
adopts CIE Standard Illuminant D65
as whitepoint but an ICCsRGB colourspace profile would likely have been chromatically adapted to
CIE Standard Illuminant D50.
Various CIE Illuminants D Seriesilluminants in the
CIE 1960 UCS Chromaticity Diagram.
Transfer Functions
The transfer functions perform the mapping between the linear light
components (tristimulus values) and a non-linear R'G'B' video signal (most
of the time for coding optimisation and bandwidth performance). [2]
The two common types and their inverses are defined as follows:
The Opto-Electronic Transfer Function (OETF) maps estimated
tristimulus values in a scene to a non-linear R'G'B' video component signal
value. Typical OETFs are expressed by a power function with an exponent
between 0.4 and 0.5. They can also be defined as piece-wise functions,
SMPTE 240M or BT.709 OETFs are such examples.
Various Opto-Electronic Transfer Functions.
The Electro-Optical Transfer Function (EOTF) maps a non-linear
R'G'B' video component signal to a tristimulus value at the display.
Typical EOTFs are expressed by a power function with an exponent
between 2.2 and 2.6 or a piece-wise function.
Various Electro-Optical Transfer Functions.
Note
Jack Holm, technical secretary for IEC/TC 100/TA 2 which developed the
IEC 61966-2-1:1999 Standard is unambiguous about the sRGBEOTF
being piece-wise, i.e., not a Gamma 2.2 approximation and that the
IEC 61966-2-1:1999 Standard does not define an OETF.
With the RGB colourspace specification components outlined, it should now make
more sense why not being specific and using a clear terminology can lead to
confusion and uncertainty: colour science vocabulary is complex.
I often encounter people that don’t have a clear understanding on what
composes an RGB colourspace, as a result they don't properly differentiate
gamut and transfer functions. The cursory terminology recurrently
used online is probably the root cause for that.
When one talks about sRGB, is he describing the colourspace primaries or
its transfer functions? Discussing about sRGB to linear transformation
without emphasis on the EOTF component is unsettling: a rendering
engine using linear sRGB colourspace input colours and textures, renders with
the sRGB colourspace primaries and whitepoint (assuming no colour
transformations are occurring internally), thus its output is within sRGB
colourspace.
When rendering using BT.709
colourspace for HDTV, one is actually adopting sRGB colourspace primaries
and whitepoint with different specific transfer functions.
Movie cameras such as those from Canon (Canon EOS 1DC, Canon CX00) use BT.709primaries and whitepoint but encode their scene linear values with a
custom log curve designated
C-Log.
Note
Most camera makers implement their own log curves (ALEXA Log C for ARRI Alexa
cameras, RED Log Film for RED cameras, etc...) and proprietary
RGB colourspaces specifications (ALEXA Wide Gamut RGB for ARRI Alexa
cameras, REDcolor or DragonColor for RED cameras, etc...).
Likewise, it is perfectly valid to use the sRGB colourspace transfer
functions with another set of primaries and whitepoint. When
working within Adobe Photoshop or The Foundry Mari, some VFX studios use a
proprietary colourspace specification along sRGB colourspace transfer
functions: those transfer functions being commonly implemented in
various DCC packages, the various colour transformation operations between
those packages are simplified.
Conclusion
When one talks about sRGB alone, it should be safe to assume that he is
referring to the sRGB colourspace as per IEC 61966-2-1:1999 Standard,
not just cherry picked components. Unfortunately it is not the case thus in order
to lessen the uncertainty and improve the terminology used, we suggest that:
One remembers that a given RGB colourspace is defined by the following
essential three components:
When writing on the RGB colourspace topic, one should ideally mention the
previous point, it will help people getting the grasp on the theory.
When discussing about a given RGB colourspace component, one should make a
point of describing which specification's component he is referring to:
sRGB is a slight tweaking of the simple gamma 2.2 curve.
would be better written as follows:
The sRGB transfer function is a slight tweaking of the simple gamma
2.2 curve.
or for completeness:
The sRGB Electro-Optical Transfer Function (EOTF) is a slight tweaking
of the simple Gamma 2.2 function.
When describing an RGB colourspace not supported by an official specification
or standard, one should probably use a name that explicitly defines the complete
specification:
sRGB-D60-Linear: an RGB colourspace using sRGBprimaries
chromatically adapted to CIE Standard Illuminant D60whitepoint
and linear transfer functions.
Adobe 1998 RGB-D65-Gamma1.8: an RGB colourspace using Adobe 1998 RGBprimaries, CIE Standard Illuminant D65whitepoint and Gamma
1.8 transfer functions.
In the near future it will likely become even more critical and relevant as
new RGB colourspaces such as BT.2020
or the ACES encodings
become mainstream.
Comments
Comments powered by Disqus