Rev Author Line No. Line
178 kaklik 1 #ifndef COLOURSPACE_H
2 #define COLOURSPACE_H
3  
4 #include <cassert>
5 #ifndef NDEBUG
6 #include <iostream>
7 #endif
8 #include "colour_sensitivity.h"
9  
10 namespace mimas {
11  
12 /** @addtogroup imageIO
13 @{ */
14 /** @defgroup colourspace Fast colourspace transformations
15 Mimas provides several fast algorithms for converting from different
16 YUV formats to RGBA- and grey-level images. There also is a transformation
17 from RGBA to the YV12 format.
18  
19 The methods are used internally by the image-I/O classes.
20  
21 See <A HREF="http://www.fourcc.org/yuv.php">http://www.fourcc.org/yuv.php</A> and
22 <A HREF="http://www.fourcc.org/fccyvrgb.php">http://www.fourcc.org/fccyvrgb.php</A>
23 for more information on colourspaces.
24 @see imageIO
25 @author Bala Amavasai (bpa@amavasai.org)
26 @author Jan Wedekind (jan@wedesoft.de)
27 @date Fri Jan 10 15:53:56 UTC 2006
28 @{ */
29 /** Colour conversion from RGB to RGBA.
30 Adding A-byte to RGB.
31 @param in Input RGB data (8 bit)
32 @param width Width of input image
33 @param height Height of input image
34 @param out Pointer to store RGBA data in
35 @author Jan Wedekind (jan@wedesoft.de)
36 @date Fri Jan 10 11:40:53 UTC 2006 */
37 void rgb_to_rgba( const char *in, int width, int height, char *out );
38  
39 /** Colour conversion from YV12 to RGBA.
40 Colourspace transformation from YV12 to RGBA.
41 @param in Input YV12 data (8 bit)
42 @param width Width of input image
43 @param height Height of input image
44 @param out Pointer to store RGBA data in
45 @author Jan Wedekind (jan@wedesoft.de)
46 @date Fri Jan 10 11:40:53 UTC 2006 */
47 void yv12_to_rgba( const char *in, int width, int height, char *out );
48  
49 /** Colour conversion from YUV420p to RGBA.
50 Colourspace transformation from YUV420p to RGBA.
51 @param in Input YUV420p data (8 bit)
52 @param width Width of input image
53 @param height Height of input image
54 @param out Pointer to store RGBA data in
55 @author Bala Amavasai (bpa@amavasai.org)
56 @date Fri Jan 10 18:37:08 UTC 2006 */
57 void yuv420p_to_rgba( const char *in, int width, int height, char *out );
58  
59 /** Colour conversion from RGBA to YV12.
60 Colourspace transformation from RGBA to YV12.
61 @param in Input RGBA data (8 bit)
62 @param width Width of input image
63 @param height Height of input image
64 @param out Pointer to store YV12 data in
65 @author Jan Wedekind (jan@wedesoft.de)
66 @date Fri Jan 10 11:40:53 UTC 2006 */
67 void rgba_to_yv12( const char *in, int width, int height, char *out );
68  
69 /** Colour conversion from UYVY to RGBA.
70 Colourspace transformation from UYVY to RGBA.
71 @param in Input UYVY data (8 bit)
72 @param width Width of input image
73 @param height Height of input image
74 @param out Pointer to store RGBA data in
75 @author Jan Wedekind (jan@wedesoft.de)
76 @date Fri Jan 10 11:40:53 UTC 2006 */
77 void uyvy_to_rgba( const char *in, int width, int height, char *out );
78  
79 /** Colour conversion from YUY2 to RGBA.
80 Colourspace transformation from YUY2 to RGBA.
81 @param in Input YUY2 data (8 bit)
82 @param width Width of input image
83 @param height Height of input image
84 @param out Pointer to store RGBA data in
85 @author Jan Wedekind (jan@wedesoft.de)
86 @date Fri Jan 10 11:40:53 UTC 2006 */
87 void yuy2_to_rgba( const char *in, int width, int height, char *out );
88  
89 ///@}
90  
91 ///@}
92  
93 };
94  
95 #endif