基于SDI接口的實時圖像增強顯示系統
SDI接口(Serial Digital Interface)是直接通過采用數字化的方法對視頻信號進行控制、處理和傳輸,將數字視頻或者音頻信號按有效行場方式通過單芯同軸電纜傳輸,而后將數字信號直接接入后續的處理系統,避免傳統的模擬信號因A/D和D/A轉換帶來的圖像細節和質量損失,也使得設備間的交互變得更加簡單方便。SDI接口傳輸速率高、適應性強、即插即用、對環境要求不高以及應用范圍廣等特點,目前SDI已經作為國內很多戰略靶場軍工圖像設備的一種協議標準。
目前在民用方面,SDI接口作為一種標準視頻傳輸接口已被世界上多數視頻設備廠商接受并采納,涉足數字攝像領域、電視電影及專業的演播室等領域。世界知名的索尼、松下等公司生產的視頻設備均支持SDI接口協議。
1 系統硬件結構
系統結構如圖1所示,主要由Camera Link接口、千兆網接口、大容量SRAM存儲器、FPGA芯片、SDI接口芯片以及SDI接口監視器等構成。這里FPGA是整個系統的核心邏輯,采用XILINX公司的V2系列XC2V4000FFG1152芯片,該芯片有1152個IO引腳,4 MB的系統門單元,120個乘法器,12個數字時鐘管理器,824個用戶可定義IO,120x18 b的塊RAM。豐富的硬件資源給輸入圖像的顯示和增強處理提供了可靠保證。該系統的基本工作過程首先接收Camera Link接口或千兆網接口的圖像數據,經過專用接口轉換芯片將數據轉換成TTL或者CMOS格式,傳送給FPGA,在FPGA內部經過實時圖像處理、協議轉換,輸出符合SDI接口芯片的數據,經過接口芯片的并串轉換,實時輸出SDI標清圖像數據。
這里FPGA的主要工作原理如圖2所示。在該模塊中,系統上電后首先完成對SDI接口芯片工作寄存器的配置,從而完成對其工作模式的選擇;然后需要完成輸入圖像數據接口到接口芯片的行場時鐘協議轉換以及數據到YCbCr格式轉換,這里采用FPGA對雙緩存的控制完成格式轉換,本文應用畫幅縮放、灰度拉伸和偽彩色處理實現圖像增強處理,這在下一節做具體描述。
2 圖像增強算法
2.1 灰度拉伸算法
現在很多相機都基于CameraLink接口和千兆網接口,它們的輸出數據位存在8 b,10 b和14 b等多種情況,本文在系統設計時做了智能處理,通過上位機RS232串口向該系統轉換模塊發送一個命令信號,告知系統輸入端的灰度數據位數和系統輸出端的數據位數,從而使算法實現不同的灰度拉伸。由于一般的監視器只能顯示8 b灰度的圖像數據,SDI信號有8 b和10 b兩個差別。對灰度圖像做一個線性拉伸,不論前端輸入圖像數據是多少位,可以利用該算法將圖像數據映射到8 b和10 b空間,即下面介紹的拉伸處理。這里以輸入圖像數據14 b為例,假設輸入為10 b圖像數據,其宏觀概念是。將14 b數據空間線性映射到10 b空間。假設做灰度拉伸前的灰度值為Yi,則它的灰度取值范圍是[0,16 383];灰度拉伸之后的灰度值為Yi’,它的取值范圍為[0,1 023],則Yi和Yi’直接直接的映射關系為:
式中:Ymax為某幀圖像的灰度最大值;Ymin為某幀圖像的灰度最小值。
如果輸出為8 b圖像數據,則根據需要將14 b灰度轉換到8 b灰度空間,線性映射關系為:
式中:Ymax為某幀圖像的灰度最大值;Ymin為某幀圖像的灰度最小值。
根據上面的公式可看出,在進行拉伸變換時,需要用到基本的乘除法運算,這在Xilinx公司FPGA內部實現起來較困難,最為常用的做法是調用FPGA內部的乘除法IP核,這樣可以極大提高FPGA的工作效率。根據上面的公式,若想實現算法,還需要知道當前幀圖像數據的灰度最小值和最大值。FPGA工作是以時鐘為基礎的,具有實時性,如果想獲得當前幀的灰度最值,需要對圖像數據進行緩存處理,然后二次提取最值。在程序實現上,為了簡便起見,在此利用前一幀數據的灰度最大值和最小值來代替當前幀的最大值最小值。這樣對當前幀遍歷求取最值,然后應用到下一幀圖像中去,這里認為前后幀相關性比較大,不會對算法造成很大影響。
評論