天天看點

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編碼流程

繼續閱讀