视频中的I帧、B帧、P帧

        视频文件都是一帧一帧存储的,为了使文件的大小减小,通常会对文件进行压缩。mpeg4(MP4)文件中的每一帧开始都是固定的:00 00 01 b6,那么在接下来的每一帧分别是什么帧呢(I帧、B帧、P帧)?一般在这固定帧的后面2bit就是标志是什么帧的。

        I帧:00    B帧:01   C帧:10

        下面举例说明:

                00 00 01 b6 10        0x10---------00 01 00 00    // 该帧为I帧

               00 00 01 b6 50        0x50---------0101 00 00    //该帧为B帧

               00 00 01 b6 96        0x96---------10 01 01 10    //该帧为P帧

        现在知道了视频中每一帧分别是什么帧了,那么,到底I帧、B帧、P帧是什么呢?

        I帧:关键帧,该帧的压缩方式属于帧内压缩,这种压缩方式和AVI的压缩方式是一样的。

        P帧:表示这一帧和上一帧的区别,解码的时候需要与缓存的上一帧叠加在一起得到差别,生成最终画面。P帧就是与上一帧的差别,即差别帧。

        B帧:双向差别帧,需要与前后两帧叠加得到差别,生成最终画面,B帧的压缩率高,但相对的,解码时就要占用更多的CPU资源。

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

       

你可能感兴趣的:(视频中的I帧、B帧、P帧)