Changeset 1076 in 3DVCSoftware for branches/HTM-12.1-dev0/source/App
- Timestamp:
- 21 Oct 2014, 21:25:42 (10 years ago)
- Location:
- branches/HTM-12.1-dev0/source/App
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-dev0/source/App/TAppDecoder/TAppDecCfg.cpp
r1066 r1076 95 95 ("RespectDefDispWindow,w", m_respectDefDispWindow, 0, "Only output content inside the default display window\n") 96 96 #if H_MV 97 #if H_MV_HLS10_GEN_FIX98 97 ("OutputVpsInfo,v", m_outputVpsInfo, false, "Output information about the layer dependencies and layer sets") 99 #endif100 98 #endif 101 99 ; -
branches/HTM-12.1-dev0/source/App/TAppDecoder/TAppDecCfg.h
r1066 r1076 80 80 81 81 #if H_MV 82 #if H_MV_HLS10_GEN_FIX83 82 Bool m_outputVpsInfo; ///< Output VPS information 84 #endif85 83 Void xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char*& rpchOutputFileName); ///< create filenames 86 84 #endif -
branches/HTM-12.1-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r1066 r1076 257 257 m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx ); 258 258 } 259 #if H_MV_HLS10_GEN_FIX260 259 if (m_outputVpsInfo ) 261 260 { 262 #if H_MV_HLS10_AUX263 261 m_vps->printScalabilityId(); 264 #endif265 262 m_vps->printLayerDependencies(); 266 263 m_vps->printLayerSets(); 267 264 m_vps->printPTL(); 268 265 } 269 #endif270 266 } 271 267 #if H_3D … … 580 576 Int dpbFullness = 0; 581 577 #if H_MV 582 #if H_MV_HLS10_ADD_LAYERSETS583 578 TComSPS* activeSPS = m_tDecTop[ decIdx ]->getActiveSPS(); 584 #else585 // preliminary fix586 TComSPS* activeSPS = m_tDecTop[0]->getActiveSPS();587 #endif588 579 #else 589 580 TComSPS* activeSPS = m_cTDecTop.getActiveSPS(); … … 1155 1146 Int curLayerId = m_tDecTop[dIdx]->getLayerId(); 1156 1147 Int curLayerIdxInVps = m_vps->getLayerIdInNuh( curLayerId ); 1157 #if H_MV_HLS10_REF_PRED_LAYERS1158 1148 if ( m_vps->getDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) ) 1159 #else1160 if ( m_vps->getInDirectDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) )1161 #endif1162 1149 { 1163 1150 TComPic* curPic = m_ivPicLists.getPic( curLayerId, pocLastPic ); -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r1074 r1076 241 241 {"main-still-picture", Profile::MAINSTILLPICTURE}, 242 242 #if H_MV 243 #if H_MV_HLS10_PTL244 243 {"multiview-main", Profile::MULTIVIEWMAIN}, 245 244 #if H_3D … … 247 246 #endif 248 247 249 #else250 {"main-stereo", Profile::MAINSTEREO},251 {"main-multiview", Profile::MAINMULTIVIEW},252 #if H_3D253 {"main-3d" , Profile::MAIN3D},254 #endif255 #endif256 248 #endif 257 249 }; … … 341 333 #if H_MV 342 334 vector<Int> cfg_dimensionLength; 343 #if H_MV_HLS10_PTL344 335 string cfg_profiles; 345 336 string cfg_levels; 346 337 string cfg_tiers; 347 #endif348 338 #if H_3D 349 339 cfg_dimensionLength.push_back( 2 ); // depth … … 380 370 ("NumberOfLayers", m_numberOfLayers , 1, "Number of layers") 381 371 #if !H_3D 382 #if H_MV_HLS10_AUX383 372 ("ScalabilityMask", m_scalabilityMask , 2 , "Scalability Mask: 2: Multiview, 8: Auxiliary, 10: Multiview + Auxiliary") 384 #else385 ("ScalabilityMask", m_scalabilityMask , 2 , "Scalability Mask")386 #endif387 373 #else 388 374 ("ScalabilityMask", m_scalabilityMask , 3 , "Scalability Mask, 1: Texture 3: Texture + Depth ") … … 391 377 ("ViewOrderIndex", m_viewOrderIndex , std::vector<Int>(1,0), "View Order Index per layer") 392 378 ("ViewId", m_viewId , std::vector<Int>(1,0), "View Id per View Order Index") 393 #if H_MV_HLS10_AUX394 379 ("AuxId", m_auxId , std::vector<Int>(1,0), "AuxId per layer") 395 #endif396 380 #if H_3D 397 381 ("DepthFlag", m_depthFlag , std::vector<Int>(1,0), "Depth Flag") … … 406 390 #endif 407 391 #endif 408 #if H_MV_HLS10_GEN_FIX409 392 ("TargetEncLayerIdList", m_targetEncLayerIdList, std::vector<Int>(0,0), "LayerIds in Nuh to be encoded") 410 #endif411 393 ("LayerIdInNuh", m_layerIdInNuh , std::vector<Int>(1,0), "LayerId in Nuh") 412 394 ("SplittingFlag", m_splittingFlag , false , "Splitting Flag") … … 415 397 ("VpsNumLayerSets", m_vpsNumLayerSets , 1 , "Number of layer sets") 416 398 ("LayerIdsInSet_%d", m_layerIdsInSets , std::vector<Int>(1,0), MAX_VPS_OP_SETS_PLUS1 ,"LayerIds of Layer set") 417 #if H_MV_HLS10_ADD_LAYERSETS418 399 ("NumAddLayerSets" , m_numAddLayerSets , 0 , "NumAddLayerSets ") 419 400 ("HighestLayerIdxPlus1_%d", m_highestLayerIdxPlus1, std::vector< Int >(0,0) ,MAX_VPS_NUM_ADD_LAYER_SETS, "HighestLayerIdxPlus1") 420 #endif421 401 ("DefaultTargetOutputLayerIdc" , m_defaultOutputLayerIdc , 0, "Specifies output layers of layer sets, 0: output all layers, 1: output highest layer, 2: specified by LayerIdsInDefOutputLayerSet") 422 402 ("OutputLayerSetIdx", m_outputLayerSetIdx , std::vector<Int>(0,0), "Indices of layer sets used as additional output layer sets") … … 426 406 ("AltOutputLayerFlag", m_altOutputLayerFlag , std::vector<Bool>(1,0), "Alt output layer flag") 427 407 428 #if H_MV_HLS10_PTL429 408 ("ProfileTierLevelIdx_%d", m_profileTierLevelIdx, std::vector<Int>(0), MAX_NUM_LAYERS, "Indices to profile level tier for ols") 430 #else431 ("ProfileLevelTierIdx", m_profileLevelTierIdx, std::vector<Int>(1,0), "Indices to profile level tier")432 #endif433 409 // Layer dependencies 434 410 ("DirectRefLayers_%d", m_directRefLayers , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers") … … 460 436 461 437 // Profile and level 462 #if H_MV_HLS10_PTL463 438 ("Profile", cfg_profiles, string(""), "Profile in VpsProfileTierLevel (Indication only)") 464 439 ("Level", cfg_levels , string(""), "Level indication in VpsProfileTierLevel (Indication only)") 465 440 ("Tier", cfg_tiers , string(""), "Tier indication in VpsProfileTierLevel (Indication only)") 466 441 ("InblFlag",m_inblFlag , std::vector<Bool>(0), "InblFlags in VpsProfileTierLevel (Indication only)" ) 467 #else468 ("Profile", m_profile, Profile::NONE, "Profile to be used when encoding (Incomplete)")469 ("Level", m_level, Level::NONE, "Level limit to be used, eg 5.1 (Incomplete)")470 ("Tier", m_levelTier, Level::MAIN, "Tier to use for interpretation of --Level")471 #endif472 442 ("ProgressiveSource", m_progressiveSourceFlag, false, "Indicate that source is progressive") 473 443 ("InterlacedSource", m_interlacedSourceFlag, false, "Indicate that source is interlaced") … … 648 618 #endif 649 619 #if H_MV 650 #if H_MV_HLS10_GEN_FIX651 620 // A lot of this stuff could should actually be derived by the encoder. 652 #endif // H_MV_HLS10_GEN653 621 // VPS VUI 654 622 ("VpsVuiPresentFlag" , m_vpsVuiPresentFlag , false , "VpsVuiPresentFlag ") … … 674 642 ("CtuBasedOffsetEnabledFlag" , m_ctuBasedOffsetEnabledFlag , std::vector< Bool >(1,0) ,MAX_NUM_LAYERS , "CtuBasedOffsetEnabledFlag per direct reference for the N-th layer") 675 643 ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , std::vector< Int >(1,0) ,MAX_NUM_LAYERS , "MinHorizontalCtuOffsetPlus1 per direct reference for the N-th layer") 676 #if H_MV_HLS10_VPS_VUI677 644 ("SingleLayerForNonIrapFlag", m_singleLayerForNonIrapFlag, false , "SingleLayerForNonIrapFlag") 678 645 ("HigherLayerIrapSkipFlag" , m_higherLayerIrapSkipFlag , false , "HigherLayerIrapSkipFlag ") 679 #endif680 646 #endif 681 647 … … 784 750 ("SEISubBitstreamMaxBitRate", m_sbPropMaxBitRate, std::vector< Int >(1,0) ,"Specifies maximum bit rate of the i-th sub-bitstream") 785 751 786 #if H_MV_HLS10_GEN_FIX787 752 ("OutputVpsInfo", m_outputVpsInfo, false ,"Output information about the layer dependencies and layer sets") 788 #endif789 753 #endif 790 754 #if H_3D … … 1073 1037 } 1074 1038 m_iNumberOfViews = (Int) uniqueViewOrderIndices.size(); 1075 #if H_MV_HLS10_AUX1076 1039 xResizeVector( m_auxId ); 1077 #endif1078 1040 1079 1041 #if H_3D … … 1109 1071 xResizeVector( m_wppInUseFlag ); 1110 1072 1111 #if H_MV_HLS10_ADD_LAYERSETS1112 1073 for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + m_numAddLayerSets + (Int) m_outputLayerSetIdx.size(); olsIdx++) 1113 #else1114 for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + (Int) m_outputLayerSetIdx.size(); olsIdx++)1115 #endif1116 1074 { 1117 1075 m_altOutputLayerFlag.push_back( false ); … … 1225 1183 1226 1184 #if H_MV 1227 #if H_MV_HLS10_PTL1228 1185 // parse PTL 1229 1186 Bool anyEmpty = false; … … 1272 1229 xReadStrToEnum( cfg_levels, m_level ); 1273 1230 xReadStrToEnum( cfg_tiers , m_levelTier ); 1274 #endif1275 1231 #endif 1276 1232 #if H_3D … … 1390 1346 1391 1347 1392 #if !H_MV_HLS10_PTL1393 if( m_profile==Profile::NONE )1394 {1395 fprintf(stderr, "***************************************************************************\n");1396 fprintf(stderr, "** WARNING: For conforming bitstreams a valid Profile value must be set! **\n");1397 fprintf(stderr, "***************************************************************************\n");1398 }1399 if( m_level==Level::NONE )1400 {1401 fprintf(stderr, "***************************************************************************\n");1402 fprintf(stderr, "** WARNING: For conforming bitstreams a valid Level value must be set! **\n");1403 fprintf(stderr, "***************************************************************************\n");1404 }1405 #endif1406 1348 1407 1349 Bool check_failed = false; /* abort if there is a fatal configuration problem */ … … 1422 1364 xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. "); 1423 1365 #else 1424 #if H_MV_HLS10_AUX1425 1366 xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 8 && m_scalabilityMask != 10, "Scalability Mask must be equal to 2, 8 or 10"); 1426 #else1427 xConfirmPara( m_scalabilityMask != 2 , "Scalability Mask must be equal to 2. ");1428 #endif1429 1367 #endif 1430 1368 … … 1437 1375 1438 1376 m_dimIds.push_back( m_viewOrderIndex ); 1439 #if H_MV_HLS10_AUX1440 1377 for (Int i = 0; i < m_auxId.size(); i++) 1441 1378 { … … 1446 1383 m_dimIds.push_back ( m_auxId ); 1447 1384 } 1448 #endif1449 1385 xConfirmPara( m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. " ); 1450 1386 Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; … … 1540 1476 { 1541 1477 Int refLayerSetIdx = m_outputLayerSetIdx[ lsIdx ]; 1542 #if H_MV_HLS10_ADD_LAYERSETS1543 1478 xConfirmPara( refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets + m_numAddLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets plus NumAddLayerSets." ); 1544 #else1545 xConfirmPara( refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets." );1546 #endif1547 #if !H_MV_HLS10_ADD_LAYERSETS1548 for (Int i = 0; i < m_layerIdsInAddOutputLayerSet[ lsIdx ].size(); i++)1549 {1550 Bool isAlsoInLayerSet = false;1551 for (Int j = 0; j < m_layerIdsInSets[ refLayerSetIdx ].size(); j++ )1552 {1553 if ( m_layerIdsInSets[ refLayerSetIdx ][ j ] == m_layerIdsInAddOutputLayerSet[ lsIdx ][ i ] )1554 {1555 isAlsoInLayerSet = true;1556 break;1557 }1558 }1559 xConfirmPara( !isAlsoInLayerSet, "All output layers of a output layer set be included in corresponding layer set.");1560 }1561 #endif1562 1479 } 1563 1480 … … 1571 1488 anyDefaultOutputFlag = anyDefaultOutputFlag || ( m_layerIdsInDefOutputLayerSet[lsIdx].size() != 0 ); 1572 1489 } 1573 #if H_MV_HLS10_ADD_LAYERSETS1574 1490 if ( anyDefaultOutputFlag ) 1575 1491 { 1576 1492 printf( "\nWarning: Ignoring LayerIdsInDefOutputLayerSet parameters, since defaultTargetOuputLayerIdc is not equal 2.\n" ); 1577 1493 } 1578 #else1579 printf( "\nWarning: Ignoring LayerIdsInDefOutputLayerSet parameters, since defaultTargetOuputLayerIdc is not equal 2.\n" );1580 #endif1581 1494 } 1582 1495 else … … 1600 1513 } 1601 1514 1602 #if H_MV_HLS10_ADD_LAYERSETS1603 1515 xConfirmPara( m_altOutputLayerFlag.size() < m_vpsNumLayerSets + m_numAddLayerSets + m_outputLayerSetIdx.size(), "The number of alt output layer flags must be equal to the number of layer set additional output layer sets plus the number of output layer set indices" ); 1604 #else1605 xConfirmPara( m_altOutputLayerFlag.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" );1606 #endif1607 1516 1608 1517 // PTL 1609 #if H_MV_HLS10_PTL1610 1518 xConfirmPara( ( m_profile.size() != m_inblFlag.size() || m_profile.size() != m_level.size() || m_profile.size() != m_levelTier.size() ), "The number of Profiles, Levels, Tiers and InblFlags must be equal." ); 1611 1519 … … 1620 1528 } 1621 1529 } 1622 #else1623 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" );1624 #endif1625 1530 1626 1531 // Layer Dependencies … … 2486 2391 #endif 2487 2392 #if H_MV 2488 #if H_MV_HLS10_GEN_FIX2489 2393 xPrintParaVector( "NuhLayerId" , m_layerIdInNuh ); 2490 2394 if ( m_targetEncLayerIdList.size() > 0) … … 2492 2396 xPrintParaVector( "TargetEncLayerIdList" , m_targetEncLayerIdList ); 2493 2397 } 2494 #endif2495 2398 xPrintParaVector( "ViewIdVal" , m_viewId ); 2496 2399 xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex ); 2497 #if H_MV_HLS10_AUX2498 2400 xPrintParaVector( "AuxId", m_auxId ); 2499 #endif2500 2401 #endif 2501 2402 #if H_3D -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.h
r1074 r1076 78 78 std::vector<Int> m_viewId; ///< view id 79 79 std::vector<Int> m_viewOrderIndex; ///< view order index 80 #if H_MV_HLS10_AUX81 80 std::vector<Int> m_auxId; ///< auxiliary id 82 #endif83 81 #if H_3D 84 82 std::vector<Int> m_depthFlag; ///< depth flag 85 83 #endif 86 #if H_MV_HLS10_GEN_FIX87 84 std::vector<Int> m_targetEncLayerIdList; ///< layer Ids in Nuh to be encoded 88 #endif89 85 std::vector<Int> m_layerIdInNuh; ///< layer Id in Nuh for each layer 90 86 Bool m_splittingFlag; ///< Splitting Flag … … 95 91 Int m_vpsNumLayerSets; ///< Number of layer sets 96 92 std::vector< std::vector<Int> > m_layerIdsInSets; ///< LayerIds in vps of layer set 97 #if H_MV_HLS10_ADD_LAYERSETS98 93 Int m_numAddLayerSets; ///< Number of additional layer sets 99 94 std::vector< std::vector<Int> > m_highestLayerIdxPlus1; ///< HighestLayerIdxPlus1 for each additional layer set and each independent layer (value with index 0 will be ignored) 100 #endif101 95 Int m_defaultOutputLayerIdc; ///< Specifies output layers of layer sets, 0: output all layers, 1: output highest layers, 2: specified by LayerIdsInDefOuputLayerSet 102 96 std::vector<Int> m_outputLayerSetIdx; ///< Indices of layer sets used as additional output layer sets 103 97 std::vector< std::vector<Int> > m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers 104 98 std::vector< std::vector<Int> > m_layerIdsInDefOutputLayerSet; ///< Indices in vps of output layers in layer sets 105 #if H_MV_HLS10_ADD_LAYERSETS106 99 std::vector< std::vector< Int > > m_profileTierLevelIdx; ///< Indices of of profile, per layer in layer set 107 #else108 std::vector<Int> m_profileLevelTierIdx; ///< Indices of of profile level tier109 #endif110 100 std::vector<Bool> m_altOutputLayerFlag; ///< Alt output layer flag 111 101 … … 138 128 std::vector< std::vector<Bool > > m_ctuBasedOffsetEnabledFlag; 139 129 std::vector< std::vector<Int > > m_minHorizontalCtuOffsetPlus1; 140 #if H_MV_HLS10_VPS_VUI141 130 Bool m_singleLayerForNonIrapFlag; 142 131 Bool m_higherLayerIrapSkipFlag; 143 #endif // H_MV_HLS10_VPS_VUI144 132 145 133 … … 193 181 194 182 // profile/level 195 #if H_MV_HLS10_PTL196 183 #if H_MV 197 184 std::vector< Profile::Name > m_profile; … … 203 190 Level::Tier m_levelTier; 204 191 Level::Name m_level; 205 #endif206 192 #endif 207 193 … … 468 454 std::vector<Int> m_sbPropAvgBitRate; 469 455 std::vector<Int> m_sbPropMaxBitRate; 470 #if H_MV_HLS10_GEN_FIX471 456 Bool m_outputVpsInfo; 472 #endif473 457 #endif 474 458 #if H_3D … … 531 515 #if H_MV 532 516 533 #if H_MV_HLS10_PTL534 517 template<typename T> 535 518 Void xReadStrToEnum(string in, std::vector<T> &val) … … 552 535 delete[] cString; 553 536 } 554 #endif555 537 556 538 -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r1074 r1076 144 144 xDeriveDltArray ( vps, dlt ); 145 145 #endif 146 #if H_MV_HLS10_GEN_FIX147 146 if ( m_targetEncLayerIdList.size() == 0 ) 148 147 { … … 166 165 } 167 166 } 168 #endif 169 170 #if H_MV_HLS10_ADD_LAYERSETS 167 171 168 if ( m_outputVpsInfo ) 172 169 { 173 #if H_MV_HLS10_AUX174 170 vps.printScalabilityId(); 175 #endif176 171 vps.printLayerDependencies(); 177 172 vps.printLayerSets(); 178 173 vps.printPTL(); 179 174 } 180 #endif181 175 182 176 for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++) … … 829 823 830 824 #if H_MV 831 #if H_MV_HLS10_GEN_FIX832 825 while ( (m_targetEncLayerIdList.size() != 0 ) && !allEos ) 833 #else834 while ( !allEos )835 #endif836 826 { 837 827 for(Int layer=0; layer < m_numberOfLayers; layer++ ) 838 828 { 839 #if H_MV_HLS10_GEN_FIX840 829 if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) )) 841 830 { 842 831 continue; 843 832 } 844 #endif845 833 846 834 Int frmCnt = 0; … … 883 871 for(Int layer=0; layer < m_numberOfLayers; layer++ ) 884 872 { 885 #if H_MV_HLS10_GEN_FIX886 873 if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) )) 887 874 { 888 875 continue; 889 876 } 890 #endif891 877 892 878 #if H_3D_VSO … … 916 902 for(Int layer=0; layer < m_numberOfLayers; layer++ ) 917 903 { 918 #if H_MV_HLS10_GEN_FIX919 904 if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) )) 920 905 { 921 906 continue; 922 907 } 923 #endif924 908 m_acTEncTopList[layer]->printSummary( m_acTEncTopList[layer]->getNumAllPicCoded(), m_isField ); 925 909 } … … 1385 1369 // Max sub layers, + presence flag 1386 1370 Bool subLayersMaxMinus1PresentFlag = false; 1387 #if !H_MV_FIX_SUB_LAYERS_MAX_MINUS11388 Int subLayersMaxMinus1 = -1;1389 #endif1390 1371 for (Int curLayerIdInVps = 0; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++ ) 1391 1372 { … … 1398 1379 1399 1380 vps.setSubLayersVpsMaxMinus1( curLayerIdInVps, curSubLayersMaxMinus1 ); 1400 #if !H_MV_FIX_SUB_LAYERS_MAX_MINUS11401 if ( subLayersMaxMinus1 == -1 )1402 {1403 subLayersMaxMinus1 = curSubLayersMaxMinus1;1404 }1405 else1406 {1407 subLayersMaxMinus1PresentFlag = subLayersMaxMinus1PresentFlag || ( curSubLayersMaxMinus1 != subLayersMaxMinus1 );1408 }1409 #else1410 1381 subLayersMaxMinus1PresentFlag = subLayersMaxMinus1PresentFlag || ( curSubLayersMaxMinus1 != vps.getMaxSubLayersMinus1() ); 1411 #endif1412 1382 } 1413 1383 … … 1422 1392 { 1423 1393 Int maxTid = -1; 1424 #if H_MV_FIX_LOOP_GOPSIZE1425 1394 for( Int i = 0; i < ( getGOPSize() + 1); i++ ) 1426 1395 { 1427 1396 GOPEntry geCur = m_GOPListMvc[curLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1428 1397 GOPEntry geRef = m_GOPListMvc[refLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1429 #else1430 for( Int i = 0; i < getGOPSize(); i++ )1431 {1432 GOPEntry geCur = m_GOPListMvc[curLayerIdInVps][i];1433 GOPEntry geRef = m_GOPListMvc[refLayerIdInVps][i];1434 #endif1435 1398 for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++) 1436 1399 { 1437 1400 if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps ) 1438 1401 { 1439 #if H_MV_FIX_LOOP_GOPSIZE1440 1402 Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 ); 1441 1403 Bool refLayerZero = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 ); 1442 1404 maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId ); 1443 #else1444 maxTid = std::max( maxTid, geRef.m_temporalId );1445 #endif1446 1405 } 1447 1406 } … … 1569 1528 Void TAppEncTop::xSetProfileTierLevel( TComVPS& vps ) 1570 1529 { 1571 #if H_MV_HLS10_PTL1572 1530 1573 1531 // SET PTL … … 1587 1545 m_nonPackedConstraintFlag, m_frameOnlyConstraintFlag, m_inblFlag[ptlIdx] ); 1588 1546 } 1589 #else 1590 const Int vpsNumProfileTierLevelMinus1 = 0; //TBD 1591 vps.setVpsNumProfileTierLevelMinus1( vpsNumProfileTierLevelMinus1 ); 1592 1593 for (Int i = 0; i <= vps.getVpsNumProfileTierLevelMinus1(); i++ ) 1594 { 1595 vps.setVpsProfilePresentFlag( i, true ); 1596 } 1597 #endif 1598 } 1599 1600 #if H_MV_HLS10_PTL 1547 } 1548 1601 1549 Void TAppEncTop::xSetProfileTierLevel(TComVPS& vps, Int profileTierLevelIdx, Int subLayer, Profile::Name profile, Level::Name level, Level::Tier tier, Bool progressiveSourceFlag, Bool interlacedSourceFlag, Bool nonPackedConstraintFlag, Bool frameOnlyConstraintFlag, Bool inbldFlag) 1602 1550 { … … 1620 1568 ptl->setLevelIdc ( level ); 1621 1569 ptl->setProfileCompatibilityFlag( profile, true ); 1622 #if H_MV_HLS10_PTL_INBL_FIX1623 1570 ptl->setInbldFlag( inbldFlag ); 1624 #endif1625 1571 1626 1572 switch ( profile ) … … 1648 1594 } 1649 1595 } 1650 #endif1651 1596 1652 1597 Void TAppEncTop::xSetRepFormat( TComVPS& vps ) … … 1666 1611 //repFormat->setSeparateColourPlaneVpsFlag( ); 1667 1612 1668 #if H_MV_HLS10_GEN_VSP_CONF_WIN1669 1613 repFormat->setConformanceWindowVpsFlag( true ); 1670 1614 repFormat->setConfWinVpsLeftOffset ( m_confLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); … … 1672 1616 repFormat->setConfWinVpsTopOffset ( m_confTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1673 1617 repFormat->setConfWinVpsBottomOffset ( m_confBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1674 #endif1675 1618 1676 1619 assert( vps.getRepFormat( 0 ) == NULL ); … … 1689 1632 { 1690 1633 Int currLsIdx = vps.olsIdxToLsIdx( i ); 1691 #if !H_MV_HLS10_ADD_LAYERSETS1692 std::vector<Int> targetDecLayerIdList = vps.getTargetDecLayerIdList( i );1693 #endif1694 1634 Bool subLayerFlagInfoPresentFlag = false; 1695 1635 … … 1697 1637 { 1698 1638 Bool subLayerDpbInfoPresentFlag = false; 1699 #if !H_MV_HLS10_ADD_LAYERSETS1700 assert( vps.getNumLayersInIdList( currLsIdx ) == targetDecLayerIdList.size() );1701 #endif1702 1639 for( Int k = 0; k < vps.getNumLayersInIdList( currLsIdx ); k++ ) 1703 1640 { 1704 #if H_MV_HLS10_DBP_SIZE1705 1641 Int layerIdInVps = vps.getLayerIdInVps( vps.getLayerSetLayerIdList( currLsIdx, k ) ); 1706 1642 if ( vps.getNecessaryLayerFlag( i,k ) && ( vps.getVpsBaseLayerInternalFlag() || vps.getLayerSetLayerIdList( currLsIdx, k ) != 0 ) ) … … 1719 1655 } 1720 1656 } 1721 #else1722 Int layerIdInVps = vps.getLayerIdInVps( targetDecLayerIdList[k] );1723 dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, m_maxDecPicBufferingMvc[ layerIdInVps ][ j ] - 1 );1724 1725 if ( j > 0 )1726 {1727 subLayerDpbInfoPresentFlag = subLayerDpbInfoPresentFlag || ( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) != dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j - 1 ) );1728 }1729 #endif1730 1657 } 1731 1658 1732 1659 Int maxNumReorderPics = MIN_INT; 1733 #if H_MV_HLS10_DBP_SIZE1734 1660 for ( Int idx = 0; idx < vps.getNumLayersInIdList( currLsIdx ); idx++ ) 1735 1661 { … … 1740 1666 } 1741 1667 } 1742 #else1743 for ( Int idx = 0; idx < targetDecLayerIdList.size(); idx++ )1744 {1745 Int layerIdInVps = vps.getLayerIdInVps( targetDecLayerIdList[ idx ] );1746 maxNumReorderPics = std::max( maxNumReorderPics, m_numReorderPicsMvc[ layerIdInVps ][ j ] );1747 }1748 #endif1749 1668 assert( maxNumReorderPics != MIN_INT ); 1750 1669 … … 1793 1712 // Additional output layer sets + profileLevelTierIdx 1794 1713 vps.setDefaultOutputLayerIdc ( m_defaultOutputLayerIdc ); 1795 #if H_MV_HLS10_ADD_LAYERSETS1796 1714 if( vps.getNumIndependentLayers() == 0 && m_numAddLayerSets > 0 ) 1797 1715 { … … 1827 1745 } 1828 1746 } 1829 #else1830 vps.setNumAddLayerSets ( 0 );1831 #endif1832 1747 vps.setNumAddOlss ( numAddOuputLayerSets ); 1833 1748 vps.initTargetLayerIdLists(); 1834 1749 1835 #if H_MV_HLS10_ADD_LAYERSETS1836 1750 for (Int olsIdx = 0; olsIdx < vps.getNumLayerSets() + numAddOuputLayerSets; olsIdx++) 1837 1751 { 1838 1752 Int addOutLsIdx = olsIdx - vps.getNumLayerSets(); 1839 #else1840 for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + numAddOuputLayerSets; olsIdx++)1841 {1842 Int addOutLsIdx = olsIdx - m_vpsNumLayerSets;1843 #endif1844 1753 vps.setLayerSetIdxForOlsMinus1( olsIdx, ( ( addOutLsIdx < 0 ) ? olsIdx : m_outputLayerSetIdx[ addOutLsIdx ] ) - 1 ); 1845 1754 1846 #if H_MV_HLS10_ADD_LAYERSETS1847 1755 Int lsIdx = vps.olsIdxToLsIdx( olsIdx ); 1848 #else1849 std::vector<Int>& layerIdList = m_layerIdsInSets[ vps.olsIdxToLsIdx( olsIdx ) ];1850 #endif1851 1756 if (vps.getDefaultOutputLayerIdc() == 2 || addOutLsIdx >= 0 ) 1852 1757 { 1853 #if H_MV_HLS10_ADD_LAYERSETS1854 1758 for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++) 1855 #else1856 for ( Int i = 0; i < layerIdList.size(); i++)1857 #endif1858 1759 { 1859 1760 vps.setOutputLayerFlag( olsIdx, i, ( olsIdx == 0 && i == 0 ) ? vps.inferOutputLayerFlag(olsIdx, i ) : false ); // This is a software only fix for a bug in the spec. In spec outputLayerFlag neither present nor inferred for this case ! … … 1865 1766 for (Int j = 0; j < outLayerIdList.size(); j++) 1866 1767 { 1867 #if H_MV_HLS10_ADD_LAYERSETS1868 1768 for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++) 1869 1769 { 1870 1770 if ( vps.getLayerSetLayerIdList( lsIdx, i ) == outLayerIdList[ j ] ) 1871 #else1872 for (Int i = 0; i < layerIdList.size(); i++ )1873 {1874 if ( layerIdList[ i ] == outLayerIdList[ j ] )1875 #endif1876 1771 { 1877 1772 vps.setOutputLayerFlag( olsIdx, i, true ); … … 1880 1775 } 1881 1776 } 1882 #if H_MV_HLS10_ADD_LAYERSETS1883 1777 if ( !outputLayerInLayerSetFlag ) 1884 1778 { … … 1886 1780 exit(EXIT_FAILURE); 1887 1781 } 1888 #else1889 assert( outputLayerInLayerSetFlag ); // The output layer is not in the layer set.1890 #endif1891 1782 } 1892 1783 } 1893 1784 else 1894 1785 { 1895 #if H_MV_HLS10_ADD_LAYERSETS1896 1786 for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++) 1897 #else1898 for ( Int i = 0; i < layerIdList.size(); i++)1899 #endif1900 1787 { 1901 1788 vps.setOutputLayerFlag( olsIdx, i, vps.inferOutputLayerFlag( olsIdx, i ) ); … … 1903 1790 } 1904 1791 1905 #if H_MV_HLS10_NESSECARY_LAYER1906 1792 vps.deriveNecessaryLayerFlags( olsIdx ); 1907 #endif1908 1793 vps.deriveTargetLayerIdList( olsIdx ); 1909 1794 1910 #if H_MV_HLS10_PTL1911 1795 // SET profile_tier_level_index. 1912 1796 if ( olsIdx == 0 ) … … 1925 1809 { 1926 1810 vps.setProfileTierLevelIdx(olsIdx, j, m_profileTierLevelIdx[olsIdx][j] ); 1927 #if H_MV_HLS10_PTL_FIX1928 1811 if( !vps.getNecessaryLayerFlag(olsIdx,j) && m_profileTierLevelIdx[ olsIdx ][ j ] != -1 ) 1929 1812 { … … 1932 1815 } 1933 1816 else if ( vps.getNecessaryLayerFlag(olsIdx,j) ) 1934 #else1935 }1936 else1937 #endif1938 1817 { 1939 1818 // setting default values … … 1951 1830 } 1952 1831 } 1953 #else1954 if ( olsIdx > 0 )1955 {1956 vps.setProfileLevelTierIdx( olsIdx, m_profileLevelTierIdx[ olsIdx ] );1957 }1958 #endif1959 1832 1960 1833 if ( vps.getNumOutputLayersInOutputLayerSet( olsIdx ) == 1 && … … 1994 1867 if( pcVPSVUI->getBitRatePresentVpsFlag( ) || pcVPSVUI->getPicRatePresentVpsFlag( ) ) 1995 1868 { 1996 #if H_MV_HLS10_VPS_VUI1997 1869 for( Int i = 0; i < vps.getNumLayerSets(); i++ ) 1998 #else1999 for( Int i = 0; i <= vps.getVpsNumLayerSetsMinus1(); i++ )2000 #endif2001 1870 { 2002 1871 for( Int j = 0; j <= vps.getMaxTLayers(); j++ ) … … 2047 1916 for( Int j = 0; j < vps.getNumDirectRefLayers( vps.getLayerIdInNuh( i ) ) ; j++ ) 2048 1917 { 2049 #if H_MV_HLS10_REF_PRED_LAYERS2050 1918 Int layerIdx = vps.getLayerIdInVps( vps.getIdDirectRefLayer(vps.getLayerIdInNuh( i ) , j )); 2051 #else2052 Int layerIdx = vps.getLayerIdInVps( vps.getRefLayerId(vps.getLayerIdInNuh( i ) , j ));2053 #endif2054 1919 if( pcVPSVUI->getTilesInUseFlag( i ) && pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 2055 1920 { … … 2070 1935 } 2071 1936 2072 #if H_MV_HLS10_VPS_VUI2073 1937 pcVPSVUI->setSingleLayerForNonIrapFlag( m_singleLayerForNonIrapFlag ); 2074 1938 pcVPSVUI->setHigherLayerIrapSkipFlag( m_higherLayerIrapSkipFlag ); 2075 #endif2076 1939 2077 1940 pcVPSVUI->setIlpRestrictedRefLayersFlag( m_ilpRestrictedRefLayersFlag ); … … 2130 1993 } 2131 1994 } 2132 #if H_MV_HLS10_GEN_FIX2133 1995 Bool TAppEncTop::xLayerIdInTargetEncLayerIdList(Int nuhLayerId) 2134 1996 { 2135 1997 return ( std::find(m_targetEncLayerIdList.begin(), m_targetEncLayerIdList.end(), nuhLayerId) != m_targetEncLayerIdList.end()) ; 2136 1998 } 2137 #endif2138 1999 2139 2000 -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncTop.h
r1066 r1076 133 133 Void xSetProfileTierLevel ( TComVPS& vps ); 134 134 135 #if H_MV_HLS10_PTL136 135 Void xSetProfileTierLevel( TComVPS& vps, Int profileTierLevelIdx, Int subLayer, 137 136 Profile::Name profile, Level::Name level, Level::Tier tier, … … 139 138 Bool nonPackedConstraintFlag, Bool frameOnlyConstraintFlag, 140 139 Bool inbldFlag ); 141 #endif142 140 Void xSetRepFormat ( TComVPS& vps ); 143 141 Void xSetDpbSize ( TComVPS& vps ); … … 145 143 GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc ); 146 144 Int xGetMax( std::vector<Int>& vec); 147 #if H_MV_HLS10_GEN_FIX148 145 Bool xLayerIdInTargetEncLayerIdList( Int nuhLayerId ); 149 #endif150 146 #endif 151 147 #if H_3D
Note: See TracChangeset for help on using the changeset viewer.