根據(jù)H.264的不同類別,編碼器會使用不同類型的幀,例如I幀、P幀和B幀。
I幀(幀內(nèi)編碼幀)是一種自帶全部信息的獨立幀,無需參考其它圖像便可獨立進行解碼。視頻序列中的第一個幀始終都是I幀。如果所傳輸?shù)谋忍亓髟獾狡茐模瑒t需要將I幀用作新查看器的起始點或重新同步點。I幀可以用來實現(xiàn)快進、快退以及其它隨機訪問功能。如果新的客戶端將參與查看視頻流,編碼器將以相同的時間間隔或者根據(jù)要求自動插入I幀。I幀的缺點在于它們會占用更多的數(shù)據(jù)位,但從另一方面看,I幀不會產(chǎn)生可覺察的模糊現(xiàn)象。
P幀(幀間預(yù)測編碼幀)需要參考前面的I幀和/或P幀的不同部分才能進行編碼。與I幀相比,P幀通常占用更少的數(shù)據(jù)位,但其缺點是,由于P幀對前面的P和I參考幀有著復(fù)雜的依賴性,因此對傳輸錯誤非常敏感。
B幀(雙向預(yù)測編碼幀)需要同時以前面的幀和后面的幀作為參考幀。
圖2.帶有I幀、B幀和P幀的典型視頻序列。P幀只需要參考前面的I幀或P幀,而B幀則需要同時參考前面和后面的I幀或P幀。
當(dāng)視頻解碼器逐個幀地對比特流進行解碼以便重構(gòu)視頻時,必須始終從I幀開始解碼。如果使用了P幀和B幀,則必須與參考幀一起解碼。
在H.264基準類中,僅使用I幀和P幀。由于基準類沒有使用B幀,所以可以實現(xiàn)低延時,因此是網(wǎng)絡(luò)攝像機和視頻編碼器的理想選擇。