decompressCtu函数对coding_tree_unit函数解码得到的数据进行解析恢复,根据解码得到的运动参数恢复ctu的重建像素reco信息。
入口参数cs是picture的cs,其中包括了一帧内所有ctu的所有信息。
函数获取ctu区域内的所有cu,判断这些cu的预测模式是intra还是inter,然后分别进行帧内和帧间的像素重建。
函数流程与VTM1中基本没有差别,当然,其中需要解析恢复的各种模式肯定是增多了。
void DecCu::decompressCtu( CodingStructure& cs, const UnitArea& ctuArea )
{
const int maxNumChannelType = cs.pcv->chrFormat != CHROMA_400 && CS::isDualITree( cs ) ? 2 : 1;
//DualITree时maxNumChannelType=2,即I帧且亮度色度双重树时,ctu对亮度域和色度域有两套划分树,有两套cu,所以分开处理
for( int ch = 0; ch < maxNumChannelType; ch++ ) //DualITree时亮度和色度分开处理;非DualITree时这个for循环只进行一次