I图像(帧)是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像; P图像(帧)是通过充分降低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧; B图像(帧)是既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;一般地,I帧压缩效率最低,P帧较高,B帧最高。

I帧(I frame)——帧内编码帧。

又称为内部画面 (intra picture),I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT(Discrete Cosine Transform)的压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。

帧是组成视频图像的基本单位。关键帧也叫I帧,它是帧间压缩编码里的重要帧;它是一个全帧压缩的编码帧;解码时仅用I帧的数据就可重构完整图像;I帧不需要参考其他画面而生成。视频文件是由多个连续的图片组成。

视频会议系统中,终端发送给MCU(或者MCU发送给终端)的图像,并不是每次都把完整的一幅幅图片发送到远端,而只是发送后一幅画面在前一幅画面基础上发生变化的部分。如果在网络状况不好的情况下,终端的接收远端或者发送给远程的画面就会有丢包而出现图像花屏、图像卡顿的现象,在这种情况下如果没有I帧机制来让远端重新发一幅新的完整的图像到本地(或者本地重新发一幅新的完整的图像给远端),终端的输出图像的花屏、卡顿现象会越来越严重,从而造成会议无法正常进行。

在视频画面播放过程中,若I帧丢失了,则后面的P帧也就随着解不出来,就会出现视频画面黑屏的现象;若P帧丢失了,则视频画面会出现花屏、马赛克等现象。

视频会议系统中I帧只会在会议限定的带宽内发生,不会超越会议带宽而生效。I帧机制不仅存在于MCU中,电视墙服务器录播服务器中也存在。就是为了解决在网络状况不好的情况下,出现的丢包而造成的如图像花屏、卡顿,而影响会议会正常进行。

I帧特点:
1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;
2.解码时仅用I帧的数据就可重构完整图像;
3.I帧描述了图像背景和运动主体的详情;
4.I帧不需要参考其他画面而生成;
5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
6.I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;
7.I帧不需要考虑运动矢量;
8.I帧所占数据的信息量比较大。


B 帧——双向预测内插编码帧。

在 MPEG-4 中有四种参考模式,如果是同时参考前后的画面压缩,则记录的是 和 (前画面 pixel 值后+画面 pixel 值)/2 的差值,也就是和“前后画面的平均”的差值。所以记录的差值个数和P帧一样,只有一个,没有增加。

而因为B帧位于前后画面的中间,以“前后画面的平均”,也就是“前后画面的中间值”来作为预测数值(预测B帧的 pixel 数值为多少?如果有误差,再记录差值),这样这个预测数值会比单独使用前一个画面来预测,更接近真正的B帧的数值,可想而知,如此所需要记录的差值就会很小甚至可以根本不用记录,所以便可以省下很多的 bits,提高压缩率

例如 亮度变化 -> I B P 7 8 9

如果B只参考前一个画面压缩,则需记录差值 1。如果以 (I P)/2 压缩,则差值为 0,不需记录差值。(虽然要记录两个矢量,不过矢量也可以再做进一步预测压缩,总的来说,还是会比单独参考前一个画面压缩来得小很多)如果画面不是这样变化怎么办?通常来讲画面都会是这样变化,如果不是这样变化我们就不使用B帧就算变化不是如此规则,换个方式想,B帧可以参考的画面还是比P帧多,再怎么找,也还是B帧可以找到误差更小的方块来使用的机率大(因为可以选择、参考的对象较多),所以B帧还是比P帧的压缩率来得高。(而且高很多,差距非常大)

除了压缩率以外,B帧对画质的影响.....是有的,因为B帧这种参考前后画面的特性,等于有内插(interpolation)的效果,所以可以减少噪讯。

MPEG-4 中的B帧,也是非常具有威力的,除了以前的三种参考模式,还有 Direct Mode,连矢量的纪录都省了。虽然MPEG-4 之中有 4MV 的功能,可以记录四个矢量,不过编码器在压缩的时候会判断,到底是使用 4MV 压出来的结果小,还是使用传统的方法压出来的结果小?

如果使用传统的方法压出来的结果小,便使用传统的方法记录,如果使用 4MV 压出来的结果小,才使用 4MV 来记录。

(ps. 4MV 不会用在 backward 预测)

您可以观察 VirtualDub 压缩时画面上显示的蓝线,您会发现蓝线和蓝线之间通常会有很短的蓝线插在中间,造成空隙,而且差距很大,这个就是夹在 P 之间的 B 在发挥压缩威力如果是用DivX 5 更明显,因为DivX 5 只能够使用 IBPBPBPB... 这种一个B接一个P的形式,所以画面上的蓝线就是“一长一短、一长一短”这样排列。

B帧特点
①B帧是由前面的I或P帧和后面的P帧来进行预测的;
②B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
③B帧是双向预测编码帧;
④B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;
⑤B帧不是参考帧,不会造成解码错误的扩散。


P帧——前向预测编码帧。

由在它前面的P帧或者I帧预测而来,它比较与它前面的P帧或者I帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。

P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。

P帧特点:

①P帧是I帧后面相隔1~2帧的编码帧。

②P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差)。

③解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像。

④P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧。

⑤P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。

⑥由于P帧是参考帧,它可能造成解码错误的扩散。

⑦由于是差值传送,P帧的压缩比较高。


关键帧和过渡帧的联系与区别

1、两个关键帧的中间可以没有过渡帧(如逐帧动画),但过渡帧前后肯定有关键帧,因为过渡帧附属于关键帧;

2、关键帧可以修改该帧的内容,但过渡帧无法修改该帧内容。

3、关键帧中可以包含形状、剪辑、组等多种类型的元素或诸多元素,但过渡帧中对象只能是剪辑(影片剪辑、图形剪辑、按钮)或独立形状。



以上概念来自百度


评论
© 墨者/Powered by LOFTER