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