图像压缩编码(4)--H.26x系列视频压缩编码_2

目录

H.261 视频编码标准

H.261的编码与解码

1) 帧内/帧间编码

2)运动补偿

3)量化

4)环路滤波器

5)缓存器

压缩数据的分层

数据复用结构

H.264的编码与解码


H.261 视频编码标准

实际应用时,要求有强实时性、同步性以及最小的延迟时间。

编解码原理框图:

H.261的编码与解码

H.261 标准的编解码器原理框图如上图4-7所示。由于视频解码过程是其编码的逆过程,不同之处仅在于不需要做运动估计,运动矢量和其他所需信息直接从 VLC解码器得到,因此这里主要介绍 H.261 编码过程。

H.261 编码器的核心是采用运动补偿的帧间预测、二维 DCT、量化和可变长编码 VLC 的混合编码算法,其中,二维 DCT 以一个块(B)为基本单元。

1) 帧内/帧间编码

在H.261 编码过程中,不仅采用帧内编码模式,同时还采用帧间编码模式。

帧内和帧间模式的选择由编码控制电路自动控制。为了自动决定输入宏块MB 应采用帧内还是帧间编码,需要先找到判据,将前帧图像存储在存储器内,后一帧图像来到时,比较前后两帧图像的相关性,若相关性强则采用帧间编码,相关性弱,则采用帧内编码。这里的判据是以宏块为单位进行的。
第一帧要进行帧内编码,这一帧称为帧内帧(Intraframe),用I表示,之后可传送P帧、B帧。P帧是用它前面的I帧作为参考帧经过前向预测编码得到的,它也可以作为下一个P帧的参考帧。B 帧是用邻近的I帧(或P帧)、P帧为参考帧经双向预测所得。通常情况下,每12 帧或15帧图像中传送一帧I帧,每3帧或4帧图像中传送一帧P帧。每次场景更换时,第一帧为I 帧。

由于相邻帧具有很强的相关性,H.261允许每两个参考帧之间传送3个B帧。若参考帧为I帧、P帧,则:计算第一个B帧时,可用公式B=3xI/4 + 1xP/4;计算第二个B帧时,用公式 B=(I+P)/2;计算第三个B帧时,用公式 B=1×1/4+3xP/4。

输入图像信号为CIF 或QCIF 格式,8x8像素一块(B)。进行帧间编码时,当前图像块与预测图像块相减,得到预测差值,同时要产生预测帧。差值信号进行 DCT 变换,变换前每个B为8×8=64个8比特像素值,变换后得到64个 DCT 系数值,代表不同空间频率分量的幅度。在对 DCT 系数进行量化(Q)并取整后,采用 zigzag字形扫描将块内数据排列成一维数据串,进行游程长度编码,得到符号组序列,再对符号组进行可变长编码(VLC)。

量化后的 DCT 系数须经过反量化IQ 和IDCT 处理,形成重建帧并存入帧存储器,再经过运动补偿和滤波后产生预测帧.

2)运动补偿

运动补偿可使预测误差达到最小。

运动估计是以宏块为单位的,通过块匹配搜索得到运动矢量。运动矢量在用于构建预测帧的同时被送到 VLC编码输出,供解码用。
通常,运动估计只针对亮度信号进行,所得的运动矢量既用于亮度信号也用于色度信号,只是在用于色度信号时需要将运动矢量减半。


3)量化

在H.261 标准中,量化采用了32个线性量化器。其中,1个专门用于DC 系数,其量化步长为8;其余31个用于 AC 系数,量化步长分别为2,4,,62,具体选择哪一个由码率控制器决定。除DC 系数外,一个宏块(MB)中使用同一个量化器。
和JPEG标准一样,量化后的 DCT 系数也将经 Zigzag 扫描后送入可变长编码器 VLC进行二维游程长度编码。


4)环路滤波器

环路滤波器是一个二维空间低通滤波器,用于消除高频杂波,即消除边缘赝像。这是因为在帧间编码时,运动补偿过程仅仅是一个逼近过程,对高频分量匹配比较差,容易产生高频杂波。环路滤波器只有在检测到非零运动矢量时才切入,且以宏块为单位进行切入、切出。

5)缓存器

