1 表層函數
deriveClassification
:計算每個4x4亮度像素的分類;
deriveStatsForFiltering
:計算ALF中slice級和CTU級的協方差;
deriveStatsForCcAlfFiltering
:計算CCALF中slice級和CTU級的協方差(代碼中並非在表層);
alfEncoder
:slice級,通過協方差處理和RDO得到各通道最佳係數值和嵌位值,作爲APS的候選;
alfEncoderCtb
:CTU級,每個CTU通過RDO決定採用何種濾波器,獲得CTU級濾波開關和濾波種類選擇;
alfReconstructor
:進行ALF得到濾波後的圖像;
deriveCcAlfFilter
:slice級,計算出最佳CCALF係數,作爲APS的候選;
xSetupCcAlfAPS
:slice級,載入APS參數信息;
applyCcAlfFilter
:進行CCALF得到濾波後的圖像。
2 內層重要函數
getBlkStats
:CTU級,計算協方差;
getFrameStats
:slice級,計算slice級的協方差;
getUnfilteredDistortion
:計算未進行ALF的代價;
getFilterCoeffAndCost
:計算ALF濾波係數並得到進行ALF的代價;
deriveCtbAlfEnableFlags
:CTU級,決定CTU是否開啓ALF並得到此CTU最優代價;
reconstructCoeffAPSs
:slice級,將當前ALF係數存進APS中
reconstructCoeff
:將當前係數存進候選ALF係數中
deriveStatsForCcAlfFiltering
:計算CCALF中slice級和CTU級的協方差;
deriveCcAlfFilterCoeff
:計算CCALF濾波係數;
computeLog2BlockSizeDistortion
:計算CCALF進行前或進行後的代價
determineControlIdcValues
:CTU級,決定CTU是否開啓CCALF;
3 一些關鍵函數
setEnableFlag
:slice級,設置當前通道是否可用ALF
setCtuEnableFlag
:CTU級,設置當前CTU是否可用ALF
setCtuAlternativeChroma
:CTU級,設置當前色度通道使用的ALF濾波器種類;
m_filter7x7Blk
:即filterBlk<ALF_FILTER_7>
,進行亮度ALF濾波;
m_filter5x5Blk
:即filterBlk<ALF_FILTER_5>
,進行色度ALF濾波;
m_filterCcAlfCb
:即filterBlkCcAlf<CC_ALF_Cb>
,進行Cb分量的CCALF濾波;
m_filterCcAlfCr
:即filterBlkCcAlf<CC_ALF_Cr>
,進行Cr分量的CCALF濾波。