數(shù)字電影放映系統(tǒng)實現(xiàn)方案
2.3 ARM端解碼應用程序的設計
本系統(tǒng)的應用程序是在Linux系統(tǒng)環(huán)境下,利用DaVinci技術的Codec Engine提供的API來完成的。應用程序運行在TMS320DM6446雙核處理器的ARM端,解碼存儲在硬盤里的音頻、視頻、語音數(shù)據(jù),通過視頻末端輸出接口(VPBE)輸出,在OSD上實時顯示。
解碼線程的流程如圖4所示。
應用程序主要包括5個POSIX線程:主線程(控制線程)、視頻線程、顯示線程、語音線程以及音頻線程。從圖4中可以看到,視頻、語音、音頻線程在主線程變成控制線程之前產生。顯示線程由視頻線程產生?!癕SP430+IR”用來接收用戶輸入的命令,只有在命令行里提供了一個視頻文件時,才能建立視頻線程。同時,由于音頻和語音要求同樣的外設(AIC33),因此,不能同時解碼音頻和語音文件。此外,所有的線程都是搶占式的,基于優(yōu)先級的時序(SCHED_FIFO),其中,顯示線程具有最高的優(yōu)先級,接下來是視頻線程,控制線程的優(yōu)先級最低。線程的初始化由Rendezvous公用程序模塊來同步。該模塊使用POSIX的條件來同步線程的初始化。每個線程執(zhí)行其初始化后,通知Rendezvous的對象。所有的線程都結束初始化后,同時解鎖,開始執(zhí)行主循環(huán)。
3 測試結果
本系統(tǒng)的軟件開發(fā)是在虛擬機上的Linux操作系統(tǒng)下進行的,Linux操作系統(tǒng)的版本為Monta Vista Linux Professional Edition v4。測試前,用交叉網(wǎng)線將硬件平臺通過交換機與主機相連,并配置NFS(Network File System,網(wǎng)絡文件系統(tǒng))服務,使得開發(fā)板和主機可以互相訪問;同時,在主機的Windows環(huán)境下,將開發(fā)板與主機用串口線相連,設置超級終端,通過超級終端監(jiān)控硬件系統(tǒng)的啟動情況,并設置命令參數(shù)。
測試時,在超級終端里輸入解碼命令,硬件系統(tǒng)通過MSP430解析輸入的命令,讀取存儲在HDD(硬盤)里的音視頻數(shù)據(jù),利用OSD在線顯示解碼的影片。圖5~圖7分別為對MPEG-2、MPEG-4、H.264音視頻的解碼圖像。
結語
本文結合達芬奇數(shù)字多媒體技術提出了數(shù)字電影放映系統(tǒng)的硬件解決方案及軟件設計方法。利用達芬奇對高層Linux的支持、標準化的API以及產品化的底層驅動器,大大降低了設計數(shù)字視頻系統(tǒng)的復雜性,縮短了產品的開發(fā)周期。測試表明,所設計的數(shù)字電影放映系統(tǒng)支持多種格式的數(shù)字影片的高清播放,且具有高穩(wěn)定性和高可靠性。該設計方案還可以用于其他數(shù)字產品的開發(fā),如IP機頂盒、網(wǎng)絡攝像機、醫(yī)學圖像處理、視頻會議等。
評論