《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SoPC的OSD控制器設計
基于SoPC的OSD控制器設計
2014年電子技術應用第6期
喻金華,,符浩敏,,肖鐵軍
1.南京視威電子科技股份有限公司,江蘇 南京210038; 2.江蘇大學 計算機科學與通信工程學院,,
摘要: OSD系統(tǒng)是人機交互的橋梁,,為滿足市場需求及迎合當前高清視頻發(fā)展趨勢,,應用一種自定義OSD界面布局方法和一種改進型二步索引算法,,并對透明度混疊算法進行了變換及硬件實現(xiàn),以軟硬件協(xié)同的方式實現(xiàn)自定義OSD功能,,具有界面控制靈活及低硬件資源消耗等特點,。本設計通過以Xilinx公司XC7K325T-2FFG900為核心芯片的Kintex7 FPGA開發(fā)板進行了驗證,結(jié)果表明該設計方案具有可行性,。
中圖分類號: TP302
文獻標識碼: A
文章編號: 0258-7998(2014)06-0010-04
Design of OSD controller based on SoPC
Yu Jinhua1,,F(xiàn)u Haomin2,Xiao Tiejun2
1.Nanjing SWIT Electronics Co., Ltd., Nanjing 210038,,China,;2.School of Computer Science and Telecommunications Engineering, Jiangsu University, Zhenjiang 212013,China
Abstract: The OSD system is the interactive bridge of the user and display terminal. So in order to meet market demand and the current high-definition video developmental trends,,a custom interface layout method and a two-step-index algorithm for OSD are applied, and the alpha overlay algorithm is converted to make it suitable for FPGA hardware implementation. The design achieves custom OSD function in a software-hardware co-operating way, which has the features like flexible to control and low resource consumption. Simulation is done on Xilinx′s Kintex7 FPGA development board,,in which the core-chip is XC7K325T-2FFG900. The result proves that the design is available.
Key words : OSD;SoPC,;software-hardware co-operating,;FPGA

       隨著科學技術的高速發(fā)展,在視頻顯示終端的原始圖像上額外疊加一些文字信息或圖形界面,向用戶提供更多的附加信息已不再是什么難事,,通過屏顯示系統(tǒng)OSD(On Screen Display)就能夠?qū)崿F(xiàn)這種功能,。近年來,OSD的設計受到越來越多的關注[1],,OSD系統(tǒng)已然成為用戶與顯示終端之間交互的橋梁,。

        OSD系統(tǒng)通常采用專用芯片實現(xiàn)[2-4],這類方案或是以專用芯片內(nèi)部微控制器作為核心,,或是以外部單片機作為控制核心,。由于OSD技術對同步時序的要求非常嚴格,所以用微控制器控制時序的可靠性較差[5],。隨著視頻顯示技術的飛速發(fā)展,,市場對電路集成度和視頻數(shù)據(jù)處理速度的要求越來越高(同步時序要求更嚴格),采用專用芯片的實現(xiàn)方案越來越難以滿足要求,。很多廠商早已開始將OSD功能集成到一塊包含其他功能模塊的芯片上(即片上系統(tǒng)SoC(System on Chip)),,國外一些廠商推出了采用FPGA實現(xiàn)OSD功能且具有知識產(chǎn)權的IP核,但其硬件實現(xiàn)技術一般處于封鎖狀態(tài),;國內(nèi)也有采用FPGA實現(xiàn)OSD功能的研究[5-8],但仍處于探索階段,。因此,,研究OSD功能的FPGA實現(xiàn)方案具有深遠意義。

        據(jù)此,,本文提出一種基于SoPC的OSD控制器實現(xiàn)方案,。該方案應用了一種OSD界面自定義布局方法和一種改進型二步索引算法[7],以軟硬件協(xié)同的方式著重實現(xiàn)在源視頻圖像上疊加一個可自定義布局風格的OSD界面,,整體上可實現(xiàn)自定義OSD功能,。

