\documentclass[a4paper,12pt]{article}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\title{Deficiencies of the CIE-L*a*b* color space and introduction of the SRLAB2 color model}
\author{Jan Behrens}
\date{\small 6th April 2009}
\maketitle

This paper will talk about two deficiencies of the CIE-L*a*b* color space and suggest minimal modifications leading to a new improved color model aimed to be a drop-in replacement, which I will name ``SRLAB2''. We first recall the equitations of the L*a*b* color space, as defined in the year 1976:

\begin{eqnarray*}
L^* & = & 116 \cdot f \left( \frac{Y}{Y_n} \right) - 16 \\
a^* & = & 500 \cdot \left[
  f \left( \frac{X}{X_\mathrm{w}} \right) -
  f \left( \frac{Y}{Y_\mathrm{w}} \right)
\right] \\
b^* & = & 200 \cdot \left[
  f \left( \frac{Y}{Y_\mathrm{w}} \right) -
  f \left( \frac{Z}{Z_\mathrm{w}} \right)
\right] \\
f(\omega) & = & \left\{ \begin{array}{c@{\quad|\quad}l}
  \omega^{1/3} &
    \omega > \left( \frac{6}{29} \right)^3 \\
  \left( \left( \frac{29}{3} \right)^3 \cdot \omega + 16 \right) / 116 &
    \omega \le \left( \frac{6}{29} \right)^3
\end{array} \right.
\end{eqnarray*}

Calculating the $L^* a^* b^*$ values can be divided in three steps: Adaption of the white point, application of post-adaption nonlinearities and calculation of the final values through linear combination: ($x$ is any of {\itshape XYZ})

\begin{eqnarray*}
x'  & = & x / x_\mathrm{w} \\
x'' & = & 1.16 \cdot f(x') - 0.16 \\
\left( \begin{array}{ccc} L^*\\a^*\\b^* \end{array} \right) & = &
  \left( \begin{array}{ccc}
    100 \cdot Y'' \\
    500 \cdot (X''-Y'') / 1.16 \\
    200 \cdot (Y''-Z'') / 1.16
  \end{array} \right)
\end{eqnarray*}

\pagebreak

Modeling the adaption of the white point by simply dividing the CIE {\itshape XYZ} values is a so-called {\itshape wrong von Kries transform}.\footnote{Mark D. Fairchild, Color Appearance Models, 2nd Edition, chapter 10.3, page 191} The errors induced by this transform can be fixed by using the adaption model of CIECAM02\footnote{Mark D. Fairchild, Color Appearance Models, 2nd Edition, chapter 16.15, page 276} (with complete `discounting-the-illuminant'):

\begin{eqnarray*}
M_\mathrm{CAT02} & = & \left( \begin{array}{rrr}
   0.7328 &  0.4296 & -0.1624 \\
  -0.7036 &  1.6975 &  0.0061 \\
   0.0030 &  0.0136 &  0.9834
\end{array} \right) \\
\left( \begin{array}{c} R_\mathrm{w}\\G_\mathrm{w}\\B_\mathrm{w} \end{array} \right) & = &
  M_\mathrm{CAT02} \left(
    \begin{array}{c} X_\mathrm{w}\\Y_\mathrm{w}\\Z_\mathrm{w} \end{array}
  \right) \\
\left( \begin{array}{c} X_{SR}'\\Y_{SR}'\\Z_{SR}' \end{array} \right) & = &
  M_\mathrm{CAT02}^{-1} \left(
    \begin{array}{ccc}
      1/R_\mathrm{w} & 0 & 0 \\
      0 & 1/G_\mathrm{w} & 0 \\
      0 & 0 & 1/B_\mathrm{w}
    \end{array}
  \right) M_\mathrm{CAT02} \left(
    \begin{array}{c} X\\Y\\Z \end{array}
  \right)
\end{eqnarray*}

In the original CIELAB model another error is made in the second step, the post-adaption nonlinearities: Applying a compression function to stimuli other than cone responses leads to errors. We address this by first transforming the {\itshape XYZ} values to {\itshape Hunt-Pointer-Estevez} fundamentals, afterwards applying the compression function $1.16 \cdot f(x) - 0.16$ to each component, and finally transforming the cone responses back to {\itshape XYZ} values:

\begin{eqnarray*}
M_\mathrm{HPE} & = & \left( \begin{array}{rrr}
   0.38971 &  0.68898 & -0.07868 \\
  -0.22981 &  1.18340 &  0.04641 \\
   0.00000 &  0.00000 &  1.00000
\end{array} \right) \\
\left( \begin{array}{c} X_{SR}''\\Y_{SR}''\\Z_{SR}'' \end{array} \right) & = &
  M_\mathrm{HPE}^{-1} \left(
    1.16 \cdot f \left(
      M_\mathrm{HPE} \left(
        \begin{array}{c} X_{SR}'\\Y_{SR}'\\Z_{SR}' \end{array}
      \right)
    \right) - 0.16
  \right)
\end{eqnarray*}

These values finally can be used to compute the SRLAB2 values:
\begin{eqnarray*}
L_{SR} & = & 100 \cdot Y_{SR}'' \\
a_{SR} & = & 500 \cdot \left( X_{SR}'' - Y_{SR}'' \right) / 1.16 \\
b_{SR} & = & 200 \cdot \left( Y_{SR}'' - Z_{SR}'' \right) / 1.16
\end{eqnarray*}

\pagebreak

The newly defined SRLAB2 color model is a compromise between the simplicity of CIELAB and the correctness of CIECAM02. In contrast to CIECAM02 or RLAB there are no parameters like the adapting luminance or the relative luminance of the surround; only the white point (which is assumed to be completely adapted) has to be known. Compared to RLAB the SRLAB2 model uses the more recent chromatic adaption model of CIECAM02. For a fixed white point, successive linear transformations can be precalulated to form a single matrix, which reduces the complexity of the calculations to two matrix vector multiplications and the component-wise application of the compression function. The SRLAB2 model is almost as easy to use as CIELAB, while overcoming its errors especially visible in hue-changes of blue colors.

\vfill

This document may be freely copied for any purpose.

\vfill

\end{document}
