VVC/JEM(三):VTM1代码阅读

VTM1版本中目前只加入了QTBTTT结构。

主线代码流程:

  1. int main(int argc, char* argv[])调用pcEncApp->encode();
  2. Void EncApp::encode()调用m_cEncLib.encode( bEos, flush ? 0 : &orgPic, flush ? 0 : &trueOrgPic, snrCSC, recBufList,   iNumEncoded );
  3. Void EncLib::encode()调用 m_cGOPEncoder.compressGOP( m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, false, false, snrCSC, m_printFrameMSE );
  4. Void EncGOP::compressGOP()调用m_pcSliceEncoder->compressSlice   ( pcPic, false, false );
    Void EncSlice::compressSlice()调用encodeCtus( pcPic, bCompressEntireSlice, bFastDeltaQP, startCtuTsAddr, boundingCtuTsAddr, m_pcLib );
    void EncSlice::encodeCtus()调用m_pcCuEncoder->compressCtu( cs, ctuArea, ctuRsAddr, prevQP, currQP );
  5. void EncCu::compressCtu()调用xCompressCU( tempCS, bestCS, *partitioner );
  6. void EncCu::xCompressCU()调用xCheckModeSplit( tempCS, bestCS, partitioner, currTestMode );

xCheckModeSplit( tempCS, bestCS, partitioner, currTestMode )为VTM  QTBTTT结构主要实现处。






你可能感兴趣的:(VVC,(H266))