JM8.6中encode_one_macroblock函數的運作流程

來源:互聯網
上載者:User
JM8.6中encode_one_macroblock函數的運作流程[宏塊代價函數的使用或幀間幀內模式選擇流程]

 

在JM中最重要, 最核心的一個函數就是encode_one_macroblock, 這個函數是整個編碼器的核心, 其實, 通過讀源碼,可以發現, encode_one_macroblock中的大部分工作是在進行模式的選擇, 下面我們跟著代碼走一下, 看看具體的流程: (我們假設幀間幀內同時都允許)

 

1. 幀間三種幀間宏塊級模式( 16×16, 16×8,8×16) 迴圈, 進行擇優


同時將min_cost初始化為最大值, 將best_mode初始化為1(16x16)

1.1. 對三種模式下的每一個塊進行計算最佳代價

16*16 分割方式只需要計算一次,16*8 和8*16 分割方式需要計算兩次

1.1.1 運動搜尋

在函數PartitionMotionSearch中對模式mode進行運動搜尋, 在搜尋中利用MV_COST計算搜尋代價, 得到該模式下的最優代價儲存在motion_cost中及最佳MV儲存在 img->all_mv中.

其中也包含對非RDO 方式下P 幀SKIP 模式的擇優

1.1.2 參考幀擇優

在計算時利用代價函數REF _COST得到參考幀代價, 並且加上對應模式下對應參考幀的搜尋代價, 總起來作為代價進行參考幀的選擇(在利用REF_COST時根據是否是RDO進行區分,如果使用的是RDO方式, 則選擇該方式下的最優參考幀.

另外對於B幀的情況要考慮後向參考和雙向參考的情況.

對於P幀的情況,也就是前向參考的情況

只將前向參考代價加入到cost中, cost是以整個宏塊的所有代價和

1.2 根據一整個宏塊的代價選擇出最優的代價

 

2. 幀間亞宏塊模式( P8x8 模式:8x8,8x4,4x8,4x4)迴圈,進行擇優


對於一個整宏塊是分為4個8x8塊, 然後每個8x8塊進行P8x8模式的選擇

進行P8x8選擇時, 先初始化min_cost8x8(非RDO)為最大, min_rdcost(RDO)為最大

2. 1 運動搜尋,


與宏塊級類似

代價函數用MV _ COST (包含對非RDO 方式下P 幀SKIP 模式的擇優) ;

step2. 2 參考幀擇優, 代價函數用 REF _COST ;

step2. 3 塊模式擇優, 代價函數用 MODE _COST ;

step2. 4 對於非RDO 方式,將step2. 3 的擇優結果與step1 中的最佳大模式進行比較決策,選出最優

模式。

step3 所有模式擇優

step3. 1 RDO 方式下,對三種幀間大塊模式、 最佳P8 模式、 兩種幀內預測模式以及SKIP、 DIRECT

模式進行RDO 模式代價MODE _ COST 的比較擇優:

step3. 1. 1 四種色度塊幀內預測模式迴圈;

step3. 1. 2 設定運動預測和參考幀模式;

step3. 1. 3 計算七種模式的 RDO 模式代價MODE_ COST ,進行比較決策。

step3. 2 非RDO 方式下,將step2 的擇優結果與DIRECT 模式、 幀內預測模式進行比較擇優:

step3. 2. 1 獲得DIRECT 模式下的代價MODE_ COST ,進行比較擇優;

step3. 2. 2 進行4×4 和16×16 的幀內預測, 用MODE_ COST 對預測模式擇優。

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.