許 靜
(西安郵電大學電子工程學院,陜西 西安 710121)
隨著中國3G時代的到來,移動終端將能夠提供多種寬帶實時性應用,如可視電話、遠程無線監控等。其中,可視電話作為3G的代表性應用,將會有廣泛的應用前景。目前,可視電話在應用中存在的主要問題是圖像不夠清晰流暢,主要表現在移動終端移動或者場景內物體發生移動后,可視電話畫面會出現不同程度的馬賽克現象,特別是在高速移動時,圖像的馬塞克更為嚴重。針對上述可視電話的圖像質量問題,目前采用的解決方案有提升編碼前圖像的質量、改進視頻編解碼算法的性能和提高網絡流媒體的傳輸性能等。要提升編碼前圖像質量,就必然要提高前端設備的性能,這樣會較大地增加成本。在3GPP的協議中,可視電話的視頻編碼可以采用 H.261,H.263,H.264和MPEG-4中的一種。從H.261到MPEG-4,視頻編解碼的性能雖然得到較大提升,但算法的復雜度也有很大程度的增加,在對實時性要求較高的可視電話應用中,算法復雜度和實時性是矛盾的。提高網絡流媒體傳輸性能的成本更高,不切實際。綜上分析,這些方法都能在一定程度上改善可視電話的圖像質量,但在具體實現成本以及復雜度上都具有一定的局限性。
本文提出了一種改善移動可視電話圖像質量的方法,即將可視電話在靜默時產生的空音頻幀用來發送圖像數據,以此來展寬傳輸圖像數據的帶寬。該方法對圖像質量的增強效果明顯,且不會影響可視電話的實時性。
自適應多速率語音編碼(AMR)是由3GPP制定的應用于第3代移動通信系統中的語音壓縮編碼,相比現在的GSM聲碼器(FR,EFR和HR)采用固定的編碼率,AMR聲碼器則可根據無線信道的傳輸狀況來自適應地選擇一種最佳信道模式(全速率或半速率)和編碼模式(以比特率來區分)進行編碼傳輸。AMR語音編碼器是由從4.75~12.20 kbit/s的8種單個語音編碼器所組成的,每幀20 ms,160 個樣點,采樣率為8 kHz。
AMR編解碼器定義了3類幀:語音幀、SID(Silence Descriptor)幀和空幀。其中語音幀攜帶的是語音數據,SID幀攜帶的是發送端背景噪聲數據,而空幀不攜帶任何數據。根據編解碼器的編碼模式語音幀可以分成8種,而根據攜帶的內容,SID幀可以分成SID_FIRST幀和SID_UPDATE幀。AMR IF1(Interface Format 1)的通用幀結構如圖1所示。
1個AMR幀被分成幀頭、輔助信息和幀核心3部分。其中幀頭部分包含幀類型和幀質量指示段;輔助信息部分包含模式指示、模式請求和CRC段;幀核心部分包含的是語音數據或噪聲數據。幀核心部分根據數據的重要性分成A類、B類和C類,其中A類的重要性最高,C類最低。

圖1 通用AMR幀結構
幀類型、模式指示和模式請求的定義及不同編碼模式對應的幀核心部分包含的總比特數如表1所示。

表1 AMR幀類型、模式指示、模式請求定義和幀核心部分總比特數
為了在一個較低的平均速率編碼輸入信號,AMR編解碼器采用SCR(Source Controlled Rate)機制。SCR機制能實現如下功能:1)在發送端進行語音活動性檢測(Voice Activity Detector);2)在發送端估計背景噪聲參數并將其發送給接收端;3)靜默時(通話一方由講話進入聆聽),在接收端生成一個舒適噪聲。圖2描述了一個通常情況下的SCR過程。
在一段通話中發送端VAD要檢測每一幀,若該幀攜帶的是語音,則將VAD標志置為1,否則置為0。當發送端一段語音結束進入靜默時,發送端會連續發送7幀語音幀,在這140 ms的時間里發送端用來估計背景噪聲參數,然后發送1幀SID_FIRST幀(標志靜默的開始,不攜帶背景噪聲信息)。此后,每8幀發送1幀更新的SID_UPDATE幀(攜帶最新的噪聲信息),其中第1個SID_UPDATE幀間隔SID_FIRST幀2幀(40 ms)。為了避免將短時突發噪聲當語音信號處理,在一段語音結束且距離最近一次SID_UPDATE幀不到24幀時,需要將最近一次更新的SID_UPDATE幀重發。在靜默期間其余的時間里發送空幀。

