TCP协议的重传机制对实时音视频传输而言,如果网络质量很差,丢包率很高,重传机制导致传输延迟急剧增加,传输质量严重下滑。实时音视频传输协议一般采用UDP(应用层基于UDP的RTP协议,为视频传输提供序号和音视频同步服务),UDP具有高吞吐和低延时的特点。然而,基于UDP的RTP传输在复杂的公网环境下,特别是3G、4G、WIFI网络时面临丢包、乱序、重复、抖动等问题,严重影响实时音视频的传输效果。应用层的 FEC (Forward Error Correction,前向纠错)是一项有效防止丢包的技术,是一种实时视频传输的有效可靠的解决方案。
差错控制技术
FEC是一种在单向通信系统中控制传输错误的技术,通过连同数据发送额外的信息进行错误恢复,以降低比特误码率。发送方将要发送的数据加上一定的冗余纠错码一起发送,接收方则根据纠错码对接收到的数据进行差错检测,如发现差错,则由接收方进行纠错。FEC又分为带内FEC和带外FEC。FEC是通过添加冗余信息的传输采用预先确定的算法。1949年汉明(Hamming)提出了可纠正单个随机差错的汉明码。1960年Hoopueghem、Bose和Chaudhum发明了BCH码,Reed与Solomon提出ReedSolomon(RS)编码,纠错能力很强,后来称之为里德-所罗门误码校正编码(The reed-solomon error correction code,即后来的附加的前向纠错)。ITU-T G.975/G.709规定了“带外FEC”是在SDH层下面增加一FEC层,专门处理FEC的问题。带外FEC编码冗余度大,纠错能力较强。FEC有别于ARQ,发现错误无须通知发送方重发。一旦系统丢失了