Changeset 1459 in SHVCSoftware


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

port rev 4593

Location:
branches/SHM-dev/source
Files:
14 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  );
  • branches/SHM-dev/source/Lib/TLibCommon/SEI.h

    r1442 r1459  
    158158  virtual ~SEIDecodedPictureHash() {}
    159159
    160   enum Method
    161   {
    162     MD5,
    163     CRC,
    164     CHECKSUM,
    165     RESERVED,
    166   } method;
     160  HashType method;
    167161
    168162  TComPictureHash m_pictureHash;
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r1442 r1459  
    558558  FIXED_NUMBER_OF_BYTES  = 2,          ///< Limit maximum number of bytes in a slice / slice segment
    559559  FIXED_NUMBER_OF_TILES  = 3,          ///< slices / slice segments span an integer number of tiles
     560  NUMBER_OF_SLICE_CONSTRAINT_MODES = 4
     561};
     562
     563// For use with decoded picture hash SEI messages, generated by encoder.
     564enum HashType
     565{
     566  HASHTYPE_MD5             = 0,
     567  HASHTYPE_CRC             = 1,
     568  HASHTYPE_CHECKSUM        = 2,
     569  HASHTYPE_NONE            = 3,
     570  NUMBER_OF_HASHTYPES      = 4
    560571};
    561572
  • branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp

    r1442 r1459  
    520520  UInt val;
    521521  sei_read_code( pDecodedMessageOutputStream, 8, val, "hash_type");
    522   sei.method = static_cast<SEIDecodedPictureHash::Method>(val); bytesRead++;
     522  sei.method = static_cast<HashType>(val); bytesRead++;
    523523
    524524  const TChar *traceString="\0";
    525525  switch (sei.method)
    526526  {
    527     case SEIDecodedPictureHash::MD5: traceString="picture_md5"; break;
    528     case SEIDecodedPictureHash::CRC: traceString="picture_crc"; break;
    529     case SEIDecodedPictureHash::CHECKSUM: traceString="picture_checksum"; break;
     527    case HASHTYPE_MD5: traceString="picture_md5"; break;
     528    case HASHTYPE_CRC: traceString="picture_crc"; break;
     529    case HASHTYPE_CHECKSUM: traceString="picture_checksum"; break;
    530530    default: assert(false); break;
    531531  }
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecGop.cpp

    r1442 r1459  
    9595#if SVC_EXTENSION
    9696Void TDecGop::init( TDecTop**               ppcDecTop,
    97                    TDecEntropy*             pcEntropyDecoder,
     97                    TDecEntropy*            pcEntropyDecoder,
    9898#else
    9999Void TDecGop::init( TDecEntropy*            pcEntropyDecoder,
     
    290290    switch (pictureHashSEI->method)
    291291    {
    292       case SEIDecodedPictureHash::MD5:
     292      case HASHTYPE_MD5:
    293293        {
    294294          hashType = "MD5";
     
    296296          break;
    297297        }
    298       case SEIDecodedPictureHash::CRC:
     298      case HASHTYPE_CRC:
    299299        {
    300300          hashType = "CRC";
     
    302302          break;
    303303        }
    304       case SEIDecodedPictureHash::CHECKSUM:
     304      case HASHTYPE_CHECKSUM:
    305305        {
    306306          hashType = "Checksum";
  • branches/SHM-dev/source/Lib/TLibEncoder/SEIEncoder.cpp

    r1434 r1459  
    312312  assert (pcPic!=NULL);
    313313
    314   if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 1)
    315   {
    316     decodedPictureHashSEI->method = SEIDecodedPictureHash::MD5;
    317     UInt numChar=calcMD5(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
    318     rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
    319   }
    320   else if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 2)
    321   {
    322     decodedPictureHashSEI->method = SEIDecodedPictureHash::CRC;
    323     UInt numChar=calcCRC(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
    324     rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
    325   }
    326   else if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 3)
    327   {
    328     decodedPictureHashSEI->method = SEIDecodedPictureHash::CHECKSUM;
    329     UInt numChar=calcChecksum(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
    330     rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
     314  decodedPictureHashSEI->method = m_pcCfg->getDecodedPictureHashSEIType();
     315  switch (m_pcCfg->getDecodedPictureHashSEIType())
     316  {
     317    case HASHTYPE_MD5:
     318      {
     319        UInt numChar=calcMD5(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
     320        rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
     321      }
     322      break;
     323    case HASHTYPE_CRC:
     324      {
     325        UInt numChar=calcCRC(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
     326        rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
     327      }
     328      break;
     329    case HASHTYPE_CHECKSUM:
     330    default:
     331      {
     332        UInt numChar=calcChecksum(*pcPic->getPicYuvRec(), decodedPictureHashSEI->m_pictureHash, bitDepths);
     333        rHashString = hashToString(decodedPictureHashSEI->m_pictureHash, numChar);
     334      }
     335      break;
    331336  }
    332337}
  • branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.cpp

    r1442 r1459  
    309309  switch (sei.method)
    310310  {
    311     case SEIDecodedPictureHash::MD5: traceString="picture_md5"; break;
    312     case SEIDecodedPictureHash::CRC: traceString="picture_crc"; break;
    313     case SEIDecodedPictureHash::CHECKSUM: traceString="picture_checksum"; break;
     311    case HASHTYPE_MD5: traceString="picture_md5"; break;
     312    case HASHTYPE_CRC: traceString="picture_crc"; break;
     313    case HASHTYPE_CHECKSUM: traceString="picture_checksum"; break;
    314314    default: assert(false); break;
    315315  }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h

    r1442 r1459  
    257257  std::vector<Int> m_tileRowHeight;
    258258
    259   Int       m_iWaveFrontSynchro;
    260 
    261   Int       m_decodedPictureHashSEIEnabled;              ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message
    262   Int       m_bufferingPeriodSEIEnabled;
    263   Int       m_pictureTimingSEIEnabled;
    264   Int       m_recoveryPointSEIEnabled;
     259  Bool      m_entropyCodingSyncEnabledFlag;
     260
     261  HashType  m_decodedPictureHashSEIType;
     262  Bool      m_bufferingPeriodSEIEnabled;
     263  Bool      m_pictureTimingSEIEnabled;
     264  Bool      m_recoveryPointSEIEnabled;
    265265  Bool      m_toneMappingInfoSEIEnabled;
    266266  Int       m_toneMapId;
     
    290290  Int*      m_codedPivotValue;
    291291  Int*      m_targetPivotValue;
    292   Int       m_framePackingSEIEnabled;
     292  Bool      m_framePackingSEIEnabled;
    293293  Int       m_framePackingSEIType;
    294294  Int       m_framePackingSEIId;
    295295  Int       m_framePackingSEIQuincunx;
    296296  Int       m_framePackingSEIInterpretation;
    297   Int       m_segmentedRectFramePackingSEIEnabled;
     297  Bool      m_segmentedRectFramePackingSEIEnabled;
    298298  Bool      m_segmentedRectFramePackingSEICancel;
    299299  Int       m_segmentedRectFramePackingSEIType;
    300300  Bool      m_segmentedRectFramePackingSEIPersistence;
    301301  Int       m_displayOrientationSEIAngle;
    302   Int       m_temporalLevel0IndexSEIEnabled;
    303   Int       m_gradualDecodingRefreshInfoEnabled;
     302  Bool      m_temporalLevel0IndexSEIEnabled;
     303  Bool      m_gradualDecodingRefreshInfoEnabled;
    304304  Int       m_noDisplaySEITLayer;
    305   Int       m_decodingUnitInfoSEIEnabled;
    306   Int       m_SOPDescriptionSEIEnabled;
    307   Int       m_scalableNestingSEIEnabled;
     305  Bool      m_decodingUnitInfoSEIEnabled;
     306  Bool      m_SOPDescriptionSEIEnabled;
     307  Bool      m_scalableNestingSEIEnabled;
    308308  Bool      m_tmctsSEIEnabled;
    309309  Bool      m_timeCodeSEIEnabled;
     
    780780  UInt  getRowHeight                   ( UInt rowIdx )               { return m_tileRowHeight[rowIdx]; }
    781781  Void  xCheckGSParameters();
    782   Void  setWaveFrontSynchro(Int iWaveFrontSynchro)                   { m_iWaveFrontSynchro = iWaveFrontSynchro; }
    783   Int   getWaveFrontsynchro()                                        { return m_iWaveFrontSynchro; }
    784   Void  setDecodedPictureHashSEIEnabled(Int b)                       { m_decodedPictureHashSEIEnabled = b; }
    785   Int   getDecodedPictureHashSEIEnabled()                            { return m_decodedPictureHashSEIEnabled; }
    786   Void  setBufferingPeriodSEIEnabled(Int b)                          { m_bufferingPeriodSEIEnabled = b; }
    787   Int   getBufferingPeriodSEIEnabled()                               { return m_bufferingPeriodSEIEnabled; }
    788   Void  setPictureTimingSEIEnabled(Int b)                            { m_pictureTimingSEIEnabled = b; }
    789   Int   getPictureTimingSEIEnabled()                                 { return m_pictureTimingSEIEnabled; }
    790   Void  setRecoveryPointSEIEnabled(Int b)                            { m_recoveryPointSEIEnabled = b; }
    791   Int   getRecoveryPointSEIEnabled()                                 { return m_recoveryPointSEIEnabled; }
     782  Void  setEntropyCodingSyncEnabledFlag(Bool b)                      { m_entropyCodingSyncEnabledFlag = b; }
     783  Bool  getEntropyCodingSyncEnabledFlag() const                      { return m_entropyCodingSyncEnabledFlag; }
     784  Void  setDecodedPictureHashSEIType(HashType m)                     { m_decodedPictureHashSEIType = m; }
     785  HashType getDecodedPictureHashSEIType() const                      { return m_decodedPictureHashSEIType; }
     786  Void  setBufferingPeriodSEIEnabled(Bool b)                         { m_bufferingPeriodSEIEnabled = b; }
     787  Bool  getBufferingPeriodSEIEnabled() const                         { return m_bufferingPeriodSEIEnabled; }
     788  Void  setPictureTimingSEIEnabled(Bool b)                           { m_pictureTimingSEIEnabled = b; }
     789  Bool  getPictureTimingSEIEnabled() const                           { return m_pictureTimingSEIEnabled; }
     790  Void  setRecoveryPointSEIEnabled(Bool b)                           { m_recoveryPointSEIEnabled = b; }
     791  Bool  getRecoveryPointSEIEnabled() const                           { return m_recoveryPointSEIEnabled; }
    792792  Void  setToneMappingInfoSEIEnabled(Bool b)                         { m_toneMappingInfoSEIEnabled = b;  }
    793793  Bool  getToneMappingInfoSEIEnabled()                               { return m_toneMappingInfoSEIEnabled;  }
     
    844844  Void  setTMISEIExtendedWhiteLevelLumaCodeValue(Int b)              { m_extendedWhiteLevelLumaCodeValue =b;  }
    845845  Int   getTMISEIExtendedWhiteLevelLumaCodeValue()                   { return m_extendedWhiteLevelLumaCodeValue;  }
    846   Void  setFramePackingArrangementSEIEnabled(Int b)                  { m_framePackingSEIEnabled = b; }
    847   Int   getFramePackingArrangementSEIEnabled()                       { return m_framePackingSEIEnabled; }
     846  Void  setFramePackingArrangementSEIEnabled(Bool b)                 { m_framePackingSEIEnabled = b; }
     847  Bool  getFramePackingArrangementSEIEnabled() const                 { return m_framePackingSEIEnabled; }
    848848  Void  setFramePackingArrangementSEIType(Int b)                     { m_framePackingSEIType = b; }
    849849  Int   getFramePackingArrangementSEIType()                          { return m_framePackingSEIType; }
     
    854854  Void  setFramePackingArrangementSEIInterpretation(Int b)           { m_framePackingSEIInterpretation = b; }
    855855  Int   getFramePackingArrangementSEIInterpretation()                { return m_framePackingSEIInterpretation; }
    856   Void  setSegmentedRectFramePackingArrangementSEIEnabled(Int b)     { m_segmentedRectFramePackingSEIEnabled = b; }
    857   Int   getSegmentedRectFramePackingArrangementSEIEnabled()          { return m_segmentedRectFramePackingSEIEnabled; }
     856  Void  setSegmentedRectFramePackingArrangementSEIEnabled(Bool b)    { m_segmentedRectFramePackingSEIEnabled = b; }
     857  Bool  getSegmentedRectFramePackingArrangementSEIEnabled() const    { return m_segmentedRectFramePackingSEIEnabled; }
    858858  Void  setSegmentedRectFramePackingArrangementSEICancel(Int b)      { m_segmentedRectFramePackingSEICancel = b; }
    859859  Int   getSegmentedRectFramePackingArrangementSEICancel()           { return m_segmentedRectFramePackingSEICancel; }
     
    864864  Void  setDisplayOrientationSEIAngle(Int b)                         { m_displayOrientationSEIAngle = b; }
    865865  Int   getDisplayOrientationSEIAngle()                              { return m_displayOrientationSEIAngle; }
    866   Void  setTemporalLevel0IndexSEIEnabled(Int b)                      { m_temporalLevel0IndexSEIEnabled = b; }
    867   Int   getTemporalLevel0IndexSEIEnabled()                           { return m_temporalLevel0IndexSEIEnabled; }
    868   Void  setGradualDecodingRefreshInfoEnabled(Int b)                  { m_gradualDecodingRefreshInfoEnabled = b;    }
    869   Int   getGradualDecodingRefreshInfoEnabled()                       { return m_gradualDecodingRefreshInfoEnabled; }
     866  Void  setTemporalLevel0IndexSEIEnabled(Bool b)                     { m_temporalLevel0IndexSEIEnabled = b; }
     867  Bool  getTemporalLevel0IndexSEIEnabled() const                     { return m_temporalLevel0IndexSEIEnabled; }
     868  Void  setGradualDecodingRefreshInfoEnabled(Bool b)                 { m_gradualDecodingRefreshInfoEnabled = b;    }
     869  Bool  getGradualDecodingRefreshInfoEnabled() const                 { return m_gradualDecodingRefreshInfoEnabled; }
    870870  Void  setNoDisplaySEITLayer(Int b)                                 { m_noDisplaySEITLayer = b;    }
    871871  Int   getNoDisplaySEITLayer()                                      { return m_noDisplaySEITLayer; }
    872   Void  setDecodingUnitInfoSEIEnabled(Int b)                         { m_decodingUnitInfoSEIEnabled = b;    }
    873   Int   getDecodingUnitInfoSEIEnabled()                              { return m_decodingUnitInfoSEIEnabled; }
    874   Void  setSOPDescriptionSEIEnabled(Int b)                           { m_SOPDescriptionSEIEnabled = b; }
    875   Int   getSOPDescriptionSEIEnabled()                                { return m_SOPDescriptionSEIEnabled; }
    876   Void  setScalableNestingSEIEnabled(Int b)                          { m_scalableNestingSEIEnabled = b; }
    877   Int   getScalableNestingSEIEnabled()                               { return m_scalableNestingSEIEnabled; }
     872  Void  setDecodingUnitInfoSEIEnabled(Bool b)                        { m_decodingUnitInfoSEIEnabled = b;    }
     873  Bool  getDecodingUnitInfoSEIEnabled() const                        { return m_decodingUnitInfoSEIEnabled; }
     874  Void  setSOPDescriptionSEIEnabled(Bool b)                          { m_SOPDescriptionSEIEnabled = b; }
     875  Bool  getSOPDescriptionSEIEnabled() const                          { return m_SOPDescriptionSEIEnabled; }
     876  Void  setScalableNestingSEIEnabled(Bool b)                         { m_scalableNestingSEIEnabled = b; }
     877  Bool  getScalableNestingSEIEnabled() const                         { return m_scalableNestingSEIEnabled; }
    878878  Void  setTMCTSSEIEnabled(Bool b)                                   { m_tmctsSEIEnabled = b; }
    879879  Bool  getTMCTSSEIEnabled()                                         { return m_tmctsSEIEnabled; }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r1442 r1459  
    11391139
    11401140  // The last DU may have a trailing SEI
    1141   if (m_pcCfg->getDecodedPictureHashSEIEnabled())
     1141  if (m_pcCfg->getDecodedPictureHashSEIType()!=HASHTYPE_NONE)
    11421142  {
    11431143    duData.back().accumBitsDU += ( 20 << 3 ); // probably around 20 bytes - should be further adjusted, e.g. by type
     
    14731473  {
    14741474    return 1;
     1475  }
     1476}
     1477
     1478
     1479static Void
     1480printHash(const HashType hashType, const std::string &digestStr)
     1481{
     1482  const TChar *decodedPictureHashModeName;
     1483  switch (hashType)
     1484  {
     1485    case HASHTYPE_MD5:
     1486      decodedPictureHashModeName = "MD5";
     1487      break;
     1488    case HASHTYPE_CRC:
     1489      decodedPictureHashModeName = "CRC";
     1490      break;
     1491    case HASHTYPE_CHECKSUM:
     1492      decodedPictureHashModeName = "Checksum";
     1493      break;
     1494    default:
     1495      decodedPictureHashModeName = NULL;
     1496      break;
     1497  }
     1498  if (decodedPictureHashModeName != NULL)
     1499  {
     1500    if (digestStr.empty())
     1501    {
     1502      printf(" [%s:%s]", decodedPictureHashModeName, "?");
     1503    }
     1504    else
     1505    {
     1506      printf(" [%s:%s]", decodedPictureHashModeName, digestStr.c_str());
     1507    }
    14751508  }
    14761509}
     
    28332866
    28342867    std::string digestStr;
    2835     if (m_pcCfg->getDecodedPictureHashSEIEnabled())
     2868    if (m_pcCfg->getDecodedPictureHashSEIType()!=HASHTYPE_NONE)
    28362869    {
    28372870      SEIDecodedPictureHash *decodedPictureHashSei = new SEIDecodedPictureHash();
     
    28542887    xCalculateAddPSNRs( isField, isTff, iGOPid, pcPic, accessUnit, rcListPic, dEncTime, snr_conversion, printFrameMSE );
    28552888
    2856     if (!digestStr.empty())
    2857     {
    2858       if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 1)
    2859       {
    2860         printf(" [MD5:%s]", digestStr.c_str());
    2861       }
    2862       else if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 2)
    2863       {
    2864         printf(" [CRC:%s]", digestStr.c_str());
    2865       }
    2866       else if(m_pcCfg->getDecodedPictureHashSEIEnabled() == 3)
    2867       {
    2868         printf(" [Checksum:%s]", digestStr.c_str());
    2869       }
    2870     }
     2889    printHash(m_pcCfg->getDecodedPictureHashSEIType(), digestStr);
    28712890
    28722891    if ( m_pcCfg->getUseRateCtrl() )
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncSlice.cpp

    r1401 r1459  
    859859    {
    860860      // This will only occur if dependent slice-segments (m_entropyCodingSyncContextState=true) are being used.
    861       if( pCurrentTile->getTileWidthInCtus() >= 2 || !m_pcCfg->getWaveFrontsynchro() )
     861      if( pCurrentTile->getTileWidthInCtus() >= 2 || !m_pcCfg->getEntropyCodingSyncEnabledFlag() )
    862862      {
    863863        m_pppcRDSbacCoder[0][CI_CURR_BEST]->loadContexts( &m_lastSliceSegmentEndContextState );
     
    884884      m_pppcRDSbacCoder[0][CI_CURR_BEST]->resetEntropy(pcSlice);
    885885    }
    886     else if ( ctuXPosInCtus == tileXPosInCtus && m_pcCfg->getWaveFrontsynchro())
     886    else if ( ctuXPosInCtus == tileXPosInCtus && m_pcCfg->getEntropyCodingSyncEnabledFlag())
    887887    {
    888888      // reset and then update contexts to the state at the end of the top-right CTU (if within current slice and tile).
     
    10071007
    10081008    // Store probabilities of second CTU in line into buffer - used only if wavefront-parallel-processing is enabled.
    1009     if ( ctuXPosInCtus == tileXPosInCtus+1 && m_pcCfg->getWaveFrontsynchro())
     1009    if ( ctuXPosInCtus == tileXPosInCtus+1 && m_pcCfg->getEntropyCodingSyncEnabledFlag())
    10101010    {
    10111011      m_entropyCodingSyncContextState.loadContexts(m_pppcRDSbacCoder[0][CI_CURR_BEST]);
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp

    r1442 r1459  
    204204  delete [] m_pppcRDSbacCoder;
    205205  delete [] m_pppcBinCoderCABAC;
    206  
     206
    207207#if SVC_EXTENSION
    208208  for(Int i=0; i<MAX_NUM_REF; i++)
     
    909909
    910910  m_cSPS.setLog2MinCodingBlockSize(log2MinCUSize);
    911  
     911
    912912#if SVC_EXTENSION
    913913  m_cSPS.setSPSId         ( m_iSPSIdCnt       );
    914914#endif
    915  
     915
    916916  m_cSPS.setPCMLog2MinSize (m_uiPCMLog2MinSize);
    917917  m_cSPS.setUsePCM        ( m_usePCM           );
     
    12551255  m_cPPS.setQpOffset(COMPONENT_Cr, m_chromaCrQpOffset );
    12561256
    1257   m_cPPS.setEntropyCodingSyncEnabledFlag( m_iWaveFrontSynchro > 0 );
     1257  m_cPPS.setEntropyCodingSyncEnabledFlag( m_entropyCodingSyncEnabledFlag );
    12581258  m_cPPS.setTilesEnabledFlag( (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0) );
    12591259  m_cPPS.setUseWP( m_useWeightedPred );
Note: See TracChangeset for help on using the changeset viewer.