亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式的車載多媒體軟件開發(fā)

        2016-05-14 21:43:50李飛
        現(xiàn)代電子技術(shù) 2016年9期
        關(guān)鍵詞:嵌入式系統(tǒng)

        李飛

        摘 要: 設(shè)計了一種基于嵌入式系統(tǒng)的高清晰、便攜式的車載播放系統(tǒng)。該播放系統(tǒng)的軟件設(shè)計以Mplayer為后臺,實現(xiàn)對音視頻文件的解碼播放等工作,并以Qt的基礎(chǔ)類庫為基礎(chǔ)設(shè)計了嵌入式多媒體播放器的前端控制圖形界面,通過創(chuàng)建QProcess進程,實現(xiàn)對播放過程的控制,與后臺Mplayer進行通信,實時獲取并顯示播放信息,并在指定窗口對音視頻碼流進行輸出顯示。

        關(guān)鍵詞: 汽車多媒體; 車載播放; 嵌入式系統(tǒng); 多媒體播放器

        中圖分類號: TN919?34; TM417 文獻標(biāo)識碼: A 文章編號: 1004?373X(2016)09?0149?04

        Abstract: A highly definite and portable vehicle?mounted broadcast system based on embedded system was designed. The software design of this broadcast system takes Mplayer as the background to realize the decoding and broadcast work of the audio and video files. The front?end control graphical interface of the embedded multimedia player was designed based on Qt foundation class library. The QProcess process was established to control the broadcast process, communicate with background Mplayer, acquire and display the broadcast information in real time, and output and display the audio and video code stream at the specified window.

        Keywords: automobile multimedia; vehicle?mounted broadcast; embedded system; multimedia player

        目前,國內(nèi)車載電子設(shè)備市場極度缺乏多媒體綜合軟件,該軟件能有效地將車載導(dǎo)航、影音圖像、倒車?yán)走_、娛樂互動等多個功能整合,方便乘客和車主的使用[1]。將多種娛樂和使用功能整合統(tǒng)一,使得設(shè)備簡潔美觀,同時降低了重復(fù)安裝的成本和投入??梢詷O大地減少車內(nèi)空間消耗,降低整車油耗[2]。多媒體共屏展示也能保證駕駛員的操作強度,保證行車安全。因此,將行車信息、娛樂互動、交流通信、車載導(dǎo)航等功能集于一體的嵌入式綜合媒體系統(tǒng)符合市場和環(huán)境的發(fā)展要求[3]。

        1 車載嵌入式播放器總體設(shè)計

        出于應(yīng)用領(lǐng)域、自帶資源、可擴展資源、功耗等多方面的考慮,選擇Linux 內(nèi)核為嵌入式多媒體播放器的操作系統(tǒng)核心。將多媒體技術(shù)應(yīng)用于嵌入式系統(tǒng)中面臨著諸多的技術(shù)難題,嵌入式設(shè)備的特點決定了其資源通常非常有限,而有限的資源意味著需要進行多方面技術(shù)的優(yōu)化[4]。

        首先,嵌入式設(shè)備采用蓄電池提供能源,所以對系統(tǒng)的功耗要求比較嚴(yán)格;第二,嵌入式設(shè)備上通常沒有實用的圖像加速器,聲卡等硬件加速設(shè)備的支持;第三,不存在DirectX,DirectShow等高層多媒體的支持?;谏鲜隹紤],有必要設(shè)計適用于嵌入式應(yīng)用的嵌入式處理器,嵌入式操作系統(tǒng)。根據(jù)嵌入式多媒體播放器的功能需求及技術(shù)特點,通常將嵌入式多媒體播放器的體系結(jié)構(gòu)劃分為硬件層、內(nèi)核層和應(yīng)用層,具體如圖1所示。

        系統(tǒng)的硬件層的硬件平臺包括嵌入式微處理器和外圍設(shè)備,通過合理選型和匹配可以完成滿意的底層硬件組合。本系統(tǒng)的嵌入式MCU使用三星公司的S3C2410高速微處理器,S3C2410高速微處理器作為整個硬件系統(tǒng)的控制核心,接收、處理相關(guān)數(shù)據(jù)并實時發(fā)出控制指令。與其配合的系統(tǒng)外圍設(shè)備是完成系統(tǒng)功能的必要組建和模塊,涉及系統(tǒng)存儲模塊FLASH和E2PROM,LCD輸出單元、主控外圍電路和音頻輸出模塊等。

        軟件部分包含應(yīng)用層和內(nèi)核層兩個部分。應(yīng)用層包含嵌入式Linux操作系統(tǒng)和硬件驅(qū)動程序,包括BootLoader, Linux內(nèi)核,根文件系統(tǒng)3部分。應(yīng)用層包含嵌入式用戶應(yīng)用程序、音頻解碼器和GUI。本系統(tǒng)選擇嵌入式Linux操作系統(tǒng)作為操作系統(tǒng)[5]。

        2 操作系統(tǒng)平臺的構(gòu)建

        內(nèi)核是整個Linux系統(tǒng)的核心,根據(jù)實際情況針對內(nèi)核的配置進行選擇,本質(zhì)上指根據(jù)開發(fā)系統(tǒng)的功能需求對已有的操作系統(tǒng)進行選擇,保留開發(fā)需求的系統(tǒng)單元,刪除不需要的模塊單元。在本系統(tǒng)中,嵌入式Linux內(nèi)核選擇ARM?Linux內(nèi)核。Linux內(nèi)核的配置系統(tǒng)由Makefile、配置文件(config.in)、配置工具組成[6]。完成內(nèi)核的數(shù)據(jù)參數(shù)配置后,不能將程序數(shù)據(jù)直接下載到嵌入式系統(tǒng)中進行調(diào)試運行,因為此時數(shù)據(jù)仍然以源代碼的形式存在。此時,為了生成最終能在嵌入式操作系統(tǒng)上運行的可執(zhí)行代碼[7],需要進一步對內(nèi)核進行編譯。

        過程結(jié)束后,Image和zImage兩個內(nèi)核映像文件會在arch/arm/boot目錄下生成,zImage為壓縮后的映像文件,Image為正常大小的映像文件。得到內(nèi)核映像文件后,首先在開發(fā)板使用的宿主機(PC)上建立一個tftp服務(wù),使用DNW工具,在開發(fā)板上電時按任意鍵進入U?Boot提示符,執(zhí)行以下命令:

        在嵌入式操作系統(tǒng)正常運行時,需要使用根文件系統(tǒng)支持各種功能[8],在內(nèi)核剛啟動運行時根文件系統(tǒng)需要掛載起來用于支持訪問外部設(shè)備,同時完成內(nèi)核模塊應(yīng)用程序的裝載和運行,避免出現(xiàn)Kernelpanic的情況,防止系統(tǒng)內(nèi)核在啟動時沒有根文件的支持。在實際應(yīng)用中,嵌入式操作系統(tǒng)使用動態(tài)隨機存取器、同步動態(tài)隨機存取器、FLASH存儲器作為存儲設(shè)備[9]。基于存儲設(shè)備,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常見系統(tǒng)作為存儲設(shè)備的嵌入式文件系統(tǒng)。在本系統(tǒng)中,選擇NANDFLASH作為硬件提案所使用的存儲芯片,選用NANDFLASH上使用比較廣泛的Cramfs文件系統(tǒng)作為嵌入式根文件系統(tǒng)。

        嵌入式Linux 操作系統(tǒng)的啟動流程如圖2所示。系統(tǒng)啟動流程包括六個步驟:

        (1) 系統(tǒng)復(fù)位,從地址0x00開始執(zhí)行,進入步驟(2);

        (2) 啟動Bootloader模塊,進入步驟(3);

        (3) 判斷系統(tǒng)是否進入Linux,啟動Linux內(nèi)核映像,不啟動則進入U?boot的命令操作環(huán)境,如果啟動內(nèi)核,進入步驟(4);

        (4) 系統(tǒng)從NANDFLASH加載內(nèi)核到內(nèi)存中,完成對硬件設(shè)備的初始化工作,進入步驟(5);

        (5) 掛載根文件系統(tǒng),執(zhí)行init進程,并從/etc/inittab取得配置文件,進入步驟(6);

        (6) 提示執(zhí)行用戶應(yīng)用程序或用戶登錄信息。

        3 視頻播放器軟件設(shè)計

        3.1 基于Mplayer實現(xiàn)多媒體播放器

        Mplayer是一個Linux下的電影播放器(也能運行在許多其他的Unices和非X86的CPU上)。Mplayer的邏輯結(jié)構(gòu)可以分為四個層次,即:輸入層、分流層、解碼層和輸出層,其結(jié)構(gòu)如圖3所示。

        本文選擇Mplayer作為后臺設(shè)計播放軟件。利用Qt/E為軟件平臺設(shè)計GUI圖形控制界面,對多媒體播放器的播放過程進行控制。由于條件限制,本實驗在宿主機上編譯并安裝了Mplayer,通過Qt設(shè)計基于X86的多媒體播放器。

        3.2 軟件總體模塊設(shè)計

        由于Qt/Embedded工具可以繞過X Windows System協(xié)議客戶端庫,直接讀/寫幀緩存的FrameBuffer的數(shù)據(jù)信息,因此實現(xiàn)Qt類庫對幀緩存的直接讀/寫操作,使用基于Qt/Embedded的應(yīng)用程序可以完成。本系統(tǒng)使用嵌入式Linux作為操作系統(tǒng),通過Qt的圖形平臺和函數(shù)庫完成嵌入式多媒體綜合播放。多媒體播放系統(tǒng)采用模塊化設(shè)計思想,其架構(gòu)如圖4所示。

        嵌入式多媒體播放器包含五個主要的模塊:

        (1) I/O(輸入/輸出模塊):用于多媒體文件的讀入和輸出。

        (2) UI(用戶界面單元):用戶界面單元的作用是方便用戶操作嵌入式媒體播放器的各項功能,提供良好的人機操作互動界面和使用體驗。

        (3) 插件接口單元:讀入多媒體數(shù)據(jù)(通過輸入插件獲取I/O模塊發(fā)送過來的數(shù)據(jù))、調(diào)用Mplayer對文件進行解碼播放、文件總的時間長度、編碼類型、比特率等信息的獲取、暫停、快進、快退、停止、輸出、輸入等的動作,輸入動作具體指將輸出插件完成解碼的數(shù)據(jù)信息傳送到系統(tǒng)輸出輸入單元的過程。

        (4) Mplayer解碼單元:為了對不同類型的多媒體文件進行解碼操作,系統(tǒng)選擇的Mplayer解碼單元由分離器、音視頻解碼器等部分組成。

        (5) GUI單元:為了方便快捷的產(chǎn)生讀/寫FrameBuffer以及用戶界面, GUI單元通過使用Qt/E嵌入式工具作為底層圖形庫。

        軟件總體模塊中各單元之間的相互連接關(guān)系是:通過輸入/輸出單元讀入音視頻信息數(shù)據(jù),用戶界面單元在接收到播放信息指令后,調(diào)用插件模塊相應(yīng)的函數(shù),產(chǎn)生相應(yīng)的信號,調(diào)用Mplayer完成對多媒體文件的解碼,完成解碼之后將數(shù)據(jù)送到I/O模塊輸出。

        3.3 控制流程設(shè)計

        主程序設(shè)計流程如圖5所示。當(dāng)從菜單項打開視頻文件時會觸發(fā)triggered()信號,執(zhí)行slotopen()槽函數(shù),調(diào)用Qfiledialog的getOpenFileName()函數(shù)從對話框中選擇要播放的視頻文件。系統(tǒng)首先判斷文件格式是否為*.avi格式,如果是,則創(chuàng)建一個Qprocess進程,通過該進程調(diào)用Mplayer后臺對視頻文件進行播放,并在指定區(qū)域進行輸出顯示。

        4 交互式圖形界面設(shè)計

        QImage類提供了一種與硬件訪問無關(guān)的圖片存儲方式。QPainter則主要用來完成繪圖事件。QPushButton提供了圖形用戶界面最長用到的命令按鈕部件。此GUI交互界面利用Qt Designer以QMainWindow類為基礎(chǔ)設(shè)計了主框架,包括菜單欄以及狀態(tài)欄等;同時,以QWidget類為基礎(chǔ)創(chuàng)建了一個對視頻播放進行控制的插件接口,并通過合理的布局與主窗體組合在一起。

        在指定目錄打開avi格式視頻文件,運行效果如圖7所示。在播放過程中,通過狀態(tài)欄實時顯示當(dāng)前視頻文件的播放時間。通過界面下方的按鈕對播放器的播放過程進行音量調(diào)節(jié)、暫停、快進、快退、停止等控制,基本達到了預(yù)期的效果。打開視頻文件時,終端開始輸出文件的加載路徑,開始讀取并輸出ANS_TIME_POSITION(視頻播放時間)參數(shù)值,在Qt與Mplayer之間完成了通信。

        當(dāng)在控制臺實施各種控制操作時,在終端輸出執(zhí)行的操作動作并發(fā)送該信號,調(diào)用相應(yīng)的槽函數(shù)完成對視頻播放的控制動作。

        以上是在主機上運行播放程序執(zhí)行播放控制的過程。在主機上運行的Qt程序是基于X結(jié)構(gòu)的,而在實際的嵌入式開發(fā)中,需要直接通過FrameBuffer進行顯示。由于條件限制及其他因素,通過qvfb模擬程序在嵌入式開發(fā)板中運行的情況,如圖8所示。

        從圖8中可以看出,在qvfb中運行該程序時,菜單項的中文顯示出現(xiàn)了方塊型的亂碼,這說明菜單項已經(jīng)得到了識別,只是qtopia中缺少相應(yīng)的中文字體庫,在默認的情況下,qvfb會調(diào)用字體庫中的默認字體,這樣在顯示中文時會出現(xiàn)如上問題??梢栽诰W(wǎng)絡(luò)上下載相應(yīng)的中文字體庫并拷貝到Trolltech/Qtopiacore?opensource?4.3.0/lib/fonts中。

        6 結(jié) 論

        本文通過對車載播放系統(tǒng)的設(shè)計,根據(jù)車載嵌入式多媒體播放器的功能需求和技術(shù)特點,選擇一款合適的嵌入式處理器,在此平臺上構(gòu)建了功能完整的嵌入式Linux系統(tǒng)開發(fā)平臺。經(jīng)過對Qt的GUI設(shè)計的研究,以Qt的基礎(chǔ)類庫為前端設(shè)計嵌入式多媒體播放器的前端控制圖形界面。通過創(chuàng)建QProcess進程,實現(xiàn)了對播放過程的控制,與后臺Mplayer進行通信,實時讀取并顯示播放信息,并在指定窗口對音視頻碼流進行輸出顯示。通過測試表明,本系統(tǒng)達到了應(yīng)用于車載音視頻播放的要求,對相關(guān)開發(fā)具有重要參考價值。

        參考文獻

        [1] 趙丙辰.嵌入式系統(tǒng)的核心:嵌入式處理器的分類與選型[J].新鄉(xiāng)師范高等??茖W(xué)校學(xué)報,2012(7):89?90.

        [2] 吳偉清,王磊,吳朝暉.基于QTE的嵌入式Linux中文環(huán)境解決方案[J].計算機工程,2013(2):55?56.

        [3] 王建民,張宏壯.基于Qt的嵌入式媒體播放器系統(tǒng)的設(shè)計[J].微計算機信息,2013(5):66?68.

        [4] 李夢亮,翁正新.Mplayer和Qtopia在嵌入式無線卡拉OK點播終端中的應(yīng)用[J].微計算機應(yīng)用,2013(2):10?12.

        [5] 孫天澤.嵌入式Linux操作系統(tǒng)[M].北京:人民郵電出版社,2009:101?103.

        [6] 許信順,智平.嵌入式Linux應(yīng)用編程[M].北京:機械工業(yè)出版社,2007:95?96.

        [7] 王志誠.基于ARM9的嵌入式Linux操作系統(tǒng)的移植[J].陶瓷,2010(3):50?52.

        [8] 韓合民.基于ARM平臺的嵌入式流媒體播放技術(shù)的研究和應(yīng)用[D].西安:西安電子科技大學(xué),2008:89?90.

        [9] 林楓,孟超.基于CS5518的汽車多媒體的觸摸面板的設(shè)計[J].現(xiàn)代電子技術(shù),2015,38(2):62?64.

        猜你喜歡
        嵌入式系統(tǒng)
        Teaching Research on IoT and—Embedded System of Software Engineering
        計算機教育(2016年8期)2016-12-24 10:34:05
        基于Xilinx口袋實驗室的組合邏輯電路設(shè)計實驗
        面向應(yīng)用的智能專業(yè)嵌入式系統(tǒng)教學(xué)
        基于物聯(lián)網(wǎng)的遠程紅外控制器
        嵌入式系統(tǒng)軟件開發(fā)技術(shù)探析
        基于AVR單片機的SPI接口設(shè)計與實現(xiàn)
        辦公自動化系統(tǒng)的設(shè)計
        嵌入式系統(tǒng)在醫(yī)療器械中的應(yīng)用分析
        基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
        嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
        計算機教育(2016年7期)2016-11-10 08:31:34
        亚洲一区二区视频免费看| 精品无码中文字幕在线| 特级毛片a级毛片免费播放| 偷拍网日本一区二区三区| 一本色道久久88综合亚洲精品| 丰满又紧又爽又丰满视频| 亚洲精品无码不卡在线播he| 国产一区二区女内射| 国产成人精品三级麻豆| 日本岛国大片不卡人妻| 中文字幕乱码人妻在线| 人人人妻人人人妻人人人| 少妇高潮喷水久久久影院| 亚洲国产成人精品女人久久久 | 亚州五十路伊人网| 国产成人av三级三级三级在线| 日本一区二区视频免费在线看| 青青国产揄拍视频| 久久国产精品久久精品国产| 久久青青草视频免费观看| 白嫩少妇高潮喷水av| 久久亚洲精品国产亚洲老地址| 少妇饥渴偷公乱a级无码 | 亚洲无码激情视频在线观看| 成人免费毛片立即播放| 制服丝袜一区二区三区 | 亚洲AV秘 片一区二区三区| 99久久精品人妻一区| 日本污ww视频网站| 国产成人乱色伦区| 久久亚洲av成人无码软件| 国产亚洲av一线观看| 日本免费视频| 亚洲精品无码成人a片| 天堂69亚洲精品中文字幕| 色婷婷精品大在线视频| 99久久久无码国产精品性| 一区二区三区国产亚洲网站| 无码区a∨视频体验区30秒 | 福利视频偷拍一区二区| 亚洲欧洲成人精品香蕉网|