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