摄像头采集的视频数据是JPEG格式,需要通过libjpeg库进行解压,解压后得到的事RGB 24位的,在转换成RGB16位即可。 具体转换是将RGB24位的前8位右移3位,中间8位右移2位,最后8位右移3位,就得到RGB16位数据了。。。具体代码:
unsigned short RGB888toRGB565(unsigned char red, unsigned char green, unsigned char blue)
{
unsigned short B = (blue >> 3) & 0x001F;
unsigned short G = ((green >> 2) << 5) & 0x07E0;
unsigned short R = ((red >> 3) << 11) & 0xF800;
return (unsigned short) (R | G | B);
}
图3图像采集卡在采集数据时的工作时序
其中,VSYNV为场同步输出脉冲,HREF为也用于SRAM和FLASH的片选和读写控制,同时还负责LCD的显示控制。
2
软件设计