《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM9的媒體播放器的設計方案
基于ARM9的媒體播放器的設計方案
摘要: 本系統(tǒng)利用TQ2440硬件平臺的優(yōu)勢,將Linux2.6.14內核移植到開發(fā)板中,設計實現了一款基于嵌入式Linux的機頂盒流媒體播放器,完成了其與網絡接口的實現,通過TS流的解析實現,提供了對主流的MPEG-2、MPEG-4、H.264等格式文件的支持。該系統(tǒng)具有良好的可移植性和可擴展性,能夠滿足市場需求的不斷變化。
Abstract:
Key words :

1 引言

計算機多媒體技術和網絡技術飛速發(fā)展使得基于流媒體的多媒體應用也被運用在多種領域,特別是網絡可視電話、遠程監(jiān)控、視頻點播領域。伴隨著計算機多媒體壓縮技術的成熟和網絡傳輸技術的發(fā)展,開發(fā)實時可靠、多功能、數字化、操作簡單的基于計算機網絡通訊技術和多媒體應用的網絡化流媒體播放器已成為計算機、通信、消費電子產品領域(3C 產業(yè)-Computer、Communication、Consumer Electronics)技術發(fā)展的主要方向之一。

2 系統(tǒng)硬件設計

本文使用TQ2440 開發(fā)板作為硬件平臺。

S3C2440AL 是控制核心,負責控制所有輔助設備。存儲器采用SDRAM 和Flash 兩種類型,能滿足系統(tǒng)運行和調試的需要?;径丝诎ㄒ蕴W接口、USB 接口、兩個RS232 的串口。A/D 和D/A 模塊主要用于現場數據的采集與控制信號的輸出。DC/DC 模塊主要負責整個系統(tǒng)的供電。

S3C 2440AL 是三星公司設計開發(fā)的基于精簡指令集的ARM9 核的CPU, 工作頻率可以達到400MHz,且具有豐富的內部設備,其中主要包括:存儲器管理單元MMU、16kB 的指令緩沖器和16kB 數據緩沖器、存儲器控制器(SDRAM 控制器)、NANDFlash 和NOR Flash 控制器、4 通道的外部DMA 請求控制、3 個串行口、SD 存儲卡讀取接口、USB 主機、USB 設備、5 個脈寬調制定時器。目前,S3C2440AL 已廣泛地應用于PDA、智能手機、數字多媒體等方面。

3 系統(tǒng)的軟件設計

系統(tǒng)的軟件組成包括:嵌入式Linux 操作系統(tǒng)、設備驅動程序、圖形界面和瀏覽器程序,這些只是IPTV 機頂盒軟件組成的關鍵部分。

3.1 嵌入式操作系統(tǒng)的選擇及移植

本系統(tǒng)采用Linux 作為操作系統(tǒng),并選用Linux2.6內核在嵌入式微處理器S3C2410 上移植,具體移植方法如下:

(1)準備Linux2.6 內核移植所必需的文件(內核壓縮包linux-2.6.tar.bz2 及交叉編譯器arm -linuxgcc-3.4.1.tar.bz2),這些文件可到Linux 官方網站免費下載。

(2)利用Linux 命令(mkdir,tar,mv 及export)安裝交叉編譯器arm-linux-gcc-3.4.1.

(3)修改Makefile 文件及相關硬件文件。由于內核的編譯是根據Makefile 文件的指示進行的,Makefile 文件來組織內核的各模塊之間的關系,記錄了各個模塊之間的相互聯(lián)系和依賴關系。所以,開發(fā)人員要首先修改Linux2.6 根目錄下的Makfile 文件,修改的主要內容是目標代碼的類型和為編譯內核指定一個編譯器。

(4)運用Make 命令編譯內核生成內核鏡像文件zImage 文件,通過相應的固化軟件把這個文件固化在系統(tǒng)相應的存儲器中,完成Linux2.6 內核在ARM 微處理器上的移植。

3.2 媒體播放器的總體架構

系統(tǒng)實現原理:在嵌入式微處理器S3C2440AL的控制下,TQ2440 開發(fā)板通過網絡接口接收來自內容服務提供商的音視頻廣播信息,之后運行圖形界面程序獲取音視頻信息,并在此基礎上生成音視頻節(jié)目清單,將信號傳至顯示屏進行顯示,將節(jié)目呈現給用戶。用戶利用顯示系統(tǒng)提供的圖形界面和瀏覽器使用鍵盤、鼠標進行控制,觀看節(jié)目,其總體架構如圖1 所示。

