I made some tests with photographs. The pattern are projections on certain side faces. The images show from left to right the following axis in the order of (X-axis, Y-axis)
(Red, Green)
(Blue, Green)
(Red, Blue)
either from bottom left (0, 0) to top right (1, 1). The bright grids are deviding the charts in parts of 0.25 for linear RGB. Since I analyzed photographs, I also included the 0.5-line for sRGB with a darker line.
The last three images can be clicked to see the original photo (JPEG compressed, I analyzed an bitmap.) (I can't remember which are the first three pics I analyzed.)
(The seperated "side galaxy" is the blue ground of the traffic sign. Click the diagram to see the picture.)
So, despite some outliers, the majority of all pixels are near the gray axis.
I find this interesting especially when using YCbCr. Here are some CbCr-planes for certain values of Y:
As one easily can see, the YCbCr-cube lies only partly in the RGB-cube. (From 16777216 possible colours with YCbCr 888 are only 3918122 representable with RGB [0..1]. This is less than 24%!) So what I suggest is:
- Find a good matrix for an Yab-representation (with other matrix values than YCbCr) for every single picture (texture) and store it with the picture (or texture). This is similar to the NCC palette storing.
- Also, depending on the actual distribution of the values, use a finer quantization for ab-Values with less saturdation. If a and b is in the range from -0.5 .. 0.5, the finer resultion is needed around zero.
(Red, Green)
(Blue, Green)
(Red, Blue)
either from bottom left (0, 0) to top right (1, 1). The bright grids are deviding the charts in parts of 0.25 for linear RGB. Since I analyzed photographs, I also included the 0.5-line for sRGB with a darker line.
The last three images can be clicked to see the original photo (JPEG compressed, I analyzed an bitmap.) (I can't remember which are the first three pics I analyzed.)
(The seperated "side galaxy" is the blue ground of the traffic sign. Click the diagram to see the picture.)
So, despite some outliers, the majority of all pixels are near the gray axis.
I find this interesting especially when using YCbCr. Here are some CbCr-planes for certain values of Y:
As one easily can see, the YCbCr-cube lies only partly in the RGB-cube. (From 16777216 possible colours with YCbCr 888 are only 3918122 representable with RGB [0..1]. This is less than 24%!) So what I suggest is:
- Find a good matrix for an Yab-representation (with other matrix values than YCbCr) for every single picture (texture) and store it with the picture (or texture). This is similar to the NCC palette storing.
- Also, depending on the actual distribution of the values, use a finer quantization for ab-Values with less saturdation. If a and b is in the range from -0.5 .. 0.5, the finer resultion is needed around zero.