基于TMS320DM 365的实时视频无线传输
2014-03-16赵娟,李鑫
赵 娟, 李 鑫
(1.中国地质大学(武汉)信息技术教学实验中心,湖北 武汉 430074;2.中国地质大学(武汉)机械与电子信息学院,湖北 武汉 430074)
现有CDMA2000 EVDO网络的带宽完全可以满足经过压缩编码后的实时视频数据的传输[1],但由于视频监控领域实时性的要求,须采用UDP/IP协议,它是面向非连接的,不可靠的传输服务;同时,CDMA2000 EVDO网络自身具有波动性比较大、误码率高、传输延迟等诸多特点;经过传输的视频通常会出现延迟大,出现马赛克等质量问题。因此,有必要对CDMA2000 EVDO网络的特性进行有效评估,来指导视频编码发送端视频流的动态调节,从而达到降低丢包率,实现视频流畅播放的目的。
笔者依据CDMA2000 EVDO网络的诸多特点和参考RTP协议来制定出评估CDMA2000 EVDO网络特性的相关参数,再经过大量的实验数据统计、分析和论证,得出该网络的特性。提出了在视频编码发送端进行速率整形以匹配网络带宽的策略,并利用TMS320DM365的开发平台,对经过H.264编码的视频流进行了实时传输的测试。
1 CDMA2000 EVDO网络特性参数分析
相比有线网路,CDMA2000 EVDO网络具有一定的特殊性,因此衡量其网络特性也就相对比较复杂。这里主要依据RTP(real-time protocol)协议 RFC3550[2]给出部分参数,诸如丢包率、时间抖动;同时,从视频传输的角度定义部分与网络特性相关的参数,以下给出解释。
1)丢包间隔
丢包间隔=当前包序列号 -前一次包的序列号
丢包的间隔用来衡量网络实时的状态,正常情况下丢包间隔应该为1,而丢包间隔越大,也就说明数据包丢失的越厉害。
2)数据流量
数据流量=收到的包个数/收到的时间间隔
对于数据流量的统计可以说明网络的带宽状况,实时反映了传输速率。这里,可以把时间间隔作为恒定参量,来统计收到的数据包数,或者把收到的数据包数作为恒定参量,来统计时间间隔,而该文主要采用了后一种办法。
对于网络特性参数的测试,可以利用依据RTP协议编写的函数库jrtplib-3.7.1[3]和jrtpthread-1.2.1[4],该函数库具有很好的兼容性,可以在多种操作系统中应用。这里主要将其应用在基于达芬奇架构的TMS320DM365开发平台上和VC2008开发软件中。
2 CDMA2000 EVDO网络测试数据分析
2.1 实验硬件平台
客户端:TMS320DM365开发平台+CDMA2000 EVDO模块(MC8630)
服务器:VC2008开发软件和有线网络
2.2 实验数据测试
测试条件:在同一时间段内进行连续测量,数据流量为每收到100个数据包计算一次,时间抖动为每两个数据包计算一次,丢包率为收到数据包后每5 s计算一次,数据包大小为1 kB。
1)网络传输数据的实时统计分析,如图1至图4所示。其中图1和图2是在平均数据流量为86.3 kB/s的条件下测试所得,图3和图4是在平均数据流量为32.6 kB/s的条件下测试所得。
从图1和图2可以看出,时间抖动和丢包间隔是同步变化的,而且时间抖动比较剧烈,数据包丢失的也较多。
从图3和图4可以看出,时间抖动变化比较缓和,丢失的数据包也相对较少。
2)网络传输数据的整体对比,如表1所示。
从表1中可以看出,网络传输过程中的平均数据流量越高,平均时间抖动就越大,平均丢包率也越高。而当平均数据流量降至32.6 kB/s时,平均丢包率已经降至1%以下。
图1 时间抖动Fig.1 Time jitter
图2 丢包间隔Fig.2 The interval of package lost
图3 时间抖动Fig.3 Time jitter
图4 丢包间隔Fig.4 The interval of package lost
表1.实验测量数据Tab.1 Test data from experiment
综合以上实验数据,可以得出如下结论:发送数据速率(即数据流量)是决定CDMA2000 EVDO网络传输特性的关键因素。而且,当前网络带宽一定的前提下,发送数据速率越高,时间抖动就越大,丢包率就越高;反之亦然。
3 基于TMS320DM 365平台的速率整形
3.1 TMS320DM 365平台的硬件编码特性分析
TMS320DM365是TI的DaVinci系列的双核处理器,采用DSP进行硬件视频编码,将输入的BT.656格式的视频流编码为标准的H.264码流输出,该码流会伴随着I帧或P帧的产生而出现频繁的数据抖动[5]。而根据以上实验总结的CDMA2000 EVDO网络的传输特性,当这种抖动的码流直接通过网络传输的时候,一旦瞬时码流超过网络所能承受的带宽,将会面临很高的丢包率。实验证明,这种情况下,码流的丢包会达到60%以上,时间抖动也会超过10000(单位是RTP时间戳单位)。因此,有必要对该码流进行速率整形,使其平滑后再通过CDMA2000 EVDO网络传输。
3.2 H.264码流速率整形参数分析
TMS320DM365开发平台上控制输出码流大小的参数主要有帧率、GOP、图像质量和图像格式[6]。其中,对码流速率整形起着重要作用的参数是帧率和GOP。帧率,决定着视频图像的播放速率。帧率越高,其图像帧之间的间隔就越小,编码后的数据速率就越大。GOP,是指图像组,即每组图像中包含多少个P帧和I帧。这两个参数共同决定了编码后输出的H.264码流的数据速率和I帧的时间间隔。于是,可以应用这组参数对需要传输的码流予以速率整形[7]。
3.3 速率整形的实现过程
该过程如图5所示,其主要实现两个部分的功能。
图5 速率整形过程Fig.5 The procedure of data rate re-shaping
1)发送时间间隔的初步估计,主要是利用两个或多个I帧之间的时间间隔除以统计的包数,得到平均时间来作为发送的时间间隔。但是,考虑到在不同视频模式切换的过程中,会产生时间突变,这样,得到的时间间隔就不够精确,从而引起发送数据量的突变,使得模式切换时过度不够平滑。所以,需要进一步修正时间间隔。
2)修正时间间隔主要依赖于发送缓冲区中暂存的数据量。首先为发送缓冲区中的暂存数据量设定上下限Min_buf和Max_buf;然后对该数据量进行判断,当数据量处于Min_buf和Max_buf之间时,说明发送数据正常,就可以使用初步估计的时间间隔;当数据量低于下限Min_buf时,说明发送数据的速率过快,就需要将初步估计的时间延时,以降低发送速率,从而使缓冲区里的数据量恢复到正常范围,反之,当数据量高于上限Max_buf时,则需要缩短初步估计的时间。
3.4 速率整形结果测试和分析
经过初步速率整形之后,对视频编码发送端的数据速率进行测试。
测试条件为:图像格式 CIF,帧率 15 f/s,GOP=15,图像质量为A。
测试结果如图6所示。
图6 发送端数据流量统计Fig.6 The data stream statistics from sender
从中可以发现,该速率基本维持在55 kB/s左右,但同时也发现,每8个数据流间隔之间就会出现一个速率在100 kB/s左右的数据流,这是一个非常严重的问题。此后,经过大量的实验测试和分析,针对TMS320DM365开发平台来说,这个抖动的数据流是伴随着帧率和GOP这两个参数的变化而变化的。于是,为了获得更加平滑的数据速率,就需要对该数据进行再次整形。
3.5 二次速率整形及缓冲区调节
针对初次速率整形中所产生的问题,笔者通过对视频编码后的码流进行分析,查找出抖动视频流发生的规律,并以此作为计算初步发送时间间隔的边界,这样,就可以将之前平稳的码流与其中抖动的码流一起再次进行整形。但是,速率得到整形的同时,数据发送缓冲区就需要进一步进行细分以满足数据突变时更多不同的情况。缓冲区调整算法如图7所示。则以最快的速率发送数据,防止系统崩溃。
3.6 二次整形后实验小结
经过第二次速率整形以及发送缓冲区优化后,再对视频编码发送端的数据速率进行测试。实验结果表明:数据流量已基本稳定在60 kB/s(测试条件与3.3节相同)。这说明抖动的视频流也得到了一个有效的平滑缓冲。此外,经过服务器端的测试,当发送的码流在CDMA2000 EVDO网络带宽范围内时,数据的丢包率降低到10%以下,时间抖动也基本能稳定在5 000(单位是RTP时间戳单位)以下,更重要的是,通过该网络实时传输的视频数据可以实现比较流畅的播放。
4 结论
图7 缓冲区调整算法Fig.7 The tuning algorithm for buffe
该算法中先根据几个I帧 (其中包括数据流抖动的I帧)进行统计,计算出理论发送数据的速率Ns以及这段时间编码所产生的数据包数N,随后利用缓冲区未发送数据的包数n与N的比值来将缓冲区分为6个小部分,每个部分对应一个统计得出的乘积系数kn,最后就可以利用kn计算出实际发送数据的速率。这6个小部分,可以这样划分:部分Ⅰ表示以正常的速率发送数据;部分Ⅱ表示当缓冲区里是数据累计较多时,以一定的比例加速发送数据;部分Ⅲ表示当编码完成时,瞬时产生的大量数据包累积在缓冲区时,以比Ⅱ更快的速率发送数据;部分Ⅳ和部分Ⅴ处理的是在进行视频模式向高码率切换时,会产生大量的数据包,这时发送数据的速率需要更加快速;最后的部分Ⅵ是当有异常产生时,缓冲区内的数据包会超过理论单次编码生成数据包的2倍以上,
在现有的CDMA2000 EVDO网络中,采用速率整形的方法来传输经过H.264编码压缩的实时视频数据,可以有效提高视频的质量,减小视频信号的时延,减弱视频中的马赛克现象[8]。但是,考虑一点,经过硬件编码器编码的视频流,其码流量是一定的,而这种码流整形的方法只能是将抖动的码流变得更加均匀,更适合于无线网络传输,其并没有有效的降低码流。所以,在网络状况一旦变得比较差的情况下,即使经过平滑的码流也同样面临着丢包率很高的危险,从而导致视频质量降低。因此,更好的解决方法就是通过对3G无线网络的动态评估和监测,来实时调整视频编码参数而有效地降低码流,保证平稳的码流能够适应网络带宽的变化,以达到更加理想的效果。
[1]田霞.基于3G网络的新型无线监控系统 [J].价值工程,2010,29(36):154-155.TIAN Xia.The new wirelessmonitoring system based on 3G network[J].Value Engineering,2010,29(36):154-155.
[2]Schulzrinne H,Casner S,Frederick R,et al.RTP:A Transport Protocol for Real-Time Applications[S].RFC3550.[S.l.]2003.
[3]Jori Liesenborgs.JRTPLIB 3.4.0[EB/OL].[2006-1-19].http:w ww.edm.uhasselt.be/
[4]Jori Liesenborgs.JThreadmanual(v1.2.1)[EB/OL].[2006-06-20].http://www.edm.uhasselt.be/
[5]Sejal Barot,Karimulla Shaik,Naveen Srinivasamurthy,Yashwant Dutt.Application Parameter Settings for TMS320D M365 H.264 Encoder[EB/OL].[2010-5-20].http:/www.ti.com/apps/docs/mrktgenpage.tsp contentId=54260&app Id=79.
[6]DM365-DVRReference Design User Guide Document Version1.1[EB/OL].[2009-8-21].http://www.ti.com/tool/dvrrd.
[7]盛先刚.基于RTP的H.264视频传输系统研究 [D].西安:西安电子科技大学,2006.
[8]朱孟祥,唐普英,黄自立,等.基于DSP和FPGA的多通道CMOS图像监控系统[J].电子设计工程,2011,19(14):178-180.ZHU Meng-xiang,TANG Pu-ying,HUANG Zi-li,et al.Monitoring system ofmultiple video channels based on DSP and FPGA[J].Electronic Design Engineering,2011,19(14):178-180.