I 幀,B幀,P幀,IDR幀的區別

2021-07-28 05:54:15 字數 2003 閱讀 2278

i幀:幀內編碼幀

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 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

idrp b…

由於idr 幀禁止後面的幀向自己前面的幀參照,所以這回那個藍色的p 幀就不會參照綠色的p 幀了。

**: 

I幀 B幀 p幀 IDR幀的區別

idr instantaneous decoding refresh 即時解碼重新整理。i幀 幀內編碼幀幀。i和idr幀都是使用幀內 的。它們都是同乙個東西而已,在編碼和解碼中為了方便,要首個i幀和其他i幀區別開,所以才把第乙個首個i幀叫idr,這樣就方便控制編碼和解碼流程。idr幀的作用是立刻重新...

idr幀 i幀 p幀 H264中I幀與IDR幀區別

h264中i幀與idr幀區別分類 i和idr幀都是使用幀內 的。它們都是同乙個東西而已,在編碼和解碼中為了方便,要首個i幀和其他i幀區別開,所以才把第乙個首個i幀叫idr,這樣就方便控制編碼和解碼流程。idr幀的作用是立刻重新整理,使錯誤不致傳播,從idr幀開始,重新算乙個新的序列開始編碼。而i幀不...

什麼是I幀,P幀,B幀

i幀表示關鍵幀,你可以理解為這一幀畫面的完整保留 解碼時只需要本幀資料就可以完成 因為包含完整畫面 p幀表示的是這一幀跟之前的乙個關鍵幀 或p幀 的差別,解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。也就是差別幀,p幀沒有完整畫面資料,只有與前一幀的畫面差別的資料 b幀是雙向差別幀,...