在h264中影象以序列為單位進行組織,乙個序列是一段影象編碼後的資料流,以i幀開始,到下乙個i幀結束。
乙個序列的第乙個影象叫做 idr 影象(立即重新整理影象),idr 影象都是 i 幀影象。h.264 引入 idr 影象是為了解碼的重同步,當解碼器解碼到 idr 影象時,立即將參考幀佇列清空,將已解碼的資料全部輸出或拋棄,重新查詢引數集,開始乙個新的序列。這樣,如果前乙個序列出現重大錯誤,在這裡可以獲得重新同步的機會。idr影象之後的影象永遠不會使用idr之前的影象的資料來解碼。
乙個序列就是一段內容差異不太大的影象編碼後生成的一串資料流。當運動變化比較少時,乙個序列可以很長,因為運動變化少就代表影象畫面的內容變動很小,所以就可以編乙個i幀,然後一直p幀、b幀了。當運動變化多時,可能乙個序列就比較短了,比如就包含乙個i幀和3、4個p幀。
i幀:幀內編碼幀 ,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幀)的差別,解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。(也就是差別幀,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幀記錄的是本幀與前後幀的差別(具體比較複雜,有4種情況,但我這樣說簡單些),換言之,要解碼b幀,不僅要取得之前的快取畫面,還要解碼之後的畫面,通過前後畫面的與本幀資料的疊加取得最終的畫面。b幀壓縮率高,但是解碼時cpu會比較累。
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幀和B幀的特點
i幀 幀內編碼幀 i幀特點 1.它是乙個全幀壓縮編碼幀。它將全幀影象資訊進行jpeg壓縮編碼及傳輸 2.解碼時僅用i幀的資料就可重構完整影象 3.i幀描述了影象背景和運動主體的詳情 4.i幀不需要參考其他畫面而生成 5.i幀是p幀和b幀的參考幀 其質量直接影響到同組中以後各幀的質量 6.i幀是幀組g...
I幀 P幀和B幀的特點
i幀 幀內編碼幀 i幀特點 1.它是乙個全幀壓縮編碼幀。它將全幀影象資訊進行jpeg壓縮編碼及傳輸 2.解碼時僅用i幀的資料就可重構完整影象 3.i幀描述了影象背景和運動主體的詳情 4.i幀不需要參考其他畫面而生成 5.i幀是p幀和b幀的參考幀 其質量直接影響到同組中以後各幀的質量 6.i幀是幀組g...
I幀 P幀和B幀的特點
2009 12 12 20 52 50 分類 預設分類 標籤 字型大小 大中小訂閱 i幀 幀內編碼幀 i幀特點 1.它是乙個全幀壓縮編碼幀。它將全幀影象資訊進行jpeg壓縮編碼及傳輸 2.解碼時僅用i幀的資料就可重構完整影象 3.i幀描述了影象背景和運動主體的詳情 4.i幀不需要參考其他畫面而生成 ...