Ignore:
Timestamp:
8 Apr 2015, 15:26:52 (9 years ago)
Author:
tech
Message:

Clean up Part 3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComSlice.h

    r1185 r1187  
    912912  Int         xGetDimBitOffset( Int j );
    913913  Void        xSetRefLayerFlags( Int currLayerId );
     914
    914915  // VPS EXTENSION 2 SYNTAX ELEMENTS
    915916#if H_3D
     
    10111012  Void    setVpsNonVuiExtensionLength( Int  val )                          { m_vpsNonVuiExtensionLength = val; }
    10121013  Int     getVpsNonVuiExtensionLength(  )                                  { return m_vpsNonVuiExtensionLength; }
    1013 
     1014 
     1015  // VPS Extension
    10141016  Void    setSplittingFlag( Bool val )                                     { m_splittingFlag = val;  }
    10151017  Bool    getSplittingFlag()                                               { return m_splittingFlag; }
     
    11541156  Void    initNumViews();
    11551157#if H_3D
    1156   Void   initViewCompLayer( )
    1157   {
    1158     assert( m_viewCompLayerId.size() == 0 && m_viewCompLayerPresentFlag.size() == 0  );
    1159     for( Int i = 0; i < getNumViews(); i++ )
    1160     {
    1161       m_viewCompLayerId         .push_back( std::vector<Int>(0)  );
    1162       m_viewCompLayerPresentFlag.push_back( std::vector<Bool>(0) );     
    1163 
    1164       for( Int depFlag = 0; depFlag  <=  1; depFlag++ )
    1165       {
    1166         Int iViewOIdx = getViewOIdxList( i );
    1167         Int layerId = -1;
    1168         for( Int j = 0; j  <=  getMaxLayersMinus1(); j++ )
    1169         {
    1170           Int jNuhLId = getLayerIdInNuh( j );
    1171           if( getVpsDepthFlag( jNuhLId ) == ( (Bool) depFlag )  &&  getViewOrderIdx( jNuhLId )  ==  iViewOIdx 
    1172             &&  getDependencyId( jNuhLId )  ==  0  &&  getAuxId( jNuhLId )  ==  0 )
    1173           {
    1174             layerId = jNuhLId;
    1175           }
    1176         }
    1177         m_viewCompLayerPresentFlag[ i ].push_back( layerId  !=  -1 );
    1178         m_viewCompLayerId         [ i ].push_back( layerId );       
    1179       }
    1180     }
    1181   };
    1182 
    1183 
     1158  Void   initViewCompLayer( );
    11841159  Int     getViewOIdxList( Int i )                                         { return m_viewOIdxList[i]; }
    11851160  std::vector<Int> getViewOIdxList( )                                               { return m_viewOIdxList; }
    11861161
    1187   Int     getVoiInVps( Int viewOIdx )                                     
    1188   {   
    1189     for ( Int i = 0; i < m_viewOIdxList.size(); i++ )
    1190     {
    1191       if  ( m_viewOIdxList[ i ] == viewOIdx )
    1192       {
    1193         return i;
    1194       }
    1195     }
    1196     assert( 0 );   
    1197     return -1;
    1198   };
     1162  Int     getVoiInVps( Int viewOIdx );;
    11991163
    12001164  Bool    getViewCompLayerPresentFlag (Int i, Bool d ) { return  m_viewCompLayerPresentFlag[ getVoiInVps(i) ][d]; }
     
    13491313
    13501314// Derived
    1351   Void deriveCpPresentFlag( )
    1352   {
    1353     for( Int nInVps = 0; nInVps < getNumViews(); nInVps++  )
    1354     {
    1355       for( Int mInVps = 0; mInVps < getNumViews(); mInVps++ )
    1356       {
    1357         m_cpPresentFlag[nInVps][mInVps] = 0;
    1358       }
    1359     }
    1360 
    1361    for( Int n = 1; n < getNumViews(); n++ )
    1362    {
    1363       Int iInVps = getVoiInVps(  getViewOIdxList( n ) );     
    1364       for( Int m = 0; m < getNumCp( iInVps ); m++ )
    1365       {
    1366          m_cpPresentFlag[ iInVps ][ getVoiInVps( getCpRefVoi( iInVps, m ) ) ] = 1;
    1367       }
    1368     }
    1369   }
     1315  Void deriveCpPresentFlag( );
    13701316
    13711317  Void setCpPresentFlag( Int i, Int m, Bool flag ) { m_cpPresentFlag[i][m] = flag; }
     
    24802426  Bool      m_bApplyDIS;
    24812427#if H_3D_IC
    2482   Int *m_aICEnableCandidate;
    2483   Int *m_aICEnableNum;
     2428  Int*      m_aICEnableCandidate;
     2429  Int*      m_aICEnableNum;
    24842430#endif
    24852431  Int       m_iDefaultRefViewIdx;
     
    29302876#if H_3D
    29312877  // 3D-HEVC tool parameters
    2932   Void deriveInCmpPredAndCpAvailFlag()
    2933   {
    2934     Int numCurCmpLIds = getIsDepth() ? 1 : getNumActiveRefLayerPics();
    2935     std::vector<Int> curCmpLIds;
    2936     if ( getIsDepth() )
    2937     {
    2938       curCmpLIds.push_back( getLayerId() );
    2939     }
    2940     else
    2941     {
    2942       for (Int i = 0; i < numCurCmpLIds; i++)
    2943       {
    2944         curCmpLIds.push_back( getRefPicLayerId( i ) );
    2945       }
    2946     }
    2947 
    2948     m_cpAvailableFlag = true;
    2949     m_inCmpRefViewIdcs.clear();
    2950     Bool allRefCmpLayersAvailFlag = true;
    2951 
    2952     for( Int i = 0; i <= numCurCmpLIds - 1; i++ )
    2953     {     
    2954       m_inCmpRefViewIdcs.push_back( getVPS()->getViewOrderIdx( curCmpLIds[ i ] ));
    2955       if( !getVPS()->getCpPresentFlag( getVPS()->getVoiInVps( getViewIndex() ),  getVPS()->getVoiInVps( m_inCmpRefViewIdcs[ i ] ) ) )
    2956       {
    2957         m_cpAvailableFlag = false;
    2958       }
    2959       Bool refCmpCurLIdAvailFlag = false;
    2960       if( getVPS()->getViewCompLayerPresentFlag( m_inCmpRefViewIdcs[ i ], !getIsDepth() ) )
    2961       {
    2962         Int j = getVPS()->getLayerIdInVps( getVPS()->getViewCompLayerId( m_inCmpRefViewIdcs[ i ],  !getIsDepth() ) );
    2963         if  ( getVPS()->getDirectDependencyFlag( getVPS()->getLayerIdInVps( getLayerId() ) ,  j ) &&
    2964           getVPS()->getSubLayersVpsMaxMinus1( j ) >= getTemporalId()   &&
    2965           ( getTemporalId() == 0 || getVPS()->getMaxTidIlRefPicsPlus1( j , getVPS()->getLayerIdInVps( getLayerId() ) ) > getTemporalId() )       
    2966           )
    2967         {
    2968           refCmpCurLIdAvailFlag = true;
    2969         }
    2970       }
    2971       if( !refCmpCurLIdAvailFlag )
    2972       {
    2973         allRefCmpLayersAvailFlag = false;
    2974       }
    2975     }
    2976 
    2977     if( !allRefCmpLayersAvailFlag )
    2978     {
    2979       m_inCmpPredAvailFlag = false;
    2980     } 
    2981     else
    2982     {
    2983       TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension();
    2984       if( !getIsDepth() )
    2985       {
    2986         m_inCmpPredAvailFlag = sps3dExt->getViewSynthesisPredFlag( getIsDepth() ) ||
    2987           sps3dExt->getDepthBasedBlkPartFlag( getIsDepth() ) ||
    2988           sps3dExt->getDepthRefinementFlag  ( getIsDepth() );                           
    2989       }
    2990       else
    2991       {
    2992         m_inCmpPredAvailFlag = sps3dExt->getIntraContourFlag( getIsDepth() ) ||
    2993           sps3dExt->getQtPredFlag( getIsDepth() ) ||
    2994           sps3dExt->getMpiFlag( getIsDepth() );                                 
    2995       }
    2996     } 
    2997   };
    2998 
    2999 
     2878  Void deriveInCmpPredAndCpAvailFlag();
    30002879  Void init3dToolParameters();   
    3001   Void checkInCompPredRefLayers()
    3002   {
    3003     if ( getInCompPredFlag() )
    3004     {
    3005       for (Int i = 0; i < getNumCurCmpLIds(); i++ )
    3006       {
    3007         assert( getIvPic(!getIsDepth(), getInCmpRefViewIdcs( i ) ) != NULL );       
    3008         //  It is a requirement of bitstream conformance that there
    3009         //  is a picture in the DPB with PicOrderCntVal equal to the PicOrderCntVal of the current picture,
    3010         //  and a nuh_layer_id value equal to ViewCompLayerId[ inCmpRefViewIdcs[ i ] ][ !DepthFlag ].
    3011       }
    3012     }
    3013   };
     2880  Void checkInCompPredRefLayers();;
    30142881
    30152882  Bool getIvMvPredFlag           ( ) { return m_ivMvPredFlag           ; };
Note: See TracChangeset for help on using the changeset viewer.