IBP帧的介绍

        帧——就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。而在实际压缩时,会采取各种 算法减少数据的容量,其中 IPB 就是最常见的。
1、基本概念
I frame帧内编码帧又称 intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧, 经过适度地压缩,做为随机访问的参考点,可以当成图象。I 帧可以看成是一个图像经过压缩后的产物。

P frame:向预测编码帧 又称 predictive-frame,通过充分降低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;

B frame:双向预测内插编码帧 又称 bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧, 也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;
PTS:Presentation Time Stamp。PTS 主要用于度量解码后的视频帧什么时候被显示出来
DTS:Decode Time Stamp。DTS 主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码。
ps :在没有 B 帧存在的情况下 DTS 的顺序和 PTS 的顺序应该是一样的。
2、I、B、P 的特点
I 帧特点:
1.它是一个全帧压缩编码帧。它将全帧图像信息进行 JPEG 压缩编码及传输;
2.解码时仅用 I 帧的数据就可重构完整图像;
3.I 帧描述了图像背景和运动主体的详情;
4.I 帧不需要参考其他画面而生成;
5.I 帧是 P 帧和 B 帧的参考帧(其质量直接影响到同组中以后各帧的质量);
6.I 帧是帧组 GOP 的基础帧(第一帧),在一组中只有一个 I 帧;
7.I 帧不需要考虑运动矢量;

8.I 帧所占数据的信息量比较大。


P 帧:前向预测编码帧。
P 帧的预测与重构:P 帧是以 I 帧为参考帧,在 I 帧中找出 P 帧“某点”的预测值和运动矢量,
取预测差值和运动矢量一起传送。在接收端根据运动矢量从 I 帧中找出 P 帧“某点”的预测
值并与差值相加以得到 P 帧“某点”样值,从而可得到完整的 P 帧。
P 帧特点:
1.P 帧是 I 帧后面相隔 1~2 帧的编码帧;
2.P 帧采用运动补偿的方法传送它与前面的 I 或 P 帧的差值及运动矢量(预测误差);
3.解码时必须将 I 帧中的预测值与预测误差求和后才能重构完整的 P 帧图像;
4.P 帧属于前向预测的帧间编码。它只参考前面最靠近它的 I 帧或 P 帧;
5.P 帧可以是其后面 P 帧的参考帧,也可以是其前后的 B 帧的参考帧;
6.由于 P 帧是参考帧,它可能造成解码错误的扩散;

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


B 帧:双向预测内插编码帧。
B 帧的预测与重构: B 帧以前面的 I 或 P 帧和后面的 P 帧为参考帧,“找出”B 帧“某点”的预测值和两个运动矢
量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测
值并与差值求和,得到 B 帧“某点”样值,从而可得到完整的 B 帧。
B 帧特点:
1.B 帧是由前面的 I 或 P 帧和后面的 P 帧来进行预测的;
2.B 帧传送的是它与前面的 I 或 P 帧和后面的 P 帧之间的预测误差及运动矢量;
3.B 帧是双向预测编码帧;
4.B 帧压缩比最高,因为它只反映两参考帧间运动主体的变化情况,预测比较准确;

5.B 帧不是参考帧,不会造成解码错误的扩散。


:I、B、P 各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧,至于图像中的哪一帧是 I 帧,是随机的,一但确定了 I 帧,以后的各帧就严格按规定顺序排列,从上面的解释看,我们知道 I 和 P 的解码算法比较简单,资源占用也比较少,I 只要自己完成就行了,P 呢,也只需要解码器把前一个画面缓存一下,遇到 P 时就使用之前缓存的画面就好了,如果视频流只有 I 和 P,解码器可以不管后面的数据,边读边解码,线性前进,大家很舒服。但网络上的电影很多都采用了 B 帧,因为 B 帧记录的是前后帧的差别,比 P 帧能节约更多的空间,但这样一来,文件小了,解码器就麻烦了,因为在解码时,不仅要用之前缓存的画面,还要知道下一个 I 或者 P 的画面(也就是说要预读预解码),而且,B 帧不能简单地丢掉,因为 B 帧其实也包含了画面信息,如果简单丢掉,并用之前的画面简单重复,就会造成画面卡(其实就是丢帧了),并且由于网络上的电影为了节约空间,往往使用相当多的 B 帧,B 帧用的多,对不支持 B 帧的播放器就造成更大的困扰,画面也就越卡。

一般平均来说,I 的压缩率是 7(跟 JPG 差不多),P 是 20,B 可以达到 50,可见使用 B 帧能节省大量空间,节省出来的空间可以用来保存多一些 I 帧,这样在相同码率下,可以提供更好的画质。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值