Changeset 1459 in SHVCSoftware for branches/SHM-dev/source/App


Ignore:
Timestamp:
20 Aug 2015, 19:49:34 (9 years ago)
Author:
seregin
Message:

port rev 4593

Location:
branches/SHM-dev/source/App/TAppEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r1448 r1459  
    776776  string* cfg_colourRemapSEIFileName[MAX_LAYERS];
    777777#endif
    778   Int*    cfg_waveFrontSynchro[MAX_LAYERS];
     778  Bool*   cfg_entropyCodingSyncEnabledFlag[MAX_LAYERS];
    779779  Int*    cfg_layerSwitchOffBegin[MAX_LAYERS];
    780780  Int*    cfg_layerSwitchOffEnd[MAX_LAYERS];
     
    831831    cfg_scalingListFileName     [layer] = &m_apcLayerCfg[layer]->m_scalingListFileName;
    832832
    833     cfg_numRefLayerLocationOffsets [layer] = &m_apcLayerCfg[layer]->m_numRefLayerLocationOffsets;
    834     cfg_waveFrontSynchro[layer]  = &m_apcLayerCfg[layer]->m_waveFrontSynchro;
     833    cfg_numRefLayerLocationOffsets [layer]  = &m_apcLayerCfg[layer]->m_numRefLayerLocationOffsets;
     834    cfg_entropyCodingSyncEnabledFlag[layer] = &m_apcLayerCfg[layer]->m_entropyCodingSyncEnabledFlag;
    835835    for(Int i = 0; i < m_numLayers; i++)
    836836    {
     
    923923  Int tmpFastInterSearchMode;
    924924  Int tmpMotionEstimationSearchMethod;
     925  Int tmpSliceMode;
     926  Int tmpSliceSegmentMode;
     927  Int tmpDecodedPictureHashSEIMappedType;
    925928  string inputColourSpaceConvert;
    926929#if SVC_EXTENSION
     
    13281331  ("MaxNumOffsetsPerPic",                             m_maxNumOffsetsPerPic,                             2048, "Max number of SAO offset per picture (Default: 2048)")
    13291332  ("SAOLcuBoundary",                                  m_saoCtuBoundary,                                 false, "0: right/bottom CTU boundary areas skipped from SAO parameter estimation, 1: non-deblocked pixels are used for those areas")
    1330   ("SliceMode",                                       m_sliceMode,                                          0, "0: Disable all Recon slice limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
     1333  ("SliceMode",                                       tmpSliceMode,                            Int(NO_SLICES), "0: Disable all Recon slice limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
    13311334  ("SliceArgument",                                   m_sliceArgument,                                      0, "Depending on SliceMode being:"
    13321335                                                                                                               "\t1: max number of CTUs per slice"
    13331336                                                                                                               "\t2: max number of bytes per slice"
    13341337                                                                                                               "\t3: max number of tiles per slice")
    1335   ("SliceSegmentMode",                                m_sliceSegmentMode,                                   0, "0: Disable all slice segment limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
     1338  ("SliceSegmentMode",                                tmpSliceSegmentMode,                     Int(NO_SLICES), "0: Disable all slice segment limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
    13361339  ("SliceSegmentArgument",                            m_sliceSegmentArgument,                               0, "Depending on SliceSegmentMode being:"
    13371340                                                                                                               "\t1: max number of CTUs per slice segment"
     
    13701373  ("FIS",                                             m_useFastIntraScalable,                           false, "Fast Intra Decision for Scalable HEVC")
    13711374#endif
    1372   ("WaveFrontSynchro%d",                              cfg_waveFrontSynchro,                   0,  m_numLayers, "0: no synchro; 1 synchro with TR; 2 TRR etc")
     1375  ("WaveFrontSynchro%d",                              cfg_entropyCodingSyncEnabledFlag,   false,  m_numLayers, "0: entropy coding sync disabled; 1 entropy coding sync enabled")
    13731376  ("ScalingList%d",                                   cfg_UseScalingListId,     SCALING_LIST_OFF, m_numLayers, "0/off: no scaling list, 1/default: default scaling lists, 2/file: scaling lists specified in ScalingListFile")
    13741377  ("ScalingListFile%d",                               cfg_scalingListFileName,        string(""), m_numLayers, "Scaling list file name. Use an empty string to produce help.")
    13751378#else
    1376   ("WaveFrontSynchro",                                m_iWaveFrontSynchro,                                  0, "0: no synchro; 1 synchro with top-right-right")
     1379  ("WaveFrontSynchro",                                m_entropyCodingSyncEnabledFlag,                   false, "0: entropy coding sync disabled; 1 entropy coding sync enabled")
    13771380  ("ScalingList",                                     m_useScalingListId,                    SCALING_LIST_OFF, "0/off: no scaling list, 1/default: default scaling lists, 2/file: scaling lists specified in ScalingListFile")
    13781381  ("ScalingListFile",                                 m_scalingListFileName,                       string(""), "Scaling list file name. Use an empty string to produce help.")
     
    13811384  ("MaxNumMergeCand",                                 m_maxNumMergeCand,                                   5u, "Maximum number of merge candidates")
    13821385  /* Misc. */
    1383   ("SEIDecodedPictureHash",                           m_decodedPictureHashSEIEnabled,                       0, "Control generation of decode picture hash SEI messages\n"
     1386  ("SEIDecodedPictureHash",                           tmpDecodedPictureHashSEIMappedType,                   0, "Control generation of decode picture hash SEI messages\n"
    13841387                                                                                                               "\t3: checksum\n"
    13851388                                                                                                               "\t2: CRC\n"
     
    14591462  ("Log2MaxMvLengthHorizontal",                       m_log2MaxMvLengthHorizontal,                         15, "Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units")
    14601463  ("Log2MaxMvLengthVertical",                         m_log2MaxMvLengthVertical,                           15, "Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units")
    1461   ("SEIRecoveryPoint",                                m_recoveryPointSEIEnabled,                            0, "Control generation of recovery point SEI messages")
    1462   ("SEIBufferingPeriod",                              m_bufferingPeriodSEIEnabled,                          0, "Control generation of buffering period SEI messages")
    1463   ("SEIPictureTiming",                                m_pictureTimingSEIEnabled,                            0, "Control generation of picture timing SEI messages")
     1464  ("SEIRecoveryPoint",                                m_recoveryPointSEIEnabled,                        false, "Control generation of recovery point SEI messages")
     1465  ("SEIBufferingPeriod",                              m_bufferingPeriodSEIEnabled,                      false, "Control generation of buffering period SEI messages")
     1466  ("SEIPictureTiming",                                m_pictureTimingSEIEnabled,                        false, "Control generation of picture timing SEI messages")
    14641467  ("SEIToneMappingInfo",                              m_toneMappingInfoSEIEnabled,                      false, "Control generation of Tone Mapping SEI messages")
    14651468  ("SEIToneMapId",                                    m_toneMapId,                                          0, "Specifies Id of Tone Mapping SEI message for a given session")
     
    15031506                                                                                                               "\t1: User-defined - Filter coefficients are specified in the chroma sampling filter hint SEI message"
    15041507                                                                                                               "\t2: Standards-defined - ITU-T Rec. T.800 | ISO/IEC15444-1, 5/3 filter")
    1505   ("SEIFramePacking",                                 m_framePackingSEIEnabled,                             0, "Control generation of frame packing SEI messages")
     1508  ("SEIFramePacking",                                 m_framePackingSEIEnabled,                         false, "Control generation of frame packing SEI messages")
    15061509  ("SEIFramePackingType",                             m_framePackingSEIType,                                0, "Define frame packing arrangement\n"
    15071510                                                                                                               "\t3: side by side - frames are displayed horizontally\n"
     
    15141517                                                                                                               "\t1: stereo pair, frame0 represents left view\n"
    15151518                                                                                                               "\t2: stereo pair, frame0 represents right view")
    1516   ("SEISegmentedRectFramePacking",                    m_segmentedRectFramePackingSEIEnabled,                0, "Controls generation of segmented rectangular frame packing SEI messages")
     1519  ("SEISegmentedRectFramePacking",                    m_segmentedRectFramePackingSEIEnabled,            false, "Controls generation of segmented rectangular frame packing SEI messages")
    15171520  ("SEISegmentedRectFramePackingCancel",              m_segmentedRectFramePackingSEICancel,             false, "If equal to 1, cancels the persistence of any previous SRFPA SEI message")
    15181521  ("SEISegmentedRectFramePackingType",                m_segmentedRectFramePackingSEIType,                   0, "Specifies the arrangement of the frames in the reconstructed picture")
     
    15211524                                                                                                               "\tN: 0 < N < (2^16 - 1) enable display orientation SEI message with anticlockwise_rotation = N and display_orientation_repetition_period = 1\n"
    15221525                                                                                                               "\t0: disable")
    1523   ("SEITemporalLevel0Index",                          m_temporalLevel0IndexSEIEnabled,                      0, "Control generation of temporal level 0 index SEI messages")
    1524   ("SEIGradualDecodingRefreshInfo",                   m_gradualDecodingRefreshInfoEnabled,                  0, "Control generation of gradual decoding refresh information SEI message")
     1526  ("SEITemporalLevel0Index",                          m_temporalLevel0IndexSEIEnabled,                  false, "Control generation of temporal level 0 index SEI messages")
     1527  ("SEIGradualDecodingRefreshInfo",                   m_gradualDecodingRefreshInfoEnabled,              false, "Control generation of gradual decoding refresh information SEI message")
    15251528  ("SEINoDisplay",                                    m_noDisplaySEITLayer,                                 0, "Control generation of no display SEI message\n"
    15261529                                                                                                               "\tN: 0 < N enable no display SEI message for temporal layer N or higher\n"
    15271530                                                                                                               "\t0: disable")
    1528   ("SEIDecodingUnitInfo",                             m_decodingUnitInfoSEIEnabled,                         0, "Control generation of decoding unit information SEI message.")
    1529   ("SEISOPDescription",                               m_SOPDescriptionSEIEnabled,                           0, "Control generation of SOP description SEI messages")
    1530   ("SEIScalableNesting",                              m_scalableNestingSEIEnabled,                          0, "Control generation of scalable nesting SEI messages")
     1531  ("SEIDecodingUnitInfo",                             m_decodingUnitInfoSEIEnabled,                     false, "Control generation of decoding unit information SEI message.")
     1532  ("SEISOPDescription",                               m_SOPDescriptionSEIEnabled,                       false, "Control generation of SOP description SEI messages")
     1533  ("SEIScalableNesting",                              m_scalableNestingSEIEnabled,                      false, "Control generation of scalable nesting SEI messages")
    15311534  ("SEITempMotionConstrainedTileSets",                m_tmctsSEIEnabled,                                false, "Control generation of temporal motion constrained tile sets SEI message")
    15321535  ("SEITimeCodeEnabled",                              m_timeCodeSEIEnabled,                             false, "Control generation of time code information SEI message")
     
    26332636  }
    26342637
     2638  if (tmpSliceMode<0 || tmpSliceMode>=Int(NUMBER_OF_SLICE_CONSTRAINT_MODES))
     2639  {
     2640    fprintf(stderr, "Error: bad slice mode\n");
     2641    exit(EXIT_FAILURE);
     2642  }
     2643  m_sliceMode = SliceConstraint(tmpSliceMode);
     2644  if (tmpSliceSegmentMode<0 || tmpSliceSegmentMode>=Int(NUMBER_OF_SLICE_CONSTRAINT_MODES))
     2645  {
     2646    fprintf(stderr, "Error: bad slice segment mode\n");
     2647    exit(EXIT_FAILURE);
     2648  }
     2649  m_sliceSegmentMode = SliceConstraint(tmpSliceSegmentMode);
     2650
     2651  if (tmpDecodedPictureHashSEIMappedType<0 || tmpDecodedPictureHashSEIMappedType>=Int(NUMBER_OF_HASHTYPES))
     2652  {
     2653    fprintf(stderr, "Error: bad checksum mode\n");
     2654    exit(EXIT_FAILURE);
     2655  }
     2656  // Need to map values to match those of the SEI message:
     2657  if (tmpDecodedPictureHashSEIMappedType==0)
     2658  {
     2659    m_decodedPictureHashSEIType=HASHTYPE_NONE;
     2660  }
     2661  else
     2662  {
     2663    m_decodedPictureHashSEIType=HashType(tmpDecodedPictureHashSEIMappedType-1);
     2664  }
     2665
    26352666  // allocate slice-based dQP values
    26362667  m_aidQP = new Int[ m_framesToBeEncoded + m_iGOPSize + 1 ];
     
    26742705  {
    26752706    FILE* fpt=fopen( m_dQPFileName.c_str(), "r" );
    2676 
    26772707    if ( fpt )
    26782708    {
     
    29342964  m_uiLog2DiffMaxMinCodingBlockSize = m_uiMaxCUDepth - 1;
    29352965#endif
    2936  
     2966
    29372967  // print-out parameters
    29382968  xPrintParameter();
     
    29943024  UInt& m_uiQuadtreeTUMaxDepthIntra           = m_apcLayerCfg[layerIdx]->m_uiQuadtreeTUMaxDepthIntra;
    29953025
    2996   Int& m_iWaveFrontSynchro                    = m_apcLayerCfg[layerIdx]->m_waveFrontSynchro;
     3026  Bool& m_entropyCodingSyncEnabledFlag        = m_apcLayerCfg[layerIdx]->m_entropyCodingSyncEnabledFlag;
    29973027
    29983028  Int& m_maxTempLayer                         = m_apcLayerCfg[layerIdx]->m_maxTempLayer;
     
    30043034#endif
    30053035
    3006   if (!m_decodedPictureHashSEIEnabled)
     3036  if (m_decodedPictureHashSEIType==HASHTYPE_NONE)
    30073037  {
    30083038    fprintf(stderr, "******************************************************************\n");
     
    31653195  xConfirmPara( m_inputColourSpaceConvert >= NUMBER_INPUT_COLOUR_SPACE_CONVERSIONS,         sTempIPCSC.c_str() );
    31663196  xConfirmPara( m_InputChromaFormatIDC >= NUM_CHROMA_FORMAT,                                "InputChromaFormatIDC must be either 400, 420, 422 or 444" );
    3167 
    31683197  xConfirmPara( m_iFrameRate <= 0,                                                          "Frame rate must be more than 1" );
    31693198  xConfirmPara( m_framesToBeEncoded <= 0,                                                   "Total Number Of Frames encoded must be more than 0" );
     
    32553284  xConfirmPara( m_uiQuadtreeTUMaxDepthIntra < 1,                                                         "QuadtreeTUMaxDepthIntra must be greater than or equal to 1" );
    32563285  xConfirmPara( m_uiMaxCUWidth < ( 1 << (m_uiQuadtreeTULog2MinSize + m_uiQuadtreeTUMaxDepthIntra - 1) ), "QuadtreeTUMaxDepthInter must be less than or equal to the difference between log2(maxCUSize) and QuadtreeTULog2MinSize plus 1" );
    3257  
     3286
    32583287  xConfirmPara(  m_maxNumMergeCand < 1,  "MaxNumMergeCand must be 1 or greater.");
    32593288  xConfirmPara(  m_maxNumMergeCand > 5,  "MaxNumMergeCand must be 5 or smaller.");
     
    32763305  }
    32773306
    3278   xConfirmPara( m_sliceMode < 0 || m_sliceMode > 3, "SliceMode exceeds supported range (0 to 3)" );
    3279   if (m_sliceMode!=0)
     3307  if (m_sliceMode!=NO_SLICES)
    32803308  {
    32813309    xConfirmPara( m_sliceArgument < 1 ,         "SliceArgument should be larger than or equal to 1" );
    32823310  }
    3283   xConfirmPara( m_sliceSegmentMode < 0 || m_sliceSegmentMode > 3, "SliceSegmentMode exceeds supported range (0 to 3)" );
    3284   if (m_sliceSegmentMode!=0)
     3311  if (m_sliceSegmentMode!=NO_SLICES)
    32853312  {
    32863313    xConfirmPara( m_sliceSegmentArgument < 1 ,         "SliceSegmentArgument should be larger than or equal to 1" );
    32873314  }
    3288  
     3315
    32893316  Bool tileFlag = (m_numTileColumnsMinus1 > 0 || m_numTileRowsMinus1 > 0 );
    32903317  if (m_profile!=Profile::HIGHTHROUGHPUTREXT)
    32913318  {
    3292     xConfirmPara( tileFlag && m_iWaveFrontSynchro,            "Tile and Wavefront can not be applied together, except in the High Throughput Intra 4:4:4 16 profile");
     3319    xConfirmPara( tileFlag && m_entropyCodingSyncEnabledFlag, "Tiles and entropy-coding-sync (Wavefronts) can not be applied together, except in the High Throughput Intra 4:4:4 16 profile");
    32933320  }
    32943321
     
    34023429
    34033430  m_extraRPSs=0;
    3404 
    34053431  //start looping through frames in coding order until we can verify that the GOP structure is correct.
    34063432  while(!verifiedGOP&&!errorGOP)
     
    35283554                m_GOPList[m_iGOPSize+m_extraRPSs].m_referencePics[j]=prev;
    35293555                m_GOPList[m_iGOPSize+m_extraRPSs].m_usedByCurrPic[j]=prevUsed;
    3530 
    35313556                prevUsed=newUsed;
    35323557                prev=newPrev;
     
    35403565          }
    35413566        }
    3542 
    35433567        m_GOPList[m_iGOPSize+m_extraRPSs].m_numRefPics=newRefs;
    35443568        m_GOPList[m_iGOPSize+m_extraRPSs].m_POC = curPOC;
    3545 
    35463569        if (m_extraRPSs == 0)
    35473570        {
     
    35553578          Int refPics = m_GOPList[rIdx].m_numRefPics;
    35563579          Int newIdc=0;
    3557           for(Int i = 0; i<= refPics; i++) 
     3580          for(Int i = 0; i<= refPics; i++)
    35583581          {
    35593582            Int deltaPOC = ((i != refPics)? m_GOPList[rIdx].m_referencePics[i] : 0);  // check if the reference abs POC is >= 0
    35603583            Int absPOCref = refPOC+deltaPOC;
    35613584            Int refIdc = 0;
    3562 
    35633585            for (Int j = 0; j < m_GOPList[m_iGOPSize+m_extraRPSs].m_numRefPics; j++)
    35643586            {
     
    35783600            newIdc++;
    35793601          }
    3580           m_GOPList[m_iGOPSize+m_extraRPSs].m_interRPSPrediction = 1; 
     3602          m_GOPList[m_iGOPSize+m_extraRPSs].m_interRPSPrediction = 1;
    35813603          m_GOPList[m_iGOPSize+m_extraRPSs].m_numRefIdc = newIdc;
    3582           m_GOPList[m_iGOPSize+m_extraRPSs].m_deltaRPS = refPOC - m_GOPList[m_iGOPSize+m_extraRPSs].m_POC; 
     3604          m_GOPList[m_iGOPSize+m_extraRPSs].m_deltaRPS = refPOC - m_GOPList[m_iGOPSize+m_extraRPSs].m_POC;
    35833605        }
    35843606        curGOP=m_iGOPSize+m_extraRPSs;
    35853607        m_extraRPSs++;
    35863608      }
    3587 
    35883609      numRefs=0;
    3589       for(Int i = 0; i< m_GOPList[curGOP].m_numRefPics; i++) 
     3610      for(Int i = 0; i< m_GOPList[curGOP].m_numRefPics; i++)
    35903611      {
    35913612        Int absPOC = curPOC+m_GOPList[curGOP].m_referencePics[i];
    3592         if(absPOC >= 0) 
     3613        if(absPOC >= 0)
    35933614        {
    35943615          refList[numRefs]=absPOC;
     
    36023623  }
    36033624  xConfirmPara(errorGOP,"Invalid GOP structure given");
    3604 
    36053625  m_maxTempLayer = 1;
    36063626  for(Int i=0; i<m_iGOPSize; i++)
     
    36123632    xConfirmPara(m_GOPList[i].m_sliceType!='B' && m_GOPList[i].m_sliceType!='P' && m_GOPList[i].m_sliceType!='I', "Slice type must be equal to B or P or I");
    36133633  }
    3614 
    36153634  for(Int i=0; i<MAX_TLAYER; i++)
    36163635  {
     
    37313750      m_minSpatialSegmentationIdc = 4*PicSizeInSamplesY/maxSizeInSamplesY-4;
    37323751    }
    3733     else if(m_iWaveFrontSynchro)
     3752    else if(m_entropyCodingSyncEnabledFlag)
    37343753    {
    37353754      m_minSpatialSegmentationIdc = 4*PicSizeInSamplesY/((2*m_iSourceHeight+m_iSourceWidth)*m_uiMaxCUHeight)-4;
     
    37443763    }
    37453764  }
    3746   xConfirmPara( m_iWaveFrontSynchro < 0, "WaveFrontSynchro cannot be negative" );
    3747 
    3748   xConfirmPara( m_decodedPictureHashSEIEnabled<0 || m_decodedPictureHashSEIEnabled>3, "this hash type is not correct!\n");
    37493765
    37503766  if (m_toneMappingInfoSEIEnabled)
     
    38413857  if (m_segmentedRectFramePackingSEIEnabled)
    38423858  {
    3843     xConfirmPara(m_framePackingSEIEnabled > 0 , "SEISegmentedRectFramePacking must be 0 when SEIFramePacking is 1");
     3859    xConfirmPara(m_framePackingSEIEnabled , "SEISegmentedRectFramePacking must be 0 when SEIFramePacking is 1");
    38443860  }
    38453861
     
    42054221  printf("persistent_rice_adaptation_enabled_flag: %s\n", (m_persistentRiceAdaptationEnabledFlag     ? "Enabled" : "Disabled") );
    42064222  printf("cabac_bypass_alignment_enabled_flag    : %s\n", (m_cabacBypassAlignmentEnabledFlag         ? "Enabled" : "Disabled") );
    4207 
    42084223  if (m_bUseSAO)
    42094224  {
     
    42854300    UInt& m_uiMaxCUHeight                 = m_apcLayerCfg[layer]->m_uiMaxCUHeight;
    42864301    Int& m_iSourceHeight                  = m_apcLayerCfg[layer]->m_iSourceHeight;
    4287     Int& m_iWaveFrontSynchro              = m_apcLayerCfg[layer]->m_waveFrontSynchro;
     4302    Bool& m_entropyCodingSyncEnabledFlag  = m_apcLayerCfg[layer]->m_entropyCodingSyncEnabledFlag;
    42884303    ScalingListMode& m_useScalingListId   = m_apcLayerCfg[layer]->m_useScalingListId;
    42894304   
     
    43104325  printf("TransformSkipFast:%d ", m_useTransformSkipFast );
    43114326  printf("TransformSkipLog2MaxSize:%d ", m_log2MaxTransformSkipBlockSize);
    4312   printf("Slice: M=%d ", m_sliceMode);
     4327  printf("Slice: M=%d ", Int(m_sliceMode));
    43134328  if (m_sliceMode!=NO_SLICES)
    43144329  {
     
    43364351  printf("WPB:%d ", (Int)m_useWeightedBiPred);
    43374352  printf("PME:%d ", m_log2ParallelMergeLevel);
    4338   const Int iWaveFrontSubstreams = m_iWaveFrontSynchro ? (m_iSourceHeight + m_uiMaxCUHeight - 1) / m_uiMaxCUHeight : 1;
    4339   printf(" WaveFrontSynchro:%d WaveFrontSubstreams:%d",
    4340           m_iWaveFrontSynchro, iWaveFrontSubstreams);
     4353  const Int iWaveFrontSubstreams = m_entropyCodingSyncEnabledFlag ? (m_iSourceHeight + m_uiMaxCUHeight - 1) / m_uiMaxCUHeight : 1;
     4354  printf(" WaveFrontSynchro:%d WaveFrontSubstreams:%d", m_entropyCodingSyncEnabledFlag?1:0, iWaveFrontSubstreams);
    43414355  printf(" ScalingList:%d ", m_useScalingListId );
    43424356  printf("TMVPMode:%d ", m_TMVPModeId     );
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h

    r1448 r1459  
    172172#if !SVC_EXTENSION
    173173  Int       m_extraRPSs;                                      ///< extra RPSs added to handle CRA
    174 
    175174  GOPEntry  m_GOPList[MAX_GOP];                               ///< the coding structure entries from the config file
    176175#endif
     
    236235  UInt      m_uiQuadtreeTUMaxDepthIntra;
    237236#endif
    238  
     237
    239238  // coding tools (bit-depth)
    240239#if !SVC_EXTENSION
     
    300299  Bool      m_bUseCbfFastMode;                                ///< flag for using Cbf Fast PU Mode Decision
    301300  Bool      m_useEarlySkipDetection;                          ///< flag for using Early SKIP Detection
    302   Int       m_sliceMode;                                      ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice,
    303                                                               ///< 3: max number of tiles per slice
    304   Int       m_sliceArgument;                                  ///< argument according to selected slice mode
    305   Int       m_sliceSegmentMode;                               ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment,
    306                                                               ///< 3: max number of tiles per slice segment
    307   Int       m_sliceSegmentArgument;                           ///< argument according to selected slice segment mode
     301  SliceConstraint m_sliceMode;
     302  Int             m_sliceArgument;                            ///< argument according to selected slice mode
     303  SliceConstraint m_sliceSegmentMode;
     304  Int             m_sliceSegmentArgument;                     ///< argument according to selected slice segment mode
    308305
    309306  Bool      m_bLFCrossSliceBoundaryFlag;  ///< 1: filter across slice boundaries 0: do not filter across slice boundaries
     
    316313
    317314#if !SVC_EXTENSION
    318   Int       m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
    319   Int       m_iWaveFrontFlush; //< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs.
     315  Bool      m_entropyCodingSyncEnabledFlag;
    320316#endif
    321317
     
    325321  Bool      m_bUseBLambdaForNonKeyLowDelayPictures;
    326322
    327   Int       m_decodedPictureHashSEIEnabled;                    ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message
    328   Int       m_recoveryPointSEIEnabled;
    329   Int       m_bufferingPeriodSEIEnabled;
    330   Int       m_pictureTimingSEIEnabled;
     323  HashType  m_decodedPictureHashSEIType;                      ///< Checksum mode for decoded picture hash SEI message
     324  Bool      m_recoveryPointSEIEnabled;
     325  Bool      m_bufferingPeriodSEIEnabled;
     326  Bool      m_pictureTimingSEIEnabled;
    331327  Bool      m_toneMappingInfoSEIEnabled;
    332328  Bool      m_chromaResamplingFilterSEIenabled;
     
    359355  Int*      m_codedPivotValue;
    360356  Int*      m_targetPivotValue;
    361   Int       m_framePackingSEIEnabled;
     357  Bool      m_framePackingSEIEnabled;
    362358  Int       m_framePackingSEIType;
    363359  Int       m_framePackingSEIId;
    364360  Int       m_framePackingSEIQuincunx;
    365361  Int       m_framePackingSEIInterpretation;
    366   Int       m_segmentedRectFramePackingSEIEnabled;
     362  Bool      m_segmentedRectFramePackingSEIEnabled;
    367363  Bool      m_segmentedRectFramePackingSEICancel;
    368364  Int       m_segmentedRectFramePackingSEIType;
    369365  Bool      m_segmentedRectFramePackingSEIPersistence;
    370366  Int       m_displayOrientationSEIAngle;
    371   Int       m_temporalLevel0IndexSEIEnabled;
    372   Int       m_gradualDecodingRefreshInfoEnabled;
     367  Bool      m_temporalLevel0IndexSEIEnabled;
     368  Bool      m_gradualDecodingRefreshInfoEnabled;
    373369  Int       m_noDisplaySEITLayer;
    374   Int       m_decodingUnitInfoSEIEnabled;
    375   Int       m_SOPDescriptionSEIEnabled;
    376   Int       m_scalableNestingSEIEnabled;
     370  Bool      m_decodingUnitInfoSEIEnabled;
     371  Bool      m_SOPDescriptionSEIEnabled;
     372  Bool      m_scalableNestingSEIEnabled;
    377373  Bool      m_tmctsSEIEnabled;
    378374  Bool      m_timeCodeSEIEnabled;
     
    565561  Void  destroy   ();                                         ///< destroy option handling class
    566562  Bool  parseCfg  ( Int argc, TChar* argv[] );                ///< parse configuration file to fill member variables
    567  
     563
    568564#if SVC_EXTENSION
    569565  Bool parseCfgNumLayersAndInit( Int argc, TChar* argv[] );   ///< parse configuration file to to get number of layers and allocate memory
     
    580576
    581577  Int  getDecodingRefreshType()                               { return m_iDecodingRefreshType;                       }
    582   Int  getWaveFrontSynchro(Int layerIdx)                      { return m_apcLayerCfg[layerIdx]->m_waveFrontSynchro;  }
    583578  Void getDirFilename(string& filename, string& dir, const string path);
    584579
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncLayerCfg.h

    r1452 r1459  
    104104
    105105  Int       m_maxTidIlRefPicsPlus1;
    106   Int       m_waveFrontSynchro;                               ///< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
    107   Int       m_waveFrontFlush;                                 ///< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs.
     106  Bool      m_entropyCodingSyncEnabledFlag;
    108107
    109108  Int       m_iQP;                                            ///< QP value of key-picture (integer)
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r1450 r1459  
    486486    UInt&          m_uiQuadtreeTUMaxDepthIntra                  = m_apcLayerCfg[layer]->m_uiQuadtreeTUMaxDepthIntra;
    487487
    488     Int&           m_iWaveFrontSynchro                          = m_apcLayerCfg[layer]->m_waveFrontSynchro;
     488    Bool&          m_entropyCodingSyncEnabledFlag               = m_apcLayerCfg[layer]->m_entropyCodingSyncEnabledFlag;
    489489    Bool&          m_RCEnableRateControl                        = m_apcLayerCfg[layer]->m_RCEnableRateControl;
    490490    Int&           m_RCTargetBitrate                            = m_apcLayerCfg[layer]->m_RCTargetBitrate;
     
    674674
    675675  //====== Slice ========
    676   m_cTEncTop.setSliceMode                                         ( (SliceConstraint) m_sliceMode );
    677   m_cTEncTop.setSliceArgument                                     ( m_sliceArgument            );
     676  m_cTEncTop.setSliceMode                                         ( m_sliceMode );
     677  m_cTEncTop.setSliceArgument                                     ( m_sliceArgument );
    678678
    679679  //====== Dependent Slice ========
    680   m_cTEncTop.setSliceSegmentMode                                  (  (SliceConstraint) m_sliceSegmentMode );
    681   m_cTEncTop.setSliceSegmentArgument                              ( m_sliceSegmentArgument     );
     680  m_cTEncTop.setSliceSegmentMode                                  ( m_sliceSegmentMode );
     681  m_cTEncTop.setSliceSegmentArgument                              ( m_sliceSegmentArgument );
    682682
    683683  if(m_sliceMode == NO_SLICES )
     
    697697
    698698  m_cTEncTop.setIntraSmoothingDisabledFlag                        (!m_enableIntraReferenceSmoothing );
    699   m_cTEncTop.setDecodedPictureHashSEIEnabled                      ( m_decodedPictureHashSEIEnabled );
     699  m_cTEncTop.setDecodedPictureHashSEIType                         ( m_decodedPictureHashSEIType );
    700700  m_cTEncTop.setRecoveryPointSEIEnabled                           ( m_recoveryPointSEIEnabled );
    701701  m_cTEncTop.setBufferingPeriodSEIEnabled                         ( m_bufferingPeriodSEIEnabled );
     
    782782  }
    783783  m_cTEncTop.setLFCrossTileBoundaryFlag                           ( m_bLFCrossTileBoundaryFlag );
    784   m_cTEncTop.setWaveFrontSynchro                                  ( m_iWaveFrontSynchro );
     784  m_cTEncTop.setEntropyCodingSyncEnabledFlag                      ( m_entropyCodingSyncEnabledFlag );
    785785  m_cTEncTop.setTMVPModeId                                        ( m_TMVPModeId );
    786786  m_cTEncTop.setUseScalingListId                                  ( m_useScalingListId  );
Note: See TracChangeset for help on using the changeset viewer.