基于Sitsang平臺的便攜式多媒體中心
2005年2月A
本設計在2004年全國大學生嵌入式系統(tǒng)專題競賽中獲得最高獎Intel杯。
摘要:本設計在充分利用Sitsang開發(fā)板原有資源的基礎上,通過增加硬件擴展系統(tǒng)、定制Linux內核和Qt/Embedded開發(fā)庫等手段,基于Qtopia桌面系統(tǒng)實現(xiàn)了一個便攜式多媒體中心。
關鍵詞:多媒體;嵌入式;Linux內核;Qt/Embedded開發(fā)庫
概述
Sitsang開發(fā)平臺是Intel專為嵌入式處理器PXA255設計的一個綜合開發(fā)平臺。PXA255 是Intel推出的取代StrongARMSA1110 的新一代嵌入式應用處理器,它擁有Thumb 壓縮指令、64位長乘法指令、擴展型DSP 指令等先進特性,并集成了多通信信道、LCD控制器、增強型存儲控制器、PCMCIA/CF 控制器以及通用I/O 口。Sitsang 開發(fā)平臺以PXA255為核心,配備了存儲器、液晶顯示屏、網(wǎng)卡、聲卡、USB控制器等設備,提供了豐富的外圍數(shù)據(jù)接口,包括IrDA、UART、USB擴展槽等外部數(shù)據(jù)接口。
本設計以Sitsang開發(fā)板作為嵌入式開發(fā)平臺,將“隨身看”、影音錄制、視頻輸出、海量存儲、視頻點播、網(wǎng)絡下載等多種功能融為一體,實現(xiàn)一個兼顧家庭娛樂和戶外便攜的便攜式多媒體中心。
系統(tǒng)總體方案
根據(jù)Sitsang開發(fā)平臺的資源情況以及設計的目標要求,本設計在原有的Sitsang開發(fā)平臺上擴展了一塊視頻擴展板,視頻擴展板的主要功能是視頻信號的輸出和錄制。系統(tǒng)總體結構如圖1所示。
圖1 系統(tǒng)框圖
系統(tǒng)實現(xiàn)
媒體播放器
多媒體功能是本系統(tǒng)的重點,所以媒體播放器在本系統(tǒng)中具有舉足輕重的地位。為了能夠流暢播放多種格式的視頻文件,本系統(tǒng)在Sitsang開發(fā)板上移植、修改并優(yōu)化了Linux媒體播放器MPlayer。
MPlayer是Linux 上最優(yōu)秀的多媒體播放器。它能使用眾多的編解碼器,支持廣泛的輸出設備。
MPlayer在Sitsang板上播放時,顏色會出現(xiàn)偏差;正常模式不能在FrameBuffer的中間顯示;帶-fs的全屏參數(shù)播放后,只是將播放位置移到中間,并不放大,而且該模式不支持在播放時通過鍵盤事件觸發(fā)。如果要放大屏幕,需要加-vf scale=
MPlayer自帶的mp3lib浮點音頻解碼庫在Sitsang開發(fā)板上的解碼效率很低,因此使用基于定點運算的libmad音頻解碼庫替代原有的mp3lib庫進行音頻解碼。
MPlayer圖形界面在Qtopia視窗環(huán)境下無法運行。為了方便用戶使用,本系統(tǒng)提供了MPlayer在Qtopia下的用戶圖形界面。為了能將圖形界面的控制命令及時傳遞給MPlayer,使用MPlayer的-input選項,通過一個FIFO從GUI向后端程序傳遞控制信息。
通過上述優(yōu)化、修改后的MPlayer,能夠滿足系統(tǒng)方案中提出的流暢播放各種格式音、視頻文件的要求。
視頻輸出
本系統(tǒng)的視頻輸出電路(圖2)采用將Sitsang開發(fā)板上的LCD輸出直接映射到電視機上的方式。這樣做的好處是:兩個輸出完全同步,媒體播放器可以不必理會輸出對象的改變。
具體的實現(xiàn)是通過硬件完成的。LCD控制器輸出的視頻信號(RGB數(shù)字信號)通過Philips公司的視頻編碼芯片SAA7102轉換成模擬復合視頻信號(CVBS)和分量視頻信號(Y/C),然后傳輸給電視機。因為LCD輸出的時鐘頻率和SAA7102工作的時鐘頻率不同步,數(shù)據(jù)寬度也不相同,所以在系統(tǒng)中加了一片F(xiàn)IFO(74V3690),起數(shù)據(jù)緩存、時鐘轉換及數(shù)據(jù)寬度轉換的作用。在每幀信號開始的時候,由VSYNC信號實現(xiàn)三者同步。由于LCD輸出的數(shù)據(jù)寬度是SAA7102輸入數(shù)據(jù)的兩倍,所以用了一個倍頻電路將SAA7102的時鐘信號加倍,以滿足數(shù)據(jù)傳輸?shù)乃俾室蟆?/p>
圖2 視頻輸出電路框圖
影音錄制
影音錄制部分(圖3)也是通過硬件實現(xiàn)的。輸入的模擬復合視頻信號經Philips的視頻解碼芯片SAA7113轉換為數(shù)字信號,以YUV方式傳輸給華邦公司的JPEG壓縮芯片W9968,經硬件壓縮為Motion JPEG圖像信號并通過擴展總線接口傳輸?shù)絊itsang開發(fā)板。音頻輸入信號則直接通過Sitsang開發(fā)板上的音頻輸入接口送到Sitsang開發(fā)板上的音頻編碼芯片,轉換成數(shù)字信號并進行編碼。應用程序將Motion JPEG圖像信號與音頻信號一起轉換為基于Motion JPEG編碼的AVI格式媒體文件并存入移動硬盤。保存下來的文件可以直接被MPlayer播放。
圖 3 視頻錄制電路框圖
為了給媒體文件的存儲提供大量的空間,本系統(tǒng)通過板上的USB主端口擴展30GB移動硬盤和通用讀卡器。并重新定制Linux內核,使其增加對USB移動硬盤和通用讀卡器的支持。
紅外遙控
為了方便用戶的控制,在視頻擴展板上安裝了紅外遙控接收模塊,其基本結構如圖4所示。其中紅外接收裝置僅僅是一個紅外接收頭,接收到的串行數(shù)據(jù)信號送入MCU( 89C2051),由軟件進行解碼。這樣做的好處是可以通過修改軟件實現(xiàn)對不同遙控器的兼容,同時也充分利用了視頻擴展板上的資源。
解碼后的數(shù)據(jù)通過串口送往Sitsang開發(fā)板。Qt/Embedded鏈接庫提供對終端設備、虛擬鍵盤和USB鍵盤等多種輸入設備的支持。為了讓Sitsang開發(fā)板支持紅外遙控器,修改了Qt/Embedded中處理USB鍵盤事件的部分,將從串口讀入的數(shù)據(jù)作為鍵盤事件來處理,結合應用程序中熱鍵的定義,完成了遙控功能。
圖4 紅外遙控部分的基本結構
網(wǎng)絡服務
有了媒體播放器的支持,用戶基于寬帶網(wǎng)絡既可以利用FTP下載工具,從FTP站點上下載影音資源,又可以通過VOD點播系統(tǒng)實現(xiàn)在線觀看視頻節(jié)目,享受豐富的網(wǎng)絡資源。本系統(tǒng)支持基于HTTP協(xié)議的順序流式VOD點播和網(wǎng)絡文件系統(tǒng)NFS的視頻點播。除提供VOD點播服務外,本部分還提供網(wǎng)絡廣播的收聽和網(wǎng)絡文件系統(tǒng)的功能。
結語
本系統(tǒng)通過移植MPlayer播放器,擴大Sitsang平臺的功能,支持MPEG-1、MPEG-2、DivX3、DivX4、DivX5、XviD等視頻格式和MP3、WMA等音頻格式文件的流暢播放。同時還支持HTTP協(xié)議的網(wǎng)絡文件的播放和網(wǎng)絡廣播的收聽。
視頻擴展板的輸出信號穩(wěn)定,色彩自然。配合寬屏幕的彩色電視機,給人以美好的視覺享受。視、音頻信號錄制功能可以實現(xiàn)錄像機、網(wǎng)絡機頂盒等功能,與LCD配合又可以使得“隨身看”的節(jié)目源多樣化。紅外遙控功能操作簡單,能在相當大的范圍內保證正確的識別。
系統(tǒng)中提供的其它模塊涉及到圖像處理、文件管理、網(wǎng)絡下載、移動存儲等軟硬件技術,在測試中各模塊工作正常,性能穩(wěn)定,達到了設計的指標。
參考文獻:
1. 陳章龍等,嵌入式技術與系統(tǒng)——Inter XScale結構與開發(fā),北京:北京航空航天大學出版社,2004
2. Arthur Griffith,KDE 2/Qt編程寶典,北京:電子工業(yè)出版社,2002
評論