1.3.3 传输控制和差错控制
1.网络传输的基本参数
网络视频业务的质量直接受网络性能的影响,从而波及用户的使用感受。因此,需要了解网络的规模、性能和技术参数,根据这些数据配置适当的网络参数和视频业务,从而避免网络资源的浪费和视频质量达不到要求。需要考虑的主要网络基本参数如下。
(1)网络带宽
视频信号的数据量大,要在网络中传送,必须有足够的网络带宽。就像载重卡车体积庞大,必须有足够宽度的马路方能通行一样。否则视频信号无法顺畅通过网络,即使是低码率的视频流,一般也需要384 kbit/s左右的带宽;至于高清晰电视(HDTV),则需要20 Mbit/s左右的带宽。和网络上其他媒体相比,视频数据对网络是一种沉重的负担。
(2)网络时延
网络时延表示视频在网络中传输时,从发送端到接收端所经历的一段时间。当在网络中传输实时视频信号时,网络时延应控制在一定值以下并需保持相对稳定。这是因为实时视频信号需要连续不断地送往终端显示器上显示,如每秒需25帧的视频数据。如果数据丢失或不及时显示,则会引起观察者视觉的不舒适感。一句话,视频实时信号必须连续不断地被传送、显示,端到端的时延(包括传送时延、节点缓存时延等)必须小于某一阈值。IP网是一种尽力而为的共享网络,无法保证这样的时延要求,特别是在遇到网络发生拥塞的情况下,问题更为严重。
(3)网络丢包率
丢包率指在传送数据包的总量中丢包数所占的百分比。视频流传输要求丢包率低于某一阈值,否则接收端观众看起来会很不舒服。由于IP网是共享的,当业务流量大时,会发生拥塞,这时丢包是不可避免的。
(4)网络异构
在信号所经历的多个传输网络中,往往包含异构的子网络,它们是不同类型的网络,具有不同的处理能力、不同的网络带宽、不同的存储容量及不同的拥塞控制方法等。这些不同的因素对视频信号传输的影响都必须考虑。
2.码率控制
一般来讲,IP网络中物理信道是已经存在的,而且要为各类数据和各类用户服务,因此,视频编解码器的输出必须适合信道特性,否则,达不到高效传输的目标。码率控制的目的是协调编解码器与信道之间的适配关系,是视频传输中的关键技术之一。因为码率控制策略和方法需要由具体应用场合决定,所以各类视频标准都没有规定具体码率控制方法,至多提供一些参考模型。
现行的应用层视频码率控制方法一般是分层次进行的,如普遍使用的方法是分成两个层次,即图像层码率控制和宏块层码率控制。图像层码率控制的主要任务为:根据系统对编码器输出码率的期望、系统传输延迟的限制、传送缓冲区的充盈程度等,在一帧图像编码前,确定该帧图像的输出期望比特数。宏块层码率控制的主要任务为:根据图像层码率控制确定的该帧图像的输出期望比特数,给图像各部分宏块分配期望比特数并确定合适的量化步长。
在具体的码率控制过程中,大多是依据编码图像的统计特性建立控制模型,决定控制的幅度。例如,宏块层码率控制的主要依据是率失真(Rate-Distortion)模型,即拟定编码图像失真和码率之间关系的模型,按照此模型预测当前编码宏块的比特数。
3.拥塞控制
IP网络中产生网络拥塞主要可能有几方面的原因:①信道带宽小于信号带宽,在网络的低速链路处会形成带宽瓶颈,形成信号拥塞;②传输节点的缓存容量不足,当多个输入数据流需要公用同一个输出端口时,就会在这个端口进行排队,数据包就会遭丢弃;③终端或节点的处理器处理能力不足等也会造成网络拥塞现象。总之,如果用户提供给网络的数据量远大于网络资源容量和处理能力,网络就会发生拥塞。网络发生拥塞时的表现为数据包时延增加、丢包率增大、上层应用系统性能下降等,比一般的码率控制失调对图像质量的影响要大得多。
针对网络拥塞现象的拥塞控制也可看成是码率控制的极端情况,但一般的码率控制措施此时已很难起作用,必须采用特殊的针对拥塞问题的控制方法。在网络视频传输中,拥塞控制可以在链路层进行,也可以在应用层的终端设备中进行。
4.差错控制
视频压缩编码技术在消除视频数据冗余的同时,也降低了压缩码流的抗干扰能力。因此,在视频传输过程中,为防止信道误码或丢包对解码重建图像产生不良影响,可采用差错控制(Error Control)技术尽力消除或减轻传输差错的影响。差错控制的方法很多,目前普遍使用的主要是收发端配合的差错控制和基于解码端的差错控制技术。
(1)收发端配合的差错控制
为了增强码流的顽健性,收发端配合的差错控制采用信源或信道编码的方式,增强码流本身在传输过程的抗干扰能力。一般需要在编码过程中引入冗余信息或采用一些特殊措施对编码方案进行更改,需要接收端配合进行解码、检测或纠正传输中引入的差错。这一类技术主要包括如下几种处理方法。
①前向纠错编码
前向纠错编码(FEC,Forward Error Correction)是当前较常见的编码方式,主要由编码端对压缩码流进行纠错编码,如奇偶校验码、汉明码、BCH码、RS码等,所增加的纠错码字一般不到视频码字总量的10%。这样,在经纠错编码后的压缩视频信号送达接收端之后,解码器依据纠错编码规则,实现对传输误码的自动检测和校正。这种工作方式无需设置专用反馈信道,且效率也相对较高,实时性好。
②反向变长编码
通常情况下,如果视频码流数据在传输中出现差错,解码器会丢弃所有的比特,直到获得新的重同步码字。采用反向变长编码(RVLC,Reversible Variable Length Coding)措施,增加码流中的同步码密度,改变现有的正向VLC方式,使其反向解码也有意义。解码器在检测到差错时,可以迅速找到下一个重同步码,并由此反向解码,直到出现误码处为止。这样可以防止部分正确接收的比特被丢弃,使差错影响的区域变小。
③不等差错保护
在经过压缩编码所产生的视频码流中,并非所有的比特都同等重要。在基于块的混合编码器中,视频帧各个层的头信息通常比图像数据信息更加重要。一旦码流中的重要信息出现差错,可能会导致大片图像数据解码出错,甚至整段压缩视频无法正常解码。因此,可对这些重要的比特信息进行重点保护,形成不等差错保护(UEP,Unequal Error Protection)机制。
④灵活的宏块排序
在灵活的宏块排序(FMO,Flexible Macro block Ordering)中,一帧内的条(Slice)可以不按光栅扫描的顺序排列,每条中的宏块也不一定按照光栅扫描的顺序排列,而是按照特定的宏块映射要求,把每个宏块分配到不按扫描顺序排列的条中。在FMO中,图像的帧内预测或运动矢量预测,仅允许用同一条组(Slice Group)内的相邻宏块。这样即使有差错,也不会扩散到条组之外,可有效避免因预测带来的大面积错误扩散。
⑤可分级视频编码和多描述编码
可分级视频编码(SVC,Scalable Video Coding)技术将输入视频信号编码成一个基本层和多个增强层码流。其中,基本层仅提供基本质量的视频图像。接收端在接收基本层的基础上,如果信道带宽允许,随着接收的增强层越来越多,解码端视频重建的质量也逐步提高。因此,SVC可在不同网络传输环境中对同一视频信号提供不同的质量等级压缩码流。
多描述编码(MDC,Multiple Description Coding)技术将一个视频信号源编码成多个子码流(也称为描述),多个描述之间是相关的。每个描述具有同等的重要性,可以单独解码,分别在独立的信道上进行传输。在解码端,接收任何一个描述都可以解码重建出一定质量的视频,并且随着接收的描述数的增加,解码重建出的视频图像质量也随之提高。
除此以外,还有不少其他的差错控制技术,如防止差错扩散的差错恢复预测(Error Resilient Prediction)技术,将视频帧中的宏块组成若干个独立的编码单元,用以限制预测区域,使编码差错的传播不超过这一范围;还有周期性地进行的帧内(Intra)编码,可以防止预测差错的帧间扩散。
(2)基于解码端的差错控制
这类方法根据视频图像在时间或空间上的相关性,利用人眼的视觉特性,仅在解码端进行差错控制,实际上是一种差错掩盖(Error Concealment)方法。即对解码出错的图像进行修复,解码器用主观可以接受的、近似原始质量的视频数据掩盖受损的数据,而不需要从编码端再获得额外信息,不需要更改编码器的码流结构。差错掩盖本质上是一种解码视频的后处理方法,不像FEC那样消耗额外的带宽,也不像ARQ那样带来时延,因此不会增加通信的传输负担,其应用也越来越普遍。为了在解码端进行差错掩盖,解码器首先需要根据接收的码流进行差错检测、差错定位和重同步等过程确定丢失块的位置,然后进行适当的差错掩盖处理。