可分级的视频编码基础(Scalable Video Coding)

来源:互联网 发布:景安网络app 编辑:程序博客网 时间:2024/05/16 07:15

可分级的视频编码(Scalable Video Coding)

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这样的编码方式是为静态图象编码而设计出来的,不过它其中用到的思想在视频分级编码中是很有启发性的.我们分解的目的是为了使编码得到的码流在相同的码率的情况下,达到最佳的信噪比,统计的结果表明,应用小波变换得到的可分级的码流是细间隔粒度编码中较为有效的方法.