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


Ignore:
Timestamp:
23 Oct 2013, 23:01:30 (10 years ago)
Author:
tech
Message:

Merged 8.1-Cleanup@654

File:
1 edited

Legend:

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

    r622 r655  
    155155  Void     setScalingListPresentFlag    (Bool b)                               { m_scalingListPresentFlag = b;    }
    156156  Bool     getScalingListPresentFlag    ()                                     { return m_scalingListPresentFlag; }
    157   Bool     getUseTransformSkip    ()                                     { return m_useTransformSkip; }     
    158   Void     setUseTransformSkip    (Bool b)                               { m_useTransformSkip = b;    }
    159157  Int*     getScalingListAddress          (UInt sizeId, UInt listId)           { return m_scalingListCoef[sizeId][listId]; } //!< get matrix coefficient
    160158  Bool     checkPredMode                  (UInt sizeId, UInt listId);
     
    169167  Void     processRefMatrix               (UInt sizeId, UInt listId , UInt refListId );
    170168  Bool     xParseScalingList              (Char* pchFile);
    171 #if H_MV5
    172169#if H_MV
    173170  Void     inferFrom                      ( TComScalingList* srcScLi );
    174 #endif
    175171#endif
    176172
     
    184180  UInt     m_predMatrixId                [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< reference list index
    185181  Int      *m_scalingListCoef            [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix
    186   Bool     m_useTransformSkip;                                                      //!< transform skipping flag for setting default scaling matrix for 4x4
    187182};
    188183
     
    407402};
    408403
    409 #if H_MV5
    410404#if H_MV
    411405class TComVPSVUI
     
    502496};
    503497#endif
    504 #endif
    505498
    506499class TComVPS
     
    510503  UInt        m_uiMaxTLayers;
    511504
    512 #if H_MV5
    513505#if H_MV
    514506  UInt        m_uiMaxLayersMinus1;
    515 #else
    516   UInt        m_uiMaxLayers;
    517 #endif
    518507#else
    519508  UInt        m_uiMaxLayers;
     
    551540  /// VPS EXTENSION SYNTAX ELEMENTS
    552541  Bool        m_avcBaseLayerFlag;
    553 #if H_MV5
    554542  Int         m_vpsVuiOffset;
    555 #endif
    556543  Bool        m_splittingFlag;
    557 #if H_MV5
    558544  Bool        m_scalabilityMaskFlag          [MAX_NUM_SCALABILITY_TYPES];
    559 #else
    560   Bool        m_scalabilityMask          [MAX_NUM_SCALABILITY_TYPES];
    561 #endif
    562545  Int         m_dimensionIdLen           [MAX_NUM_SCALABILITY_TYPES];
    563546  Bool        m_vpsNuhLayerIdPresentFlag;
    564547  Int         m_layerIdInNuh             [MAX_NUM_LAYER_IDS];
    565548  Int         m_dimensionId              [MAX_NUM_LAYER_IDS][MAX_NUM_SCALABILITY_TYPES]; 
    566 #if H_MV5
    567549  Int         m_viewIdLenMinus1;
    568550  Int         m_viewIdVal                [MAX_NUM_LAYERS];
    569 #endif
    570551  Bool        m_directDependencyFlag     [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
    571 #if H_MV5
    572552  Bool        m_maxTidRefPresentFlag;
    573 #endif
    574553  Int         m_maxTidIlRefPicPlus1      [MAX_NUM_LAYERS];
    575 #if H_MV5
    576554  Bool        m_allRefLayersActiveFlag;
    577 #endif
    578555  Int         m_vpsNumberLayerSetsMinus1;
    579556  Int         m_vpsNumProfileTierLevelMinus1;   
     
    586563  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    587564  Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
    588 #if H_MV5
    589565  Bool        m_repFormatIdxPresentFlag;
    590566  Int         m_vpsNumRepFormatsMinus1;
    591567  Int         m_vpsRepFormatIdx          [MAX_NUM_LAYERS];
    592568  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    593 #endif
    594569  Bool        m_maxOneActiveRefLayerFlag;       
    595 #if H_MV5
    596570  Bool        m_crossLayerIrapAlignedFlag;
    597 #endif
    598571  Int         m_directDepTypeLenMinus2;         
    599 #if H_MV5
    600572  Bool        m_vpsVuiPresentFlag;
    601573  TComVPSVUI* m_vpsVUI;
    602 #endif
    603574  Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
    604575
     
    616587  Bool        m_motionPredEnabledFlag    [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    617588  Int         m_motionPredRefLayerId     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    618 #if H_MV5
    619589  Int         m_viewIndex                [MAX_NUM_LAYERS   ];
    620 #else
    621 #if H_3D
    622   Int         m_viewIndex                [MAX_NUM_LAYERS   ];
    623 #endif
    624 
    625   Int         xCeilLog2       ( Int val );
    626 #endif
    627590  Int         xGetDimBitOffset( Int j );
    628591 
     
    653616  Bool        m_ivMvScalingFlag;
    654617#endif
    655 #if LGE_INTER_SDC_E0156
     618#if H_3D_INTER_SDC
    656619  Bool        m_bInterSDCFlag[MAX_NUM_LAYERS   ];
    657620#endif
     
    681644  Void    setMaxTLayers  (UInt t)             { m_uiMaxTLayers = t; }
    682645 
    683 #if H_MV5
    684646#if H_MV   
    685647  UInt    getMaxLayersMinus1()                { return m_uiMaxLayersMinus1;  };
     
    689651  Void    setMaxLayers   (UInt l)             { m_uiMaxLayers = l; }
    690652#endif
    691 #else
    692   UInt    getMaxLayers   ()                   { return m_uiMaxLayers;   }
    693   Void    setMaxLayers   (UInt l)             { m_uiMaxLayers = l; }
    694 #endif
    695653
    696654  Bool    getTemporalNestingFlag   ()         { return m_bTemporalIdNestingFlag;   }
     
    735693  Bool    getAvcBaseLayerFlag()                                            { return m_avcBaseLayerFlag; }
    736694
    737 #if H_MV5
    738695  Void    setVpsVuiOffset( Int  val )                                      { m_vpsVuiOffset = val; }
    739696  Int     getVpsVuiOffset(  )                                              { return m_vpsVuiOffset; }
    740 #endif
    741697
    742698  Void    setSplittingFlag( Bool val )                                     { m_splittingFlag = val;  }
    743699  Bool    getSplittingFlag()                                               { return m_splittingFlag; }
    744700
    745 #if H_MV5
    746701  Void    setScalabilityMaskFlag( UInt val );
    747702  Void    setScalabilityMaskFlag( Int scalType, Bool val )                     { m_scalabilityMaskFlag[scalType] = val;  }
    748703  Bool    getScalabilityMaskFlag( Int scalType )                               { return m_scalabilityMaskFlag[scalType]; }
    749 #else
    750   Void    setScalabilityMask( UInt val );
    751 
    752   Void    setScalabilityMask( Int scalType, Bool val )              { m_scalabilityMask[scalType] = val;  }
    753   Bool    getScalabilityMask( Int scalType )                        { return m_scalabilityMask[scalType]; }
    754 #endif
    755704  Int     getNumScalabilityTypes( );
    756705
     
    769718  Int     getDimensionId( Int layerIdInVps, Int scalIdx )                  { return m_dimensionId[layerIdInVps][scalIdx]; }
    770719
    771 #if H_MV5
    772720  Void    setViewIdLenMinus1( Int  val )                                   { m_viewIdLenMinus1 = val; }
    773721  Int     getViewIdLenMinus1(  )                                           { return m_viewIdLenMinus1; }
     
    775723  Void    setViewIdVal( Int viewOrderIndex, Int  val )                     { m_viewIdVal[viewOrderIndex] = val; }
    776724  Int     getViewIdVal( Int viewOrderIndex )                               { return m_viewIdVal[viewOrderIndex]; }
    777 #endif
    778725  Void    setDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Bool val ) { m_directDependencyFlag[depLayeridInVps][refLayeridInVps] = val;  }
    779726  Bool    getDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps )           { return m_directDependencyFlag[depLayeridInVps][refLayeridInVps]; }
    780727
    781 #if H_MV5
    782728  Void    setMaxTidRefPresentFlag( Bool flag )                             { m_maxTidRefPresentFlag = flag; }
    783729  Bool    getMaxTidRefPresentFlag(  )                                      { return m_maxTidRefPresentFlag; }
    784 #endif
    785730  Void    setMaxTidIlRefPicPlus1( Int layerIdInVps, Int val )              { m_maxTidIlRefPicPlus1[ layerIdInVps ] = val;  }
    786731  Int     getMaxTidIlRefPicPlus1( Int layerIdInVps )                       { return m_maxTidIlRefPicPlus1[ layerIdInVps ]; }
    787 #if H_MV5
    788732  Void    setAllRefLayersActiveFlag( Bool flag )                           { m_allRefLayersActiveFlag = flag; }
    789733  Bool    getAllRefLayersActiveFlag(  )                                    { return m_allRefLayersActiveFlag; }
    790 #endif
    791734  Void    setVpsNumberLayerSetsMinus1( Int val )                           { m_vpsNumberLayerSetsMinus1 = val;  }
    792735  Int     getVpsNumberLayerSetsMinus1( )                                   { return m_vpsNumberLayerSetsMinus1; }
     
    819762  Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
    820763
    821 #if H_MV5
    822764  Void    setRepFormatIdxPresentFlag( Bool flag )                          { m_repFormatIdxPresentFlag = flag; }
    823765  Bool    getRepFormatIdxPresentFlag(  )                                   { return m_repFormatIdxPresentFlag; }
     
    831773  Void    setRepFormat( Int i, TComRepFormat* val )                        { m_repFormat[i] = val;  }
    832774  TComRepFormat* getRepFormat( Int i )                                     { return m_repFormat[i]; }
    833 #endif
    834775  Void    setMaxOneActiveRefLayerFlag( Bool flag)                          { m_maxOneActiveRefLayerFlag = flag; }
    835776  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
    836 #if H_MV5
    837777  Void    setCrossLayerIrapAlignedFlag( Bool flag )                        { m_crossLayerIrapAlignedFlag = flag; }
    838778  Bool    getCrossLayerIrapAlignedFlag(  )                                 { return m_crossLayerIrapAlignedFlag; }
    839 #endif
    840779  Void    setDirectDepTypeLenMinus2( Int val)                              { m_directDepTypeLenMinus2 = val; }
    841780  Int     getDirectDepTypeLenMinus2( )                                     { return m_directDepTypeLenMinus2; }
     
    843782  Void    setDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ] = val; }
    844783  Int     getDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps)   { return m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ]; }
    845 #if H_MV5 
    846784  Void    setVpsVuiPresentFlag( Bool flag )                                { m_vpsVuiPresentFlag = flag; }
    847785  Bool    getVpsVuiPresentFlag(  )                                         { return m_vpsVuiPresentFlag; }
    848786
    849787  TComVPSVUI* getVPSVUI(  )                                                { return m_vpsVUI;  }
    850 #endif
    851788  // VPS EXTENSION SEMANTICS VARIABLES
    852789  Void    setLayerIdInVps( Int layerIdInNuh, Int val )                     { m_layerIdInVps[layerIdInNuh] = val;  }
     
    854791
    855792  Int     getScalabilityId ( Int layerIdInVps, ScalabilityType scalType );
    856 #if H_MV5
    857793  Int     getViewId        ( Int layerIdInNuh )                            { return m_viewIdVal[ getViewIndex( getLayerIdInVps( layerIdInNuh) )]; }
    858 #else
    859   Int     getViewId  ( Int layerIdInVps )                                  { return getScalabilityId( layerIdInVps, VIEW_ID  ); }
    860 
    861 #endif
    862794  Void    setRefLayers();
    863795
    864 #if H_MV5
    865796  Int     getViewIndex    ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
    866797  Int     getNumViews();
     
    868799  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
    869800  Int     getRefLayerId        ( Int layerIdInNuh, Int idx );;
    870 #else
    871   Int     getNumDirectRefLayers( Int layerIdInVps )          { return m_numDirectRefLayers[ layerIdInVps ];  };                               
    872   Int     getRefLayerId        ( Int layerIdInVps, Int idx );;
    873  
    874   Int     getNumSamplePredRefLayers( Int layerIdInVps )          { return m_numSamplePredRefLayers[layerIdInVps]; }
    875   Bool    getSamplePredEnabledFlag ( Int layerIdInVps, Int idx ) { return m_samplePredEnabledFlag [layerIdInVps][idx]; }
    876   Int     getSamplePredRefLayerId  ( Int layerIdInVps, Int idx ) { return m_samplePredRefLayerId  [layerIdInVps][idx]; }
    877 
    878   Int     getNumMotionPredRefLayers( Int layerIdInVps )          { return m_numMotionPredRefLayers[layerIdInVps]; }
    879   Bool    getMotionPredEnabledFlag ( Int layerIdInVps, Int idx ) { return m_motionPredEnabledFlag [layerIdInVps][idx]; }
    880   Int     getMotionPredRefLayerId  ( Int layerIdInVps, Int idx ) { return m_motionPredRefLayerId  [layerIdInVps][idx]; }
    881 #endif 
    882801  Bool    checkVPSExtensionSyntax();
    883802  Int     scalTypeToScalIdx   ( ScalabilityType scalType );
    884803
    885   #if H_MV5
    886804Int     getProfileLevelTierIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    887 #else
    888   Int     getProfileLevelTierIdxLen() { return xCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    889 #endif
    890805
    891806  Int     getNumLayersInIdList              ( Int lsIdx );;
     
    895810  Int     inferLastDimsionIdLenMinus1();
    896811
    897 #if H_MV5
    898812  // helpers
    899813  Bool    getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth = 0 );
    900 #endif
    901814  /// VPS EXTENSION 2 SYNTAX ELEMENTS
    902815#if H_3D 
    903 #if H_MV5
    904816  Int     getDepthId      ( Int layerIdInNuh)                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPTH_ID ); }
    905 #else
    906   Void    initViewIndex();
    907   Int     getViewIndex    ( Int layerIdInVps )                             { return m_viewIndex[ layerIdInVps ]; }   
    908   Int     getDepthId      ( Int layerIdInVps )                             { return getScalabilityId( layerIdInVps, DEPTH_ID ); }
    909 #endif
    910817  Int     getLayerIdInNuh( Int viewIndex, Bool depthFlag );   
    911818
     
    943850  Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
    944851  Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
    945 #if LGE_INTER_SDC_E0156
     852#if H_3D_INTER_SDC
    946853  Bool    getInterSDCFlag      ( Int layerIdInVps )           { return m_bInterSDCFlag[layerIdInVps]; }
    947854  Void    setInterSDCFlag      ( Int layerIdInVps, Bool bval ){ m_bInterSDCFlag[layerIdInVps] = bval; }
     
    960867  Int           m_winTopOffset;
    961868  Int           m_winBottomOffset;
    962 #if H_MV5
    963869#if H_MV
    964870  Bool          m_scaledFlag;
    965 #endif
    966871#endif
    967872public:
     
    972877  , m_winTopOffset      (0)
    973878  , m_winBottomOffset   (0)
    974 #if H_MV5
    975879#if H_MV
    976880  , m_scaledFlag(true)
    977 #endif
    978881#endif
    979882  { }
     
    990893  Void          setWindowBottomOffset(Int val)    { m_winBottomOffset = val; m_enabledFlag = true; }
    991894
    992 #if H_MV5
    993895#if H_MV
    994896  Void          setScaledFlag(Bool flag)          { m_scaledFlag = flag;  }
     
    1005907    }
    1006908  }
    1007 #endif
    1008909#endif
    1009910  Void          setWindow(Int offsetLeft, Int offsetLRight, Int offsetLTop, Int offsetLBottom)
     
    1054955  TComHRD m_hrdParameters;
    1055956  TimingInfo m_timingInfo;
    1056 #if !H_MV5
    1057 #if H_MV
    1058   Bool m_tileBoundariesAlignedFlag;
    1059 #endif
    1060 #endif
    1061957
    1062958public:
     
    1091987    ,m_log2MaxMvLengthHorizontal(15)
    1092988    ,m_log2MaxMvLengthVertical(15)
    1093 #if !H_MV5
    1094 #if H_MV
    1095     ,m_tileBoundariesAlignedFlag(true)
    1096 #endif
    1097 #endif
    1098989  {}
    1099990
     
    11911082  TComHRD* getHrdParameters                 ()             { return &m_hrdParameters; }
    11921083  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    1193 #if !H_MV5
    1194 #if H_MV
    1195 Bool getTileBoundariesAlignedFlag(  ) { return m_tileBoundariesAlignedFlag; }
    1196   Void setTileBoundariesAlignedFlag( Bool flag ) { m_tileBoundariesAlignedFlag = flag; }
    1197 #endif
    1198 #endif
    11991084
    12001085};
     
    12811166  TComPTL     m_pcPTL;
    12821167#if H_MV
    1283 #if H_MV5
    12841168  TComVPS*    m_pcVPS;
    12851169  // SPS
     
    12871171  Int         m_spsScalingListRefLayerId;
    12881172  Bool        m_updateRepFormatFlag;
    1289 #endif
    12901173  // SPS Extension
    12911174  Bool        m_interViewMvVertConstraintFlag;
    1292 #if !H_MV5
    1293   Int         m_numIlpRestrictedRefLayers        ;
    1294   Int         m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS];
    1295   Bool        m_ctuBasedOffsetEnabledFlag   [MAX_NUM_LAYERS];
    1296   Int         m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS];
    1297 #endif
    12981175#endif
    12991176#if H_3D
     
    14321309  TComPTL* getPTL()     { return &m_pcPTL; }
    14331310#if H_MV
    1434 #if H_MV5
    14351311  Void      setVPS          ( TComVPS* pcVPS ) { m_pcVPS = pcVPS; }
    14361312  TComVPS*  getVPS          () { return m_pcVPS; }
     
    14441320  Void setUpdateRepFormatFlag( Bool flag )     { m_updateRepFormatFlag = flag; }
    14451321  Bool getUpdateRepFormatFlag(  )              { return m_updateRepFormatFlag; }
    1446 #endif
    14471322  // SPS Extension
    14481323  Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    14491324  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
    1450 #if H_MV5
    14511325  // Inference
    14521326  Void inferRepFormat( TComVPS* vps, Int layerIdCurr );
    14531327
    14541328  Void inferScalingList( TComSPS* spsSrc );
    1455 #else
    1456   Void setNumIlpRestrictedRefLayers   ( Int val )        { m_numIlpRestrictedRefLayers         = val;}
    1457   Int  getNumIlpRestrictedRefLayers   ( )                { return m_numIlpRestrictedRefLayers        ;}
    1458  
    1459   Void setMinSpatialSegmentOffsetPlus1( Int i, Int val ) { m_minSpatialSegmentOffsetPlus1[ i ] = val;}
    1460   Int  getMinSpatialSegmentOffsetPlus1( Int i )          { return m_minSpatialSegmentOffsetPlus1[ i ];}
    1461  
    1462   Void setCtuBasedOffsetEnabledFlag   ( Int i, Bool flag ) { m_ctuBasedOffsetEnabledFlag   [ i ] = flag;}
    1463   Bool getCtuBasedOffsetEnabledFlag   ( Int i )            { return m_ctuBasedOffsetEnabledFlag   [ i ];}
    1464 
    1465   Void setMinHorizontalCtuOffsetPlus1 ( Int i, Int val )   { m_minHorizontalCtuOffsetPlus1 [ i ] = val;}
    1466   Int  getMinHorizontalCtuOffsetPlus1 ( Int i )            { return m_minHorizontalCtuOffsetPlus1 [ i ];}
    1467 
    1468 #endif
    14691329#endif
    14701330#if H_3D_QTLPC
     
    15821442  Int m_numExtraSliceHeaderBits;
    15831443
    1584 #if H_MV5
    15851444#if H_MV
    15861445  Int  m_layerId;
    15871446  Bool m_ppsInferScalingListFlag;
    15881447  Int  m_ppsScalingListRefLayerId;
    1589 #endif
    15901448#endif
    15911449public:
     
    17101568  Bool getSliceHeaderExtensionPresentFlag   ()                    { return m_sliceHeaderExtensionPresentFlag; }
    17111569  Void setSliceHeaderExtensionPresentFlag   (Bool val)            { m_sliceHeaderExtensionPresentFlag = val; }
    1712 #if H_MV5
    17131570#if H_MV
    17141571  Void setLayerId( Int  val ) { m_layerId = val; }
     
    17201577  Void setPpsScalingListRefLayerId( Int  val ) { m_ppsScalingListRefLayerId = val; }
    17211578  Int  getPpsScalingListRefLayerId(  ) { return m_ppsScalingListRefLayerId; }
    1722 #endif
    17231579#endif
    17241580};
     
    17541610  Bool        m_PicOutputFlag;        ///< pic_output_flag
    17551611  Int         m_iPOC;
    1756 #if H_MV5
    17571612#if H_MV
    17581613  Int         m_iPOCBeforeReset;
    17591614#endif
    1760 #endif
    17611615  Int         m_iLastIDR;
    1762   static Int  m_prevPOC;
     1616  Int         m_iAssociatedIRAP;
     1617  NalUnitType m_iAssociatedIRAPType;
     1618  static Int  m_prevTid0POC;
    17631619  TComReferencePictureSet *m_pcRPS;
    17641620  TComReferencePictureSet m_LocalRPS;
     
    18531709  Bool       m_enableTMVPFlag;
    18541710#if H_MV
    1855 #if H_MV5
    18561711  std::vector<TComPic*>* m_refPicSetInterLayer0;
    18571712  std::vector<TComPic*>* m_refPicSetInterLayer1;
     
    18621717  Bool       m_isDepth;
    18631718#endif
    1864 #else
    1865   std::vector<TComPic*>* m_refPicSetInterLayer;
    1866   Int        m_layerId;
    1867   Int        m_viewId;
    1868 #if H_3D
    1869   Int        m_viewIndex;
    1870   Bool       m_isDepth;
    1871 #endif
    1872 #endif
    18731719
    18741720// Additional slice header syntax elements
    1875 #if H_MV5
    18761721  Bool       m_pocResetFlag;
    1877 #endif
    18781722  Bool       m_discardableFlag;
    18791723  Bool       m_interLayerPredEnabledFlag;
    18801724  Int        m_numInterLayerRefPicsMinus1;
    18811725  Int        m_interLayerPredLayerIdc       [MAX_NUM_LAYERS];
    1882 #if !H_MV5
    1883   Bool       m_interLayerSamplePredOnlyFlag;
    1884   Bool       m_altCollocatedIndicationFlag;
    1885   Int        m_collocatedRefLayerIdx;
    1886 // Additional slice header semantics variables
    1887   Int        m_numActiveMotionPredRefLayers;
    1888   Int        m_activeMotionPredRefLayerId   [ MAX_NUM_LAYER_IDS ];
    1889 
    1890 #endif
    18911726  Int        m_aaiCodedScale [2][MAX_NUM_LAYERS];
    18921727  Int        m_aaiCodedOffset[2][MAX_NUM_LAYERS];
     
    19401775  Void      setRPSidx          ( Int iBDidx ) { m_iBDidx = iBDidx; }
    19411776  Int       getRPSidx          () { return m_iBDidx; }
    1942   Int       getPrevPOC      ()                          { return  m_prevPOC;       }
     1777  Int       getPrevTid0POC      ()                        { return  m_prevTid0POC;       }
    19431778  TComRefPicListModification* getRefPicListModification() { return &m_RefPicListModification; }
    19441779  Void      setLastIDR(Int iIDRPOC)                       { m_iLastIDR = iIDRPOC; }
    19451780  Int       getLastIDR()                                  { return m_iLastIDR; }
     1781  Void      setAssociatedIRAPPOC(Int iAssociatedIRAPPOC)             { m_iAssociatedIRAP = iAssociatedIRAPPOC; }
     1782  Int       getAssociatedIRAPPOC()                        { return m_iAssociatedIRAP; }
     1783  Void      setAssociatedIRAPType(NalUnitType associatedIRAPType)    { m_iAssociatedIRAPType = associatedIRAPType; }
     1784  NalUnitType getAssociatedIRAPType()                        { return m_iAssociatedIRAPType; }
    19461785  SliceType getSliceType    ()                          { return  m_eSliceType;         }
    19471786  Int       getPOC          ()                          { return  m_iPOC;           }
     
    19881827  Void      checkColRefIdx      (UInt curSliceIdx, TComPic* pic);
    19891828  Bool      getIsUsedAsLongTerm (Int i, Int j)                  { return m_bIsUsedAsLongTerm[i][j]; }
     1829  Void      setIsUsedAsLongTerm (Int i, Int j, Bool value)      { m_bIsUsedAsLongTerm[i][j] = value; }
    19901830  Bool      getCheckLDC     ()                                  { return m_bCheckLDC; }
    19911831  Bool      getMvdL1ZeroFlag ()                                  { return m_bLMvdL1Zero;    }
     
    19941834  Void      setReferenced(Bool b)                               { m_bRefenced = b; }
    19951835  Bool      isReferenced()                                      { return m_bRefenced; }
    1996   Void      setPOC              ( Int i )                       { m_iPOC              = i; if(getTLayer()==0) m_prevPOC=i; }
     1836  Bool      isReferenceNalu()                                   { return ((getNalUnitType() <= NAL_UNIT_RESERVED_VCL_R15) && (getNalUnitType()%2 != 0)) || ((getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP) && (getNalUnitType() <= NAL_UNIT_RESERVED_IRAP_VCL23) ); }
     1837  Void      setPOC              ( Int i )                       { m_iPOC              = i; if ((getTLayer()==0) && (isReferenceNalu() && (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RASL_R)&& (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RADL_R))) {m_prevTid0POC=i;} }
    19971838  Void      setNalUnitType      ( NalUnitType e )               { m_eNalUnitType      = e;      }
    19981839  NalUnitType getNalUnitType    () const                        { return m_eNalUnitType;        }
     
    20001841  Bool      getIdrPicFlag       ()                              { return getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP; }
    20011842  Bool      isIRAP              () const                        { return (getNalUnitType() >= 16) && (getNalUnitType() <= 23); } 
    2002   Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic);
     1843  Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic);
    20031844  Void      decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic);
    20041845  Void      setSliceType        ( SliceType e )                 { m_eSliceType        = e;      }
     
    20221863 
    20231864#if H_MV
    2024 #if H_MV5
    20251865  Void      setPocBeforeReset   ( Int i )                       { m_iPOCBeforeReset = i; }
    20261866  Int       getPocBeforeReset   ( )                             { return m_iPOCBeforeReset; }
    2027 #endif
    20281867  Int       getRefLayerId        ( RefPicList e, Int iRefIdx)    { return  m_aiRefLayerIdList[e][iRefIdx]; }
    20291868  Void      setRefLayerId        ( Int i, RefPicList e, Int iRefIdx ) { m_aiRefLayerIdList[e][iRefIdx] = i; }
    2030 #if H_MV5
    20311869  Void      getTempRefPicLists   ( TComList<TComPic*>& rcListPic, std::vector<TComPic*>& refPicSetInterLayer0, std::vector<TComPic*>& refPicSetInterLayer1,                                     
    20321870                                   std::vector<TComPic*> rpsCurrList[2], std::vector<Bool> usedAsLongTerm[2], Int& numPocTotalCurr, Bool checkNumPocTotalCurr = false );
    20331871
    20341872  Void      setRefPicList        ( std::vector<TComPic*> rpsCurrList[2], std::vector<Bool> usedAsLongTerm[2], Int numPocTotalCurr, Bool checkNumPocTotalCurr = false );
    2035 #else
    2036   Void      setRefPicList       ( TComList<TComPic*>& rcListPic, std::vector<TComPic*>& interLayerRefPicSet , Bool checkNumPocTotalCurr = false );
    2037 #endif
    20381873#else
    20391874#if FIX1071
     
    20821917  Void setTLayerInfo( UInt uiTLayer );
    20831918  Void decodingMarking( TComList<TComPic*>& rcListPic, Int iGOPSIze, Int& iMaxRefPicNum );
     1919  Void checkLeadingPictureRestrictions( TComList<TComPic*>& rcListPic );
    20841920  Void applyReferencePictureSet( TComList<TComPic*>& rcListPic, TComReferencePictureSet *RPSList);
    20851921#if H_MV
    2086 #if !H_MV5
    2087   Void createAndApplyIvReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer );
    2088   static Void markIvRefPicsAsShortTerm    ( std::vector<TComPic*> refPicSetInterLayer );
    2089 #else
    20901922  Void createInterLayerReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer0, std::vector<TComPic*>& refPicSetInterLayer1 );
    20911923  static Void markIvRefPicsAsShortTerm    ( std::vector<TComPic*> refPicSetInterLayer0, std::vector<TComPic*> refPicSetInterLayer1 );
    2092 #endif
    20931924  static Void markCurrPic                 ( TComPic* currPic );;
    20941925  static Void markIvRefPicsAsUnused       ( TComPicLists* ivPicLists, std::vector<Int> targetDecLayerIdSet, TComVPS* vps, Int curLayerId, Int curPoc  );
    2095 #if H_MV5
    20961926  Void        printRefPicList();
    2097 #else
    2098   Void        xPrintRefPicList();
    2099 #endif
    21001927#endif
    21011928  Bool isTemporalLayerSwitchingPoint( TComList<TComPic*>& rcListPic );
     
    21842011  Void      setViewId             ( Int viewId )     { m_viewId = viewId;   }
    21852012  Int       getViewId             ()                 { return m_viewId;     }
    2186 #if H_MV5
    21872013  Void      setViewIndex          ( Int viewIndex )  { m_viewIndex = viewIndex;   }
    21882014  Int       getViewIndex          ()                 { return m_viewIndex;     }
    2189 #endif
    21902015#if H_3D
    21912016#if H_3D_TMVP
     
    21932018  Void      setAlterRefIdx          ( RefPicList e, Int i ) { m_aiAlterRefIdx[e]    = i;      }
    21942019  Int       getAlterRefIdx          ( RefPicList e )        { return  m_aiAlterRefIdx[e];     }
    2195 #endif
    2196 #if !H_MV5
    2197   Void      setViewIndex          ( Int viewIndex )  { m_viewIndex = viewIndex;   }
    2198   Int       getViewIndex          ()                 { return m_viewIndex;     }
    21992020#endif
    22002021  Void      setIsDepth            ( Bool isDepth )   { m_isDepth = isDepth; }
     
    22192040// Additional slice header syntax elements
    22202041
    2221 #if H_MV5
    22222042  Void setPocResetFlag( Bool flag ) { m_pocResetFlag = flag; }
    22232043  Bool getPocResetFlag(  ) { return m_pocResetFlag; }
    2224 #endif
    22252044
    22262045Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; }
     
    22362055Int  getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; }
    22372056
    2238 #if H_MV5
    22392057  // Additional variables derived in slice header semantics
    22402058  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     
    22502068  Void     setRefPicSetInterLayer       ( std::vector<TComPic*>* refPicSetInterLayer0, std::vector<TComPic*>* refPicSetInterLayer1);
    22512069  TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId );
    2252 #else
    2253 Void setInterLayerSamplePredOnlyFlag( Bool flag ) { m_interLayerSamplePredOnlyFlag = flag; }
    2254 Bool getInterLayerSamplePredOnlyFlag(  ) { return m_interLayerSamplePredOnlyFlag; }
    2255 
    2256 Void setAltCollocatedIndicationFlag( Bool flag ) { m_altCollocatedIndicationFlag = flag; }
    2257 Bool getAltCollocatedIndicationFlag(  ) { return m_altCollocatedIndicationFlag; }
    2258 
    2259 Void setCollocatedRefLayerIdx( Int  val ) { m_collocatedRefLayerIdx = val; }
    2260 Int  getCollocatedRefLayerIdx(  ) { return m_collocatedRefLayerIdx; }
    2261 
    2262 // Additional variables derived in slice header semantics
    2263 Int  getNumInterLayerRefPicsMinus1Len( ) { return xCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerIdInVps() )); }
    2264 Int  getInterLayerPredLayerIdcLen    ( ) { return xCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerIdInVps() )); }
    2265 
    2266 Int  getNumActiveRefLayerPics( );
    2267 Int  getRefPicLayerId               ( Int i );
    2268 
    2269 Void setActiveMotionPredRefLayers   ( );
    2270 
    2271 Int  getNumActiveMotionPredRefLayers(  )      { return m_numActiveMotionPredRefLayers; }
    2272 Int  getActiveMotionPredRefLayerId  ( Int i ) { return m_activeMotionPredRefLayerId[i]; }
    2273 
    2274 Bool getInterRefEnabledInRPLFlag( );
    2275 
    2276 Void     setRefPicSetInterLayer       ( std::vector<TComPic*>* m_refPicSetInterLayer );
    2277 TComPic* getPicFromRefPicSetInterLayer( Int layerId );
    2278 
    2279 #endif
    22802070#endif
    22812071protected:
     
    22842074TComPic*  xGetLongTermRefPic(TComList<TComPic*>& rcListPic, Int poc, Bool pocHasMsb);
    22852075#if H_MV
    2286 #if !H_MV5
    2287   Int       xCeilLog2( Int val );
    2288 #endif
    22892076  TComPic*  xGetInterLayerRefPic( std::vector<TComPic*>& rcListIlPic, Int layerId ); 
    22902077#endif
     
    23682155  //! activate a SPS from a active parameter sets SEI message
    23692156  //! \returns true, if activation is successful
    2370 #if !H_MV5
    2371   Bool activateSPSWithSEI(Int SPSId);
    2372 
    2373   //! activate a PPS and depending on isIDR parameter also SPS and VPS
    2374   //! \returns true, if activation is successful
    2375   Bool activatePPS(Int ppsId, Bool isIRAP);
    2376 
    2377   TComVPS* getActiveVPS(){ return m_vpsMap.getPS(m_activeVPSId); };
    2378   TComSPS* getActiveSPS(){ return m_spsMap.getPS(m_activeSPSId); };
    2379   TComPPS* getActivePPS(){ return m_ppsMap.getPS(m_activePPSId); };
    2380 
    2381 protected:
    2382  
    2383   ParameterSetMap<TComVPS> m_vpsMap;
    2384   ParameterSetMap<TComSPS> m_spsMap;
    2385   ParameterSetMap<TComPPS> m_ppsMap;
    2386 
    2387   Int m_activeVPSId;
    2388   Int m_activeSPSId;
    2389   Int m_activePPSId;
    2390 #else
    23912157#if H_MV
    23922158  Bool activateSPSWithSEI(Int SPSId, Int layerId );
     
    24262192#endif
    24272193
    2428 #endif
    24292194};
    24302195
Note: See TracChangeset for help on using the changeset viewer.