圖1 媒體播放器的總體架構

3.2.1 媒體播放器與網絡接口的實現

媒體播放器播放網絡上的多媒體文件時最大的特點是邊下載邊播放的"流式"特性。在IPTV 應用中,因為多媒體數據的流式特性需要媒體播放器與媒體服務器之間進行信息交互,所以它們之間須共同遵循一個交互協(xié)議標準。本系統(tǒng)播放器采用RTSP 協(xié)議與服務器之間建立及管理RTSP 會話,通過網絡傳輸協(xié)議接收來自網絡上的媒體數據。媒體播放器數據接收流程如圖2 所示。

圖2 媒體播放器數據接收流程

3.2.2 TS 流解析實現

在MPEG-2 系統(tǒng)中根據傳輸媒體的質量不同定義了兩種復合信息流:傳送流(TS:Transport Stream)和節(jié)目流(PS:Program Stream)。TS 流與PS 流的區(qū)別在于TS 流的包結構是固定長度的,而PS 流的包結構是可變長度的。PS 包TS 包在結構上的這種差異,致使TS 流比PS 流對傳輸誤碼的抵抗能力更強,因此在本設計中的網絡多媒體數據采用了TS 的封裝格式。TS 包的結構如圖3 所示,由包頭和包數據兩部分組成,包頭長度占4B,自適應區(qū)和包數據共占184B,整個TS 包長度相當于4 個ATM 包長。

圖3 TS 包的結構

因為在TS 流里可以填入很多東西,所以制定TS流標準的機構就規(guī)定了PSI (Program SpecificInformation)表,其作用是從一個攜帶多個節(jié)目的某一個TS 流中正確找到特定的節(jié)目。

PSI 表包括以下四個表:

(1)PAT 表(Program Association Table)即節(jié)目關聯(lián)表,它的主要作用是指出該傳輸流ID,以及該路傳輸流中所對應的幾路節(jié)目流的MAP 表和網絡信息表的PID.

(2)PMT 表(Program Map Table)即節(jié)目映射表,該表的PID 由PAT 提供,通過該表可以得到一路節(jié)目中包含的信息。

(3)CAT 表(Conditional Access Table)即條件訪問表,PID 是0x01.CAT 攜帶的是服務器的私有信息(CA 系統(tǒng)就需要使用該表格實現節(jié)目的解密)。

(4)NIT 表(Network Information Table) 即網絡信息表,該表包括數字電視網中所有的傳輸流的物理傳輸網信息,包含節(jié)目的頻道調諧參數、頻率、符號率等,這些信息使得接收機可以按照用戶的選擇以很少的延時或無延時地改變頻道、調諧參數,正確地解碼出TS。

所以TS 流解析流程如圖4所示:先接收一個負載里為PAT 的數據包,在整個數據包里找到一個PMT 包的ID.然后再接收一個含有PMT 的數據包,在這個數據包里找到有關填入數據類型的ID.之后就在接收到的TS 包里找到含有這個ID 的負載內容就是填入的信息。根據填入的數據類型的ID 的不同,在TS 流復合多種信息,解有這些信息的傳輸包即可解出音視頻的PES 包,最終解出音頻流和視頻流。

圖4 TS 流解析流程

由于時間和資源有限,本設計中移植成熟的QT/Embedded 庫到機頂盒的嵌入式系統(tǒng),作為其圖形界面類庫。Qt/Embedded 采用frame buffer (幀緩沖)作為底層圖形接口。同時,將外部輸入設備抽象為keyboard 和mouse 輸入事件。Qt/Embedded 的應用程序可以直接寫內核緩沖幀,這避免開發(fā)者使用繁瑣的XLIB/Server 系統(tǒng)。界面程序流程圖如圖5 所示。

圖5 界面程序流程圖

4 結語

本系統(tǒng)利用TQ2440 硬件平臺的優(yōu)勢,將Linux2.6.14 內核移植到開發(fā)板中,設計實現了一款基于嵌入式Linux 的機頂盒流媒體播放器,完成了其與網絡接口的實現,通過TS 流的解析實現,提供了對主流的MPEG-2、MPEG-4、H.264 等格式文件的支持。該系統(tǒng)具有良好的可移植性和可擴展性,能夠滿足市場需求的不斷變化。

此內容為AET網站原創(chuàng),未經授權禁止轉載。