Skip to content
Snippets Groups Projects
EncAppCfg.cpp 358 KiB
Newer Older
  • Learn to ignore specific revisions
  • #if GDR_ENABLED
      msg(DETAILS, "GDREnabled                             : %d\n", m_gdrEnabled);
    
      if (m_gdrEnabled)
      {
        msg(DETAILS, "GDR Start                              : %d\n", m_gdrPocStart);
        msg(DETAILS, "GDR Interval                           : %d\n", m_gdrInterval);
        msg(DETAILS, "GDR Period                             : %d\n", m_gdrPeriod);
      }
    #endif
    
    
      msg( DETAILS, "Max Num Merge Candidates               : %d\n", m_maxNumMergeCand );
    
      msg( DETAILS, "Max Num Affine Merge Candidates        : %d\n", m_maxNumAffineMergeCand );
    
      msg( DETAILS, "Max Num Geo Merge Candidates           : %d\n", m_maxNumGeoCand );
    
    Yan Zhang's avatar
    Yan Zhang committed
      msg( DETAILS, "Max Num IBC Merge Candidates           : %d\n", m_maxNumIBCMergeCand );
    
    Frank Bossen's avatar
    Frank Bossen committed
      msg(VERBOSE, "IBD:%d ",
          ((m_internalBitDepth[CHANNEL_TYPE_LUMA] > m_msbExtendedBitDepth[CHANNEL_TYPE_LUMA])
           || (m_internalBitDepth[CHANNEL_TYPE_CHROMA] > m_msbExtendedBitDepth[CHANNEL_TYPE_CHROMA])));
    
      msg( VERBOSE, "HAD:%d ", m_bUseHADME                          );
      msg( VERBOSE, "RDQ:%d ", m_useRDOQ                            );
      msg( VERBOSE, "RDQTS:%d ", m_useRDOQTS                        );
      msg( VERBOSE, "RDpenalty:%d ", m_rdPenalty                    );
    #if SHARP_LUMA_DELTA_QP
      msg( VERBOSE, "LQP:%d ", m_lumaLevelToDeltaQPMapping.mode     );
    #endif
      msg( VERBOSE, "SQP:%d ", m_uiDeltaQpRD                        );
      msg( VERBOSE, "ASR:%d ", m_bUseASR                            );
      msg( VERBOSE, "MinSearchWindow:%d ", m_minSearchWindow        );
      msg( VERBOSE, "RestrictMESampling:%d ", m_bRestrictMESampling );
      msg( VERBOSE, "FEN:%d ", int(m_fastInterSearchMode)           );
      msg( VERBOSE, "ECU:%d ", m_bUseEarlyCU                        );
      msg( VERBOSE, "FDM:%d ", m_useFastDecisionForMerge            );
      msg( VERBOSE, "ESD:%d ", m_useEarlySkipDetection              );
      msg( VERBOSE, "TransformSkip:%d ",     m_useTransformSkip     );
      msg( VERBOSE, "TransformSkipFast:%d ", m_useTransformSkipFast );
      msg( VERBOSE, "TransformSkipLog2MaxSize:%d ", m_log2MaxTransformSkipBlockSize);
    
      msg(VERBOSE, "ChromaTS:%d ", m_useChromaTS);
    
      msg( VERBOSE, "BDPCM:%d ", m_useBDPCM                         );
    
      msg( VERBOSE, "Tiles: %dx%d ", m_numTileCols, m_numTileRows );
      msg( VERBOSE, "Slices: %d ", m_numSlicesInPic);
    
      msg( VERBOSE, "MCTS:%d ", m_MCTSEncConstraint );
    
      msg( VERBOSE, "SAO:%d ", (m_bUseSAO)?(1):(0));
      msg( VERBOSE, "ALF:%d ", m_alf ? 1 : 0 );
    
      msg( VERBOSE, "CCALF:%d ", m_ccalf ? 1 : 0 );
    
      msg(VERBOSE, "MaxNumALFAPS %d ", m_maxNumAlfAps);
      msg(VERBOSE, "AlfapsIDShift %d ", m_alfapsIDShift);
    
      msg(VERBOSE, "ConstantJointCbCrSignFlag", m_constantJointCbCrSignFlag);
    
      msg( VERBOSE, "WPP:%d ", (int)m_useWeightedPred);
      msg( VERBOSE, "WPB:%d ", (int)m_useWeightedBiPred);
    
      msg( VERBOSE, "PME:%d ", m_log2ParallelMergeLevel);
    
    Frank Bossen's avatar
    Frank Bossen committed
      const int wavefrontSubstreams =
        m_entropyCodingSyncEnabledFlag ? (m_sourceHeight + m_maxCuHeight - 1) / m_maxCuHeight : 1;
      msg(VERBOSE, " WaveFrontSynchro:%d WaveFrontSubstreams:%d", m_entropyCodingSyncEnabledFlag ? 1 : 0,
          wavefrontSubstreams);
    
      msg( VERBOSE, " ScalingList:%d ", m_useScalingListId );
    
      msg( VERBOSE, "TMVPMode:%d ", m_TMVPModeId );
    
      msg( VERBOSE, " DQ:%d ", m_depQuantEnabledFlag);
      msg( VERBOSE, " SignBitHidingFlag:%d ", m_signDataHidingEnabledFlag);
      msg( VERBOSE, "RecalQP:%d ", m_recalculateQPAccordingToLambda ? 1 : 0 );
    
      {
    
        msg( VERBOSE, "\nTOOL CFG: " );
    
        msg( VERBOSE, "LFNST:%d ", m_LFNST );
    
    Seungsoo Jeong's avatar
    Seungsoo Jeong committed
        msg( VERBOSE, "MMVD:%d ", m_MMVD);
    
        msg( VERBOSE, "Affine:%d ", m_Affine );
        if ( m_Affine )
        {
          msg( VERBOSE, "AffineType:%d ", m_AffineType );
    
          msg( VERBOSE, "AdaptBypassAffineMe:%d ", m_adaptBypassAffineMe);
    
        msg(VERBOSE, "SbTMVP:%d ", m_sbTmvpEnableFlag);
    
    Karsten Suehring's avatar
    Karsten Suehring committed
        msg( VERBOSE, "DualITree:%d ", m_dualTree );
    
        msg( VERBOSE, "BIO:%d ", m_BIO );
    
        msg( VERBOSE, "HorCollocatedChroma:%d ", m_horCollocatedChromaFlag );
        msg( VERBOSE, "VerCollocatedChroma:%d ", m_verCollocatedChromaFlag );
    
    
        {
          std::string s;
          const int   m = m_mtsMode + 4 * m_mtsImplicitIntra;
          if (m != 0)
          {
            s = "(";
            s += (m & 1) != 0 ? "explicit intra" : "implicit intra";
            if (m & 2)
            {
              s += ", explicit inter";
            }
            s += ")";
          }
          msg(VERBOSE, "MTS:%d%s ", m != 0, s.c_str());
        }
    
        msg( VERBOSE, "SBT:%d ", m_SBT );
    
        msg( VERBOSE, "ISP:%d ", m_ISP );
    
        msg( VERBOSE, "SMVD:%d ", m_SMVD );
    
    Tung Nguyen's avatar
    Tung Nguyen committed
        msg( VERBOSE, "CompositeLTReference:%d ", m_compositeRefEnabled);
    
        msg( VERBOSE, "Bcw:%d ", m_bcw );
        msg( VERBOSE, "BcwFast:%d ", m_BcwFast );
    
        msg(VERBOSE, "CIIP:%d ", m_ciip);
    
        msg( VERBOSE, "Geo:%d ", m_Geo );
    
    Seungsoo Jeong's avatar
    Seungsoo Jeong committed
        m_allowDisFracMMVD = m_MMVD ? m_allowDisFracMMVD : false;
        if ( m_MMVD )
          msg(VERBOSE, "AllowDisFracMMVD:%d ", m_allowDisFracMMVD);
    
        msg( VERBOSE, "AffineAmvr:%d ", m_AffineAmvr );
    
        m_AffineAmvrEncOpt = m_AffineAmvr ? m_AffineAmvrEncOpt : false;
        msg( VERBOSE, "AffineAmvrEncOpt:%d ", m_AffineAmvrEncOpt );
    
        msg(VERBOSE, "AffineAmvp:%d ", m_AffineAmvp);
    
        msg(VERBOSE, "DMVR:%d ", m_DMVR);
    
        msg(VERBOSE, "MmvdDisNum:%d ", m_MmvdDisNum);
    
        msg(VERBOSE, "JointCbCr:%d ", m_JointCbCrMode);
    
      m_useColorTrans = (m_chromaFormatIDC == CHROMA_444) ? m_useColorTrans : 0u;
    
      msg(VERBOSE, "ACT:%d ", m_useColorTrans);
    
    Yu Han's avatar
    Yu Han committed
        msg(VERBOSE, "IBC:%d ", m_IBCMode);
    
      msg( VERBOSE, "HashME:%d ", m_HashME );
    
      msg( VERBOSE, "WrapAround:%d ", m_wrapAround);
      if( m_wrapAround )
    
    Philippe Hanhart's avatar
    Philippe Hanhart committed
      {
    
        msg( VERBOSE, "WrapAroundOffset:%d ", m_wrapAroundOffset );
    
    Philippe Hanhart's avatar
    Philippe Hanhart committed
      }
    
      // ADD_NEW_TOOL (add some output indicating the usage of tools)
    
      msg( VERBOSE, "VirtualBoundariesEnabledFlag:%d ", m_virtualBoundariesEnabledFlag );
      msg( VERBOSE, "VirtualBoundariesPresentInSPSFlag:%d ", m_virtualBoundariesPresentFlag );
      if( m_virtualBoundariesPresentFlag )
      {
    
        msg(VERBOSE, "vertical virtual boundaries:[");
        for (unsigned i = 0; i < m_numVerVirtualBoundaries; i++)
        {
          msg(VERBOSE, " %d", m_virtualBoundariesPosX[i]);
        }
        msg(VERBOSE, " ] horizontal virtual boundaries:[");
        for (unsigned i = 0; i < m_numHorVirtualBoundaries; i++)
        {
          msg(VERBOSE, " %d", m_virtualBoundariesPosY[i]);
        }
        msg(VERBOSE, " ] ");
      }
    
        msg(VERBOSE, "Reshape:%d ", m_lmcsEnabled);
        if (m_lmcsEnabled)
    
          msg(VERBOSE, "(Signal:%s ", m_reshapeSignalType == 0 ? "SDR" : (m_reshapeSignalType == 2 ? "HDR-HLG" : "HDR-PQ"));
          msg(VERBOSE, "Opt:%d", m_adpOption);
          if (m_adpOption > 0) { msg(VERBOSE, " CW:%d", m_initialCW); }
    
          msg(VERBOSE, " CSoffset:%d", m_CSoffset);
    
    Taoran Lu's avatar
    Taoran Lu committed
          msg(VERBOSE, ") ");
        }
    
        msg(VERBOSE, "MRL:%d ", m_MRL);
    
        msg(VERBOSE, "MIP:%d ", m_MIP);
    
    Nan Hu's avatar
    Nan Hu committed
        msg(VERBOSE, "EncDbOpt:%d ", m_encDbOpt);
    
      msg( VERBOSE, "LCTUFast:%d ", m_useFastLCTU );
    
      msg( VERBOSE, "FastMrg:%d ", m_useFastMrg );
      msg( VERBOSE, "PBIntraFast:%d ", m_usePbIntraFast );
    
      if( m_ImvMode ) msg( VERBOSE, "IMV4PelFast:%d ", m_Imv4PelFast );
    
      if (m_mtsMode)
      {
        msg(VERBOSE, "MTSMaxCand: %1d(intra) %1d(inter) ", m_MTSIntraMaxCand, m_MTSInterMaxCand);
      }
    
      if( m_ISP ) msg( VERBOSE, "ISPFast:%d ", m_useFastISP );
    
      if( m_LFNST ) msg( VERBOSE, "FastLFNST:%d ", m_useFastLFNST );
    
    Karsten Suehring's avatar
    Karsten Suehring committed
      msg( VERBOSE, "AMaxBT:%d ", m_useAMaxBT );
      msg( VERBOSE, "E0023FastEnc:%d ", m_e0023FastEnc );
      msg( VERBOSE, "ContentBasedFastQtbt:%d ", m_contentBasedFastQtbt );
    
      msg( VERBOSE, "UseNonLinearAlfLuma:%d ", m_useNonLinearAlfLuma );
      msg( VERBOSE, "UseNonLinearAlfChroma:%d ", m_useNonLinearAlfChroma );
      msg( VERBOSE, "MaxNumAlfAlternativesChroma:%d ", m_maxNumAlfAlternativesChroma );
    
      if( m_MIP ) msg(VERBOSE, "FastMIP:%d ", m_useFastMIP);
    
      msg( VERBOSE, "TTFastSkip:%d ", m_ttFastSkip);
      msg( VERBOSE, "TTFastSkipThr:%.3f ", m_ttFastSkipThr);
    
      msg( VERBOSE, "FastLocalDualTree:%d ", m_fastLocalDualTreeMode );
    
        msg( VERBOSE, "RPR:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor, m_scalingRatioVer, m_switchPocPeriod );
    
    #if JVET_AB0080
        if (m_gopBasedRPREnabledFlag)
        {
          msg(VERBOSE, "RPR2:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor2, m_scalingRatioVer2, m_switchPocPeriod);
          msg(VERBOSE, "RPR3:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor3, m_scalingRatioVer3, m_switchPocPeriod);
        }
    #endif
    
      if (m_rplOfDepLayerInSh)
      {
        msg(VERBOSE, "RPLofDepLayerInSH:%d ", m_rplOfDepLayerInSh);
      }
    
      msg(VERBOSE, "TemporalFilter:%d/%d ", m_gopBasedTemporalFilterPastRefs, m_gopBasedTemporalFilterFutureRefs);
    
      msg(VERBOSE, "SEI CTI:%d ", m_ctiSEIEnabled);
    
      msg(VERBOSE, "BIM:%d ", m_bimEnabled);
    
      msg(VERBOSE, "SEI FGC:%d ", m_fgcSEIEnabled);
    
    
      msg(VERBOSE, "SEI processing Order:%d ", m_poSEIEnabled);
    
    
    #if EXTENSION_360_VIDEO
      m_ext360.outputConfigurationSummary();
    #endif
    
    
      if( m_constrainedRaslEncoding )
      {
        msg(VERBOSE, "\n\nWarning: with SEIConstrainedRASL enabled, LMChroma estimation is skipped in RASL frames" );
    
        if( m_wrapAround )
        {
          msg(VERBOSE,   "\n         and wrap-around motion compensation is disabled in RASL frames" );
        }
    
    Frank Bossen's avatar
    Frank Bossen committed
      for (unsigned int i = 0; i < m_gopSize; i++)
    
    #if GREEN_METADATA_SEI_ENABLED
    
    bool EncAppCfg::getGMFAUsage() {
      return m_GMFA;
    }
    
    std::string EncAppCfg::getGMFAFile (){
      return m_GMFAFile;
    }
    
    #endif
    
    
    Frank Bossen's avatar
    Frank Bossen committed
      for (unsigned int i = 0; i < m_gopSize; i++)
    
      {
        for ( unsigned int j = 0; j < m_GOPList[i].m_numRefPics0; j++)
        {
          if ( m_GOPList[i].m_deltaRefPics0[j] < 0 )
          {
            return true;
          }
        }
        for ( unsigned int j = 0; j < m_GOPList[i].m_numRefPics1; j++)
        {
          if ( m_GOPList[i].m_deltaRefPics1[j] < 0 )
          {
            return true;
          }
        }
      }
      return false;
    }
    
    
    
    bool confirmPara(bool bflag, const char* message)
    {
      if (!bflag)
      {
        return false;
      }
    
      msg( ERROR, "Error: %s\n",message);
      return true;
    }