張瑩 郭卉 張志利

摘 要:采用美國飛思卡爾公司生產的一款基于ARM Cortex-A9體系結構的高性能CPU 即i.MX6Q,對網絡音頻視頻播放進行研究,制作了音頻視頻播放器平臺,解決了本地和網絡進行視頻播放的問題,該平臺可以在Linux系統上播放音頻和視頻。
關鍵詞:Linux;ARM9;i.MX6Q;音視頻播放
ARM開發平臺是當前使用廣泛的主流嵌入式處理器體系結構,以ARM為核心的嵌入式系統在數字音頻播放器、數字機頂盒、游戲機、數碼相機、數字式電視機、GPS、機頂盒中得到廣泛采用 [ 1 ]。
本文網絡音頻視頻播放進行研究,制作了音頻視頻播放器平臺,解決了本地和網絡進行視頻播放的問題,該平臺可以在Linux系統上播放音頻和視頻。
1 硬件結構
I.MX6Q是飛思卡爾公司推出的iMX6處理器后緊跟著推出的面向工業互聯網,汽車電子,軍工,航天等領域的二次開發參考設計平臺,包含了一顆1.2GHz主頻的Cotex-A9處理器。
1.1 I.MX6Q的音頻接口電路
飛思卡爾公司的I.MX6Q為本音頻系統的核心,內置視頻處理單元(VPU),支持多種格式的全雙工視頻影像處理,不占CPU資源。
三個硬件加速圖形處理單元(GPU):支持3D,2D圖形加速和矢量加速(Open VG)。
兩個獨立的影像處理單元(IPU):連接攝像頭和顯示通路以及相關的處理,同步和控制。
對總線擴展器模式進行設置,語音控制芯片為飛利浦公司的音頻控制芯片UDA1380,通訊方式為集成電路內置音頻總線方式和集成電路總線方式。
1.2 I.MX6Q的顯示電路
LCD作為人機接口的終端被廣泛應用,本文視頻系統功能中的播放功能采用LCD實現影像播放。
本系統作為功能實現為主要目的,對相應時間、可視角度、刷新率沒有特殊要求,只考慮屏幕顯示圖像的精細程度及分辨率,采用3.5寸的液晶LCD QVGA。
2 音視頻驅動實現
2.1 系統驅動
在系統內部,I/O設備的存取通過一組固定的入口來進行,這組入口點是由每個設備的驅動程序提供的[ 2 ]。
系統所需外部驅動程序通過驅動程序的file_operations結構來實現,該結構函數是驅動程序面向用戶的接口,在Linux 2.4里面,只要實現了file_operations里面的那些成員函數,即實現了驅動程序的編寫,讀取file_operation的函數指針,并且把控制權轉交給函數,即完成設備驅動程序。
具體方法是,在用戶自己編寫定義file_operations結構和設備驅動函數,編寫時要注意此操作函數必須在內核中進行注冊,否則不能識別。
2.2 音頻驅動
在Linux下對本音視頻播放系統進行編程時核心是操作聲卡設備的驅動程序文件[ 3 ],主要有Mixer編程和DSP編程[ 4 ]。
3 系統綜合測試
使用網絡接口把Mplayer媒體播放器復制到系統平臺。實際測量中首先使用用Ping 命令查看是否網絡相通,網段要求一致,測試方法是在終端設備鍵入ping 192.168.2.99。退出使用 umount /mnt/nfs。進入硬件系統后執行mount o nolock 192.168.2.136:/ /mnt將代碼復制到到開發平臺的ramdisk中,啟動運行mplayer,播放一個上傳的視頻文件,即可在LCD液晶屏上播放也可以在開發板的/etc/init.d/rcS文件中加入上面的命令腳本, LCD播放效果如圖1所示。
4 總結
本文搭建了一個基于ARM為控制核心的網絡音視頻播放系統,該系統采用飛思卡爾公司生產的一款基于CORTEX-A9內核的高性能CPU即I.MX6Q。
對網絡音頻視頻播放進行研究,制作了音頻視頻播放器平臺,解決了本地和網絡進行視頻播放的問題,該平臺可以在Linux系統上播放音頻和視頻,對于嵌入式播放音視頻研究有一定的積極意義。
參考文獻:
[1] 飛思科技產品研發中心,主流ARM嵌入式系統設計技術與實例精解.北京:電子工業出版社,2006.
[2] 于明,范書瑞,曾祥燁.ARM9嵌入式系統設計與開發教程[M].北京:電子工業出版社,2006.
[3] 何泉,賀玉梅.基于AT91RM9200的嵌入式音頻系統設計[J].微計算機信息,2007,(23):12-14.
[4] 高建華,王殊,基于I.MX6Q型微處理器和UDA1341型立體聲音頻編解碼器的嵌入式音頻系統設計[J].國外電子元器件,2006,(6):35-37.