Changeset 1459 in SHVCSoftware
- Timestamp:
- 20 Aug 2015, 19:49:34 (9 years ago)
- Location:
- branches/SHM-dev/source
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r1448 r1459 776 776 string* cfg_colourRemapSEIFileName[MAX_LAYERS]; 777 777 #endif 778 Int* cfg_waveFrontSynchro[MAX_LAYERS];778 Bool* cfg_entropyCodingSyncEnabledFlag[MAX_LAYERS]; 779 779 Int* cfg_layerSwitchOffBegin[MAX_LAYERS]; 780 780 Int* cfg_layerSwitchOffEnd[MAX_LAYERS]; … … 831 831 cfg_scalingListFileName [layer] = &m_apcLayerCfg[layer]->m_scalingListFileName; 832 832 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; 835 835 for(Int i = 0; i < m_numLayers; i++) 836 836 { … … 923 923 Int tmpFastInterSearchMode; 924 924 Int tmpMotionEstimationSearchMethod; 925 Int tmpSliceMode; 926 Int tmpSliceSegmentMode; 927 Int tmpDecodedPictureHashSEIMappedType; 925 928 string inputColourSpaceConvert; 926 929 #if SVC_EXTENSION … … 1328 1331 ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "Max number of SAO offset per picture (Default: 2048)") 1329 1332 ("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") 1331 1334 ("SliceArgument", m_sliceArgument, 0, "Depending on SliceMode being:" 1332 1335 "\t1: max number of CTUs per slice" 1333 1336 "\t2: max number of bytes per slice" 1334 1337 "\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") 1336 1339 ("SliceSegmentArgument", m_sliceSegmentArgument, 0, "Depending on SliceSegmentMode being:" 1337 1340 "\t1: max number of CTUs per slice segment" … … 1370 1373 ("FIS", m_useFastIntraScalable, false, "Fast Intra Decision for Scalable HEVC") 1371 1374 #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") 1373 1376 ("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") 1374 1377 ("ScalingListFile%d", cfg_scalingListFileName, string(""), m_numLayers, "Scaling list file name. Use an empty string to produce help.") 1375 1378 #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") 1377 1380 ("ScalingList", m_useScalingListId, SCALING_LIST_OFF, "0/off: no scaling list, 1/default: default scaling lists, 2/file: scaling lists specified in ScalingListFile") 1378 1381 ("ScalingListFile", m_scalingListFileName, string(""), "Scaling list file name. Use an empty string to produce help.") … … 1381 1384 ("MaxNumMergeCand", m_maxNumMergeCand, 5u, "Maximum number of merge candidates") 1382 1385 /* 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" 1384 1387 "\t3: checksum\n" 1385 1388 "\t2: CRC\n" … … 1459 1462 ("Log2MaxMvLengthHorizontal", m_log2MaxMvLengthHorizontal, 15, "Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units") 1460 1463 ("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") 1464 1467 ("SEIToneMappingInfo", m_toneMappingInfoSEIEnabled, false, "Control generation of Tone Mapping SEI messages") 1465 1468 ("SEIToneMapId", m_toneMapId, 0, "Specifies Id of Tone Mapping SEI message for a given session") … … 1503 1506 "\t1: User-defined - Filter coefficients are specified in the chroma sampling filter hint SEI message" 1504 1507 "\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") 1506 1509 ("SEIFramePackingType", m_framePackingSEIType, 0, "Define frame packing arrangement\n" 1507 1510 "\t3: side by side - frames are displayed horizontally\n" … … 1514 1517 "\t1: stereo pair, frame0 represents left view\n" 1515 1518 "\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") 1517 1520 ("SEISegmentedRectFramePackingCancel", m_segmentedRectFramePackingSEICancel, false, "If equal to 1, cancels the persistence of any previous SRFPA SEI message") 1518 1521 ("SEISegmentedRectFramePackingType", m_segmentedRectFramePackingSEIType, 0, "Specifies the arrangement of the frames in the reconstructed picture") … … 1521 1524 "\tN: 0 < N < (2^16 - 1) enable display orientation SEI message with anticlockwise_rotation = N and display_orientation_repetition_period = 1\n" 1522 1525 "\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") 1525 1528 ("SEINoDisplay", m_noDisplaySEITLayer, 0, "Control generation of no display SEI message\n" 1526 1529 "\tN: 0 < N enable no display SEI message for temporal layer N or higher\n" 1527 1530 "\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") 1531 1534 ("SEITempMotionConstrainedTileSets", m_tmctsSEIEnabled, false, "Control generation of temporal motion constrained tile sets SEI message") 1532 1535 ("SEITimeCodeEnabled", m_timeCodeSEIEnabled, false, "Control generation of time code information SEI message") … … 2633 2636 } 2634 2637 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 2635 2666 // allocate slice-based dQP values 2636 2667 m_aidQP = new Int[ m_framesToBeEncoded + m_iGOPSize + 1 ]; … … 2674 2705 { 2675 2706 FILE* fpt=fopen( m_dQPFileName.c_str(), "r" ); 2676 2677 2707 if ( fpt ) 2678 2708 { … … 2934 2964 m_uiLog2DiffMaxMinCodingBlockSize = m_uiMaxCUDepth - 1; 2935 2965 #endif 2936 2966 2937 2967 // print-out parameters 2938 2968 xPrintParameter(); … … 2994 3024 UInt& m_uiQuadtreeTUMaxDepthIntra = m_apcLayerCfg[layerIdx]->m_uiQuadtreeTUMaxDepthIntra; 2995 3025 2996 Int& m_iWaveFrontSynchro = m_apcLayerCfg[layerIdx]->m_waveFrontSynchro;3026 Bool& m_entropyCodingSyncEnabledFlag = m_apcLayerCfg[layerIdx]->m_entropyCodingSyncEnabledFlag; 2997 3027 2998 3028 Int& m_maxTempLayer = m_apcLayerCfg[layerIdx]->m_maxTempLayer; … … 3004 3034 #endif 3005 3035 3006 if ( !m_decodedPictureHashSEIEnabled)3036 if (m_decodedPictureHashSEIType==HASHTYPE_NONE) 3007 3037 { 3008 3038 fprintf(stderr, "******************************************************************\n"); … … 3165 3195 xConfirmPara( m_inputColourSpaceConvert >= NUMBER_INPUT_COLOUR_SPACE_CONVERSIONS, sTempIPCSC.c_str() ); 3166 3196 xConfirmPara( m_InputChromaFormatIDC >= NUM_CHROMA_FORMAT, "InputChromaFormatIDC must be either 400, 420, 422 or 444" ); 3167 3168 3197 xConfirmPara( m_iFrameRate <= 0, "Frame rate must be more than 1" ); 3169 3198 xConfirmPara( m_framesToBeEncoded <= 0, "Total Number Of Frames encoded must be more than 0" ); … … 3255 3284 xConfirmPara( m_uiQuadtreeTUMaxDepthIntra < 1, "QuadtreeTUMaxDepthIntra must be greater than or equal to 1" ); 3256 3285 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 3258 3287 xConfirmPara( m_maxNumMergeCand < 1, "MaxNumMergeCand must be 1 or greater."); 3259 3288 xConfirmPara( m_maxNumMergeCand > 5, "MaxNumMergeCand must be 5 or smaller."); … … 3276 3305 } 3277 3306 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) 3280 3308 { 3281 3309 xConfirmPara( m_sliceArgument < 1 , "SliceArgument should be larger than or equal to 1" ); 3282 3310 } 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) 3285 3312 { 3286 3313 xConfirmPara( m_sliceSegmentArgument < 1 , "SliceSegmentArgument should be larger than or equal to 1" ); 3287 3314 } 3288 3315 3289 3316 Bool tileFlag = (m_numTileColumnsMinus1 > 0 || m_numTileRowsMinus1 > 0 ); 3290 3317 if (m_profile!=Profile::HIGHTHROUGHPUTREXT) 3291 3318 { 3292 xConfirmPara( tileFlag && m_ iWaveFrontSynchro, "Tile and Wavefrontcan 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"); 3293 3320 } 3294 3321 … … 3402 3429 3403 3430 m_extraRPSs=0; 3404 3405 3431 //start looping through frames in coding order until we can verify that the GOP structure is correct. 3406 3432 while(!verifiedGOP&&!errorGOP) … … 3528 3554 m_GOPList[m_iGOPSize+m_extraRPSs].m_referencePics[j]=prev; 3529 3555 m_GOPList[m_iGOPSize+m_extraRPSs].m_usedByCurrPic[j]=prevUsed; 3530 3531 3556 prevUsed=newUsed; 3532 3557 prev=newPrev; … … 3540 3565 } 3541 3566 } 3542 3543 3567 m_GOPList[m_iGOPSize+m_extraRPSs].m_numRefPics=newRefs; 3544 3568 m_GOPList[m_iGOPSize+m_extraRPSs].m_POC = curPOC; 3545 3546 3569 if (m_extraRPSs == 0) 3547 3570 { … … 3555 3578 Int refPics = m_GOPList[rIdx].m_numRefPics; 3556 3579 Int newIdc=0; 3557 for(Int i = 0; i<= refPics; i++) 3580 for(Int i = 0; i<= refPics; i++) 3558 3581 { 3559 3582 Int deltaPOC = ((i != refPics)? m_GOPList[rIdx].m_referencePics[i] : 0); // check if the reference abs POC is >= 0 3560 3583 Int absPOCref = refPOC+deltaPOC; 3561 3584 Int refIdc = 0; 3562 3563 3585 for (Int j = 0; j < m_GOPList[m_iGOPSize+m_extraRPSs].m_numRefPics; j++) 3564 3586 { … … 3578 3600 newIdc++; 3579 3601 } 3580 m_GOPList[m_iGOPSize+m_extraRPSs].m_interRPSPrediction = 1; 3602 m_GOPList[m_iGOPSize+m_extraRPSs].m_interRPSPrediction = 1; 3581 3603 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; 3583 3605 } 3584 3606 curGOP=m_iGOPSize+m_extraRPSs; 3585 3607 m_extraRPSs++; 3586 3608 } 3587 3588 3609 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++) 3590 3611 { 3591 3612 Int absPOC = curPOC+m_GOPList[curGOP].m_referencePics[i]; 3592 if(absPOC >= 0) 3613 if(absPOC >= 0) 3593 3614 { 3594 3615 refList[numRefs]=absPOC; … … 3602 3623 } 3603 3624 xConfirmPara(errorGOP,"Invalid GOP structure given"); 3604 3605 3625 m_maxTempLayer = 1; 3606 3626 for(Int i=0; i<m_iGOPSize; i++) … … 3612 3632 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"); 3613 3633 } 3614 3615 3634 for(Int i=0; i<MAX_TLAYER; i++) 3616 3635 { … … 3731 3750 m_minSpatialSegmentationIdc = 4*PicSizeInSamplesY/maxSizeInSamplesY-4; 3732 3751 } 3733 else if(m_ iWaveFrontSynchro)3752 else if(m_entropyCodingSyncEnabledFlag) 3734 3753 { 3735 3754 m_minSpatialSegmentationIdc = 4*PicSizeInSamplesY/((2*m_iSourceHeight+m_iSourceWidth)*m_uiMaxCUHeight)-4; … … 3744 3763 } 3745 3764 } 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");3749 3765 3750 3766 if (m_toneMappingInfoSEIEnabled) … … 3841 3857 if (m_segmentedRectFramePackingSEIEnabled) 3842 3858 { 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"); 3844 3860 } 3845 3861 … … 4205 4221 printf("persistent_rice_adaptation_enabled_flag: %s\n", (m_persistentRiceAdaptationEnabledFlag ? "Enabled" : "Disabled") ); 4206 4222 printf("cabac_bypass_alignment_enabled_flag : %s\n", (m_cabacBypassAlignmentEnabledFlag ? "Enabled" : "Disabled") ); 4207 4208 4223 if (m_bUseSAO) 4209 4224 { … … 4285 4300 UInt& m_uiMaxCUHeight = m_apcLayerCfg[layer]->m_uiMaxCUHeight; 4286 4301 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; 4288 4303 ScalingListMode& m_useScalingListId = m_apcLayerCfg[layer]->m_useScalingListId; 4289 4304 … … 4310 4325 printf("TransformSkipFast:%d ", m_useTransformSkipFast ); 4311 4326 printf("TransformSkipLog2MaxSize:%d ", m_log2MaxTransformSkipBlockSize); 4312 printf("Slice: M=%d ", m_sliceMode);4327 printf("Slice: M=%d ", Int(m_sliceMode)); 4313 4328 if (m_sliceMode!=NO_SLICES) 4314 4329 { … … 4336 4351 printf("WPB:%d ", (Int)m_useWeightedBiPred); 4337 4352 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); 4341 4355 printf(" ScalingList:%d ", m_useScalingListId ); 4342 4356 printf("TMVPMode:%d ", m_TMVPModeId ); -
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
r1448 r1459 172 172 #if !SVC_EXTENSION 173 173 Int m_extraRPSs; ///< extra RPSs added to handle CRA 174 175 174 GOPEntry m_GOPList[MAX_GOP]; ///< the coding structure entries from the config file 176 175 #endif … … 236 235 UInt m_uiQuadtreeTUMaxDepthIntra; 237 236 #endif 238 237 239 238 // coding tools (bit-depth) 240 239 #if !SVC_EXTENSION … … 300 299 Bool m_bUseCbfFastMode; ///< flag for using Cbf Fast PU Mode Decision 301 300 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 308 305 309 306 Bool m_bLFCrossSliceBoundaryFlag; ///< 1: filter across slice boundaries 0: do not filter across slice boundaries … … 316 313 317 314 #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; 320 316 #endif 321 317 … … 325 321 Bool m_bUseBLambdaForNonKeyLowDelayPictures; 326 322 327 Int m_decodedPictureHashSEIEnabled; ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting ondecoded picture hash SEI message328 Intm_recoveryPointSEIEnabled;329 Intm_bufferingPeriodSEIEnabled;330 Intm_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; 331 327 Bool m_toneMappingInfoSEIEnabled; 332 328 Bool m_chromaResamplingFilterSEIenabled; … … 359 355 Int* m_codedPivotValue; 360 356 Int* m_targetPivotValue; 361 Intm_framePackingSEIEnabled;357 Bool m_framePackingSEIEnabled; 362 358 Int m_framePackingSEIType; 363 359 Int m_framePackingSEIId; 364 360 Int m_framePackingSEIQuincunx; 365 361 Int m_framePackingSEIInterpretation; 366 Intm_segmentedRectFramePackingSEIEnabled;362 Bool m_segmentedRectFramePackingSEIEnabled; 367 363 Bool m_segmentedRectFramePackingSEICancel; 368 364 Int m_segmentedRectFramePackingSEIType; 369 365 Bool m_segmentedRectFramePackingSEIPersistence; 370 366 Int m_displayOrientationSEIAngle; 371 Intm_temporalLevel0IndexSEIEnabled;372 Intm_gradualDecodingRefreshInfoEnabled;367 Bool m_temporalLevel0IndexSEIEnabled; 368 Bool m_gradualDecodingRefreshInfoEnabled; 373 369 Int m_noDisplaySEITLayer; 374 Intm_decodingUnitInfoSEIEnabled;375 Intm_SOPDescriptionSEIEnabled;376 Intm_scalableNestingSEIEnabled;370 Bool m_decodingUnitInfoSEIEnabled; 371 Bool m_SOPDescriptionSEIEnabled; 372 Bool m_scalableNestingSEIEnabled; 377 373 Bool m_tmctsSEIEnabled; 378 374 Bool m_timeCodeSEIEnabled; … … 565 561 Void destroy (); ///< destroy option handling class 566 562 Bool parseCfg ( Int argc, TChar* argv[] ); ///< parse configuration file to fill member variables 567 563 568 564 #if SVC_EXTENSION 569 565 Bool parseCfgNumLayersAndInit( Int argc, TChar* argv[] ); ///< parse configuration file to to get number of layers and allocate memory … … 580 576 581 577 Int getDecodingRefreshType() { return m_iDecodingRefreshType; } 582 Int getWaveFrontSynchro(Int layerIdx) { return m_apcLayerCfg[layerIdx]->m_waveFrontSynchro; }583 578 Void getDirFilename(string& filename, string& dir, const string path); 584 579 -
branches/SHM-dev/source/App/TAppEncoder/TAppEncLayerCfg.h
r1452 r1459 104 104 105 105 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; 108 107 109 108 Int m_iQP; ///< QP value of key-picture (integer) -
branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp
r1450 r1459 486 486 UInt& m_uiQuadtreeTUMaxDepthIntra = m_apcLayerCfg[layer]->m_uiQuadtreeTUMaxDepthIntra; 487 487 488 Int& m_iWaveFrontSynchro = m_apcLayerCfg[layer]->m_waveFrontSynchro;488 Bool& m_entropyCodingSyncEnabledFlag = m_apcLayerCfg[layer]->m_entropyCodingSyncEnabledFlag; 489 489 Bool& m_RCEnableRateControl = m_apcLayerCfg[layer]->m_RCEnableRateControl; 490 490 Int& m_RCTargetBitrate = m_apcLayerCfg[layer]->m_RCTargetBitrate; … … 674 674 675 675 //====== 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 ); 678 678 679 679 //====== 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 ); 682 682 683 683 if(m_sliceMode == NO_SLICES ) … … 697 697 698 698 m_cTEncTop.setIntraSmoothingDisabledFlag (!m_enableIntraReferenceSmoothing ); 699 m_cTEncTop.setDecodedPictureHashSEI Enabled ( m_decodedPictureHashSEIEnabled);699 m_cTEncTop.setDecodedPictureHashSEIType ( m_decodedPictureHashSEIType ); 700 700 m_cTEncTop.setRecoveryPointSEIEnabled ( m_recoveryPointSEIEnabled ); 701 701 m_cTEncTop.setBufferingPeriodSEIEnabled ( m_bufferingPeriodSEIEnabled ); … … 782 782 } 783 783 m_cTEncTop.setLFCrossTileBoundaryFlag ( m_bLFCrossTileBoundaryFlag ); 784 m_cTEncTop.set WaveFrontSynchro ( m_iWaveFrontSynchro);784 m_cTEncTop.setEntropyCodingSyncEnabledFlag ( m_entropyCodingSyncEnabledFlag ); 785 785 m_cTEncTop.setTMVPModeId ( m_TMVPModeId ); 786 786 m_cTEncTop.setUseScalingListId ( m_useScalingListId ); -
branches/SHM-dev/source/Lib/TLibCommon/SEI.h
r1442 r1459 158 158 virtual ~SEIDecodedPictureHash() {} 159 159 160 enum Method 161 { 162 MD5, 163 CRC, 164 CHECKSUM, 165 RESERVED, 166 } method; 160 HashType method; 167 161 168 162 TComPictureHash m_pictureHash; -
branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h
r1442 r1459 558 558 FIXED_NUMBER_OF_BYTES = 2, ///< Limit maximum number of bytes in a slice / slice segment 559 559 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. 564 enum HashType 565 { 566 HASHTYPE_MD5 = 0, 567 HASHTYPE_CRC = 1, 568 HASHTYPE_CHECKSUM = 2, 569 HASHTYPE_NONE = 3, 570 NUMBER_OF_HASHTYPES = 4 560 571 }; 561 572 -
branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp
r1442 r1459 520 520 UInt val; 521 521 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++; 523 523 524 524 const TChar *traceString="\0"; 525 525 switch (sei.method) 526 526 { 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; 530 530 default: assert(false); break; 531 531 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecGop.cpp
r1442 r1459 95 95 #if SVC_EXTENSION 96 96 Void TDecGop::init( TDecTop** ppcDecTop, 97 TDecEntropy*pcEntropyDecoder,97 TDecEntropy* pcEntropyDecoder, 98 98 #else 99 99 Void TDecGop::init( TDecEntropy* pcEntropyDecoder, … … 290 290 switch (pictureHashSEI->method) 291 291 { 292 case SEIDecodedPictureHash::MD5:292 case HASHTYPE_MD5: 293 293 { 294 294 hashType = "MD5"; … … 296 296 break; 297 297 } 298 case SEIDecodedPictureHash::CRC:298 case HASHTYPE_CRC: 299 299 { 300 300 hashType = "CRC"; … … 302 302 break; 303 303 } 304 case SEIDecodedPictureHash::CHECKSUM:304 case HASHTYPE_CHECKSUM: 305 305 { 306 306 hashType = "Checksum"; -
branches/SHM-dev/source/Lib/TLibEncoder/SEIEncoder.cpp
r1434 r1459 312 312 assert (pcPic!=NULL); 313 313 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; 331 336 } 332 337 } -
branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.cpp
r1442 r1459 309 309 switch (sei.method) 310 310 { 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; 314 314 default: assert(false); break; 315 315 } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h
r1442 r1459 257 257 std::vector<Int> m_tileRowHeight; 258 258 259 Int m_iWaveFrontSynchro;260 261 Int m_decodedPictureHashSEIEnabled; ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message262 Intm_bufferingPeriodSEIEnabled;263 Intm_pictureTimingSEIEnabled;264 Intm_recoveryPointSEIEnabled;259 Bool m_entropyCodingSyncEnabledFlag; 260 261 HashType m_decodedPictureHashSEIType; 262 Bool m_bufferingPeriodSEIEnabled; 263 Bool m_pictureTimingSEIEnabled; 264 Bool m_recoveryPointSEIEnabled; 265 265 Bool m_toneMappingInfoSEIEnabled; 266 266 Int m_toneMapId; … … 290 290 Int* m_codedPivotValue; 291 291 Int* m_targetPivotValue; 292 Intm_framePackingSEIEnabled;292 Bool m_framePackingSEIEnabled; 293 293 Int m_framePackingSEIType; 294 294 Int m_framePackingSEIId; 295 295 Int m_framePackingSEIQuincunx; 296 296 Int m_framePackingSEIInterpretation; 297 Intm_segmentedRectFramePackingSEIEnabled;297 Bool m_segmentedRectFramePackingSEIEnabled; 298 298 Bool m_segmentedRectFramePackingSEICancel; 299 299 Int m_segmentedRectFramePackingSEIType; 300 300 Bool m_segmentedRectFramePackingSEIPersistence; 301 301 Int m_displayOrientationSEIAngle; 302 Intm_temporalLevel0IndexSEIEnabled;303 Intm_gradualDecodingRefreshInfoEnabled;302 Bool m_temporalLevel0IndexSEIEnabled; 303 Bool m_gradualDecodingRefreshInfoEnabled; 304 304 Int m_noDisplaySEITLayer; 305 Intm_decodingUnitInfoSEIEnabled;306 Intm_SOPDescriptionSEIEnabled;307 Intm_scalableNestingSEIEnabled;305 Bool m_decodingUnitInfoSEIEnabled; 306 Bool m_SOPDescriptionSEIEnabled; 307 Bool m_scalableNestingSEIEnabled; 308 308 Bool m_tmctsSEIEnabled; 309 309 Bool m_timeCodeSEIEnabled; … … 780 780 UInt getRowHeight ( UInt rowIdx ) { return m_tileRowHeight[rowIdx]; } 781 781 Void xCheckGSParameters(); 782 Void set WaveFrontSynchro(Int iWaveFrontSynchro) { m_iWaveFrontSynchro = iWaveFrontSynchro; }783 Int getWaveFrontsynchro() { return m_iWaveFrontSynchro; }784 Void setDecodedPictureHashSEI Enabled(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; } 792 792 Void setToneMappingInfoSEIEnabled(Bool b) { m_toneMappingInfoSEIEnabled = b; } 793 793 Bool getToneMappingInfoSEIEnabled() { return m_toneMappingInfoSEIEnabled; } … … 844 844 Void setTMISEIExtendedWhiteLevelLumaCodeValue(Int b) { m_extendedWhiteLevelLumaCodeValue =b; } 845 845 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; } 848 848 Void setFramePackingArrangementSEIType(Int b) { m_framePackingSEIType = b; } 849 849 Int getFramePackingArrangementSEIType() { return m_framePackingSEIType; } … … 854 854 Void setFramePackingArrangementSEIInterpretation(Int b) { m_framePackingSEIInterpretation = b; } 855 855 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; } 858 858 Void setSegmentedRectFramePackingArrangementSEICancel(Int b) { m_segmentedRectFramePackingSEICancel = b; } 859 859 Int getSegmentedRectFramePackingArrangementSEICancel() { return m_segmentedRectFramePackingSEICancel; } … … 864 864 Void setDisplayOrientationSEIAngle(Int b) { m_displayOrientationSEIAngle = b; } 865 865 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; } 870 870 Void setNoDisplaySEITLayer(Int b) { m_noDisplaySEITLayer = b; } 871 871 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; } 878 878 Void setTMCTSSEIEnabled(Bool b) { m_tmctsSEIEnabled = b; } 879 879 Bool getTMCTSSEIEnabled() { return m_tmctsSEIEnabled; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1442 r1459 1139 1139 1140 1140 // The last DU may have a trailing SEI 1141 if (m_pcCfg->getDecodedPictureHashSEI Enabled())1141 if (m_pcCfg->getDecodedPictureHashSEIType()!=HASHTYPE_NONE) 1142 1142 { 1143 1143 duData.back().accumBitsDU += ( 20 << 3 ); // probably around 20 bytes - should be further adjusted, e.g. by type … … 1473 1473 { 1474 1474 return 1; 1475 } 1476 } 1477 1478 1479 static Void 1480 printHash(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 } 1475 1508 } 1476 1509 } … … 2833 2866 2834 2867 std::string digestStr; 2835 if (m_pcCfg->getDecodedPictureHashSEI Enabled())2868 if (m_pcCfg->getDecodedPictureHashSEIType()!=HASHTYPE_NONE) 2836 2869 { 2837 2870 SEIDecodedPictureHash *decodedPictureHashSei = new SEIDecodedPictureHash(); … … 2854 2887 xCalculateAddPSNRs( isField, isTff, iGOPid, pcPic, accessUnit, rcListPic, dEncTime, snr_conversion, printFrameMSE ); 2855 2888 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); 2871 2890 2872 2891 if ( m_pcCfg->getUseRateCtrl() ) -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r1401 r1459 859 859 { 860 860 // This will only occur if dependent slice-segments (m_entropyCodingSyncContextState=true) are being used. 861 if( pCurrentTile->getTileWidthInCtus() >= 2 || !m_pcCfg->get WaveFrontsynchro() )861 if( pCurrentTile->getTileWidthInCtus() >= 2 || !m_pcCfg->getEntropyCodingSyncEnabledFlag() ) 862 862 { 863 863 m_pppcRDSbacCoder[0][CI_CURR_BEST]->loadContexts( &m_lastSliceSegmentEndContextState ); … … 884 884 m_pppcRDSbacCoder[0][CI_CURR_BEST]->resetEntropy(pcSlice); 885 885 } 886 else if ( ctuXPosInCtus == tileXPosInCtus && m_pcCfg->get WaveFrontsynchro())886 else if ( ctuXPosInCtus == tileXPosInCtus && m_pcCfg->getEntropyCodingSyncEnabledFlag()) 887 887 { 888 888 // reset and then update contexts to the state at the end of the top-right CTU (if within current slice and tile). … … 1007 1007 1008 1008 // Store probabilities of second CTU in line into buffer - used only if wavefront-parallel-processing is enabled. 1009 if ( ctuXPosInCtus == tileXPosInCtus+1 && m_pcCfg->get WaveFrontsynchro())1009 if ( ctuXPosInCtus == tileXPosInCtus+1 && m_pcCfg->getEntropyCodingSyncEnabledFlag()) 1010 1010 { 1011 1011 m_entropyCodingSyncContextState.loadContexts(m_pppcRDSbacCoder[0][CI_CURR_BEST]); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp
r1442 r1459 204 204 delete [] m_pppcRDSbacCoder; 205 205 delete [] m_pppcBinCoderCABAC; 206 206 207 207 #if SVC_EXTENSION 208 208 for(Int i=0; i<MAX_NUM_REF; i++) … … 909 909 910 910 m_cSPS.setLog2MinCodingBlockSize(log2MinCUSize); 911 911 912 912 #if SVC_EXTENSION 913 913 m_cSPS.setSPSId ( m_iSPSIdCnt ); 914 914 #endif 915 915 916 916 m_cSPS.setPCMLog2MinSize (m_uiPCMLog2MinSize); 917 917 m_cSPS.setUsePCM ( m_usePCM ); … … 1255 1255 m_cPPS.setQpOffset(COMPONENT_Cr, m_chromaCrQpOffset ); 1256 1256 1257 m_cPPS.setEntropyCodingSyncEnabledFlag( m_ iWaveFrontSynchro > 0);1257 m_cPPS.setEntropyCodingSyncEnabledFlag( m_entropyCodingSyncEnabledFlag ); 1258 1258 m_cPPS.setTilesEnabledFlag( (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0) ); 1259 1259 m_cPPS.setUseWP( m_useWeightedPred );
Note: See TracChangeset for help on using the changeset viewer.