Changeset 1060 in 3DVCSoftware for branches/HTM-12.0-dev1/source/Lib


Ignore:
Timestamp:
7 Oct 2014, 12:16:13 (11 years ago)
Author:
tech
Message:

Added

  • Fix PTL
  • Support auxiliary pictures.
Location:
branches/HTM-12.0-dev1/source/Lib
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComRom.h

    r1054 r1060  
    239239
    240240#ifndef ENC_DEC_TRACE
    241 #define ENC_DEC_TRACE   0
     241#define ENC_DEC_TRACE   1
    242242#endif
    243243
  • branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComSlice.cpp

    r1059 r1060  
    19151915    {
    19161916#if H_MV_HLS10_PTL
     1917#if H_MV_HLS10_PTL_FIX
     1918      m_profileTierLevelIdx[i][j] = -1;
     1919#else
    19171920      m_profileTierLevelIdx[i][j] = false;
     1921#endif
    19181922#endif
    19191923      m_outputLayerFlag[i][j] = false;
  • branches/HTM-12.0-dev1/source/Lib/TLibCommon/TComSlice.h

    r1055 r1060  
    12161216  Void    setProfileTierLevelIdx( Int i, Int j, Int val )                  { m_profileTierLevelIdx[ i ][ j ] = val; }
    12171217  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
    12181239#else
    12191240  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx ] = val; }
     
    12821303
    12831304  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
    12841309  Int     getNumViews();
    12851310
     
    14601485    vector<Int> fullArray;
    14611486    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
    14621498    for (Int i = 0; i <= getMaxLayersMinus1(); i++ )
    14631499    {
    14641500      fullArray.push_back( getMaxLayersMinus1() + 1 );
    14651501      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
    14661511    }
    14671512    std::cout << std::right << std::setw(60) << std::setfill('-') << " " << std::setfill(' ') << std::endl << "Layer Dependencies" << std::endl;
     
    14751520
    14761521  };
     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
    14771564
    14781565  Void    printLayerSets()
  • branches/HTM-12.0-dev1/source/Lib/TLibCommon/TypeDef.h

    r1055 r1060  
    403403#define H_MV_HLS10_GEN                       0  // General changes (not tested)
    404404
     405#define H_MV_HLS10_AUX                       1 // Auxiliary pictures
    405406#define H_MV_HLS10_GEN_FIX                   1
    406407
     
    413414#define H_MV_HLS10_MAXNUMPICS                1  // constraint on number of pictures in rps 
    414415#define H_MV_HLS10_PTL                       1  // profile tier level
     416#define H_MV_HLS10_PTL_FIX                   1  // profile tier level
    415417#define H_MV_HLS10_MULTILAYERSPS             1  // multilayer SPS extension
    416418#define H_MV_HLS10_VPS_VUI                   1  // vsp vui
     
    10621064#endif   
    10631065    VIEW_ORDER_INDEX  = 1,
     1066#if H_MV_HLS10_AUX
     1067    DEPENDENCY_ID = 2,
     1068    AUX_ID = 3,
     1069#endif   
    10641070  };
    10651071#endif
  • branches/HTM-12.0-dev1/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1056 r1060  
    14571457  pcVPS->deriveTargetLayerIdList( 0 );
    14581458
     1459#if H_MV_HLS10_PTL_FIX
     1460  if (pcVPS->getVpsBaseLayerInternalFlag() )
     1461  { 
     1462    pcVPS->setProfileTierLevelIdx(0,0, pcVPS->inferProfileTierLevelIdx(0,0) );
     1463  }
     1464#endif
    14591465  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    14601466  {
     
    14941500        READ_CODE( pcVPS->getProfileTierLevelIdxLen(), uiCode,"profile_tier_level_idx[ i ][ j ]" );   pcVPS->setProfileTierLevelIdx( i, j, uiCode );
    14951501      }
     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
    14961508    }
    14971509#else
  • branches/HTM-12.0-dev1/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1055 r1060  
    12411241
    12421242
     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
    12431249
    12441250
     
    12761282        WRITE_CODE( pcVPS->getProfileTierLevelIdx( i, j ), pcVPS->getProfileTierLevelIdxLen() ,"profile_tier_level_idx[ i ][ j ]" );   
    12771283      }
     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
    12781291    }
    12791292#else
Note: See TracChangeset for help on using the changeset viewer.