PDA

View Full Version : real-time video processing



03-15-2006, 10:18 AM
Has anyone done real-time processing of a live video feed using OpenGL? Is it possible to accomplish color correction or use a look up table for pixel data?

Ehsan Kamrani
03-16-2006, 01:06 AM
OpenML® is an open source, royalty-free, cross-platform programming environment for capturing, transporting, processing, displaying, and synchronizing digital media - including 2D/3D graphics and audio/video streams. OpenML 1.0 defines professional-grade sample-level stream synchronization, OpenGL extensions for accelerated video processing , the MLdc™ professional display control API and the ML™ framework for asynchronous media streaming between applications and processing hardware.
www.khronos.org (http://www.khronos.org)

OpenGL and OpenML tight and synergistic integration
* OpenGL 1.2.1 with GLX 1.3 (Linux/UNIX) or WGL (Windows)
o OpenML extends OpenGL with video primitives and DCC rendering features
* Defines a set of OpenGL extensions that OpenML compliant hardware must implement
o Pbuffers are the fundamental method of integrating graphics and video
* Enables buffering and off-screen processing of video data
o OpenGL imaging extensions are used to process video streams
* Filtering, color correction, blending, image enhancement, color space conversion
o Significant opportunity for OpenGL hardware vendors to add more value
o Use OpenGL graphics hardware for 3D and video acceleration
OpenGL Extensions Bring Together the Worlds of 3D and Video
Extensions to OpenGL add capabilities for synchronization with other parts of the system, for improved rendering performance and quality, and for improved treatment of video formats.
Extensions include:

* Synchronization control
o Primitives to control UST/MSC synchronization from OpenGL
o Functions added: WaitForMSC, SwapBuffersMSC, GetSyncValues
* Interlace supportOpenGL
o Based on two previous extensions: SGIX_interlace, INGR_interlace_read
o Enables reading and writing of the frame buffer while skipping every other line
o Enables processing (e.g., convolution) on interlaced video streams
* Texture color mask management to enable advanced compositing
o Enables independent loading of RGB images and Alpha masks in texture memory
o Recently promoted from an SGI extension to an ARB extension
o Works for textures like the OpenGL color mask works for the color buffer
* Chroma resampling to support pixel formats such as YCrCb
o Upsampling and downsampling when converting between YCrCb and RGB
o Sampling options are: Replicate, Zero fill, Average

You can visit the OpenML message board:
http://www.khronos.org/message_boards/?category=2

-Ehsan-

03-16-2006, 10:02 AM
Thanks so much.

Ehsan Kamrani
03-16-2006, 10:56 PM
Also take a look at this link:
http://www.opengl.org/resources/tutorial...000000000000000 (http://www.opengl.org/resources/tutorials/advanced/advanced98/notes/node167.html#SECTION000140000000000000000)
Maybe you can find some good information about the color correction and look up tables.
However if you want to do a real-time processing, you shoud use from OpenML -Or something else - and then use from OpenGL to edit the recieved data.
-Ehsan-