H264的视频文件中i帧p帧b帧压缩率

I帧、P帧和B帧是视频压缩技术H.264、H.265等视频编码标准中,用于表示不同的帧类型。

I帧(Intra-coded frame):关键帧,I帧通常是每个GOP(Group of Pictures)的第一个帧,主要进行帧内压缩,它不参照任何其他帧进行编码。I帧的压缩比可以达到大约6-7:1,相对于原始图像照片大小(仅做相对概念参考,非绝对准确数值,下同)。

P帧(Predicted frame):前向预测帧,它使用前面的I帧或P帧作为参考来预测图像内容,去除时间冗余信息,只记录差异信息。P帧的压缩率可以达到20倍左右,相对于原始图像照片大小。

B帧(Bidirectionally-predicted frame):双向预测帧,它既可以使用之前的帧也可以使用之后的帧作为参考来预测图像内容。B帧的压缩率是最高的,因为它可以去除最多的冗余信息,B帧的压缩率可以达到50倍甚至更高。

注意,上述压缩比数值是相对的。

通常使用CPU进行视频编码的时候,如x264或x265会生成大量B帧,进而获得极高的压缩率,同时保持视频文件良好的清晰度。老一些的CPU/GPU内集成的硬件编码器,不支持B帧压缩,导致压缩率差一些,新的CPU/GPU集成的硬件编码器,逐渐支持B帧压缩,压缩率得到很大提高(如英特尔14代处理器在硬件编码HEVC格式视频时支持生成B帧)。

软件编码器(如x264)和硬件编码器(如intel的QSV)在生成B帧的质量上可能会有所不同,但硬件编码器转码速度大幅度优于软件编码器,在实时性要求较高的情况下,使用硬件编码器是不错的选择;在需要进行长期存档的情况下,选用软件编码器采用高级预设参数,通过时间换空间是非常明智的。

华为手机自带的花瓣剪辑可以利用麒麟SoC中集成的AVC或HEVC编码器进行视频压缩转码,速度非常快。且视频转码过程中,花瓣剪辑会自动控制编码器进行IPPP…编码,相比于相机APP录制视频时,IPIPIP交替编码方式,花瓣剪辑生成的视频文件会具有更少的I帧,更多的P帧,即使不改变视频文件的分辨率,也可以获得大约60%视频文件体积缩小。

如果需要更高的压缩率,在保持良好清晰度的前提下,更加充分的缩小视频文件体积,则需要采用ffmpeg花费更多时间进行软件编码。