1 OSD控制器的總體設計

        本OSD控制器使用自定義OSD界面布局方法。首先基于像素掃描坐標在OSD界面內(nèi)劃分出字符顯示區(qū),,將剩下的區(qū)域作為背景區(qū),,并基于OSD界面內(nèi)一起止坐標可調(diào)的矩形區(qū)域(如圖1中的矩形區(qū)域5)將背景區(qū)分為9個矩形區(qū)域,對不同區(qū)域選擇輸出所配置顏色的像素數(shù)據(jù),,并直接與源視頻像素數(shù)據(jù)進行透明度混合運算輸出,,以此實現(xiàn)圖像的疊加,同時省去OSD幀緩存的存儲資源消耗,。

        基于以上方法的OSD控制器系統(tǒng)總體結(jié)構(gòu)如圖2所示,。輸入視頻信號首先經(jīng)過視頻輸入接口(圖2虛線框內(nèi)部分)提取出源視頻信號中的像素掃描坐標及RGB像素數(shù)據(jù);OSD區(qū)域識別模塊基于像素掃描坐標判斷當前所在位置,,并發(fā)出相應標識信息,,在整個數(shù)據(jù)處理過程中,軟核系統(tǒng)通過寫OSD配置寄存器組及字型碼存儲器讀寫接口,實現(xiàn)對OSD電路運行狀態(tài)的實時控制,;像素數(shù)據(jù)選擇輸出模塊基于標識信息選擇輸出相應顏色的像素數(shù)據(jù)至后級,;alpha混合運算處理模塊完成OSD界面像素數(shù)據(jù)與從源視頻信號中提取出的RGB像素數(shù)據(jù)的透明度混合運算處理;處理后視頻信號輸出至顯示接口,。

 

 

2 OSD控制器硬件平臺的實現(xiàn)

        根據(jù)實際情況,,選擇以Xilinx公司XC7K325T-2FFG900為核心芯片的Kintex7 FPGA開發(fā)板作為OSD控制設計的硬件平臺,采用內(nèi)嵌MicroBlaze軟核的系統(tǒng)作為上位機,。該開發(fā)板配有一定數(shù)量的I/O和各種數(shù)據(jù)接口,,另外通過USB電纜將PC與Kintex7連接起來就能進行編程調(diào)試,使用方便可靠,。圖3所示為基于該硬件平臺的OSD控制器系統(tǒng)框圖,。

2.1 SDI接口與HDMI接口模塊

        輸入視頻信號是數(shù)據(jù)格式為YUV的 20 bit串行數(shù)字接口SDI(Serial Digital Interface)信號,該模塊首先將YUV444轉(zhuǎn)換為YUV422,,再轉(zhuǎn)換為30 bit的RGB(各分量占10 bit)像素數(shù)據(jù)并將其作為整個處理過程的數(shù)據(jù)格式,,從時序信號中提取出視頻像素掃描坐標(X_scan,Y_scan),。為節(jié)省視頻圖像幀緩存資源,,采用了高清晰度多媒體接口HDMI(High Definition Multimedia Interface)將處理得到的數(shù)據(jù)輸出顯示。

2.2 軟核系統(tǒng)模塊

        通過Xilinx 公司ISE(Integrated Software Environment)內(nèi)嵌的XPS(Xilinx Platform Studio)軟件可以搭建以MicroBlaze軟核處理器為控制核心的,、具有AXI總線架構(gòu)的軟核系統(tǒng),,本設計中選擇添加了axi_gpio接口組件和IIC_MAIN接口組件IP,另外自定義OSD配置寄存器組件layer,、chars和字型碼存儲器讀寫接口index組件,。

        其中,axi_gpio接口組件與外部按鍵和LED相連,,以實現(xiàn)對按鍵的檢測及相關狀態(tài)的顯示,;IIC_MAIN接口組件則作為軟核對內(nèi)部SDI信號接口模塊的視頻配置通道;自定義組件chars和layers分別為與字符顯示屬性和OSD界面屬性相關的配置寄存器組,;自定義組件index用于暫存軟核寫入的待顯示字符索引號信息,,并作為訪問字型碼存儲器的接口,產(chǎn)生相應的訪問地址,。圖4所示為本軟核系統(tǒng)中各組件及其地址分配情況,。

