當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于S3C6400的移動(dòng)多媒體廣播終端設(shè)計(jì)

0 引 言
    移動(dòng)多媒體廣播目前已經(jīng)成為炙手可熱的發(fā)展熱點(diǎn)。移動(dòng)多媒體廣播業(yè)務(wù)是指通過衛(wèi)星和地面無線廣播方式,在具有7英寸以下小屏幕的移動(dòng)便攜式終端上,實(shí)現(xiàn)隨時(shí)隨地接收廣播電視節(jié)目收視與信息服務(wù)。
    我國于2006年提出了具有自主知識產(chǎn)權(quán)的中國移動(dòng)多媒體廣播(China Mobile Multimedia Broadcast—ing,CMMB)系統(tǒng),能夠支持諸如手機(jī)、PDA、MP3、MP4、數(shù)碼相機(jī)、筆記本式計(jì)算機(jī)等小尺寸、小屏幕、移動(dòng)便攜的多種終端,實(shí)現(xiàn)隨時(shí)隨地提供廣播影視節(jié)目和信息服務(wù),滿足當(dāng)代社會(huì)“信息無處不在”的需求。為了實(shí)現(xiàn)較高質(zhì)量的電視節(jié)目接收和播放,終端的性能起著重要的作用,其中終端的音視頻解碼能力又是主要因素。同時(shí)兼顧到終端的成本,選擇合適的軟硬件平臺十分關(guān)鍵。因此本設(shè)計(jì)兼顧數(shù)字移動(dòng)電視的性能要求和成本兩個(gè)方面。


l CMMB系統(tǒng)架構(gòu)與終端結(jié)構(gòu)簡介
    2006年10月24日,國家廣播電影電視總局正式頒布了中國移動(dòng)多媒體廣播CMMB系統(tǒng)的廣播信道行業(yè)標(biāo)準(zhǔn)《GY/T 220.1—2006移動(dòng)多媒體廣播第1部分:廣播信道幀結(jié)構(gòu)、信道編碼和調(diào)制》,確定了采用我國自主研發(fā)的移動(dòng)多媒體廣播傳輸技術(shù)標(biāo)準(zhǔn)(Satellite—Terrestrial Interactive Multi—service Infrastructure。STiMi)。目前國際上還沒有形成統(tǒng)一的移動(dòng)多媒體廣播技術(shù)標(biāo)準(zhǔn),尚處于大規(guī)模應(yīng)用的前期,因此該標(biāo)準(zhǔn)的及時(shí)出臺,對我國移動(dòng)多媒體廣播和相關(guān)民族工業(yè)的發(fā)展具有重要的促進(jìn)作用。
    CMMB技術(shù)體系是利用大功率S波段衛(wèi)星信號覆蓋全國,利用地面增補(bǔ)轉(zhuǎn)發(fā)器同頻同時(shí)同內(nèi)容轉(zhuǎn)發(fā)衛(wèi)星信號補(bǔ)點(diǎn)覆蓋衛(wèi)星信號盲區(qū),利用無線移動(dòng)通信網(wǎng)絡(luò)構(gòu)建回傳通道,從而組成單向廣播和雙向交互相結(jié)合的移動(dòng)多媒體廣播網(wǎng)絡(luò)。CMMB體系架構(gòu)如圖1所示。

數(shù)字移動(dòng)電視終端的硬件部分主要分為兩部分:電視的接收模塊和播放顯示模塊。前者負(fù)責(zé)控制CMMB信號,后者負(fù)責(zé)播放音視頻數(shù)據(jù)。數(shù)字移動(dòng)電視的接收模塊采用泰合志恒公司生產(chǎn)的模塊。接收模塊的主要功能包含:電視芯片的初始化,設(shè)置頻點(diǎn),掃描頻點(diǎn);獲取頻道信息,設(shè)置頻道;接收及停止音視頻數(shù)據(jù);測試電視信號強(qiáng)度大小。播放顯示模塊以三星的ARMll處理器S3C6400為核心的嵌入式系統(tǒng)。
    終端的軟件部分以Linux操作系統(tǒng)為平臺,而電視播放器軟件結(jié)合泰合志恒電視接收模塊的SDK,能夠?qū)崿F(xiàn)數(shù)字電視的控制和播放。


