`

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

 
阅读更多

/**************************************************************************************************************************************************************************************

**说明:

1.本文通过整理而来,集多个高手的精华,此为最重点!!!
2.因为在海思平台做多媒体视频处理,所以了解I帧、P帧、B帧等压缩-编解码特点是必须的。
3.海思I帧间隔即GOP取值范围:[0, 1000],以帧为单位,为动态属性。
4.欢迎拍砖。

***************************************************************************************************************************************************************************************/

视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。

简单地说,I帧是关键帧,属于帧内压缩就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。

I帧表示关键帧,你可以理解为这一帧画面的完整保留解码时只需要本帧数据就可以完成(因为包含完整画面)

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧P没有完整画面数据,只有与前一帧的画面差别的数据

B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~

采用的压缩方法: 分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。

1.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;

2.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;

3.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。

一、I

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

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

I帧特点

1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;

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

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

4.I帧不需要参考其他画面而生成;

5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);

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

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

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

I帧编码流程:

(1)进行帧内预测,决定所采用的帧内预测模式。

(2)像素值减去预测值,得到残差。

(3)对残差进行变换和量化。

(4)变长编码和算术编码。

(5)重构图像并滤波,得到的图像作为其它帧的参考帧。

二、P

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

在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,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帧的压缩比较高。

三、B

B图像(帧)是既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧

B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。一般地,I帧压缩效率最低,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帧压缩比最高,因为它只反映2参考帧间运动主体的变化情况,预测比较准确;

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

P 帧和 B 帧编码的基本流程为:

(1)进行运动估计,计算采用帧间编码模式的率失真函数(节)值。P 帧 只参考前面的帧,B 帧可参考后面的帧。

(2)进行帧内预测,选取率失真函数值最小的帧内模式与帧间模式比较,确定采用哪种编码模式。

(3)计算实际值和预测值的差值。

(4)对残差进行变换和量化。

(5)若编码,如果是帧间编码模式,编码运动矢量。

:IBP各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧,至于图像中的哪一帧是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帧,这样在相同码率下,可以提供更好的画质。


在如上图中,GOP (Group of Pictures)长度为13,S0~S7 表示 8个视点,T0~T12 为 GOP的 13个时刻。每个 GOP包含帧数为视点数 GOP 长度的乘积。在该图中一个 GOP 中,包含94 个 B帧。B 帧占一个 GOP 总帧数的 90.38%。GOP 越长,B 帧所占比例更高,编码的率失真性能越高。下图测试序列 Race1 在不同 GOP 下的率失真性能对比。




分享到:
评论

相关推荐

    I 帧,B帧,P帧简介

    所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的...

    小日本视频转换器

    就是对于P帧的图块,在I帧中寻找对应的部分,然后对两个图块的差异部分进 行编码,可以大大节省码率。运动检测精度越高,图块搜索匹配的范围越大,编码效率越高,同时编码速度越慢。这部分算法同样没有在mpeg标准中...

    论文研究-多窗口局部分形特征的目标分割方法研究.pdf

    对视频流直接在压缩域中部分解压I帧,提取其DC图像的特征,利用连续I帧的DC图像的特征差异粗略定位镜头的边界,再根据压缩域中P、B帧的各种类型的宏块数量变化精确定位镜头边界。实验结果表明,本算法能高效而精确地...

    基于RGB彩色空间的运动补偿与分形相结合的视频压缩方法 (2009年)

    该方法先区分出彩色视频序列的I帧和P帧,同时分别分离出R、G、B三种颜色;其次对于I帧每种颜色均单独采用分形图像压缩算法进行编码,对于P帧每种颜色均通过运动补偿进行预测编码,得到运动误差,而这些运动误差的...

    基于H.264压缩域内宏块预测模式的镜头突变检测 (2013年)

    根据H.264的宏块编码特性,提出了一种直接在H.264压缩域内进行镜头突变检测的算法。...对于P帧和B帧,通过分析帧内宏块的预测模式及相邻帧之间的相关性来进行检测。实验结果表明,该算法具有较高的查全率和查准率。

    Web直播,你需要先知道这些

    IPB:一种常用的视频压缩方案,用I帧表示关键帧,B帧表示前向差别帧,P帧表示双向差别帧 GOP (Group of Pictures):GOP 越长(I帧之间的间隔越大),B 帧所占比例越高,编码的率失真性能越高。虽然B帧压缩率高,但...

    基于H'enon Map的VQ压缩视频数据加密系统-研究论文

    后来,使用生成的码本对I帧进行解码,并基于该解码后的帧,使用建议的运动估计方法对其他预测(P)和双向(B)帧进行压缩。 在此特定过程中,我们未执行任何运动补偿。 结果,这种总体机制需要较少的处理开销。 ...

    flash shiti

    按快捷键Ctrl+Shift+I 45.新增图层的方法有: A. 选择Insert菜单下的Layer命令 B. 按下图层编辑区左下方的钮 C. 按下图层编辑区左下方的钮 D. 选择File菜单下的Layer命令 FLASH 样题参考答案 1.D 2.D 3.C 4.B...

    基于H_264的静止自由立体图像压缩算法

    针对静止自由立体图像数据量大的问题,摆脱了传统以JPEG标准进行静止图像压缩...思路,根据视点数不同,选择了相应的关键视点编码为I帧,其余的分别编码为P帧和B帧,充分利用 了H. 264的帧内、帧间预测等工具对其进行压缩。

    论文研究-基于动态概率变异的Cauchy粒子群优化.pdf

    在压缩的视频码流中嵌入数字水印时,如果选择在I帧图像的DCT系数中嵌入数字水印,那么后面的P帧和B帧图像的质量会受到很大的影响。提出了利用新的漂移补偿方法来减小I帧图像中的数字水印对后面的P帧图像和B帧图像的...

    离散余弦压缩代码matlab-MPEG-Codec:在MATLAB中为类项目实现的MPEGCodec

    离散余弦压缩代码matlab ...(b)通过(对于I帧)/减去(对于P / B帧) (b)离散余弦变换(DCT) (c)量化 (d)熵/源编码 (e)多路复用器 (f)源缓冲区 此存储库中包含的文件及其使用与以下每个块松散地对齐: RE

    b-splines配准matlab代码-Motion-Estimation-Compressed-Sensing-MRI:运动估计-压缩传感-

    b-样条配准matlab代码运动估计-压缩传感-MRI 该存储库包含JFPJ Abascal、P Montesinos、E Marinetto、J Pascau、M Desco论文中介绍的基于 B 样条的压缩感知 (SPLICS) 方法的 MATLAB 代码。 小动物研究中自门控心脏...

    自适应宏块编码算法的研究

    过对H.264/AVC宏块编码类型空域相关性的大量实验分析,发现经过率失真优化而确定的宏块编码类型无论是I帧、P帧和B帧,在空间域上都具有极强的相关性。提出了采用区域方差来度量宏块编码类型的空域复杂性,并根据宏...

    海康视频卡动态库

    /// 16位RGB视频压缩格式 /// vdfRGB16 = 0x00000008, /// /// 24位RGB视频压缩格式 /// vdfRGB24 = 0x00000010, vdfRGB24Alpha = 0x00000020, vdfYUV420Planar = 0x00000040, /// /// YUV422视频...

    免费视频转换工具 Pazera Free MP4 Video Converter 1.5 中文多语免费版.zip

    支持的输入格式:AVI,DIVX,XVID,MPG,MPEG,MPE,MP4V,WMV,ASF,MP4,M4V,MOV,QT,3GP,3GPP,3G2、3GP2、3GA,MKV,MKA,FLV,SWF(未压缩) ,F4V,F4P,F4A,F4B,WEBM,VOB,DAT,RM,RMVB,OGM,OGV,...

    东大22春《多媒体技术及应用Ⅰ》在线平时作业2-00001

    (1)I帧内图 (2)P预测图 (3)B双向预测图 (4)D直流分量图7.心理视觉研究表明如果场频大于50次秒,人眼就感觉不到闪烁。8.复合视频信号将色差信号在亮度信号之上进行编码,作为单个信号拥有的带宽比亮度信号低...

    AMR在ip域中的编码

    AMR在IP域中的编码(rfc3267,4867) ... | h(176)|P|P|P|P|P|P|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 多通道多帧,见协议 字节对齐模式Octet-aligned Mode a...

    【9A文】计算机网络作业二及解答.doc

    A.TCP/IPB.局域网技术 C.远程通信技术D.光纤技术 14.【20RR年计算机联考真题】 TCP/IP参考模型的网络层提供的是()。 A.无连接不可靠的数据报服务B.无连接可靠的数据报服务 C.有连接不可靠的虚电路服务D....

    海康卫视开发dll文件

    /// 丢弃B帧的个数,取值为0,1,2,0-不丢,1-丢1个B帧,2-丢2个B帧; /// 在多路播放时,将B帧丢弃可以降低CPU的利用率, /// 不过当一路时,最好不丢弃B帧 /// public int throwNum = 1; public int ...

    HGE_系列教材(1-9)

    D and UMX 音乐文件格式(music file formats),支持压缩流的回放。声音大小和声 道的控制 <4> 输入设备支持:鼠标和键盘 <5> 资源:读取硬盘上的资源,支持ZIP 打包的文件格式 <6> 日志支持 2)Helper Classes 层 ...

Global site tag (gtag.js) - Google Analytics