Changeset 1196 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComSlice.h


Ignore:
Timestamp:
4 May 2015, 17:47:40 (9 years ago)
Author:
tech
Message:

Merged 14.0-dev0@1187.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r1179 r1196  
    912912  Int         xGetDimBitOffset( Int j );
    913913  Void        xSetRefLayerFlags( Int currLayerId );
     914
    914915  // VPS EXTENSION 2 SYNTAX ELEMENTS
    915916#if H_3D
    916 #if HHI_CAM_PARA_K0052 
    917917  Int*        m_numCp; 
    918918  Int**       m_cpRefVoi;
     
    920920  Int         m_cpPrecision;
    921921  Bool*       m_cpInSliceSegmentHeaderFlag;
    922 #else
    923   UInt        m_uiCamParPrecision;
    924   Bool*       m_bCamParInSliceHeader;
    925   Bool*       m_bCamParPresent;
    926 #endif
    927922  Int         ***m_aaaiCodedScale ;
    928923  Int         ***m_aaaiCodedOffset;
    929924
    930 #if HHI_VIEW_ID_LIST_I5_J0107 ||  HHI_INTER_COMP_PRED_K0052
    931925  std::vector<Int>  m_viewOIdxList;
    932 #endif
    933 #if HHI_INTER_COMP_PRED_K0052
    934926  std::vector< std::vector<Bool> > m_viewCompLayerPresentFlag;
    935927  std::vector< std::vector<Int>  > m_viewCompLayerId;
    936 #endif
    937928#endif
    938929
     
    10211012  Void    setVpsNonVuiExtensionLength( Int  val )                          { m_vpsNonVuiExtensionLength = val; }
    10221013  Int     getVpsNonVuiExtensionLength(  )                                  { return m_vpsNonVuiExtensionLength; }
    1023 
     1014 
     1015  // VPS Extension
    10241016  Void    setSplittingFlag( Bool val )                                     { m_splittingFlag = val;  }
    10251017  Bool    getSplittingFlag()                                               { return m_splittingFlag; }
     
    11631155  Int     getNumViews()                                                    { return m_numViews; }
    11641156  Void    initNumViews();
    1165 #if HHI_INTER_COMP_PRED_K0052
    11661157#if H_3D
    1167   Void   initViewCompLayer( )
    1168   {
    1169     assert( m_viewCompLayerId.size() == 0 && m_viewCompLayerPresentFlag.size() == 0  );
    1170     for( Int i = 0; i < getNumViews(); i++ )
    1171     {
    1172       m_viewCompLayerId         .push_back( std::vector<Int>(0)  );
    1173       m_viewCompLayerPresentFlag.push_back( std::vector<Bool>(0) );     
    1174 
    1175       for( Int depFlag = 0; depFlag  <=  1; depFlag++ )
    1176       {
    1177         Int iViewOIdx = getViewOIdxList( i );
    1178         Int layerId = -1;
    1179         for( Int j = 0; j  <=  getMaxLayersMinus1(); j++ )
    1180         {
    1181           Int jNuhLId = getLayerIdInNuh( j );
    1182           if( getVpsDepthFlag( jNuhLId ) == ( (Bool) depFlag )  &&  getViewOrderIdx( jNuhLId )  ==  iViewOIdx 
    1183             &&  getDependencyId( jNuhLId )  ==  0  &&  getAuxId( jNuhLId )  ==  0 )
    1184           {
    1185             layerId = jNuhLId;
    1186           }
    1187         }
    1188         m_viewCompLayerPresentFlag[ i ].push_back( layerId  !=  -1 );
    1189         m_viewCompLayerId         [ i ].push_back( layerId );       
    1190       }
    1191     }
    1192   };
    1193 #endif
    1194 #endif
    1195 
    1196 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052
     1158  Void   initViewCompLayer( );
    11971159  Int     getViewOIdxList( Int i )                                         { return m_viewOIdxList[i]; }
    1198 #if HHI_CAM_PARA_K0052
    11991160  std::vector<Int> getViewOIdxList( )                                               { return m_viewOIdxList; }
    1200 #endif
    1201 #endif
    1202 
    1203 #if HHI_INTER_COMP_PRED_K0052
    1204 #if HHI_CAM_PARA_K0052
    1205   Int     getVoiInVps( Int viewOIdx )                                     
    1206 #else
    1207   Int     getInvViewOIdxList( Int viewOIdx )                                     
    1208 #endif
    1209   {   
    1210     for ( Int i = 0; i < m_viewOIdxList.size(); i++ )
    1211     {
    1212       if  ( m_viewOIdxList[ i ] == viewOIdx )
    1213       {
    1214         return i;
    1215       }
    1216     }
    1217     assert( 0 );   
    1218     return -1;
    1219   };
    1220 
    1221 #if HHI_CAM_PARA_K0052
     1161
     1162  Int     getVoiInVps( Int viewOIdx );;
     1163
    12221164  Bool    getViewCompLayerPresentFlag (Int i, Bool d ) { return  m_viewCompLayerPresentFlag[ getVoiInVps(i) ][d]; }
    12231165  Bool    getViewCompLayerId          (Int i, Bool d ) { return  m_viewCompLayerId         [ getVoiInVps(i) ][d]; }
    1224 #else
    1225   Bool    getViewCompLayerPresentFlag (Int i, Bool d ) { return  m_viewCompLayerPresentFlag[ getInvViewOIdxList(i) ][d]; }
    1226   Bool    getViewCompLayerId          (Int i, Bool d ) { return  m_viewCompLayerId         [ getInvViewOIdxList(i) ][d]; }
    1227 #endif
    12281166#endif
    12291167  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
     
    13471285  Void createCamPars(Int iNumViews);
    13481286  Void deleteCamPars();
    1349 #if HHI_CAM_PARA_K0052
    13501287  Void initCamParaVPS( Int vOIdxInVps, Int numCp, Bool cpInSliceSegmentHeaderFlag, Int* cpRefVoi, Int** aaiScale, Int** aaiOffset );
    1351 #else
    1352   Void initCamParaVPS      (  UInt uiViewIndex, Bool bCamParPresent = false, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
    1353 #endif
    1354  
    1355 #if HHI_CAM_PARA_K0052
     1288 
    13561289
    13571290  Void setCpPrecision( Int  val ) { m_cpPrecision = val; }
     
    13801313
    13811314// Derived
    1382   Void deriveCpPresentFlag( )
    1383   {
    1384     for( Int nInVps = 0; nInVps < getNumViews(); nInVps++  )
    1385     {
    1386       for( Int mInVps = 0; mInVps < getNumViews(); mInVps++ )
    1387       {
    1388         m_cpPresentFlag[nInVps][mInVps] = 0;
    1389       }
    1390     }
    1391 
    1392    for( Int n = 1; n < getNumViews(); n++ )
    1393    {
    1394       Int iInVps = getVoiInVps(  getViewOIdxList( n ) );     
    1395       for( Int m = 0; m < getNumCp( iInVps ); m++ )
    1396       {
    1397          m_cpPresentFlag[ iInVps ][ getVoiInVps( getCpRefVoi( iInVps, m ) ) ] = 1;
    1398       }
    1399     }
    1400   }
     1315  Void deriveCpPresentFlag( );
    14011316
    14021317  Void setCpPresentFlag( Int i, Int m, Bool flag ) { m_cpPresentFlag[i][m] = flag; }
    14031318  Bool getCpPresentFlag( Int i, Int m )           { return m_cpPresentFlag[i][m]; }   
    14041319
    1405 #else
    1406   UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
    1407 
    1408   Bool getCamParPresent      ( Int viewIndex )  { return m_bCamParPresent[viewIndex]; }
    1409   Void setCamParPresent      ( Int viewIndex, Bool val )  { m_bCamParPresent[viewIndex] = val; }
    1410   Bool hasCamParInSliceHeader( Int viewIndex )  { return m_bCamParInSliceHeader[viewIndex]; }
    1411   Void setHasCamParInSliceHeader( Int viewIndex, Bool b )  { m_bCamParInSliceHeader[viewIndex] = b; }
    1412 #endif
    14131320
    14141321
     
    17051612      m_qtPredFlag            [d] = false;
    17061613      m_interSdcFlag          [d] = false;
    1707 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    17081614      m_depthIntraSkipFlag    [d] = false;   
    1709 #else
    1710       m_intraSingleFlag       [d] = false;
    1711 #endif
    17121615    }
    17131616  }
     
    17521655  Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; }
    17531656
    1754 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    17551657  Void setDepthIntraSkipFlag( Int d, Bool flag ) { m_depthIntraSkipFlag[d] = flag; }
    17561658  Bool getDepthIntraSkipFlag( Int d ) { return m_depthIntraSkipFlag[d]; }
    1757 #else
    1758   Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; }
    1759   Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; }
    1760 #endif
    17611659
    17621660private:
     
    17751673  Bool        m_qtPredFlag            [2];
    17761674  Bool        m_interSdcFlag          [2];
    1777 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    17781675  Bool        m_depthIntraSkipFlag    [2]; 
    1779 #else
    1780   Bool        m_intraSingleFlag       [2]; 
    1781 #endif
    17821676};
    17831677
     
    18841778#if H_3D
    18851779  TComSps3dExtension m_sps3dExtension;
    1886 #if !HHI_CAM_PARA_K0052
    1887   UInt        m_uiCamParPrecision;
    1888   Bool        m_bCamParInSliceHeader;
    1889 #endif
    18901780  Int         m_aaiCodedScale [2][MAX_NUM_LAYERS];
    18911781  Int         m_aaiCodedOffset[2][MAX_NUM_LAYERS];
     
    25172407  UInt                 m_nARPStepNum;
    25182408  Int         m_aiFirstTRefIdx    [2];
    2519 #if HHI_RES_PRED_K0052
    25202409  std::vector<Int> m_pocsInCurrRPSs;
    2521 #endif
    25222410#endif
    25232411#if H_3D_IC
     
    25262414#endif
    25272415#if H_3D
    2528 #if HHI_INTER_COMP_PRED_K0052
    25292416  std::vector<Int> m_inCmpRefViewIdcs;
    25302417  Bool       m_inCmpPredAvailFlag;
    25312418  Bool       m_inCmpPredFlag;
    2532 #endif
    2533 #if HHI_CAM_PARA_K0052
    25342419  Bool       m_cpAvailableFlag;
    25352420  Int        m_numViews;
    2536 #endif
    25372421  TComPic*   m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 
    25382422  Int**      m_depthToDisparityB;
     
    25402424#endif
    25412425#endif
    2542 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    25432426  Bool      m_bApplyDIS;
    2544 #else
    2545 #if H_3D_SINGLE_DEPTH
    2546   Bool      m_bApplySingleDepthMode;
    2547 #endif
    2548 #endif
    25492427#if H_3D_IC
    2550   Int *m_aICEnableCandidate;
    2551   Int *m_aICEnableNum;
     2428  Int*      m_aICEnableCandidate;
     2429  Int*      m_aICEnableNum;
    25522430#endif
    25532431  Int       m_iDefaultRefViewIdx;
     
    25652443  Bool m_qtPredFlag           ;
    25662444  Bool m_interSdcFlag         ;
    2567 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    25682445  Bool m_depthIntraSkipFlag   ;
    2569 #else
    2570   Bool m_intraSingleFlag      ;
    2571 #endif
    25722446  Int  m_mpiSubPbSize         ;
    25732447  Int  m_subPbSize            ;
     
    26372511  Int       getRefPOC           ( RefPicList e, Int iRefIdx)    { return  m_aiRefPOCList[e][iRefIdx];   }
    26382512#if H_3D
    2639 #if HHI_INTER_COMP_PRED_K0052
    26402513  Bool      getInCmpPredAvailFlag( )                             { return m_inCmpPredAvailFlag;    }
    2641 #if HHI_CAM_PARA_K0052
    26422514  Bool      getCpAvailableFlag( )                             { return m_cpAvailableFlag;    }
    2643 #endif
    26442515  Bool      getInCompPredFlag( )                                 { return m_inCmpPredFlag;         }   
    26452516  Void      setInCompPredFlag( Bool b )                          { m_inCmpPredFlag = b;            }   
    26462517  Int       getInCmpRefViewIdcs( Int i )                         { return m_inCmpRefViewIdcs  [i]; }
    26472518  Int       getNumCurCmpLIds( )                                  { return (Int) m_inCmpRefViewIdcs.size(); }
    2648 #endif
    26492519  TComPic*  getIvPic            ( Bool depthFlag, Int viewIndex){ return  m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; }
    26502520#endif
     
    28752745  Void      setFirstTRefIdx        ( RefPicList e, Int i )         { m_aiFirstTRefIdx[e]    = i;      }
    28762746  Bool      getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; }
    2877 #if HHI_RES_PRED_K0052
    28782747  std::vector<Int> getPocsInCurrRPSs()                             { return m_pocsInCurrRPSs; };
    2879 #endif
    28802748#endif
    28812749  Void      setIsDepth            ( Bool isDepth )   { m_isDepth = isDepth; }
     
    28862754  Int*      getInvCodedScale      ()  { return m_aaiCodedScale [1]; }
    28872755  Int*      getInvCodedOffset     ()  { return m_aaiCodedOffset[1]; }
    2888 #if HHI_CAM_PARA_K0052
    28892756  Void      setCpScale( Int j, Int  val ) { m_aaiCodedScale[0][j] = val; }
    28902757  Int       getCpScale( Int j ) { return m_aaiCodedScale[0][j]; }
     
    28982765  Void      setCpInvOff( Int j, Int  val ) { m_aaiCodedOffset[1][j] = val; }
    28992766  Int       getCpInvOff( Int j ) { return m_aaiCodedOffset[1][j]; }
    2900 #endif
    29012767
    29022768#endif
     
    29062772  Void    setDepthToDisparityLUTs();
    29072773
    2908 #if HHI_CAM_PARA_K0052
    29092774  Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ getVPS()->getVoiInVps( refViewIdx) ]; };
    29102775  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ getVPS()->getVoiInVps( refViewIdx) ]; };
    2911 #else
    2912   Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; };
    2913   Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
    2914 #endif
    29152776#endif
    29162777#if H_3D_IC
     
    30152876#if H_3D
    30162877  // 3D-HEVC tool parameters
    3017 #if HHI_INTER_COMP_PRED_K0052
    3018   Void deriveInCmpPredAndCpAvailFlag()
    3019   {
    3020     Int numCurCmpLIds = getIsDepth() ? 1 : getNumActiveRefLayerPics();
    3021     std::vector<Int> curCmpLIds;
    3022     if ( getIsDepth() )
    3023     {
    3024       curCmpLIds.push_back( getLayerId() );
    3025     }
    3026     else
    3027     {
    3028       for (Int i = 0; i < numCurCmpLIds; i++)
    3029       {
    3030         curCmpLIds.push_back( getRefPicLayerId( i ) );
    3031       }
    3032     }
    3033 
    3034 #if HHI_CAM_PARA_K0052
    3035     m_cpAvailableFlag = true;
    3036     m_inCmpRefViewIdcs.clear();
    3037 #endif
    3038     Bool allRefCmpLayersAvailFlag = true;
    3039 
    3040     for( Int i = 0; i <= numCurCmpLIds - 1; i++ )
    3041     {     
    3042       m_inCmpRefViewIdcs.push_back( getVPS()->getViewOrderIdx( curCmpLIds[ i ] ));
    3043 #if HHI_CAM_PARA_K0052
    3044       if( !getVPS()->getCpPresentFlag( getVPS()->getVoiInVps( getViewIndex() ),  getVPS()->getVoiInVps( m_inCmpRefViewIdcs[ i ] ) ) )
    3045       {
    3046         m_cpAvailableFlag = false;
    3047       }
    3048 #endif
    3049       Bool refCmpCurLIdAvailFlag = false;
    3050       if( getVPS()->getViewCompLayerPresentFlag( m_inCmpRefViewIdcs[ i ], !getIsDepth() ) )
    3051       {
    3052         Int j = getVPS()->getLayerIdInVps( getVPS()->getViewCompLayerId( m_inCmpRefViewIdcs[ i ],  !getIsDepth() ) );
    3053         if  ( getVPS()->getDirectDependencyFlag( getVPS()->getLayerIdInVps( getLayerId() ) ,  j ) &&
    3054           getVPS()->getSubLayersVpsMaxMinus1( j ) >= getTemporalId()   &&
    3055           ( getTemporalId() == 0 || getVPS()->getMaxTidIlRefPicsPlus1( j , getVPS()->getLayerIdInVps( getLayerId() ) ) > getTemporalId() )       
    3056           )
    3057         {
    3058           refCmpCurLIdAvailFlag = true;
    3059         }
    3060       }
    3061       if( !refCmpCurLIdAvailFlag )
    3062       {
    3063         allRefCmpLayersAvailFlag = false;
    3064       }
    3065     }
    3066 
    3067     if( !allRefCmpLayersAvailFlag )
    3068     {
    3069       m_inCmpPredAvailFlag = false;
    3070     } 
    3071     else
    3072     {
    3073       TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension();
    3074       if( !getIsDepth() )
    3075       {
    3076         m_inCmpPredAvailFlag = sps3dExt->getViewSynthesisPredFlag( getIsDepth() ) ||
    3077           sps3dExt->getDepthBasedBlkPartFlag( getIsDepth() ) ||
    3078           sps3dExt->getDepthRefinementFlag  ( getIsDepth() );                           
    3079       }
    3080       else
    3081       {
    3082         m_inCmpPredAvailFlag = sps3dExt->getIntraContourFlag( getIsDepth() ) ||
    3083           sps3dExt->getQtPredFlag( getIsDepth() ) ||
    3084           sps3dExt->getMpiFlag( getIsDepth() );                                 
    3085       }
    3086     } 
    3087   };
    3088 
    3089 #endif
    3090 
     2878  Void deriveInCmpPredAndCpAvailFlag();
    30912879  Void init3dToolParameters();   
    3092 #if HHI_INTER_COMP_PRED_K0052
    3093   Void checkInCompPredRefLayers()
    3094   {
    3095     if ( getInCompPredFlag() )
    3096     {
    3097       for (Int i = 0; i < getNumCurCmpLIds(); i++ )
    3098       {
    3099         assert( getIvPic(!getIsDepth(), getInCmpRefViewIdcs( i ) ) != NULL );       
    3100         //  It is a requirement of bitstream conformance that there
    3101         //  is a picture in the DPB with PicOrderCntVal equal to the PicOrderCntVal of the current picture,
    3102         //  and a nuh_layer_id value equal to ViewCompLayerId[ inCmpRefViewIdcs[ i ] ][ !DepthFlag ].
    3103       }
    3104     }
    3105   };
    3106 
    3107 #endif
     2880  Void checkInCompPredRefLayers();;
     2881
    31082882  Bool getIvMvPredFlag           ( ) { return m_ivMvPredFlag           ; };
    31092883  Bool getIvMvScalingFlag        ( ) { return m_ivMvScalingFlag        ; };
     
    31172891  Bool getQtPredFlag             ( ) { return m_qtPredFlag             ; };
    31182892  Bool getInterSdcFlag           ( ) { return m_interSdcFlag           ; };
    3119 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033
    31202893  Bool getDepthIntraSkipFlag     ( ) { return m_depthIntraSkipFlag     ; };
    3121 #else
    3122   Bool getIntraSingleFlag        ( ) { return m_intraSingleFlag        ; };
    3123 #endif
    31242894
    31252895  Int  getMpiSubPbSize           ( ) { return m_mpiSubPbSize           ; };
Note: See TracChangeset for help on using the changeset viewer.