基本概念: I frame :幀內(nèi)編碼幀 又稱(chēng)intra picture,I 幀通常是每個(gè) GOP(MPEG 所使用的一種視頻壓縮技術(shù))的第一個(gè)幀,經(jīng)過(guò)適度地壓縮,做為隨機(jī)訪問(wèn)的參考點(diǎn),可以當(dāng)成圖象。I幀可以看成是一個(gè)圖像經(jīng)過(guò)壓縮后的產(chǎn)物。 P frame: 前向預(yù)測(cè)編碼幀 又稱(chēng)predictive-frame,通過(guò)充分將低于圖像序列中前面已編碼幀的時(shí)間冗余信息來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像,也叫預(yù)測(cè)幀; B frame: 雙向預(yù)測(cè)內(nèi)插編碼幀 又稱(chēng)bi-directional interpolated prediction frame,既考慮與源圖像序列前面已編碼幀,也顧及源圖像序列后面已編碼幀之間的時(shí)間冗余信息來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像,也叫雙向預(yù)測(cè)幀; PTS:Presentation Time Stamp。PTS主要用于度量解碼后的視頻幀什么時(shí)候被顯示出來(lái) DTS:Decode Time Stamp。DTS主要是標(biāo)識(shí)讀入內(nèi)存中的bit流在什么時(shí)候開(kāi)始送入解碼器中進(jìn)行解碼。 在沒(méi)有B幀存在的情況下DTS的順序和PTS的順序應(yīng)該是一樣的。 IPB幀的不同: I frame:自身可以通過(guò)視頻解壓算法解壓成一張單獨(dú)的完整的圖片。 P frame:需要參考其前面的一個(gè)I frame 或者B frame來(lái)生成一張完整的圖片。 B frame:則要參考其前一個(gè)I或者P幀及其后面的一個(gè)P幀來(lái)生成一張完整的圖片。 兩個(gè)I frame之間形成一個(gè)GOP,在x264中同時(shí)可以通過(guò)參數(shù)來(lái)設(shè)定bf的大小,即:I 和p或者兩個(gè)P之間B的數(shù)量。 通過(guò)上述基本可以說(shuō)明如果有B frame 存在的情況下一個(gè)GOP的最后一個(gè)frame一定是P. DTS和PTS的不同: DTS主要用于視頻的解碼,在解碼階段使用.PTS主要用于視頻的同步和輸出.在display的時(shí)候使用.在沒(méi)有B frame的情況下.DTS和PTS的輸出順序是一樣的. 例子: 下面給出一個(gè)GOP為15的例子,其解碼的參照f(shuō)rame及其解碼的順序都在里面: 如上圖:I frame 的解碼不依賴(lài)于任何的其它的幀.而p frame的解碼則依賴(lài)于其前面的I frame或者P frame.B frame的解碼則依賴(lài)于其前的最近的一個(gè)I frame或者P frame 及其后的最近的一個(gè)P frame. |
|