国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

3G移動(dòng)終端流媒體播放技術(shù)的研究

2011-03-06 09:17李太君
通信技術(shù) 2011年3期
關(guān)鍵詞:解碼器線程解碼

劉 易,李太君

(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 ???570228)

0 引言

流媒體技術(shù)以數(shù)據(jù)流的形式實(shí)時(shí)發(fā)布多媒體內(nèi)容,流媒體在播放時(shí)并不需要下載整個(gè)文件,具有邊下載邊播放的功能[1]。移動(dòng)流媒體是流媒體技術(shù)在移動(dòng)網(wǎng)絡(luò)和終端上的應(yīng)用,利用移動(dòng)通信網(wǎng)絡(luò),為移動(dòng)終端提供音、視頻等多媒體服務(wù)。移動(dòng)流媒體的技術(shù)特點(diǎn)決定了其在移動(dòng)網(wǎng)絡(luò)中的廣闊應(yīng)用前景。隨著 3G網(wǎng)絡(luò)的不斷發(fā)展和多媒體壓縮技術(shù)的不斷提高,諸如手機(jī)電視,手機(jī)監(jiān)控等移動(dòng)流媒體應(yīng)用日益受到人們的青睞,無線流媒體業(yè)務(wù)成為 3G中占據(jù)重要地位的一種新業(yè)務(wù)[2]。因此,在移動(dòng)網(wǎng)絡(luò)環(huán)境中,針對(duì)手機(jī)終端的流媒體解碼播放技術(shù)正成為研究熱點(diǎn)。

1 移動(dòng)終端的視頻解碼技術(shù)

在實(shí)際應(yīng)用中,由于無線網(wǎng)絡(luò)具有帶寬不穩(wěn)定、數(shù)據(jù)誤碼率高等缺點(diǎn),所以如果想在無無線網(wǎng)絡(luò)上傳輸清晰流暢的實(shí)時(shí)視頻流數(shù)據(jù),必須有先進(jìn)的視頻壓縮技術(shù)和高效健壯的傳輸協(xié)議提供支持。H.264是ITU和ISO/IEC聯(lián)合研究并制定的一個(gè)面向IP和無線環(huán)境的視頻壓縮標(biāo)準(zhǔn)[3], 其視頻壓縮效率比MPEG2、MPEG4等目前的其他壓縮標(biāo)準(zhǔn)都要高。在相同的碼率條件下可以傳輸更清晰的視頻數(shù)據(jù)。H.264的高壓縮率,網(wǎng)絡(luò)適應(yīng)性及其容錯(cuò)性可以很好地改善無線環(huán)境下帶寬波動(dòng)大,信息資源有限,信道誤碼率高等傳輸問題[4]。H.264標(biāo)準(zhǔn)在整體上分為(VCL ,Video Coding Layer)視頻編碼層和(NAL,Network Abstraction Layer)網(wǎng)絡(luò)抽象層。VCL專注于視頻信號(hào)的壓縮,而 NAL則定義了編碼器和傳輸信道之間的接口。這種分層處理的結(jié)構(gòu)使得 H.264能夠靈活適應(yīng)不同的傳輸環(huán)境,提高了傳輸效率和容錯(cuò)性能。H.264的這些優(yōu)點(diǎn)使其成為移動(dòng)視頻通信領(lǐng)域優(yōu)先考慮的視頻壓縮標(biāo)準(zhǔn)。

2 無線流媒體應(yīng)用系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

無線流媒體系統(tǒng)可以分為四個(gè)部分:視頻采集與制作、服務(wù)器、移動(dòng)通信網(wǎng)絡(luò)、移動(dòng)終端(手機(jī)、PDA等客戶端),其體系結(jié)構(gòu)如圖1 所示。視頻服務(wù)器可以提供直播和點(diǎn)播功能。移動(dòng)終端可以通過實(shí)時(shí)流傳輸協(xié)議(RTSP,Real Time Streaming Protocol)協(xié)議向服務(wù)器發(fā)送直播或點(diǎn)播請(qǐng)求。視頻服務(wù)器接到請(qǐng)求后,將相應(yīng)的視頻壓縮碼流數(shù)據(jù)封裝成RTP包,通過RTP/UDP/IP協(xié)議棧發(fā)送給移動(dòng)終端。移動(dòng)終端從無線網(wǎng)絡(luò)接收到視頻流數(shù)據(jù)后,首先對(duì)接收到的數(shù)據(jù)進(jìn)行緩沖,當(dāng)緩沖數(shù)據(jù)達(dá)到了緩沖窗口上限后就可以開始解碼播放。移動(dòng)終端和服務(wù)器之間的數(shù)據(jù)傳輸過程通過RTP控制協(xié)議(RTCP,RTP Control Protocol)協(xié)議進(jìn)行控制:移動(dòng)終端周期性向服務(wù)器發(fā)送RTCP包報(bào)告自己的狀態(tài),服務(wù)器根據(jù)移動(dòng)終端的反饋,動(dòng)態(tài)調(diào)整編碼參數(shù)和數(shù)據(jù)傳輸速率,優(yōu)化數(shù)據(jù)傳輸過程。

圖1 無線流媒體應(yīng)用系統(tǒng)結(jié)構(gòu)示意

3 手機(jī)終端H.264解碼播放的實(shí)現(xiàn)

3.1 H.264解碼原理

H.264解碼器從 NAL(網(wǎng)絡(luò)提取層)獲得經(jīng)過壓縮的視頻數(shù)據(jù)比特流,經(jīng)過對(duì)碼流進(jìn)行熵解碼和重排序獲得一系列量化系數(shù)X,這些系數(shù)經(jīng)過反量化和反變換得到殘差數(shù)據(jù)塊D。解碼器使用從碼流中解碼得到的頭信息創(chuàng)建預(yù)測(cè)數(shù)據(jù)塊P,P與D相加形成圖像塊數(shù)據(jù)uF,uF經(jīng)過濾波處理消除塊效應(yīng)后生成解碼后的數(shù)據(jù)塊F,F(xiàn)即是解碼器最終得到的重建數(shù)據(jù),可以將其轉(zhuǎn)化成RGB數(shù)據(jù)繪制在屏幕上[5]。整個(gè)解碼流程如圖2所示。

圖2 H.264解碼流程

3.2 解碼器功能的實(shí)現(xiàn)

H.264視頻壓縮技術(shù)的優(yōu)異性能是以提高了算法的復(fù)雜度為代價(jià)的。所以在手機(jī)這種資源有限的平臺(tái)上實(shí)現(xiàn)H.264碼流的實(shí)時(shí)解碼,需要對(duì)算法進(jìn)行適當(dāng)?shù)暮?jiǎn)化和優(yōu)化,才能取得理想的解碼效果。為了盡可能地提高手機(jī)端解碼器的效率,解碼器采用多線程架構(gòu)來設(shè)計(jì)。解碼器的主要功能由三個(gè)線程來實(shí)現(xiàn):主控線程、數(shù)據(jù)通信線程、解碼顯示線程。解碼器主線程負(fù)責(zé)創(chuàng)建管理子線程,控制子線程間的交互。數(shù)據(jù)通信線程負(fù)責(zé)和視頻服務(wù)器交互,發(fā)送和接收數(shù)據(jù);解碼顯示線程負(fù)責(zé)解碼接收到的視頻壓縮數(shù)據(jù),還原成原始的RGB數(shù)據(jù),并根據(jù)解碼所得的RGB數(shù)據(jù)創(chuàng)建位圖,在手機(jī)屏幕上繪制出來。解碼器的具體功能實(shí)現(xiàn)如圖3所示。

圖3 解碼器功能示意

由于手機(jī)CPU頻率不高,且手機(jī)在獲取視頻數(shù)據(jù)的同時(shí),還要進(jìn)行實(shí)時(shí)解碼和視頻畫面放大縮小,因此低端的手機(jī)基本上很難獲得良好的播放效果[6]。所以建議只在比較高端的手機(jī)上開發(fā),比如具有 Symbian、Windowsmobile、Android等操作系統(tǒng)的智能手機(jī)。

實(shí)驗(yàn)在Symbian平臺(tái)上進(jìn)行,Symbian 面向?qū)ο蟮某绦蜷_發(fā)框架采用MVC(Model-View-Controller)設(shè)計(jì)模式,MVC中模型、視圖、控制器封裝了應(yīng)用程序的不同部分,分別相對(duì)應(yīng)于Document class、View class、AppUi class。其中模型擁有對(duì)應(yīng)用程序數(shù)據(jù)的所有權(quán),負(fù)責(zé)這些數(shù)據(jù)的持久性和內(nèi)部化。視圖負(fù)責(zé)顯示,并將用戶輸入發(fā)送給控制器。控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。

該解碼器的實(shí)現(xiàn)參考了開放源代碼項(xiàng)目FFmpeg, FFmpeg是一個(gè)集錄制、轉(zhuǎn)換、音/視頻編碼解碼功能為一體的完整的開源解決方案[7]。通過深入學(xué)習(xí)FFmpeg中的H.264解碼部分知識(shí),利用Open C插件把FFmpeg中包含了所有音視頻編解碼器(encoder/decoder)的libavcodec模塊和包含公共工具函數(shù)的libavutil模塊移植到Symbian平臺(tái)上。因?yàn)镾ymbian平臺(tái)是用C++語(yǔ)言來開發(fā)的而FFmpeg是用C語(yǔ)言編寫的,所以為了更好的兼容在引用FFmpeg模塊時(shí)要加上extern "C"{…}語(yǔ)句。H.264解碼實(shí)現(xiàn)大致步驟如下:1.注冊(cè)所有容器格式和CODEC:av_register_all(),2.打開壓縮文件:av_open_input__file(),3.從壓縮文件中提取流信息:av_find_stream_info(),4.查找解碼器:avcodec_find_decoder(),5.打開解碼器:avcodec_open(),6.為解碼幀分配內(nèi)存:avcodec_alloc_frame(),7.從碼流中提取出幀數(shù)據(jù):av_read_frame(),8.判斷幀的類型調(diào)用視頻幀:avcodec_decode_video(),9.解碼完后釋放解碼器:avcodec_close(),10.關(guān)閉輸入壓縮文件:av_close_input_file()。

3.3 實(shí)驗(yàn)數(shù)據(jù)與分析

在XP系統(tǒng)、CPU雙核T6400、內(nèi)存2G的PC機(jī)上使用Carbide C++2.1和NOKIA提供的SDK(S60_3rd_FP1),構(gòu)建Symbian S60開發(fā)平臺(tái)。實(shí)驗(yàn)測(cè)試采用3個(gè)qcif格式的標(biāo)準(zhǔn)序列:Claire、Grandma和Foreman,序列都經(jīng)過H.264開源編碼器JM10.1 的baseline編碼,將編碼產(chǎn)生的視頻壓縮文件放到解碼器中進(jìn)行解碼,解碼效果如圖4所示。

圖4 解碼效果

實(shí)驗(yàn)結(jié)果表明:解碼器播放流暢,解碼速度可以達(dá)到18~35 f/s,基本滿足實(shí)時(shí)解碼的需求。

4 結(jié)語(yǔ)

在探討 3G網(wǎng)絡(luò)中移動(dòng)終端的視頻解碼技術(shù)基礎(chǔ)上,實(shí)現(xiàn)了在Symbian平臺(tái)手機(jī)終端的H.264協(xié)議的解碼播放,解碼效果良好基本滿足實(shí)時(shí)解碼的要求。設(shè)計(jì)了從 PC端向移動(dòng)終端發(fā)送音、視頻的無線流媒體應(yīng)用系統(tǒng)。隨著無線通信網(wǎng)絡(luò)的不斷完善和視頻壓縮技術(shù)的不斷提高,無線流媒體應(yīng)用成為一種趨勢(shì)[8]。網(wǎng)絡(luò)運(yùn)營(yíng)商完全能以此對(duì)手機(jī)用戶提供個(gè)性化、多樣化的數(shù)據(jù)增值業(yè)務(wù),把其他各種多媒體內(nèi)容轉(zhuǎn)換成流媒體格式,與3G網(wǎng)絡(luò)的高帶寬技術(shù)相結(jié)合,實(shí)現(xiàn)移動(dòng)終端的高質(zhì)量視頻的實(shí)時(shí)點(diǎn)播和直播。

[1] 鄭昊.移動(dòng)流媒體應(yīng)用開發(fā)[D].北京:北京郵電大學(xué),2006:5-12.

[2] 任守華,王勝華,劉士雷,等.基于3G和H.264技術(shù)的無線視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2010,27(04):1554-1556.

[3] 龔琪琳.基于 H.264協(xié)議的手機(jī)實(shí)時(shí)視頻播放的研究[J].計(jì)算機(jī)與現(xiàn)代化,2010(01):91-93.

[4] 石碩,郭庚麒,李久仲,等.二網(wǎng)融合的可視電話與多媒體增值業(yè)務(wù)系統(tǒng)[J].通信技術(shù),2009,42(08):102-104.

[5] 畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)-H.264/AVC[M].北京:人民郵電出版社,2005:245-257.

[6] 張海朝,潘永輝,王亞濤.基于TCP友好速率控制和錯(cuò)誤隱藏的H.264視頻傳輸[J].通信技術(shù),2010,43(02):80-82.

[7] 杜傳贏.Symbian平臺(tái)移動(dòng)流媒體播放器的實(shí)現(xiàn)與優(yōu)化[D].湖北:華中科技大學(xué),2008:15-20.

[8] 劉超,馬力妮,宋雄亮.基于 H.264 標(biāo)準(zhǔn)的多視點(diǎn)視頻編碼方案的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(03):564-567.

猜你喜歡
解碼器線程解碼
《解碼萬噸站》
科學(xué)解碼器(一)
基于C#線程實(shí)驗(yàn)探究
科學(xué)解碼器(二)
科學(xué)解碼器(三)
基于國(guó)產(chǎn)化環(huán)境的線程池模型研究與實(shí)現(xiàn)
線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
解碼eUCP2.0
NAD C368解碼/放大器一體機(jī)
Quad(國(guó)都)Vena解碼/放大器一體機(jī)
镇赉县| 鸡东县| 哈尔滨市| 柳州市| 龙口市| 会宁县| 华容县| 成都市| 麦盖提县| 分宜县| 洛浦县| 临江市| 繁昌县| 宜阳县| 当阳市| 东安县| 连州市| 临澧县| 大田县| 台中县| 岑溪市| 无为县| 灵武市| 安陆市| 博客| 江油市| 余江县| 江达县| 巴林左旗| 盐津县| 盘锦市| 深圳市| 印江| 许昌市| 黔西县| 梨树县| 项城市| 邹平县| 沭阳县| 平定县| 乐都县|