Re: [Gegl-developer] [Gimp-developer] Don't make an architectural mistake based on a groundless premise



On Fri, Oct 10, 2014 at 6:36 PM, Elle Stone
<ellestone ninedegreesbelow com> wrote:
 On 10/09/2014 07:52 PM, Michael Henning wrote:
On Thu, Oct 9, 2014 at 7:22 PM, Elle Stone
So where in the conversion to XYZ and then to LAB (or any other reference
color space) will "sRGB as PCS" fit in?

Of course you could convert from User_RGB to XYZ, from XZY to "sRGB as PCS",
from "sRGB as PCS" back to XYZ, and then, finally, to LAB. But I don't see
the point of doing such an odd sequence of conversions.

This conversion would be User_RGB -> "sRGB PCS" -> LAB. While Linear
User_RGB to Linear User_RGB2, might end up being just be Linear
User_RGB -> Linear User_RGB2.

The choice of XYZ or linear sRGB or any other linear RGB as a PCS
should not have an impact on either the results you get or the number
of conversions happening - when converting between RGB spaces.

Any linear RGB space is a matrix multiplication away from XYZ, this
includes the PCS of babl. Two such matrix multiplication steps can be
combined into a single step by multiplying the matrices corresponding
to the steps. Thus the number of operations to do per pixel is the
same when going from from babl PCS -> XYZ -> some linear RGB, as if
you do XYZ -> some linear RGB. This matrix will be stored in the
specific BablModel for this color space; and available in code paths
for doing conversions to/from PCS or directly between such models.

It is only for CIE Lab and related spaces we end up with a longer
sequence of conversions (the CIE color models are the type of spaces
that need a bit more special treatment, which is why those color
models have an implementation of XYZ to/from linear sRGB.). Most
algorithms and editing is RGB centric; thus this is a fair compromise.
The CIE Lab code if refactored could also be a single step away from
the PCS.

Given that the choice of PCS, is any suitable RGB space. We are left
with looking for other redeeming qualities to make a choice. A lot of
- yes legacy; but we have code integrating with such libraries file
formats and more; 8bit images around, and some 16bit images as well do
use sRGB. And sRGB continues to be the recommended format on the web
and elsewhere.

/pippin


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]