概述
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=:參數(shù),,但會導致播放極不流暢。因此對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轉換成模擬復合視頻信號(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)的。輸入的模擬復合視頻信號經(jīng)Philips的視頻解碼芯片SAA7113轉換為數(shù)字信號,,以YUV方式傳輸給華邦公司的JPEG壓縮芯片W9968,,經(jīng)硬件壓縮為Motion JPEG圖像信號并通過擴展總線接口傳輸?shù)絊itsang開發(fā)板。音頻輸入信號則直接通過Sitsang開發(fā)板上的音頻輸入接口送到Sitsang開發(fā)板上的音頻編碼芯片,,轉換成數(shù)字信號并進行編碼,。應用程序將Motion JPEG圖像信號與音頻信號一起轉換為基于Motion JPEG編碼的AVI格式媒體文件并存入移動硬盤。保存下來的文件可以直接被MPlayer播放,。
圖 3 視頻錄制電路框圖
為了給媒體文件的存儲提供大量的空間,,本系統(tǒng)通過板上的USB主端口擴展30GB移動硬盤和通用讀卡器。并重新定制Linux內(nèi)核,,使其增加對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é)目源多樣化,。紅外遙控功能操作簡單,能在相當大的范圍內(nèi)保證正確的識別,。
系統(tǒng)中提供的其它模塊涉及到圖像處理,、文件管理、網(wǎng)絡下載,、移動存儲等軟硬件技術,,在測試中各模塊工作正常,性能穩(wěn)定,,達到了設計的指標,。
參考文獻:
1. 陳章龍等,,嵌入式技術與系統(tǒng)——Inter XScale結構與開發(fā),北京:北京航空航天大學出版社,,2004
2. Arthur Griffith,,KDE 2/Qt編程寶典,北京:電子工業(yè)出版社,,2002