在2.5 节已提及,视频编码器以NALU的形式输出已编码的原始视频数据。一般情况下,视频传输系统中采用RTP/RTCP协议对NALU进行封装,再交给底层网络协议进行处理。按国际标准化组织(International Organization for Standardization,ISO)定义的开放系统互联(Open System Interconect,OSI)参考模型,在数据传输过程中,无论是物理层、数据链路层或网络层、传输层的数据分组(数据包)的丢失,都会破坏应用层RTP协议的数据包中NALU的完整性,导致接收端因为视频数据中的运动矢量、编码模式、残差数据等的丢失而无法解码,或解码后的视频帧具有较大的失真。因此,为方便对丢包率进行分析,本章中的数据包丢失针对的是RTP数据包在传输过程中由于各种原因未能在有效期限内正确到达接收端。
本质上,对视频传输系统而言,当数据包的时延超过对应帧的解码期限,该数据包已无存在价值,可视为丢失。故本章将时延作为丢包的一种特殊情况来处理,不另做单独分析。一般来讲,网络中引起数据包丢失的原因有以下两种。
(1)由网络设备中的拥塞引起的数据包时延d 超过阈值Tthresh后,虽然经重传或纠错操作后能够正确到达接收端,但对用户而言,数据包失去了价值。
(2)数据包在网络设备缓冲区的队列中被丢弃,或由于网络信道的传输错误而引起数据包丢失。值得指出的是,阈值Tthresh的取值目前并无精确定义,不同网络应用的Tthresh也略有差异。在面向互联网的实时视频传输,如视频会议、视频电话等应用中,Tthresh一般为1.5s[2]。而在面向互联网的实时远程医疗、现场作业的机器人遥操作等的应用中,对视频传输的实时性要求更为严格,通常Tthresh≤600ms。其具体值取决于实际操作的需要,同时也与时延的测量方法有关。因此,定义视频传输中的丢包事件如下。
定义3.1 原始视频数据经视频编码器编码后生成的NALU采用RTP封装成数据包后,如某数据包的传输时延d 满足d≥Tthresh,则称此数据包发生丢包事件。(www.xing528.com)
上述定义并没有考虑到数据包乱序到达接收端的问题。事实上,接收端会设置相关的视频数据缓冲区,并根据数据包的序列号对乱序的数据包进行排序,故在定义中不考虑此问题。相应的缓冲区设置与管理技术细节可参考文献[3]。
定义3.2 如视频数据发送端在时间段U内发送了m个数据包,其中有n 个数据包发生了丢包事件,则称n/m为时间段U内的丢包率。
实际上,互联网的骨干线路的数据传输差错率极低,数据包的丢失主要是由网络拥塞引起。而对于大量移动终端所处的无线网络,丢包事件更可能是由于信道差错引起,此时TCP拥塞控制的效率会有所降低。但由于TCP的良好的适应能力,目前视频传输仍然以TCP为主要的传输层协议,其拥塞控制功能也依赖于TCP来实现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。