摘要:为了实现基于TMS320DM365编码的实时视频流通过CDMA2000 EVDO网络传输后能够流畅播放的功能,同时缓解视频传输延迟和马赛克现象,文中通过对CDMA2000 EVDO网络传输过程中数据丢包率和时间抖动等参数的分析和论证,提出了在视频编码发送端进行速率整形以适应网络带宽的方法。该方法主要是在视频数据编码完成后,通过CDMA2000 EVDO网络发送时,对发送数据的速率做出了两次平滑调整。其结果表明,该方法能有效的改善传输视频的质量,提升视频的流畅性。
现有CDMA2000 EVDO网络的带宽完全可以满足经过压缩编码后的实时视频数据的传输,但由于视频监控领域实时性的要求,须采用UDP/ IP协议,它是面向非连接的,不可靠的传输服务;同时,CDMA2000 EVDO网络自身具有波动性比较大、误码率高、传输延迟等诸多特点;经过传输的视频通常会出现延迟大,出现马赛克等质量问题。因此,有必要对CDMA2000 EVDO网络的特性进行有效评估,来指导视频编码发送端视频流的动态调节,从而达到降低丢包率,实现视频流畅播放的目的。
笔者依据CDMA2000 EVDO网络的诸多特点和参考RTP协议来制定出评估CDMA2000 EVDO网络特性的相关参数,再经过大量的实验数据统计、分析和论证,得出该网络的特性。提出了在视频编码发送端进行速率整形以匹配网络带宽的策略,并利用TMS320DM365的开发平台,对经过H.264编码的视频流进行了实时传输的测试。
1 CDMA2000 EVDO网络特性参数分析
相比有线网路,CDMA2000 EVDO网络具有一定的特殊性,因此衡量其网络特性也就相对比较复杂。这里主要依据RTP(real—time proto eol)协议RFC3550给出部分参数,诸如丢包率、时间抖动;同时,从视频传输的角度定义部分与网络特性相关的参数,以下给出解释。
1)丢包间隔
丢包间隔=当前包序列号-前一次包的序列号
丢包的间隔用来衡量网络实时的状态,正常情况下丢包间隔应该为1,而丢包间隔越大,也就说明数据包丟失的越厉害。
2)数据流量
数据流量=收到的包个数/收到的时间间隔
对于数据流量的统计可以说明网络的带宽状况,实时反映了传输速率。这里,可以把时间间隔作为恒定参量,来统计收到的数据包数,或者把收到的数据包数作为恒定参量,来统计时间间隔,而该文主要采用了后一种办法。
对于网络特性参数的测试,可以利用依据RTP协议编写的函数库jrtplib-3.7.1和jrtpthread-1.2.1,该函数库具有很好的兼容性,可以在多种操作系统中应用。这里主要将其应用在基于达芬奇架构的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%以下。
综合以上实验数据,可以得出如下结论:发送数据速率(即数据流量)是决定CDMA2000 EVDO网络传输特性的关键因素。而且,当前网络带宽一定的前提下,发送数据速率越高,时间抖动就越大,丢包率就越高;反之亦然。
3 基于TMS320DM365平台的速率整形
3.1 TMS320DM365平台的硬件编码特性分析
TMS320DM365是TI的DaVinci系列的双核处理器,采用DSP进行硬件视频编码,将输入的BT.656格式的视频流编码为标准的H.264码流输出,该码流会伴随着I帧或P帧的产生而出现频繁的数据抖动。而根据以上实验总结的CDMA2000EVDO网络的传输特性,当这种抖动的码流直接通过网络传输的时候,一旦瞬时码流超过网络所能承受的带宽,将会面临很高的丢包率。实验证明,这种情况下,码流的丢包会达到60%以上,时间抖动也会超过10000(单位是RTP时间戳单位)。因此,有必要对该码流进行速率整形,使其平滑后再通过CDMA2000 EVDO网络传输。
3.2 H.264码流速率整形参数分析
TMS320DM365开发平台上控制输出码流大小的参数主要有帧率、GOP、图像质量和图像格式。其中,对码流速率整形起着重要作用的参数是帧率和COP。帧率,决定着视频图像的播放速率。帧率越高,其图像帧之间的间隔就越小,编码后的数据速率就越大。GOP,是指图像组,即每组图像中包含多少个P帧和I帧。这两个参数共同决定了编码后输出的H.264码流的数据速率和I帧的时间间隔。于是,可以应用这组参数对需要传输的码流予以速率整形。
3.3 速率整形的实现过程
该过程如图5所示,其主要实现两个部分的功能。
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所示。