H.266/VVC代碼學習44:ALF一些重要函數功能

1 表層函數

deriveClassification:計算每個4x4亮度像素的分類;
deriveStatsForFiltering:計算ALF中slice級和CTU級的協方差;
deriveStatsForCcAlfFiltering:計算CCALF中slice級和CTU級的協方差(代碼中並非在表層);
alfEncoderslice級,通過協方差處理和RDO得到各通道最佳係數值和嵌位值,作爲APS的候選;
alfEncoderCtbCTU級,每個CTU通過RDO決定採用何種濾波器,獲得CTU級濾波開關和濾波種類選擇;
alfReconstructor:進行ALF得到濾波後的圖像;

deriveCcAlfFilterslice級,計算出最佳CCALF係數,作爲APS的候選;
xSetupCcAlfAPSslice級,載入APS參數信息;
applyCcAlfFilter:進行CCALF得到濾波後的圖像。

2 內層重要函數

getBlkStatsCTU級,計算協方差;
getFrameStatsslice級,計算slice級的協方差;
getUnfilteredDistortion:計算未進行ALF的代價;
getFilterCoeffAndCost:計算ALF濾波係數並得到進行ALF的代價;
deriveCtbAlfEnableFlagsCTU級,決定CTU是否開啓ALF並得到此CTU最優代價;
reconstructCoeffAPSsslice級,將當前ALF係數存進APS中
reconstructCoeff:將當前係數存進候選ALF係數中

deriveStatsForCcAlfFiltering:計算CCALF中slice級和CTU級的協方差;
deriveCcAlfFilterCoeff:計算CCALF濾波係數;
computeLog2BlockSizeDistortion:計算CCALF進行前或進行後的代價
determineControlIdcValuesCTU級,決定CTU是否開啓CCALF;

3 一些關鍵函數

setEnableFlagslice級,設置當前通道是否可用ALF
setCtuEnableFlagCTU級,設置當前CTU是否可用ALF
setCtuAlternativeChromaCTU級,設置當前色度通道使用的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濾波。

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