随着因特网业务的巨大增长,在速率起伏很大的IP(Internet Protocol)网络及具有不同传输特性的异构网络上进行视频传输的要求和应用越来越多。在这种背景下,视频分级编码的重要性日益突出,其应用非常广泛,且具有很高的理论研究及实际应用价值,因此受到人们的极大关注。
视频编码的可分级性(scalability)是指码率的可调整性,即视频数据只压缩一次,却能以多个帧率、空间分辨率或视频质量进行解码,从而可支持多种类型用户的各种不同应用要求。
MPEG-2视频编码标准对MPEG-1视频的重大改进和扩展之一是增加了可分级性(Scalability)编码与传输〔4〕。其基本思想是把那些对解码图像重要的信息(比特)放在有保障的信道中传输。这些重要信息的集合称为基本层。而把次要信息(比特)放在没有保障的信道中传输,这些数据信息的集合称为增强层。在接收端,增强层信息部分甚至全部丢失,解码器仍能从基本层的信息中恢复出可接受的图像质量。
可分级编码和传输的典型应用包括ATM分组视频通信、视频数据库的浏览、不同分辨率的数字电视的兼容接收或播放和无线视频通信等等。
MPEG-2提出了几种不同类型的可分级性:数据分割(Data Partitioning,又称为频率域可分级性)、信噪比(SNR)可分级性、空间(Spatial)可分级性和时轴(Temporal)可分级性。同时也支持各类可分级性的组合,称为混合可分级性。
MPEG是基于DCT/MC的混合编码。数据分割可分级性可直接在DCT频率域进行,具有实现的简易性。DCT的低频系数代表了图像的背景、轮廓,是保证图像传输业务质量(QoS)的重要信息。而DCT高频系数是反映图像的边缘、细节的较次要的信息。通过优先级分割可实现不同质量要求的可分级传输。而且,MPEG-2标准中规定了数据分割可分级性可用于ATM视频通信。因此,在诸多类可分级方法中,频率域上的数据分割最为人们关注,具有广泛的应用前景。
PFGS则是为改善FGS编码效率而提出的视频编码算法,其基本思想是在增强层图像编码时使用前一帧重建的某个增强层图像为参考进行运动补偿,以使运动补偿更加有效,从而提高编码效率。
1. 出现的原因
主要解决网络传输视频信息的时候,带宽限制了数据的传输,而我们通过某种方法使得视频流拥有可分级性,当网络带宽较小的时候,只保持基本的视频信息被传输,并根据实际的网络环境决定是否传增强的视频信息以使得图像质量得到加强,以此得到自适应性.这样的方式可以保持拥有网络连接的大部分终端都可以以适当的码流来使用多媒体信息,而不考虑原码流的需求.
当然我们说到在不同的码率下使用多媒体信息,也就是说在不同的网络状况下,我们得到的视频质量是不同的,而且编码器和网络QoS分析部分的复杂度都需要加强,所以这样做的代价也是不小的.
2.可分级的编码器
在可分级编码中,编码器对原始视频有不同的压缩方法.但他们分成两类,一种是粗间隔度,一种是细间隔度.在粗间隔度的编码器中,原始码流被压制进两层或三层,而在细间隔度中,码流可以在任意点被进行截断,保留的比特率越高,那么重建得到的质量就越好.我们称这样的比特流叫嵌入式的比特流.它可以进行精确的码率控制.
3. 可分级性的基本模式
3.1 质量的可分级
一般是通过越来越小的量化步长来进行量化而进行的.比如对于一个原始序列按如下的方式进行压缩:
原始码流--->DCT--->Quant1---->VLC----->Base Layer
| |
- <---IQ<--|
|
|---->Quant2---->VLC----->Enhancement Layer
要注意的是Quant1和Quant2使用的是不同的量化步长,Quant2的量化步长要小于Quant1的量化步长,以保持增强层能使图像的质量得到大大的改善.
3.2 空间的可分级
通过在同一个视频在不同的空间分辨率下或尺寸下进行表示,压缩的方式如下:
原始码流---->Down Sample----->DCT----->Quant----->VLC----->Base Layer
| |
| Up Sample <----IDCT<----IQuant<--|
| |
|---> - -------->DCT------>Quant----->VLC----->Enhancement Layer
同样增强层使用更小的量化步长,以达到比基本层更佳的图像质量.
3.3 时间的可分级
在时间上用不同的分辨率进行表示,这样在不同的层上就有不同的帧率.利用较低层的图像为较高层的图象进行预测,编码流程大致跟空间可分级的流程相同.差别在于Down Sample和Up Sample在这里是在时间上的下采样和上采样.
3.4 频率的可分级
通过在不同的层上包含不同的频率分量来实现分级.基本层包含更多的低频分量,而其他的层包含更多的高频分量.这样在图像变换之后就可以把基本层和增强层区分开来进行处理,过程比较简单,不再阐述.
3.5 以上几种方案的组合形成的可分级编码
上面的几种方法我们都是粗粒度的可分级方法,如果我们把其中的两种或三种方法结合起来的话,我们就会得到更细粒度的一个可分级编码的机制.编码的流程是上面我们讲到的流程方法的结合.
3.6 细间隔粒度的可分级编码(FGS:Fine-franularity scalability)
这种方法下,码率和质量以很小的步长方式进行增长,以使视频细节信息得到逐渐显示的效果.这也叫嵌入式编码.
实现的话,可以按以下的方法:用较大的QP系数对一个原始视频进行编码,然后对于得到的图象的反量化结果跟原始视频码流的DCT变换结果进行残差计算,对残差进行非常小的QP值进行重量化,对量化结果进行位平面编码,然后通过传输残差的位平面编码信息实现可分级的编码.其他类似的方法也可以,只要起到一样的效果就可以.
4. 基于小波变换的编码
小波变换提供了一个信号弹的多分辨率/多频率表示,通过把一个信号进行分析并得到在每一个子带中信号所占的分量值来标识一个信号,虽然小波变换在视频编码上现在还无法被彻底证明优于DCT或是其他的变换,但是在Scalable Coding中,小波变换是一种理想的变换方式.因为他提供了更细的粒度,使我们对于一个图象的分级做的更加充分.
4.1 EZW编码
对于小波变换结果的系数来说,我们将他们每个子带中的系数值与其他子带中的系数做出对应关系,形成一棵完整的四叉树的表示方法.然后我们通过不断地重新设定阈值来对编码得到的码流进行位平面的分解,在传输的过程中,就可以根据这些位平面的信息实现分级.
4.2 EZW编码的改进
SPIHT编码,ZTE编码,MZTE编码,以及JPEG2000中用到的EBCOT编码,都是解决分级问题的,当然像EBCOT这样的编码方式是为静态图象编码而设计出来的,不过它其中用到的思想在视频分级编码中是很有启发性的.我们分解的目的是为了使编码得到的码流在相同的码率的情况下,达到最佳的信噪比,统计的结果表明,应用小波变换得到的可分级的码流是细间隔粒度编码中较为有效的方法.