H264
什么是H264:
视频编码标准(所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。)
是由ITU-T视频编码专家组和ISO/IEC动态图像专家组联合组成的联合视频组提出的高度压缩数字视频编解码器标准
为什么需要压缩视频:为了降低时延
特点:
1.低码率:和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。(单位时间播放音频或者视频的比特数)
2.高质量的图像:H.264能提供连续、流畅的高质量图像。
3.容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
4.网络适应性强:H.264提供了网络抽象层,使得H.264的文件能容易地在不同网络上传输。
5.相比H.263,H。264不需设置较多的编码选项,降低了编码的复杂度
6.H.264可以根据不同的环境使用不同的传输和播放速率
7.H.264性能的改进以增加复杂度为代价(编码复杂度和解码复杂度)
帧的类型:
I帧:I帧即帧内编码帧、关键帧(关键帧一定是I帧,I帧不一定是关键帧),可以理解为一帧画面的完整保留,解码时只需要本帧数据就可以完成,不需要参考其他画面,数据量比较大;
P帧:P帧即前向预测编码帧,记录当前帧跟上一关键帧(或P帧)的差别,解码时依赖之前缓存的画面,叠加上本帧定义的差别,才能生成最终画面,数据量较 I 帧小很多;
B帧:B帧即双向预测编码帧,记录当前帧跟前后帧的差别,解码时依赖前面的I帧(或P帧)和后面的P帧,数据量比I帧和P帧小很多。
数据压缩比大约为:I帧:P帧:B帧 = 7:20:50,可见 P 帧和 B 帧极大的节省了数据量,节省出来的空间可以用来多保存一些 I 帧,以实现在相同码率下,提供更好的画质。
H264格式解析
什么是NAL:
在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)。在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的首帧数据为PPS与SPS,接着为I帧……