基于FPGA的數(shù)字視頻轉(zhuǎn)換接口的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
本文從實(shí)際應(yīng)用的角度出發(fā),采用FPGA作為主控芯片,設(shè)計(jì)了一款數(shù)字視頻接口轉(zhuǎn)換設(shè)備,該設(shè)備針對(duì)于MT9M111這款數(shù)字圖像傳感器產(chǎn)生的ITU-R BT.656格式數(shù)據(jù)進(jìn)行采集、色彩空間變換、分辨率轉(zhuǎn)換等操作,完成了從ITU-R BT.656格式數(shù)據(jù)到DVI格式數(shù)據(jù)的轉(zhuǎn)換,使得MT9M111數(shù)字圖像傳感器的BT656數(shù)據(jù)格式圖像能夠以1280×960(60Hz)和1280×1024(60Hz)兩種顯示格式在DVI-I接口的顯示器上顯示,并且還具有圖像靜止功能,在系統(tǒng)空閑時(shí)的待機(jī)狀態(tài)實(shí)現(xiàn)了整機(jī)的低功耗,適用于使用移動(dòng)設(shè)備的工業(yè)現(xiàn)場(chǎng)。
整體方案設(shè)計(jì)
現(xiàn)實(shí)景物的采集與顯示過(guò)程如圖1所示。圖像傳感器MT9M111采集到現(xiàn)實(shí)景物后,將生成的ITU-R BT.656數(shù)據(jù)流由ITU數(shù)據(jù)輸出端口發(fā)送給視頻轉(zhuǎn)換接口。視頻轉(zhuǎn)換接口將ITU數(shù)據(jù)輸入端口送來(lái)的ITU-R BT.656數(shù)據(jù)流轉(zhuǎn)換成TMDS數(shù)據(jù)流發(fā)送,通過(guò)DVI-I端口發(fā)送給顯示終端顯示。本設(shè)計(jì)方案中,MT9M111輸出圖像的分辨率為1280×960。
圖1 系統(tǒng)采集與顯示過(guò)程
在現(xiàn)實(shí)景物的采集與顯示過(guò)程中,視頻轉(zhuǎn)換接口功能的實(shí)現(xiàn)通過(guò)以下步驟來(lái)完成:
1) 對(duì)收到的ITU-R BT.ITU656數(shù)據(jù)流解交織;
2) 對(duì)解交織后的數(shù)據(jù)流進(jìn)行色彩空間轉(zhuǎn)換;
3) 將轉(zhuǎn)換后的每個(gè)像素的RGB值寫(xiě)入存儲(chǔ)器中;
4) 從存儲(chǔ)器中讀出像素的RGB值,并將其轉(zhuǎn)換成TMDS碼元序列;
5) 從存儲(chǔ)器中讀出像素的RGB值,并將其轉(zhuǎn)換成VGA模擬信號(hào)值。
硬件構(gòu)架設(shè)計(jì)
系統(tǒng)的硬件構(gòu)架框圖如圖2所示。圖像傳感器輸出的ITU信號(hào)(包括YCbCr數(shù)據(jù)流、行場(chǎng)同步信號(hào)和像素時(shí)鐘)經(jīng)ITU輸入接口送入FPGA主控芯片。FPGA主控芯片對(duì)ITU信號(hào)進(jìn)行解交織和色彩空間轉(zhuǎn)換,再將轉(zhuǎn)換后的每個(gè)像素的RGB值寫(xiě)入SDRAM存儲(chǔ)器。再由FPGA主控芯片按照輸出分辨率的要求從SDRAM存儲(chǔ)器中讀出像素的RGB值,并按照VGA的時(shí)序標(biāo)準(zhǔn),將像素的RGB值發(fā)送給TMDS發(fā)送芯片和D/A芯片,由TMDS發(fā)送芯片提供視頻數(shù)據(jù)的數(shù)字通道,由D/A芯片提供視頻數(shù)據(jù)的模擬通道,共同匯集到DVI-I輸出接口,傳送到數(shù)字顯示器或模擬顯示器上顯示。
圖2 硬件構(gòu)架框圖
輸出圖像的分辨率要求FPGA與TMDS發(fā)送芯片之間傳送數(shù)據(jù)的帶寬在100M(像素/秒)以上,因此要求FPGA的速度足夠快。同時(shí)由于FPGA與外圍器件之間的互聯(lián)比較多,因此要求FPGA的引腳數(shù)足夠多。同時(shí)由于晶振提供的時(shí)鐘頻率為50MHz,滿(mǎn)足不了100M以上的傳輸速度,因此需要FPGA內(nèi)部帶有鎖相環(huán)。另外,為了實(shí)現(xiàn)系統(tǒng)脫機(jī)工作,要求FPGA支持配置芯片。最后,考慮到系統(tǒng)占用的面積和以后版本的升級(jí),要求FPGA的內(nèi)部資源盡量豐富。為此,系統(tǒng)最終選用了Altera公司Cyclone系列FPGA。
考慮到視頻數(shù)據(jù)的存儲(chǔ)和顯示是同時(shí)進(jìn)行的,而SDRAM存儲(chǔ)器是單端口器件,數(shù)據(jù)的寫(xiě)入和讀出不能同時(shí)進(jìn)行,故需要兩塊SDRAM同時(shí)進(jìn)行乒乓操作來(lái)完成數(shù)據(jù)的連續(xù)讀寫(xiě)。最終選用了MICron公司的型號(hào)為MT48LC2M32B2TG-6的SDRAM存儲(chǔ)器;TMDS發(fā)送芯片選用的是Silicon Image公司的SiI164CT64型號(hào)。由于輸出圖像的分辨率要求FPGA與TMDS發(fā)送芯片之間傳送數(shù)據(jù)的帶寬在100M以上,這一數(shù)據(jù)流同時(shí)又要送入D/A芯片完成數(shù)模轉(zhuǎn)換,因此要求D/A芯片的轉(zhuǎn)換速率在100MHz以上。同時(shí)由于R、G、B的數(shù)據(jù)寬度都為8位,因此需要選用專(zhuān)用的圖像D/A芯片,它需要具有R、G、B三路數(shù)據(jù)通道,每路的寬度至少為8位。根據(jù)以上要求,系統(tǒng)最終選定CSEMIC公司的CSV7123型號(hào)的圖像D/A芯片。
FPGA功能設(shè)計(jì)
FPGA作為系統(tǒng)的主控芯片,是軟件設(shè)計(jì)的核心。根據(jù)整體方案的設(shè)計(jì)思路,F(xiàn)PGA主控芯片的工作過(guò)程為:首先接收由圖像傳感器送來(lái)的ITU-R BT.656格式的視頻數(shù)據(jù)流,經(jīng)過(guò)解交織操作,將像素?cái)?shù)據(jù)流中交織在一起的串行YCbCr值解成獨(dú)立的并行YCbCr值。然后對(duì)解交織的YCbCr值進(jìn)行色彩空間轉(zhuǎn)換,轉(zhuǎn)換成對(duì)應(yīng)的RGB值。接著將此RGB值存入一塊SDRAM存儲(chǔ)器。與此同時(shí),從另一塊SDRAM存儲(chǔ)器中讀出像素的RGB值,并發(fā)送給TMDS發(fā)送芯片和D/A芯片,經(jīng)過(guò)數(shù)字通道和模擬通道后,傳送到DVI顯示器或VGA顯示器上顯示。根據(jù)FPGA主控芯片的工作過(guò)程,設(shè)計(jì)的軟件功能框圖如圖3所示。
圖3 軟件功能框圖
圖3中FPGA內(nèi)部的工作時(shí)鐘有兩個(gè),以圖中的虛線(xiàn)為界,虛線(xiàn)左側(cè)部分使用的時(shí)鐘為圖像傳感器的54MHz像素時(shí)鐘;虛線(xiàn)右側(cè)使用的時(shí)鐘是經(jīng)過(guò)鎖相環(huán)將晶振的50MHz時(shí)鐘倍頻成108MHz以后的時(shí)鐘,其中108MHz的時(shí)鐘是由輸出圖像的分辨率所決定的。兩個(gè)時(shí)鐘域通過(guò)異步FIFO相連。整個(gè)系統(tǒng)共分成6個(gè)模塊:解交織模塊、YCbCr轉(zhuǎn)RGB模塊、異步FIFO模塊、乒乓操作模塊、SDRAM控制器模塊和VGA發(fā)送模塊。此外,系統(tǒng)還可實(shí)現(xiàn)圖像靜止、系統(tǒng)待機(jī)、模式選擇等功能。
圖像顯示效果
圖4是輸出圖像分辨率為1280×960模式下的顯示效果,圖中顯示器檢測(cè)到的視頻圖像分辨率為1280×960
圖4 1280×960模式下的顯示效果