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