视频压缩:I帧、P帧、B帧

来源:互联网 发布:会议在线报名系统 php 编辑:程序博客网 时间:2024/05/28 05:18

/------------------------------------------------------------------------------------------------------------------------------------------------------

注:因为工作上的需要,最近在看IPB帧的相关知识,看了许多篇个人觉得讲的比较好的,这里我做一个总结

参考:http://blog.csdn.net/liangxiaozhang/article/details/17628829

     http://blog.csdn.net/abcjennifer/article/details/6577934

------------------------------------------------------------------------------------------------------------------------------------------------------/

在海思平台做多媒体视频处理,必须要了解IPB帧的概念

1、首先我们来了解下为什么要视频压缩?

未经压缩的数字视频的数据量巨大,存储困难且传输困难

2、如何进行压缩?

去除冗余信息(控件冗余,时间冗余,编码冗余,视觉冗余,只是冗余)

3.数据压缩分类?

无损压缩和有损压缩,H.264属于有损压缩

在视频编码中,每帧代表一副静止的图像,通常会才有IPB压缩减少数据的容量

I帧表示关键帧,这是一副完整画面的保留。解码只需要本帧数据就可以完成

P帧表示这一帧和之前的I帧或P帧的差别,要解码P帧只需要用之前缓存的画面叠加本帧差别,生成最终画面。

B帧是双向差别帧,本帧与前后帧的差别,不仅要取得之前的缓存画面,还要解码之后的画面,前后画面与本帧数据叠加取得最终画面。

下面分别介绍下IPB帧的特点:

一、I帧

靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像

I帧又称作内部画面,通常是每个GOP的第一个帧,适度的压缩可以当做图像,一部分压缩成P帧,一部分压缩成B帧

I帧也被称为关键帧,是基于离散余弦变换DCT压缩技术

特点:

1.它是一个全帧压缩编码帧

2.解码时仅用I帧的数据就可重新构造完整图像

3.I帧描述了图像背景和运动主体的详情

4.I帧不需要参考其他画面

5.I帧是PB帧的参考帧

6.I帧是帧组GOP的基础帧(第一帧),一组只有一个I帧

7.I帧不需要考虑运动矢量

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

编码流程:


二、P帧

P帧是通过充分降低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧。

当针对连续动态图像编码时,将连续若干幅图像分成I,P,B三种类型,P帧由前面的I、P帧预测而来,也就是考虑运动的特性进行帧间压缩。

特点:

1.P帧是I帧后面1~2帧的编码帧

2.P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量

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

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

5.P帧可以是后面P帧的参考帧,或者是后面B帧的参考帧

6.由于P帧是参考帧,可能会造成解码错误的扩散

7.因为是差值传送,压缩比例比较高

三、B帧

B帧是双向预测帧,根据相邻的前一帧,本帧以及后一帧数据的不同来压缩本帧,记录本帧与前后帧的差值

一般,I帧压缩效率最低,P帧较高,B帧最高。

特点:

1.B帧是由前面的I或后面的P来预测的

2.B帧传送的是它与前面的I或P帧的后面的P帧之间的预测误差及运动矢量

3.B帧是双向预测编码帧

4.压缩比最高,因为反映的是两个参考帧间运动主体的变化情况

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



原创粉丝点击