IBP幀的介紹

2021-08-01 13:50:08 字數 2415 閱讀 8939

幀——就是影像動畫中最小單位的單幅影像畫面,相當於電影膠片上的每一格鏡頭。而在實際壓縮時,會採取各種

演算法減少資料的容量,其中 ipb 就是最常見的。

1、基本概念經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。i 幀可以看成是乙個影象經過壓縮後的產物。

p frame:前

向**編碼幀 又稱 predictive-frame,通過充分降低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量

的編碼影象,也叫**幀;

b frame:雙向**內插編碼幀 又稱 bi-directional interpolated prediction frame,既考慮與源影象序列前面已編碼幀,

也顧及源影象序列後面已編碼幀之間的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫雙向**幀;

dts:decode time stamp。dts 主要是標識讀入記憶體中的bit流在什麼時候開始送入解碼器中進行解碼。

ps

:在沒有 b 幀存在的情況下 dts 的順序和 pts 的順序應該是一樣的。

2、i、b、p 的特點

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 和 p 的解碼演算法比較簡單,資源占用也比較少,i 只要自己完成就行了,p 呢,也

以不管後面的資料,邊讀邊解碼,線性前進,大家很舒服。

但網路上的電影很多都採用了 b 幀,因為 b 幀記錄的是前後幀的差別,比 p 幀能節約更多的空間,但這樣一來,

檔案小了,解碼器就麻煩了,因為在解碼時,不僅要用之前快取的畫面,還要知道下乙個 i 或者 p 的畫面(也就是

說要預讀預解碼),而且,b 幀不能簡單地丟掉,因為 b 幀其實也包含了畫面資訊,如果簡單丟掉,並用之前的畫

面簡單重複,就會造成畫面卡(其實就是丟幀了),並且由於網路上的電影為了節約空間,往往使用相當多的 b 幀,

一般平均來說,i 的壓縮率是 7(跟 jpg 差不多),p 是 20,b 可以達到 50,可見使用 b 幀能節省大量空間,節

省出來的空間可以用來儲存多一些 i 幀,這樣在相同位元速率下,可以提供更好的畫質。

位元速率 幀率和I B P幀

位元速率 幀率和i b p幀 位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的...

位元速率 幀率和I B P幀

位元速率 幀率和i b p幀 位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的...

位元速率 幀率和I B P幀

每秒的幀數 fps 或者說幀率表示圖形處理器場景時每秒鐘能夠更新幾次。高的幀率可以得到更流暢 更逼真的動畫。一般來說30fps就是可以接受的,但是將效能提公升至60fps則可以明顯提公升互動感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提公升了。如果幀率超過螢幕重新整理率只會...