基于DM6446 中的高清數字視頻顯示接口設計方案
表1主要給了在只提供148.5 MHz像素時(shí)鐘情況下,要實(shí)現720P,1 080P和WUXGA 分辨率畫(huà)面顯示,VENC所必須配置的寄存器的值。按照表中的參數進(jìn)行設置后,輸出時(shí)鐘VCLK、編碼時(shí)鐘VENC_CLK以及窗口時(shí)鐘OSD_CLK三者相等。VPBE_PCR可用于配置時(shí)鐘頻率在74.25 MHz和148.5 MHz之間切換,以滿(mǎn)足在720P和1 080P(或WUXGA)顯示分辨率下系統對編碼時(shí)鐘的需求。
3.2 OSD配置
經(jīng)過(guò)VENC的配置,系統已經(jīng)支持高清數字視頻的輸出,由于VENC 編碼數據來(lái)自于OSD 模塊,所以要輸出有效數據,還必須對OSD模塊進(jìn)行配置。DM6446的OSD 模塊共支持兩個(gè)視頻窗口VIDWIN0/1和兩個(gè)位圖窗口OSDWIN0/1,還有透明矩形光標窗口(Regular Cur-sor)。其中,視頻窗口VIDWIN0作為所有窗口的畫(huà)布窗口,其他所有窗口的顯示范圍都必須在此窗口內,而且在顯示其他窗口之前也必須使能VIDWIN0.所有的OSD窗口都有獨立的使能控制位,當所有的窗口都不使能時(shí),VENC 將只顯示OSD 中由寄存器MODE.BCLUT、MODE.CABG指定的背景色。
OSD 窗口位置的確定與VENC 中的同步時(shí)序有關(guān)。所有窗口的基準位置為(BASEX,BASEY),同時(shí)利用(xxx_XP,xxx_YP)來(lái)確定相對位置。一般的,設置BASEX=HSTART,BASEY=VSTART,這樣,窗口的基準點(diǎn)便與顯示器的左上角零點(diǎn)對齊。由于VIDWIN0是所有窗口的畫(huà)布窗口,因此在實(shí)際使用中使該窗口的大小與VENC 中指定的顯示分辨率相等,從而使VIDWIN0完全覆蓋整個(gè)顯示器屏幕。
視頻窗口和位圖窗口在DDR2 SDRAM中都有對應的緩沖區用于保存窗口中的像素數據,緩沖區的起始位置由xxx_ADR 指定,窗口數據行偏移量由xxx_OFST 指定。起始位置寄存器xxx_ADR 的值是可以動(dòng)態(tài)改變的,并且改變后的值只有在下一幀同步信號(VSYNC)到來(lái)時(shí)才起作用,這樣我們便可以在內存中開(kāi)辟多個(gè)窗口緩沖區,以增加窗口的顯示效率。這里配置OSD 窗口主要是為VENC提供顯示數據,其他有關(guān)OSD模塊的配置可以參考其說(shuō)明文檔[3],這里不贅述。
3.3 實(shí)際顯示效果
在實(shí)際顯示OSD 窗口的過(guò)程中,要保證VIDWIN0的分辨率不超過(guò)VENC中顯示的有效分辨率(HVALID xVVALID),而其他所有OSD 窗口的范圍都不能超出VIDWIN0,否則將會(huì )導致畫(huà)面顯示不正常。雖然VENC輸出分辨率已經(jīng)能夠達到1 080P和WUXGA,但在這個(gè)高清分辨率顯示下,只有VIDWIN0能夠用于視頻顯示,其他窗口必須保持關(guān)閉狀態(tài),這主要受制于OSD 模塊的傳輸帶寬。而在VENC 配置為720P 分辨率的情況下,能夠穩定實(shí)現多個(gè)窗口同時(shí)顯示,如圖4所示。
在這里,VIDWIN0、VIDWIN1、OSDWIN0 的大小分別為1 280×720,800×600 和640×480,像素格式分別為3 字節RGB888、2 字節的YUV422 和2 字節的RGB565.此時(shí)顯示器顯示的行同步信號頻率為45.2 kHz,幀同步頻率為60.2 Hz,分辨率為1 280×720,說(shuō)明高清數字視頻顯示接口工作正常,能夠穩定實(shí)現在高分辨率下的多窗口同時(shí)在屏顯示。
4 結語(yǔ)
本文利用DM6446的數字視頻輸出接口,搭配DVI驅動(dòng)芯片TFP410,通過(guò)對芯片內部時(shí)鐘以及視頻編碼模塊(VENC)時(shí)序發(fā)生器的正確配置,實(shí)現了電路結構簡(jiǎn)單、配置靈活的高清數字視頻顯示接口。在目標板上,本文提出的高清數字視頻顯示接口方案能夠穩定顯示720P、1 080P 及WUXGA 分辨率的畫(huà)面,說(shuō)明該方案易用、可行,具有實(shí)用性,對于擴展基于DM6446的數字視頻顯示接口具有重要參考意義。
評論