圖2 通常情況下的SCR過程
通過對AMR編解碼器SCR機制的研究可以發現,在靜默時發送端會產生空音頻幀,而每個空音頻幀的幀長也為20 ms。以一段30 s的短時通話為例,靜默時長會達到15 s(一般情況下通話雙方不會同時說話),一端空音頻幀所占總時長最大可能會達到?(7×(15/0.02-11)/8+2)×0.02」s=12.96 s,占通話總時長的 43.2%,即在整個通話期間有將近一半的時間系統在傳輸空音頻幀,這對帶寬資源非常寶貴的無線通信來說是極大的浪費。
基于上述分析,本文提出將靜默時AMR編解碼器產生的空音頻幀用來發送圖像數據,從而展寬傳輸圖像數據的帶寬,以此來改善可視電話圖像質量。
圖3給出了3G移動可視終端的協議參考模型[5-7],據此每個協議可以用一個功能模塊實現。為實現本文提出的展寬傳輸圖像數據帶寬的功能,可以在音頻編解碼模塊和視頻編解碼模塊與復用模塊之間增加一個展寬帶寬模塊。

圖3 3G移動可視終端協議參考模型
在設計方案時,帶寬擴展模塊由以下6個功能模塊組成(如圖4所示)。
1)音頻幀接收模塊:實現音頻幀的接收、檢測和處理。如檢測音頻編解碼模塊輸出的是否為空音頻幀,檢測復用模塊提供的音頻幀是否為攜帶圖像數據的空音頻幀。若檢測到空音頻幀,通知視頻編解碼模塊調整參數進行較高質量的編碼(減小量化步長),并修改幀類型字段等。
2)壓縮圖像幀接收模塊:實現壓縮圖像幀的接收和檢測。如檢測并提取幀頭的TR字段。
3)插入圖像數據模塊:根據AMR編解碼器的編碼模式在相應的空語音數據幀中插入相應長度的圖像數據,將插入的圖像數據從原圖像幀中刪除。
4)提取圖像數據模塊:提取攜帶在空音頻幀中的圖像數據,并將其插到壓縮圖像幀中相應的位置,修改幀類型字段,將空音頻幀攜帶的圖像數據刪除。
5)接收/發送緩存:負責將語音幀和壓縮圖像幀進行緩存,以保證模塊之間通信無阻,防止數據丟失。
6)接收/發送接口模塊:負責與應用程序的交互。
其中,上述功能3)和4)是實現該算法的核心。

圖4 帶寬擴展模塊結構示意圖
下面對功能3)和4)的實現做進一步說明。在空音頻幀中插入圖像數據時,應在其幀頭中標識該圖像幀,以便在還原圖像幀時能夠將提取的圖像數據插入到正確的圖像幀中。在H.263協議定義的圖像層幀結構[8](如圖5所示)中,PSC(Picture Start Code)標識1幀圖像的開始,共22 bit,固定取值0000000000000000100000,其后是8 bit的TR(Temporal Reference)字段,標識的是該圖像幀的時間信息,能夠唯一地標識某一幀。本文利用該字段來標識被截短的圖像幀,即讀取TR的值,并將其寫入8 bit的空音頻幀CRC字段(CRC字段在空音頻幀中未使用)。由于對應一幀圖像有多幀AMR音頻伴音,即一幀圖像的時間間隔內(等于圖像采樣幀率的倒數)可能會有多幀空音頻幀相伴,為此需要對這些空音頻幀加以區分。本文利用空音頻幀中3 bit模式指示字段來標識攜帶同一壓縮圖像幀數據的不同空音頻幀。為簡化處理,同時考慮到信息的重要性,提取壓縮圖像幀的最后若干比特(具體數值由AMR編碼模式決定),即從圖像幀的幀尾處開始往前讀取相應比特的數據,并將其插入到相應的空音頻幀中。

圖5 H.263圖像層幀結構
帶寬擴展模塊對接收到的音頻幀進行判斷,若收到非空音頻幀,則直接傳給復用/分接模塊;否則根據AMR編解碼器的編碼模式將一定比特的壓縮圖像數據插入到空音頻幀中,并修改幀類型字段(例如將15修改為12),同時將截短的壓縮圖像幀頭中的TR值填入空音頻幀的CRC字段,并通知視頻編解碼模塊調整參數,然后將處理過的空音頻幀和截短的壓縮圖像幀傳給復用/分接模塊。當帶寬展寬模塊收到的連續非空音頻幀數大于某個預先設定的值時,需通知視頻編解碼模塊恢復到調整前的參數。算法流程如圖6所示。

