Changeset 648 in 3DVCSoftware for branches/HTM-8.2-dev0-Cleanup/source/App
- Timestamp:
- 19 Oct 2013, 18:46:09 (11 years ago)
- Location:
- branches/HTM-8.2-dev0-Cleanup/source/App
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-Cleanup/source/App/TAppDecoder/TAppDecTop.cpp
r646 r648 500 500 const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window(); 501 501 #if H_MV 502 #if H_MV5503 502 assert( conf .getScaledFlag() ); 504 503 assert( defDisp.getScaledFlag() ); 505 #endif506 504 m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(), 507 505 #else … … 577 575 const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window(); 578 576 #if H_MV 579 #if H_MV5580 577 assert( conf .getScaledFlag() ); 581 578 assert( defDisp.getScaledFlag() ); 582 #endif583 579 m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(), 584 580 #else -
branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncCfg.cpp
r647 r648 228 228 in>>entry.m_interViewRefPosL[1][i]; 229 229 } 230 #if !H_MV5231 if (entry.m_numActiveRefLayerPics > 0 )232 {233 in>>entry.m_collocatedRefLayerIdx;234 }235 #endif236 230 #endif 237 231 return in; … … 373 367 ("NumberOfLayers", m_numberOfLayers , 1, "Number of layers") 374 368 #if !H_3D 375 #if H_MV5376 369 ("ScalabilityMask", m_scalabilityMask , 2 , "Scalability Mask") 377 #else378 ("ScalabilityMask", m_scalabilityMask , 1 , "Scalability Mask")379 #endif380 370 #else 381 371 ("ScalabilityMask", m_scalabilityMask , 3 , "Scalability Mask, 1: Texture 3: Texture + Depth ") 382 372 #endif 383 373 ("DimensionIdLen", m_dimensionIdLen , cfg_dimensionLength , "Number of bits used to store dimensions Id") 384 #if H_MV5385 374 ("ViewOrderIndex", m_viewOrderIndex , std::vector<Int>(1,0), "View Order Index per layer") 386 375 ("ViewId", m_viewId , std::vector<Int>(1,0), "View Id per View Order Index") 387 #else388 ("ViewId", m_viewId , std::vector<Int>(1,0), "View Id")389 #endif390 376 #if H_3D 391 377 ("DepthFlag", m_depthFlag , std::vector<Int>(1,0), "Depth Flag") … … 620 606 #endif 621 607 622 #if H_MV5623 608 #if H_MV 624 609 // VPS VUI … … 637 622 ("CtuBasedOffsetEnabledFlag" , m_ctuBasedOffsetEnabledFlag , std::vector< Bool >(1,0) ,MAX_NUM_LAYERS , "CtuBasedOffsetEnabledFlag per direct reference for the N-th layer") 638 623 ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , std::vector< Int >(1,0) ,MAX_NUM_LAYERS , "MinHorizontalCtuOffsetPlus1 per direct reference for the N-th layer") 639 #endif640 624 #endif 641 625 … … 782 766 if( k == 0 ) 783 767 { 784 #if H_MV5785 768 m_GOPListMvc[0][0].m_sliceType = 'I'; 786 #endif787 769 for( Int i = 1; i < MAX_GOP + 1; i++ ) 788 770 { … … 988 970 // allocate slice-based dQP values 989 971 #if H_MV 990 #if H_MV5991 972 xResizeVector( m_viewOrderIndex ); 992 973 … … 1008 989 #if H_3D 1009 990 xResizeVector( m_depthFlag ); 1010 #endif1011 #else1012 xResizeVector( m_viewId );1013 #if H_3D1014 xResizeVector( m_depthFlag );1015 1016 std::vector<Int> uniqueViewIds;1017 for( Int layer = 0; layer < m_numberOfLayers; layer++ )1018 {1019 Bool isIn = false;1020 for ( Int i = 0 ; i < uniqueViewIds.size(); i++ )1021 {1022 isIn = isIn || ( m_viewId[ layer ] == uniqueViewIds[ i ] );1023 }1024 if ( !isIn )1025 {1026 uniqueViewIds.push_back( m_viewId[ layer ] );1027 }1028 }1029 m_iNumberOfViews = (Int) uniqueViewIds.size();1030 #endif1031 1032 991 #endif 1033 992 xResizeVector( m_fQP ); … … 1303 1262 xConfirmPara( (m_layerIdInNuh.size()!=1) && (m_layerIdInNuh.size() < m_numberOfLayers) , "LayerIdInNuh must be given for all layers. "); 1304 1263 1305 #if H_MV51306 1264 #if H_3D 1307 1265 xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. "); … … 1318 1276 1319 1277 m_dimIds.push_back( m_viewOrderIndex ); 1320 #else1321 #if H_3D1322 xConfirmPara( m_scalabilityMask != 1 && m_scalabilityMask != 3, "Scalability Mask must be equal to 1 or 3. ");1323 #else1324 xConfirmPara( m_scalabilityMask != 1 , "Scalability Mask must be equal to 1. ");1325 #endif1326 1327 m_dimIds.push_back( m_viewId );1328 const Int viewDimPosition = 0;1329 #if H_3D1330 if ( m_scalabilityMask & ( 1 << DEPTH_ID ) )1331 m_dimIds.push_back( m_depthFlag );1332 #endif1333 1334 #endif1335 1278 xConfirmPara( m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. " ); Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; 1336 1279 … … 1349 1292 { 1350 1293 xConfirmPara( m_dimIds[j].size() < m_numberOfLayers, "DimensionId must be given for all layers and all dimensions. "); 1351 #if H_MV51352 1294 xConfirmPara( (m_dimIds[j][0] != 0) , "DimensionId of layer 0 must be 0. " ); 1353 #else1354 xConfirmPara( ( j != viewDimPosition ) && (m_dimIds[j][0] != 0), "DimensionId of layer 0 must be 0. " );1355 #endif1356 1295 xConfirmPara( m_dimensionIdLen[j] < 1 || m_dimensionIdLen[j] > 8, "DimensionIdLen must be greater than 0 and less than 9 in all dimensions. " ); 1357 1296 … … 1396 1335 { 1397 1336 Bool inc = m_dimIds[ lastDiff ][ i ] > m_dimIds[ lastDiff ][ j ]; 1398 #if H_MV51399 1337 Bool shallBeButIsNotIncreasing = ( !inc ) ; 1400 #else1401 Bool shallBeButIsNotIncreasing = ( !inc && ( lastDiff != viewDimPosition ) ) ;1402 #endif1403 1338 if ( shallBeButIsNotIncreasing ) 1404 1339 { 1405 1340 printf( "\nError: Positions of Layers %d and %d is not increasing in dimension %d \n", i, j, lastDiff); 1406 1341 } 1407 #if H_MV51408 1342 xConfirmPara( shallBeButIsNotIncreasing, "DimensionIds shall be increasing within one dimension. " ); 1409 #else1410 xConfirmPara( shallBeButIsNotIncreasing && ( lastDiff != viewDimPosition ), "DimensionIds shall be increasing within one dimension. " );1411 #endif1412 1343 } 1413 1344 #endif … … 1415 1346 } 1416 1347 1417 #if H_MV51418 1348 /// ViewId 1419 1349 xConfirmPara( m_viewId.size() != m_iNumberOfViews, "The number of ViewIds must be equal to the number of views." ); … … 1421 1351 /// Layer sets 1422 1352 xConfirmPara( m_vpsNumLayerSets < 0 || m_vpsNumLayerSets > 1024, "VpsNumLayerSets must be greater than 0 and less than 1025. ") ; 1423 #else1424 xConfirmPara( m_vpsNumLayerSets < 0 || m_vpsNumLayerSets > 1024, "VpsNumLayerSets must be greater than 0 and less than 1025") ;1425 #endif1426 1353 for( Int lsIdx = 0; lsIdx < m_vpsNumLayerSets; lsIdx++ ) 1427 1354 { … … 2185 2112 } 2186 2113 #endif 2187 #if H_MV52188 2114 #if H_MV 2189 2115 // VPS VUI … … 2208 2134 } 2209 2135 #endif 2210 #endif2211 2136 2212 2137 xConfirmPara(!m_TransquantBypassEnableFlag && m_CUTransquantBypassFlagValue, "CUTransquantBypassFlagValue cannot be 1 when TransquantBypassEnableFlag is 0"); … … 2274 2199 #endif 2275 2200 #if H_MV 2276 #if H_MV52277 2201 xPrintParaVector( "ViewIdVal" , m_viewId ); 2278 2202 xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex ); 2279 #else2280 xPrintParaVector( "ViewId", m_viewId );2281 #endif2282 2203 #endif 2283 2204 #if H_3D -
branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncCfg.h
r646 r648 69 69 std::vector<char*> m_pchReconFileList; ///< output reconstruction file names 70 70 Int m_numberOfLayers; ///< number of Layers to Encode 71 #if H_MV572 71 Int m_iNumberOfViews; ///< number of Layers that are views 73 #else74 #if H_3D75 Int m_iNumberOfViews; ///< number of Layers that are views76 #endif77 #endif78 72 #else 79 73 Char* m_pchReconFile; ///< output reconstruction file … … 83 77 std::vector< std::vector<Int> > m_dimIds; ///< dimension ids ( pointers to m_viewId and m_depthFlag 84 78 std::vector<Int> m_viewId; ///< view id 85 #if H_MV586 79 std::vector<Int> m_viewOrderIndex; ///< view order index 87 #endif88 80 #if H_3D 89 81 std::vector<Int> m_depthFlag; ///< depth flag … … 106 98 std::vector< std::vector<Int> > m_dependencyTypes; ///< Dependency types of direct reference layers 107 99 108 #if H_MV5109 100 // VPS VUI 110 101 Bool m_vpsVuiPresentFlag; … … 122 113 std::vector< std::vector<Bool > > m_ctuBasedOffsetEnabledFlag; 123 114 std::vector< std::vector<Int > > m_minHorizontalCtuOffsetPlus1; 124 #endif125 115 126 116 #if H_3D_IV_MERGE -
branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncTop.cpp
r646 r648 88 88 vps.setTemporalNestingFlag(true); 89 89 } 90 #if H_MV591 90 vps.setMaxLayersMinus1( m_numberOfLayers - 1); 92 #else93 vps.setMaxLayers( m_numberOfLayers );94 #endif95 91 for(Int i = 0; i < MAX_TLAYER; i++) 96 92 { … … 124 120 xSetDependencies( vps ); 125 121 xSetProfileTierLevel ( vps ); 126 #if H_MV5127 122 xSetRepFormat ( vps ); 128 #endif129 123 xSetLayerSets ( vps ); 130 #if H_MV5131 124 xSetVPSVUI ( vps ); 132 #endif133 125 #if H_3D 134 #if !H_MV5135 vps.initViewIndex();136 #endif137 126 xSetVPSExtension2 ( vps ); 138 127 m_ivPicLists.setVPS ( &vps ); … … 140 129 141 130 142 #if H_MV5143 131 for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++) 144 #else145 for(Int layer = 0; layer < m_numberOfLayers; layer++)146 #endif147 132 { 148 133 m_frameRcvd .push_back(0); … … 151 136 m_acTVideoIOYuvReconFileList.push_back(new TVideoIOYuv); 152 137 m_picYuvRec .push_back(new TComList<TComPicYuv*>) ; 153 #if H_MV5154 138 m_ivPicLists.push_back( m_acTEncTopList[ layerIdInVps ]->getListPic() ); 155 139 TEncTop& m_cTEncTop = *m_acTEncTopList[ layerIdInVps ]; // It is not a member, but this name helps avoiding code duplication !!! … … 160 144 m_cTEncTop.setViewId ( vps.getViewId ( layerId ) ); 161 145 m_cTEncTop.setViewIndex ( vps.getViewIndex ( layerId ) ); 162 #else163 m_ivPicLists.push_back( m_acTEncTopList[ layer ]->getListPic() );164 TEncTop& m_cTEncTop = *m_acTEncTopList[ layer ]; // It is not a member, but this name helps avoiding code duplication !!!165 166 m_cTEncTop.setLayerIdInVps ( layer );167 m_cTEncTop.setLayerId ( vps.getLayerIdInNuh( layer ) );168 m_cTEncTop.setViewId ( vps.getViewId ( layer ) );169 170 #endif171 146 #if H_3D 172 #if H_MV5173 147 Bool isDepth = ( vps.getDepthId ( layerId ) != 0 ) ; 174 #else175 Bool isDepth = ( vps.getDepthId ( layer ) != 0 ) ;176 m_cTEncTop.setViewIndex ( vps.getViewIndex ( layer ) );177 #endif178 148 m_cTEncTop.setIsDepth ( isDepth ); 179 149 //====== Camera Parameters ========= … … 201 171 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 ); 202 172 #endif // H_3D_VSO 203 #if H_MV5204 173 #if H_3D_ARP 205 174 //====== Advanced Inter-view Residual Prediction ========= … … 209 178 #if H_3D_IC 210 179 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] ); 211 #endif212 #else213 #if H_3D_ARP214 //====== Advanced Inter-view Residual Prediction =========215 m_cTEncTop.setUseAdvRP ( ( isDepth || 0==layer ) ? 0 : m_uiUseAdvResPred );216 m_cTEncTop.setARPStepNum ( ( isDepth || 0==layer ) ? 1 : H_3D_ARP_WFNR );217 #endif218 #if H_3D_IC219 m_cTEncTop.setUseIC ( vps.getViewIndex( layer ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] );220 #endif221 180 #endif 222 181 //========== Depth intra modes ========== … … 260 219 m_cTEncTop.setGOPSize ( m_iGOPSize ); 261 220 #if H_MV 262 #if H_MV5263 221 m_cTEncTop.setGopList ( m_GOPListMvc[layerIdInVps] ); 264 222 m_cTEncTop.setExtraRPSs ( m_extraRPSsMvc[layerIdInVps] ); … … 269 227 } 270 228 #else 271 m_cTEncTop.setGopList ( m_GOPListMvc[layer] );272 m_cTEncTop.setExtraRPSs ( m_extraRPSsMvc[layer] );273 for(Int i = 0; i < MAX_TLAYER; i++)274 {275 m_cTEncTop.setNumReorderPics ( m_numReorderPicsMvc[layer][i], i );276 m_cTEncTop.setMaxDecPicBuffering ( m_maxDecPicBufferingMvc[layer][i], i );277 }278 #endif279 #else280 229 m_cTEncTop.setGopList ( m_GOPList ); 281 230 m_cTEncTop.setExtraRPSs ( m_extraRPSs ); … … 291 240 } 292 241 #if H_MV 293 #if H_MV5294 242 m_cTEncTop.setQP ( m_iQP[layerIdInVps] ); 295 243 #else 296 m_cTEncTop.setQP ( m_iQP[layer] );297 #endif298 #else299 244 m_cTEncTop.setQP ( m_iQP ); 300 245 #endif … … 303 248 304 249 #if H_MV 305 #if H_MV5306 250 m_cTEncTop.setMaxTempLayer ( m_maxTempLayerMvc[layerIdInVps] ); 307 251 #else 308 m_cTEncTop.setMaxTempLayer ( m_maxTempLayerMvc[layer] );309 #endif310 #else311 252 m_cTEncTop.setMaxTempLayer ( m_maxTempLayer ); 312 253 #endif … … 317 258 //====== Loop/Deblock Filter ======== 318 259 #if H_MV 319 #if H_MV5320 260 m_cTEncTop.setLoopFilterDisable ( m_bLoopFilterDisable[layerIdInVps]); 321 #else322 m_cTEncTop.setLoopFilterDisable ( m_bLoopFilterDisable[layer]);323 #endif324 261 #else 325 262 m_cTEncTop.setLoopFilterDisable ( m_bLoopFilterDisable ); … … 351 288 352 289 #if H_MV 353 #if H_MV5354 290 if ((m_iMaxDeltaQP == 0 ) && (m_iQP[layerIdInVps] == lowestQP) && (m_useLossless == true)) 355 #else356 if ((m_iMaxDeltaQP == 0 ) && (m_iQP[layer] == lowestQP) && (m_useLossless == true))357 #endif358 291 #else 359 292 if ((m_iMaxDeltaQP == 0 ) && (m_iQP == lowestQP) && (m_useLossless == true)) … … 372 305 m_cTEncTop.setUseLossless ( m_useLossless ); 373 306 #if H_MV 374 #if H_MV5375 307 m_cTEncTop.setdQPs ( m_aidQP[layerIdInVps] ); 376 #else377 m_cTEncTop.setdQPs ( m_aidQP[layer] );378 #endif379 308 #else 380 309 m_cTEncTop.setdQPs ( m_aidQP ); … … 435 364 m_cTEncTop.setLFCrossSliceBoundaryFlag( m_bLFCrossSliceBoundaryFlag ); 436 365 #if H_MV 437 #if H_MV5438 366 m_cTEncTop.setUseSAO ( m_bUseSAO[layerIdInVps] ); 439 #else440 m_cTEncTop.setUseSAO ( m_bUseSAO[layer] );441 #endif442 367 #else 443 368 m_cTEncTop.setUseSAO ( m_bUseSAO ); … … 1303 1228 Void TAppEncTop::xSetDimensionIdAndLength( TComVPS& vps ) 1304 1229 { 1305 #if H_MV51306 1230 vps.setScalabilityMaskFlag( m_scalabilityMask ); 1307 #else1308 vps.setScalabilityMask( m_scalabilityMask );1309 #endif1310 1231 for( Int dim = 0; dim < m_dimIds.size(); dim++ ) 1311 1232 { 1312 1233 vps.setDimensionIdLen( dim, m_dimensionIdLen[ dim ] ); 1313 #if H_MV51314 1234 for( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ ) 1315 #else1316 for( Int layer = 0; layer < vps.getMaxLayers(); layer++ )1317 #endif1318 1235 1319 1236 { … … 1322 1239 } 1323 1240 1324 #if H_MV51325 1241 Int maxViewId = xGetMax( m_viewId ); 1326 1242 … … 1335 1251 1336 1252 assert( m_iNumberOfViews == vps.getNumViews() ); 1337 #endif1338 1253 } 1339 1254 … … 1362 1277 1363 1278 // Max temporal id for inter layer reference pictures + presence flag 1364 #if H_MV51365 1279 Bool maxTidRefPresentFlag = false; 1366 #endif1367 1280 for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++) 1368 1281 { … … 1385 1298 } 1386 1299 vps.setMaxTidIlRefPicPlus1( refLayerIdInVps, maxTid + 1 ); 1387 #if H_MV51388 1300 maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 ); 1389 #endif 1390 } 1391 1392 #if H_MV5 1301 } 1302 1393 1303 vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag ); 1394 #endif1395 1304 // Max one active ref layer flag 1396 1305 Bool maxOneActiveRefLayerFlag = true; 1397 #if H_MV51398 1306 for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers && maxOneActiveRefLayerFlag; layerIdInVps++) 1399 #else1400 for ( Int currLayerIdInVps = 1; currLayerIdInVps < m_numberOfLayers && maxOneActiveRefLayerFlag; currLayerIdInVps++)1401 #endif1402 1307 { 1403 1308 for( Int i = 0; i < ( getGOPSize() + 1) && maxOneActiveRefLayerFlag; i++ ) 1404 1309 { 1405 #if H_MV51406 1310 GOPEntry ge = m_GOPListMvc[layerIdInVps][ ( i < getGOPSize() ? i : MAX_GOP ) ]; 1407 #else1408 GOPEntry ge = m_GOPListMvc[currLayerIdInVps][ ( i < getGOPSize() ? i : MAX_GOP ) ];1409 #endif1410 1311 maxOneActiveRefLayerFlag = maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1); 1411 1312 } … … 1415 1316 1416 1317 1417 #if H_MV51418 1318 // All Ref layers active flag 1419 1319 Bool allRefLayersActiveFlag = true; … … 1431 1331 // Currently cross layer irap aligned is always true. 1432 1332 vps.setCrossLayerIrapAlignedFlag( true ); 1433 #endif1434 1333 vps.setRefLayers(); 1435 1334 }; 1436 1335 1437 #if H_MV51438 1336 GOPEntry* TAppEncTop::xGetGopEntry( Int layerIdInVps, Int poc ) 1439 1337 { … … 1450 1348 return geFound; 1451 1349 } 1452 #endif1453 1350 1454 1351 Void TAppEncTop::xSetLayerIds( TComVPS& vps ) … … 1490 1387 } 1491 1388 1492 #if H_MV51493 1389 1494 1390 Void TAppEncTop::xSetRepFormat( TComVPS& vps ) … … 1515 1411 } 1516 1412 } 1517 #endif1518 1413 1519 1414 Void TAppEncTop::xSetLayerSets( TComVPS& vps ) … … 1568 1463 } 1569 1464 } 1570 #if H_MV51571 1465 1572 1466 Void TAppEncTop::xSetVPSVUI( TComVPS& vps ) … … 1660 1554 } 1661 1555 #endif 1662 #endif1663 1556 #if H_3D 1664 1557 Void TAppEncTop::xSetVPSExtension2( TComVPS& vps ) 1665 1558 { 1666 #if H_MV51667 1559 1668 1560 for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ ) 1669 #else1670 for ( Int layer = 0; layer < vps.getMaxLayers(); layer++ )1671 #endif1672 1561 { 1673 1562 Bool isDepth = ( vps.getDepthId( layer ) == 1 ) ; -
branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncTop.h
r635 r648 124 124 Void xSetLayerSets ( TComVPS& vps ); 125 125 Void xSetProfileTierLevel ( TComVPS& vps ); 126 #if H_MV5127 126 Void xSetRepFormat ( TComVPS& vps ); 128 127 Void xSetVPSVUI ( TComVPS& vps ); 129 128 GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc ); 130 #endif131 129 Int xGetMax( std::vector<Int>& vec); 132 130 #endif
Note: See TracChangeset for help on using the changeset viewer.