天天看点

H264编码流程

H264编码流程手绘图:

H264编码流程

 H264编码网上图:

H264编码流程

I 帧

Fn(左上)是当前要编码的帧,他是 GOP 中的第一帧,也就是 I 帧,I 帧要进行帧内编码,首先要选择预测模式(Choose Intra prediction),然后进行帧内预测(Intra prediction),然后把每一个宏块的预测模式计算出来,然后进行量化( T ),再经过无损编码( Q ),最后进行拆包( Reorder )和熵编码( Entropy encode ),打成 NAL 头进行数据分发。

B 帧和 P 帧

Fn-1(中间)是 B 帧或 P 帧,首先要经过运动评估( ME ),对每一个宏块进行匹配查找,完成之后拿到运动矢量( MC ),根据运动矢量推断出运动评估之后帧的值,再与当前帧做残差值(残差值=当前帧-运动评估值),残差值与运动矢量相加,就可以得到当前帧数据,然后进行无损编码,最后生成 NAL 数据。

其中 Choose Intra prediction 和 Intra predictio 都是帧内压缩,ME(运动估计) 和 MC(运动补偿) 都是帧间压缩,T(DCT量化) 与 Q(VLC/CABAC熵编码) 都是无损压缩。

上面就是编码流程,解码就是反向操作,如下图:

H264编码流程

继续阅读