Changeset 495 in 3DVCSoftware
- Timestamp:
- 25 Jun 2013, 22:11:57 (11 years ago)
- Location:
- branches/HTM-DEV-0.3-dev0
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev0/cfg/3D-HEVC/baseCfg_2view.cfg
r494 r495 30 30 OutputLayerSetIdx : 1 # Indices of layer sets used as additional output layer sets 31 31 LayerIdsInAddOutputLayerSet_0 : 1 # LayerIds in vps of additional output layers 32 ProfileLevelTierIdx : 0 0 # Indices to profile level tier (TBD)32 ProfileLevelTierIdx : 0 0 0 # Indices to profile level tier (TBD) per output layer set 33 33 34 34 #======== VPS / Dependencies ================ -
branches/HTM-DEV-0.3-dev0/cfg/3D-HEVC/baseCfg_3view+depth.cfg
r494 r495 43 43 LayerIdsInAddOutputLayerSet_0 : 2 3 # LayerIds of additional output layers 44 44 LayerIdsInAddOutputLayerSet_1 : 4 5 # LayerIds of additional output layers 45 ProfileLevelTierIdx : 0 0 0 0 0 0 # Indices to profile level tier (TBD)45 ProfileLevelTierIdx : 0 0 0 0 0 0 0 0 # Indices to profile level tier (TBD) 46 46 47 47 #======== VPS / Dependencies ================ -
branches/HTM-DEV-0.3-dev0/cfg/3D-HEVC/baseCfg_3view.cfg
r494 r495 35 35 LayerIdsInAddOutputLayerSet_0 : 1 # LayerIds in vps of additional output layers 36 36 LayerIdsInAddOutputLayerSet_1 : 2 # LayerIds in vps of additional output layers 37 ProfileLevelTierIdx : 0 0 0 0 37 ProfileLevelTierIdx : 0 0 0 0 0 0 # Indices to profile level tier (TBD) 38 38 39 39 #======== VPS / Dependencies ================ -
branches/HTM-DEV-0.3-dev0/cfg/MV-HEVC/baseCfg_2view.cfg
r494 r495 30 30 OutputLayerSetIdx : 1 # Indices of layer sets used as additional output layer sets 31 31 LayerIdsInAddOutputLayerSet_0 : 1 # LayerIds in vps of additional output layers 32 ProfileLevelTierIdx : 0 32 ProfileLevelTierIdx : 0 0 0 # Indices to profile level tier (TBD) 33 33 34 34 #======== VPS / Dependencies ================ -
branches/HTM-DEV-0.3-dev0/cfg/MV-HEVC/baseCfg_3view.cfg
r494 r495 35 35 LayerIdsInAddOutputLayerSet_0 : 1 # LayerIds in vps of additional output layers 36 36 LayerIdsInAddOutputLayerSet_1 : 2 # LayerIds in vps of additional output layers 37 ProfileLevelTierIdx : 0 0 0 0 37 ProfileLevelTierIdx : 0 0 0 0 0 0 # Indices to profile level tier (TBD) 38 38 39 39 #======== VPS / Dependencies ================ -
branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r493 r495 228 228 in>>entry.m_interViewRefPosL[1][i]; 229 229 } 230 in>>entry.m_collocatedRefLayerIdx; 230 if (entry.m_numActiveRefLayerPics > 0 ) 231 { 232 in>>entry.m_collocatedRefLayerIdx; 233 } 231 234 #endif 232 235 return in; … … 1375 1378 1376 1379 // Output layer sets 1377 xConfirmPara( m_outputLayerSetIdx.size() < 0 || m_outputLayerSetIdx.size() > 1024, "The number of output layer set indices must be less than 1025 ") ;1380 xConfirmPara( m_outputLayerSetIdx.size() < 0 || m_outputLayerSetIdx.size() > 1024, "The number of output layer set indices must be less than 1025.") ; 1378 1381 for (Int lsIdx = 0; lsIdx < m_outputLayerSetIdx.size(); lsIdx++) 1379 1382 { 1380 1383 Int refLayerSetIdx = m_outputLayerSetIdx[ lsIdx ]; 1381 xConfirmPara( refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets " );1384 xConfirmPara( refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets." ); 1382 1385 1383 1386 for (Int i = 0; i < m_layerIdsInAddOutputLayerSet[ lsIdx ].size(); i++) … … 1390 1393 isAlsoInLayerSet = true; 1391 1394 break; 1392 } 1393 xConfirmPara( !isAlsoInLayerSet, "All output layers must of a output layer set be included in corresponding layer set");1394 }1395 } 1396 } 1397 xConfirmPara( !isAlsoInLayerSet, "All output layers of a output layer set be included in corresponding layer set."); 1395 1398 } 1396 1399 } … … 1401 1404 { 1402 1405 xConfirmPara( (i == 0) && m_directRefLayers[0].size() != 0, "Layer 0 shall not have reference layers." ); 1403 xConfirmPara( m_directRefLayers[i].size() == m_dependencyTypes[ i ].size() != 0, "Each reference layer shall have a reference type" );1406 xConfirmPara( m_directRefLayers[i].size() != m_dependencyTypes[ i ].size(), "Each reference layer shall have a reference type." ); 1404 1407 for (Int j = 0; j < m_directRefLayers[i].size(); j++) 1405 1408 { … … 1573 1576 if( m_numberOfLayers > 1 ) 1574 1577 { 1575 for( Int k = 1; k < m_numberOfLayers; k++ )1578 for( Int layer = 1; layer < m_numberOfLayers; layer++ ) 1576 1579 { 1577 1580 for( Int i = 0; i < MAX_GOP+1; i++ ) 1578 1581 { 1579 for( Int j = 0; j < m_GOPListMvc[k][i].m_numActiveRefLayerPics; j++ ) 1582 GOPEntry gopEntry = m_GOPListMvc[layer][i]; 1583 for( Int j = 0; j < gopEntry.m_numActiveRefLayerPics; j++ ) 1580 1584 { 1581 Int ilPredLayerIdc = m_directRefLayers[k][m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j]];1582 if( ilPredLayerIdc < 0 || ilPredLayerIdc >= m_directRefLayers[ k].size() )1585 Int ilPredLayerIdc = gopEntry.m_interLayerPredLayerIdc[j]; 1586 if( ilPredLayerIdc < 0 || ilPredLayerIdc >= m_directRefLayers[layer].size() ) 1583 1587 { 1584 printf( "\nError: inter-layer ref idc %d is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j], i, k);1588 printf( "\nError: inter-layer ref idc %d is not available for Frame%d_l%d\n", gopEntry.m_interLayerPredLayerIdc[j], i, layer ); 1585 1589 bErrorIvpEnhV = true; 1586 1590 } 1587 if( m_GOPListMvc[k][i].m_interViewRefPosL[0][j] < -1 || m_GOPListMvc[k][i].m_interViewRefPosL[0][j] > m_GOPListMvc[k][i].m_numRefPicsActive )1591 if( gopEntry.m_interViewRefPosL[0][j] < -1 || gopEntry.m_interViewRefPosL[0][j] > gopEntry.m_numRefPicsActive ) 1588 1592 { 1589 printf( "\nError: inter-layer ref pos %d on L0 is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interViewRefPosL[0][j], i, k);1593 printf( "\nError: inter-layer ref pos %d on L0 is not available for Frame%d_l%d\n", gopEntry.m_interViewRefPosL[0][j], i, layer ); 1590 1594 bErrorIvpEnhV = true; 1591 1595 } 1592 if( m_GOPListMvc[k][i].m_interViewRefPosL[1][j] < -1 || m_GOPListMvc[k][i].m_interViewRefPosL[1][j] > m_GOPListMvc[k][i].m_numRefPicsActive )1596 if( gopEntry.m_interViewRefPosL[1][j] < -1 || gopEntry.m_interViewRefPosL[1][j] > gopEntry.m_numRefPicsActive ) 1593 1597 { 1594 printf( "\nError: inter-layer ref pos %d on L1 is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interViewRefPosL[1][j], i, k);1598 printf( "\nError: inter-layer ref pos %d on L1 is not available for Frame%d_l%d\n", gopEntry.m_interViewRefPosL[1][j], i, layer ); 1595 1599 bErrorIvpEnhV = true; 1596 1600 } … … 1598 1602 if( i == MAX_GOP ) // inter-view refs at I pic position in base view 1599 1603 { 1600 if( m_GOPListMvc[k][MAX_GOP].m_sliceType != 'B' && m_GOPListMvc[k][MAX_GOP].m_sliceType != 'P' && m_GOPListMvc[k][MAX_GOP].m_sliceType != 'I' )1604 if( gopEntry.m_sliceType != 'B' && gopEntry.m_sliceType != 'P' && gopEntry.m_sliceType != 'I' ) 1601 1605 { 1602 printf( "\nError: slice type of FrameI_l%d must be equal to B or P or I\n", k);1606 printf( "\nError: slice type of FrameI_l%d must be equal to B or P or I\n", layer ); 1603 1607 bErrorIvpEnhV = true; 1604 1608 } 1605 1609 1606 if( m_GOPListMvc[k][MAX_GOP].m_POC != 0 )1610 if( gopEntry.m_POC != 0 ) 1607 1611 { 1608 printf( "\nError: POC %d not possible for FrameI_l%d, must be 0\n", m_GOPListMvc[k][MAX_GOP].m_POC, k);1612 printf( "\nError: POC %d not possible for FrameI_l%d, must be 0\n", gopEntry.m_POC, layer ); 1609 1613 bErrorIvpEnhV = true; 1610 1614 } 1611 1615 1612 if( m_GOPListMvc[k][MAX_GOP].m_temporalId != 0 )1616 if( gopEntry.m_temporalId != 0 ) 1613 1617 { 1614 printf( "\nWarning: Temporal id of FrameI_l%d must be 0 (cp. I-frame in base layer)\n", k);1615 m_GOPListMvc[k][MAX_GOP].m_temporalId = 0;1618 printf( "\nWarning: Temporal id of FrameI_l%d must be 0 (cp. I-frame in base layer)\n", layer ); 1619 gopEntry.m_temporalId = 0; 1616 1620 } 1617 1621 1618 if( m_GOPListMvc[k][MAX_GOP].m_numRefPics != 0 )1622 if( gopEntry.m_numRefPics != 0 ) 1619 1623 { 1620 printf( "\nWarning: temporal references not possible for FrameI_l%d\n", k);1621 for( Int j = 0; j < m_GOPListMvc[ k][MAX_GOP].m_numRefPics; j++ )1624 printf( "\nWarning: temporal references not possible for FrameI_l%d\n", layer ); 1625 for( Int j = 0; j < m_GOPListMvc[layer][MAX_GOP].m_numRefPics; j++ ) 1622 1626 { 1623 m_GOPListMvc[k][MAX_GOP].m_referencePics[j] = 0;1627 gopEntry.m_referencePics[j] = 0; 1624 1628 } 1625 m_GOPListMvc[k][MAX_GOP].m_numRefPics = 0;1629 gopEntry.m_numRefPics = 0; 1626 1630 } 1627 1631 1628 if( m_GOPListMvc[k][MAX_GOP].m_interRPSPrediction )1632 if( gopEntry.m_interRPSPrediction ) 1629 1633 { 1630 printf( "\nError: inter RPS prediction not possible for FrameI_l%d, must be 0\n", k);1634 printf( "\nError: inter RPS prediction not possible for FrameI_l%d, must be 0\n", layer ); 1631 1635 bErrorIvpEnhV = true; 1632 1636 } 1633 1637 1634 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'I' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics != 0 )1638 if( gopEntry.m_sliceType == 'I' && gopEntry.m_numActiveRefLayerPics != 0 ) 1635 1639 { 1636 printf( "\nError: inter-layer prediction not possible for FrameI_l%d with slice type I, #IL_ref_pics must be 0\n", k);1640 printf( "\nError: inter-layer prediction not possible for FrameI_l%d with slice type I, #IL_ref_pics must be 0\n", layer ); 1637 1641 bErrorIvpEnhV = true; 1638 1642 } 1639 1643 1640 if( m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive > m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics )1644 if( gopEntry.m_numRefPicsActive > gopEntry.m_numActiveRefLayerPics ) 1641 1645 { 1642 m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive = m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics;1646 gopEntry.m_numRefPicsActive = gopEntry.m_numActiveRefLayerPics; 1643 1647 } 1644 1648 1645 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'P' )1649 if( gopEntry.m_sliceType == 'P' ) 1646 1650 { 1647 if( m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 )1651 if( gopEntry.m_numActiveRefLayerPics < 1 ) 1648 1652 { 1649 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type P\n", k);1653 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type P\n", layer ); 1650 1654 bErrorIvpEnhV = true; 1651 1655 } 1652 1656 else 1653 1657 { 1654 for( Int j = 0; j < m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics; j++ )1658 for( Int j = 0; j < gopEntry.m_numActiveRefLayerPics; j++ ) 1655 1659 { 1656 if( m_GOPListMvc[k][MAX_GOP].m_interViewRefPosL[1][j] != -1 )1660 if( gopEntry.m_interViewRefPosL[1][j] != -1 ) 1657 1661 { 1658 printf( "\nError: inter-layer ref pos %d on L1 not possible for FrameI_l%d with slice type P\n", m_GOPListMvc[k][MAX_GOP].m_interViewRefPosL[1][j], k);1662 printf( "\nError: inter-layer ref pos %d on L1 not possible for FrameI_l%d with slice type P\n", gopEntry.m_interViewRefPosL[1][j], layer ); 1659 1663 bErrorIvpEnhV = true; 1660 1664 } … … 1663 1667 } 1664 1668 1665 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'B' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 )1669 if( gopEntry.m_sliceType == 'B' && gopEntry.m_numActiveRefLayerPics < 1 ) 1666 1670 { 1667 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type B\n", k);1671 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type B\n", layer ); 1668 1672 bErrorIvpEnhV = true; 1669 1673 } -
branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncCfg.h
r493 r495 90 90 Int m_vpsNumLayerSets; ///< Number of layer sets 91 91 std::vector< std::vector<Int> > m_layerIdsInSets; ///< LayerIds in vps of layer set 92 Bool m_defaultOneTargetOutputLayerFlag; ///< Output highest layer of layer sets by default 93 Int numAddOuputLayerSets; ///< Number of additional output layer sets 92 Bool m_defaultOneTargetOutputLayerFlag; ///< Output highest layer of layer sets by default 94 93 std::vector<Int> m_outputLayerSetIdx; ///< Indices of layer sets used as additional output layer sets 95 94 std::vector< std::vector<Int> > m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers … … 97 96 98 97 // Dependencies 99 std::vector< std::vector<Int>> m_directRefLayers;///< LayerIds of direct reference layers100 std::vector< std::vector<Int>> m_dependencyTypes;///< Dependency types of direct reference layers98 std::vector< std::vector<Int> > m_directRefLayers; ///< LayerIds of direct reference layers 99 std::vector< std::vector<Int> > m_dependencyTypes; ///< Dependency types of direct reference layers 101 100 #endif 102 101 Double m_adLambdaModifier[ MAX_TLAYER ]; ///< Lambda modifier array for each temporal layer -
branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r493 r495 119 119 xSetDimensionIdAndLength ( vps ); 120 120 xSetDependencies( vps ); 121 xSetProfileTierLevel ( vps ); 121 122 xSetLayerSets ( vps ); 122 123 #if H_3D … … 993 994 { 994 995 vps.setDirectDependencyFlag( depLayer, refLayer, false); 995 vps.setDirectDependencyType( depLayer, refLayer, 0);996 vps.setDirectDependencyType( depLayer, refLayer, -1 ); 996 997 } 997 998 } 998 999 for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ ) 999 1000 { 1000 Int numRefLayers = m_directRefLayers[depLayer].size();1001 assert( numRefLayers == m_dependencyTypes[depLayer].size() );1001 Int numRefLayers = (Int) m_directRefLayers[depLayer].size(); 1002 assert( numRefLayers == (Int) m_dependencyTypes[depLayer].size() ); 1002 1003 for( Int i = 0; i < numRefLayers; i++ ) 1003 1004 { … … 1012 1013 { 1013 1014 Int maxTid = -1; 1014 for ( Int cur rLayerIdInVps = 1; currLayerIdInVps < m_numberOfLayers; currLayerIdInVps++)1015 for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++) 1015 1016 { 1016 1017 for( Int i = 0; i < getGOPSize(); i++ ) 1017 1018 { 1018 GOPEntry ge = m_GOPListMvc[currLayerIdInVps][i]; 1019 GOPEntry geCur = m_GOPListMvc[curLayerIdInVps][i]; 1020 GOPEntry geRef = m_GOPListMvc[refLayerIdInVps][i]; 1019 1021 1020 for (Int j = 0; j < ge .m_numRefPicsActive; j++)1022 for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++) 1021 1023 { 1022 if ( m_directRefLayers[ cur rLayerIdInVps ][ ge.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )1024 if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps ) 1023 1025 { 1024 maxTid = std::max( maxTid, ge .m_temporalId );1026 maxTid = std::max( maxTid, geRef.m_temporalId ); 1025 1027 } 1026 1028 } … … 1037 1039 { 1038 1040 GOPEntry ge = m_GOPListMvc[currLayerIdInVps][ ( i < getGOPSize() ? i : MAX_GOP ) ]; 1039 maxOneActiveRefLayerFlag = maxOneActiveRefLayerFlag && (ge.m_num RefPicsActive<= 1);1041 maxOneActiveRefLayerFlag = maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1); 1040 1042 } 1041 1043 } … … 1069 1071 return maxVec; 1070 1072 } 1073 1074 1075 Void TAppEncTop::xSetProfileTierLevel( TComVPS& vps ) 1076 { 1077 const Int vpsNumProfileTierLevelMinus1 = 0; //TBD 1078 vps.setVpsNumProfileTierLevelMinus1( vpsNumProfileTierLevelMinus1 ); 1079 1080 for (Int i = 0; i <= vps.getVpsNumProfileTierLevelMinus1(); i++ ) 1081 { 1082 vps.setVpsProfilePresentFlag( i, true ); 1083 } 1084 } 1085 1071 1086 1072 1087 Void TAppEncTop::xSetLayerSets( TComVPS& vps ) … … 1088 1103 } 1089 1104 1090 Int numAddOuputLayerSets = m_outputLayerSetIdx.size();1105 Int numAddOuputLayerSets = (Int) m_outputLayerSetIdx.size(); 1091 1106 // Additional output layer sets + profileLevelTierIdx 1092 1107 vps.setDefaultOneTargetOutputLayerFlag ( m_defaultOneTargetOutputLayerFlag ); -
branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncTop.h
r493 r495 119 119 Void xSetDimensionIdAndLength ( TComVPS& vps ); 120 120 Void xSetDependencies ( TComVPS& vps ); 121 Void xSetLayerSets( TComVPS& vps ); 121 Void xSetLayerSets ( TComVPS& vps ); 122 Void xSetProfileTierLevel ( TComVPS& vps ); 122 123 Int xGetMax( std::vector<Int>& vec); 123 124 #endif … … 131 132 #else 132 133 TEncTop& getTEncTop () { return m_cTEncTop; } ///< return encoder class pointer reference 133 134 134 #endif 135 135 };// END CLASS DEFINITION TAppEncTop -
branches/HTM-DEV-0.3-dev0/source/Lib/TAppCommon/program_options_lite.h
r491 r495 375 375 { 376 376 std::string cNameBuffer; 377 std::string cDesc riptionBuffer;378 379 cNameBuffer 380 cDesc riptionBuffer.resize( desc.size() + 10 );377 std::string cDescBuffer; 378 379 cNameBuffer.resize( name.size() + 10 ); 380 cDescBuffer.resize( desc.size() + 10 ); 381 381 382 382 storage.resize(uiMaxNum); 383 383 for ( unsigned int uiK = 0; uiK < uiMaxNum; uiK++ ) 384 384 { 385 Bool duplicate = (uiK != 0); 385 386 // isn't there are sprintf function for string?? 386 sprintf((char*) cNameBuffer.c_str() ,name.c_str(),uiK,uiK); 387 sprintf((char*) cDescriptionBuffer.c_str(),desc.c_str(),uiK,uiK); 388 389 parent.addOption(new Option<T>( cNameBuffer, (storage[uiK]), default_val, cDescriptionBuffer, uiK != 0 )); 387 sprintf((char*) cNameBuffer.c_str(),name.c_str(),uiK,uiK); 388 389 if ( !duplicate ) 390 { 391 sprintf((char*) cDescBuffer.c_str(),desc.c_str(),uiK,uiK); 392 } 393 394 cNameBuffer.resize( std::strlen(cNameBuffer.c_str()) ); 395 cDescBuffer.resize( std::strlen(cDescBuffer.c_str()) ); 396 397 398 parent.addOption(new Option<T>( cNameBuffer, (storage[uiK]), default_val, cDescBuffer, duplicate )); 390 399 } 391 400 -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibCommon/TComRom.h
r324 r495 162 162 163 163 #ifndef ENC_DEC_TRACE 164 # define ENC_DEC_TRACE 0164 # define ENC_DEC_TRACE 1 165 165 #endif 166 166 -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibCommon/TComSlice.cpp
r491 r495 1457 1457 } 1458 1458 #if H_MV 1459 for (Int lsIdx = 0; lsIdx < MAX_VPS_OP_SETS_PLUS1; lsIdx++ ) 1460 { 1461 for( Int layerId = 0; layerId < MAX_VPS_NUH_LAYER_ID_PLUS1; layerId++ ) 1462 { 1463 m_layerIdIncludedFlag[lsIdx][layerId] = false; 1464 } 1465 } 1466 1459 1467 m_vpsNumberLayerSetsMinus1 = -1; 1460 1468 m_vpsNumProfileTierLevelMinus1 = -1; … … 1472 1480 { 1473 1481 m_outputLayerSetIdxMinus1[i] = -1; 1474 m_profileLevelTierIdx[i] = -1;1482 m_profileLevelTierIdx[i] = 0; 1475 1483 for ( Int j = 0; j < MAX_VPS_NUH_LAYER_ID_PLUS1; j++) 1476 1484 { … … 1480 1488 1481 1489 m_maxOneActiveRefLayerFlag = false; 1482 m_directDepTypeLenMinus2 = -1;1490 m_directDepTypeLenMinus2 = 0; 1483 1491 1484 1492 -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibCommon/TComSlice.h
r493 r495 674 674 Int getVpsNumProfileTierLevelMinus1( ) { return m_vpsNumProfileTierLevelMinus1; } 675 675 676 Void setVpsProfilePresentFlag( Int layerSet, Bool val ) { m_vpsProfilePresentFlag[layerSet] = val; }677 Bool getVpsProfilePresentFlag( Int layerSet ) { return m_vpsProfilePresentFlag[layerSet]; }676 Void setVpsProfilePresentFlag( Int idx, Bool val ) { m_vpsProfilePresentFlag[idx] = val; } 677 Bool getVpsProfilePresentFlag( Int idx ) { return m_vpsProfilePresentFlag[idx]; } 678 678 679 679 Void setProfileRefMinus1( Int profileTierLevelIdx, Int val ) { m_profileRefMinus1[ profileTierLevelIdx ] = val; } -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibCommon/TypeDef.h
r488 r495 57 57 58 58 #ifndef HEVC_EXT 59 #define HEVC_EXT 259 #define HEVC_EXT 1 60 60 #endif 61 61 -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r492 r495 560 560 UInt uiCode; 561 561 READ_CODE( 4, uiCode, "sps_video_parameter_set_id"); pcSPS->setVPSId ( uiCode ); 562 #if H_MV 563 if ( pcSPS->getLayerId() == 0 ) 564 { 565 #endif 562 566 READ_CODE( 3, uiCode, "sps_max_sub_layers_minus1" ); pcSPS->setMaxTLayers ( uiCode+1 ); 563 567 READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" ); pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false ); … … 566 570 // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0 567 571 assert( uiCode == 1 ); 568 } 569 572 } 570 573 parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1); 574 #if H_MV 575 } 576 #endif 571 577 READ_UVLC( uiCode, "sps_seq_parameter_set_id" ); pcSPS->setSPSId( uiCode ); 572 578 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode ); … … 726 732 #else 727 733 READ_FLAG( uiCode, "inter_view_mv_vert_constraint_flag" ); pcSPS->setInterViewMvVertConstraintFlag(uiCode == 1 ? true : false); 728 READ_FLAG( uiCode, "sps_extension2_flag");729 734 //// sps_extension_vui_parameters( ) 730 735 if( pcSPS->getVuiParameters()->getBitstreamRestrictionFlag() ) … … 747 752 //// sps_extension_vui_parameters( ) END 748 753 READ_UVLC( uiCode, "sps_shvc_reserved_zero_idc" ); 749 754 READ_FLAG( uiCode, "sps_extension2_flag"); 750 755 if ( uiCode ) 751 756 { … … 756 761 } 757 762 #else 763 758 764 UInt uiCamParPrecision = 0; 759 765 Bool bCamParSlice = false; … … 839 845 #if H_MV 840 846 assert( pcVPS->getVpsMaxLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 ); 841 READ_CODE( 6, uiCode, "vps_max_ nuh_layer_id" ); pcVPS->setVpsMaxLayerId( uiCode );847 READ_CODE( 6, uiCode, "vps_max_layer_id" ); pcVPS->setVpsMaxLayerId( uiCode ); 842 848 843 849 READ_UVLC( uiCode, "vps_max_num_layer_sets_minus1" ); pcVPS->setVpsNumLayerSetsMinus1( uiCode ); … … 950 956 READ_CODE( 6, uiCode, "vps_num_profile_tier_level_minus1" ); pcVPS->setVpsNumProfileTierLevelMinus1( uiCode ); 951 957 952 for( Int i = 1; i <= pcVPS->getVpsNum berLayerSetsMinus1(); i++ )958 for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ ) 953 959 { 954 960 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 ); … … 986 992 { 987 993 READ_UVLC( uiCode, "output_layer_set_idx_minus1[i]" ); pcVPS->setOutputLayerSetIdxMinus1( i, uiCode ); 988 for( Int j = 0; j < = pcVPS->getNumLayersInIdList( j ); j++ )994 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1; j++ ) 989 995 { 990 996 READ_FLAG( uiCode, "output_layer_flag" ); pcVPS->setOutputLayerFlag( i, j, uiCode == 1 ); 991 } 997 } 998 } 999 if ( pcVPS->getProfileLevelTierIdxLen() > 0 ) 1000 { 992 1001 READ_CODE( pcVPS->getProfileLevelTierIdxLen(), uiCode,"profile_level_tier_idx[ i ]" ); pcVPS->setProfileLevelTierIdx( i , uiCode ); 993 1002 } … … 1001 1010 for( Int j = 0; j < i; j++ ) 1002 1011 { 1003 READ_CODE( pcVPS->getDirectDepTypeLenMinus2( ) + 2, uiCode, "direct_dependency_type[i][j]" ); pcVPS->setDirectDependencyType( i, j , uiCode); 1012 if (pcVPS->getDirectDependencyFlag( i, j) ) 1013 { 1014 READ_CODE( pcVPS->getDirectDepTypeLenMinus2( ) + 2, uiCode, "direct_dependency_type[i][j]" ); pcVPS->setDirectDependencyType( i, j , uiCode); 1015 } 1004 1016 } 1005 1017 } … … 1156 1168 rps->setNumberOfPictures(0); 1157 1169 rpcSlice->setRPS(rps); 1170 #if H_MV 1171 rpcSlice->setEnableTMVPFlag(false); 1172 #endif 1158 1173 } 1159 1174 else -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r493 r495 449 449 #endif 450 450 WRITE_CODE( pcSPS->getVPSId (), 4, "sps_video_parameter_set_id" ); 451 #if H_MV 452 if ( pcSPS->getLayerId() == 0 ) 453 { 454 #endif 451 455 WRITE_CODE( pcSPS->getMaxTLayers() - 1, 3, "sps_max_sub_layers_minus1" ); 452 456 WRITE_FLAG( pcSPS->getTemporalIdNestingFlag() ? 1 : 0, "sps_temporal_id_nesting_flag" ); 453 457 codePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1); 458 #if H_MV 459 } 460 #endif 454 461 WRITE_UVLC( pcSPS->getSPSId (), "sps_seq_parameter_set_id" ); 455 462 WRITE_UVLC( pcSPS->getChromaFormatIdc (), "chroma_format_idc" ); … … 795 802 { 796 803 WRITE_UVLC( pcVPS->getOutputLayerSetIdxMinus1( i ), "output_layer_set_idx_minus1[i]" ); 797 for( Int j = 0; j < = pcVPS->getNumLayersInIdList( j ); j++ )804 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1 ; j++ ) 798 805 { 799 806 WRITE_FLAG( pcVPS->getOutputLayerFlag( i, j) ? 1 : 0, "output_layer_flag" ); 800 } 807 } 808 } 809 if ( pcVPS->getProfileLevelTierIdxLen() > 0 ) 810 { 801 811 WRITE_CODE( pcVPS->getProfileLevelTierIdx( i ), pcVPS->getProfileLevelTierIdxLen() ,"profile_level_tier_idx[ i ]" ); 802 812 } … … 810 820 for( Int j = 0; j < i; j++ ) 811 821 { 812 WRITE_CODE( pcVPS->getDirectDependencyType( i, j ),pcVPS->getDirectDepTypeLenMinus2( ) + 2, "direct_dependency_type[i][j]" ); 822 if (pcVPS->getDirectDependencyFlag( i, j) ) 823 { 824 assert ( pcVPS->getDirectDependencyType( i, j ) != -1 ); 825 WRITE_CODE( pcVPS->getDirectDependencyType( i, j ),pcVPS->getDirectDepTypeLenMinus2( ) + 2, "direct_dependency_type[i][j]" ); 826 } 813 827 } 814 828 } … … 1171 1185 { 1172 1186 WRITE_FLAG( pcSlice->getAltCollocatedIndicationFlag( ) ? 1 : 0 , "alt_collocated_indication_flag" ); 1173 1174 1187 if( pcSlice->getAltCollocatedIndicationFlag() && pcSlice->getNumActiveMotionPredRefLayers() > 1 ) 1175 1188 { -
branches/HTM-DEV-0.3-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r493 r495 835 835 pcSlice->setEnableTMVPFlag(0); 836 836 } 837 #if H_MV 838 if( pcSlice->getIdrPicFlag() ) 839 { 840 pcSlice->setEnableTMVPFlag(0); 841 } 842 #endif 837 843 838 844 #if H_3D_VSO
Note: See TracChangeset for help on using the changeset viewer.