数据编码过程产生的码率不是恒定的,而是随着每帧图像的编码类型和图像内容的统计特性变化的。但传输网络中数据的码率必须恒定,因此在编码器的输出端必须用缓存器来平滑输出的数据率。
为避免发生缓存器溢出的情况,需要一个缓存器码率控制器来控制其输入码率。实际工作时,码率控制器根据缓存器的数据占有率控制量化器的量化步长,即当缓存器占有率高(即将被占满)时增大量化步长,缓存器占有率低(即将为空)时减小量化步长,从而调节输入到缓存器的码率。

压缩数据的分层

为了有秩序地传输每帧图像的数据,并有利于图像数据交换和设备兼容,把一帧图像数据分成4层:帧、块组(Group Of Block,GOB)、宏块 MB 和数据块B。

最小处理单元为8x8 像素块(B),然后按4:2:0的比例对亮度和色度块进行抽样,组成一个宏块(MB macro block);一定数量的 MB 构成块组GOB,片?:若干个 GOB构成一帧图像。

1)数据块 B
数据块是最小的块,由8x8个像素组成。亮度和色度均采用8x8的数据块作为基本编码单元。

2)宏块 MB
一个 MB 由6个数据块B组成,其中包括4个亮度块、2个覆盖同样面积但分辨率为其 1/4的色度块C_{b}块和C{_{r}}块,数据块的排列顺序如图4-8(a)所示。----4:2:0的比例-

3)块组 GOB

一个 GOB 包含33个宏块 MB,其中,横向11个,纵向3个。排列次序如图4-8(b)所示。

4)CIF 帧
1帧 CIF 图像由12个GOB 构成,排列次序如图4-8(c)所示。显然:

1GOB=12×33MB=396x[4(Y)+1(Cb)+1(Cr)] B =2376B

1GOB=2376×8x8=152064 像素
对于 QCIF 格式图像,由于它的像素数只有 CIF 格式的1/4,所以每帧 QCIF 图像只含有3个GOB,如图 4-8(d)所示。

(CIF:即视频会议中通用的影像传输格式。分辨率为352x288像素,图像传输速率可达每秒30帧,符合ITUH.261视频会议数据传输协议。)

数据复用结构

------------待补充

H.264的编码与解码

与H.261一样,H.264 编码器采用的仍是 变换+ 预测的混合编码法。如图所示,编码器有两条主要的数据流路径,一条是从左——> 右,完成编码;一条从右——> 左,完成重建。

 编码器以宏块为单位处理输入的帧或场F_{n},具体又分为帧内预测编码和帧间预测编码:
(1)在帧内编码模式中,其预测值 PRED(图中用P表示)由当前帧中的已编码宏块经解码、重构预测获得;
(2) 在帧间编码模式下,P由当前片中前面已编码的参考图像经运动补偿(MC)后得到,其中参考图像用F_{_n-1{}}表示。
将预测值 PRED 和当前块相减,即可得到一个残差块D_{n}, 经DCT 变换、量化后产生一组量化后的变换系数 X,再经熵编码,与解码所需的一些信息(如预测模式、量化参数、运动矢量等)一起组成一个压缩后的码流,进入网络提取层 NAL,供传输和存储用。
正如前面述,为了提供进一步预测用的参考图像,编码器必须有重建图像的功能。因此,先对残差图像进行反量化、DCT 逆变换以得到D_{n}{}',然后将D_{n}{}'与预测值 P 相加,得到uF{_{n}}{}'。为了去除编码解码环路中产生的噪声,提高参考帧的质量,进而提高压缩性能,这里设置了一个环路滤波器,滤波后的输出F{_{n}}',即为重建图像,可用作参考图像(如用于对F_{n+1}的编码)。


下图给出了H.264的解码过程。首先,解码器从网络提取层 NAL 接收压缩比特流。经过熵解码和重排序,得到量化后的系数X,然后进行反量化、DCT 逆变换生成残差宏块。
另一方面,解码器从码流中解析出头信息,利用这些头信息得到该残差宏块的预测宏块P。
考虑到该预测宏块 P与编码器的原始预测宏块P相同,这样,P与残差宏块相加即可得到重建块,再进行滤波即可得到最终的解码帧(重建帧)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

search7

请为我点赞!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值