謝緒煜,龍 彬,周 軍,胡 彬
(長沙湘計海盾科技有限公司,湖南 長沙 410100)
現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)技術以其可靠性高、速度快及設計靈活的特點廣泛應用于圖像處理領域。目前在民用領域,液晶顯示器或者4K電視機廠商常用驅動4K eDP接口液晶面板的方案,主要是基于晨星MSTAR或者Realtek、國內海思及瑞芯微等圖像處理芯片設計的,而該方案靈活性較低,如需要增加新的視頻圖像接口或者改變某一項圖像處理功能較為困難。例如,在主顯示屏幕eDP顯示畫面基礎上再增加一個副屏幕eDP環出顯示或者VGA環出顯示不一樣的分辨率圖像就不能用上述方案來實現,局限性較大,且該方案視頻接口切換畫面顯示較慢,多達10 s鐘的時間才能完成畫面切換,無法做到無縫切換[1-4]。針對上述情況,介紹一種基于FPGA將4K HDMI視頻信號轉為eDP接口信號的方法。
根據設計要求,本系統利用高速FPGA將HDMI視頻信號通過圖像處理后轉為eDP的接口信號。系統中的FPGA內部采用模塊化設計思路,例化的模塊包括HDMI RX模塊、MicroBlaze軟核模塊、scaler縮放模塊、FIFO模塊、DDR3總線控制模塊、DDR3的IP核模塊、4K圖像數據融合模塊、4K高清時序控制模塊以及eDP TX模塊。其中,HDMI RX模塊從PC主機接收視頻圖像,對4K HDMI信號進行解碼,并將HDMI視頻圖像轉換為通用的圖像數據處理RGB格式;scaler縮放模塊采用雙線性插值算法將分辨率低于3 840*2 160的RGB格式的視頻圖像分辨率放大至4K,縮放后的圖像數據用高速FIFO模塊保存;FIFO模塊的保存數據達到預設像素點數量時,按行將當前保存的像素點寫入DDR3 SDRAM;4K圖像數據融合模塊采用乒乓操作方式從DDR3 SDRAM中讀取圖像數據進行預處理,包括對比度調節、亮度調節及圖像降噪處理;處理完成后由4K高清時序控制模塊轉換為eDP信號,最終由eDP TX硬件接口發送至4K高清顯示器顯示。本設計可使4K高清液晶顯示器的顯示速度加快,系統總體框圖如圖1所示。

圖1 實現4K HDMI視頻轉eDP視頻接口原理框圖
本設計中采用的高速FPGA為美國Xilinx公司的生產的kinetx-7系列XC7K325T-2FFG900I,該系列FPGA采用28 nm工藝生產,內部含有豐富的邏輯資源,包括高速GTX接口、DDR3高速接口等,可以滿足4K的高速圖像處理要求。eDP驅動器采用SN65DP159RZ芯片來增強其傳輸數據的能力,以適應高速數據長線傳輸要求,避免數據時鐘抖動現象[5-6]。
HDMI RX硬件接口與PC主機通過HDMI線纜連接,HDMI RX硬件接口由FPGA內部的MicroBlaze軟核模塊控制,從PC主機接收HDMI視頻圖像數據并做處理。在本設計中,PC電腦主機應能輸出分辨率為3 840*2 160的4K HDMI視頻圖像,若PC主機不能輸出4K圖像分辨率,也可以通過縮放模塊將其放大為4K圖像信號。為了改善信號的傳輸質量,在HDMI RX模塊的HDMI RX硬件接口的前端增加了視頻圖像信號調理電路,具體的信號調理電路如圖2所示,PC主機與HDMI RX硬件接口之間上拉串聯的50 Ω電阻和20 nH電感,然后在上拉點與HDMI RX硬件接口之間設置0.1 uF電容。通過該信號調理電路對PC主機傳輸的HDMI視頻圖像數據進行抗干擾處理,從而使HDMI RX模塊接收到的HDMI視頻圖像數據質量更高,避免出現閃屏和信號出現噪點的現象。HDMI接口的EDID信息保存在硬件電路的EEPROM芯片中,EEPROM 芯片選用24LC02B。當PC主機檢測到HDMI熱插拔HPD信號后,通過IIC管腳的SCL和SDA管腳讀取EDID信息,以確定其輸出的圖像分辨率大小。

圖2 HDMI信號調理與FPGA GTX連接硬件電路圖
HDMI RX模塊從PC主機接收到的HDMI信號包括像素時鐘hdmi_clk、像素點有效指示信號hdmi_de、行同步信號hdmi_hsync、場同步信號hdmi_vsync以及像素點24 bit的hdmi_rgb[23:0]數據;對于分辨率為3 840*2 160的視頻圖像無需進行縮放處理,對于分辨率小于3 840*2 160的圖像進行scaler模塊放大成3 840*2 160的分辨率;縮放后的數據存入FIFO模塊,由于DDR3程序存入圖像按行存儲,因此當FIFO模塊的數據計數值fifo_data_count計到大小為3 840個像素點的時候,表明一行圖像數據已經緩存完畢。邏輯模塊調用FPGA內部的DDR3 IP核模塊,將一行大小為3 840的像素點數據寫入DDR3 SDRAM存儲芯片中。4K圖像數據融合模塊讀取DDR3 SDRAM中的圖像數據并經過圖像增強、去噪等處理之后發送至4K高清時序控制模塊,4K高清時序控制模塊將數據寫入eDP TX IP核,最終調用eDP TX模塊內部的高速接口將圖像數據發送到高清顯示器,FPGA內部的數據處理流程如圖3所示。