圖6 發送端帶寬展寬模塊算法流程
帶寬擴展模塊檢測接收到的音頻幀類型,若是沒有插入圖像數據的音頻幀,則將其透明地發送給音頻處理模塊進行處理;否則,提取其中的圖像數據,并將其插到壓縮視頻碼流中相應的位置,并且修改幀類型字段。將處理后的圖像幀和音頻幀分別發送給音頻編解碼模塊和視頻編解碼模塊。算法流程如圖7所示。

圖7 接收端帶寬展寬模塊算法流程
本文提出的方法能展寬傳輸圖像數據的帶寬,其性能可以用對視頻壓縮碼流速率的提升來衡量。定義Ri為視頻壓縮碼流速率的提升,則

式中:NNDFMi是某AMR模式的空音頻數據幀總數;NBDMi是該模式下定義的幀核心部分的總比特數;TAMRframe是AMR幀長(20 ms);Nmode是AMR編解碼器支持的模式總數(目前為8)。
根據式(1)可知,當空音頻幀的AMR模式的碼率都為12.2 kbit/s時,得到最大12.2 kbit/s的視頻壓縮碼流速率的提升。若原壓縮碼流速率為64 kbit/s,則提升百分比可以達到19.06%。
本文提出算法的核心思想在于通過展寬傳輸圖像數據的帶寬,從而提高視頻流編碼碼率,進而提高可視電話圖像質量。因此實驗時沒有必要實現一個完整的可視電話系統。實驗硬件平臺是用2臺硬件配置完全相同的高性能多媒體計算機搭建的,操作系統均為Windows XP,在這兩臺計算機間進行可視通話。實驗軟件是在Visual C++環境下建立一個3gVpTest.dsp工程,該工程包括原始音頻數據獲取/發送模塊、原始圖像數據獲取/發送模塊、H.263視頻編解碼模塊、AMR編解碼模塊和帶寬展寬模塊和數據接收/發送模塊6個模塊。其中H.263視頻編解碼模塊和AMR編解碼模塊通過修改開源的代碼實現;數據接收/發送模塊利用Windows編程直接調用RTP/UDP的API;原始音頻數據獲取/發送模塊負責從傳聲器獲取/向傳聲器傳送原始的音頻數據;原始圖像數據獲取/發送模塊負責從攝像頭獲取/向攝像頭傳送原始的圖像數據。
為了使測試環境盡量模擬無線信道傳輸條件,本文參考Qualcomm的測試參數(如表2所示)。這組參數使用的無線信道帶寬為64 kbit/s。

表2 實驗參數
實驗進行兩次,通話時長均為30 s。一次不使用本文提出的方法,一次使用。為了便于結果分析,在接收端保存通話視頻。實驗結果可以從主觀評價和客觀評價兩方面分析。
客觀分析是利用Elecard StreamEye對兩段接收視頻進行分析。主要是對該段顯示幀率(反映視頻的流暢性)和碼率(視頻圖像的質量)進行對比分析。分析數據如圖8所示。其中,圖8a為改進前的分析數據,其中平均幀率為6.89 f/s,平均單幀圖像數據為774 bit,計算平均碼率為42662 bit/s;圖8b為改進后的分析數據,其中平均幀率為7.58 f/s,平均單幀圖像數據為804 bit,計算平均碼率為48754 bit/s,平均碼率提升14.28%。
客觀數據反映出改進后的視頻質量優于改進前,這一結論和主觀感受完全一致。因此無論是從主觀評價還是從客觀評價,本文提出的方法都能顯著地改善可視電話的圖像質量。
隨著中國3G時代的到來,移動終端將能夠提供多種寬帶實時性應用,可視電話是其中的代表性應用。目前,可視電話在應用中存在的主要問題是圖像不夠清晰流暢。本文通過對AMR編解碼器SCR機制的研究提出了一種改善移動可視電話圖像質量的方法,即利用可視電話靜默時產生的空音頻幀來發送壓縮圖像數據。通過搭建簡單的3G手機模型測試驗證,表明該方法對圖像質量的增強效果明顯。

圖8 Elecard StreamEye分析結果(截圖)
[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]江磊,朱發楠.3G 移動可視電話系統設計[J].電視技術,2011,35(7):68-70.
[6]3GPP Technical Specification 3GTS26.110,Codec for circuit switched multimedia telephony service;general description[S].2001.
[7]蔡安妮,孫景鰲.多媒體通信技術基礎[M].北京:電子工業出版社,2000.
[8]ITU-T Rec.H.263,Multiplexing protocol for low bit rate multimedia communication[S].2005.