目的:在嵌入式系统中,视频采集主要采用两种接口:一种是标准摄像头接口,一种是USB接口(USB1.1)。标准的摄像头接口,接口复杂,但传输速度快,适合高质量视频采集,而USB接口,接口简单,但有性能瓶颈,只能用于低质量的视频采集。我采用的是mini2440开发板,内为S3C2440芯片,S3C2440自带USB1.1主机接口和CMOS摄像头标准接口。所以mini2440开发板的两种视频采集方式都可以,这里主要介绍基于USB摄像头的视频采集。
设备:
1.笔记本电脑(操作系统:win10)
2.虚拟机(VMware Workstation12 )
3.Linux系统(Fedora24)
4.mini2440开发板
5.USB摄像头(十几块钱的山寨摄像头,视频输出格式为YUYV,接口为USB2.0接口兼容USB1.1)
应用层框架解析:
首先由USB摄像头输出数据,其格式为YUYV格式,无法直接显示在LCD上,需先转化为RGB格式。
因此,应用程序框架应为(伪代码):
int main()
{
1.LCD_DeviceInit(); //LCD初始化
2.Video_DeviceInit(); //USB摄像头初始化
while(1)
{
3.Video_GetData(); //获取USB摄像头输出数据
4.Yuv2RgbConvert(); //将YUYV数据转换为RGB格式
5.LcdSetData2FrameBuf(); //输入至LCD显示
}
return 0;
}