T264中記憶體的使用

2021-04-01 09:59:56 字數 1841 閱讀 9036

t264中記憶體的使用

lipku@pku..**

t264_open()

中分配所有記憶體。這裡著重解釋一下參考幀序列的記憶體分配。其**段如下:

uint8_t* p = t264_malloc(t->edged_width * t->edged_height + (t->edged_width * t->edged_height >> 1), cache_size);

t->refn[i].y[0] = p + edged_height * t->edged_width + edged_width;

t->refn[i].u = p + t->edged_width * t->edged_height + (t->edged_width * edged_height >> 2) + (edged_width >> 1);

t->refn[i].v = p + t->edged_width * t->edged_height + (t->edged_width * t->edged_height >> 2) + (t->edged_width * edged_height >> 2) + (edged_width >> 1);

t->refn[i].mb = t264_malloc(t->mb_height * t->mb_width * sizeof(t264_mb_context_t), cache_size);

其記憶體布局如圖所示,在每乙個參考幀的周圍有一圈邊界記憶體。u,

v跟在

y[0]

後面,大小為

y[0]

的1/4

。這裡分配了

para->ref_num + 1個參考幀記憶體,比ref_num多分配的一幀用來儲存當前幀的重建幀資料。t->refn[1:ref_num - 1]是參考幀序列。t->refn[0]是重建幀。

資料結構:

t->cur

指向當前原始幀。

t->rec

指向當前重建幀。

t->refn[1:ref_num - 1]指向參考幀序列。

t->refn[0]跟t->rec一樣指向當前重建幀。

其中refn[i].poc

表示參考幀在影象序列中的位置(該參考幀由序列中哪個重建幀產生的)。當

poc=-

1時表示該塊記憶體無效(不能用作參考幀)。

t->ref[0][0:n-1]

指向有效的參考幀(前向參考)。

t->ref[1][0:n-1]

指向有效的參考幀(後向參考)。

各種幀指標的倒換過程:

其記憶體布局如圖所示,在每乙個參考幀的周圍有一圈邊界記憶體。u,

v跟在

y[0]

後面,大小為

y[0]

的1/4

。這裡分配了

para->ref_num + 1個參考幀記憶體,比ref_num多分配的一幀用來儲存當前幀的重建幀資料。t->refn[1:ref_num - 1]是參考幀序列。t->refn[0]是重建幀。

資料結構:

t->cur

指向當前原始幀。

t->rec

指向當前重建幀。

t->refn[1:ref_num - 1]指向參考幀序列。

t->refn[0]跟t->rec一樣指向當前重建幀。

其中refn[i].poc

表示參考幀在影象序列中的位置(該參考幀由序列中哪個重建幀產生的)。當

poc=-

1時表示該塊記憶體無效(不能用作參考幀)。

t->ref[0][0:n-1]

指向有效的參考幀(前向參考)。

t->ref[1][0:n-1]

指向有效的參考幀(後向參考)。

各種幀指標的倒換過程:

T巨集的使用

他的作用是讓你的程式支援unicode編碼,因為windows使用兩種字符集ansi和unicode,前者就是通常使用的單位元組方式,但這種方式處理像中文這樣的雙位元組字元不方便,容易出現半個漢字的情況。而後者是雙位元組方式,方便處理雙位元組字元。windows nt的所有與字元有關的函式都提供兩種...

x264RC中的Macroblock Tree分析

2009 12 11 18 59 macroblock tree是乙個基於macroblock的qp控制方法。mb tree針對的是每個mb進行處理。工作過程簡單來說,是對於每個mb,向前 一定數量的幀 該數量由rc lookahead和keyint的較小值 決定 中該mb被參考的情況,根據引用次數...

H 264 中的相關問題

幀內解碼時,在解碼端,首先通過當前巨集塊左邊 上邊已經解碼完成的巨集塊使用當前巨集塊的 模式 模式計算過程請參見我的 h.264 本群原創資料 目錄中 得到當前巨集塊的畫素 值。然後通過對碼流進行解碼得到當前巨集塊的畫素殘差。最後將殘差和 值加在一起就得到重構的畫素值。如果當前巨集塊的左邊或者右邊的...