孫軍文,肖金明,王中訓
(煙臺大學 光電信息科學技術學院,山東 煙臺 264005)
一般視頻處理后的實時顯示終端不能脫離PC機的束縛,而且數字圖像傳感器輸出的圖像幀率也比較低,分辨率也隨著半導體行業的發展有了很大的提高,因此為了輸出的圖像能直接在VGA顯示器上顯示,需要對圖像進行幀率提升、彩色空間轉換等處理。FPGA器件具有可重復編程的靈活性以及并行處理能力,并且隨著微處理器、專用硬件單元、DSP算法以及IP核的嵌入使其功能越來越強大。本系統的設計是基于Altera公司的EP2S60系列的開發板,板上集成兩片SDRAM存儲芯片、視頻輸入接口和VGA輸出接口[1]。
設計的實時視頻信號處理顯示平臺總框圖如圖1所示。

圖1 實時視頻信號處理顯示平臺總框圖Fig.1 Diagram of real-time video signal processing and display platform
CCD數字圖像傳感器[2]輸出分辨率為 720×576,幀率為25 Hz的8位YCbCr彩色空間信號,進入FPGA后,FPGA內部的圖像處理模塊將視頻信號從YCbCr信號轉換成RGB空間信號,同時分辨率提升到1024*768,存儲控制模塊將幀數據存入SDRAM作為緩存,采用“乒乓”存儲機制,然后通過同步VGA顯示控制模塊產生的60 Hz1024×768的行、場掃描時序把每幀圖像的幀頻從25 Hz提高到60 Hz并輸出,經過DA和VGA接口后實時的顯示在VGA顯示器上。
圖像處理部分內部功能模塊如圖2所示。

圖2 圖像處理部分內部功能框圖Fig.2 Diagram of image processing part of internal function
輸入的 8 位圖像信號以 YCbCr(4:2:2)格式進入輸入緩存FIFO,然后通過格式轉換模塊將8位的YCbCr信號轉換為16位的YCbCr信號,方法為在連續兩個時鐘下讀取兩次8位的數據然后合并到一個16位寄存器中,接著將16位的YCbCr(4:2:2) 格式信號采用臨近差值算法生成 24 位的 YCbCr(4:4:4)格式信號,再將24位的YCbCr格式信號根據CCIR-601標準轉換到 RGB(8:8:8)彩色空間,數字 YCbCr彩色空間到 RGB彩色空間轉換的公式[4]為:

其中 Y 的取值范圍是 (16,240),Cb、Cr的取值范圍是(16,235),所有運算均調用FPGA內部自帶的乘法和實現。最后將24位的RGB彩色空間信號輸出到緩存FIFO,供SDRAM存儲使用[7]。圖像處理模塊設計如圖3所示。

圖3 圖像處理模塊設計原理圖Fig.3 Diagram of image processing module
存儲控制部分內部功能模塊如圖4所示。

圖4 存儲控制部分內部功能框圖Fig.4 Diagram of storage control part
寫SDRAM存儲模塊判斷緩存FIFO中的RGB信號即像素點數據長度滿足720個時,向SDRAM控制器發出啟動存儲請求,然后SDRAM控制器從緩存FIFO中依次讀取數據存入片外的SDRAM中,存576次后即為一幀圖像的數據,在SDRAM的2個Bank中各存入一幀圖像數據,采用乒乓存儲機制進行對幀數據的讀出操作。由于采集到的圖像幀頻為25 Hz,要提高到VGA顯示的刷新頻率60 Hz,因此時序發生器要控制讀SDRAM存儲模塊對SDRAM的幀數據進行讀出,平均每幀圖像數據要讀取的次數為2.4次,規定每5幀為一次循環,這 5 幀數據共讀取 12 次,比例為 2∶3∶2∶3∶2,同時,每幀的數據分576行次讀出打入緩存FIFO,但每次均寫入3行,此處是為后級幀放大做準備,只要FIFO中的數據為空時,就立刻打入幀圖像的下3行數據。SDRAM控制器模塊設計如圖5所示。

圖5 SDRAM控制器模塊設計原理圖Fig.5 Diagram of SDRAM controller module
VGA顯示控制部分內部功能模塊如圖6所示。

圖6 VGA顯示控制部分內部功能Fig.6 Internal functions of VGA display and control
VGA顯示控制模塊主要是產生滿足分辨率為1 024×768的行頻和場頻,因此還要對720×576的分辨率進行放大,采用的方法是選擇2個互質的整數m和n,使其比值m/n與給定的放大比例盡可能接近。 720×7≈1 024×5,576×4≈768×3,因此水平方向的5個原始像素點放大為7個新像素點,垂直方向的3個原始像素點放大為4個新像素點,所以前一級每次存入緩存有3行數據,水平和垂直方向上的像素放大函數如下所示。



其中g表示原始輸入的像素數據,f表示放大處理后輸出的新像素數據。 分辨率提高后的數據再寫入下一級緩存FIFO,然后依次讀入VGA控制模塊,在像素時鐘的同步下輸出給DA進而通過VGA接口顯示在屏幕上。VGA顯示控制模塊設計如圖7所示。

圖7 VGA顯示控制模塊設計原理圖Fig.7 Diagram of VGA display and control module
圖8所示為本系統采集處理后分辨率為1 024×768的視頻圖像截圖。可以看出經FPGA處理后的圖像比較清晰[9],可以滿足一般的使用需求。

圖8 視頻輸出效果圖Fig.8 Result of video output
本項目設計的基于FPGA的實時視頻信號處理平臺實現了輸入圖像的格式轉換、彩色空間轉換、幀率提高和像素放大等功能,整個數據流處理過程均在100 MHz的同步時鐘下完成,達到了視頻采集顯示的實時性,且脫離了原始PC機的束縛,實現了系統的小型化,便于推廣和應用。但是本設計也存在一些可以優化的方面,例如可以將圖像輸出分辨率設置成多種模式,通過外部按鍵根據用戶使用需求來控制分辨率的大小,還可以將視頻輸入端改成多通道輸入,對不同區域的視頻信息進行切換顯示或同時顯示。
[1]郭祥東.基于FPGA的視頻圖像采集系統的設計[J].九江學院學報,2009(6):15-18.
GUO Xiang-dong.Design of video capture system based on FPGA[J].Joumal of Jiujiang University,2009(6):15-18.
[2]米本和也,陳榕庭.CCD/CMOS圖像傳感器基礎與應用[M].北京:科學出版社,2006.
[3]趙雅興.FPGA原理、設計與應用[M].天津:天津大學出版社,1999.
[4]朱虹.數字圖像處理基礎[M].北京:科學出版社,2005.
[5]Rafael C.Gonzalez&RichardE.Woods.數字圖像處理 [M].2版.北京:電子工業出版社,2003.
[6]吳繼華,王誠.Altera FPGACPLD設計[M].北京:人民郵電出版社,2005.
[7]陳忠平.基于Quartus II的FPGACPLD設計與實踐 [M].北京:電子工業出版社,2010.
[8]夏宇聞.數字系統設計—Verilog實現[M].北京:高等教育出版社,2006.
[9]焦賓,呂霞付,李愿,等.基于CPLD的嵌入式真彩色液晶顯示卡的設計[J].工業儀表與自動化裝置,2012(2):55-58.
JIAO Bin,Lv Xia-fu,LI Yuan,et al.The design of the embedded true color LCD display card based on CPLD[J].Industrial Instrumentation&Automation,2012(2):55-58.