B幀

B幀法(B frame)是雙向預測的幀間壓縮算法。當把一幀壓縮成B幀時,它根據相鄰的前一幀、本幀以及後一幀數據的不同點來壓縮本幀,也即僅記錄本幀與前後幀的差值。只有採用B幀壓縮才能達到200:1的高壓縮。一般地,I幀壓縮效率最低,P幀較高,B幀最高。

B幀的模式

B 幀在 MPEG-4 中有四種參考模式,如果是同時參考前後的畫面壓縮,則記錄的是 和 (前畫面 pixel 值+後畫面 pixel 值)/2 的差值,也就是 和 「前後畫面的平均」的差值。所以記錄的差值個數和 P 幀一樣,只有一個,沒有增加。

而因為 B 幀位於前後畫面的中間,以「前後畫面的平均」,也就是「前後畫面的中間值」來作為預測數值(預測 B 幀的 pixel 數值為多少?如果有誤差,再記錄差值),這樣這個預測數值會比單獨使用前一個畫面來預測,更接近真正的 B 幀的數值,可想而知,如此所需要記錄的差值就會很小甚至可以根本不用記錄,所以便可以省下很多的 bits,提高壓縮率。

例如 亮度變化 -> 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 的形式,所以畫面上的藍線就是「一長一短、一長一短」這樣排列。

關鍵幀和過渡幀的聯繫與區別

1、兩個關鍵幀的中間可以沒有過渡幀(如逐幀動畫),但過渡幀前後肯定有關鍵幀,因為過渡幀附屬於關鍵幀;

2、關鍵幀可以修改該幀的內容,但過渡幀無法修改該幀內容。

3、關鍵幀中可以包含形狀、剪輯、組等多種類型的元素或諸多元素,但過渡幀中對象只能是剪輯(影片剪輯、圖形剪輯、按鈕)或獨立形狀。

背景

I圖像(幀)是靠儘可能去除圖像空間冗餘信息來壓縮傳輸數據量的幀內編碼圖像; P圖像(幀)是通過充分降低於圖像序列中前面已編碼幀的時間冗餘信息來壓縮傳輸數據量的編碼圖像,也叫預測幀; B圖像(幀)是既考慮與源圖像序列前面已編碼幀,也顧及源圖像序列後面已編碼幀之間的時間冗餘信息來壓縮傳輸數據量的編碼圖像,也叫雙向預測幀;一般地,I幀壓縮效率最低,P幀較高,B幀最高。

相關詞條

相關搜尋

熱門詞條

聯絡我們