#ifndef COLOURSPACE_H#define COLOURSPACE_H#include <cassert>#ifndef NDEBUG#include <iostream>#endif#include "colour_sensitivity.h"namespace mimas {/** @addtogroup imageIO@{ *//** @defgroup colourspace Fast colourspace transformationsMimas provides several fast algorithms for converting from differentYUV formats to RGBA- and grey-level images. There also is a transformationfrom RGBA to the YV12 format.The methods are used internally by the image-I/O classes.See <A HREF="http://www.fourcc.org/yuv.php">http://www.fourcc.org/yuv.php</A> and<A HREF="http://www.fourcc.org/fccyvrgb.php">http://www.fourcc.org/fccyvrgb.php</A>for more information on colourspaces.@see imageIO@author Bala Amavasai (bpa@amavasai.org)@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 15:53:56 UTC 2006@{ *//** Colour conversion from RGB to RGBA.Adding A-byte to RGB.@param in Input RGB data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store RGBA data in@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 11:40:53 UTC 2006 */void rgb_to_rgba( const char *in, int width, int height, char *out );/** Colour conversion from YV12 to RGBA.Colourspace transformation from YV12 to RGBA.@param in Input YV12 data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store RGBA data in@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 11:40:53 UTC 2006 */void yv12_to_rgba( const char *in, int width, int height, char *out );/** Colour conversion from YUV420p to RGBA.Colourspace transformation from YUV420p to RGBA.@param in Input YUV420p data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store RGBA data in@author Bala Amavasai (bpa@amavasai.org)@date Fri Jan 10 18:37:08 UTC 2006 */void yuv420p_to_rgba( const char *in, int width, int height, char *out );/** Colour conversion from RGBA to YV12.Colourspace transformation from RGBA to YV12.@param in Input RGBA data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store YV12 data in@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 11:40:53 UTC 2006 */void rgba_to_yv12( const char *in, int width, int height, char *out );/** Colour conversion from UYVY to RGBA.Colourspace transformation from UYVY to RGBA.@param in Input UYVY data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store RGBA data in@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 11:40:53 UTC 2006 */void uyvy_to_rgba( const char *in, int width, int height, char *out );/** Colour conversion from YUY2 to RGBA.Colourspace transformation from YUY2 to RGBA.@param in Input YUY2 data (8 bit)@param width Width of input image@param height Height of input image@param out Pointer to store RGBA data in@author Jan Wedekind (jan@wedesoft.de)@date Fri Jan 10 11:40:53 UTC 2006 */void yuy2_to_rgba( const char *in, int width, int height, char *out );///@}///@}};#endif