TAVS2.2中的m_puhInteDir變量分析

m_puhInterDir

m_puhInterDir表示的是當前的Inter CU的參考方向,可分爲:
單向(INTER_FORWARD,INTER_BACKWARD, INTER_UNI)
雙向(INTER_DUAL, INTER_BID, INTER_SYM)
調用: getInterDir(Idx)
設置: setInterDirSubParts()

m_puhInterDir定義在LibCommon中,在LibEncoder和LibDecoder中使用:

  • LibEncoder中,由於編碼端CTU的具體劃分方式不定,無法一整個CTU共用一個m_puhInterDir指針。因此,每個CU會存放一個m_puhInterDir指針 ,而且在TAVS中,沒有PU和TU概念了(還保存有PU相關的變量代碼接口,如PU_idx等),因此每個CU的PU_idx恆等於0,在對m_puhInterDir進行賦值的時候,setInterDirSubParts函數中的uiAbsPartIdx參數始終爲0(主要在predInterSearch、predffineInterSearch、predSkipSearch、predHmvpSearch函數中被調用)。
  • LibDecoder中,CTU的劃分方式可以確定下來,因此整個CTU使用一個m_puhInterDir指針。此時調用setInterDirSubParts()時的參數uiAbsPartIdx不再恆等於零,而是當前CU左上角4x4塊在當前CTU內的Z-order索引(在decodeInterDirRD、decodePredInfo函數中被調用)。uiAbsPartIdx參數則在xDecodeCU函數中被修改並循環調用xDecodeCU
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章