新闻中心

EEPW首页>消费电子>设计应用> 便携式移动电视接收系统浅析

便携式移动电视接收系统浅析

作者: 时间:2012-06-08 来源:网络 收藏

⑥为提高抗数据丢失的能力,允许编码器发送图像区的冗余表示,当图像区的主表示丢失时仍可以正确解码。

⑦可以根据每个像条语法元素的范畴,将像条语法划分为3部分,分开传送。

下面就的几个重要特性进行详细介绍:

1、帧内预测

对I帧的编码是利用空间相关性而非时间相关性而实现的。以前的标准只利用了一个宏块内部的相关性,而忽视了宏块之间的相关性,所以编码后的数据量较大。为了进一步利用空间相关性,引入了帧内预测以提高压缩效率。简单地说,帧内预测编码就是用周围邻近的象素值来预测当前的象素值,然后对预测误差进行编码。这种预测是基于块的,对于亮度分量,块的大小可以在16×16和4×4之间选择,16×16块有4种预测模式16×16 、 16×8 、 8×16 和 8×8,4×4块有9种

预测模式;对于色度分量,预测是对整个8×8块进行的,有4种预测模式。除了DC预测外,其他每种预测模式对应不同方向上的预测。

1)预测时所用块的大小可变

假设基于块的运动模型块内所有象素都做了相同的平移,在运动比较剧烈时或者在运动物体的边缘处,这一假设会与实际出入较大,导致较大的预测误差,这时减小块的大小可以使假设在小的块中依然成立。同时,小的块所造成的块效应相对也小,从而提高预测的效果。

一 共采用了7种方式对一个宏块进行分割,每种方式下块的大小和形状都不相同,这就使编码器可以根据图像的内容选择最好的预测模式以提高预测效果。与仅使用16×16块进行预测相比,使用不同大小和形状的块可以使码率降低15%以上。

(2)更精细的预测精度

在中,亮度分量的运动矢量使用1/4象素精度。色度分量的运动矢量由亮度运动矢量导出,由于色度分量的分辨率是亮度分量的一半(对4∶2∶0),所以其运动矢量精度将为1/8。既一个单位的色度分量的运动矢量所代表的位移仅为色度分量取样点间距离的1/8。如此精细的预测精度,比整数精度可使码率降低20%以上。

(3)多参考帧

支持多参考帧预测,即可以有多于一个(最多5个)在当前帧之前的解码帧作为参考帧,产生对当前帧的预测。这适用于视频序列中含有周期性运动的情况。这种技术,可以改善运动估计的性能,提高解码器的错误恢复能力;但它也增加了缓存的容量,加大了编解码器的复杂性。与只使用一个参考帧相比,使用5个参考帧可以使码率降低5~10%。

(4)去块效应滤波器

它的作用是消除经反量化和反变换后重建图像中由于预测误差产生的块效应,即消除块边缘处的象素值跳变,从而改善图像的主观质量,并减小预测误差。中的去块效应滤波器还可以根据图像内容做出判断,只对由于块效应产生的象素值跳变进行平滑,而对图像中物体边缘处的象素值不连续给予保留,以免造成边缘模糊。与以往的去块效应滤波器同的是,经过滤波后的图像将根据需要放在缓存中用于帧间预测,而不是仅仅在输出重建图像时用来改善主观质量。对于帧内预测,使用的是未经过滤波的重建图像。

3、整数变换

对帧内或帧间预测的残差进行DCT编码。为了避免舍入误差造成的编码器和解码器之间不匹配的问题,对DCT的定义做了修改,使得变换仅用整数加减法和移位操作即可实现,这样在不考虑量化影响的情况下,解码端的输出可以准确地恢复编码端的输入。当然,这样做的代价是压缩性能略微下降。此外,该变换是针对4×4块进行的,这也有助于减小块效应。

为了进一步利用图像的空间相关性,在对色度分量的预测残差和16×16帧内预测的预测残差进行上述整数DCT之后,标准还将每个4×4变换系数块中的DC系数组成2×2或4×4大小的块,进一步做哈达玛(Hadamard)变换。

4、熵编码

对于Slice层以上的数据,采用Exp-Golomb码,这是一种没有自适应能力的VLC。而对于Slice层(含)以下的数据,如果是残差,有两种熵编码方式:基于上下文的自适应变长码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC);如果不是残差,采用Exp-Golomb码或CABAC编码,视编码器的设置而定。

(1)CAVLC

VLC的基本思想就是对出现频率高的符号使用较短的码字,而对出现频率低的符号采用较长的码字。这样可以使得平均码长最小。

在CAVLC中,采用若干VLC码表,不同的码表对应不同的概率模型。编码器能够根据上下文,如周围块的非零系数或系数的绝对值大小,在这些码表中自动地选择,尽可能地与当前数据的概率模型匹配,从而实现上下文自适应的功能。

(2)CABAC

算术编码是一种高效的熵编码方案,其每个符号所对应的码长被认为是分数。由于对每一个符号的编码都与以前编码的结果有关, 所以它考虑的是信源符号序列整体的概率特性,而不是单个符号的概率特性,从而能够更大程度地逼近信源的极限熵,降低码率。

中的CABAC实现了绕开算术编码中无限精度小数的表示问题和对信源符号概率进行估计的问题。在CABAC中,每编码一个二进制符号,编码器就会自动调整对信源概率模型(用一个“状态”来表示)的估计,随后的二进制符号就在这个新的概率模型基础上进行编码。这样的编码器不需要信源统计特性的先验知识,而是在编码过程中自适应地估计。这使得CABAC有更大的灵活性,可以获得更好的编码性能—码率降低大约10%。

5、SP Slice

SP Slice的主要目的是用于不同码流的切换,也可用于码流的随机访问、快进/快退和错误恢复。这里指的不同码流,是指在不同比特率限制下对同一信源进行编码所产生的码流。设切换前传输码流中最后一帧为Al,切换后的目标码流第一帧为B2(假设是P帧),由于B2的参考帧不存在,直接切换显然会导致严重失真,而且这种失真会向后传递。简单的解决方法就是传输帧内编码的B2,但是一般I帧的数据量很大,这种方法会造成传输码率陡然增大。根据前面的假设,由于是对同一信源进行编码,尽管比特率不同,但切换前后的两帧必然有相当大的相关性,所以编码器可以将Al作为B2的参考帧,对B2进行帧间预测,预测误差就是SP Slice,然后通过传递SP Slice完成码流的切换。与常规P帧不同的是,生成SP Slice所进行的预测是在Al和B2的变换域中进行的。SP Slice要求切换后B2的图像和直接传送目标码流时一样。当然,如果切换的目标是毫不相关的另一码流,SP Slice就不适用了。



评论


相关推荐

技术专区

关闭