《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SoPC的OSD控制器設(shè)計(jì)
基于SoPC的OSD控制器設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第6期
喻金華,符浩敏,肖鐵軍
1.南京視威電子科技股份有限公司,江蘇 南京210038; 2.江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,
摘要: OSD系統(tǒng)是人機(jī)交互的橋梁,為滿足市場(chǎng)需求及迎合當(dāng)前高清視頻發(fā)展趨勢(shì),應(yīng)用一種自定義OSD界面布局方法和一種改進(jìn)型二步索引算法,并對(duì)透明度混疊算法進(jìn)行了變換及硬件實(shí)現(xiàn),以軟硬件協(xié)同的方式實(shí)現(xiàn)自定義OSD功能,具有界面控制靈活及低硬件資源消耗等特點(diǎn)。本設(shè)計(jì)通過(guò)以Xilinx公司XC7K325T-2FFG900為核心芯片的Kintex7 FPGA開發(fā)板進(jìn)行了驗(yàn)證,結(jié)果表明該設(shè)計(jì)方案具有可行性。
關(guān)鍵詞: FPGA OSD SoPC 軟硬件協(xié)同 Kintex7
中圖分類號(hào): TP302
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

1 OSD控制器的總體設(shè)計(jì)

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

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

 

 

2 OSD控制器硬件平臺(tái)的實(shí)現(xiàn)

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

2.1 SDI接口與HDMI接口模塊

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

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

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

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

2.3 OSD配置寄存器組

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

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

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

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

2.4 a_blending模塊

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

3 OSD控制器的軟件設(shè)計(jì)

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

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

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

4.1 實(shí)驗(yàn)效果

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

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

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

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

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

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

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

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

參考文獻(xiàn)

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

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

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

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

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

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

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

[8] 杜升平,曹劍中,田雁,等.FPGA在OSD中的應(yīng)用[J].科學(xué)技術(shù)與工程,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)授權(quán)禁止轉(zhuǎn)載。