I,P,B幀和PTS,DTS的關係,GOP相關

2021-08-18 20:36:06 字數 2333 閱讀 8870

i frame

p frame:

前向**編碼幀 又稱predictive-frame

,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫**幀;

b frame:

雙向**內插編碼幀 又稱bi-directional interpolatedprediction frame,既考慮與源影象序列前面已編碼幀,也顧及源影象序列後面已編碼幀之間的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫雙向**幀;

pts

dts:decode time stamp。dts主要是標識讀入記憶體中的bit流在什麼時候開始送入解碼器中進行解碼。

在沒有b幀存在的情況下dts的順序和pts的順序應該是一樣的。

ipb幀的不同:

i frame :

p frame

b frame :

兩個i frame之間形成乙個gop,在x264中同時可以通過引數來設定bf的大小,即:i 和p或者兩個p之間b的數量。

通過上述基本可以說明如果有b frame 存在的情況下乙個gop的最後乙個frame一定是p.

看x264**,感覺gop 就是idr幀到另乙個idr幀之間 就是乙個gop.即group of picture(影象組),指兩個i

幀之間的距離,reference

(參考週期)指兩個p幀之間的距離(如下圖)。乙個i幀所占用的位元組數大於乙個p幀,乙個p幀所占用的位元組數大於乙個b幀(如下圖所示)。

所以在位元速率不變的前提下,gop值越大,p、b幀的數量會越多,平均每個i、p、b幀所占用的位元組數就越多,也就更容易獲取較好的影象質量;reference越大,b幀的數量越多,同理也更容易獲得較好的影象質量。

需要說明的是,通過提高gop值來提高影象質量是有限度的,在遇到場景切換的情況時,h.264編碼器會自動強制插入乙個i幀,此時實際的gop值被縮短了。另一方面,在乙個gop中,p、b幀是由i幀**得到的,當i幀的影象質量比較差時,會影響到乙個gop中後續p、b幀的影象質量,直到下乙個gop開始才有可能得以恢復,所以gop值也不宜設定過大。

同時,由於p、b幀的複雜度大於i幀,所以過多的p、b幀會影響編碼效率,使編碼效率降低。另外,過長的gop還會影響seek操作的響應速度,由於p、b幀是由前面的i或p幀**得到的,所以seek操作需要直接定位,解碼某乙個p或b幀時,需要先解碼得到本gop內的i幀及之前的n個**幀才可以,gop值越長,需要解碼的**幀就越多,seek響應的時間也越長。

dts

和pts的不同:

dts

例子:

下面給出乙個gop為15的例子,其解碼的參照frame及其解碼的順序都在裡面:

如上圖:i frame 的解碼不依賴於任何的其它的幀.而p frame的解碼則依賴於其前面的iframe或者p frame.b frame的解碼則依賴於其前的最近的乙個i frame或者p frame 及其後的最近的乙個p frame.

slice-i:

指的是i幀,即沒有用到幀間的冗餘資訊,但是並不表示他不能使用**方式,他可以使用同一幀中相鄰巨集塊之間的空間關聯性,因此,對i幀影象某一mb進行編碼時,我們可以根據周圍的mb來**我們當前的mb,通常我們會選擇當前mb左側和上側的mb,因為這些mb已經經過編碼了。然後再對實際的mb與**mb之間的差值進行編碼。這樣就可以減少bit。但是需要用13種幀內**模式進行**比較,複雜度較以往標準採用的直接def變換編碼大大提高了;

(注:只有h.264中i幀才用到了**方式,其餘的協議都沒有用到**方式,而是直接對一幀中的各mb進行變換得到的)

slice-p

編碼器進行編碼時,編碼器讀出頭資訊後,以巨集塊為單位進行編碼. 在對當前巨集塊進行編碼時,首先通過運動估計,在上一幀重構影象中選出最佳匹配巨集塊. 然後,根據匹配效果、影象區域性的性質、編碼器當時的工作狀況,決定對當前巨集塊是採用幀內編碼還是幀間編碼.若前後兩幀很相似,即相關性很強,則進行的是幀間**編碼,即對幀間**的誤差進行4 ×4 整數變換、量化,得到的資料一方面進行熵編碼,另一方面通過反量化和4 ×4 反整數變換重構,以便下乙個巨集塊進行運動估計;若前後兩幀影象相關性較弱,則進行的是幀內編碼.

I,P,B幀和PTS,DTS的關係

基本概念 p frame 前向 編碼幀 又稱predictive frame,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫 幀 b frame 雙向 內插編碼幀 又稱bi directional interpolated prediction frame,既考慮...

I,P,B幀和PTS,DTS的關係

基本概念 p frame 前向 編碼幀 又稱predictive frame,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫 幀 b frame 雙向 內插編碼幀 又稱bi directional interpolated prediction frame,既考慮...

I,P,B幀和PTS,DTS的關係

基本概念 p frame 前向 編碼幀 又稱predictive frame,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫 幀 b frame 雙向 內插編碼幀 又稱bi directional interpolated prediction frame,既考慮...