(云南大學(xué) 云南省電子計(jì)算中心, 昆明 650223)
摘 要:
針對(duì)DaVinci數(shù)字媒體處理器應(yīng)用系統(tǒng)中525/625P視頻圖像在VGA顯示器上的顯示方法,利用DaVinci SOC處理器視頻處理子系統(tǒng)(VPSS)中視頻處理后端(VPBE)硬件,完成了一種非標(biāo)準(zhǔn)VGA接口硬件和驅(qū)動(dòng)程序軟件的設(shè)計(jì)與實(shí)現(xiàn),獲得更好的視頻顯示質(zhì)量,并擴(kuò)展了DaVinci數(shù)字媒體應(yīng)用系統(tǒng)的顯示終端類型。
關(guān)鍵詞:達(dá)芬奇處理器; 視頻圖形陣列接口; 視頻處理后端
中圖分類號(hào):TP332 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):10013695(2008)12384103
Design and implementation of nonstandard VGA interface based on DaVinci DM6446
ZHOU Yonglu, YAO Hanbing, DAI Hongbing, WANG Yaoxi
(Electron ComputerCenterof Yunnan Province, Yunnan University, Kunming 650223, China)
Abstract:This paperdiscussed525/625P video images displaymethodbased on VGA monitor in DaVinci digital media application system. By use of video processing backend (VPBE) hardware embedded in DaVinci SOC video processing subsystem (VPSS), completed a nonstandard VGA interface hardware and drivers design, as well as improved the quality of video display andexpanded the DaVinci digital media applicationsystem display terminal types.
Key words:DaVinci processor; VGA interface; video processing backend
隨著數(shù)字視頻應(yīng)用需求的日益強(qiáng)勁,TI公司于2005年9月發(fā)布了新一代的數(shù)字視頻技術(shù)——達(dá)芬奇(DaVinci)技術(shù)。同年12月,推出了首批兩款基于DaVinci技術(shù)的高性能數(shù)字媒體處理器TMS320DM6443和TMS320DM6446,并提供了基于TMS320DM6446的數(shù)字視頻評(píng)估板TMDSEVM6446和相應(yīng)的軟件開發(fā)工具。
TMDSEVM6446評(píng)估板具有多種形式的視頻輸出接口,包括模擬視頻接口和數(shù)字視頻接口。其中,模擬視頻接口提供了四路模擬視頻輸出,可實(shí)現(xiàn)NTSC/PAL標(biāo)準(zhǔn)的復(fù)合、S端子和分量視頻信號(hào)輸出,并支持逐行和隔行兩種掃描形式,顯示終端類型主要是支持SDTV(480I,576I)和EDTV(480P,576P)標(biāo)準(zhǔn)的電視機(jī)或視頻監(jiān)視器,未提供VGA接口。在桌面計(jì)算機(jī)非常普及的今天,各種尺寸的CRT或LCD的VGA顯示器隨處可見,不能利用VGA顯示器作為顯示終端無(wú)疑是一種遺憾。
在研究了TMDSEVM6446評(píng)估板的軟硬件設(shè)計(jì)原理之后,本文提出了直接利用DaVinci處理器視頻處理后端構(gòu)建一種非標(biāo)準(zhǔn)VGA接口的方法,實(shí)現(xiàn)525和625P視頻圖像在VGA顯示器上的顯示。
1 DaVinci視頻處理子系統(tǒng)及其視頻處理后端簡(jiǎn)介
達(dá)芬奇處理器TMS320DM6446內(nèi)部集成有一個(gè)視頻處理子系統(tǒng)(VPSS)。其結(jié)構(gòu)如圖1所示[1]。
VPSS由主要用于視頻輸入及前端處理的視頻前端(VPFE)模塊和主要用于后端顯示與處理的視頻后端(VPBE)模塊組成。
VPFE模塊主要用于捕獲視頻信號(hào),由CCD控制器、預(yù)覽引擎、圖像縮放、柱狀圖和自動(dòng)聚焦/曝光/白平衡(H3A)等模塊組成。
VPBE模塊主要用于對(duì)經(jīng)過處理的視頻數(shù)據(jù)進(jìn)行顯示,由一個(gè)在線視頻顯示處理器(onscreen display, OSD)和一個(gè)視頻編碼器(video encoder, VENC)組成[2]。其中,OSD模塊可支持兩個(gè)獨(dú)立的視頻窗口和兩個(gè)OSD窗口的同步顯示。也可將第二個(gè)視頻窗口疊加在第一個(gè)視頻窗口之上,實(shí)現(xiàn)畫中畫功能。OSD用于在視頻圖像上疊加圖文信息。VENC模塊可提供視頻數(shù)據(jù)的模擬輸出和數(shù)字輸出。在模擬輸出接口方面,VENC內(nèi)置了四路10 bitDAC,可支持標(biāo)準(zhǔn)的NTSC/PAL復(fù)合、S端子和RGB/YPrPb分量視頻模擬輸出;在數(shù)字輸出接口方面,VENC內(nèi)置了LCD控制器,可支持各類格式的LCD數(shù)字顯示屏,并提供了標(biāo)準(zhǔn)的數(shù)字YUV輸出,可連接高清視頻解碼器,通過擴(kuò)展,可連接新一代的DVI/HDMI接口的視頻顯示設(shè)備。
本文所設(shè)計(jì)的非標(biāo)準(zhǔn)VGA接口主要涉及VPSS中VFBE的VENC功能模塊部分。VFBE模塊組成結(jié)構(gòu)如圖2所示[3,4]。
VENC包括三個(gè)主要子模塊,即模擬視頻編碼器、數(shù)字LCD控制器和定時(shí)生成器。其中,模擬視頻編碼器負(fù)責(zé)生成模擬視頻輸出信號(hào);數(shù)字LCD控制器負(fù)責(zé)生成數(shù)字RGB/YCrCb視頻輸出數(shù)據(jù)和定時(shí)控制信號(hào);定時(shí)生成器負(fù)責(zé)生成模擬視頻編碼器和數(shù)字LCD控制器所需的各種定時(shí)信號(hào)。
模擬視頻編碼器具有主/從兩種工作模式。在主模式下,由VENC的定時(shí)生成器實(shí)現(xiàn)視頻顯示所需的定時(shí)信號(hào)(如像素時(shí)鐘、水平同步、垂直同步等)的生成;在從模式下,可通過外部輸入定時(shí)信號(hào),實(shí)現(xiàn)視頻數(shù)據(jù)同步控制。
模擬視頻編碼器提供了SDTV和HDTV兩種顯示設(shè)備類型。其中,SDTV支持復(fù)合NTSCM、PALB/D/G/H/I、Y/C S端子、分量YPbPr、RGB等標(biāo)準(zhǔn)視頻輸出格式,也支持Macrovision (rev 7.1)防拷貝保護(hù)、CGMS/WSS等標(biāo)準(zhǔn);HDTV支持525、625P逐行以及分量YPbPr、RGB等視頻輸出格式,也支持CGMS/WSS及針對(duì)525/625P YPbPr格式的Macrovision (rev 7.1)防拷貝保護(hù)技術(shù)標(biāo)準(zhǔn)。
模擬視頻編碼器提供了標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)兩種定時(shí)模式,在標(biāo)準(zhǔn)定時(shí)模式下,由VENC的內(nèi)部定時(shí)生成器產(chǎn)生標(biāo)準(zhǔn)定時(shí)信號(hào),支持525/60 Hz(NTSCM) 或625/50 Hz PALB/D/G/H/I)以及525、625P視頻格式。工作于標(biāo)準(zhǔn)定時(shí)模式時(shí),數(shù)字LCD接口可與模擬視頻輸出一起進(jìn)行同步顯示,但所連接的LCD、DAC以及編碼器也必須支持NTSC/PAL 定時(shí)時(shí)序。在非標(biāo)準(zhǔn)定時(shí)模式下,可通過設(shè)置VENC的多個(gè)定時(shí)控制寄存器,來(lái)自定義定時(shí)時(shí)序,產(chǎn)生定時(shí)信號(hào),滿足非NTSC/PAL標(biāo)準(zhǔn)時(shí)序的顯示設(shè)備的連接要求。工作于非標(biāo)準(zhǔn)定時(shí)模式時(shí),模擬視頻編碼器被自動(dòng)禁止,不再輸出視頻信號(hào)。此時(shí),可通過選擇THS8200、THS8134、TFP410等各種視頻編碼芯片來(lái)實(shí)現(xiàn)非標(biāo)準(zhǔn)NTSC/PAL定時(shí)的標(biāo)準(zhǔn)VGA接口、DVI接口或者是HDMI接口,支持更多的顯示設(shè)備類型和更豐富的顯示模式。
根據(jù)VENC的功能特性,可以直接利用VENC的模擬視頻編碼器,結(jié)合定時(shí)生成器所提供的水平同步(HYNC)、垂直同步(VHYNC)定時(shí)信號(hào),來(lái)實(shí)現(xiàn)非標(biāo)準(zhǔn)的VGA顯示接口,進(jìn)行PAL/NTSC標(biāo)準(zhǔn)視頻在VGA顯示器上的顯示。
2 接口硬件設(shè)計(jì)
標(biāo)準(zhǔn)VGA接口共有15個(gè)管腳,最為關(guān)鍵的信號(hào)有5個(gè),即RED、GREEN、BLUE、HSYNC和VSYNC。其中,RED、GREEN、BLUE這3個(gè)信號(hào)為75 Ω、 0.7 Vpp的模擬信號(hào);HSYNC和VSYNC為TTL電平數(shù)字信號(hào)。通常情況下,在連接普通VGA顯示器時(shí),只需前端提供這5個(gè)信號(hào)即可進(jìn)行正常顯示。
在TMS320DM6446中,與模擬視頻顯示相關(guān)的輸入/輸出信號(hào)如表1所示。
表1 TMS320DM6446模擬顯示接口信號(hào)
管腳號(hào)信號(hào)名說(shuō)明
P19DAC_IOUT_A視頻DAC通道A
P18DAC_IOUT_B視頻DAC通道B
R19DAC_IOUT_C視頻DAC通道C
T19DAC_IOUT_D視頻DAC通道D
TMS320DM6446的VPBE提供了DAC_IOUT_A、DAC_IOUT_B、DAC_IOUT_C、DAC_IOUT_D四路10 bitDAC數(shù)/模轉(zhuǎn)換通道,利用四路DAC通道,可生成標(biāo)準(zhǔn)的NTSC/PAL復(fù)合、S端子和分量視頻模擬輸出信號(hào)。在本設(shè)計(jì)中,利用DAC_IOUT_A、DAC_IOUT_B、DAC_IOUT_C三個(gè)通道分別產(chǎn)生VGA接口所需的R、G、B三個(gè)模擬分量。同時(shí),在TMS320DM6446 VPBE的數(shù)字視頻顯示接口中,提供了相應(yīng)的數(shù)字視頻時(shí)鐘與同步信號(hào),如表2所示。
表2 TMS320DM6446數(shù)字顯示接口部分信號(hào)
管腳號(hào)信號(hào)名說(shuō)明
C17HSYNC水平同步信號(hào),雙向
C18VSYNC垂直同步信號(hào),雙向
D19VCLK視頻像素時(shí)鐘,輸出
C19VPBECLKVPBE外部時(shí)鐘,輸入
C13LCD_OELCD使能信號(hào),輸出
利用VPBE工作于標(biāo)準(zhǔn)定時(shí)模式時(shí),模擬顯示接口與數(shù)字顯示接口能夠同步顯示的特性,可用數(shù)字顯示接口提供的HSYNC和VSYNC這兩個(gè)同步信號(hào)與模擬顯示接口提供的R、G、B 3個(gè)模擬信號(hào)一起,構(gòu)成VGA接口所需要的基本接口信號(hào)。
至此,可進(jìn)行目標(biāo)VGA接口的硬件原理設(shè)計(jì)。整個(gè)接口的硬件設(shè)計(jì)原理框圖如圖3所示。
圖3中,從TMS320DM6446輸出的DAC_IOUT_A、DAC_IOUT_B、DAC_IOUT_C、DAC_IOUT_D四路模擬視頻信號(hào)經(jīng)前后兩級(jí)濾波網(wǎng)絡(luò)和視頻放大后得到75 Ω、0.7 Vpp四路模擬視頻輸出信號(hào),接至四路模擬視頻輸出插座J8,并且由前三路信號(hào)構(gòu)成R、G、B分量視頻信號(hào)接至VGA輸出插座P7。從TMS320DM6446輸出的HSYNC和VSYNC均是1.8 V的LVTTL電平信號(hào),而VGA接口需要的是3.3 V的LVTTL電平信號(hào)或5 V的TTL電平信號(hào),所以,設(shè)計(jì)中采用了一片2 bit雙電源總線收發(fā)器SN74AVC2T45作為1.8~3.3 V的電平轉(zhuǎn)換芯片,實(shí)現(xiàn)1.8~3.3 V電平的轉(zhuǎn)換,以滿足VGA接口要求。
在進(jìn)行PCB布線設(shè)計(jì)時(shí),建議將接至VGA接口插座的R、G、B三根視頻信號(hào)線盡量采用較寬的線寬進(jìn)行布線,并且分別用模擬地進(jìn)行包裹,以實(shí)現(xiàn)較好的抗干擾特性,達(dá)到較好的顯示效果。同理,TI TMS320DM644x系列數(shù)字媒體處理器中DM6441、DM6443也與DM6446一樣具有相同的VPBE結(jié)構(gòu),可通過同樣的設(shè)計(jì)方法,實(shí)現(xiàn)一種非標(biāo)準(zhǔn)VGA接口的視頻顯示功能。
3 Linux下驅(qū)動(dòng)程序?qū)崿F(xiàn)
隨同TMDSEVM6446評(píng)估板,TI提供了DVEVM軟件開發(fā)工具。DVEVM 1.2包含了基于MontaVista Linux 4.0的Linux支持包(LSP)。在LSP中,已經(jīng)配置了VPBE驅(qū)動(dòng)程序,這一驅(qū)動(dòng)程序的模擬視頻部分只支持用于連接電視顯示終端的NTSC/PAL標(biāo)準(zhǔn)的復(fù)合、S端子、YPrPb分量顯示輸出格式。這些格式的視頻信號(hào)均采用內(nèi)同步方式,因而在工作于缺省的模擬視頻輸出方式時(shí),驅(qū)動(dòng)程序禁止了數(shù)字視頻輸出信號(hào),即VPBE關(guān)閉了HSYNC、VSYNC等數(shù)字視頻輸出信號(hào)。為使LSP能夠支持所新增設(shè)計(jì)的非標(biāo)準(zhǔn)VGA接口的顯示,需要對(duì)VPBE的驅(qū)動(dòng)程序進(jìn)行改造。
同步控制寄存器(SYNCCTL)和分量模式寄存器(CMPNT)的定義分別如圖4、5所示[1]。
圖4中,寄存器位域SYEH是水平同步輸出使能控制位,當(dāng)設(shè)置為1時(shí),水平同步信號(hào)從管腳HSYNC輸出,設(shè)置為0時(shí),則禁止輸出;位域SYEV是垂直同步輸出使能控制位,當(dāng)設(shè)置為1時(shí),垂直同步信號(hào)從管腳VSYNC輸出,設(shè)置為0時(shí),則禁止輸出。圖5中,寄存器位域MRGB為RGB模式輸出選擇控制位,當(dāng)設(shè)置為1時(shí),選擇輸出RGB分量,設(shè)置為0時(shí),選擇輸出YPrPb分量。
為使所設(shè)計(jì)的VGA接口能夠輸出正確的視頻信號(hào),需要在SYNCCTL中選擇SYEH和SYEV為1,使HSYNC和VSYNC兩個(gè)管腳輸出水平和垂直同步信號(hào),同時(shí),在CMPNT中選擇MRGB為1,使VENC輸出RGB分量信號(hào)。這樣,就具備了VGA接口所需的5個(gè)基本信號(hào)。
實(shí)現(xiàn)非標(biāo)準(zhǔn)VGA接口的顯示驅(qū)動(dòng)程序,一種簡(jiǎn)單的實(shí)驗(yàn)辦法就是直接修改原驅(qū)動(dòng)程序文件davincifb_venc.c中已有的525和625P兩種YPrPb分量輸出顯示方式的配置函數(shù):
vpbe_davincifb_525p_component_config()
vpbe_davincifb_625p_component_config()
將原來(lái)的 dispc_reg_out(VENC_DACSEL, 0x543)替換為如下代碼:
dispc_reg_out( VENC_SYNCCTL, 0x3);
/*選擇輸出HSYNC和VSYNC信號(hào)*/
dispc_reg_out(VENC_CMPNT, 0x8000);
/*選擇RGB分量模式*/
dispc_reg_out(VENC_DACSEL, 0x435);
/*允許分量輸出: DACA:R,DACB:G, DACC:B*/
重新編譯內(nèi)核,在UBOOT啟動(dòng)參數(shù)中,將bootargs變量的視頻參數(shù)部分設(shè)置為
video=dm64xxfb:output=525p:format=component
啟動(dòng)Linux后,即可在VGA顯示器上顯示出720×480(60 Hz)的圖像,如將bootargs變量的視頻參數(shù)部分設(shè)置為
video=dm64xxfb:output=625p:format=component
可在VGA顯示器上顯示出720×576(50 Hz)的圖像。
以上的代碼修改替換了原驅(qū)動(dòng)的525和625P的YPrPb分量輸出功能,為了不影響原有驅(qū)動(dòng)的功能,較好的做法是重新構(gòu)建兩個(gè)新的配置函數(shù):
void vpbe_davincifb_525p_vga_config(void)
void vpbe_davincifb_625p_vga_config(void)
并修改原驅(qū)動(dòng)程序文件的相關(guān)部分代碼,使其可根據(jù)bootargs變量的視頻參數(shù)設(shè)置令新的配置函數(shù)生效。這樣當(dāng)bootargs變量的視頻參數(shù)部分設(shè)置為
video=dm64xxfb:output=525pvga:format=component
video=dm64xxfb:output=625pvga:format=component
時(shí),可從VGA接口得到720×480(60 Hz)和720×576(50 Hz)的顯示圖像。
在具有自動(dòng)偵測(cè)視頻信號(hào)格式的監(jiān)視器或LCD電視上,將會(huì)顯示出所偵測(cè)到的顯示格式分別為480P(或525P)和576P(或625P)。通過VGA接口連接顯示器后,顯示圖像質(zhì)量較連接電視機(jī)有較大改善,色彩、清晰度均明顯提高。由于刷新頻率是50和60 Hz,當(dāng)連接CRT顯示器時(shí),視覺會(huì)有一定的閃爍感,但連接LCD顯示器或LCD TV時(shí),能獲得穩(wěn)定清晰的圖像。
4 結(jié)束語(yǔ)
本文介紹了直接利用TMS320DM6446的VENC實(shí)現(xiàn)一種非標(biāo)準(zhǔn)VGA顯示接口的設(shè)計(jì)和Linux驅(qū)動(dòng)程序的實(shí)現(xiàn),硬件上無(wú)須增加額外視頻編碼芯片,幾乎不增加額外成本,驅(qū)動(dòng)軟件擴(kuò)展簡(jiǎn)單易行,使以TMS320DM6446為核心的達(dá)芬奇應(yīng)用系統(tǒng)具備了支持VGA顯示終端的效能,并可獲得更好的視頻顯示質(zhì)量和效果。同時(shí),也提供了一種低成本擴(kuò)展DaVinci應(yīng)用系統(tǒng)顯示終端類型的思路。本設(shè)計(jì)已實(shí)際應(yīng)用于嵌入式網(wǎng)絡(luò)音/視頻解碼平臺(tái)項(xiàng)目系統(tǒng)中,取得了較好的效果,具有一定的實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]Texas Instruments Incorporated.TMS320DM644x DMSoC video processing back end (VPBE) user’s guide[EB/OL].[200704].http://focus.ti.com/lit/ug/sprue37a/sprue37a.pdf.
[2]徐鵬,鄒浩斌.基于達(dá)芬奇技術(shù)的TMS320DM6446視頻研究[J].電子產(chǎn)品世界,2006(2S): 135137.
[3]Texas Instruments Incorporated.TMS320DM6441 digital media systemonchip[EB/OL].[200701].http://focus.ti.com/lit/ds/sprs359b/sprs359b.pdf.
[4]Texas Instruments Incorporated.TMS320DM6443 digital media systemonchip[EB/OL].[200703].http://focus.ti.com/lit/ds/sprs282e/sprs282e.pdf.