IPB幀 編碼順序 解碼順序 顯示順序

I frame :幀內編碼幀 又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視頻壓縮技術)的第一個幀,經過適度地壓縮,做爲隨機訪問的參考點,可以當成圖象。I幀可以看成是一個圖像經過壓縮後的產物。

P frame: 前向預測編碼幀 又稱predictive-frame,通過充分將低於圖像序列中前面已編碼幀的時間冗餘信息來壓縮傳輸數據量的編碼圖像,也叫預測幀;

B frame: 雙向預測內插編碼幀 又稱bi-directional interpolated prediction frame,既考慮與源圖像序列前面已編碼幀,也顧及源圖像序列後面已編碼幀之間的時間冗餘信息來壓縮傳輸數據量的編碼圖像,也叫雙向預測幀;

PTS:Presentation Time Stamp。PTS主要用於度量解碼後的視頻幀什麼時候被顯示出來

DTS:Decode Time Stamp。DTS主要是標識讀入內存中的bit流在什麼時候開始送入解碼器中進行解碼。

在沒有B幀存在的情況下DTS的順序和PTS的順序應該是一樣的。

IPB幀的不同:

I frame:自身可以通過視頻解壓算法解壓成一張單獨的完整的圖片。

P frame:需要參考其前面的一個I frame 或者B frame來生成一張完整的圖片。

B frame:則要參考其前一個I或者P幀及其後面的一個P幀來生成一張完整的圖片。

兩個I frame之間形成一個GOP,在x264中同時可以通過參數來設定bf的大小,即:I 和p或者兩個P之間B的數量。

通過上述基本可以說明如果有B frame 存在的情況下一個GOP的最後一個frame一定是P.

DTS和PTS的不同:

DTS主要用於視頻的解碼,在解碼階段使用.PTS主要用於視頻的同步和輸出.在display的時候使用.在沒有B frame的情況下.DTS和PTS的輸出順序是一樣的.

僅僅使用前一個顯示的基準幀來編碼的幀被稱爲“P幀”,同時使用前一個顯示幀和未來幀作爲基準幀進行編碼的幀稱爲“B幀”。在通常的場景中,編解碼器編碼一個I幀,然後向前跳過幾個幀,用編碼I幀作爲基準幀對一個未來P幀進行編碼,然後跳回到I幀之後的下一個幀。編碼的I幀和P幀之間的幀被編碼爲B幀。之後,編碼器會再次跳過幾個幀,使用第一個P幀作爲基準幀編碼另外一個P幀,然後再次跳回,用B幀填充顯示序列中的空隙。這個過程不斷繼續,每12到15個P幀和B幀內插入一個新的I幀。例如,圖1種給出了一個典型的視頻幀序列。

通常,更換場景後的第一幀就是I幀,I幀應當全幀傳送。從壓縮的程度來看,I畫面的壓縮量最少;P畫面次之,它是以I畫面爲基礎;B畫面壓縮最多。爲了加大壓縮比,通常在I幀後面相隔2幀(最多3幀)設置1個P幀,在I、P幀之間都是B幀,在兩個P幀之間也是設置2~3幀B幀。B幀傳送它與I幀或P幀之間的差值信息,或者P幀與後面P幀或I幀之間的差值信息,或者它與前後I、P幀或P、P幀平均值之間的差值信息。當主體內容變化愈大時,兩個I畫面之間的幀數值越小;當主體內容變化小時,I面畫的間隔可以適當大一些。或者說,B幀、P幀所佔比例越大,圖像壓縮比越高。一般兩個I畫面相隔13~15幀,相隔幀數不宜再多。


下面以15幀爲例,說明VCD圖像幀的排列順序。I、P、B三種畫面的典型設置方式,對NTSC制共約需半秒時間。節目輸入順序是按實際出現順序排列的,即I、B、B、P、B、B、P、B、B……I、B、B、P……;但爲了解碼時便於從I、P畫面插補得到B畫面,在編碼錄製節目時,將順序改變了,即按照I、P、B、B……順序,即改爲按原來0、3、1、2、6、4、5、9、7、8…的畫面順序。解碼時先解出0幀、3幀,再由其插補預測計算得出1幀、2幀等等。爲此,須在解碼器內設置動態存儲器,將I、P幀先解碼並存儲,再計算出各個B幀。不過最後輸出時,還是應當按照實際播放順序重組讀出,按正確順序輸出。


音視頻編碼卡的視頻編碼算法從JPEG 發展到MPEG-1、MPEG-2、MPEG-4和H.264。JPEG是一種著名的圖像壓縮方法,最初由Joint Photographic Experts Group在1986年提出並於1992年正式成爲ISO標準(ISO/IEC 10918),主要應用於靜態圖像壓縮,如果把它用在運動圖像壓縮的時候,就是我們通常所說的Motion-JPEG,由於JPEG相當於MPEG的幀內壓縮,因而沒有去除時域上的冗餘,所以在保證一定圖像質量的時候,壓縮比不高,通常只有10-30倍,但是它有一個固定的優點,就是延遲在40ms,實時性很好,所以在某些特殊應用的場合仍然可以看到它的蹤影。MPEG運動圖像編碼技術標準是由Motion Picture Experts Group在1988年提出,並於1992年11月通過,1993年8月作爲ISO/IEC 11172標準公佈,這就是通常所說的MPEG-1。MPEG-1爲了追求更高的壓縮效率,更注重去除圖像系列的時間冗餘度。因此引入了I幀(幀內編碼)、P幀(前向預測編碼)、B幀(雙向預測編碼)。P幀由前一個I幀或P幀圖像來預測,而B幀由前後的兩個P幀或一個I幀和一個P幀來預測,因而編解碼和幀的顯示順序有所不同.

在此有兩個問題需要說明:首先是插多少B 幀最合適?理論上說I、P之間插入的B幀越多,壓縮比越高,但是編解碼器所需的幀存儲器也越大,因此實際應用中一般最多兩個。其次,B幀的引入會增加編解碼端的延遲,如果追求網絡監視的時延,最好是不使用B幀。

MPEG-1標準的一個成功應用範例是小型激光視盤(VCD)。由於它的壓縮比相對於M- JPEG大爲提高,因而在數字監控系統中得到廣泛的應用。但是並不是最適合數字監控系統的應用,主要表現在碼率固定,代價是引起圖像質量的抖動,而數字監控系統最需要的不是恆定碼率,而是恆定質量。同時MPEG-1本身的技術限制,其壓縮比也沒有達到用戶滿意的程度。而2000年提出的MPEG-4不僅是一個非常開放的標準,而且增加了許多新的工具,以達到降低某些應用或圖像場景中要求的圖像質量所需的比特率。值得注意的是雖然大部分用來降低比特率的工具是爲非實時應用開發的,無法使用到數字監控系統中,但是相對MPEG-1,由於使用半像素和1/4像素圖像匹配、幀內預測、高級運動矢量預測等新的技術,因而採用MPEG-4的壓縮標準之後,在PAL CIF 25fps情況下,大部分情況下碼率在300k-500k的MPEG-4壓縮圖像質量超過1.25Mbit的MPEG-1圖像,因而在數字監控系統中得到最廣泛和成功的應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章