找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 4687|回复: 8

[资料] MPEG中的三种图像类型(I帧、P帧、B帧)及码流组成

[复制链接]

9334

威望

908

金钱

1万

贡献

管理员

自由的灵魂

积分
100569
主题
5293
回帖
26240
注册时间
2003-4-10
最后登录
2024-12-21
发表于 2010-7-3 19:36:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 IsaacZ 于 2010-8-2 17:40 编辑

  我们已经提到,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帧,以后的各帧就严格按规定顺序排列。

IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读版规。

6

威望

1304

金钱

23

贡献

初级会员

积分
1419
主题
15
回帖
220
注册时间
2009-5-1
最后登录
2022-8-27
发表于 2010-7-6 14:34:38 | 显示全部楼层
这个好贴 我晕没人发表 意见?

这是一个我研究了很多算法终于看到一个详细的一份图形组成

但是还有很多不明白的地方 哈哈 我笨!总之先感谢黑猫大哥的分享辛苦了!!
回复

使用道具 举报

0

威望

272

金钱

9

贡献

初级会员

得过且过DVD制作人

积分
327
主题
10
回帖
88
注册时间
2010-6-5
最后登录
2011-7-5
发表于 2010-7-6 15:02:00 | 显示全部楼层
这个是好帖,只是我看不懂,而且只是一些理论上的东西,实际操作中几乎不用考虑的内容,只有想成为“专家”的人才会去研究这类知识。
我只有飘过........因为我对很多常用功能都没啥经验。
得过且过
回复

使用道具 举报

9334

威望

908

金钱

1万

贡献

管理员

自由的灵魂

积分
100569
主题
5293
回帖
26240
注册时间
2003-4-10
最后登录
2024-12-21
 楼主| 发表于 2010-7-6 17:01:35 | 显示全部楼层
这些东西只要知道个大概就行了,我也没钻研那么深,只是转过来让感兴趣的朋友瞧瞧。
IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读版规。
回复

使用道具 举报

0

威望

806

金钱

7

贡献

初级会员

来拜师的

积分
839
主题
8
回帖
67
注册时间
2010-7-4
最后登录
2011-9-6
QQ
发表于 2010-7-7 12:25:28 | 显示全部楼层
好深奥,好专业,希望能有更浅显易懂的解释和实际操作的经验最好,毕竟这些知识是拿来用的,会操作了就好
回复

使用道具 举报

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
发表于 2010-8-2 09:47:53 | 显示全部楼层
这个帖子当然是精品。稍稍遗憾的是,它仅仅告诉我们理论。
对于我们这些菜鸟来说,更重要的是理论的运用。
即在每个GOP中,I帧恐怕只是1,那么,P帧改善多少,B帧该是多少,GOP最大帧数该是多少,才是mpeg压缩中的较为合理数值。
楼主在这方面是否有心得,或者能否转帖一些高人的心得。我等将受益匪浅。
回复

使用道具 举报

9334

威望

908

金钱

1万

贡献

管理员

自由的灵魂

积分
100569
主题
5293
回帖
26240
注册时间
2003-4-10
最后登录
2024-12-21
 楼主| 发表于 2010-8-2 12:42:50 | 显示全部楼层
回复 6# chnxn

IsaacZ也只是凑着朋友们的提问,转贴来模模糊糊了解一下概念而已,在实际操作中没有任何经验。

lijianwen兄的实践很多,可能更有发言权。
回复

使用道具 举报

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
发表于 2010-8-2 13:24:55 | 显示全部楼层
本帖最后由 chnxn 于 2010-8-2 18:58 编辑

稍微研究一下,可能不用管GOP是多少,只要确定P帧和B帧即可。最重要的可能是P帧。
以前没研究过。印象中lijianwen好像发表过。确实lijianwen更有发言权。敬待指教......
此外,版主应该见过这方面的帖子(论坛外),若有见过,烦请链接。
补充一下自己的感觉:P帧多,压缩效率可能高一些,不过若是下一I帧画面已是面目全非,是否可能会变成全部I帧,降低效率。因此P帧多少,取决于素材,若是讲课的,P帧可以很大。
电视剧就不能太大(动的和静的不一样),电影和一般的文艺节目可能更小,画面变化会更大。
我觉得是不是应该考虑两个I帧之间的时间不超过多少为宜,由此再推算P帧和B帧。
初次接触这玩意,凭想象乱说一气,说错了请勿见笑。
回复

使用道具 举报

9334

威望

908

金钱

1万

贡献

管理员

自由的灵魂

积分
100569
主题
5293
回帖
26240
注册时间
2003-4-10
最后登录
2024-12-21
 楼主| 发表于 2010-8-2 19:59:51 | 显示全部楼层
回复 8# chnxn

不同的素材肯定有一个最佳的GOP值,只是要想获得经验,需要大量测试。有兴趣的话自己研究吧。我已经基本上不刻录视频碟了,没有动力了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2024-12-22 09:49 , Processed in 0.162426 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表