基于NiosII的視頻采集與DVI成像研究及實現(xiàn)
3 視頻圖像數(shù)據(jù)采集
視頻解碼芯片輸出內(nèi)嵌同步字符8 bit視頻數(shù)據(jù),參照解碼芯片輸出DATACLK時鐘,FPGA采集視頻解碼數(shù)據(jù)。FPGA采集之前先要進(jìn)行圖像裁剪、交織處理。裁剪處理是為了產(chǎn)生640×480的像素面,交織處理即變隔行視頻數(shù)據(jù)為逐行視頻輸出,即兩場圖像交叉嵌入一個存儲體中,形成一幀。當(dāng)一幀存儲完畢后,切換存儲體,而先前的存儲體內(nèi)容參照系統(tǒng)時鐘,依次像素處理送DVI編碼芯片進(jìn)行顯示。
3.1 視頻信號采集控制
視頻輸出信號為內(nèi)嵌同步字符8 bit Y:Cb:Cr=4:2:2輸出,本設(shè)計中視頻信號采集采用狀態(tài)機(jī)控制法。視頻信號采集控制狀態(tài)機(jī)表示如圖3所示。
Idel:默認(rèn)空閑狀態(tài)。如果視頻采集標(biāo)志capture置位,則進(jìn)入Wait State狀態(tài);如果capture不置位,則停留在Idel狀態(tài)。
Wait State:此時如果收到數(shù)據(jù)0xff,則進(jìn)入State1,其他情況仍然循環(huán)停留。
State1:如果此時收到數(shù)據(jù)0x00,則進(jìn)入State2;收到其他數(shù)據(jù)則進(jìn)入Error。
State2:如果此時收到數(shù)據(jù)0x00,則進(jìn)入New page狀態(tài),否則狀態(tài)返回到Wait State。
New page:此時視頻處于消隱狀態(tài),如果收到的視頻數(shù)據(jù)vpo[6:5]=01,則正在消隱,轉(zhuǎn)入第一行數(shù)據(jù)接收狀態(tài)First Line,否則跳回Wait State狀態(tài)。
First Line:如果收到vpo[6:4]=000,表明下一個數(shù)據(jù)即視頻圖像數(shù)據(jù),否則返回到Wait State。
Chroma blue:正確有效的數(shù)據(jù),如果此時接收到vpo=0xff,則表明數(shù)據(jù)轉(zhuǎn)入End Line,如果收到vpo=0x00,則轉(zhuǎn)入Error狀態(tài)。
Luma blue:亮度藍(lán)色數(shù)據(jù),接收完轉(zhuǎn)入Chroma red狀態(tài)。
Chroma red:色度紅色數(shù)據(jù),接收完轉(zhuǎn)入Luma red狀態(tài)。
Luma red:亮度紅色數(shù)據(jù),接收完轉(zhuǎn)入Chroma blue狀態(tài)。
End Line:如果vpo[6:4]=011,表示奇數(shù)場結(jié)束,偶數(shù)場將要開始,轉(zhuǎn)入New line狀態(tài);如果vpo[6:4]=111,表示一幀數(shù)據(jù)結(jié)束,轉(zhuǎn)入Idle狀態(tài);如果vpo[5:4]=01,表示一行結(jié)束,下一行將要開始,轉(zhuǎn)入New line狀態(tài);否則進(jìn)入Error狀態(tài)。
New Line:如果接收到的vpo[5:4]=00,表示有效數(shù)據(jù)接收,轉(zhuǎn)入Chroma blue狀態(tài);否則轉(zhuǎn)到End Line狀態(tài)。
Error:錯誤狀態(tài),ITU-RBT656規(guī)定Y=[16 235] CBCR=[16 240]范圍內(nèi),越此范圍就為錯誤狀態(tài)。如果capture=1,跳轉(zhuǎn)到Wait state狀態(tài),否則停留在Error狀態(tài)。該系統(tǒng)具有自動錯誤恢復(fù)能力。
評論