基于FPGA的實(shí)時(shí)視頻信號(hào)處理平臺(tái)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:提出一種基于FPGA的實(shí)時(shí)視頻信號(hào)處理平臺(tái)的設(shè)計(jì)方法,該系統(tǒng)接收低幀率數(shù)字YCbCr視頻信號(hào),對(duì)接收的視頻信號(hào)進(jìn)行格式和彩色空間轉(zhuǎn)換、像素和,利用片外SDRAM存儲(chǔ)器作為幀緩存且通過(guò)時(shí)序控制器進(jìn)行幀率提高,最后通過(guò)VGA控制模塊對(duì)圖像信號(hào)進(jìn)行像素放大并在VGA顯示器上實(shí)時(shí)顯示。整個(gè)設(shè)計(jì)使用Verilog HDL語(yǔ)言實(shí)現(xiàn),采用Altera公司的EP2S60F1020C3N芯片作為核心器件并對(duì)功能進(jìn)行了驗(yàn)證。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程邏輯門陣列;同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器;圖像處理;視頻圖形陣列
一般視頻處理后的實(shí)時(shí)顯示終端不能脫離PC機(jī)的束縛,而且數(shù)字圖像傳感器輸出的圖像幀率也比較低,分辨率也隨著半導(dǎo)體行業(yè)的發(fā)展有了很大的提高,因此為了輸出的圖像能直接在VGA顯示器上顯示,需要對(duì)圖像進(jìn)行幀率提升、彩色空間轉(zhuǎn)換等處理。FPGA器件具有可重復(fù)編程的靈活性以及并行處理能力,并且隨著微處理器、專用硬件單元、DSP算法以及IP核的嵌入使其功能越來(lái)越強(qiáng)大。本系統(tǒng)的設(shè)計(jì)是基于Altera公司的EP2S60系列的開(kāi)發(fā)板,板上集成兩片SDRAM存儲(chǔ)芯片、視頻輸入接口和VGA輸出接口。
1 系統(tǒng)方案
設(shè)計(jì)的實(shí)時(shí)視頻信號(hào)處理顯示平臺(tái)總框圖如圖1所示。
CCD數(shù)字圖像傳感器口I輸出分辨率為720×576,幀率為25 Hz的8位YChCr彩色空間信號(hào),進(jìn)入FPCA后,F(xiàn)PGA內(nèi)部的圖像處理模塊將視頻信號(hào)從YChCr信號(hào)轉(zhuǎn)換成RGB空間信號(hào),同時(shí)分辨率提升到1024*768,存儲(chǔ)控制模塊將幀數(shù)據(jù)存入SDRAM作為緩存,采用“乒乓”存儲(chǔ)機(jī)制,然后通過(guò)同步VGA顯示控制模塊產(chǎn)生的60 Hz1024×768的行、場(chǎng)掃描時(shí)序把每幀圖像的幀頻從25 Hz提高到60 Hz并輸出,經(jīng)過(guò)DA和VGA接口后實(shí)時(shí)的顯示在VGA顯示器上。
2 系統(tǒng)內(nèi)部模塊設(shè)計(jì)
2.1 圖像處理模塊
圖像處理部分內(nèi)部功能模塊如圖2所示。
輸入的8位圖像信號(hào)以YCbCr(4:2:2)格式進(jìn)入輸入緩存FIFO,然后通過(guò)格式轉(zhuǎn)換模塊將8位的YCbCr信號(hào)轉(zhuǎn)換為16位的YCbCr信號(hào),方法為在連續(xù)兩個(gè)時(shí)鐘下讀取兩次8位的數(shù)據(jù)然后合并到一個(gè)16位寄存器中,接著將16位的YCbCr(4:2:2)格式信號(hào)采用臨近差值算法生成24位的YCbCr(4:4:4)格式信號(hào),再將24位的YCbCr格式信號(hào)根據(jù)CCIR-601標(biāo)準(zhǔn)轉(zhuǎn)換到RGB(8:8:8)彩色空間,數(shù)字YCbCr彩色空間到RGB
彩色空間轉(zhuǎn)換的公式為:
其中Y的取值范圍是(16,240),Cb、Cr的取值范圍是(16,235),所有運(yùn)算均調(diào)用FPGA內(nèi)部自帶的乘法和實(shí)現(xiàn)。最后將24位的RGB彩色空間信號(hào)輸出到緩存FIFO,供SDRAM存儲(chǔ)使用。圖像處理模塊設(shè)計(jì)如圖3所示。
2.2 存儲(chǔ)控制模塊
存儲(chǔ)控制部分內(nèi)部功能模塊如圖4所示。
寫SDRAM存儲(chǔ)模塊判斷緩存FIFO中的RGB信號(hào)即像素點(diǎn)數(shù)據(jù)長(zhǎng)度滿足720個(gè)時(shí),向SDRAM控制器發(fā)出啟動(dòng)存儲(chǔ)請(qǐng)求,然后SDRAM控制器從緩存FIFO中依次讀取數(shù)據(jù)存入片外的SDRAM中,存576次后即為一幀圖像的數(shù)據(jù),在SDRAM的2個(gè)Bank中各存入一幀圖像數(shù)據(jù),采用乒乓存儲(chǔ)機(jī)制進(jìn)行對(duì)幀數(shù)據(jù)的讀出操作。由于采集到的圖像幀頻為25 Hz,要提高到VGA顯示的刷新頻率60 Hz,因此時(shí)序發(fā)生器要控制讀SDRAM存儲(chǔ)模塊對(duì)SDRAM的幀數(shù)據(jù)進(jìn)行讀出,平均每幀圖像數(shù)據(jù)要讀取的次數(shù)為2.4次,規(guī)定每5幀為一次循環(huán),這5幀數(shù)據(jù)共讀取12次,比例為2:3:2:3:2,同時(shí),每幀的數(shù)據(jù)分576行次讀出打入緩存FIFO,但每次均寫入3行,此處是為后級(jí)幀放大做準(zhǔn)備,只要FIFO中的數(shù)據(jù)為空時(shí),就立刻打入幀圖像的下3行數(shù)據(jù)。SDRAM控制器模塊設(shè)計(jì)如圖5所示。
2.3 VGA顯示控制模塊
VGA顯示控制部分內(nèi)部功能模塊如圖6所示。
VGA顯示控制模塊主要是產(chǎn)生滿足分辨率為1 024x768的行頻和場(chǎng)頻,因此還要對(duì)720x576的分辨率進(jìn)行放大,采用的方法是選擇2個(gè)互質(zhì)的整數(shù)m和n,使其比值m/n與給定的放大比例盡可能接近。720x7≈1 024x5,576x4≈768x3,因此水平方向的5個(gè)原始像素點(diǎn)放大為7個(gè)新像素點(diǎn),垂直方向的3個(gè)原始像素點(diǎn)放大為4個(gè)新像素點(diǎn),所以前一級(jí)每次存入緩存有3行數(shù)據(jù),水平和垂直方向上的像素放大函數(shù)如下所示。
水平:f0=g0
f1=2/7 g0+5/7 g1
f2=4/7 g1+3/7 g2
f3=6/7 g2+1/7 g3
f4=1/7 g2+6/7 g3
f5=3/7 g3=4/7 g4
f6=6/7 g4+1/7 g5
垂直:f0=g0
f1=1/4 g0+3/4 g1
f2=2/4 g1+2/4 g2
f3=3/4 g2+1/4 g3
其中g(shù)表示原始輸入的像素?cái)?shù)據(jù),f表示放大處理后輸出的新像素?cái)?shù)據(jù)。分辨率提高后的數(shù)據(jù)再寫入下一級(jí)緩存FIFO,然后依次讀入VGA控制模塊,在像素時(shí)鐘的同步下輸出給DA進(jìn)而通過(guò)VGA接口顯示在屏幕上。VGA顯示控制模塊設(shè)計(jì)如圖7所示。
2.4 視頻輸出效果圖
圖8所示為本系統(tǒng)采集處理后分辨率為1 024x768的視頻圖像截圖??梢钥闯鼋?jīng)FPGA處理后的圖像比較清晰,可以滿足一般的使用需求。
3 結(jié)論
本項(xiàng)目設(shè)計(jì)的基于FPGA的實(shí)時(shí)視頻信號(hào)處理平臺(tái)實(shí)現(xiàn)了輸入圖像的格式轉(zhuǎn)換、彩色空間轉(zhuǎn)換、幀率提高和像素放大等功能,整個(gè)數(shù)據(jù)流處理過(guò)程均在100 MHz的同步時(shí)鐘下完成,達(dá)到了視頻采集顯示的實(shí)時(shí)性,且脫離了原始PC機(jī)的束縛,實(shí)現(xiàn)了系統(tǒng)的小型化,便于推廣和應(yīng)用。但是本設(shè)計(jì)也存在一些可以優(yōu)化的方面,例如可以將圖像輸出分辨率設(shè)置成多種模式,通過(guò)外部按鍵根據(jù)用戶使用需求來(lái)控制分辨率的大小,還可以將視頻輸入端改成多通道輸入,對(duì)不同區(qū)域的視頻信息進(jìn)行切換顯示或同時(shí)顯示。