- 相關(guān)推薦
基于Davinci架構(gòu)的嵌入式Web播放器
引言
嵌入式播放器被廣泛應(yīng)用于Intenet-TV、iDVD、Web 終端、數(shù)字電視機(jī)頂盒、掌上電腦等各種信息電器和便攜式網(wǎng)絡(luò)終端中,并在工業(yè)控制領(lǐng)域有著廣闊的應(yīng)用前景,為此高性能Web 播放器的設(shè)計也始終是嵌入式系統(tǒng)工程師追逐的目標(biāo)。TI 公司近年來推出了面向無線領(lǐng)域和移動媒體的開放式多媒體應(yīng)用平臺(OMAP),它采用DAVINCI 架構(gòu),集成了先進(jìn)的CortexA-8 結(jié)構(gòu)的ARM 核和DSP64x+內(nèi)核,包含了優(yōu)化的硬件2D/3D 加速器[1]。尤其是OMAP 器件的低功耗特性使得它在便攜式、手持式設(shè)備方面應(yīng)用優(yōu)勢明顯,從而也為實現(xiàn)更高性能和更低功耗的嵌入式播放器提供了可靠的硬件基礎(chǔ)。本系統(tǒng)正是基于OMAP3530強(qiáng)大的運(yùn)算及音視頻處理能力設(shè)計的,旨在構(gòu)建一個基于Davinci 架構(gòu)的嵌入式Web 播放器,支持MP3、MPEG2/4、AVI 以及H.264 等數(shù)據(jù)流格式在線流暢的播放;并能充分利用OMAP3530 的雙核特性,由DSP 核進(jìn)行音視頻解碼,ARM 核完成系統(tǒng)的管理和控制。
1 系統(tǒng)方案
1.1 系統(tǒng)總體架構(gòu)
視頻播放器由三層組成。OMAP3530 處理器及其它外圍設(shè)備(如GPRS 模塊、Wi-Fi 模塊等)構(gòu)成底層硬件平臺層;Linux 內(nèi)核、驅(qū)動程序及圖形文件系統(tǒng)構(gòu)成中間層系統(tǒng)層;而嵌入式瀏覽器和音視頻播放插件構(gòu)成了最上層應(yīng)用層。嵌入式瀏覽器通過HTTP 協(xié)議訪問流媒體服務(wù)器,當(dāng)頁面需要流媒體支持時,以插件方式調(diào)用音視頻播放插件。系統(tǒng)總體架構(gòu)所示。
1.2 數(shù)據(jù)傳輸模型
系統(tǒng)的數(shù)據(jù)傳輸以HTTP 請求/響應(yīng)模型[2]為基礎(chǔ),當(dāng)用戶通過嵌入式瀏覽器點擊音視頻文件超鏈接時,將觸發(fā)建立一條與服務(wù)器的TCP 鏈接,嵌入式瀏覽器將HTTP 請求發(fā)送到服務(wù)器,請求中包含請求方法、URI、協(xié)議版本以及相關(guān)的MIME 樣式的消息。服務(wù)器響應(yīng)一個狀態(tài)行,包含消息的協(xié)議版本、一個成功和失敗碼以及相關(guān)的MIME 式樣的消息(包含服務(wù)器的信息、資源實體的信息和可能的資源內(nèi)容)。嵌入式瀏覽器在接收到HTTP 響應(yīng)消息之后開始檢查響應(yīng)消息中的內(nèi)容,當(dāng)碰到自身無法解析的資源名稱時,嵌入式瀏覽器會查詢插件注冊信息,當(dāng)MIME 類型與播放插件匹配時,則將該插件鏈接庫載入內(nèi)存,并將媒體資源的URL 以參數(shù)的形式傳遞給播放插件。音視頻插件從服務(wù)器下載流媒體文件由DSP 核解碼后播放,音頻解碼輸出AC’97 標(biāo)準(zhǔn)的音頻數(shù)據(jù),通過內(nèi)置擴(kuò)音器或外接立體聲耳機(jī)播放,視頻數(shù)據(jù)則通過LCD 顯示。
2 硬件設(shè)計
Web 播放器硬件平臺的核心為OMAP3530 處理器,外擴(kuò)了CPU 外設(shè)接口中的網(wǎng)口、音頻輸入輸出接口、USB OTG、USB HOST、SD/MMC 接口、串口、CAMERA 接口、LCD 屏接口等。該系統(tǒng)硬件框圖所示。
本系統(tǒng)采用核心板和底板分離設(shè)計, 兩塊板之間采用板間連接器連接,核心板采用八層布線,主要包含OMAP3530 處理器,DDR2 存儲器,以太網(wǎng)以及時鐘電路;底板采用四層布線,主要包括外圍接口電路。具體情況如下:
OMAP3530 處理器集成了600MHz 的 ARM Cortex? -A8 內(nèi)核及430MHz 的具有高級數(shù)字信號處理算法的TMS320C64x+? DSP 核,為423 腳BGA 封裝,引腳間距為0.65mm。
存儲器采用 Micro 公司生產(chǎn)的MT29C1G24MADLATA-6IT 芯片,為137 腳BGA 封裝,引腳間距0.8mm。該芯片集成了1Gbit DDR 和1Gbit FLASH。
音頻編解碼芯片采用TI 生產(chǎn)的TPS65930,它集成了電源,完整的音頻編解碼器以及其他功能,可以實現(xiàn)雙語音通道和立體聲下行信道,可播放所有標(biāo)準(zhǔn)音頻。
網(wǎng)口物理層芯片選擇DM9000 芯片。
系統(tǒng)采用 7 英寸TFT 格式的LCD 顯示屏,外接端口為0.5mm 并行端口,并配有轉(zhuǎn)接線。另外,系統(tǒng)還包括一個高速USB 2.0 HOST 接口,可接WIFI 模塊;一個USB OTG 接口,通過芯片ISP1504 來控制接收和發(fā)送數(shù)據(jù)。
3 軟件設(shè)計
3.1 開發(fā)環(huán)境
音視頻的播放需要DSP 核進(jìn)行解碼,并由ARM 核完成系統(tǒng)的管理和控制,因此需要在宿主機(jī)上建立一套ARM 端的交叉編譯環(huán)境以及DSP 端的DSP/BIOS 鏈接編譯環(huán)境,具體環(huán)境參數(shù)如下:
宿主機(jī)操作系統(tǒng)Ubuntu 8.10;
交叉編譯編譯工具鏈ARM GNU/Linux EABI 2012q1;
OMAP35x-PSP-SDK-02.01.03.11;
DVSDK_3_00_02_44。
由系統(tǒng)總體結(jié)構(gòu)可見,軟件設(shè)計主要包括以下幾個方面:移植和構(gòu)建系統(tǒng)的軟件平臺,包括引導(dǎo)程序和嵌入式Linux 移植、驅(qū)動程序的開發(fā)以及圖形化文件系統(tǒng)的構(gòu)建;移植嵌入式瀏覽器;開發(fā)音視頻播放插件。
3.2 引導(dǎo)程序的移植
引導(dǎo)程序由 X-Loader 和U-Boot 兩級組成,本系統(tǒng)中使用的版本分別為X-Loader-1.41和U-Boot 1.3.3。X-Loader 作為一級引導(dǎo)程序,在系統(tǒng)上電后由CPU 內(nèi)部ROM 自動復(fù)制到內(nèi)部RAM 并執(zhí)行。主要作用為初始化CPU,根據(jù)啟動方式從NAND Flash 或MMC/SD 復(fù)制U-Boot 到內(nèi)存中,然后把控制權(quán)交給U-Boot;二級引導(dǎo)程序U-Boot 主要用于和用戶進(jìn)行交互,提供映像更新、引導(dǎo)內(nèi)核等功能。
3.3 angstrom 桌面環(huán)境的構(gòu)建
angstrom 項目由原來效力于OpenEmbedded,OpenZaurus 和OpenSimpad 項目的一小組成員所啟動,旨在制作一個穩(wěn)定的,界面友好的嵌入式發(fā)行版本,用于手持設(shè)備,機(jī)頂盒和網(wǎng)絡(luò)存儲設(shè)備等嵌入式設(shè)備[3]。angstrom 系統(tǒng)中的提供了各種軟件,包括文檔編輯,上網(wǎng)瀏覽,音頻視頻播放及圖形編輯等功能,并可用USB 鍵盤鼠標(biāo)對此系統(tǒng)進(jìn)行操作控制。為此本系統(tǒng)采用在OMAP3530 上構(gòu)建angstrom系統(tǒng)來簡化嵌入式Linux 移植、驅(qū)動程序的開發(fā)、圖形化文件系統(tǒng)的構(gòu)建以及嵌入式瀏覽器移植等工作。angstr0m 系統(tǒng)通過在線構(gòu)建,配置參數(shù)如表1 所示。
由于 angstrom 系統(tǒng)中提供了可選的嵌入式Minefield 瀏覽器組件,嵌入式Minefield 瀏覽器支持一套NPAPI 的標(biāo)準(zhǔn)插件接口[4],通過實現(xiàn)這套接口可完成播放插件的調(diào)用。
3.4 音視頻插件的設(shè)計
從物理形式上看,音視頻插件可視為獨立于瀏覽器的一個動態(tài)鏈接庫,在Minefield 啟動時會從指定的文件夾獲取播放器插件的描述信息和對應(yīng)的MIME 類型,并根據(jù)獲取的信息在瀏覽器中進(jìn)行注冊。當(dāng)碰到自身無法解析的資源名稱時,Minefield 會查詢插件注冊信息,當(dāng)MIME 類型與播放器插件匹配時,則將該插件鏈接庫載入內(nèi)存。
當(dāng)插件被載入后,瀏覽器將為插件分配內(nèi)存并初始化實例的共享資源,然后將媒體資源的URL 以參數(shù)的形式傳遞給播放插件,直到瀏覽器完成數(shù)據(jù)傳輸或者數(shù)據(jù)傳輸被異常終止時才釋放數(shù)據(jù)流占用的相關(guān)資源并銷毀實例、釋放插件的共享資源。
播放插件由一個主線程和數(shù)據(jù)接收子線程、音頻解碼子線程、視頻解碼子線程、輸出子線程和用戶接口子線程組成。首先主線程對獲取的URL 參數(shù)進(jìn)行處理,主要是去除URL 中的冗余信息,并將參數(shù)進(jìn)行字符集轉(zhuǎn)換,并且根據(jù)媒體數(shù)據(jù)流的傳輸速度確定緩沖區(qū)大小。
在完成編解碼引擎運(yùn)行時(Codec Engine Runtime)和達(dá)芬奇多媒體應(yīng)用接口[5](DavinciMultimedia Application Interface)的初始化等工作后開啟各子線程;當(dāng)傳送的數(shù)據(jù)量達(dá)到最小緩沖數(shù)據(jù)量時,數(shù)據(jù)接收子線程對獲取的媒體數(shù)據(jù)進(jìn)行解析,通過剝離數(shù)據(jù)包頭文件來確認(rèn)媒體數(shù)據(jù)類型,從而實現(xiàn)音視頻的分離,最后將分離后的數(shù)據(jù)分別封裝成DMAI 需要的Buffer_Handle格式并分別送入音頻解碼FIFO 和視頻解碼FIFO;音頻(視頻)解碼子線程首先根據(jù)不同的數(shù)據(jù)類型,創(chuàng)建相應(yīng)的解碼器,然后從解碼FIFO 取出數(shù)據(jù)解碼,將解碼后數(shù)據(jù)送入音頻(視頻)顯示FIFO;輸出子線程以音頻為基準(zhǔn)完成音視頻同步后將數(shù)據(jù)分別送至音視頻輸出設(shè)備實現(xiàn)播放輸出。播放、暫停、停止等功能在UI 子線程中實現(xiàn)。
4 系統(tǒng)的功能特點
以 TI OMAP3530 處理器為核心,設(shè)計了Web 播放器硬件平臺,首先移植X-Loader、U-Boot 及angstrom 桌面環(huán)境,然后為Minefield 瀏覽器設(shè)計了音視頻播放插件,并實現(xiàn)了一個基于Davinci 架構(gòu)的嵌入式Web 視頻播放器。功能特點如下:
1)硬件平臺采用核心板和底板分離設(shè)計,核心板采用8 層板布線,底板采用4 層布線。功耗低,擴(kuò)展性好。核心板和底板分離設(shè)計不僅有利于根據(jù)不同的需要重新設(shè)計底板和開發(fā)新型產(chǎn)品,也有利于硬件調(diào)試和成本節(jié)約。
2) 支持多種音視頻格式,特別是支持H.264 視頻標(biāo)準(zhǔn)。充分利用處理器的雙核特性,ARM 完成系統(tǒng)中控制型任務(wù),視頻解碼由DSP 處理。
3) 基于 HTTP 協(xié)議的請求/響應(yīng)模型,在嵌入式Linux 平臺上,擴(kuò)展了瀏覽器的功能,瀏覽器以插件方式調(diào)用播放器實現(xiàn)音視頻的在線播放。
5 測試與結(jié)論
就校園網(wǎng)、電信寬帶等多種方式連接Internet,系統(tǒng)分別訪問了局域網(wǎng)、校園網(wǎng)、公網(wǎng)內(nèi)Web 服務(wù)器和視頻服務(wù)器,對播放器性能進(jìn)行測試。為由校園網(wǎng)連接Internet 在線播放太原理工大學(xué)電視臺網(wǎng)站新聞視頻的截圖,截圖通過運(yùn)行angstrom嵌入式桌面環(huán)境的GIMP 圖片編輯器抓取?傮w來說,設(shè)計達(dá)到了預(yù)期目標(biāo)。主要結(jié)論如下:
1)播放器硬件性能穩(wěn)定、可靠,引導(dǎo)程序正常啟動,操作系統(tǒng)運(yùn)行穩(wěn)定,圖形用戶界面友好;
2)播放器支持Flash、MMC/SD 等多種方式引導(dǎo)加載Linux 內(nèi)核及文件系統(tǒng);
3)系統(tǒng)支持RJ45、WIFI 輸入,支持觸摸屏,可外接鍵盤鼠標(biāo);
4)嵌入式瀏覽器運(yùn)行穩(wěn)定,在網(wǎng)絡(luò)帶寬得到保證時能流暢在線播放視頻。音視頻插件能夠支持多種音視頻格式,音頻格式主要有AAC、MP3 等,視頻格式主要有MPEG2/4、AVI 以及H.264。
中國碩士論文網(wǎng)提供大量免費碩士畢業(yè)論文,如有業(yè)務(wù)需求請咨詢網(wǎng)站客服人員!
參考文獻(xiàn)] (References)
[1] Texas Instruments. "OMAP35x DVEVM Getting Started Guide," [OL].
[2] 王超, 胡晨, 劉新寧等. 嵌入式系統(tǒng)中HTTP 協(xié)議的實現(xiàn)[J]. 電子器件, 2002, 25(1):93-96.
[3] LinuxToGo. "angstrom Manual," [OL].
[4] 劉巍, 陳蜀宇, 吳曉爍. 基于嵌入式Li nux 的媒體播放插件實現(xiàn)[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2012, 18(4):127-130.
[5] Texas Instruments. "Davinci Multimedia Application Interface," [OL]. Availabe:
【基于Davinci架構(gòu)的嵌入式Web播放器】相關(guān)文章:
基于Web的嵌入式數(shù)控系統(tǒng)實現(xiàn)03-07
基于嵌入式Web服務(wù)器的遠(yuǎn)程故障診斷系統(tǒng)03-18
基于WEB的在線考試系統(tǒng)03-09
基于Web服務(wù)的集成研究03-08
基于Web技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)03-18
淺析基于Internet定制營銷的企業(yè)架構(gòu)03-23