基于移动网络的高清晰视频传输系统研制
2014-12-05文铭胡海波
【作 者】文铭,胡海波
上海交通大学生物医学工程学院,上海市,200240
0 引言
随着科技的发展,医疗信息化已经成为一种趋势。国家的“十二五”规划中明确指出,医疗信息化是医药卫生改革的重要组成部分,需要运用云计算、移动互联等新兴技术,推动数字医疗、远程手术等项目的发展,因此智能移动设备将在医疗行业发挥更加重要的作用[1]。
在医疗领域,尽管3G网络飞速发展,视频的传输主要还是通过有线网完成。如何在带宽受限、网络不稳定、屏幕较小的情况下设计出符合嵌入式特点的流媒体系统则成为推动3G网络在医疗领域发展的关键[2]。同时,医疗领域对高清晰分辨率图像和实时视频数据传输有较高要求,但是3G网络由于自身缺陷,如误码率高、抗干扰能力差,使得数据在传输过程中极易丢失,影响系统稳定性[3]。这就需要在视频传输途中,努力提升数据压缩比,同时修正网络实时传输过程中引起的数据错误。
针对以上情况,本文对视频实时传输进行了研究和探讨,提出了一种采用H.264/AVC编码压缩,通过扩展实时传输协议(real-time transport protocol-RTP)和控制协议(real-time transport control protocol-RTCP)来传输实时流媒体的解决方案。
1 移动流媒体系统设计
移动流媒体传输系统主要分为两个部分:(1)提供流媒体传输的服务端;(2)便携式终端播放器。系统总体框图,如图1所示。服务端作为整个系统的核心,当便携式终端发起请求时,服务端将建立RTSP连接,然后从图像源处取出视频数据流并压缩封装成RTP包,经过3G网络传送到客户端解码播放。
图1 系统结构Fig.1 The architecture of the system
1.1 流媒体服务器
本文设计的基于3G网络的流媒体服务器可以运行在windows和Linux等多个操作系统上。根据服务器要实现的功能以及3G网络的特殊性,文中进行了两个方面的改进,包括服务端网络纠错和服务端网络监测。
1.1.1 服务端网络纠错
3G网络具有带宽有限、误码率高、抗干扰能力差、多径衰落等缺点,使得数据在传输中易丢失,影响系统稳定性,因此本系统采用前向纠错(Forward Error Correction-FEC)[4-6]来恢复数据,即在传输的原始数据中加入被称为纠错码的冗余数据,在一定条件下,就可以根据原始数据和冗余数据在解码端自动纠正错误,从而降低误码率。
由于要区分原始数据和冗余数据,本系统在实现时扩展了RTP标准协议,即设置RTP包头的X字段为1,然后在RTP Header后面加入了Extension Header。原始RTP头和扩展以后的头对比,如图2所示。
图2 原始RTP包头和扩展RTP包头对比Fig.2 The format of original header and extension header
Extension Header 占有4个字节长度,考虑到移动网络带宽受限的约束,本系统把前2个字节设置为0,这样就不会过多占用网络通道。而后2个字节直接表示RTP包的长度,因为RTP标准协议是没有记录RTP包长度的,在数据传输过程中总是按照某个固定长度L来发送的,这样即使负载数据为空也要预留长度L的空间,对于本来就不宽松的移动带宽来说是一种浪费。通过这种改进,能够按照需要的长度发送数据,客户端也能够很快获得负载数据的长度信息,从而提高带宽利用率。
1.1.2 服务端网络监测
主要监测3个数据:RTCP发送者报告(sender report:SR)、RTCP接收者报告(receive report:RR)、RTCP自定义段(application-defined RTCP packet:APP)[7]。当前,国内外学者提出了多种解决方法[8-10],但是系统都比较复杂。本文则改进了反馈机制,在APP中设置了几个重要参数:网络带宽bandwidth、已接收到的RTP原始数据的数目original source number、已接收到的RTP冗余数据的数目Redundant number、已修复的原始数据的数目repair source number。带宽计算公式如下:假设两次接收数据的时间间隔是T,RTP包的长度是L,已接收到的RTP原始数据的数目是N,则传输数据必需的带宽
由于需要对网络进行修复,因此剩余可用带宽设为0,所以上式也可表示网络中的实际带宽。根据这些数据,服务器能够得到网络的状态(包括有效带宽、丢包率、时延特性等),从而通知编码器相应的调节编码速率,同时调节数据发送速率,提高实时视频传输的效果。
1.2 客户端播放器
在3G网络条件下,便携式终端有多种选择。本文选择在Android手机上实现流媒体播放器。为了能够正确解码视频流,包括两个方面的工作:数据重排序、数据解码。
1.2.1 数据重排序
根据RTP包的序列号和时间戳来重新排序。同时对于丢失的数据,采用前向纠错进行恢复,当数据重新整合完成后,就送入解码模块。
1.2.2 数据解码
本系统在标准RTP/RTCP协议基础上,增添了独立的扩展头用于视频流控制,增添了冗余数据用于信道编码,因此需自制客户端来识别有效的数据类型。由于使用了扩展的RTP协议来传输数据,标准播放器将不能显示带冗余数据的视频流。客户端解码器考虑到开源特性和降低成本的目的,系统采用FFMPEG来解码,能够最大程度的保留视频的原始特性。
2 系统测试
本系统采用3G网络来测试。服务器端在PC电脑上,客户端在Android手机上实现。
考虑到手机的限制,视频码率不能太高,查询Android相关文件后确定码率在380 kbps左右。图3为Android关于视频质量的设定。
图3 Android 视频质量标准Fig.3 The standard of Android video quality
实验时3G移动网络各参数如表1所示。
实验分为两种情况:(1)直接传输,即未加入网络纠错、网络监测、抗干扰等技术;(2)采用本系统进行数据传输。通过图4对比,说明本系统能够有效消除画面抖动;图5是丢包后,前向纠错对图片进行修复的效果,有效的减少了马赛克。通过对比可以看出,本系统前向纠错技术对于丢失的数据有较好的修复能力,能够显著的改善画面效果,从而减少传输延时抖动,提高传输平稳性。
表1 3G移动网络参数Tab.1 Parameters of 3G network
图4 消除画面抖动Fig.4 Remove image jitter
图5 修复锯齿、马赛克Fig.5 Repair image
3 结论
近年来,流媒体传输的快速发展引起了国内外众多专家学者的广泛关注和研究兴趣。本文结合当前3G网络的特点,提出以H.264/AVC为编码器来压缩视频文件,并用RTP协议来传输数据,同时在Android客户端显示,最终实现了移动网络环境下实时流媒体的传输。针对移动网络信道不稳定、易丢包等缺点文中采用增加冗余数据这种前向纠错的方法来修复。通过实验证明了本系统有一定的纠错能力,为以后进一步优化奠定了基础。
[1]平板电脑将在“十二五”期间医疗信息化中发挥重要作用[J].医学信息学杂志,2012,33(2): 94.
[2]苏征远,易燕,赵庆江,等.基于3G的流媒体服务技术研究[J].电子设计工程,2012,1: 74-76.
[3]柳林.面向3G的H.264/AVC压缩视频通信技术研究[D].浙江大学,2006.
[4]Mazzotti M,Paolini E,Chiani M,et al,Analysis of packet-level forward error correction for video transmission[C].IEEE VTC Spring,2011: 1-5.
[5]Diaz C,Cabrera J,Jaureguizar F,et al.A video-aware FEC-based unequal loss protection scheme[C].IEEE ICCE,2011: 3-4.
[6]Li L,Han Q,Niu X.Enhanced adaptive FEC based multiple description coding for internet video streaming over wireless network [C].6th IIH-MSP,2010: 478-481.
[7]Schulzrinne H,Casner S,Frederick R,et al.RTP: A transport protocol for real-time applications[R].RFC 3550,Tech Rep,2003:35-37.
[8]Krishnapriya S,Hariharan B,Kumar S.Resolution scaled quality adaptation for ensuring video availability in real-time systems[C].IEEE HPCC-ICESS,2012: 873-878.
[9]Zhao J,Liu X.A new control mechanism for real-time video transmission based on H.264[C].IEEE ICAL,2009: 1742-1745.
[10]Xu L,Ai S.A new feedback control strategy of video transmission based on RTP[C]. ICIEA,2006: 1-4.