當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]播放器概述 近兩年來(lái),車載導(dǎo)航系統(tǒng)在國(guó)內(nèi)悄然興起,據(jù)專家預(yù)測(cè),中國(guó)車載市場(chǎng)在啟動(dòng)初期需求約為55 萬(wàn)臺(tái),折合人民幣約27.6 億。而從長(zhǎng)遠(yuǎn)來(lái)看,規(guī)模將達(dá)到千億元人民

播放器概述 

近兩年來(lái),車載導(dǎo)航系統(tǒng)在國(guó)內(nèi)悄然興起,據(jù)專家預(yù)測(cè),中國(guó)車載市場(chǎng)在啟動(dòng)初期需求約為55 萬(wàn)臺(tái),折合人民幣約27.6 億。而從長(zhǎng)遠(yuǎn)來(lái)看,規(guī)模將達(dá)到千億元人民幣。但是,當(dāng)前車載終端的視頻播放能力大多比較薄弱,能夠支持MPEG-4等新式編碼格式的只有少數(shù)廠家。而且由于嵌入式系統(tǒng)獨(dú)有的特點(diǎn),車載產(chǎn)品存儲(chǔ)空間一般都很小,只有流式文件邊下載邊播放的特性才能滿足車載終端上音、視頻的播放要求,實(shí)時(shí)的為車主播放刷新的信息。本產(chǎn)品是基于I P 網(wǎng)絡(luò)的嵌入式流媒體播放器,不但可以支持MPEG- 4 和主流的流媒體格式,而且可以通過(guò)軟件升級(jí)支持未來(lái)的媒體格式。 

播放器的底層開(kāi)發(fā)環(huán)境 

 

播放器的硬件環(huán)境包括:Intel PXA270開(kāi)發(fā)平臺(tái)Sophia (簡(jiǎn)稱sophia 板) 和支持802.11a、USB接口的10Mb/s無(wú)線網(wǎng)卡。sophia 板以Intel 公司的嵌入式處理器PXA270 為核心,伴以2700G 多媒體加速芯片實(shí)現(xiàn)視頻加速與3D加速,系統(tǒng)的硬件模塊如圖1所示:網(wǎng)絡(luò)控制模塊將從網(wǎng)卡讀出的數(shù)據(jù)送入PXA270 和Intel 2700G模塊處理,解壓后的數(shù)據(jù)在LCD或RGB顯示器上播放。

 

播放器的模塊劃分

sophia 板使用的嵌入式Linux內(nèi)核是由基于linux-2.4.20內(nèi)核的MontaVista linux編譯而成,文件系統(tǒng)是針對(duì)Flash 無(wú)緩沖機(jī)制的jffs2 文件系統(tǒng)。同時(shí),sophia 板的開(kāi)發(fā)商還提供了BSP、中間件等大量的軟、硬件資源,其中通信接口中的網(wǎng)絡(luò)控制模塊、解碼模塊和播放器模塊是系統(tǒng)開(kāi)發(fā)的關(guān)鍵。整個(gè)系統(tǒng)的模塊劃分如圖 2 所示:Bootloader 在硬件物理層之上進(jìn)行最底層的引導(dǎo),它屬于板級(jí)支持包BSP 的一部分。BSP負(fù)責(zé)直接和底層的硬件設(shè)備建立聯(lián)系,同時(shí),它也可以包含某些驅(qū)動(dòng)。不過(guò),在sophia 的軟件系統(tǒng)模塊中,網(wǎng)卡的驅(qū)動(dòng)是作為嵌入式系統(tǒng)內(nèi)核的模塊之一動(dòng)態(tài)加載的。嵌入式中間件位于操作系統(tǒng)和應(yīng)用程序的中間環(huán)節(jié),提供了到程序模塊、組件庫(kù)的聯(lián)接,系統(tǒng)的解碼模塊和播放器模塊都是在它之上開(kāi)發(fā)的。

 

 


 

模塊的實(shí)現(xiàn)

系統(tǒng)實(shí)現(xiàn)可以被分為以下幾個(gè)步驟:

1) 嵌入式Linux 內(nèi)核的移植和編譯、文件系統(tǒng)的安裝;

2) 視頻圖像解壓縮模塊的實(shí)現(xiàn);

3) 播放模塊的實(shí)現(xiàn);

嵌入式Linux 內(nèi)核的移植和文件系統(tǒng)、圖形界面系統(tǒng)的安裝

工作在sophia 板上的嵌入式Linux 內(nèi)核對(duì)boot-loader、內(nèi)核、文件系統(tǒng)的加載步驟和交叉編譯環(huán)境的建立方法與其它嵌入式平臺(tái)的開(kāi)發(fā)步驟相似具有一定的通用性,具體的建立方法可以參考文獻(xiàn)。但是有兩點(diǎn)要注意:

1) 在使用make menuconfig定制內(nèi)核時(shí)要讓內(nèi)核支持無(wú)線網(wǎng)卡,具體步驟是在USB Support 配置菜單中選擇USB network devices,再于子菜單中選擇wireless,使得在內(nèi)核中加入對(duì)USB 無(wú)線網(wǎng)卡的驅(qū)動(dòng)支持。

2) 在圖形界面系統(tǒng)的編譯與安裝中注意建立工程后,要將選項(xiàng)中的gettext 選項(xiàng)勾掉,否則程序無(wú)法順利編譯。

視頻圖像解壓模塊的實(shí)現(xiàn)

由網(wǎng)絡(luò)控制模塊獲取的數(shù)據(jù)在系統(tǒng)中是以流數(shù)據(jù)的形式存在的,因此,首先要對(duì)流式文件進(jìn)行解壓。同時(shí),為了提高傳輸效率從而提高視頻圖像質(zhì)量,網(wǎng)絡(luò)上傳輸?shù)脑家曨l圖像都進(jìn)行了壓縮編碼,所以,還需要根據(jù)編碼格式進(jìn)行相應(yīng)解碼。本系統(tǒng)不但支持常見(jiàn)的MP1、MP2、MP3 和WAV 音頻文件格式,還可以對(duì)先進(jìn)的MPEG- 4視頻圖像壓縮編碼文件解壓縮。

流式文件的解壓縮

按照播放器所接入的車載導(dǎo)航網(wǎng)絡(luò)的要求,本方案要為當(dāng)前主流的流文件格式:ASF、RM提供解壓能力。

ASF 文件解壓

ASF 文件基本的組織單元叫做ASF 對(duì)象,每個(gè)對(duì)象由三個(gè)域組成:128 位的全球唯一的對(duì)象標(biāo)識(shí)符域、64 位整數(shù)的對(duì)象大小域和可變長(zhǎng)的對(duì)象數(shù)據(jù)域。ASF 文件的高層邏輯結(jié)構(gòu)也包含三部分:頭對(duì)象、數(shù)據(jù)對(duì)象和索引對(duì)象。其中頭對(duì)象是必需的并且必須放在每一個(gè)ASF 文件的開(kāi)頭部分,它包含了許多全局信息,一定要在數(shù)據(jù)對(duì)象之前被接收方接收并解釋;數(shù)據(jù)對(duì)象也是必需的,且一般情況下緊跟在頭對(duì)象之后,包含了所有待播放的數(shù)據(jù);索引對(duì)象是可選的。

RM文件解壓

組成RM文件的基本部件是塊,每個(gè)塊包括三個(gè)字段:指明塊標(biāo)識(shí)符的四字符編碼、塊中限定數(shù)據(jù)大小的32 位數(shù)值和數(shù)據(jù)塊部分。塊標(biāo)識(shí)符用來(lái)唯一的標(biāo)識(shí)每一個(gè)塊。同樣地,RM文件的高層邏輯結(jié)構(gòu)也由三部分組成:文件報(bào)頭部分、文件數(shù)據(jù)部分和文件索引部分。因?yàn)? RealMedia 文件格式是一種加標(biāo)志的文件格式,塊的順序沒(méi)有明確規(guī)定,但RealMedia 文件報(bào)頭必須是文件的第一個(gè)塊。

MPEG- 4 視頻圖像的解壓

在幾種開(kāi)放源代碼的MPEG- 4 解碼軟件中,作者選擇xvidcore 作為系統(tǒng)中視頻圖像解壓模塊的核心算法。xvid 是一個(gè)高效且可移植的編碼軟件,系統(tǒng)采用的是目前最新的版本xvidcore- 1.1.0。xvid 支持SimpleProfile 和Advanced Profile,支持I/P Frames、B -Frames、Interlacing 和GMC,是目前比較流行的MPEG- 4 編碼軟件。對(duì)xvidcore- 1.0.1 進(jìn)行交叉編譯有以下主要步驟:

1) 解壓縮xvidcore 源代碼tar- zxvf xvidcore- 1.1.0.tar;

2)設(shè)置環(huán)境變量export xvidcore= “ the path of xvidcore”;

3)生成makefile ./configure- - host=localhost- - build=arm- linux- gcc;

4) 編譯源代碼make;make install;

將交叉編譯生成的庫(kù)文件libxvidcore.so.* 拷貝到交叉編譯器工作目錄的./local/lib 子目錄中,該庫(kù)文件為系統(tǒng)的其它模塊提供了編程接口。

解碼格式的可擴(kuò)展性

