我们已经提到,MPEG是基于DCT、运动补偿和Huffman编码算法的,由此,MPEG在压缩中使用了帧内压缩和帧间压缩两种方式。为了在编码中实现最大的压缩比,MPEG使用三种类型的图像,即I帧,P帧和B帧。
I帧(Intra-Frame)是帧内压缩,不使用运动补偿,提供中等的压缩比。由于I帧不依赖于其他帧,所以是随机存取的入点,同时是解码中的基准帧。
P帧(Predicated-Frame)根据前面的I帧或P帧进行预测,使用运动补偿算法进行压缩,因而压缩比要比I帧高,数据量平均达到I帧的 1/3左右。P帧是对前后的B帧和后继的P帧进行解码的基准帧。P帧本身是有误差的,如果P帧的前一个基准帧也是P帧,就会造成误差传播。
B帧(Bidirectinal-Frame)是基于内插重建的帧,它基于前后的两个I、P帧或P、P帧,它使用双向预测,数据量平均可以达到I帧的 1/9左右。B帧本身不作为基准,因此可以在提供更高的压缩比的情况下不传播误差。 需要指出的是,尽管我们使用帧(Frame)这个词,但是MPEG2本身没有规定进行数字图像压缩时必须使用帧作为单位,对于隔行的视频图像,可以使用场 (Field)作为单位。
一个GOP由一串IBP帧组成,起始为I帧。GOP的长度是一个I帧到下一个I 帧的间隔 ,一般用N表示,图1中的N=9。这个长度是可变的,长GOP可以提供高的压缩比,但是会造成随机存取的延迟(必须等到下一个I帧)和误差的积累(P帧的误差传播)。 一般是一秒内有两个I帧,用来作为随机存取的入口。
图1 GOP中的图像序列
在MPEG2中也没有规定GOP的结构,帧重复方式可以是IP,IB,IBP,IBBP,甚至全部是I帧。基准帧的重复频率用M表示,图1中的M=3。不同的帧重复频率提供不同的输出码率,同时影响存取延迟。
外一篇:
MPEG 视频压缩编码后包括三种元素:
I 帧( I-frames ):帧内压缩编码形成的图像
P帧(P-frames):前向预测帧,以一个P 帧或 I 帧为预测帧进行编码
B帧(B-frames):从相邻(前后均可)的最近的I 帧或 P 帧作双向预测进行编码
293a3bef261320667d15077a0860c44b.jpg
在MPEG编 码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换 DCT( Discrete Cosine Transform )的压缩技术,这种算法与JPEG压缩算法类似。JPEG压缩是一种针对静止的连续色调的图像压缩方法,它属于帖内压缩。采用I帧压缩可达到1/6的压缩 比而无明显的压缩痕迹。
MPEG标准采用YCbCr(YUV)4::2:2的采样格式,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值),每2个点保存一个 Cr(8bit) 和Cb(8bit) 值, 图像在肉眼中的感觉不会起太大的变化。其编码的基本方法是在单位时间内,首先采集并压缩第一帧的图像为I帧。然后对于其后的各帧,在对单帧图像进行有效压 缩的基础上,只存储其相对于前后帧发生变化的部分。帧间压缩的过程中也常间隔采用帧内压缩法,由于帧内(关键帧)的压缩不基于前一帧,一般每隔15帧设一 关键帧,这样可以减少相关前一帧压缩的误差积累。MPEG编码器首先要决定压缩当前帧为I帧或P帧或B帧,然后采用相应的算法对其进行压缩。一个视频序列 经MPEG全编码压缩后可能的格式为:IBBPBBPBBPBBPBBIBBPBBP BBPBBPBBI......
下面说明I帧、P帧以及B帧的特点:
1.I帧:帧内编码帧
I帧特点:
①它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码 及传输。
②解码时仅用I帧的数据就可重构完整图像。
③I帧描述了图像背景和运动主体的详情。
④I帧不需要参考其他画面而生成。
⑤I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量)。
⑥I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧。
⑦I帧不需要考虑运动矢量。
⑧I帧所占数据的信息量比较大。
2. P帧:前向预测编码帧。
(1)P帧的预测与重构: P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值(对其进行类似JPEG压缩编码)和运动矢量(Huffman编码) 一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。
(2)P帧特点
①P帧是I帧后面相隔1~2帧的编码帧。
②P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差)。
③解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像。
④P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧。
⑤P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。
⑥由于P帧是参考帧,它可能造成解码错误的扩散。
⑦由于是差值传送,P帧的压缩比较高。
3.B帧:双向预测内插编码帧。
(1)B帧的预测与重构
B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出 )”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧(不知如何算出 )。
2)B帧特点
①B帧是由前面的I或P帧和后面的P帧来进行预测的。
②B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量。
③B帧是双向预测编码帧。
④B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确。
⑤B帧不是参考帧,不会造成解码错误的扩散。
注: I、B、P各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧,至于图像中的哪一帧是I帧,是随机的,一但确定了I帧,以后的各帧就严格按规定顺序排列。