Ignore:
Timestamp:
13 Jul 2013, 15:51:26 (11 years ago)
Author:
tech
Message:

Update to HM 11.0.

Location:
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.cpp

    r534 r537  
    7979  m_aidQP = NULL;
    8080#endif
    81 #if J0149_TONE_MAPPING_SEI
    8281  m_startOfCodedInterval = NULL;
    8382  m_codedPivotValue = NULL;
    8483  m_targetPivotValue = NULL;
    85 #endif
    8684}
    8785
     
    108106  }
    109107#endif
    110 #if J0149_TONE_MAPPING_SEI
    111108  if ( m_startOfCodedInterval )
    112109  {
     
    124121    m_targetPivotValue = NULL;
    125122  }
    126 #endif
    127123#if !H_MV
    128124  free(m_pchInputFile);
     
    316312}
    317313
    318 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    319 Void readBoolString(const string inpString, const Int numEntries, Bool* &memberArray, const char *elementName);
    320 Void readIntString(const string inpString, const Int numEntries, Int* &memberArray, const char *elementName);
    321 #endif
    322314// ====================================================================================================================
    323315// Public member functions
     
    352344  string cfg_RowHeight;
    353345  string cfg_ScalingListFile;
    354 #if J0149_TONE_MAPPING_SEI
    355346  string cfg_startOfCodedInterval;
    356347  string cfg_codedPivotValue;
    357348  string cfg_targetPivotValue;
    358 #endif
    359 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    360   string cfg_bitRateInfoPresentFlag;
    361   string cfg_picRateInfoPresentFlag;
    362   string cfg_avgBitRate;
    363   string cfg_maxBitRate;
    364   string cfg_avgPicRate;
    365   string cfg_constantPicRateIdc;
    366 #endif
    367349  po::Options opts;
    368350  opts.addOptions()
     
    440422  ("Tier",    m_levelTier, Level::MAIN,   "Tier to use for interpretation of --Level")
    441423
    442 #if L0046_CONSTRAINT_FLAGS
    443424  ("ProgressiveSource", m_progressiveSourceFlag, false, "Indicate that source is progressive")
    444425  ("InterlacedSource",  m_interlacedSourceFlag,  false, "Indicate that source is interlaced")
    445426  ("NonPackedSource",   m_nonPackedConstraintFlag, false, "Indicate that source does not contain frame packing")
    446427  ("FrameOnly",         m_frameOnlyConstraintFlag, false, "Indicate that the bitstream contains only frames")
    447 #endif
    448428 
    449429  // Unit definition parameters
     
    465445  ("DecodingRefreshType,-dr", m_iDecodingRefreshType,       0, "Intra refresh type (0:none 1:CRA 2:IDR)")
    466446  ("GOPSize,g",               m_iGOPSize,                   1, "GOP size of temporal structure")
    467 #if !L0034_COMBINED_LIST_CLEANUP
    468   ("ListCombination,-lc",     m_bUseLComb,               true, "Combined reference list for uni-prediction estimation in B-slices")
    469 #endif
    470447  // motion options
    471448  ("FastSearch",              m_iFastSearch,                1, "0:Full search  1:Diamond  2:PMVFAST")
     
    507484  ("RDOQ",                          m_useRDOQ,                  true )
    508485  ("RDOQTS",                        m_useRDOQTS,                true )
    509 #if L0232_RD_PENALTY
    510486  ("RDpenalty",                     m_rdPenalty,                0,  "RD-penalty for 32x32 TU for intra in non-intra slices. 0:disbaled  1:RD-penalty  2:maximum RD-penalty")
    511 #endif
    512487  // Entropy coding parameters
    513488  ("SBACRD",                         m_bUseSBACRD,                      true, "SBAC based RD estimation")
     
    523498  ("LoopFilterTcOffset_div2",        m_loopFilterTcOffsetDiv2,             0 )
    524499  ("DeblockingFilterControlPresent", m_DeblockingFilterControlPresent, false )
    525 #if L0386_DB_METRIC
    526500  ("DeblockingFilterMetric",         m_DeblockingFilterMetric,         false )
    527 #endif
    528501
    529502#if H_3D_ARP
     
    598571  ( "RateControl",         m_RCEnableRateControl,   false, "Rate control: enable rate control" )
    599572  ( "TargetBitrate",       m_RCTargetBitrate,           0, "Rate control: target bitrate" )
     573#if M0036_RC_IMPROVEMENT
     574  ( "KeepHierarchicalBit", m_RCKeepHierarchicalBit,     0, "Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation" )
     575#else
    600576  ( "KeepHierarchicalBit", m_RCKeepHierarchicalBit, false, "Rate control: keep hierarchical bit allocation in rate control algorithm" )
     577#endif
    601578  ( "LCULevelRateControl", m_RCLCULevelRC,           true, "Rate control: true: LCU level RC; false: picture level RC" )
    602579  ( "RCLCUSeparateModel",  m_RCUseLCUSeparateModel,  true, "Rate control: use LCU level separate R-lambda model" )
     
    650627  ("SEIBufferingPeriod",             m_bufferingPeriodSEIEnabled,              0, "Control generation of buffering period SEI messages")
    651628  ("SEIPictureTiming",               m_pictureTimingSEIEnabled,                0, "Control generation of picture timing SEI messages")
    652 #if J0149_TONE_MAPPING_SEI
    653629  ("SEIToneMappingInfo",                       m_toneMappingInfoSEIEnabled,    false, "Control generation of Tone Mapping SEI messages")
    654630  ("SEIToneMapId",                             m_toneMapId,                        0, "Specifies Id of Tone Mapping SEI message for a given session")
     
    681657  ("SEIToneMapNominalWhiteLevelLumaCodeValue",        m_nominalWhiteLevelLumaCodeValue,         235, "Specifies luma sample value of the nominal white level assigned decoded pictures")
    682658  ("SEIToneMapExtendedWhiteLevelLumaCodeValue",       m_extendedWhiteLevelLumaCodeValue,        300, "Specifies luma sample value of the extended dynamic range assigned decoded pictures")
    683 #endif
    684659  ("SEIFramePacking",                m_framePackingSEIEnabled,                 0, "Control generation of frame packing SEI messages")
    685660  ("SEIFramePackingType",            m_framePackingSEIType,                    0, "Define frame packing arrangement\n"
     
    702677  ("SEIGradualDecodingRefreshInfo",  m_gradualDecodingRefreshInfoEnabled,      0, "Control generation of gradual decoding refresh information SEI message")
    703678  ("SEIDecodingUnitInfo",             m_decodingUnitInfoSEIEnabled,                       0, "Control generation of decoding unit information SEI message.")
    704 #if L0208_SOP_DESCRIPTION_SEI
    705679  ("SEISOPDescription",              m_SOPDescriptionSEIEnabled,              0, "Control generation of SOP description SEI messages")
    706 #endif
    707 #if K0180_SCALABLE_NESTING_SEI
    708680  ("SEIScalableNesting",             m_scalableNestingSEIEnabled,              0, "Control generation of scalable nesting SEI messages")
    709 #endif
    710 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    711   ("BitRatePicRateMaxTLayers",   m_bitRatePicRateMaxTLayers,           0, "Maximum number of sub-layers signalled; can be inferred otherwise; here for easy parsing of config. file")
    712   ("BitRateInfoPresent",         cfg_bitRateInfoPresentFlag,          string(""), "Control signalling of bit rate information of avg. bit rate and max. bit rate in VPS\n"
    713                                                                           "\t0: Do not sent bit rate info\n"
    714                                                                           "\tN (N > 0): Send bit rate info for N sub-layers. N should equal maxTempLayers.")                                                                     
    715   ("PicRateInfoPresent",         cfg_picRateInfoPresentFlag,          string(""), "Control signalling of picture rate information of avg. bit rate and max. bit rate in VPS\n"
    716                                                                           "\t0: Do not sent picture rate info\n"
    717                                                                           "\tN (N > 0): Send picture rate info for N sub-layers. N should equal maxTempLayers.")                                                                     
    718   ("AvgBitRate",                   cfg_avgBitRate,                    string(""), "List of avg. bit rates for the different sub-layers; include non-negative number even if corresponding flag is 0")
    719   ("MaxBitRate",                   cfg_maxBitRate,                    string(""), "List of max. bit rates for the different sub-layers; include non-negative number even if corresponding flag is 0")
    720   ("AvgPicRate",                   cfg_avgPicRate,                    string(""), "List of avg. picture rates for the different sub-layers; include non-negative number even if corresponding flag is 0")
    721   ("ConstantPicRateIdc",           cfg_constantPicRateIdc,            string(""), "List of constant picture rate IDCs; include non-negative number even if corresponding flag is 0")
    722 #endif
    723681#if H_3D
    724682  ("CameraParameterFile,cpf", m_pchCameraParameterFile,    (Char *) 0, "Camera Parameter File Name")
     
    759717#endif //H_3D
    760718  ;
    761  
    762 #if H_MV
     719  #if H_MV
    763720  // parse coding structure
    764721  for( Int k = 0; k < MAX_NUM_LAYERS; k++ )
     
    898855  free ( pRowHeight   );
    899856#endif
    900 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    901   readBoolString(cfg_bitRateInfoPresentFlag, m_bitRatePicRateMaxTLayers, m_bitRateInfoPresentFlag, "bit rate info. present flag" );
    902   readIntString (cfg_avgBitRate,             m_bitRatePicRateMaxTLayers, m_avgBitRate,             "avg. bit rate"               );
    903   readIntString (cfg_maxBitRate,             m_bitRatePicRateMaxTLayers, m_maxBitRate,             "max. bit rate"               );
    904   readBoolString(cfg_picRateInfoPresentFlag, m_bitRatePicRateMaxTLayers, m_picRateInfoPresentFlag, "bit rate info. present flag" );
    905   readIntString (cfg_avgPicRate,             m_bitRatePicRateMaxTLayers, m_avgPicRate,             "avg. pic rate"               );
    906   readIntString (cfg_constantPicRateIdc,     m_bitRatePicRateMaxTLayers, m_constantPicRateIdc,     "constant pic rate Idc"       );
    907 #endif
    908857  m_scalingListFile = cfg_ScalingListFile.empty() ? NULL : strdup(cfg_ScalingListFile.c_str());
    909858 
     
    10711020  m_iWaveFrontSubstreams = m_iWaveFrontSynchro ? (m_iSourceHeight + m_uiMaxCUHeight - 1) / m_uiMaxCUHeight : 1;
    10721021
    1073 #if J0149_TONE_MAPPING_SEI
    10741022  if( m_toneMappingInfoSEIEnabled && !m_toneMapCancelFlag )
    10751023  {
     
    11301078    }
    11311079  }
    1132 #endif
    11331080#if H_3D
    11341081  // set global varibles
     
    12331180  return true;
    12341181}
    1235 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    1236 Void readBoolString(const string inpString, const Int numEntries, Bool* &memberArray, const char *elementName)
    1237 {
    1238   Char* inpArray = inpString.empty() ? NULL : strdup(inpString.c_str());
    1239   Int i = 0;
    1240   if(numEntries)
    1241   {
    1242     Char* tempArray = strtok(inpArray, " ,-");
    1243     memberArray = new Bool[numEntries];
    1244     while( tempArray != NULL )
    1245     {
    1246       if( i >= numEntries )
    1247       {
    1248         printf( "The number of %s defined is larger than the allowed number\n", elementName );
    1249         exit( EXIT_FAILURE );
    1250       }
    1251       assert( (atoi(tempArray) == 0) || (atoi(tempArray) == 1) );
    1252       *( memberArray + i ) = atoi(tempArray);
    1253       tempArray = strtok(NULL, " ,-");
    1254       i++;
    1255     }
    1256     if( i < numEntries )
    1257     {
    1258       printf( "Some %s are not defined\n", elementName );
    1259       exit( EXIT_FAILURE );
    1260     }
    1261   }
    1262   else
    1263   {
    1264     memberArray = NULL;
    1265   }
    1266 }
    1267 
    1268 Void readIntString(const string inpString, const Int numEntries, Int* &memberArray, const char *elementName)
    1269 {
    1270   Char* inpArray = inpString.empty() ? NULL : strdup(inpString.c_str());
    1271   Int i = 0;
    1272   if(numEntries)
    1273   {
    1274     Char* tempArray = strtok(inpArray, " ,-");
    1275     memberArray = new Int[numEntries];
    1276     while( tempArray != NULL )
    1277     {
    1278       if( i >= numEntries )
    1279       {
    1280         printf( "The number of %s defined is larger than the allowed number\n", elementName );
    1281         exit( EXIT_FAILURE );
    1282       }
    1283       *( memberArray + i ) = atoi(tempArray);
    1284       tempArray = strtok(NULL, " ,-");
    1285       i++;
    1286     }
    1287     if( i < numEntries )
    1288     {
    1289       printf( "Some %s are not defined\n", elementName );
    1290       exit( EXIT_FAILURE );
    1291     }
    1292   }
    1293   else
    1294   {
    1295     memberArray = NULL;
    1296   }
    1297 }
    1298 #endif
    12991182// ====================================================================================================================
    13001183// Private member functions
     
    13121195    fprintf(stderr, "**          decoder requires this option to be enabled.         **\n");
    13131196    fprintf(stderr, "******************************************************************\n");
     1197  }
     1198  if( m_profile==Profile::NONE )
     1199  {
     1200    fprintf(stderr, "***************************************************************************\n");
     1201    fprintf(stderr, "** WARNING: For conforming bitstreams a valid Profile value must be set! **\n");
     1202    fprintf(stderr, "***************************************************************************\n");
     1203  }
     1204  if( m_level==Level::NONE )
     1205  {
     1206    fprintf(stderr, "***************************************************************************\n");
     1207    fprintf(stderr, "** WARNING: For conforming bitstreams a valid Level value must be set!   **\n");
     1208    fprintf(stderr, "***************************************************************************\n");
    13141209  }
    13151210
     
    14701365  xConfirmPara( m_iQP <  -6 * (m_internalBitDepthY - 8) || m_iQP > 51,                    "QP exceeds supported range (-QpBDOffsety to 51)" );
    14711366#endif
    1472   xConfirmPara( m_loopFilterBetaOffsetDiv2 < -13 || m_loopFilterBetaOffsetDiv2 > 13,          "Loop Filter Beta Offset div. 2 exceeds supported range (-13 to 13)");
    1473   xConfirmPara( m_loopFilterTcOffsetDiv2 < -13 || m_loopFilterTcOffsetDiv2 > 13,              "Loop Filter Tc Offset div. 2 exceeds supported range (-13 to 13)");
     1367  xConfirmPara( m_loopFilterBetaOffsetDiv2 < -6 || m_loopFilterBetaOffsetDiv2 > 6,          "Loop Filter Beta Offset div. 2 exceeds supported range (-6 to 6)");
     1368  xConfirmPara( m_loopFilterTcOffsetDiv2 < -6 || m_loopFilterTcOffsetDiv2 > 6,              "Loop Filter Tc Offset div. 2 exceeds supported range (-6 to 6)");
    14741369  xConfirmPara( m_iFastSearch < 0 || m_iFastSearch > 2,                                     "Fast Search Mode is not supported value (0:Full search  1:Diamond  2:PMVFAST)" );
    14751370  xConfirmPara( m_iSearchRange < 0 ,                                                        "Search Range must be more than 0" );
     
    15151410  xConfirmPara( ( 0 != m_uiUseAdvResPred ) &&  ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." );
    15161411#endif
    1517 
    15181412#if ADAPTIVE_QP_SELECTION
    15191413#if H_MV
     
    19991893  {
    20001894    m_numReorderPics[i] = 0;
    2001 #if L0323_DPB
    20021895    m_maxDecPicBuffering[i] = 1;
    2003 #else
    2004     m_maxDecPicBuffering[i] = 0;
    2005 #endif
    20061896  }
    20071897  for(Int i=0; i<m_iGOPSize; i++)
    20081898  {
    2009 #if L0323_DPB
    20101899    if(m_GOPList[i].m_numRefPics+1 > m_maxDecPicBuffering[m_GOPList[i].m_temporalId])
    2011 #else
    2012     if(m_GOPList[i].m_numRefPics > m_maxDecPicBuffering[m_GOPList[i].m_temporalId])
    2013 #endif
    2014     {
    2015 #if L0323_DPB
     1900    {
    20161901      m_maxDecPicBuffering[m_GOPList[i].m_temporalId] = m_GOPList[i].m_numRefPics + 1;
    2017 #else
    2018       m_maxDecPicBuffering[m_GOPList[i].m_temporalId] = m_GOPList[i].m_numRefPics;
    2019 #endif
    20201902    }
    20211903    Int highestDecodingNumberWithLowerPOC = 0;
     
    20481930      m_numReorderPics[i+1] = m_numReorderPics[i];
    20491931    }
    2050 #if L0323_DPB
    20511932    // the value of num_reorder_pics[ i ] shall be in the range of 0 to max_dec_pic_buffering[ i ] - 1, inclusive
    20521933    if(m_numReorderPics[i] > m_maxDecPicBuffering[i] - 1)
     
    20541935      m_maxDecPicBuffering[i] = m_numReorderPics[i] + 1;
    20551936    }
    2056 #else
    2057     // the value of num_reorder_pics[ i ] shall be in the range of 0 to max_dec_pic_buffering[ i ], inclusive
    2058     if(m_numReorderPics[i] > m_maxDecPicBuffering[i])
    2059     {
    2060       m_maxDecPicBuffering[i] = m_numReorderPics[i];
    2061     }
    2062 #endif
    20631937    // a lower layer can not have higher value of m_uiMaxDecPicBuffering than a higher layer
    20641938    if(m_maxDecPicBuffering[i+1] < m_maxDecPicBuffering[i])
     
    20691943
    20701944
    2071 #if L0323_DPB
    20721945  // the value of num_reorder_pics[ i ] shall be in the range of 0 to max_dec_pic_buffering[ i ] -  1, inclusive
    20731946  if(m_numReorderPics[MAX_TLAYER-1] > m_maxDecPicBuffering[MAX_TLAYER-1] - 1)
     
    20751948    m_maxDecPicBuffering[MAX_TLAYER-1] = m_numReorderPics[MAX_TLAYER-1] + 1;
    20761949  }
    2077 #else
    2078   // the value of num_reorder_pics[ i ] shall be in the range of 0 to max_dec_pic_buffering[ i ], inclusive
    2079   if(m_numReorderPics[MAX_TLAYER-1] > m_maxDecPicBuffering[MAX_TLAYER-1])
    2080   {
    2081     m_maxDecPicBuffering[MAX_TLAYER-1] = m_numReorderPics[MAX_TLAYER-1];
    2082   }
    2083 #endif
    20841950
    20851951  if(m_vuiParametersPresentFlag && m_bitstreamRestrictionFlag)
     
    21562022    }
    21572023  }
    2158 #if !L0034_COMBINED_LIST_CLEANUP
    2159   xConfirmPara( m_bUseLComb==false && m_numReorderPics[MAX_TLAYER-1]!=0, "ListCombination can only be 0 in low delay coding (more precisely when L0 and L1 are identical)" );  // Note however this is not the full necessary condition as ref_pic_list_combination_flag can only be 0 if L0 == L1.
    2160 #endif
    21612024  xConfirmPara( m_iWaveFrontSynchro < 0, "WaveFrontSynchro cannot be negative" );
    21622025  xConfirmPara( m_iWaveFrontSubstreams <= 0, "WaveFrontSubstreams must be positive" );
     
    21652028  xConfirmPara( m_decodedPictureHashSEIEnabled<0 || m_decodedPictureHashSEIEnabled>3, "this hash type is not correct!\n");
    21662029
    2167 #if J0149_TONE_MAPPING_SEI
    21682030  if (m_toneMappingInfoSEIEnabled)
    21692031  {
     
    21762038    xConfirmPara( m_extendedWhiteLevelLumaCodeValue < m_nominalWhiteLevelLumaCodeValue, "SEIToneMapExtendedWhiteLevelLumaCodeValue shall be greater than or equal to SEIToneMapNominalWhiteLevelLumaCodeValue");
    21772039  }
    2178 #endif
    21792040
    21802041#if RATE_CONTROL_LAMBDA_DOMAIN
     
    22082069
    22092070  xConfirmPara(m_log2ParallelMergeLevel < 2, "Log2ParallelMergeLevel should be larger than or equal to 2");
    2210 #if L0444_FPA_TYPE
    22112071  if (m_framePackingSEIEnabled)
    22122072  {
    22132073    xConfirmPara(m_framePackingSEIType < 3 || m_framePackingSEIType > 5 , "SEIFramePackingType must be in rage 3 to 5");
    22142074  }
    2215 #endif
    2216 #if H_MV
    2217   }
    2218   }
    2219 #endif
    2220 
     2075
     2076#if H_MV
     2077  }
     2078  }
     2079#endif
    22212080#undef xConfirmPara
    22222081  if (check_failed)
     
    23562215  printf("RDQ:%d ", m_useRDOQ            );
    23572216  printf("RDQTS:%d ", m_useRDOQTS        );
    2358 #if L0232_RD_PENALTY
    23592217  printf("RDpenalty:%d ", m_rdPenalty  );
    2360 #endif
    23612218  printf("SQP:%d ", m_uiDeltaQpRD         );
    23622219  printf("ASR:%d ", m_bUseASR             );
    2363 #if !L0034_COMBINED_LIST_CLEANUP
    2364   printf("LComb:%d ", m_bUseLComb         );
    2365 #endif
    23662220  printf("FEN:%d ", m_bUseFastEnc         );
    23672221  printf("ECU:%d ", m_bUseEarlyCU         );
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.h

    r534 r537  
    137137  Level::Tier   m_levelTier;
    138138  Level::Name   m_level;
    139 #if L0046_CONSTRAINT_FLAGS
    140139  Bool m_progressiveSourceFlag;
    141140  Bool m_interlacedSourceFlag;
    142141  Bool m_nonPackedConstraintFlag;
    143142  Bool m_frameOnlyConstraintFlag;
    144 #endif
    145143 
    146144  // coding structure
     
    157155  GOPEntry  m_GOPList[MAX_GOP];                               ///< the coding structure entries from the config file
    158156  Int       m_numReorderPics[MAX_TLAYER];                     ///< total number of reorder pictures
    159 #if L0323_DPB
    160157  Int       m_maxDecPicBuffering[MAX_TLAYER];                 ///< total number of pictures in the decoded picture buffer
    161 #else
    162   Int       m_maxDecPicBuffering[MAX_TLAYER];                 ///< total number of reference pictures needed for decoding
    163 #endif
    164 #endif
    165 #if !L0034_COMBINED_LIST_CLEANUP
    166   Bool      m_bUseLComb;                                      ///< flag for using combined reference list for uni-prediction in B-slices (JCTVC-D421)
    167 #endif
     158  #endif
    168159  Bool      m_useTransformSkip;                               ///< flag for enabling intra transform skipping
    169160  Bool      m_useTransformSkipFast;                           ///< flag for enabling fast intra transform skipping
     
    246237  Int       m_loopFilterTcOffsetDiv2;                       ///< tc offset for deblocking filter
    247238  Bool      m_DeblockingFilterControlPresent;                 ///< deblocking filter control present flag in PPS
    248 #if L0386_DB_METRIC
    249239  Bool      m_DeblockingFilterMetric;                         ///< blockiness metric in encoder
    250 #endif
    251240 
    252241  // coding tools (PCM)
     
    262251  Bool      m_useRDOQ;                                       ///< flag for using RD optimized quantization
    263252  Bool      m_useRDOQTS;                                     ///< flag for using RD optimized quantization for transform skip
    264 #if L0232_RD_PENALTY
    265253  Int      m_rdPenalty;                                      ///< RD-penalty for 32x32 TU for intra in non-intra slices (0: no RD-penalty, 1: RD-penalty, 2: maximum RD-penalty)
    266 #endif
    267254  Int       m_iFastSearch;                                    ///< ME mode, 0 = full, 1 = diamond, 2 = PMVFAST
    268255  Int       m_iSearchRange;                                   ///< ME search range
     
    298285  Int       m_bufferingPeriodSEIEnabled;
    299286  Int       m_pictureTimingSEIEnabled;
    300 #if J0149_TONE_MAPPING_SEI
    301287  Bool      m_toneMappingInfoSEIEnabled;
    302288  Int       m_toneMapId;
     
    324310  Int*      m_codedPivotValue;
    325311  Int*      m_targetPivotValue;
    326 #endif
    327312  Int       m_framePackingSEIEnabled;
    328313  Int       m_framePackingSEIType;
     
    334319  Int       m_gradualDecodingRefreshInfoEnabled;
    335320  Int       m_decodingUnitInfoSEIEnabled;
    336 #if L0208_SOP_DESCRIPTION_SEI
    337321  Int       m_SOPDescriptionSEIEnabled;
    338 #endif
    339 #if K0180_SCALABLE_NESTING_SEI
    340322  Int       m_scalableNestingSEIEnabled;
    341 #endif
    342323  // weighted prediction
    343324  Bool      m_useWeightedPred;                    ///< Use of weighted prediction in P slices
     
    352333  Bool      m_RCEnableRateControl;                ///< enable rate control or not
    353334  Int       m_RCTargetBitrate;                    ///< target bitrate when rate control is enabled
     335#if M0036_RC_IMPROVEMENT
     336  Int       m_RCKeepHierarchicalBit;              ///< 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation
     337#else
    354338  Bool      m_RCKeepHierarchicalBit;              ///< whether keeping hierarchical bit allocation structure or not
     339#endif
    355340  Bool      m_RCLCULevelRC;                       ///< true: LCU level rate control; false: picture level rate control
    356341  Bool      m_RCUseLCUSeparateModel;              ///< use separate R-lambda model at LCU level
     
    459444    }
    460445
    461 
    462446    for( ; rpcVector.size() > m_numberOfLayers; )
    463447    {     
    464448      rpcVector.pop_back( );     
    465449    }
    466 
    467450  }
    468451
     
    490473  Void xPrintVectorElem( Bool   elem ) { printf(" %d"   , ( elem ? 1 : 0 ));};
    491474#endif
    492 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    493   Int       m_bitRatePicRateMaxTLayers;                       ///< Indicates max. number of sub-layers for which bit rate is signalled.
    494   Bool*     m_bitRateInfoPresentFlag;                         ///< Indicates whether bit rate information is signalled
    495   Bool*     m_picRateInfoPresentFlag;                         ///< Indicates whether pic rate information is signalled
    496   Int*      m_avgBitRate;                                     ///< Indicates avg. bit rate information for various sub-layers
    497   Int*      m_maxBitRate;                                     ///< Indicates max. bit rate information for various sub-layers
    498   Int*      m_avgPicRate;                                     ///< Indicates avg. picture rate information for various sub-layers
    499   Int*      m_constantPicRateIdc;                                ///< Indicates constant picture rate idc for various sub-layers
    500 #endif
    501475#if H_MV
    502476  Int   getGOPSize() { return m_iGOPSize; }
    503477#endif
    504 
    505478public:
    506479  TAppEncCfg();
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.cpp

    r534 r537  
    194194  m_cTEncTop.setProfile(m_profile);
    195195  m_cTEncTop.setLevel(m_levelTier, m_level);
    196 #if L0046_CONSTRAINT_FLAGS
    197196  m_cTEncTop.setProgressiveSourceFlag(m_progressiveSourceFlag);
    198197  m_cTEncTop.setInterlacedSourceFlag(m_interlacedSourceFlag);
    199198  m_cTEncTop.setNonPackedConstraintFlag(m_nonPackedConstraintFlag);
    200199  m_cTEncTop.setFrameOnlyConstraintFlag(m_frameOnlyConstraintFlag);
    201 #endif
    202200 
    203201  m_cTEncTop.setFrameRate                    ( m_iFrameRate );
     
    260258  m_cTEncTop.setLoopFilterTcOffset           ( m_loopFilterTcOffsetDiv2    );
    261259  m_cTEncTop.setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent);
    262 #if L0386_DB_METRIC
    263260  m_cTEncTop.setDeblockingFilterMetric       ( m_DeblockingFilterMetric );
    264 #endif
    265261
    266262  //====== Motion search ========
     
    300296  m_cTEncTop.setUseHADME                     ( m_bUseHADME    );
    301297  m_cTEncTop.setUseLossless                  ( m_useLossless );
    302 #if !L0034_COMBINED_LIST_CLEANUP
    303   m_cTEncTop.setUseLComb                     ( m_bUseLComb    );
    304 #endif
    305298#if H_MV
    306299  m_cTEncTop.setdQPs                         ( m_aidQP[layer]   );
     
    310303  m_cTEncTop.setUseRDOQ                      ( m_useRDOQ     );
    311304  m_cTEncTop.setUseRDOQTS                    ( m_useRDOQTS   );
    312 #if L0232_RD_PENALTY
    313305  m_cTEncTop.setRDpenalty                 ( m_rdPenalty );
    314 #endif
    315306  m_cTEncTop.setQuadtreeTULog2MaxSize        ( m_uiQuadtreeTULog2MaxSize );
    316307  m_cTEncTop.setQuadtreeTULog2MinSize        ( m_uiQuadtreeTULog2MinSize );
     
    380371  m_cTEncTop.setBufferingPeriodSEIEnabled( m_bufferingPeriodSEIEnabled );
    381372  m_cTEncTop.setPictureTimingSEIEnabled( m_pictureTimingSEIEnabled );
    382 #if J0149_TONE_MAPPING_SEI
    383373  m_cTEncTop.setToneMappingInfoSEIEnabled                 ( m_toneMappingInfoSEIEnabled );
    384374  m_cTEncTop.setTMISEIToneMapId                           ( m_toneMapId );
     
    406396  m_cTEncTop.setTMISEINominalWhiteLevelLumaCodeValue      ( m_nominalWhiteLevelLumaCodeValue );
    407397  m_cTEncTop.setTMISEIExtendedWhiteLevelLumaCodeValue     ( m_extendedWhiteLevelLumaCodeValue );
    408 #endif
    409398  m_cTEncTop.setFramePackingArrangementSEIEnabled( m_framePackingSEIEnabled );
    410399  m_cTEncTop.setFramePackingArrangementSEIType( m_framePackingSEIType );
     
    416405  m_cTEncTop.setGradualDecodingRefreshInfoEnabled( m_gradualDecodingRefreshInfoEnabled );
    417406  m_cTEncTop.setDecodingUnitInfoSEIEnabled( m_decodingUnitInfoSEIEnabled );
    418 #if L0208_SOP_DESCRIPTION_SEI
    419407  m_cTEncTop.setSOPDescriptionSEIEnabled( m_SOPDescriptionSEIEnabled );
    420 #endif
    421 #if K0180_SCALABLE_NESTING_SEI
    422408  m_cTEncTop.setScalableNestingSEIEnabled( m_scalableNestingSEIEnabled );
    423 #endif
    424409  m_cTEncTop.setUniformSpacingIdr          ( m_iUniformSpacingIdr );
    425410  m_cTEncTop.setNumColumnsMinus1           ( m_iNumColumnsMinus1 );
     
    490475  m_cTEncTop.setLog2MaxMvLengthHorizontal( m_log2MaxMvLengthHorizontal );
    491476  m_cTEncTop.setLog2MaxMvLengthVertical( m_log2MaxMvLengthVertical );
    492 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    493   TComBitRatePicRateInfo *bitRatePicRateInfo = m_cTEncTop.getVPS()->getBitratePicrateInfo();
    494   // The number of bit rate/pic rate have to equal to number of sub-layers.
    495   if(m_bitRatePicRateMaxTLayers)
    496   {
    497     assert(m_bitRatePicRateMaxTLayers == m_cTEncTop.getVPS()->getMaxTLayers());
    498   }
    499   for(Int i = 0; i < m_bitRatePicRateMaxTLayers; i++)
    500   {
    501     bitRatePicRateInfo->setBitRateInfoPresentFlag( i, m_bitRateInfoPresentFlag[i] );
    502     if( bitRatePicRateInfo->getBitRateInfoPresentFlag(i) )
    503     {
    504       bitRatePicRateInfo->setAvgBitRate(i, m_avgBitRate[i]);
    505       bitRatePicRateInfo->setMaxBitRate(i, m_maxBitRate[i]);
    506     }
    507   }
    508   for(Int i = 0; i < m_bitRatePicRateMaxTLayers; i++)
    509   {
    510     bitRatePicRateInfo->setPicRateInfoPresentFlag( i, m_picRateInfoPresentFlag[i] );
    511     if( bitRatePicRateInfo->getPicRateInfoPresentFlag(i) )
    512     {
    513       bitRatePicRateInfo->setAvgPicRate     (i, m_avgPicRate[i]);
    514       bitRatePicRateInfo->setConstantPicRateIdc(i, m_constantPicRateIdc[i]);
    515     }
    516   }
    517 #endif
    518477#if H_MV
    519478  }
Note: See TracChangeset for help on using the changeset viewer.