播放器支持的文件格式越多,其生命力也就越強(qiáng)大,PXA270 嵌入式處理器加上2700G 多媒體加速芯片的搭配方案為媒體播放提供了強(qiáng)大的硬件支持,通過(guò)軟件升級(jí),理論上可以支持任何媒體格式。本方案的做法是:在播放器中實(shí)現(xiàn)一個(gè)索引表類,將來(lái)根據(jù)需要新添加的編碼格式作為獨(dú)立的類注冊(cè)到索引表中?;趌inux 的c++解碼類源代碼可以由網(wǎng)上開(kāi)放源碼的解碼器網(wǎng)站下載,系統(tǒng)中的MP1,MP2,MP3 和WAV 的解碼就是采用這種方法實(shí)現(xiàn)的。[!--empirenews.page--]

播放模塊實(shí)現(xiàn)

文件的輸入

在播放器系統(tǒng)中,文件的來(lái)源有兩種:由網(wǎng)卡讀入存儲(chǔ)器后播放或通過(guò)其它數(shù)據(jù)傳輸途徑寫入存儲(chǔ)器,在存儲(chǔ)器中直接播放。sophia 板提供了網(wǎng)卡的驅(qū)動(dòng)模塊,可以使用命令modprobe usbcore 和modprobe usbwlnc動(dòng)態(tài)加載,為數(shù)據(jù)從網(wǎng)卡經(jīng)由操作系統(tǒng)到達(dá)播放進(jìn)程提供一個(gè)全雙工的通道。數(shù)據(jù)的處理由播放器中的stream input 類來(lái)實(shí)現(xiàn)。

流媒體協(xié)議

實(shí)現(xiàn)流式傳輸有兩種方法:實(shí)時(shí)流式傳輸和順序流式傳輸,系統(tǒng)使用的是實(shí)時(shí)流式傳輸,需要標(biāo)準(zhǔn)化的流媒體協(xié)議來(lái)保證客戶機(jī)和專用的流媒體服務(wù)器之間進(jìn)行通信。根據(jù)流媒體協(xié)議的功能可以分為兩類:

基本網(wǎng)絡(luò)協(xié)議

為媒體傳輸提供基本的網(wǎng)絡(luò)服務(wù)支持,由于TCP需要較多的開(kāi)銷,不太適合傳輸實(shí)時(shí)數(shù)據(jù)。在流式傳輸?shù)膶?shí)現(xiàn)方案中,采用RTSP/TCP 來(lái)傳輸控制信息,而用RTP/UDP 來(lái)傳輸實(shí)時(shí)聲音、圖像數(shù)據(jù)。

傳輸協(xié)議

傳輸協(xié)議包括RTP、RTCP、RTSP 和RSVP,RTP和RTCP 控制端到端網(wǎng)絡(luò)數(shù)據(jù)的傳輸,RTSP 提供話路控制的功能,RSVP 是可選的,它為播放進(jìn)程在網(wǎng)上預(yù)先申請(qǐng)一部分網(wǎng)絡(luò)資源( 即帶寬),能在一定程度上為流媒體在Internet 上的傳輸提供特殊服務(wù)質(zhì)量QoS。為流媒體設(shè)計(jì)的協(xié)議棧如圖3 所示:從UDP/TCP層得到的數(shù)據(jù)包處理后得到打包的RTP 數(shù)據(jù)流,通過(guò)RTP/RTCP/RTSP 層分離出定時(shí)和同步信息以及包的序列號(hào),將讀出的流文件交給ASF 和RM解碼模塊。

媒體的播放

播放器以自由軟件mplayer 為藍(lán)本,處理流程如圖4所示:

1) 如果數(shù)據(jù)是從網(wǎng)卡獲得的,調(diào)用stream input模塊進(jìn)行處理。Stream input 模塊根據(jù)流媒體協(xié)議,使用socket 和多媒體服務(wù)器進(jìn)行通信,輸入的流數(shù)據(jù)放入緩沖池中并根據(jù)流文件的格式對(duì)它進(jìn)行ASF 或RM解壓縮;

2) 解壓后的文件根據(jù)文件的類型查找索引表調(diào)用不同的解碼類將數(shù)據(jù)轉(zhuǎn)化為一種統(tǒng)一的中間格式raw,生成相應(yīng)的file,由播放器main 函數(shù)播放。如果文件已保存在存儲(chǔ)器中,可以跳過(guò)第一步,直接執(zhí)行第二步流程。

 

小結(jié)

本文提出了一種基于Intel PXA270 嵌入式微處理器和嵌入式Linux 的流媒體播放器系統(tǒng)實(shí)現(xiàn)方案,特有的索引表結(jié)構(gòu)使得播放器可以通過(guò)軟件升級(jí)增加新的編碼格式,純軟件的實(shí)現(xiàn)方式大大縮減了研發(fā)周期。經(jīng)測(cè)試,在帶寬 50Kb/s~100Kb/s、緩存256k 的條件下,系統(tǒng)對(duì)CIF(352×288) 視頻格式、QCIF(176×144)視頻格式和音頻格式的文件播放失幀率在5%以下,播放流暢,滿足了目前車載終端中嵌入式流視頻播放的要求。

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