Dave Airlie wrote:
Hi all,
        I've just implemented output for ffmpeg to opengl using
rectangular ycbcr textures, and the speed is quite good (compared to
non-ycbcr mipmapped textures :-), but now I've
noticed of course I can't use it on the NVIDIA (*evil*) closed source
drivers... (a couple of developers using NV cards...)

I don't mind that much and maybe NVIDIA will pickup the MESA extension at
some stage, but I've spotted an extension called GL_NVX_ycrcb in my
extension list and I wonder has anyone here heard of it? I know go ask
NVIDIA and I will just thought someone on this list might have seen or
heard of it (google turns up nought)..

I asked NVIDIA about the extension a while back and got some info. Basically, GL_NVX_ycrcb defines two new image formats (GL_CRYCBY_422_NV and GL_YCRYCB_422_NV) that can be passed to glRead/DrawPixels, glTexImage, etc. that specify the image data is stored in 4:2:2 format. The 4:2:2 data is unpacked into (Y, Cr, Cb) triplets prior to pixel transfer.


It's up to you, then, to transform these triplets into RGB by setting up an appropriate GL_COLOR_MATRIX. My testing indicated, unfortunately, that the color matrix transformation is a software path in their driver and is pretty slow.

Depending on your NVIDIA hardware you can efficiently do YCbCr -> RGB conversion using register combiners or fragment programs.

It would be nice if NVIDIA would support Mesa's GL_MESA_ycbcr_texture extension, but I don't expect that to happen.

-Brian



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to