- Timestamp:
- 7 Oct 2014, 12:16:13 (10 years ago)
- Location:
- branches/HTM-12.0-dev1
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.0-dev1/cfg/MV-HEVC/NonCTC/inbl_3view.cfg
r1054 r1060 8 8 #NumberOfLayers : 6 9 9 #=============== vps =============== 10 ScalabilityMask : 2 # Scalability Mask ( 2: View Scalability, shall be 2 for MV-HEVC ) 11 DimensionIdLen : 4 # Number of bits to store Ids, per scalability dimension, (m) 12 ViewOrderIndex : 0 1 2 3 4 5 # ViewOrderIndex, per layer (m) 10 ScalabilityMask : 10 # Scalability Mask ( 2: View Scalability, shall be 2 for MV-HEVC ) 11 DimensionIdLen : 4 4 # Number of bits to store Ids, per scalability dimension, (m) 12 ViewOrderIndex : 0 0 1 1 2 2 # ViewOrderIndex, per layer (m) 13 AuxId : 0 2 0 2 0 2 13 14 LayerIdInNuh : 0 1 2 3 4 5 # Layer Id in NAL unit header, (0: no explicit signalling, otherwise per layer ) (m) 14 15 SplittingFlag : 0 # Splitting Flag 15 ViewId : 1 4 0 3 2 5# ViewId, per ViewOrderIndex (m)16 ViewId : 1 0 2 # ViewId, per ViewOrderIndex (m) 16 17 #=============== vpslayersets =============== 17 18 VpsNumLayerSets : 2 # Number of layer sets … … 26 27 LayerIdsInSet_8 : # Indices in VPS of layers in layer set 8 27 28 28 NumAddLayerSets : 1 # Additional layer sets for ind pendenddecodable non-base layer29 NumAddLayerSets : 1 # Additional layer sets for independent decodable non-base layer 29 30 HighestLayerIdxPlus1_0 : -1 3 30 31 -
branches/HTM-12.0-dev1/source/App/TAppDecoder/TAppDecTop.cpp
r1054 r1060 260 260 if (m_outputVpsInfo ) 261 261 { 262 #if H_MV_HLS10_AUX 263 m_vps->printScalabilityId(); 264 #endif 262 265 m_vps->printLayerDependencies(); 263 266 m_vps->printLayerSets(); -
branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.cpp
r1054 r1060 380 380 ("NumberOfLayers", m_numberOfLayers , 1, "Number of layers") 381 381 #if !H_3D 382 #if H_MV_HLS10_AUX 383 ("ScalabilityMask", m_scalabilityMask , 2 , "Scalability Mask: 2: Multiview, 8: Auxiliary, 10: Multiview + Auxiliary") 384 #else 382 385 ("ScalabilityMask", m_scalabilityMask , 2 , "Scalability Mask") 386 #endif 383 387 #else 384 388 ("ScalabilityMask", m_scalabilityMask , 3 , "Scalability Mask, 1: Texture 3: Texture + Depth ") … … 387 391 ("ViewOrderIndex", m_viewOrderIndex , std::vector<Int>(1,0), "View Order Index per layer") 388 392 ("ViewId", m_viewId , std::vector<Int>(1,0), "View Id per View Order Index") 393 #if H_MV_HLS10_AUX 394 ("AuxId", m_auxId , std::vector<Int>(1,0), "AuxId per layer") 395 #endif 389 396 #if H_3D 390 397 ("DepthFlag", m_depthFlag , std::vector<Int>(1,0), "Depth Flag") … … 1075 1082 } 1076 1083 m_iNumberOfViews = (Int) uniqueViewOrderIndices.size(); 1084 #if H_MV_HLS10_AUX 1085 xResizeVector( m_auxId ); 1086 #endif 1077 1087 1078 1088 #if H_3D … … 1421 1431 xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. "); 1422 1432 #else 1433 #if H_MV_HLS10_AUX 1434 xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 8 && m_scalabilityMask != 10, "Scalability Mask must be equal to 2, 8 or 10"); 1435 #else 1423 1436 xConfirmPara( m_scalabilityMask != 2 , "Scalability Mask must be equal to 2. "); 1437 #endif 1424 1438 #endif 1425 1439 … … 1432 1446 1433 1447 m_dimIds.push_back( m_viewOrderIndex ); 1434 xConfirmPara( m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. " ); Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; 1448 #if H_MV_HLS10_AUX 1449 for (Int i = 0; i < m_auxId.size(); i++) 1450 { 1451 xConfirmPara( !( ( m_auxId[i] >= 0 && m_auxId[i] <= 2 ) || ( m_auxId[i] >= 128 && m_auxId[i] <= 159 ) ) , "AuxId shall be in the range of 0 to 2, inclusive, or 128 to 159, inclusive"); 1452 } 1453 if ( m_scalabilityMask & ( 1 << AUX_ID ) ) 1454 { 1455 m_dimIds.push_back ( m_auxId ); 1456 } 1457 #endif 1458 xConfirmPara( m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. " ); 1459 Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; 1435 1460 1436 1461 dimBitOffset[ 0 ] = 0; … … 2483 2508 xPrintParaVector( "ViewIdVal" , m_viewId ); 2484 2509 xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex ); 2510 #if H_MV_HLS10_AUX 2511 xPrintParaVector( "AuxId", m_auxId ); 2512 #endif 2485 2513 #endif 2486 2514 #if H_3D -
branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.h
r1054 r1060 78 78 std::vector<Int> m_viewId; ///< view id 79 79 std::vector<Int> m_viewOrderIndex; ///< view order index 80 #if H_MV_HLS10_AUX 81 std::vector<Int> m_auxId; ///< auxiliary id 82 #endif 80 83 #if H_3D 81 84 std::vector<Int> m_depthFlag; ///< depth flag -
branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncTop.cpp
r1058 r1060 171 171 if ( m_outputVpsInfo ) 172 172 { 173 #if H_MV_HLS10_AUX 174 vps.printScalabilityId(); 175 #endif 173 176 vps.printLayerDependencies(); 174 177 vps.printLayerSets(); … … 1864 1867 { 1865 1868 vps.setProfileTierLevelIdx(olsIdx, j, m_profileTierLevelIdx[olsIdx][j] ); 1869 #if H_MV_HLS10_PTL_FIX 1870 if( !vps.getNecessaryLayerFlag(olsIdx,j) && m_profileTierLevelIdx[ olsIdx ][ j ] != -1 ) 1871 { 1872 fprintf( stderr, "Warning: The %d-th layer in the %d-th OLS is not necessary such that profileTierLevelIdx[%d][%d] will be ignored. Set value to -1 to suppress warning.\n", j,olsIdx,olsIdx,j ); 1873 } 1874 } 1875 else if ( vps.getNecessaryLayerFlag(olsIdx,j) ) 1876 #else 1866 1877 } 1867 1878 else 1879 #endif 1868 1880 { 1869 1881 // setting default values -
branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComRom.h
r1054 r1060 239 239 240 240 #ifndef ENC_DEC_TRACE 241 #define ENC_DEC_TRACE 0241 #define ENC_DEC_TRACE 1 242 242 #endif 243 243 -
branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComSlice.cpp
r1059 r1060 1915 1915 { 1916 1916 #if H_MV_HLS10_PTL 1917 #if H_MV_HLS10_PTL_FIX 1918 m_profileTierLevelIdx[i][j] = -1; 1919 #else 1917 1920 m_profileTierLevelIdx[i][j] = false; 1921 #endif 1918 1922 #endif 1919 1923 m_outputLayerFlag[i][j] = false; -
branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComSlice.h
r1055 r1060 1216 1216 Void setProfileTierLevelIdx( Int i, Int j, Int val ) { m_profileTierLevelIdx[ i ][ j ] = val; } 1217 1217 Int getProfileTierLevelIdx( Int i, Int j ) { return m_profileTierLevelIdx[ i ][ j ]; } 1218 #if H_MV_HLS10_PTL 1219 Int inferProfileTierLevelIdx( Int i, Int j ) 1220 { 1221 Bool inferZero = ( i == 0 && j == 0 && getVpsBaseLayerInternalFlag() ); 1222 Bool inferGreaterZero = getNecessaryLayerFlag(i,j) && ( getVpsNumProfileTierLevelMinus1() == 0 ); 1223 assert( inferZero || inferGreaterZero ); 1224 1225 Bool ptlIdx = 0; // inference for greaterZero 1226 if ( inferZero ) 1227 { 1228 ptlIdx = getMaxLayersMinus1() > 0 ? 1 : 0; 1229 if ( inferGreaterZero ) 1230 { 1231 assert( ptlIdx == 0 ); 1232 // This should never happen since : 1233 // When vps_max_layers_minus1 is greater than 0, the value of vps_num_profile_tier_level_minus1 shall be greater than or equal to 1. 1234 } 1235 } 1236 return ptlIdx; 1237 } 1238 #endif 1218 1239 #else 1219 1240 Void setProfileLevelTierIdx( Int outLayerSetIdx, Int val ) { m_profileLevelTierIdx[ outLayerSetIdx ] = val; } … … 1282 1303 1283 1304 Int getViewIndex ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX ); } 1305 #if H_MV_HLS10_AUX 1306 Int getAuxId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID ); } 1307 Int getDependencyId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID ); } 1308 #endif 1284 1309 Int getNumViews(); 1285 1310 … … 1460 1485 vector<Int> fullArray; 1461 1486 vector<Int> range; 1487 1488 #if H_3D 1489 vector<Int> depthId; 1490 #endif 1491 1492 #if H_MV_HLS10_AUX 1493 vector<Int> viewOrderIndex; 1494 vector<Int> auxId; 1495 vector<Int> dependencyId; 1496 vector<Int> viewId; 1497 #endif 1462 1498 for (Int i = 0; i <= getMaxLayersMinus1(); i++ ) 1463 1499 { 1464 1500 fullArray.push_back( getMaxLayersMinus1() + 1 ); 1465 1501 range.push_back( i ); 1502 #if H_MV_HLS10_AUX 1503 viewOrderIndex.push_back( getViewIndex ( i ) ); 1504 dependencyId .push_back( getDependencyId( i ) ); 1505 auxId .push_back( getAuxId ( i ) ); 1506 viewId .push_back( getViewId ( getLayerIdInNuh( i ) ) ); 1507 #if H_3D 1508 depthId.push_back( getDepthId( i ) ); 1509 #endif 1510 #endif 1466 1511 } 1467 1512 std::cout << std::right << std::setw(60) << std::setfill('-') << " " << std::setfill(' ') << std::endl << "Layer Dependencies" << std::endl; … … 1475 1520 1476 1521 }; 1522 1523 #if H_MV_HLS10_AUX 1524 Void printScalabilityId() 1525 { 1526 vector<Int> layerIdxInVps; 1527 1528 #if H_3D 1529 vector<Int> depthId; 1530 #endif 1531 1532 vector<Int> viewOrderIndex; 1533 vector<Int> auxId; 1534 vector<Int> dependencyId; 1535 vector<Int> viewId; 1536 1537 for (Int i = 0; i <= getMaxLayersMinus1(); i++ ) 1538 { 1539 Int layerIdInNuh = getLayerIdInNuh( i ); 1540 layerIdxInVps .push_back( i ); 1541 viewOrderIndex.push_back( getViewIndex ( layerIdInNuh ) ); 1542 dependencyId .push_back( getDependencyId( layerIdInNuh ) ); 1543 auxId .push_back( getAuxId ( layerIdInNuh ) ); 1544 viewId .push_back( getViewId ( layerIdInNuh ) ); 1545 #if H_3D 1546 depthId .push_back( getDepthId ( layerIdInNuh ) ); 1547 #endif 1548 } 1549 1550 std::cout << std::right << std::setw(60) << std::setfill('-') << " " << std::setfill(' ') << std::endl << "Scalability Ids" << std::endl; 1551 xPrintArray( "layerIdxInVps" , getMaxLayersMinus1()+1, layerIdxInVps, false ); 1552 xPrintArray( "layer_id_in_nuh", getMaxLayersMinus1()+1, m_layerIdInNuh, false ); 1553 1554 xPrintArray( "ViewOrderIndex", getMaxLayersMinus1()+1, viewOrderIndex, false ); 1555 xPrintArray( "DependencyId" , getMaxLayersMinus1()+1, dependencyId , false ); 1556 xPrintArray( "AuxId" , getMaxLayersMinus1()+1, auxId , false ); 1557 xPrintArray( "ViewId" , getMaxLayersMinus1()+1, viewId , false ); 1558 1559 std::cout << std::endl; 1560 }; 1561 #endif 1562 1563 1477 1564 1478 1565 Void printLayerSets() -
branches/HTM-12.0-dev1/source/Lib/TLibCommon/TypeDef.h
r1055 r1060 403 403 #define H_MV_HLS10_GEN 0 // General changes (not tested) 404 404 405 #define H_MV_HLS10_AUX 1 // Auxiliary pictures 405 406 #define H_MV_HLS10_GEN_FIX 1 406 407 … … 413 414 #define H_MV_HLS10_MAXNUMPICS 1 // constraint on number of pictures in rps 414 415 #define H_MV_HLS10_PTL 1 // profile tier level 416 #define H_MV_HLS10_PTL_FIX 1 // profile tier level 415 417 #define H_MV_HLS10_MULTILAYERSPS 1 // multilayer SPS extension 416 418 #define H_MV_HLS10_VPS_VUI 1 // vsp vui … … 1062 1064 #endif 1063 1065 VIEW_ORDER_INDEX = 1, 1066 #if H_MV_HLS10_AUX 1067 DEPENDENCY_ID = 2, 1068 AUX_ID = 3, 1069 #endif 1064 1070 }; 1065 1071 #endif -
branches/HTM-12.0-dev1/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1056 r1060 1457 1457 pcVPS->deriveTargetLayerIdList( 0 ); 1458 1458 1459 #if H_MV_HLS10_PTL_FIX 1460 if (pcVPS->getVpsBaseLayerInternalFlag() ) 1461 { 1462 pcVPS->setProfileTierLevelIdx(0,0, pcVPS->inferProfileTierLevelIdx(0,0) ); 1463 } 1464 #endif 1459 1465 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1460 1466 { … … 1494 1500 READ_CODE( pcVPS->getProfileTierLevelIdxLen(), uiCode,"profile_tier_level_idx[ i ][ j ]" ); pcVPS->setProfileTierLevelIdx( i, j, uiCode ); 1495 1501 } 1502 #if H_MV_HLS10_PTL_FIX 1503 if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 ) 1504 { 1505 pcVPS->setProfileTierLevelIdx( i , j, pcVPS->inferProfileTierLevelIdx( i, j) ); 1506 } 1507 #endif 1496 1508 } 1497 1509 #else -
branches/HTM-12.0-dev1/source/Lib/TLibEncoder/TEncCavlc.cpp
r1055 r1060 1241 1241 1242 1242 1243 #if H_MV_HLS10_PTL_FIX 1244 if (pcVPS->getVpsBaseLayerInternalFlag() ) 1245 { 1246 assert( pcVPS->getProfileTierLevelIdx(0,0) == pcVPS->inferProfileTierLevelIdx(0,0) ); 1247 } 1248 #endif 1243 1249 1244 1250 … … 1276 1282 WRITE_CODE( pcVPS->getProfileTierLevelIdx( i, j ), pcVPS->getProfileTierLevelIdxLen() ,"profile_tier_level_idx[ i ][ j ]" ); 1277 1283 } 1284 #if H_MV_HLS10_PTL_FIX 1285 if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 ) 1286 { 1287 assert( pcVPS->getProfileTierLevelIdx( i , j ) == pcVPS->inferProfileTierLevelIdx( i, j ) ); 1288 } 1289 #endif 1290 1278 1291 } 1279 1292 #else
Note: See TracChangeset for help on using the changeset viewer.