目的:在嵌入式系統中,視頻採集主要採用兩種接口:一種是標準攝像頭接口,一種是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;
}