Mailinglist Archive: radeonhd (307 mails)

< Previous Next >
Re: [radeonhd] [PATCH] Correct colour scaling for r6xx-r7xx Xv
  • From: Yang Zhao <yang@xxxxxxxxxx>
  • Date: Fri, 13 Feb 2009 16:58:15 -0800
  • Message-id: <40a7b1aa0902131658x2af371edqe3ce3bf8e1c3bd9c@xxxxxxxxxxxxxx>
2009/2/13 Yang Zhao <yang@xxxxxxxxxx>:
2009/2/13 Matthias Hopf <mhopf@xxxxxxx>:
On Feb 11, 09 11:28:56 -0800, Yang Zhao wrote:
static float ps_alu_consts[] = {
- 1.0, 0.0, 1.13983, -1.13983/2, // r - c[0]
- 1.0, -0.39465, -0.5806, (0.39465+0.5806)/2, // g - c[1]
- 1.0, 2.03211, 0.0, -2.03211/2, // b - c[2]
+ 1.0, 0.0, 1.4020, 0, // r - c[0]
+ 1.0, -0.34414, -0.71414, 0, // g - c[1]
+ 1.0, 1.7720, 0.0, 0, // b - c[2]
+ /* Constants for undoing Y'CbCr scaling
+ * - Y' is scaled from 16:235
+ * - Cb/Cr are scaled from 16:240
+ * Unscaled value N' = N * N_mul + N_shift (N' in range [-0.5, 0.5])
+ * Vector is [Y_mul, Y_shfit, C_mul, C_shift]
+ */
+ 256.0/219.0, -16.0/219.0, 256.0/224.0, -128.0/224.0,

I don't understand this, Alex. You are changing *both* the color
conversion matrix *and* introducing scaling functions?!?

The change to the conversion matrix is actually to make it follow
BT.709 instead of BT.601. The former seemed like a better default, as
it's what's used in HD media, and the difference between the two is
claimed to be mostly negligible.


Ops, that's not quite true either.

What was there before was Y'UV to RGB. What we actually want for
digital media is Y'CbCr to RGB, which is ambiguously (and somewhat
incorrectly) labelled as "YUV" in Xv.

The new version is with coefficients for BT.601.

--
Yang Zhao
http://yangman.ca
--
To unsubscribe, e-mail: radeonhd+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: radeonhd+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups