許 靜
(西安郵電大學(xué)電子工程學(xué)院,陜西 西安 710121)
隨著中國3G時(shí)代的到來,移動(dòng)終端將能夠提供多種寬帶實(shí)時(shí)性應(yīng)用,如可視電話、遠(yuǎn)程無線監(jiān)控等。其中,可視電話作為3G的代表性應(yīng)用,將會(huì)有廣泛的應(yīng)用前景。目前,可視電話在應(yīng)用中存在的主要問題是圖像不夠清晰流暢,主要表現(xiàn)在移動(dòng)終端移動(dòng)或者場(chǎng)景內(nèi)物體發(fā)生移動(dòng)后,可視電話畫面會(huì)出現(xiàn)不同程度的馬賽克現(xiàn)象,特別是在高速移動(dòng)時(shí),圖像的馬塞克更為嚴(yán)重。針對(duì)上述可視電話的圖像質(zhì)量問題,目前采用的解決方案有提升編碼前圖像的質(zhì)量、改進(jìn)視頻編解碼算法的性能和提高網(wǎng)絡(luò)流媒體的傳輸性能等。要提升編碼前圖像質(zhì)量,就必然要提高前端設(shè)備的性能,這樣會(huì)較大地增加成本。在3GPP的協(xié)議中,可視電話的視頻編碼可以采用 H.261,H.263,H.264和MPEG-4中的一種。從H.261到MPEG-4,視頻編解碼的性能雖然得到較大提升,但算法的復(fù)雜度也有很大程度的增加,在對(duì)實(shí)時(shí)性要求較高的可視電話應(yīng)用中,算法復(fù)雜度和實(shí)時(shí)性是矛盾的。提高網(wǎng)絡(luò)流媒體傳輸性能的成本更高,不切實(shí)際。綜上分析,這些方法都能在一定程度上改善可視電話的圖像質(zhì)量,但在具體實(shí)現(xiàn)成本以及復(fù)雜度上都具有一定的局限性。
本文提出了一種改善移動(dòng)可視電話圖像質(zhì)量的方法,即將可視電話在靜默時(shí)產(chǎn)生的空音頻幀用來發(fā)送圖像數(shù)據(jù),以此來展寬傳輸圖像數(shù)據(jù)的帶寬。該方法對(duì)圖像質(zhì)量的增強(qiáng)效果明顯,且不會(huì)影響可視電話的實(shí)時(shí)性。
自適應(yīng)多速率語音編碼(AMR)是由3GPP制定的應(yīng)用于第3代移動(dòng)通信系統(tǒng)中的語音壓縮編碼,相比現(xiàn)在的GSM聲碼器(FR,EFR和HR)采用固定的編碼率,AMR聲碼器則可根據(jù)無線信道的傳輸狀況來自適應(yīng)地選擇一種最佳信道模式(全速率或半速率)和編碼模式(以比特率來區(qū)分)進(jìn)行編碼傳輸。AMR語音編碼器是由從4.75~12.20 kbit/s的8種單個(gè)語音編碼器所組成的,每幀20 ms,160 個(gè)樣點(diǎn),采樣率為8 kHz。
AMR編解碼器定義了3類幀:語音幀、SID(Silence Descriptor)幀和空幀。其中語音幀攜帶的是語音數(shù)據(jù),SID幀攜帶的是發(fā)送端背景噪聲數(shù)據(jù),而空幀不攜帶任何數(shù)據(jù)。根據(jù)編解碼器的編碼模式語音幀可以分成8種,而根據(jù)攜帶的內(nèi)容,SID幀可以分成SID_FIRST幀和SID_UPDATE幀。AMR IF1(Interface Format 1)的通用幀結(jié)構(gòu)如圖1所示。
1個(gè)AMR幀被分成幀頭、輔助信息和幀核心3部分。其中幀頭部分包含幀類型和幀質(zhì)量指示段;輔助信息部分包含模式指示、模式請(qǐng)求和CRC段;幀核心部分包含的是語音數(shù)據(jù)或噪聲數(shù)據(jù)。幀核心部分根據(jù)數(shù)據(jù)的重要性分成A類、B類和C類,其中A類的重要性最高,C類最低。
圖1 通用AMR幀結(jié)構(gòu)
幀類型、模式指示和模式請(qǐng)求的定義及不同編碼模式對(duì)應(yīng)的幀核心部分包含的總比特?cái)?shù)如表1所示。
表1 AMR幀類型、模式指示、模式請(qǐng)求定義和幀核心部分總比特?cái)?shù)
為了在一個(gè)較低的平均速率編碼輸入信號(hào),AMR編解碼器采用SCR(Source Controlled Rate)機(jī)制。SCR機(jī)制能實(shí)現(xiàn)如下功能:1)在發(fā)送端進(jìn)行語音活動(dòng)性檢測(cè)(Voice Activity Detector);2)在發(fā)送端估計(jì)背景噪聲參數(shù)并將其發(fā)送給接收端;3)靜默時(shí)(通話一方由講話進(jìn)入聆聽),在接收端生成一個(gè)舒適噪聲。圖2描述了一個(gè)通常情況下的SCR過程。
在一段通話中發(fā)送端VAD要檢測(cè)每一幀,若該幀攜帶的是語音,則將VAD標(biāo)志置為1,否則置為0。當(dāng)發(fā)送端一段語音結(jié)束進(jìn)入靜默時(shí),發(fā)送端會(huì)連續(xù)發(fā)送7幀語音幀,在這140 ms的時(shí)間里發(fā)送端用來估計(jì)背景噪聲參數(shù),然后發(fā)送1幀SID_FIRST幀(標(biāo)志靜默的開始,不攜帶背景噪聲信息)。此后,每8幀發(fā)送1幀更新的SID_UPDATE幀(攜帶最新的噪聲信息),其中第1個(gè)SID_UPDATE幀間隔SID_FIRST幀2幀(40 ms)。為了避免將短時(shí)突發(fā)噪聲當(dāng)語音信號(hào)處理,在一段語音結(jié)束且距離最近一次SID_UPDATE幀不到24幀時(shí),需要將最近一次更新的SID_UPDATE幀重發(fā)。在靜默期間其余的時(shí)間里發(fā)送空幀。
圖2 通常情況下的SCR過程
通過對(duì)AMR編解碼器SCR機(jī)制的研究可以發(fā)現(xiàn),在靜默時(shí)發(fā)送端會(huì)產(chǎn)生空音頻幀,而每個(gè)空音頻幀的幀長(zhǎng)也為20 ms。以一段30 s的短時(shí)通話為例,靜默時(shí)長(zhǎng)會(huì)達(dá)到15 s(一般情況下通話雙方不會(huì)同時(shí)說話),一端空音頻幀所占總時(shí)長(zhǎng)最大可能會(huì)達(dá)到?(7×(15/0.02-11)/8+2)×0.02」s=12.96 s,占通話總時(shí)長(zhǎng)的 43.2%,即在整個(gè)通話期間有將近一半的時(shí)間系統(tǒng)在傳輸空音頻幀,這對(duì)帶寬資源非常寶貴的無線通信來說是極大的浪費(fèi)。
基于上述分析,本文提出將靜默時(shí)AMR編解碼器產(chǎn)生的空音頻幀用來發(fā)送圖像數(shù)據(jù),從而展寬傳輸圖像數(shù)據(jù)的帶寬,以此來改善可視電話圖像質(zhì)量。
圖3給出了3G移動(dòng)可視終端的協(xié)議參考模型[5-7],據(jù)此每個(gè)協(xié)議可以用一個(gè)功能模塊實(shí)現(xiàn)。為實(shí)現(xiàn)本文提出的展寬傳輸圖像數(shù)據(jù)帶寬的功能,可以在音頻編解碼模塊和視頻編解碼模塊與復(fù)用模塊之間增加一個(gè)展寬帶寬模塊。
圖3 3G移動(dòng)可視終端協(xié)議參考模型
在設(shè)計(jì)方案時(shí),帶寬擴(kuò)展模塊由以下6個(gè)功能模塊組成(如圖4所示)。
1)音頻幀接收模塊:實(shí)現(xiàn)音頻幀的接收、檢測(cè)和處理。如檢測(cè)音頻編解碼模塊輸出的是否為空音頻幀,檢測(cè)復(fù)用模塊提供的音頻幀是否為攜帶圖像數(shù)據(jù)的空音頻幀。若檢測(cè)到空音頻幀,通知視頻編解碼模塊調(diào)整參數(shù)進(jìn)行較高質(zhì)量的編碼(減小量化步長(zhǎng)),并修改幀類型字段等。
2)壓縮圖像幀接收模塊:實(shí)現(xiàn)壓縮圖像幀的接收和檢測(cè)。如檢測(cè)并提取幀頭的TR字段。
3)插入圖像數(shù)據(jù)模塊:根據(jù)AMR編解碼器的編碼模式在相應(yīng)的空語音數(shù)據(jù)幀中插入相應(yīng)長(zhǎng)度的圖像數(shù)據(jù),將插入的圖像數(shù)據(jù)從原圖像幀中刪除。
4)提取圖像數(shù)據(jù)模塊:提取攜帶在空音頻幀中的圖像數(shù)據(jù),并將其插到壓縮圖像幀中相應(yīng)的位置,修改幀類型字段,將空音頻幀攜帶的圖像數(shù)據(jù)刪除。
5)接收/發(fā)送緩存:負(fù)責(zé)將語音幀和壓縮圖像幀進(jìn)行緩存,以保證模塊之間通信無阻,防止數(shù)據(jù)丟失。
6)接收/發(fā)送接口模塊:負(fù)責(zé)與應(yīng)用程序的交互。
其中,上述功能3)和4)是實(shí)現(xiàn)該算法的核心。
圖4 帶寬擴(kuò)展模塊結(jié)構(gòu)示意圖
下面對(duì)功能3)和4)的實(shí)現(xiàn)做進(jìn)一步說明。在空音頻幀中插入圖像數(shù)據(jù)時(shí),應(yīng)在其幀頭中標(biāo)識(shí)該圖像幀,以便在還原圖像幀時(shí)能夠?qū)⑻崛〉膱D像數(shù)據(jù)插入到正確的圖像幀中。在H.263協(xié)議定義的圖像層幀結(jié)構(gòu)[8](如圖5所示)中,PSC(Picture Start Code)標(biāo)識(shí)1幀圖像的開始,共22 bit,固定取值0000000000000000100000,其后是8 bit的TR(Temporal Reference)字段,標(biāo)識(shí)的是該圖像幀的時(shí)間信息,能夠唯一地標(biāo)識(shí)某一幀。本文利用該字段來標(biāo)識(shí)被截短的圖像幀,即讀取TR的值,并將其寫入8 bit的空音頻幀CRC字段(CRC字段在空音頻幀中未使用)。由于對(duì)應(yīng)一幀圖像有多幀AMR音頻伴音,即一幀圖像的時(shí)間間隔內(nèi)(等于圖像采樣幀率的倒數(shù))可能會(huì)有多幀空音頻幀相伴,為此需要對(duì)這些空音頻幀加以區(qū)分。本文利用空音頻幀中3 bit模式指示字段來標(biāo)識(shí)攜帶同一壓縮圖像幀數(shù)據(jù)的不同空音頻幀。為簡(jiǎn)化處理,同時(shí)考慮到信息的重要性,提取壓縮圖像幀的最后若干比特(具體數(shù)值由AMR編碼模式?jīng)Q定),即從圖像幀的幀尾處開始往前讀取相應(yīng)比特的數(shù)據(jù),并將其插入到相應(yīng)的空音頻幀中。
圖5 H.263圖像層幀結(jié)構(gòu)
帶寬擴(kuò)展模塊對(duì)接收到的音頻幀進(jìn)行判斷,若收到非空音頻幀,則直接傳給復(fù)用/分接模塊;否則根據(jù)AMR編解碼器的編碼模式將一定比特的壓縮圖像數(shù)據(jù)插入到空音頻幀中,并修改幀類型字段(例如將15修改為12),同時(shí)將截短的壓縮圖像幀頭中的TR值填入空音頻幀的CRC字段,并通知視頻編解碼模塊調(diào)整參數(shù),然后將處理過的空音頻幀和截短的壓縮圖像幀傳給復(fù)用/分接模塊。當(dāng)帶寬展寬模塊收到的連續(xù)非空音頻幀數(shù)大于某個(gè)預(yù)先設(shè)定的值時(shí),需通知視頻編解碼模塊恢復(fù)到調(diào)整前的參數(shù)。算法流程如圖6所示。
圖6 發(fā)送端帶寬展寬模塊算法流程
帶寬擴(kuò)展模塊檢測(cè)接收到的音頻幀類型,若是沒有插入圖像數(shù)據(jù)的音頻幀,則將其透明地發(fā)送給音頻處理模塊進(jìn)行處理;否則,提取其中的圖像數(shù)據(jù),并將其插到壓縮視頻碼流中相應(yīng)的位置,并且修改幀類型字段。將處理后的圖像幀和音頻幀分別發(fā)送給音頻編解碼模塊和視頻編解碼模塊。算法流程如圖7所示。
圖7 接收端帶寬展寬模塊算法流程
本文提出的方法能展寬傳輸圖像數(shù)據(jù)的帶寬,其性能可以用對(duì)視頻壓縮碼流速率的提升來衡量。定義Ri為視頻壓縮碼流速率的提升,則
式中:NNDFMi是某AMR模式的空音頻數(shù)據(jù)幀總數(shù);NBDMi是該模式下定義的幀核心部分的總比特?cái)?shù);TAMRframe是AMR幀長(zhǎng)(20 ms);Nmode是AMR編解碼器支持的模式總數(shù)(目前為8)。
根據(jù)式(1)可知,當(dāng)空音頻幀的AMR模式的碼率都為12.2 kbit/s時(shí),得到最大12.2 kbit/s的視頻壓縮碼流速率的提升。若原壓縮碼流速率為64 kbit/s,則提升百分比可以達(dá)到19.06%。
本文提出算法的核心思想在于通過展寬傳輸圖像數(shù)據(jù)的帶寬,從而提高視頻流編碼碼率,進(jìn)而提高可視電話圖像質(zhì)量。因此實(shí)驗(yàn)時(shí)沒有必要實(shí)現(xiàn)一個(gè)完整的可視電話系統(tǒng)。實(shí)驗(yàn)硬件平臺(tái)是用2臺(tái)硬件配置完全相同的高性能多媒體計(jì)算機(jī)搭建的,操作系統(tǒng)均為Windows XP,在這兩臺(tái)計(jì)算機(jī)間進(jìn)行可視通話。實(shí)驗(yàn)軟件是在Visual C++環(huán)境下建立一個(gè)3gVpTest.dsp工程,該工程包括原始音頻數(shù)據(jù)獲取/發(fā)送模塊、原始圖像數(shù)據(jù)獲取/發(fā)送模塊、H.263視頻編解碼模塊、AMR編解碼模塊和帶寬展寬模塊和數(shù)據(jù)接收/發(fā)送模塊6個(gè)模塊。其中H.263視頻編解碼模塊和AMR編解碼模塊通過修改開源的代碼實(shí)現(xiàn);數(shù)據(jù)接收/發(fā)送模塊利用Windows編程直接調(diào)用RTP/UDP的API;原始音頻數(shù)據(jù)獲取/發(fā)送模塊負(fù)責(zé)從傳聲器獲取/向傳聲器傳送原始的音頻數(shù)據(jù);原始圖像數(shù)據(jù)獲取/發(fā)送模塊負(fù)責(zé)從攝像頭獲取/向攝像頭傳送原始的圖像數(shù)據(jù)。
為了使測(cè)試環(huán)境盡量模擬無線信道傳輸條件,本文參考Qualcomm的測(cè)試參數(shù)(如表2所示)。這組參數(shù)使用的無線信道帶寬為64 kbit/s。
表2 實(shí)驗(yàn)參數(shù)
實(shí)驗(yàn)進(jìn)行兩次,通話時(shí)長(zhǎng)均為30 s。一次不使用本文提出的方法,一次使用。為了便于結(jié)果分析,在接收端保存通話視頻。實(shí)驗(yàn)結(jié)果可以從主觀評(píng)價(jià)和客觀評(píng)價(jià)兩方面分析。
客觀分析是利用Elecard StreamEye對(duì)兩段接收視頻進(jìn)行分析。主要是對(duì)該段顯示幀率(反映視頻的流暢性)和碼率(視頻圖像的質(zhì)量)進(jìn)行對(duì)比分析。分析數(shù)據(jù)如圖8所示。其中,圖8a為改進(jìn)前的分析數(shù)據(jù),其中平均幀率為6.89 f/s,平均單幀圖像數(shù)據(jù)為774 bit,計(jì)算平均碼率為42662 bit/s;圖8b為改進(jìn)后的分析數(shù)據(jù),其中平均幀率為7.58 f/s,平均單幀圖像數(shù)據(jù)為804 bit,計(jì)算平均碼率為48754 bit/s,平均碼率提升14.28%。
客觀數(shù)據(jù)反映出改進(jìn)后的視頻質(zhì)量?jī)?yōu)于改進(jìn)前,這一結(jié)論和主觀感受完全一致。因此無論是從主觀評(píng)價(jià)還是從客觀評(píng)價(jià),本文提出的方法都能顯著地改善可視電話的圖像質(zhì)量。
隨著中國3G時(shí)代的到來,移動(dòng)終端將能夠提供多種寬帶實(shí)時(shí)性應(yīng)用,可視電話是其中的代表性應(yīng)用。目前,可視電話在應(yīng)用中存在的主要問題是圖像不夠清晰流暢。本文通過對(duì)AMR編解碼器SCR機(jī)制的研究提出了一種改善移動(dòng)可視電話圖像質(zhì)量的方法,即利用可視電話靜默時(shí)產(chǎn)生的空音頻幀來發(fā)送壓縮圖像數(shù)據(jù)。通過搭建簡(jiǎn)單的3G手機(jī)模型測(cè)試驗(yàn)證,表明該方法對(duì)圖像質(zhì)量的增強(qiáng)效果明顯。
圖8 Elecard StreamEye分析結(jié)果(截圖)
[1]3GPP Technical Specification 3GTS26.071,AMR speech codec;general description[S].1999.
[2]3GPP Technical Specification 3GTS26.101,Adaptive multi-rate(AMR)speech codec frame structure[S].2011.
[3]3GPP Technical Specification 3GTS26.093,Adaptive multi-rate(AMR)speech codec;source controlled rate operation[S].2001.
[4]3GPP Technical Specification 3G TS26.094,AMR speech codec;voice activity detector(VAD)[S].2011.
[5]江磊,朱發(fā)楠.3G 移動(dòng)可視電話系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2011,35(7):68-70.
[6]3GPP Technical Specification 3GTS26.110,Codec for circuit switched multimedia telephony service;general description[S].2001.
[7]蔡安妮,孫景鰲.多媒體通信技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2000.
[8]ITU-T Rec.H.263,Multiplexing protocol for low bit rate multimedia communication[S].2005.