1.基本概念
frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵。
field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶场。
macroblock/MB:宏块,H.264中处理(预测、变换、量化)的基本单元,大小16*16个像素。
slice group:条带组,每一帧/场图像中,按照光栅扫面的顺序,将一帧图像分成多个条带(slice),而一个条带又由多个MB/MB对构成。
I/P/B 宏块:I宏块只能利用所在slice中已编码的像素进行帧内预测。P宏块是利用已编码的图像的像素进行帧间预测,属于前向预测,即参考图像是播放顺序中该帧图像之前的图像。B宏块也是利用已编码的图像像素进行帧间预测,属于双向预测,即参考图像可以是播放顺序前后的图像。
I/P/B条带:仅包含I宏块的是I条带,同时包含I宏块和P宏块的是P条带,同时包含I条带和B宏块的是B条带。
I/P/B帧:I帧只包含I条带,P帧只包含P条带,B帧只包含B条带。
List0/List1:List0是前向参考帧列表,List1是后向参考帧列表。所以P帧预测只用到List0,B帧预测会用到List0和List1。
profile:档次,所谓档次就是H.264支持的一组工具集合和特定的应用领域。AVC里规定了几种不同的档次,主要有基本档次(Baseline profile)、主要档次(Main profile)和扩展档次(Extended profile)。
三种档次共有工具:
》支持I帧和P帧进行帧内和帧间编码
》利用CAVLC(上下文自适应的可变长度编码)进行熵编码
》使用去块效应滤波
》zigzag扫描
》1/4像素精度的运动估计
》最小为4x4的三级运动估计分块
》4:2:0的YUV抽样
基本档次的特性:
主要档次的特性:
》支持B帧、加权的帧内预测、CABAC(上下文自适应的二进制算术编码)
扩展档次的特性:
》包括基本档次的所有特性和B帧、加权的帧内预测
》支持SP/SI条带,用于流间切换、拼接和随机接入
H.264 的主要规格
1、Baseline Profile(BP)
支持 I / P 帧
,只支持无交错(Progressive)和 CAVLC;
一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等即时通信领域。
2、Extended Profile(XP)
在 Baseline 的基础上增加了额外的功能,支持流之间的切换,改进误码性能;
支持 I / P / B / SP / SI 帧
,只支持无交错(Progressive)和 CAVLC;
适合于视频流在网络上的传输场合,比如视频点播。
3、Main Profile(MP)
提供 I / P / B 帧
,支持无交错(Progressive)和交错(Interlaced),支持 CAVLC 和 CABAC;
用于主流消费类电子产品规格如低解码(相对而言)的 MP4、便携的视频播放器、PSP 和 iPod 等。
4、High Profile(HiP)
最常用的规格,在 Main 的基础上增加了 8x8
内部预测、自定义量化、无损视频编码和更多的 YUV 格式(如 4:4:4);
High 4:2:2 Profile(Hi422P);
High 4:4:4 Predictive Profile(Hi444PP);
High 4:2:2 Intra Profile;
High 4:4:4 Intra Profile;
用于广播及视频碟片存储(蓝光影片),高清电视的应用。