HM中AMP模式的快速算法

從HM4.0開始,有AMP模式的快速算法的標籤:

#define AMP_ENC_SPEEDUP                                   1 ///< encoder only speed-up by AMP mode skipping
#if AMP_ENC_SPEEDUP
#define AMP_MRG                                           1 ///< encoder only force merge for AMP partition (no motion search for AMP)
#endif

關於AMP的快速算法的兩個標籤AMP_ENC_SPEEDUPAMP_MRG默認均是打開的。

先講開關AMP_ENC_SPEEDUP
AMP_ENC_SPEEDUP快速模式不打開,則直接編碼四種AMP模式:

xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );

AMP_ENC_SPEEDUP快速模式打開,則用函數TEncCu::deriveTestModeAMP 產生編碼相應的AMP模式的條件,滿足條件時才調用xCheckRDCostInter。具體如下[1]:
這裏寫圖片描述
若bTestAMP_Hor爲真,則需要判斷SIZE_2NxnU、SIZE_2NxnD兩種模式;若bTestAMP_Ver爲真,則需要判斷SIZE_nLx2N、SIZE_nRx2N兩種模式。
開關AMP_MRG用於決定哪些情況需要嘗試merge模式的AMP劃分,變量變成了bTestMergeAMP_Hor和bTestMergeAMP_Ver。

參考文獻:
[1] 浙江大學博士論文《HEVC低複雜度編碼優化算法研究》,2013,沈曉琳

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章