在视频会议使用过程中,当网络环境出现延迟时,视频会议画面将会出现较大影响。画面变的不清晰,甚至出现马赛克等等,出现此类情况时,可采用网络JB抖动缓冲的技术,下面详细介绍这项技术的主要功能:
(视频会议)
视频会议网络抖动缓冲接收网络包并对其进行排序组帧后发给混频器解编码,所以整个过程可以分为暂存、排序、组帧和丢包处理四个部分。为了使模块更清晰,媒体处理更高效,我们的抖动缓冲采用二级缓冲策略。一级缓冲为RTP处理缓冲,二级缓冲为音视频通用缓冲。
1.1 暂存
因为数据写入RTP缓冲区是在RTP回调中进行的,所以在RTP数据读取的过程中需要把RTP数据包一次性读出来。为了提高RTP回调处理效率并减少大块数据拷贝次数,在RTP数据写入缓冲区的过程中不进行排序,而是按照数据包到来的顺序直接写入一级缓冲区(见图1(b))。当缓冲满以后,缓冲主动丢包。
1.2 排序
为减少数据拷贝,二级缓冲不再对一级缓冲进行数据缓冲,而对数据相关的信息(主要是该包对应于一级缓冲的地址和RTP包头信息)进行缓冲(图中绿色为数据包,蓝色表示数据包对应的信息包)。RTP接收任务读取二级缓冲的数据包(可能存在抖动、丢包、乱序),按照”插空排序”方法将信息写入二级缓冲的适当位置(见图1(c))。这种”插空排序”方法按序号将包分成正常包、早到包、晚到包和错误包四种包。因此,这四种包插入二级缓冲的方法略有不同。对于正常包和错误包,它们将被插入到上一个正常包或早到包的后面;对于早到包和晚到包则根据序号计算被插入到相应的位置。