圖3 FPGA內部圖像數據處理流程圖
DDR3模塊讀寫視頻圖像數據采用AXI總線控制方式。AXI總線控制方式具有讀寫速度快、操作規范的特點。該設計中,DDR3 IP核設置的工作主頻為667 MHz而沒有設置成800 MHz,目的是為了降低功耗及增加可靠性。AXI_Data_Width的位寬設置為512 bit,經過計算得出一共需要4片16 bit數據位的DDR3 SDRAM組合才能滿足數據流帶寬要求,AXI總線為512 bit的數據位寬需要16個hdmi_rgb[23:0]像素點來拼接,拼接的原則為:先到達的像素點存于低位,晚到的像素點存于高位。1行3 840個像素點的數據可以拼接成240個512 bit的AXI總線數據,數據拼接原理如圖4所示。

圖4 數據拼接原理圖
雙線性插值算法廣泛應用于顯示器圖像處理領域,可以將圖像的分辨率放大來適應顯示屏的顯示要求,核心思想是在相鄰的上下左右4個像素點插入1個像素點,其計算方法為:

式中:f(i+u,j+v)可由原圖像中4個像素坐標為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所 對應的像素值決定;u、v為浮點坐標的小數部分,通過計算得到,取值范圍為[0,1)區間的浮點數。
scaler縮放模塊采用雙線性插值算法實現,其功能是將任意分辨率的輸入圖像轉變為4K圖像,實現圖像插值放大。
雙線性插值模塊用vivado HLS軟件進行開發設計。vivado HLS工具可以將C語言高級綜合為硬件,極大地節約了設計人員的開發時間。HLS軟件部分代碼如下所示,生成的verilog硬件代碼如圖5所示。

圖5 HLS生成的verilog硬件代碼圖
for(col=1;col<=destW;col++){
srcCol=((float)col)*colRatio;
k=(unsigned int)(srcCol);
u=srcCol-k;
coffiecent0=(1.0-t)*(1.0-u);
coffiecent1=(1.0-t)*u;
coffiecent2=(t)*(1.0-u);
coffiecent3=t*u;
src_pixlel_coor1=getClip(k,srcW,1);
src_pixlel_coor3=getClip((k+1),srcW,1);
}
eDP是一種低電壓擺幅的差分信號技術,它使得信號能在長距離的差分PCB線對或平衡線纜上以幾百兆赫茲的速率傳輸,視頻數據通過eDP接口標準傳輸時有特定的數據格式。本設計中,eDP協議包含在eDP IP核中,因此要實現eDP接口發送4K高清視頻數據功能,需使用官方推薦的eDP IP核,該IP核中有一些參數如鏈路速度、帶寬及數據位寬等需要C語言軟件配置才能更好管理及使用。由于需要配置eDP IP核的參數較多,為了降低配置管理的難度,本文調用了FPGA自帶的MicroBlaze軟核對eDP IP硬核參數進行配置。MicroBlaze軟核具有嵌入式軟件管理功能,MicroBlaze核與eDP TX IP硬核的例化模塊如圖6所示。lnk_clk_p和lnk_clk_n分別為eDP IP核差分輸入時鐘的正負端口,此處設置輸入的時鐘頻率為135 MHz;lnk_tx_lane_p[3:0]和lnk_tx_lane_n[3:0]分別為eDP IP核傳輸的差分數據的正負端口,若要傳輸4K的分辨率要同時調用4對lnk_tx_lane;tx_hpd為PC主機檢測的熱插拔信號;aux_tx_io_p和aux_tx_io_n分別為eDP輔助信號通道,用來與顯示器的TCON板之間的信號握手和EDID信息讀取。

圖6 例化的eDP模塊圖
4K高清時序控制模塊根據自身產生的有關eDP模塊的控制時序,將數據預處理得到的4K視頻圖像數據轉換為eDP信號,進而將eDP信號寫入eDP TX模塊。MicroBlaze軟核模塊控制eDP TX模塊,使eDP TX模塊通過eDP TX硬件接口將視頻圖像數據至4K高清顯示器。MicroBlaze軟核模塊控制eDP TX硬核模塊的軟件控制流程如圖7所示。首先初始化MicroBlaze軟核模塊與eDP TX模塊之間的AXI總線,接收來自4K高清顯示器的EDID信息,通過接收鏈路信息選擇對應的lane通道和link rate速度;eDP TX模塊使用確定的lane通道并以確定的link rate速度,通過eDP TX硬件接口將視頻圖像數據至4K高清顯示器。

圖7 eDP軟件處理流程圖
在vivado開發軟件生成的工程導出硬件eDP_wrapper.hdf文件后,利用SDK軟件開發工具導入硬件eDP_wrapper.hdf文件配置信息;根據硬件信息生成軟件工程,該軟件工程包含BSP底層驅動,通過編寫MicroBlaze軟核C語言軟件程序來控制eDP參數的配置與發送數據的過程管理,可以實現4K高清圖像數據的發送[7]。
對基于FPGA的4K HDMI轉eDP視頻接口進行設計驗證時,需要將PC主機視頻顯卡發送的分辨率為3 840*2 160的視頻圖像通過HDMI接口線纜連接到4K HDMI轉eDP視頻接口系統電路板,再從HDMI轉eDP視頻接口系統電路板用eDP線連接到4K高清顯示器進行顯示。測試結果如圖8所示,在高清顯示器上顯示1路PC主機桌面圖像,桌面上顯示輸入的分辨率信息為3 840*2 160,可見設計滿足1路圖像接收機顯示要求[8]。

圖8 分辨率為3 840*2 160的HDMI圖像畫面
試驗結果表明,基于FPGA的4K HDMI轉eDP視頻接口系統能滿足4K高清顯示技術要求,具有顯示速度快、可以無縫切換的特點,可以廣泛應用于自主可控設計領域如軍工或者航天等。本文研究對于高速4K高清顯示器或者4K電視機的設計具有一定的參考意義。