高清VGA采集视频传输帧数要“步步为营”
高清VGA采集视频的参数选择需要考虑到I 帧的数量,如果I帧过多,会影响压缩效率,如果I 帧过少,会影响视频解码质量。视频播放时,I 帧的丢失是不可容忍的,因此要尽量保证播放时I 帧的数据已收到。选择1 个合适的编码参数,若每T s1 个I 帧,则将每T s 的数据作为一个批次发送。若传输延迟为t s,则初始延迟为(T+t) s。此后为保证视频播放的实时性和流畅性,无论每批次在T s 内是否传送完毕,都应停止当前批次的发送,及时启动下一批次的发送。在每批次中,视频帧的打包应遵循IETF 相关标准[4]规定。即每一个数据包的长度应满足不超过MTU (Maximum TransmissionUnit,最大传输单元,一般为1 500 byte)的条件,每个P 帧单独组成1 个数据包,I 帧在每个限制长度内组成1 个包, 不足的部分单独组成1 个包。如果只利用ExOR 传输数据,由于无线多跳网络本身的随机性和不稳定性以及ExOR 最后几个包的传输延迟较大, 并不一定能保证每T s 的数据都能在T s 内传输完毕。这样就会造成某些批次最后几个数据包的丢失。而ExOR 调度机制本身决定了这最后几个数据包是随机的,如果丢掉的恰好是I 帧的数据包,造成I 帧的丢失,就会导致这T s 的视频无法播放,从而造成视频观看的不连续性和主观收看质量的下降。因此,不能简单地将ExOR 直接用于视频传输,必须根据视频传输的特殊性做相应地调整。
高清VGA采集视频传输与一般数据传输所不同, 其特殊性之一就在于高清VGA采集视频传输中数据包的重要性是不同的[5]。关键帧I 帧是重要的,一般要尽量保证I 帧传输的可靠性。因为1 个I 帧将影响并决定其后数个P 帧的解码,1 个I 帧的丢失将导致2 个I 帧之间的视频无法播放或视频质量急剧下降。而P 帧是非关键帧,丢失个别P 帧对视频质量影响不大,一般来说,P 帧只是尽量传输,并不进行差错重传。因此,必须根据数据包重要性的不同进行相应处理。对于I帧,应保证无差错地传输,而对于P 帧,尽力保证一定时间内尽量多的传送。同时,传统路由虽然传输速率不如机会路由, 但是传统路由网络结构清晰,并且无须成批发送,配合差错重传会使得某些特定数据传输更有保障。所以,对于实时视频传输,可以利用传统路由对I 帧的数据包进行差错重传,而对P 帧的数据包用机会路由进行尽力传输。这样,就同时利用了2 种路由的优点根据不同数据包的性质选择相应合适的路由协议进行传输,并且解决了I 帧丢失的问题。