I幀、P幀和B幀的特點


I幀、P幀和B幀的特點
 

I幀:幀內編碼幀

I幀(I frame) 又稱為內部畫面 (intra picture),I 幀通常是每個 GOP(MPEG 所使用的一種視頻壓縮技術)的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。在MPEG編碼的過程中,部分視頻幀序列壓縮成為I幀;部分壓縮成P幀;還有部分壓縮成B幀。I幀法是幀內壓縮法,也稱為“關鍵幀”壓縮法。I幀法是基於離散余弦變換DCT(Discrete Cosine Transform)的壓縮技術,這種算法與JPEG壓縮算法類似。采用I幀壓縮可達到1/6的壓縮比而無明顯的壓縮痕跡。

I幀特點: 1.它是一個全幀壓縮編碼幀。它將全幀圖像信息進行JPEG壓縮編碼及傳輸; 2.解碼時僅用I幀的數據就可重構完整圖像; 3.I幀描述了圖像背景和運動主體的詳情; 4.I幀不需要參考其他畫面而生成; 5.I幀是P幀和B幀的參考幀(其質量直接影響到同組中以后各幀的質量); 6.I幀是幀組GOP的基礎幀(第一幀),在一組中只有一個I幀; 7.I幀不需要考慮運動矢量; 8.I幀所占數據的信息量比較大。
P幀:前向預測編碼幀。 P幀的預測與重構:P幀是以I幀為參考幀,在I幀中找出P幀“某點”的預測值和運動矢量,取預測差值和運動矢量一起傳送。在接收端根據運動矢量從I幀中找出P幀“某點”的預測值並與差值相加以得到P幀“某點”樣值,從而可得到完整的P幀。 P幀特點: 1.P幀是I幀后面相隔1~2幀的編碼幀; 2.P幀采用運動補償的方法傳送它與前面的I或P幀的差值及運動矢量(預測誤差); 3.解碼時必須將I幀中的預測值與預測誤差求和后才能重構完整的P幀圖像; 4.P幀屬於前向預測的幀間編碼。它只參考前面最靠近它的I幀或P幀; 5.P幀可以是其后面P幀的參考幀,也可以是其前后的B幀的參考幀; 6.由於P幀是參考幀,它可能造成解碼錯誤的擴散; 7.由於是差值傳送,P幀的壓縮比較高。
B幀:雙向預測內插編碼幀。 B幀的預測與重構 B幀以前面的I或P幀和后面的P幀為參考幀,“找出”B幀“某點”的預測值和兩個運動矢量,並取預測差值和運動矢量傳送。接收端根據運動矢量在兩個參考幀中“找出(算出)”預測值並與差值求和,得到B幀“某點”樣值,從而可得到完整的B幀。 B幀特點 1.B幀是由前面的I或P幀和后面的P幀來進行預測的; 2.B幀傳送的是它與前面的I或P幀和后面的P幀之間的預測誤差及運動矢量; 3.B幀是雙向預測編碼幀; 4.B幀壓縮比最高,因為它只反映丙參考幀間運動主體的變化情況,預測比較准確; 5.B幀不是參考幀,不會造成解碼錯誤的擴散。

注:I、B、P各幀是根據壓縮算法的需要,是人為定義的,它們都是實實在在的物理幀,至於圖像中的哪一幀是I幀,是隨機的,一但確定了I幀,以后的各幀就嚴格按規定順序排列。

 

例如 亮度變化 ->I B P 7 8 9 如果 B 只參考前一個畫面壓縮,則需記錄差值 1。如果以 (I + P)/2 壓縮,則差值為 0,不需記錄差值。(雖然要記錄兩個矢量,不過矢量也可以再做進一步預測壓縮,總的來說,還是會比單獨參考前一個畫面壓縮來得小很多)如果畫面不是這樣變 化怎么辦?通常來講畫面都會是這樣變化,如果不是這樣變化我們就不使用 B 幀 就算變化不是如此規則,換個方式想,B 幀可以參考的畫面還是比 P 幀多,再怎么找,也還是 B 幀可以找到誤差更小的方塊來使用的機率大(因為可以選擇、參考的對象較多),所以 B 幀還是比 P 幀的壓縮率來得高。(而且高很多,差距非常大)

除了壓縮率以外,B 幀對畫質的影響.....是有的,因為 B 幀這種參考前后畫面的特性,等於有內插(interpolation)的效果,所以可以減少噪訊。MPEG-4 中的 B 幀,也是非常具有威力的,除了以前的三種參考模式,還有 Direct Mode,連矢量的紀錄都省了。雖然 MPEG-4 之中有 4MV 的功能,可以記錄四個矢量,不過編碼器在壓縮的時候會判斷,到底是使用 4MV 壓出來的結果小,還是使用傳統的方法壓出來的結果小?如果使用傳統的方法壓出來的結果小,便使用傳統的方法記錄,如果使用 4MV 壓出來的結果小,才使用 4MV 來記錄。(ps. 4MV 不會用在 backward 預測)您可以觀察 VirtualDub 壓縮時畫面上顯示的藍線,您會發現藍線和藍線之間通常會有很短的藍線插在中間,造成空隙,而且差距很大,這個就是夾在 P 之間的 B 在發揮壓縮威力如果是用 DivX 5 更明顯,因為 DivX 5 只能夠使用 IBPBPBPB... 這種一個 B 接一個 P 的形式,所以畫面上的藍線就是「一長一短、一長一短」這樣排列。

I 幀與IDR幀的區別

舉個例子,在一段視頻中, 存在以下幀:I P B P B P B B P I P B… 如果這段視頻應用了多重參照幀,那么藍色的P 幀在參照他前面的I 幀(紅色)的同時,還可能會參 照I 幀之前的P 幀(綠色),由於I 幀前后的場景可能會有很大的反差甚至根本不同,所以此時P 幀參考I 幀之前的幀不但會沒有意義,反而會造成很多問題。 所以一種新型的幀被引入,那就是IDR 幀。如果這段視頻應用了多重參考幀的同時采用了IDR 幀,那 么幀的順序就會變成這樣:I P B P B P B B P IDR P B… 由於IDR 幀禁止后面的幀向自己前面的幀參照,所以這回那個藍色的P 幀就不會參照綠色的P 幀了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM