基于NiosII的視頻采集與DVI成像
2 模擬視頻信號解碼
視頻解碼格式有ITU-RBT.601標(biāo)準(zhǔn)格式和ITU-RBT.656標(biāo)準(zhǔn)格式。ITU-RBT.601標(biāo)準(zhǔn)需要行、場同步信號線,ITU-RBT.656標(biāo)準(zhǔn)無需同步信號線。ITU-RBT.656標(biāo)準(zhǔn)采用8 bit傳輸格式,亮度信號Y和色度信號Cb/Cr交替?zhèn)鬏?。本設(shè)計(jì)采用ITU-RBT.656標(biāo)準(zhǔn)。我國電視制式為PAL-D,一幀電視圖像有625行,每行可視像素為720個(gè),因?yàn)橛行邢[和場消隱,實(shí)際可視像素面為720×576,電視圖像傳輸采用奇偶場交替?zhèn)鬏?,所以通常奇偶場各傳?88行。圖2是行同步4:2:2輸出時(shí)序圖。本文引用地址:http://www.ex-cimer.com/article/195400.htm
PAL-D制式一行可視像素有720個(gè),因?yàn)椴捎肐TU-RBT.656標(biāo)準(zhǔn),每2個(gè)DATACLK時(shí)鐘才輸出一個(gè)像素,所以,一行可視像素需要1 440個(gè)DATACLK時(shí)鐘。一行像素輸出完畢后緊接4個(gè)行結(jié)束標(biāo)志,然后進(jìn)入行消隱階段,行消隱階段結(jié)束后,4個(gè)字符的開始標(biāo)志表明一行的開始,從4個(gè)結(jié)束標(biāo)志到4個(gè)開始標(biāo)志,共有288個(gè)DATACLK時(shí)鐘。這288個(gè)DATACLK期間的數(shù)據(jù)不用于顯示,用于同步和消隱,所以對于PAL-D制式,采用ITU-RBT.656標(biāo)準(zhǔn)傳輸一行視頻需要1 728個(gè)DATACLK時(shí)鐘[7]。
EAV和SAV分別表示一行有效視頻的結(jié)束和開始,EAV/SAV序列由FF-00-00-XX表示,其中XX是狀態(tài)字,表1為EAV/SAV序列字段位表。
F場標(biāo)志:F=0是偶場,F(xiàn)=1是奇場;V視頻有無效標(biāo)志:V=0為有效視頻數(shù)據(jù),V=1為無效視頻數(shù)據(jù);H有效視頻結(jié)束起始標(biāo)志:H=0是SAV,H=1是EAV。
從624行~22行和311行~335行為無效視頻行,此時(shí)V=1;從23行~310行和336行~623行為有效視頻行,此時(shí)V=0。從1行~312行為偶場,此時(shí)F=0;從313行~625行為奇場,此時(shí)F=1。
配置TVP5146使其正確初始化。設(shè)置正常工作模式,視頻選擇輸入口,色度和亮度AGC自動(dòng)增益,視頻輸入為PAL-D制式625行,解碼輸出格式為10 bit 4:2:2(2倍像素時(shí)鐘速率)內(nèi)嵌同步字符,實(shí)際10 bit輸出時(shí)最低2 bit可丟棄。設(shè)置亮度信號范圍為16~235,色度信號范圍為16~240。配置NiosII軟核,設(shè)置CPU類型為經(jīng)濟(jì)型32 bit,CPU時(shí)鐘頻率為100 MHz,復(fù)位向量起始地址為Flash,異常向量起始地址為On-chip-ram,設(shè)置PIO線模擬I2C協(xié)議,用于配置TVP5146,配置Avalon-MM三態(tài)橋用于掛接Flash,配置On-chip-ram為32 KB[8],添加一個(gè)Avalon從設(shè)備。該從設(shè)備為用戶自定義接口,NiosII軟核可以通過該從設(shè)備口實(shí)時(shí)訪問轉(zhuǎn)換后的RGB像素,進(jìn)行圖像處理。
3 視頻圖像數(shù)據(jù)采集
視頻解碼芯片輸出內(nèi)嵌同步字符8 bit視頻數(shù)據(jù),參照解碼芯片輸出DATACLK時(shí)鐘,F(xiàn)PGA采集視頻解碼數(shù)據(jù)。FPGA采集之前先要進(jìn)行圖像裁剪、交織處理。裁剪處理是為了產(chǎn)生640×480的像素面,交織處理即變隔行視頻數(shù)據(jù)為逐行視頻輸出,即兩場圖像交叉嵌入一個(gè)存儲體中,形成一幀。當(dāng)一幀存儲完畢后,切換存儲體,而先前的存儲體內(nèi)容參照系統(tǒng)時(shí)鐘,依次像素處理送DVI編碼芯片進(jìn)行顯示。
3.1 視頻信號采集控制
視頻輸出信號為內(nèi)嵌同步字符8 bit Y:Cb:Cr=4:2:2輸出,本設(shè)計(jì)中視頻信號采集采用狀態(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í)如果收到數(shù)據(jù)0xff,則進(jìn)入State1,其他情況仍然循環(huán)停留。
State1:如果此時(shí)收到數(shù)據(jù)0x00,則進(jìn)入State2;收到其他數(shù)據(jù)則進(jìn)入Error。
State2:如果此時(shí)收到數(shù)據(jù)0x00,則進(jìn)入New page狀態(tài),否則狀態(tài)返回到Wait State。
New page:此時(shí)視頻處于消隱狀態(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,表明下一個(gè)數(shù)據(jù)即視頻圖像數(shù)據(jù),否則返回到Wait State。
Chroma blue:正確有效的數(shù)據(jù),如果此時(shí)接收到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)。
評論