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滤波。