Changeset 766 in 3DVCSoftware for branches/HTM-9.2-dev0/source/App
- Timestamp:
- 12 Jan 2014, 03:29:17 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source/App
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecCfg.cpp
r738 r766 85 85 ("OutputBitDepthC,d", m_outputBitDepthC, 0, "bit depth of YUV output chroma component (default: use 0 for native depth)") 86 86 #if H_MV 87 #if H_MV_6_HRD_O0217_1388 87 ("TargetOptLayerSetIdx,x", m_targetOptLayerSetIdx, -1, "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 89 #else90 ("MaxLayerId,-ls", m_maxLayerId, MAX_NUM_LAYER_IDS-1, "Maximum LayerId to be decoded.")91 #endif92 88 #endif 93 89 ("MaxTemporalLayer,t", m_iMaxTemporalLayer, -1, "Maximum Temporal Layer to be decoded. -1 to decode all layers") … … 128 124 if ( !cfg_TargetDecLayerIdSetFile.empty() ) 129 125 { 130 #if H_MV_6_HRD_O0217_13131 126 m_targetDecLayerIdSetFileEmpty = false; 132 #endif133 127 FILE* targetDecLayerIdSetFile = fopen ( cfg_TargetDecLayerIdSetFile.c_str(), "r" ); 134 128 if ( targetDecLayerIdSetFile ) … … 174 168 } 175 169 #if H_MV 176 #if H_MV_6_HRD_O0217_13177 170 m_targetDecLayerIdSet.push_back( 0 ); // Only base layer at startup 178 #else179 else180 {181 for ( Int curLayerId = 0; curLayerId <= m_maxLayerId; curLayerId++ )182 {183 m_targetDecLayerIdSet.push_back( curLayerId );184 }185 }186 #endif187 171 #endif 188 172 -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecCfg.h
r738 r766 59 59 Char* m_pchBitstreamFile; ///< input bitstream file name 60 60 #if H_MV 61 #if H_MV_6_HRD_O0217_1362 61 Int m_targetOptLayerSetIdx; ///< target output layer set index 63 #endif64 62 Int m_maxLayerId; ///< maximum nuh_layer_id decoded 65 63 std::vector<Char*> m_pchReconFiles; ///< array of output reconstruction file name create from output reconstruction file name … … 77 75 78 76 std::vector<Int> m_targetDecLayerIdSet; ///< set of LayerIds to be included in the sub-bitstream extraction process. 79 #if H_MV_6_HRD_O0217_1380 77 Bool m_targetDecLayerIdSetFileEmpty; ///< indication if target layers are given by file 81 #endif82 78 Int m_respectDefDispWindow; ///< Only output content inside the default display window 83 79 … … 89 85 : m_pchBitstreamFile(NULL) 90 86 #if H_MV 91 #if !H_MV_6_HRD_O0217_1392 , m_maxLayerId(0)93 #endif94 87 #endif 95 88 , m_pchReconFile(NULL) … … 99 92 , m_iMaxTemporalLayer(-1) 100 93 , m_decodedPictureHashSEIEnabled(0) 101 #if H_MV_6_HRD_O0217_13102 94 , m_targetDecLayerIdSetFileEmpty(true) 103 #endif104 95 , m_respectDefDispWindow(0) 105 96 {} -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r738 r766 61 61 { 62 62 #if H_MV 63 #if H_MV_LAYER_WISE_STARTUP64 63 for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++) 65 64 { … … 67 66 m_layerInitilizedFlags[i] = false; 68 67 } 69 #else70 for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++) m_layerIdToDecIdx[i] = -1;71 #endif72 68 #endif 73 69 #if H_3D … … 192 188 Bool newSliceDiffPoc = false; 193 189 Bool newSliceDiffLayer = false; 194 #if H_MV_FIX_SKIP_PICTURES195 190 Bool sliceSkippedFlag = false; 196 #endif197 191 #if H_3D 198 192 Bool allLayersDecoded = false; … … 212 206 read(nalu, nalUnit); 213 207 #if H_MV 214 #if !H_MV_6_HRD_O0217_13215 Int decIdx = xGetDecoderIdx( nalu.m_layerId , true );216 #endif217 #if H_MV_6_LAYER_ID_32218 208 if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) || nalu.m_layerId > MAX_NUM_LAYER_IDS-1 ) 219 #else220 if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) )221 #endif222 209 { 223 210 bNewPicture = false; 224 #if H_MV_6_LAYER_ID_32225 211 if ( !bitstreamFile ) 226 212 { 227 213 decIdxLastPic = decIdxCurrPic; 228 214 } 229 #endif230 215 } 231 216 else 232 217 { 233 #if H_MV_6_HRD_O0217_13234 218 Int decIdx = xGetDecoderIdx( nalu.m_layerId , true ); 235 #endif236 219 newSliceDiffLayer = nalu.isSlice() && ( nalu.m_layerId != layerIdCurrPic ) && !firstSlice; 237 #if H_MV_FIX_SKIP_PICTURES238 220 newSliceDiffPoc = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer, sliceSkippedFlag ); 239 #else240 newSliceDiffPoc = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer );241 #endif242 221 // decode function only returns true when all of the following conditions are true 243 222 // - poc in particular layer changes … … 245 224 // - nalu.isSlice() == true 246 225 247 #if H_MV_6_HRD_O0217_13248 226 // Update TargetDecLayerIdList only when not specified by layer id file, specification by file might actually out of conformance. 249 227 if (nalu.m_nalUnitType == NAL_UNIT_VPS && m_targetDecLayerIdSetFileEmpty ) … … 258 236 m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx ); 259 237 } 260 #endif261 #if H_MV_FIX_SKIP_PICTURES262 238 bNewPicture = ( newSliceDiffLayer || newSliceDiffPoc ) && !sliceSkippedFlag; 263 239 if ( nalu.isSlice() && firstSlice && !sliceSkippedFlag ) 264 #else265 bNewPicture = newSliceDiffLayer || newSliceDiffPoc;266 267 if ( nalu.isSlice() && firstSlice )268 #endif269 240 { 270 241 layerIdCurrPic = nalu.m_layerId; … … 881 852 Int decIdx = -1; 882 853 883 #if H_MV_6_LAYER_ID_32884 854 if ( layerId > MAX_NUM_LAYER_IDS-1 ) 885 855 { 886 856 return decIdx; 887 857 } 888 #endif889 858 890 859 if ( m_layerIdToDecIdx[ layerId ] != -1 ) … … 906 875 m_tDecTop[ decIdx ]->setDecodedPictureHashSEIEnabled(m_decodedPictureHashSEIEnabled); 907 876 m_tDecTop[ decIdx ]->setIvPicLists( &m_ivPicLists ); 908 #if H_MV_LAYER_WISE_STARTUP909 877 m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags ); 910 #endif911 878 912 879 #if H_3D -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecTop.h
r738 r766 67 67 Int m_numDecoders; ///< number of decoder instances 68 68 TComPicLists m_ivPicLists; ///< picture buffers of decoder instances 69 #if H_MV_LAYER_WISE_STARTUP70 69 Bool m_layerInitilizedFlags[ MAX_NUM_LAYER_IDS ]; ///< for layerwise startup 71 #endif72 70 73 71 #else -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r765 r766 388 388 ("VpsNumLayerSets", m_vpsNumLayerSets , 1 , "Number of layer sets") 389 389 ("LayerIdsInSet_%d", m_layerIdsInSets , std::vector<Int>(1,0), MAX_VPS_OP_SETS_PLUS1 ,"LayerIds of Layer set") 390 #if H_MV_6_PS_0109_25391 390 ("DefaultOneTargetOutputLayerFlag" , m_defaultOneTargetOutputLayerIdc , 0, "Output highest layer of layer sets by default") 392 #else393 ("DefaultOneTargetOutputLayerFlag", m_defaultOneTargetOutputLayerFlag, false , "Output highest layer of layer sets by default")394 #endif395 391 ("OutputLayerSetIdx", m_outputLayerSetIdx , std::vector<Int>(0,0), "Indices of layer sets used as additional output layer sets") 396 392 ("LayerIdsInAddOutputLayerSet_%d", m_layerIdsInAddOutputLayerSet , std::vector<Int>(1,0), MAX_VPS_ADD_OUTPUT_LAYER_SETS, "LayerIds of additional output layers") … … 450 446 451 447 // Coding structure parameters 452 #if H_MV_LAYER_WISE_STARTUP453 448 ("IntraPeriod,-ip", m_iIntraPeriod,std::vector<Int>(1,-1), "Intra period in frames, (-1: only first frame), per layer") 454 #else455 ("IntraPeriod,-ip", m_iIntraPeriod, -1, "Intra period in frames, (-1: only first frame)")456 #endif457 449 ("DecodingRefreshType,-dr", m_iDecodingRefreshType, 0, "Intra refresh type (0:none 1:CRA 2:IDR)") 458 450 ("GOPSize,g", m_iGOPSize, 1, "GOP size of temporal structure") … … 626 618 #if H_MV 627 619 628 #if H_MV_6_HRD_O0217_13629 620 // DBP Size 630 621 ("SubLayerFlagInfoPresentFlag", m_subLayerFlagInfoPresentFlag , false , "SubLayerFlagInfoPresentFlag") 631 #endif632 622 // VPS VUI 633 623 ("VpsVuiPresentFlag" , m_vpsVuiPresentFlag , false , "VpsVuiPresentFlag ") 634 #if H_MV_6_PS_O0223_29635 624 ("CrossLayerPicTypeAlignedFlag", m_crossLayerPicTypeAlignedFlag, false , "CrossLayerPicTypeAlignedFlag") // Could actually be derived by the encoder 636 625 ("CrossLayerIrapAlignedFlag" , m_crossLayerIrapAlignedFlag , false , "CrossLayerIrapAlignedFlag ") // Could actually be derived by the encoder 637 #endif638 626 ("BitRatePresentVpsFlag" , m_bitRatePresentVpsFlag , false , "BitRatePresentVpsFlag ") 639 627 ("PicRatePresentVpsFlag" , m_picRatePresentVpsFlag , false , "PicRatePresentVpsFlag ") … … 644 632 ("ConstantPicRateIdc" , m_constantPicRateIdc , std::vector< Int >(1,0) ,MAX_VPS_OP_SETS_PLUS1, "ConstantPicRateIdc per sub layer for the N-th layer set") 645 633 ("AvgPicRate" , m_avgPicRate , std::vector< Int >(1,0) ,MAX_VPS_OP_SETS_PLUS1, "AvgPicRate per sub layer for the N-th layer set") 646 #if H_MV_6_O0226_37647 634 ("TilesNotInUseFlag" , m_tilesNotInUseFlag , true , "TilesNotInUseFlag ") 648 635 ("TilesInUseFlag" , m_tilesInUseFlag , std::vector< Bool >(1,false) , "TilesInUseFlag ") … … 650 637 ("WppNotInUseFlag" , m_wppNotInUseFlag , true , "WppNotInUseFlag ") 651 638 ("WppInUseFlag" , m_wppInUseFlag , std::vector< Bool >(1,0) , "WppInUseFlag ") 652 #endif653 639 ("TileBoundariesAlignedFlag" , m_tileBoundariesAlignedFlag , std::vector< Bool >(1,0) ,MAX_NUM_LAYERS , "TileBoundariesAlignedFlag per direct reference for the N-th layer") 654 640 ("IlpRestrictedRefLayersFlag" , m_ilpRestrictedRefLayersFlag , false , "IlpRestrictedRefLayersFlag") … … 1063 1049 xResizeVector( m_bLoopFilterDisable ); 1064 1050 xResizeVector( m_bUseSAO ); 1065 #if H_MV_LAYER_WISE_STARTUP1066 1051 xResizeVector( m_iIntraPeriod ); 1067 #endif1068 #if H_MV_6_O0226_371069 1052 xResizeVector( m_tilesInUseFlag ); 1070 1053 xResizeVector( m_loopFilterNotAcrossTilesFlag ); 1071 1054 xResizeVector( m_wppInUseFlag ); 1072 #endif1073 1055 #else 1074 1056 m_aidQP = new Int[ m_framesToBeEncoded + m_iGOPSize + 1 ]; … … 1415 1397 for ( Int i = 0; i < m_layerIdsInSets[lsIdx].size(); i++ ) 1416 1398 { 1417 #if H_MV_6_LAYER_ID_321418 1399 xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx].size() >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than and less than MAX_NUM_LAYER_IDS" ); 1419 #else1420 xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx].size() >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than and less than 64" );1421 #endif1422 1400 } 1423 1401 } … … 1445 1423 } 1446 1424 1447 #if H_MV_6_PS_0109_251448 1425 xConfirmPara( m_defaultOneTargetOutputLayerIdc < 0 || m_defaultOneTargetOutputLayerIdc > 1, "Default one target output layer idc must be equal to 0 or equal to 1" ); 1449 #endif1450 1426 xConfirmPara( m_profileLevelTierIdx.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" ); 1451 1427 … … 1464 1440 xConfirmPara( m_iGOPSize < 1 , "GOP Size must be greater or equal to 1" ); 1465 1441 xConfirmPara( m_iGOPSize > 1 && m_iGOPSize % 2, "GOP Size must be a multiple of 2, if GOP Size is greater than 1" ); 1466 #if H_MV_LAYER_WISE_STARTUP1467 1442 for( Int layer = 0; layer < m_numberOfLayers; layer++ ) 1468 1443 { 1469 1444 xConfirmPara( (m_iIntraPeriod[layer] > 0 && m_iIntraPeriod[layer] < m_iGOPSize) || m_iIntraPeriod[layer] == 0, "Intra period must be more than GOP size, or -1 , not 0" ); 1470 1445 } 1471 #else1472 xConfirmPara( (m_iIntraPeriod > 0 && m_iIntraPeriod < m_iGOPSize) || m_iIntraPeriod == 0, "Intra period must be more than GOP size, or -1 , not 0" );1473 #endif1474 1446 xConfirmPara( m_iDecodingRefreshType < 0 || m_iDecodingRefreshType > 2, "Decoding Refresh Type must be equal to 0, 1 or 2" ); 1475 1447 #if H_MV … … 1497 1469 if (m_iDecodingRefreshType == 2) 1498 1470 { 1499 #if H_MV_LAYER_WISE_STARTUP1500 1471 for (Int i = 0; i < m_numberOfLayers; i++ ) 1501 1472 { 1502 1473 xConfirmPara( m_iIntraPeriod[i] > 0 && m_iIntraPeriod[i] <= m_iGOPSize , "Intra period must be larger than GOP size for periodic IDR pictures"); 1503 1474 } 1504 #else1505 xConfirmPara( m_iIntraPeriod > 0 && m_iIntraPeriod <= m_iGOPSize , "Intra period must be larger than GOP size for periodic IDR pictures");1506 #endif1507 1475 } 1508 1476 xConfirmPara( (m_uiMaxCUWidth >> m_uiMaxCUDepth) < 4, "Minimum partition width size should be larger than or equal to 8"); … … 1763 1731 /* if this is an intra-only sequence, ie IntraPeriod=1, don't verify the GOP structure 1764 1732 * This permits the ability to omit a GOP structure specification */ 1765 #if H_MV_LAYER_WISE_STARTUP1766 1733 if (m_iIntraPeriod[layer] == 1 && m_GOPList[0].m_POC == -1) { 1767 #else1768 if (m_iIntraPeriod == 1 && m_GOPList[0].m_POC == -1) {1769 #endif1770 1734 m_GOPList[0] = GOPEntry(); 1771 1735 m_GOPList[0].m_QPFactor = 1; … … 1792 1756 } 1793 1757 Int numOK=0; 1794 #if H_MV_LAYER_WISE_STARTUP1795 1758 xConfirmPara( m_iIntraPeriod[layer] >=0&&(m_iIntraPeriod[layer]%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" ); 1796 #else1797 xConfirmPara( m_iIntraPeriod >=0&&(m_iIntraPeriod%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" );1798 #endif1799 1759 1800 1760 for(Int i=0; i<m_iGOPSize; i++) … … 1807 1767 1808 1768 #if H_MV 1809 #if H_MV_LAYER_WISE_STARTUP1810 1769 if ( (m_iIntraPeriod[layer] != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable[layer]) ) 1811 #else1812 if ( (m_iIntraPeriod != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable[layer]) )1813 #endif1814 1770 #else 1815 1771 if ( (m_iIntraPeriod != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable) ) … … 2336 2292 printf("Min PCM size : %d\n", 1 << m_uiPCMLog2MinSize); 2337 2293 printf("Motion search range : %d\n", m_iSearchRange ); 2338 #if H_MV_LAYER_WISE_STARTUP2339 2294 xPrintParaVector( "Intra period", m_iIntraPeriod ); 2340 #else2341 printf("Intra period : %d\n", m_iIntraPeriod );2342 #endif2343 2295 printf("Decoding refresh type : %d\n", m_iDecodingRefreshType ); 2344 2296 #if !H_MV -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncCfg.h
r765 r766 89 89 Int m_vpsNumLayerSets; ///< Number of layer sets 90 90 std::vector< std::vector<Int> > m_layerIdsInSets; ///< LayerIds in vps of layer set 91 #if H_MV_6_PS_0109_2592 91 Int m_defaultOneTargetOutputLayerIdc; ///< Output highest layer of layer sets by default when equal to 1 93 #else94 Bool m_defaultOneTargetOutputLayerFlag; ///< Output highest layer of layer sets by default95 #endif96 92 std::vector<Int> m_outputLayerSetIdx; ///< Indices of layer sets used as additional output layer sets 97 93 std::vector< std::vector<Int> > m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers … … 102 98 std::vector< std::vector<Int> > m_dependencyTypes; ///< Dependency types of direct reference layers 103 99 104 #if H_MV_6_HRD_O0217_13105 100 // DBP Size 106 101 Bool m_subLayerFlagInfoPresentFlag; 107 #endif108 102 109 103 // VPS VUI 110 104 Bool m_vpsVuiPresentFlag; 111 #if H_MV_6_PS_O0223_29112 105 Bool m_crossLayerPicTypeAlignedFlag; 113 106 Bool m_crossLayerIrapAlignedFlag; 114 #endif115 107 Bool m_bitRatePresentVpsFlag; 116 108 Bool m_picRatePresentVpsFlag; … … 121 113 std::vector< std::vector<Int > > m_constantPicRateIdc; 122 114 std::vector< std::vector<Int > > m_avgPicRate; 123 #if H_MV_6_O0226_37124 115 Bool m_tilesNotInUseFlag; 125 116 std::vector< Bool > m_tilesInUseFlag; … … 128 119 std::vector< Bool > m_wppInUseFlag; 129 120 130 #endif131 121 std::vector< std::vector<Bool > > m_tileBoundariesAlignedFlag; 132 122 Bool m_ilpRestrictedRefLayersFlag; … … 188 178 189 179 // coding structure 190 #if H_MV_LAYER_WISE_STARTUP191 180 std::vector<Int> m_iIntraPeriod; ///< period of I-slice (random access period) 192 #else193 Int m_iIntraPeriod; ///< period of I-slice (random access period)194 #endif195 181 Int m_iDecodingRefreshType; ///< random access type 196 182 Int m_iGOPSize; ///< GOP size of hierarchical structure -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r765 r766 235 235 236 236 //====== Coding Structure ======== 237 #if H_MV_LAYER_WISE_STARTUP238 237 m_cTEncTop.setIntraPeriod ( m_iIntraPeriod[ layerIdInVps ] ); 239 #else240 m_cTEncTop.setIntraPeriod ( m_iIntraPeriod );241 #endif242 238 m_cTEncTop.setDecodingRefreshType ( m_iDecodingRefreshType ); 243 239 m_cTEncTop.setGOPSize ( m_iGOPSize ); … … 1358 1354 Int maxViewId = xGetMax( m_viewId ); 1359 1355 1360 #if H_MV_6_PS_O0109_221361 1356 Int viewIdLen = gCeilLog2( maxViewId + 1 ); 1362 1357 const Int maxViewIdLen = ( 1 << 4 ) - 1; 1363 1358 assert( viewIdLen <= maxViewIdLen ); 1364 1359 vps.setViewIdLen( viewIdLen ); 1365 #else1366 Int viewIdLenMinus1 = std::max( gCeilLog2( maxViewId + 1 ) - 1, 0 ) ;1367 const Int maxViewIdLenMinus1 = ( 1 << 4 ) - 1;1368 assert( viewIdLenMinus1 <= maxViewIdLenMinus1 );1369 vps.setViewIdLenMinus1( viewIdLenMinus1 );1370 #endif1371 1360 for (Int i = 0; i < m_iNumberOfViews; i++) 1372 1361 { … … 1389 1378 } 1390 1379 1391 #if H_MV_6_PS_O0096_211392 1380 Int defaultDirectDependencyType = -1; 1393 1381 Bool defaultDirectDependencyFlag = true; 1394 #endif1395 1382 for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ ) 1396 1383 { … … 1401 1388 Int refLayer = m_directRefLayers[depLayer][i]; 1402 1389 vps.setDirectDependencyFlag( depLayer, refLayer, true); 1403 #if H_MV_6_PS_O0096_211404 1390 Int curDirectDependencyType = m_dependencyTypes[depLayer][i]; 1405 1391 … … 1414 1400 1415 1401 vps.setDirectDependencyType( depLayer, refLayer, curDirectDependencyType); 1416 #else 1417 vps.setDirectDependencyType( depLayer, refLayer,m_dependencyTypes[depLayer][i]); 1418 #endif 1419 } 1420 } 1421 1422 #if H_MV_6_PS_O0096_21 1402 } 1403 } 1404 1423 1405 vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag ); 1424 1406 vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 ); 1425 #endif 1426 1427 #if H_MV_6_ILDSD_O0120_26 1407 1428 1408 // Max sub layers, + presence flag 1429 1409 Bool subLayersMaxMinus1PresentFlag = false; … … 1450 1430 1451 1431 vps.setVpsSubLayersMaxMinus1PresentFlag( subLayersMaxMinus1PresentFlag ); 1452 #endif1453 1432 1454 1433 … … 1457 1436 for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++) 1458 1437 { 1459 #if !H_MV_6_ILDDS_O0225_301460 Int maxTid = -1;1461 #endif1462 1438 for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++) 1463 1439 { 1464 #if H_MV_6_ILDDS_O0225_301465 1440 Int maxTid = -1; 1466 #endif1467 1441 for( Int i = 0; i < getGOPSize(); i++ ) 1468 1442 { … … 1478 1452 } 1479 1453 } 1480 #if H_MV_6_ILDDS_O0225_301481 1454 vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 ); 1482 1455 maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 ); 1483 1456 } 1484 #else1485 }1486 vps.setMaxTidIlRefPicPlus1( refLayerIdInVps, maxTid + 1 );1487 maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );1488 #endif1489 1457 } 1490 1458 … … 1504 1472 1505 1473 // Poc Lsb Not Present Flag 1506 #if H_MV_6_MISC_O0062_311507 1474 for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers; layerIdInVps++) 1508 1475 { … … 1512 1479 } 1513 1480 } 1514 #endif1515 1481 1516 1482 // All Ref layers active flag … … 1521 1487 { 1522 1488 GOPEntry ge = m_GOPListMvc[layerIdInVps][ ( i < getGOPSize() ? i : MAX_GOP ) ]; 1523 #if H_MV_6_ILDDS_ILREFPICS_27_341524 1489 Int tId = ge.m_temporalId; // Should be equal for all layers. 1525 1490 … … 1557 1522 } 1558 1523 assert ( maxTidIlRefAndSubLayerMaxVaildFlag ); // Something wrong with MaxTidIlRefPicsPlus1 or SubLayersVpsMaxMinus1 1559 #else1560 allRefLayersActiveFlag = allRefLayersActiveFlag && (ge.m_numActiveRefLayerPics == m_directRefLayers[ layerIdInVps ].size() );1561 #endif1562 1524 } 1563 1525 } … … 1565 1527 vps.setAllRefLayersActiveFlag( allRefLayersActiveFlag ); 1566 1528 1567 #if !H_MV_6_PS_O0223_291568 // Currently cross layer irap aligned is always true.1569 vps.setCrossLayerIrapAlignedFlag( true );1570 #endif1571 1529 vps.setRefLayers(); 1572 1530 }; … … 1638 1596 repFormat->setPicHeightVpsInLumaSamples ( m_iSourceHeight ); 1639 1597 repFormat->setPicWidthVpsInLumaSamples ( m_iSourceWidth ); 1640 #if H_MV_6_PS_REP_FORM_18_19_201641 1598 repFormat->setChromaAndBitDepthVpsPresentFlag( true ); 1642 #endif1643 1599 // ToDo not supported yet. 1644 1600 //repFormat->setSeparateColourPlaneVpsFlag( ); … … 1653 1609 } 1654 1610 1655 #if H_MV_6_HRD_O0217_131656 1611 Void TAppEncTop::xSetDpbSize ( TComVPS& vps ) 1657 1612 { … … 1709 1664 } 1710 1665 } 1711 #endif1712 1666 1713 1667 … … 1729 1683 } 1730 1684 } 1731 #if H_MV_6_HRD_O0217_131732 1685 vps.deriveLayerSetLayerIdList(); 1733 #endif1734 1686 1735 1687 Int numAddOuputLayerSets = (Int) m_outputLayerSetIdx.size(); 1736 1688 // Additional output layer sets + profileLevelTierIdx 1737 #if H_MV_6_PS_0109_251738 1689 vps.setDefaultOneTargetOutputLayerIdc ( m_defaultOneTargetOutputLayerIdc ); 1739 #else1740 vps.setDefaultOneTargetOutputLayerFlag ( m_defaultOneTargetOutputLayerFlag );1741 #endif1742 1690 vps.setMoreOutputLayerSetsThanDefaultFlag( numAddOuputLayerSets != 0 ); 1743 1691 vps.setNumAddOutputLayerSetsMinus1 ( numAddOuputLayerSets - 1 ); … … 1745 1693 1746 1694 1747 #if H_MV_6_HRD_O0217_131748 1695 for (Int lsIdx = 0; lsIdx < m_vpsNumLayerSets; lsIdx++) 1749 1696 { … … 1760 1707 } 1761 1708 } 1762 #else1763 for (Int lsIdx = 1; lsIdx < m_vpsNumLayerSets; lsIdx++)1764 {1765 vps.setProfileLevelTierIdx( lsIdx, m_profileLevelTierIdx[ lsIdx ] );1766 }1767 #endif1768 1709 1769 1710 for (Int addOutLs = 0; addOutLs < numAddOuputLayerSets; addOutLs++ ) … … 1788 1729 } 1789 1730 } 1790 #if H_MV_6_HRD_O0217_131791 1731 vps.deriveTargetLayerIdLists(); 1792 #endif1793 1732 } 1794 1733 … … 1807 1746 // however preliminary setting it from input parameters 1808 1747 1809 #if H_MV_6_PS_O0223_291810 1748 pcVPSVUI->setCrossLayerPicTypeAlignedFlag( m_crossLayerPicTypeAlignedFlag ); 1811 1749 pcVPSVUI->setCrossLayerIrapAlignedFlag ( m_crossLayerIrapAlignedFlag ); 1812 #endif1813 1750 1814 1751 pcVPSVUI->setBitRatePresentVpsFlag( m_bitRatePresentVpsFlag ); … … 1849 1786 } 1850 1787 1851 #if H_MV_6_O0226_371852 1788 pcVPSVUI->setTilesNotInUseFlag( m_tilesNotInUseFlag ); 1853 1789 … … 1885 1821 } 1886 1822 } 1887 #else1888 for( Int i = 1; i <= vps.getMaxLayersMinus1(); i++ )1889 {1890 for( Int j = 0; j < vps.getNumDirectRefLayers( vps.getLayerIdInNuh( i ) ); j++ )1891 {1892 if ( m_tileBoundariesAlignedFlag[i].size() > j )1893 {1894 pcVPSVUI->setTileBoundariesAlignedFlag( i, j, m_tileBoundariesAlignedFlag[i][j]);1895 }1896 }1897 }1898 #endif1899 1823 1900 1824 pcVPSVUI->setIlpRestrictedRefLayersFlag( m_ilpRestrictedRefLayersFlag ); … … 1927 1851 } 1928 1852 } 1929 #if H_MV_6_PS_O0118_331930 1853 pcVPSVUI->setVideoSignalInfoIdxPresentFlag( true ); 1931 1854 pcVPSVUI->setVpsNumVideoSignalInfoMinus1 ( 0 ); … … 1947 1870 pcVPSVUI->setVpsVideoSignalInfoIdx( i, 0 ); 1948 1871 } 1949 #endif1950 #if H_MV_6_HRD_O0164_151951 1872 pcVPSVUI->setVpsVuiBspHrdPresentFlag( false ); // TBD 1952 #endif1953 1873 } 1954 1874 } … … 1985 1905 if( vps.getUseDLTFlag( layer ) ) 1986 1906 { 1987 #if H_MV_LAYER_WISE_STARTUP1988 1907 xAnalyzeInputBaseDepth(layer, max( m_iIntraPeriod[layer], 24), &vps); 1989 #else1990 xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod, 24), &vps);1991 #endif1992 1908 } 1993 1909 #endif -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.h
r758 r766 129 129 Void xSetProfileTierLevel ( TComVPS& vps ); 130 130 Void xSetRepFormat ( TComVPS& vps ); 131 #if H_MV_6_HRD_O0217_13132 131 Void xSetDpbSize ( TComVPS& vps ); 133 #endif134 132 Void xSetVPSVUI ( TComVPS& vps ); 135 133 GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc );
Note: See TracChangeset for help on using the changeset viewer.