i幀:幀內(nèi)編碼幀剧腻,i幀表示關(guān)鍵幀,它保留了一副畫面完整的數(shù)據(jù)信息涂屁,解碼的時(shí)候只需要這歸真數(shù)據(jù)就可以完成(因?yàn)閕幀里面包含了花面貍免得所有信息)书在。
i幀的特點(diǎn):
1:它是一個(gè)全幀壓縮編碼幀,它將全幀圖像信息進(jìn)行JPEG壓縮編碼以及傳輸拆又。
2:解碼的時(shí)候只需要通過i幀的數(shù)據(jù)就可以重構(gòu)完整的圖像儒旬。
3:i幀描述了圖像背景和運(yùn)動(dòng)主題的詳情
4:i幀不需要參考其他畫面二生成栏账。
5:i幀是p幀和b幀的參考幀,i真的畫面質(zhì)量直接影響到了后面參考i幀的p幀和b真的圖像質(zhì)量栈源。
6:i幀是基礎(chǔ)幀挡爵,每一組里面只會(huì)有一個(gè)i幀。
7:i幀不需要參考運(yùn)動(dòng)矢量甚垦。
8:i幀所占數(shù)據(jù)的信息比較大茶鹃。
p幀:前向預(yù)測(cè)編碼幀,p幀表示的是這一幀跟之前一個(gè)關(guān)鍵幀(或p幀)之間的差別艰亮。p幀解碼的時(shí)候需要用到前面緩存的畫面再爹加上這一陣的差別信息闭翩,生成完整的圖像信息。
p幀的預(yù)測(cè)與重構(gòu)迄埃。p幀是以i幀為參考幀疗韵,在i幀中找出"某點(diǎn)"的預(yù)測(cè)值和運(yùn)動(dòng)矢量。預(yù)測(cè)差別值和運(yùn)動(dòng)矢量一起傳輸调俘,在接收端根據(jù)運(yùn)動(dòng)矢量從i幀中找出來p幀"某點(diǎn)"的預(yù)測(cè)值并且與差值相疊加得到p幀"某點(diǎn)"的結(jié)果伶棒。從而得到一個(gè)完整的p幀。
p幀的特點(diǎn):
1:p幀是i幀后面相隔1~2幀的編碼幀彩库。
2:p幀采用運(yùn)動(dòng)補(bǔ)償?shù)姆椒▊魉退c前面的i幀或者p幀的差值以及運(yùn)動(dòng)矢量(預(yù)測(cè)誤差)肤无。
3:解碼的時(shí)候必須將i幀中的預(yù)測(cè)值與預(yù)測(cè)誤差求和之后才能重構(gòu)完整的p真圖像。
4:p幀屬于向前預(yù)測(cè)的幀間編碼骇钦,它只參考錢愛你最靠近它的i幀或者p幀宛渐。
5:p可以是后面的p真的參考幀,也可以是后面的b真的參考幀眯搭。
6:猶豫p幀是參考幀窥翩,它可能造成解碼錯(cuò)誤的擴(kuò)散。
7:p真的壓縮比例比較高鳞仙。
B幀:雙向預(yù)測(cè)內(nèi)插編碼幀寇蚊。B幀是雙向差別幀,也就是B幀記錄的是本幀與前后幀的差別(具體比較復(fù)雜棍好,有4種情況仗岸,但我這樣說簡(jiǎn)單些),換言之借笙,要解碼B幀扒怖,不僅要取得之前的緩存畫面,還要解碼之后的畫面业稼,通過前后畫面的與本幀數(shù)據(jù)的疊加取得最終的畫面盗痒。B幀壓縮率高,但是解碼時(shí)CPU會(huì)比較累低散。
B幀的預(yù)測(cè)與重構(gòu)
B幀以前面的I或P幀和后面的P幀為參考幀,“找出”B幀“某點(diǎn)”的預(yù)測(cè)值和兩個(gè)運(yùn)動(dòng)矢量,并取預(yù)測(cè)差值和運(yùn)動(dòng)矢量傳送俯邓。接收端根據(jù)運(yùn)動(dòng)矢量在兩個(gè)參考幀中“找出(算出)”預(yù)測(cè)值并與差值求和,得到B幀“某點(diǎn)”樣值,從而可得到完整的B幀骡楼。
B幀特點(diǎn)
1.B幀是由前面的I或P幀和后面的P幀來進(jìn)行預(yù)測(cè)的;
2.B幀傳送的是它與前面的I或P幀和后面的P幀之間的預(yù)測(cè)誤差及運(yùn)動(dòng)矢量;
3.B幀是雙向預(yù)測(cè)編碼幀;
4.B幀壓縮比最高,因?yàn)樗环从潮麉⒖紟g運(yùn)動(dòng)主體的變化情況,預(yù)測(cè)比較準(zhǔn)確;
5.B幀不是參考幀,不會(huì)造成解碼錯(cuò)誤的擴(kuò)散。
注:I看成、B君编、P各幀是根據(jù)壓縮算法的需要,是人為定義的,它們都是實(shí)實(shí)在在的物理幀川慌。一般來說吃嘿,I幀的壓縮率是7(跟JPG差不多),P幀是20梦重,B幀可以達(dá)到50兑燥。可見使用B幀能節(jié)省大量空間琴拧,節(jié)省出來的空間可以用來保存多一些I幀屈溉,這樣在相同碼率下垒手,可以提供更好的畫質(zhì)。