EZ-USB FX2實(shí)現(xiàn)圖像采集系統(tǒng)
圖3 PC程序總流程圖
每次啟動(dòng)采集程序時(shí),系統(tǒng)通過創(chuàng)建USBDeviee實(shí)例獲得設(shè)備句柄,并嘗試打開USB設(shè)備。當(dāng)點(diǎn)擊程序界面開始采集按鈕后,程序通過USB控制端點(diǎn)發(fā)送一個(gè)開始采集信號(hào),并要求采集卡回傳一個(gè)設(shè)備狀態(tài)信號(hào)。如果設(shè)備提示無模擬視頻信號(hào)連接,則提示用戶連接。如果設(shè)備準(zhǔn)備好,則開始接收?qǐng)D像數(shù)據(jù)。
由于USB主控制器工作于Slave FIFO模式,采集卡上傳到上位機(jī)的數(shù)據(jù)量固定為27MB/S,如果上位機(jī)沒能及時(shí)接收數(shù)據(jù)必然會(huì)導(dǎo)致圖像數(shù)據(jù)丟失,所以程序中使用一個(gè)線程(線程1)以異步方式做圖像數(shù)據(jù)接收,實(shí)際效果非常好。線程1主要代碼如下:
SAA7113H輸出的是隔行視頻信號(hào),每秒25幀圖像,一幀圖像需要分兩次傳輸,先傳輸全部奇場(chǎng)(奇數(shù)行)數(shù)據(jù),然后傳輸全部偶場(chǎng)(偶數(shù)行)數(shù)據(jù),采集卡中將SAA7113H的輸出設(shè)置為標(biāo)準(zhǔn)YUV4:2:2數(shù)據(jù),分辨率為720x576.系統(tǒng)將所有的解碼數(shù)據(jù)不做任何處理直接傳送到PC機(jī),數(shù)據(jù)格式如圖4所示。其中,"80 10…"為消隱數(shù)據(jù)。"FF 00 00 SAV"為一行數(shù)據(jù)塊的開始標(biāo)志,作為奇場(chǎng)有效行,SAV的值為8X,作為偶場(chǎng)有效行,該值為CX."FF 00 00 EAV"為一行數(shù)據(jù)塊結(jié)束標(biāo)志,作為奇場(chǎng)有效行結(jié)束,EAV的值為9X,作為偶場(chǎng)有效行結(jié)束,該值為DX.作為720像素的YUV4:2:2數(shù)據(jù),每行一共有720x2=1 440個(gè)字節(jié),PC程序需要從所有的數(shù)據(jù)中找出每一行中有效的1 440個(gè)字節(jié)數(shù)據(jù),并按照實(shí)際行順序?qū)⑵鎴?chǎng)行相偶場(chǎng)行數(shù)據(jù)重新組合,轉(zhuǎn)換成RGB24位像素點(diǎn)并最終寫入BMP文件,實(shí)現(xiàn)圖像的采集、顯示和保存。
圖4 YUV4:2:2數(shù)據(jù)格式
數(shù)據(jù)查找及重組過程中,PC程序會(huì)根據(jù)YUV4:2:2數(shù)據(jù)格式做數(shù)據(jù)塊判別,如果發(fā)現(xiàn)有出錯(cuò)數(shù)據(jù)程序會(huì)做自動(dòng)拋棄處理,在對(duì)采集數(shù)據(jù)要求非常嚴(yán)格及單張采集間隔時(shí)間較長的場(chǎng)合,程序?qū)l(fā)送重新采集信號(hào)給采集卡,再一次采集。系統(tǒng)實(shí)際使用過程中發(fā)現(xiàn),數(shù)據(jù)出錯(cuò)情況很少出現(xiàn),且重發(fā)請(qǐng)求后可以得到正確數(shù)據(jù)。
3 結(jié)論
利用本方案設(shè)計(jì)的圖像采集卡可以實(shí)現(xiàn)圖像的連續(xù)采集,并最終以bmp圖像格式保存,采集速率每秒最大25幀,適用于所有支持PAL模擬視頻格式的攝像機(jī)及監(jiān)控?cái)z像頭的圖像無損采集,具有成本低、圖像清晰等特點(diǎn),在光學(xué)顯微鏡序列切片圖像采集系統(tǒng)中得到了很好的應(yīng)用。另外,系統(tǒng)經(jīng)過簡單修改后也可實(shí)現(xiàn)4個(gè)復(fù)合視頻源輸入的分時(shí)采集功能。
評(píng)論