2 數(shù)字電視系統(tǒng)軟件設(shè)計(jì)
    數(shù)字電視的系統(tǒng)結(jié)構(gòu)由主界面、電視接收模塊SDK和音視頻播放模塊3部分組成,如圖2所示。

3個(gè)模塊的主要功能如下:
    主界面:提供數(shù)字移動(dòng)電視的用戶界面,與用戶交互,提供播放電視,選臺,設(shè)置音量,設(shè)置靜音等功能。電視接收模塊SDK:數(shù)字電視控制引擎,封裝SPI的驅(qū)動(dòng)程序,向上提供接口,用來接收數(shù)字電視信號,提供音視頻數(shù)據(jù),控制信息等。音視頻播放模塊:用于播放音視頻數(shù)據(jù)。
2.1 主界面[!--empirenews.page--]
    主界面完成的具體工作包含:搜索可用的電視頻點(diǎn);選擇收看的電視頻道;檢測當(dāng)前的信號強(qiáng)度;讀取接收到的音視頻數(shù)據(jù);對接收到的音視頻數(shù)據(jù)進(jìn)行解碼;播放解碼后的音視頻數(shù)據(jù);對當(dāng)前播放的節(jié)目進(jìn)行錄像;調(diào)節(jié)音量大小;靜音功能。
    主界面利用調(diào)用泰合電視接收模塊SDK,通過SPI驅(qū)動(dòng)程序讀寫數(shù)據(jù),并將接收到的CMMB復(fù)用子幀解析成H.264格式的視頻數(shù)據(jù),AAC格式的音頻數(shù)據(jù)和其他數(shù)據(jù)。然后調(diào)用播放器模塊,將H.264格式的視頻數(shù)據(jù)和AAC格式的音頻數(shù)據(jù)解碼并播放。
2.2 電視接收模塊SDK
    電視接收模塊SDK提供對CMMB電視信號的控制,包括:電視芯片的初始化,設(shè)置頻點(diǎn),掃描頻點(diǎn);得到頻道信息,設(shè)置頻道;接收及停止音視頻數(shù)據(jù);測試電視信號強(qiáng)度大小。
    該模塊主要由數(shù)據(jù)處理模塊及信號控制模塊2個(gè)子模塊組成。
    數(shù)據(jù)處理子模塊在打開引擎時(shí),會(huì)生成一個(gè)線程,這個(gè)線程用來讀取CMMB信號,并進(jìn)行分析、處理,其流程如圖3所示。

這個(gè)子模塊是一個(gè)死循環(huán),在循環(huán)中,先通過一個(gè)標(biāo)志進(jìn)行判斷,如果需要處理數(shù)據(jù),首先讀取一幀數(shù)據(jù),如果沒有數(shù)據(jù),則阻塞在這兒。然后對這幀數(shù)據(jù)進(jìn)行分析,分別放入音頻,視頻,其他數(shù)據(jù)的緩沖區(qū),最后,調(diào)用回調(diào)函數(shù)對各種數(shù)據(jù)進(jìn)行處理,將音視頻數(shù)據(jù)發(fā)送給音視頻播放模塊來播放。
    另一個(gè)子模塊,信號控制模塊主要是提供控制接口讓上層調(diào)用,以完成對CMMB信號的處理。該子模塊主要包含以下功能接口函數(shù):引擎的初始化:創(chuàng)建讀數(shù)據(jù)線程,啟動(dòng)初始化;引擎的打開:對電視芯片初始化;設(shè)置頻點(diǎn):設(shè)置當(dāng)前頻點(diǎn);得到ESG信息:從信號中提取ESG信息并分析;關(guān)閉引擎:清除用到的資源,硬件重置位;得到頻道信息列表:發(fā)送請求,分析頻道信號;設(shè)置頻道:設(shè)置當(dāng)前頻道;得到參數(shù):能得到信號強(qiáng)度,當(dāng)前頻道等參數(shù)。
2.3 音視頻播放模塊
    音視頻播放由3個(gè)線程來完成。這3個(gè)線程分別為視頻處理線程、音頻處理線程、數(shù)據(jù)接收線程。
    視頻處理線程:
    (1)先判斷緩沖區(qū)隊(duì)列有沒有視頻數(shù)據(jù),如果沒有,休眠10 ms;
    (2)有數(shù)據(jù)的話,因?yàn)橐曨l數(shù)據(jù)是根據(jù)時(shí)間戳順序作為隊(duì)列放在緩沖區(qū)的,取出第一幀,判斷是否已經(jīng)過時(shí),如果是很老的數(shù)據(jù),已經(jīng)錯(cuò)過了播放時(shí)間,則判斷幀類型,如果是關(guān)鍵幀,則解碼并顯示,否則,丟掉這一幀,然后轉(zhuǎn)到第(1)步;
    (3)否則,判斷這一幀是否到了播放時(shí)間,如果是,則將這幀數(shù)據(jù)解碼并顯示,然后轉(zhuǎn)到第(1)步;
    (4)如果沒有到播放時(shí)間,則休眠10 ms。然后轉(zhuǎn)到第(1)步。
    音頻處理線程:
    (1)先判斷緩沖區(qū)隊(duì)列有沒有音頻數(shù)據(jù),如果沒有,休眠10 ms;
    (2)有數(shù)據(jù)的話,因?yàn)橐纛l數(shù)據(jù)是根據(jù)時(shí)間戳順序作為隊(duì)列放在緩沖區(qū)的,取出第一幀,判斷是否已經(jīng)過時(shí),如果是很老的數(shù)據(jù),已經(jīng)錯(cuò)過了播放時(shí)間,則丟棄,然后轉(zhuǎn)到第(1)步;
    (3)否則,判斷是否到了播放時(shí)間,如果是,則將這幀數(shù)據(jù)解碼并播放,然后轉(zhuǎn)到第(1)步;
    (4)如果沒有到播放時(shí)間,則休眠10 ms。然后轉(zhuǎn)到第(1)步。
    數(shù)據(jù)接收線程:數(shù)據(jù)接收線程不屬于播放器模塊,它是電視接收模塊的一部分。
    (1)如果有數(shù)據(jù)到來,判斷有沒有視頻數(shù)據(jù),如果有,將它們?nèi)坎迦氲揭曨l緩沖區(qū);[!--empirenews.page--]
    (2)判斷有沒有音頻數(shù)據(jù),如果有,將它們都插入到音頻緩沖區(qū);
    (3)阻塞,等待數(shù)據(jù)到來;
    (4)當(dāng)有數(shù)據(jù)到來時(shí),轉(zhuǎn)到第(1)步。
    音視播放器模塊共有4個(gè)子模塊:緩沖區(qū)管理、音視頻同步、音視頻解碼、視頻顯示。
2.3.1 緩沖區(qū)管理
    一共設(shè)計(jì)2個(gè)隊(duì)列,音頻緩沖隊(duì)列,視頻緩沖隊(duì)列。每幀數(shù)據(jù)放入緩沖區(qū),成員分別為幀長,幀類型(視頻有,音頻無),時(shí)間戳,數(shù)據(jù)指針。幀長表示幀數(shù)據(jù)長度,幀類型里,1表示關(guān)鍵幀,0表示非關(guān)鍵幀,時(shí)間戳表示幀數(shù)據(jù)播放的時(shí)間,數(shù)據(jù)指針指向幀數(shù)據(jù)緩沖區(qū)。當(dāng)有新的數(shù)據(jù)到來時(shí),構(gòu)造一個(gè)幀成員,填入各項(xiàng)參數(shù),然后根據(jù)時(shí)間戳,將他插入到緩沖隊(duì)列,播放時(shí)間近的放在前面。流程如下:
    (1)首先構(gòu)造一個(gè)幀緩沖成員;
    (2)按照幀數(shù)據(jù)內(nèi)容填充幀緩沖;
    (3)根據(jù)時(shí)間戳,按照近的在前面的原則,放入緩沖區(qū)隊(duì)列。
2.3.2 音視頻同步
    音視頻數(shù)據(jù)始終與系統(tǒng)時(shí)間進(jìn)行同步,起初初始化時(shí),先在緩沖區(qū)存放1 s的數(shù)據(jù)。因?yàn)橄到y(tǒng)時(shí)間與發(fā)送的數(shù)據(jù)時(shí)間戳不一定相同,所以不用絕對時(shí)間,而是以緩沖區(qū)的第一幀時(shí)間戳為開始時(shí)間,后面的數(shù)據(jù)都以與這幀數(shù)據(jù)的時(shí)間差這個(gè)相對時(shí)間為準(zhǔn)。
    視頻和系統(tǒng)時(shí)間同步的流程如下:
    (1)判斷緩沖隊(duì)列是否為空,如果是空,休眠10 ms;
    (2)如果非空,從緩沖隊(duì)列取出一幀,判斷這幀數(shù)據(jù)是否已經(jīng)過時(shí),如果超過播放時(shí)間100 ms以上,則判斷幀類型,如果是非關(guān)鍵幀,丟掉這幀數(shù)據(jù),否則處理這幀數(shù)據(jù),然后跳到第(1)步;
    (3)如果這幀數(shù)據(jù)剛剛超過播放時(shí)間并且超過時(shí)間不超過100 ms,則處理這幀數(shù)據(jù),然后跳到第(1)步。
    音頻和系統(tǒng)時(shí)間同步的處理流程如下:
    (1)判斷音頻緩沖區(qū)是否為空,如果是空,休眠10 ms;
    (2)如果非空,取出一幀數(shù)據(jù),判斷是否已經(jīng)超過播放時(shí)間100 ms,如果是,丟棄這幀數(shù)據(jù),跳到第(1)步;
    (3)否則,處理這幀數(shù)據(jù),跳到第(1)步。
2.3.3 音視頻解碼
    數(shù)字移動(dòng)電視信號目前音頻采用的是AAC編碼,利用開源解碼庫libfaad2來解碼,libfaad2的使用流程如下:
    (1)首先對解碼器進(jìn)行配置,設(shè)置一些解碼參數(shù),例如采樣率,聲道數(shù)等;
    (2)然后初始化解碼器;
    (3)如果有需要解碼的音頻幀,依次調(diào)用NeAAC—DecDecode進(jìn)行解碼;
    (4)當(dāng)音頻幀都解碼完畢,需要關(guān)閉解碼器。
    三星的S3C6400芯片提供了多種格式視頻的硬件編解碼器,簡稱為MFC(Multi—format Video Codec),支持的功能有:MPEG一4 Simple Profile編解碼;H.264/AVC Baseline Profile編解碼;H.263 P3編解碼;VC一1(WMV9)Main Profile編解碼;支持多任務(wù),如同時(shí)完成1路編碼和3路解碼;支持多格式,如同時(shí)進(jìn)行MPEG一4編碼和H.264解碼。理論上MFC性能可以達(dá)到全雙工的720*480 30幀/s(或720*576 25幀/s)的編解碼。
    MFC驅(qū)動(dòng)負(fù)責(zé)直接控制MFC硬件完成實(shí)際的編解碼操作,提供類似字符設(shè)備的接口;MFC API封裝了底層驅(qū)動(dòng)的控制接口,給上層提供函數(shù)調(diào)用的接口方式,解碼器調(diào)用流程如圖4所示。

2.3.4 視頻顯示[!--empirenews.page--]
    對于解碼后的數(shù)據(jù),首先要將YUV格式轉(zhuǎn)換為RGB格式,轉(zhuǎn)換可以使用硬件來進(jìn)行。三星的S3C6400芯片提供的PostProcessor(以下簡稱Post或PP)支持的功能有:視頻/圖像的縮放;視頻格式轉(zhuǎn)換;顏色空間轉(zhuǎn)換(RGB<一>YUV);視頻輸入支持420,422格式,輸出支持YCbCr420,YCbCr422格式;圖像格式支持16位RGB(565格式)、24位RGB;最大分辨率支持2 048×2 048;支持單幀模式(Per Frame RunMode)和自動(dòng)模式(Free Run Mode)。


3 結(jié) 語
    本數(shù)字電視系統(tǒng)能夠?qū)崿F(xiàn)穩(wěn)定可靠的對CMMB信號的控制并具有完善的正?;虍惓M顺鰴C(jī)制。接收CMMB標(biāo)準(zhǔn)(H.264 320*240/AAC)的音視頻數(shù)據(jù)時(shí),播放速率達(dá)到25幀/s。畫面流暢,停頓少,沒有明顯的馬賽克。界面友好,操作簡便,功能穩(wěn)定,同時(shí)具有較高的實(shí)時(shí)性。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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