许 静
(西安邮电大学电子工程学院,陕西 西安 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.