Changeset 1459 in SHVCSoftware for branches/SHM-dev/source/App
- Timestamp:
- 20 Aug 2015, 19:49:34 (9 years ago)
- Location:
- branches/SHM-dev/source/App/TAppEncoder
- Files:
-
- 4 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 );
Note: See TracChangeset for help on using the changeset viewer.