2.3 OSD配置寄存器組

        組件chars和layers作為OSD配置寄存器組,每個組件最多包含32個32 bit的寄存器,,這些寄存器位的含義可根據(jù)需要進行自定義,。

        對于chars組件,定義為32個字符串或進度條顯示區(qū)的配置寄存器,,其含義如表1所示,。

        本設計OSD界面的進度條顯示區(qū)和字符顯示區(qū)是分時復用的,,且字符串所代表的含義也會有不同類別(如主、子菜單項和設置項等),,因此采用D31~D29編碼來體現(xiàn)這些差異,。

        組件layer中包含了與OSD界面屬性配置相關的寄存器,如起點坐標(X_osd,,Y_osd),、長L_osd、寬W_osd,、布局坐標,、各區(qū)域顏色和透明度等參數(shù)配置寄存器,共23個,。

2.4 a_blending模塊

        本模塊是整個OSD控制器的數(shù)據(jù)處理中心,,依次完成圖2所示的OSD區(qū)域識別、像素數(shù)據(jù)選擇輸出和alpha混合運算處理等過程,。在區(qū)域識別模塊檢測到當前像素掃描坐標處于字符顯示區(qū)時,,該模塊發(fā)出讀字型碼請求以獲取相應點陣編碼信息,在背景區(qū)則直接輸出相應標識信號,。后級模塊根據(jù)點陣編碼信息,、區(qū)域標識信息及相關配置信息選擇輸出相應像素數(shù)據(jù),最后完成與源視頻像素數(shù)據(jù)的alpha混合運算處理,。將alpha混合算法中的浮點數(shù)轉(zhuǎn)換為兩個2的冪次數(shù)的除法,,便于硬件通過移位實現(xiàn)乘除運算,通過軟件對冪次數(shù)的設置實現(xiàn)對透明度的實時控制,。

3 OSD控制器的軟件設計

        基于OSD控制器的軟件平臺,在Xilinx的SDK(Software Development Kit)開發(fā)環(huán)境中編寫控制,、顯示等應用程序,,主要實現(xiàn)系統(tǒng)的初始化、按鍵控制,、OSD界面設計,、字符顯示控制等功能。

        系統(tǒng)在復位后對視頻輸入接口電路進行初始化,,之后進入按鍵控制子程序,,按鍵將引導系統(tǒng)進入OSD界面設計模式或者OSD工作模式,各模式將根據(jù)后續(xù)按鍵情況調(diào)用OSD界面設計子程序和字符顯示控制子程序,。主程序流程圖如圖5所示,。

4 系統(tǒng)調(diào)試與運行結(jié)果

4.1 實驗效果

        如圖6所示為1 280×720分辨率的源視頻圖像上疊加的兩種720×360分辨率的自定義OSD界面(截圖),界面顯示狀態(tài)可由軟核(上位機)實時控制,。

        圖6(上)中的布局坐標將OSD界面平均分成9個區(qū)域,,各區(qū)域顏色,、透明度均不同,界面下欄MENU1~12為12個主菜單字符串顯示區(qū),;左欄SON1~SON6為6個子菜單字符串顯示區(qū),;右上部分區(qū)域定義了6個設置菜單字符串項SET1~SET6及一個進度條顯示區(qū);最上方定義了一個當前選中設置項信息提示字符串顯示區(qū),。這些字符串/進度條顯示區(qū)的位置,、顏色等屬性均為實時可調(diào)的,在數(shù)量上也可根據(jù)需要增減,。而圖6(下)是對布局坐標及所產(chǎn)生的9個區(qū)域顏色,、透明度參數(shù)進行了一定調(diào)整后形成的另一種界面。

