Changeset 1104 in 3DVCSoftware


Ignore:
Timestamp:
5 Nov 2014, 19:13:24 (9 years ago)
Author:
tech
Message:

HHI_DEPENDENCY_SIGNALLING_I1_J0107: Encoder related modifications and cfg file changes
H_MV_FIX_REF_LAYER_PIC_FLAG: related fix

Location:
branches/HTM-12.2-dev2-HHI
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg

    r1084 r1104  
    5252
    5353#======== VPS / Dependencies ================
    54 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    55 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    56 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    57 
    58 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    59 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    60 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     54DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     55DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     56DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     57
     58DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     59DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     60DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    6161
    6262#========== Camera parameters ==========
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg

    r1084 r1104  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    65 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    67 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     65DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     67DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     68DirectRefLayers_5             : 1 2         # Indices in VPS of direct reference layers
    6969
    7070DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/fco/baseCfg_3view+depth.cfg

    r1084 r1104  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
    6565DirectRefLayers_2             : 1           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 0           # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 0 1         # Indices in VPS of direct reference layers
    6767DirectRefLayers_4             : 1           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 0           # Indices in VPS of direct reference layers
    69 
    70 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     68DirectRefLayers_5             : 0 1         # Indices in VPS of direct reference layers
     69
     70DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7171DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    72 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     72DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7373DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    74 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     74DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7575
    7676#========== Camera parameters ==========
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/ibp/gopCfg_IBP_3view+depth.cfg

    r1066 r1104  
    3838
    3939#======== VPS / Dependencies ================
    40 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    41 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    42 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    43 DirectRefLayers_4             : 0 2         # Indices in VPS of direct reference layers
    44 DirectRefLayers_5             : 1 3         # Indices in VPS of direct reference layers
     40DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     41DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     42DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     43DirectRefLayers_4             : 0 1 2 3     # Indices in VPS of direct reference layers
     44DirectRefLayers_5             : 1 3 4       # Indices in VPS of direct reference layers
    4545
    46 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    47 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    48 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    49 DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    50 DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     46DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     47DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     48DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     49DependencyTypes_4             : 2 2 2 2     # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     50DependencyTypes_5             : 2 2 2       # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    5151
    5252
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/misc/gopCfg_ILP_on_IRAP_3view+depth.cfg

    r1066 r1104  
    3030
    3131#======== VPS / Dependencies ================
    32 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    33 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    34 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    35 DirectRefLayers_4             : 0 2         # Indices in VPS of direct reference layers
    36 DirectRefLayers_5             : 1 3         # Indices in VPS of direct reference layers
     32DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     33DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     34DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     35DirectRefLayers_4             : 0 1 2 3     # Indices in VPS of direct reference layers
     36DirectRefLayers_5             : 1 3 4       # Indices in VPS of direct reference layers
    3737
    3838DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/NonCTC/misc/gopCfg_NoIv_3view+depth.cfg

    r1066 r1104  
    2828
    2929#======== VPS / Dependencies ================
    30 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
     30DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
    3131DirectRefLayers_2             :             # Indices in VPS of direct reference layers
    32 DirectRefLayers_3             :             # Indices in VPS of direct reference layers
     32DirectRefLayers_3             : 2           # Indices in VPS of direct reference layers
    3333DirectRefLayers_4             :             # Indices in VPS of direct reference layers
    34 DirectRefLayers_5             :             # Indices in VPS of direct reference layers
     34DirectRefLayers_5             : 4           # Indices in VPS of direct reference layers
    3535
    36 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     36DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    3737DependencyTypes_2             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    38 DependencyTypes_3             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     38DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    3939DependencyTypes_4             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    40 DependencyTypes_5             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     40DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    4141
    4242
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r1084 r1104  
    5252
    5353#======== VPS / Dependencies ================
    54 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    55 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    56 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    57 
    58 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    59 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    60 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     54DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     55DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     56DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     57
     58DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     59DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     60DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    6161
    6262#========== Camera parameters ==========
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r1084 r1104  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    65 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    67 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
    69 
    70 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    71 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    72 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    73 DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    74 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     65DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     67DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     68DirectRefLayers_5             : 1 2         # Indices in VPS of direct reference layers
     69
     70DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     71DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     72DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     73DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     74DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7575
    7676#========== Camera parameters ==========
  • branches/HTM-12.2-dev2-HHI/cfg/3D-HEVC/fullCfg.cfg

    r1084 r1104  
    125125
    126126#======== VPS / Dependencies ================
    127 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    128 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    129 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    130 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    131 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
    132 
    133 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    134 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    135 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    136 DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    137 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     127DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     128DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     129DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     130DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     131DirectRefLayers_5             : 1 2         # Indices in VPS of direct reference layers
     132
     133DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     134DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     135DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     136DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     137DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    138138
    139139#========== Camera parameters ==========
  • branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncCfg.cpp

    r1084 r1104  
    404404  ("ProfileTierLevelIdx_%d",  m_profileTierLevelIdx, std::vector<Int>(0), MAX_NUM_LAYERS, "Indices to profile level tier for ols")
    405405  // Layer dependencies
     406#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     407  ("DirectRefLayers_%d",    m_directRefLayers    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIdx in VPS of direct reference layers")
     408#else
    406409  ("DirectRefLayers_%d",    m_directRefLayers    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers")
     410#endif
    407411  ("DependencyTypes_%d",    m_dependencyTypes    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion")
    408412#endif
  • branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncTop.cpp

    r1094 r1104  
    13461346      vps.setDirectDependencyType( depLayer, refLayer,    -1 );
    13471347    }
    1348     }
     1348  }
    13491349
    13501350  Int  defaultDirectDependencyType = -1;
     
    13771377  vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag );       
    13781378  vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 );       
     1379
     1380#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1381  vps.setRefLayers();
     1382#endif
    13791383
    13801384  // Max sub layers, + presence flag
     
    13951399  vps.setVpsSubLayersMaxMinus1PresentFlag( subLayersMaxMinus1PresentFlag );
    13961400
    1397 
     1401#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1402  // Max temporal id for inter layer reference pictures
     1403  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
     1404  {
     1405    Int refLayerIdInNuh = vps.getLayerIdInNuh( refLayerIdInVps );
     1406    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
     1407    {
     1408      Int curLayerIdInNuh = vps.getLayerIdInNuh( curLayerIdInVps );     
     1409#if H_3D
     1410      Int maxTid = -1;
     1411      if ( vps.getDirectDependencyFlag( curLayerIdInVps, refLayerIdInVps ) )
     1412      {
     1413        if ( m_depthFlag[ curLayerIdInVps] == m_depthFlag[ refLayerIdInVps ] )
     1414        {
     1415#endif
     1416          for( Int i = 0; i < ( getGOPSize() + 1); i++ )
     1417          {       
     1418            GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1419            GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1420            for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
     1421            {
     1422#if H_3D
     1423              if ( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[ j ] ) == refLayerIdInNuh )
     1424#else
     1425              if ( vps.getIdDirectRefLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[ j ] ) == refLayerIdInNuh )
     1426#endif
     1427              {
     1428                Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
     1429                Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
     1430                maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1431              }
     1432            }
     1433          }             
     1434#if H_3D
     1435        }
     1436        else
     1437        {       
     1438          if( m_depthFlag[ curLayerIdInVps ] && ( m_bMPIFlag || m_bLimQtPredFlag || m_useIVP  ) )
     1439          {         
     1440            Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false );
     1441            if ( nuhLayerIdTex == refLayerIdInNuh )
     1442            {
     1443              maxTid = std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );
     1444            }
     1445          }
     1446
     1447          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_bUseDBBP) )
     1448          { 
     1449            Int maxPresentTid =-1;
     1450            Bool allPresent = true;
     1451            for (Int i = 0; i < vps.getNumRefListLayers( curLayerIdInNuh); i++ )
     1452            {
     1453              Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer(curLayerIdInNuh, i ) ), true );
     1454              if ( nuhLayerIdDep== refLayerIdInNuh )
     1455              {
     1456                maxPresentTid= std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );             
     1457              }
     1458              else
     1459              {
     1460                allPresent = false;
     1461              }
     1462            }
     1463
     1464            if ( allPresent )
     1465            {
     1466              maxTid= std::max( maxTid, maxPresentTid );             
     1467            }
     1468          }       
     1469        }
     1470      }
     1471      vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
     1472#endif
     1473    }   
     1474  }
     1475
     1476  // Max temporal id for inter layer reference pictures presence flag
     1477  Bool maxTidRefPresentFlag = false;   
     1478  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
     1479  {
     1480    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
     1481    {
     1482        maxTidRefPresentFlag = maxTidRefPresentFlag || ( vps.getMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps ) != 7 );   
     1483    }
     1484  }
     1485  vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag );
     1486#else
    13981487  // Max temporal id for inter layer reference pictures + presence flag
    13991488  Bool maxTidRefPresentFlag = false;
     
    14021491    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
    14031492    {
    1404       Int maxTid = -1;
    1405       for( Int i = 0; i < ( getGOPSize() + 1); i++ )
    1406       {       
    1407         GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    1408         GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    1409         for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
     1493        Int maxTid = -1;
     1494        for( Int i = 0; i < ( getGOPSize() + 1); i++ )
    14101495        {       
    1411           if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )
     1496          GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1497          GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1498          for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
    14121499          {
    1413             Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
    1414             Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
    1415             maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1500            if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )
     1501            {
     1502              Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
     1503              Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
     1504              maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1505            }
    14161506          }
    14171507        }
    1418       }
    1419       vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
    1420       maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
     1508        vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
     1509        maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
    14211510    }
    14221511  }
    14231512
    14241513  vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag );
     1514#endif 
     1515
     1516
    14251517  // Max one active ref layer flag
    14261518  Bool maxOneActiveRefLayerFlag = true; 
     
    14321524      maxOneActiveRefLayerFlag =  maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1);
    14331525    }           
    1434 }
     1526  }
    14351527
    14361528  vps.setMaxOneActiveRefLayerFlag( maxOneActiveRefLayerFlag );
     
    14431535      vps.setPocLsbNotPresentFlag( layerIdInVps,  true ); 
    14441536    }
    1445   }
     1537  } 
    14461538 
    14471539  // All Ref layers active flag
     
    14491541  for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers && allRefLayersActiveFlag; layerIdInVps++)
    14501542  {   
     1543#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1544    Int layerIdInNuh = vps.getLayerIdInNuh( layerIdInVps );
     1545#endif
    14511546    for( Int i = 0; i < ( getGOPSize() + 1) && allRefLayersActiveFlag; i++ )
    14521547    {       
     
    14551550     
    14561551      // check if all reference layers when allRefLayerActiveFlag is equal to 1 are reference layer pictures specified in the gop entry
     1552#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1553#if H_3D
     1554      for (Int k = 0; k < vps.getNumRefListLayers( layerIdInNuh ) && allRefLayersActiveFlag; k++ )
     1555      {
     1556        Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdRefListLayer( layerIdInNuh , k ) );
     1557#else
     1558      for (Int k = 0; k < vps.getNumDirectRefLayers( layerIdInNuh ) && allRefLayersActiveFlag; k++ )
     1559      {
     1560        Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdDirectRefLayer( layerIdInNuh , k ) );
     1561#endif
     1562#else
    14571563      for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size() && allRefLayersActiveFlag; k++ )
    14581564      {
    14591565        Int refLayerIdInVps = vps.getLayerIdInVps( m_directRefLayers[ layerIdInVps ][ k ] );
     1566#endif
     1567#if H_MV_FIX_REF_LAYER_PIC_FLAG
     1568        if ( vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId  && ( tId == 0 || vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId )  )
     1569#else
    14601570        if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId  && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId )
     1571#endif
    14611572        {
    14621573          Bool gopEntryFoundFlag = false;
     
    14751586      {   
    14761587        Bool referenceLayerFoundFlag = false;
     1588#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1589#if H_3D
     1590        for (Int k = 0; k < vps.getNumRefListLayers( layerIdInNuh ); k++ )
     1591        {
     1592          Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdRefListLayer( layerIdInNuh, k) );
     1593#else
     1594        for (Int k = 0; k < vps.getNumDirectRefLayers( layerIdInNuh ); k++ )
     1595        {
     1596          Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdDirectRefLayer( layerIdInNuh, k) );
     1597#endif
     1598#else
    14771599        for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size(); k++ )
    14781600        {
    14791601          Int refLayerIdInVps = vps.getLayerIdInVps( m_directRefLayers[ layerIdInVps ][ k ] );
    1480 
     1602#endif
     1603#if H_MV_FIX_REF_LAYER_PIC_FLAG
     1604          if ( vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId  && ( tId == 0 || vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId )  )
     1605#else
    14811606          if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId  && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId )
     1607#endif
    14821608          {         
    14831609            referenceLayerFoundFlag = referenceLayerFoundFlag || ( ge.m_interLayerPredLayerIdc[l] == k );
     
    14911617
    14921618  vps.setAllRefLayersActiveFlag( allRefLayersActiveFlag );
    1493 
     1619#if !HHI_DEPENDENCY_SIGNALLING_I1_J0107
    14941620  vps.setRefLayers();
     1621#endif
    14951622};
     1623
    14961624
    14971625GOPEntry* TAppEncTop::xGetGopEntry( Int layerIdInVps, Int poc )
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.cpp

    r1103 r1104  
    36313631#endif
    36323632
     3633#if H_MV_FIX_REF_LAYER_PIC_FLAG
     3634  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer()  && ( getTLayer() == 0   ||
     3635    vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() ));
     3636#else
    36333637  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
    36343638    ( vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() );
    3635 
     3639#endif
    36363640  return refLayerPicFlag;       
    36373641}   
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TypeDef.h

    r1103 r1104  
    297297#define HHI_DEPENDENCY_SIGNALLING_I1_J0107     1
    298298#endif
     299#define H_MV_FIX_REF_LAYER_PIC_FLAG            1
     300
    299301
    300302///// ***** SINGLE DEPTH MODE *********
Note: See TracChangeset for help on using the changeset viewer.