【整理】视频中IBP帧的介绍和判定方法

mpeg4视频中,I帧、p帧、B帧的判定

mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:

  00: I Frame
  01: P Frame
  10: B Frame 

为了更好地说明,我们举几个例子,以下是16进制显示的视频编码:

  00 00 01 b6 10 34 78 97 09 87 06 57 87 ……                             I帧

  00 00 01 b6 50 78 34 20 cc 66 b3 89 ……                                  P帧

  00 00 01 b6 96 88 99 06 54 34 78 90 98 ……                              B帧

下面我们来分析一下为什么他们分别是I、P、B帧

  0x10 = 0001 0000

  0x50 = 0101 0000

  0x96 = 1001 0100 

大家看红色的2bit,再对照开头说的帧与2bit的对应关系,是不是符合了呢?

下面给出一段c++代码供大家参考:

switch(buf[i] & (BYTE)0xc0)
{
case 0x00:
    //I Frame
    break;
case 0x40:
    //P Frame
    break;
case 0x80:
    //B Frame
    break;
default:
    break;
}
From:
http://www.cnblogs.com/ManMonth/archive/2010/02/09/1666328.html


[转] I-P-B frame简介 

三种帧类型
IF——I-frame的缩写,即关键帧。关键帧是构成一个帧组(GOP,Group of Picture)的第一个帧。IF保留了一个场景的所有信息。压缩比为1:7。
PF——P-frame的缩写,即未来单项预测帧,只储存与之前一个已解压画面的差值。压缩比为1:20。
BF——B-frame的缩写,即双向预测帧,除了参考之前解压过了的画面外,亦会参考后面一帧中的画面信息。压缩比为1:50。
B-Frame(在 MPEG-4 里面正确的名称是 B-VOP)的预测模式有四种:
a. Forward 顺向预测,参考前一张画面,记录和前一张画面的差距。和 P-Frame 的预测方法一样。
b. Backward 逆向预测,参考下一张画面,记录和下一张画面的的差距。
c. Bi-Directionally 双向预测,参考前面和后面两张画面,记录的是和「前后两张画面的平均值」的差距。也叫做内插预测,压缩率最高。
d. Direct Mode,不搜寻、纪录动作向量,直接由下一张的 P Frame推导出动作向量。譬如说 I B P,我们可以预测 B画面的动作必然是介于 I 和 P 两个画面之间,所以我们可以直接用 P 的 MV/2 作为B 的动作向量,这样可以省去记录 MV 的空间。
压缩 B-Frame 的时候会从上面几种预测模式中选压出来最小的一个模式来使用。


MPEG-2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。

MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。

I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。



I,B,P frame

B帧

  B帧(B frame)

基本概念

  B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。

B帧的模式

  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 的形式,所以画面上的蓝线就是「一长一短、一长一短」这样排列。
  关键帧和过渡帧的联系与区别
  1、两个关键帧的中间可以没有过渡帧(如逐帧动画),但过渡帧前后肯定有关键帧,因为过渡帧附属于关键帧;
  2、关键帧可以修改该帧的内容,但过渡帧无法修改该帧内容。
  3、关键帧中可以包含形状、剪辑、组等多种类型的元素或诸多元素,但过渡帧中对象只能是剪辑(影片剪辑、图形剪辑、按钮)或独立形状。   图像(帧)是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像; P图像(帧)是通过充分将低于图像序列中前面已编码帧的是间冗余信息来压缩传输数据量的编码图像,也叫预测帧; B图像(帧)是既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;一般地,I帧压缩效率最低,P帧较高,B帧最高。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Fanuc一R30iBP|US说明书是一份机器人控制器的使用指南。该说明书主要介绍了Fanuc R-30iBP控制器的物理构造、安装和调试方法,以及控制器的基本操作和编程方法。 该说明书首先介绍了控制器的硬件构造和组成,包括CPU、内存、电源、通信接口等。然后详细介绍了控制器的安装方式,并给出了安装的步骤和注意事项。接下来,说明书介绍了处理器上的编程工具和软件,并详细解释了每个工具和软件的功能和使用方法。 在接下来的章节,该说明书介绍了如何使用控制器进行机器人的基本操作,包括坐标系的设置、姿态控制、速度控制、IO控制等。此外,该说明书还提供了R-30iBP控制器的编程方法,包括安装、调试和运行使用程序等。 总的来说,Fanuc一R30iBP|US说明书是一份全面的控制器使用指南,可以帮助用户正确、高效地使用Fanuc机器人控制器。 ### 回答2: Fanuc一R30iBP|US是一款机器人控制器,适用于工业生产线上的机器人系统。其具备高性能和可扩展性,可以进行编程、监控和控制机器人的动作及操作。同时,该控制器还具有高速通信、多层安全功能和可扩展性等特点,能够满足各种不同工业领域和生产线上的需要。 Fanuc一R30iBP|US在操作和编程上十分灵活,可根据用户需求进行自定义设置和编程,对于高精度和高速度的工业生产任务,该控制器能够保证其准确和稳定性,从而提高生产线的效率和生产质量。 此外,Fanuc一R30iBP|US还具有先进的安全功能,比如手指识别、安全限制和多重防护等,可以保证生产操作安全和稳定性,减少事故发生的风险。 总之,Fanuc一R30iBP|US是一款高性能、高可靠性、高安全性和高扩展性的机器人控制器,在工业生产线上具有广泛的应用前景和市场潜力。 ### 回答3: Fanuc R30iBP|US 是 Fanuc 公司研发的一种机器人控制器。这款控制器基于 Windows 操作系统,采用了模块化设计并具有高度灵活性,适用于各种不同类型的机器人应用。 R30iBP|US 控制器具有高速和高精度运动控制功能,支持各种姿态类型的运动轨迹和周围环境的实时检测。该控制器采用了字化控制技术,可以轻松地控制多种类型的机器人,如 SCARA、Delta、Cartesian 和 6 轴机器人等。 此外,R30iBP|US 控制器还具有包括安全控制、据管理和通信功能等在内的全面功能,可以通过各种不同的通信接口与工业网络进行连接,实现据实时传输和集管理。 最后, Fanuc R30iBP|US 控制器的使用简单、便捷。在控制器上配备了大屏幕显示器和直观的人机界面,用户只需要简单几步就可以轻松地完成机器人的编程和操作。 总的来说,Fanuc R30iBP|US 控制器是一款高效、稳定、易用的机器人控制器,适用于各种机器人应用场景,具有广阔的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值