网上关于直播H264编码的文章已经很多了,但是其中牵扯到了很多名词,让人不是很理解,这篇文章的意义就是理解这些概念
让我们努力变成巨人-------------与君共勉
首先H264是一种高度压缩数字视频编解码器标准
为了更好地说明帧的概念,我们先来看看电影播放的基本原理。
在放映电影的过程中,画面被一幅幅地放映在银幕上。画幅移开时,光线就被遮住,幕上便出现短暂的黑暗;每放映一个画幅后,幕上就黑暗一次。但这一次次极短暂的黑暗,被人的视觉生理现象“视觉暂留”所弥补。人眼在观察景物时,光信号传入大脑神经需经过一段短暂时间,光的作用结束时,视觉也不立即消失。视觉的这一现象称为“视觉暂留”。当电影画面换幅频率达到每秒15幅~30幅时,观众便见不到黑暗的间隔了,这时人“看到”的就是运动的事物,这就是电影的基本原理。这里的一幅画面就是电影的一帧,实际上就是电影胶片中的一格。
帧——就是影像动画中最小单位的单幅影像画面。
我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用FPS(Frames Per Second)表示。
I帧又称为内部画面,通常是一组连续画面的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。I帧采用帧内压缩法,这种压缩与静态图像的压缩算法类似。I帧是靠尽可能去除图像空间冗余信息来压缩的。
P帧是通过充分降低与图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧。P帧由在它前面的P帧或者I帧预测而来,它根据本帧与邻近的前一帧或几帧的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。P帧属于前向预测的帧间编码。它只参考前面靠近它的I帧或P帧。
B帧也叫双向预测帧,当把一帧压缩成B帧时,它根据邻近的前几帧、本帧以及后几帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到超高的压缩比。一般地,I帧压缩效率最低,P帧较高,B帧最高。
帧间(Interframe)压缩是基于许多视频或动画的连续前后两帧具有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression)。
帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,达不到很高的压缩比。
I帧又称为内部画面,通常是一组连续画面的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。I帧采用帧内压缩法,这种压缩与静态图像的压缩算法类似。I帧是靠尽可能去除图像空间冗余信息来压缩的。