Trent Piepho wrote:
> The standard way it to use 9 tables of 256 entries, one for each combination
> of (R, G, B) with (Y, U, V). Then you do something like
>
> Y = R_to_Y[R] + G_to_Y[G] + B_to_Y[B];
> U = R_to_U[R] + G_to_U[G] + B_to_U[B];
> V = R_to_V[R] + G_to_V[G] + B_to_V[B];
>
> So instead of one table lookup, in a huge table, you do 9 lookups plus a few
> additions. For more accuracy you would probably want to use fixed point
> arithmetic. You don't need all 9 tables either, as some of them will end up
> being the same.
Yep, I scale all my precomputed tables up by 256, so it's all 16 bit integer
additions rather than floating point, and then / 256 (>> 8) afterwards. I
package it up as sample-at-a -time in-line conversion functions (effectively
macros), so the net result is actually probably fairly competetive with an MMX
conversion.
Ben
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list