00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00022
00023 typedef struct Myrgb16 {
00024 unsigned short blue:5;
00025 unsigned short green:6;
00026 unsigned short red:5;
00027 } Myrgb16;
00028 typedef struct Myrgb24 {
00029 unsigned char blue;
00030 unsigned char green;
00031 unsigned char red;
00032 } Myrgb24;
00033 typedef struct Myrgb32 {
00034 unsigned char blue;
00035 unsigned char green;
00036 unsigned char red;
00037 unsigned char alpha;
00038 } Myrgb32;
00039
00040 typedef struct MyYUV422 {
00041 unsigned char y0;
00042 unsigned char u;
00043 unsigned char y1;
00044 unsigned char v;
00045 } MyYUV422;
00046
00047 typedef struct MyYUV444 {
00048 unsigned char y;
00049 unsigned char u;
00050 unsigned char v;
00051 } MyYUV444;
00052
00053 #define CLIP(color) (unsigned char)(((color)>0xFF)?0xff:(((color)<0)?0:(color)))
00054
00055 unsigned char
00056 RGB24_TO_Y(unsigned char r, unsigned char g, unsigned char b);
00057
00058 unsigned char
00059 YR_TO_V(unsigned char r, unsigned char y);
00060
00061 unsigned char
00062 YB_TO_U(unsigned char b, unsigned char y);
00063
00064 unsigned char
00065 R_FROMYV(unsigned char y, unsigned char v);
00066
00067 unsigned char
00068 G_FROMYUV(unsigned char y, unsigned char u, unsigned char v);
00069
00070 unsigned char
00071 B_FROMYU(unsigned char y, unsigned char u);
00072
00073 #define YfromRGB(r,g,b) CLIP((77*(r)+150*(g)+29*(b))>>8)
00074 #define UfromRGB(r,g,b) CLIP(((128*(b)-85*(g)-43*(r))>>8 )+128)
00075 #define VfromRGB(r,g,b) CLIP(((128*(r)-107*(g)-21*(b))>>8) +128)
00076
00077 #define PACKRGB16(r,g,b) (__u16) ((((b) & 0xF8) << 8 ) | (((g) & 0xFC) << 3 ) | (((r) & 0xF8) >> 3 ))
00078 #define UNPACK16(pixel,r,g,b) r=((pixel)&0xf800) >> 8; g=((pixel)&0x07e0) >> 3; b=(((pixel)&0x001f) << 3)
00079
00080 void initLut(void);
00081 void freeLut(void);
00082