談論 基本概念 zz

2021-09-30 08:42:36 字數 1676 閱讀 6298

9/20/2010 9:46:24 pm

引用

基本概念(zz)

注意,h264碼流的輸出順序是編碼順序,所以在編碼b幀的時候,由於b是雙向**,需要先編碼後面編碼幀p/i,這時候先輸出i/p,後面才有b幀,我們在解碼段拿到相應的i/p幀後,不能馬上丟到buffer list裡面,還需要等待後面的b幀,解碼b幀後再reorder.所以相應產生了兩個引數。poc,frame_num,這兩個元素在slice級輸出

poc,和frame_num的概念:

poc picture order count,是乙個

順序計數器,代表顯示順序,假如是場編碼,那麼分別要對兩場都有不同的值,比如對第一幀的兩場

top,bottom分別為0,1,所有的幀都包括在裡面,包括b幀也需要計數,比如序列

ipbpb,假如是幀編碼,那麼序號分別為0,4,2,8,6,

頂底兩場

分別為0,0,4,4,2,2,8,8,6,6實際上這個並不輸出到碼流裡面,假如是

場變碼那麼是0,1,4,5,2,3,8,9,6,7

frame_num ,是乙個順序計數器,代表幀的編碼順序,由於代表幀,計數器遞增基數為2,所以總是偶數,

比如序列

ipbpb如果是幀編碼,那麼0,2,4,6,如果是場編碼,那麼是0,0,2,2,4,4,4,4,6,6

第一幀i不管top,bottom,都是0,第二幀p,top,bottom都是2,第3幀b,4,第四p也是4,第五b是6

注意b幀不能算編碼幀,所以b slice中的frame_num只能等於後向參考幀的frame_num,注意當frame_num達到設定的最大值的時候,

frame_num,將重新歸0,

poc一般是分為兩部分,一部分為高位,一部分為低位,上面說的都是低位pic_order_cnt_lsb,

當pic_order_cnt_lsb達到最大值的時候,將向高位pic_order_cnt_msb進製,

高位加上低位才是該場的poc.

在jm中由幾個變數型別是int64,為什麼可能會有如此的大數,看函式set_ref_pic_num,由於poc是乙個一直遞增的數值。

有時候list緩衝裡面this_ref如果是幀編碼

enc_picture->top_ref_pic_num    [list_0][i] = this_ref->top_poc * 2;

enc_picture->bottom_ref_pic_num [list_0][i] = this_ref->bottom_poc * 2 + 1;

那麼top_poc將會等於bottom_poc,為了區分著兩個值,因此我們做了擴充套件,但是這可能導致溢位,所以定義成64位的大數

這些變數似乎是在去塊濾波裡面有用到,用來計算濾波強度。關於去塊濾波的問題,留著下次解決,需要先熟息標準,才能

看源**....h.264的知識面太寬了,越來越感到它的無邊了,作為壓縮效率最高,影象質量最好,當然當今最複雜的動態影象壓縮標準,

jvt工作組從開始著手準備,到現在通過iso/itu標準,也不過短短幾年時間.

我覺得一天兩天,乙個月兩個月拿下,那是不可能的事情,至今5個月了,我希望自己越來越接近目標,

5555555,同志啊,看到這位猛人都學了5個月,心裡平衡多了:)現在我也是剛學h.264不久,感覺什麼都不知道,謝謝這位仁兄提供這些基本概念,至少又懂乙個poc,frame_num了:)

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...

XSLT基本概念

我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet language xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。它們之間具體的關係我們會在下面講述。1.1 什麼是xslt...