Changeset 1103 in 3DVCSoftware


Ignore:
Timestamp:
5 Nov 2014, 11:34:26 (9 years ago)
Author:
tech
Message:

HHI_DEPENDENCY_SIGNALLING_I1_J0107: Integrated IdRefListLayers.

Location:
branches/HTM-12.2-dev2-HHI/source/Lib
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.cpp

    r1100 r1103  
    19471947    m_layerIdInNuh      [i] = ( i == 0 ) ? 0 : -1;
    19481948    m_numDirectRefLayers[i] = 0;
     1949#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1950#if H_3D
     1951    m_numRefListLayers[i] = 0;
     1952#endif
     1953#endif
    19491954    m_vpsRepFormatIdx    [i] = 0;
    19501955    m_pocLsbNotPresentFlag[i] = 0;
     
    19651970      m_dependencyFlag  [i][j]    = false;
    19661971      m_idDirectRefLayer[i][j]    = -1;
     1972#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1973#if H_3D
     1974      m_idRefListLayer[i][j]    = -1;
     1975#endif
     1976#endif
    19671977      m_idPredictedLayer[i][j]    = -1;
    19681978      m_idRefLayer      [i][j]    = -1;
     
    21032113    Int iNuhLId = getLayerIdInNuh( i );
    21042114    Int d = 0;
     2115#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2116#if H_3D
     2117    Int l = 0;
     2118#endif
     2119#endif
    21052120    Int r = 0;
    21062121    Int p = 0;
     2122
    21072123    for( Int j = 0; j  <=  getMaxLayersMinus1(); j++ )
    21082124    {
     
    21122128        m_idDirectRefLayer[iNuhLId][d++] = jNuhLid;
    21132129      }
     2130#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2131#if H_3D
     2132      if( getDirectDependencyFlag( i , j ) && ( getDepthId( iNuhLId ) == getDepthId( jNuhLid ) ))
     2133      {
     2134        m_idRefListLayer [iNuhLId][l++] = jNuhLid;
     2135      }
     2136#endif
     2137#endif
     2138
    21142139      if( getDependencyFlag( i , j ) )
    21152140      {
     
    21222147    }
    21232148    m_numDirectRefLayers[ iNuhLId ] = d;
     2149#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2150#if H_3D
     2151    m_numRefListLayers[ iNuhLId ] = l;
     2152#endif
     2153#endif
     2154
    21242155    m_numRefLayers      [ iNuhLId ] = r;
    21252156    m_numPredictedLayers[ iNuhLId ] = p;
     
    25662597  xPrintArray( "IdRefLayer"      , getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefLayers, m_idRefLayer, true );
    25672598  xPrintArray( "IdDirectRefLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numDirectRefLayers, m_idDirectRefLayer, true );
     2599#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2600#if H_3D
     2601  xPrintArray( "IdRefListLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefListLayers, m_idRefListLayer, true );
     2602#endif
     2603#endif
     2604
    25682605  std::cout << std::endl;
    25692606}
     
    35843621{
    35853622  TComVPS* vps = getVPS();
     3623#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3624#if H_3D
     3625  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdRefListLayer( getLayerId(), i ) );
     3626#else
    35863627  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
     3628#endif
     3629#else
     3630  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
     3631#endif
    35873632
    35883633  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
     
    35963641  Int refLayerPicIdc = -1;
    35973642  Int curj = 0;
     3643#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3644#if H_3D
     3645  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3646#else
    35983647  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3648#endif
     3649#else
     3650  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3651#endif
    35993652  {
    36003653    if( getRefLayerPicFlag( i ) )
     
    36173670
    36183671  Int numRefLayerPics = 0;
     3672#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3673#if H_3D
     3674  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3675#else
    36193676  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3677#endif
     3678#else
     3679  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3680#endif
    36203681  {
    36213682    numRefLayerPics += getRefLayerPicFlag( i );
     
    36423703    numActiveRefLayerPics = 0;
    36433704  }
     3705#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3706#if H_3D
     3707  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumRefListLayers( getLayerId() ) == 1 )
     3708#else
    36443709  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3710#endif
     3711#else
     3712  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3713#endif 
    36453714  {
    36463715    numActiveRefLayerPics = 1;
     
    36553724Int TComSlice::getRefPicLayerId( Int i )
    36563725{
     3726#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3727#if H_3D
     3728  return getVPS()->getIdRefListLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3729#else
    36573730  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3731#endif
     3732#else
     3733  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3734#endif
    36583735}
    36593736
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.h

    r1100 r1103  
    886886  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    887887  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     888#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     889#if H_3D
     890  Int         m_numRefListLayers         [MAX_NUM_LAYERS];
     891  Int         m_idRefListLayer           [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     892#endif
     893#endif
     894
    888895
    889896  Int         m_numRefLayers             [MAX_NUM_LAYER_IDS];
     
    11791186  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
    11801187  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
     1188#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1189#if H_3D
     1190  Int     getNumRefListLayers( Int layerIdInNuh )                         { return m_numRefListLayers[ layerIdInNuh ];  };                               
     1191#endif
     1192#endif
     1193
    11811194  Int     getNumRefLayers            ( Int i )        { return m_numRefLayers[i]; }
    11821195  Int     getNumPredictedLayers      ( Int i )        { return m_numPredictedLayers[i]; }
     1196
    11831197
    11841198  Int     getIdRefLayer              ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers      ( i )); return m_idRefLayer      [i][j]; }
    11851199  Int     getIdPredictedLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; }
    11861200  Int     getIdDirectRefLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; }
     1201#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1202#if H_3D
     1203  Int     getIdRefListLayer          ( Int i, Int j ) { assert( j >= 0 && j < getNumRefListLayers   ( i )); return m_idRefListLayer[i][j]; }
     1204#endif
     1205#endif
    11871206  Int     getNumIndependentLayers    (  )             { return m_numIndependentLayers; }
    11881207  Int     getNumLayersInTreePartition( Int i )        { return m_numLayersInTreePartition[i]; }
     
    27472766  // Additional variables derived in slice header semantics
    27482767
     2768#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2769#if H_3D
     2770  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2771  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2772#else
    27492773  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
    27502774  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2775#endif
     2776
     2777#else
     2778  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2779  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2780#endif
    27512781
    27522782  Int  getRefLayerPicFlag( Int i );
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TypeDef.h

    r1100 r1103  
    293293// Fixes
    294294
     295
     296#if H_3D
     297#define HHI_DEPENDENCY_SIGNALLING_I1_J0107     1
     298#endif
     299
    295300///// ***** SINGLE DEPTH MODE *********
    296301#if H_3D_SINGLE_DEPTH
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1084 r1103  
    23502350    Bool interLayerPredLayerIdcPresentFlag = false;
    23512351    Int layerId       = rpcSlice->getLayerId();
     2352#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2353#if H_3D
     2354    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumRefListLayers( layerId ) > 0 )
     2355#else
    23522356    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2357#endif
     2358#else
     2359    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2360#endif
    23532361    {   
    23542362      READ_FLAG( uiCode, "inter_layer_pred_enabled_flag" ); rpcSlice->setInterLayerPredEnabledFlag( uiCode == 1 );
     2363#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2364#if H_3D
     2365      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumRefListLayers( layerId ) > 1 )
     2366#else
    23552367      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     2368#endif
     2369#else
     2370      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     2371#endif
    23562372      {           
    23572373        if( !vps->getMaxOneActiveRefLayerFlag()) 
     
    23592375          READ_CODE( rpcSlice->getNumInterLayerRefPicsMinus1Len( ), uiCode, "num_inter_layer_ref_pics_minus1" ); rpcSlice->setNumInterLayerRefPicsMinus1( uiCode );
    23602376        }
     2377#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2378#if H_3D
     2379        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) )
     2380#else
    23612381        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     2382#endif
     2383#else
     2384        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     2385#endif
    23622386        {
    23632387          interLayerPredLayerIdcPresentFlag = true;
     
    25452569    }
    25462570#if H_3D_IC
     2571#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2572    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )
     2573#else
    25472574    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2575#endif
    25482576    {
    25492577      UInt uiCodeTmp = 0;
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1084 r1103  
    18871887    Bool interLayerPredLayerIdcPresentFlag = false;
    18881888    Int layerId = pcSlice->getLayerId();
     1889#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1890#if H_3D
     1891    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumRefListLayers( layerId ) > 0 )
     1892#else
    18891893    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     1894#endif
     1895#else
     1896    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     1897#endif
    18901898    {   
    18911899      WRITE_FLAG( pcSlice->getInterLayerPredEnabledFlag( ) ? 1 : 0 , "inter_layer_pred_enabled_flag" );
     1900#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1901#if H_3D
     1902      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumRefListLayers( layerId ) > 1 )
     1903#else
    18921904      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     1905#endif
     1906#else
     1907      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     1908#endif
    18931909      {           
    18941910        if( !vps->getMaxOneActiveRefLayerFlag()) 
     
    18961912          WRITE_CODE( pcSlice->getNumInterLayerRefPicsMinus1( ), pcSlice->getNumInterLayerRefPicsMinus1Len( ), "num_inter_layer_ref_pics_minus1" );
    18971913        }
     1914#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1915#if H_3D
     1916        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) )
     1917#else
    18981918        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     1919#endif
     1920#else
     1921        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     1922#endif
    18991923        {       
    19001924          interLayerPredLayerIdcPresentFlag = true;
     
    20372061    }
    20382062#if H_3D_IC
     2063#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2064    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )
     2065#else
    20392066    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2067#endif
    20402068    {
    20412069      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibEncoder/TEncGOP.cpp

    r1100 r1103  
    880880
    881881    TComVPS*           vps = pcSlice->getVPS();     
     882#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     883#if H_3D
     884    Int numDirectRefLayers = vps    ->getNumRefListLayers( getLayerId() );
     885#else
    882886    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
     887#endif
     888#else
     889    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
     890#endif
    883891    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid );     
    884892   
     
    893901          pcSlice->setNumInterLayerRefPicsMinus1( gopEntry.m_numActiveRefLayerPics - 1 );
    894902        }
     903#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     904#if H_3D
     905        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumRefListLayers( getLayerId() ) )
     906#else
    895907        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) )
     908#endif
     909#else
     910        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) )
     911#endif
    896912        {       
    897913          interLayerPredLayerIdcPresentFlag = true;
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibEncoder/TEncTop.cpp

    r1084 r1103  
    896896#if H_MV
    897897  m_cPPS.setLayerId( getLayerId() );
     898#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     899#if H_3D
     900  // Check if this condition is still correct
     901  if( getVPS()->getNumRefListLayers( getLayerId() ) > 0 )
     902#else
    898903  if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 )
     904#endif
     905#else
     906  if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 )
     907#endif
    899908  {
    900909    m_cPPS.setListsModificationPresentFlag( true );
Note: See TracChangeset for help on using the changeset viewer.