4.2 資源消耗統(tǒng)計與分析

        本OSD控制器模塊所占用片內(nèi)存儲資源主要消耗在字型碼存儲器,、索引號存儲器的實現(xiàn)以及軟核系統(tǒng)平臺對實現(xiàn)字符串顯示而進行的程序指令存儲和數(shù)據(jù)存儲,。

        對于軟核系統(tǒng)平臺在OSD控制器實現(xiàn)方面的資源消耗,自定義組件index,、chars及l(fā)ayers各占4 KB,,共計12 KB;axi_bram_ctrl_0組件用于存儲實現(xiàn)OSD控制器模塊字符串顯示的程序數(shù)據(jù),,共用了64-16=48 KB,。綜上所述,OSD控制器模塊最多消耗存儲資源為2.1 KB+1 KB+12 KB+48 KB=63.1 KB,。

        在具體實現(xiàn)硬件電路時,,多余的資源消耗將會被優(yōu)化,因此OSD控制器模塊實際消耗的存儲資源將小于63.1 BK,。圖7所示為添加OSD控制器模塊前后系統(tǒng)生成的片內(nèi)RAM資源消耗報告表,。由圖可知OSD控制器模塊消耗12個RAM36E1/FIFO36E1s,即12×(36/8)=54 KB,。

        而對于采用OSD界面幀緩存的設計方案,,即使實現(xiàn)720×360的4色圖像界面顯示,至少也要消耗存儲資源2×720×360/8/1 024=63.281 25 KB,,這還不包括系統(tǒng)在其他方面的資源消耗,。若要實現(xiàn)更多色彩圖像的顯示,則存儲資源消耗將會成倍地增加,。

        OSD作為人機交互的橋梁,,是視頻處理模塊的重要組成部分,而當前市場對視頻處理模塊電路集成度和數(shù)據(jù)處理速度要求越來越高,。本文提出了一種基于SoPC的OSD控制器設計方案,,其中應用了一種自定義界面布局方法和一種改進型二步索引算法,節(jié)省了系統(tǒng)的存儲資源開銷,。另外對透明度混疊算法進行了取整變換,,使之便于FPGA硬件實現(xiàn)及軟件控制,。總體上該方案以軟硬協(xié)調(diào)的方式實現(xiàn)OSD控制器功能,。實驗結(jié)果表明,,該控制器極大地節(jié)約了資源,并且在實現(xiàn)OSD功能時也有很好的靈活性,。

參考文獻

[1] 修曉琴,,楊秀芝,鄭明魁.基于FPGA內(nèi)嵌軟核的機頂盒OSD設計[J].電視技術,,2013,,37(13):70-72.

[2] 王艷艷,郅晨.基于TMS320DM6446的OSD顯示技術的研究與實現(xiàn)[J].中國新通信(技術版),,2008(3):45-50.

[3] 雷永鋒.基于OSD選單的KVM系統(tǒng)設計[J].電視技術,,2008,32(1):50-52.

[4] 王瑞胡.基于OSD技術的數(shù)字電視機頂盒漢字顯示解決方案[J].電子設計應用,,2003,,9(1):102-105.

[5] 黃燕群,李利品,,王爽英.基于FPGA的OSD設計[J].液晶與顯示,,2010,25(3):429-433.

[6] 羅韜,,姚素英,,史再峰,等.視頻芯片中的OSD核的設計及FPGA的實現(xiàn)[J].吉林大學學報(工學版),,2008,,38(6):1452-1457.

[7] 劉科,張生才,,史在鋒,,等.基于改進型二步索引算法OSD電路的FPGA實現(xiàn)[J].電子測量技術,2007,,30(7):94-96.

[8] 杜升平,曹劍中,,田雁,,等.FPGA在OSD中的應用[J].科學技術與工程,2006,,6(14):2065-2067.

[9] Zhang Sheng,,Zhang Hao,CHEN B,,et al.On-screen-display(OSD) and SPI interface on CMOS image sensor for automobile application[C].Computational Intelligence,,Communication Systems and Networks(CICSYN),,2013 Fifth International Conference on,IEEE,,2013:405-408.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載。