Ignore:
Timestamp:
4 Sep 2015, 21:28:58 (9 years ago)
Author:
tech
Message:

Clean-ups. HLS.

File:
1 edited

Legend:

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

    r1313 r1317  
    5353class TComTrQuant;
    5454#if NH_MV
     55class TComDecodedRps;
    5556class TComPicLists;
    5657class TComVPS;
     
    6869
    6970/// Reference Picture Set class
     71
     72#if NH_MV
     73class TComStRefPicSet
     74{
     75  // This class is currently only used by the decoder.
     76  // TBD: Modify encoder to use also it.
     77
     78private:
     79
     80  // Syntax elements:
     81
     82  Bool m_interRefPicSetPredictionFlag;
     83  Int  m_deltaIdxMinus1;
     84  Bool m_deltaRpsSign;
     85  Int  m_absDeltaRpsMinus1;
     86  Bool m_usedByCurrPicFlag  [ MAX_NUM_PICS_RPS ];
     87  Bool m_useDeltaFlag       [ MAX_NUM_PICS_RPS ];
     88  Int  m_numNegativePics;   
     89  Int  m_numPositivePics;   
     90  Int  m_deltaPocS0Minus1   [ MAX_NUM_PICS_RPS ];
     91  Bool m_usedByCurrPicS0Flag[ MAX_NUM_PICS_RPS ];
     92  Int  m_deltaPocS1Minus1   [ MAX_NUM_PICS_RPS ];
     93  Bool m_usedByCurrPicS1Flag[ MAX_NUM_PICS_RPS ];
     94
     95  // Semantic variables:
     96  Int m_deltaPocS0Var       [ MAX_NUM_PICS_RPS ];
     97  Int m_deltaPocS1Var       [ MAX_NUM_PICS_RPS ];
     98  Int m_usedByCurrPicS0Var  [ MAX_NUM_PICS_RPS ];
     99  Int m_usedByCurrPicS1Var  [ MAX_NUM_PICS_RPS ];
     100  Int m_numNegativePicsVar  ;
     101  Int m_numPositivePicsVar  ;
     102
     103public:
     104
     105  TComStRefPicSet( )
     106  {
     107    // Set default inheritance values:
     108    setInterRefPicSetPredictionFlag( false );
     109    setDeltaIdxMinus1( 0 );
     110    for (Int j = 0; j < MAX_NUM_PICS_RPS; j++)
     111    {
     112      setUseDeltaFlag( j, true  );
     113    }   
     114  }
     115
     116  // Syntax elements:
     117  Void  setInterRefPicSetPredictionFlag( Bool flag )           { m_interRefPicSetPredictionFlag = flag; }
     118  Bool  getInterRefPicSetPredictionFlag(  ) const              { return m_interRefPicSetPredictionFlag; }
     119
     120  Void  setDeltaIdxMinus1( Int  val )                          { m_deltaIdxMinus1 = val;                }
     121  Int   getDeltaIdxMinus1(  ) const                            { return m_deltaIdxMinus1;               }
     122
     123  Void  setDeltaRpsSign( Bool flag )                           { m_deltaRpsSign = flag;                 }
     124  Bool  getDeltaRpsSign(  ) const                              { return m_deltaRpsSign;                 }
     125
     126  Void  setAbsDeltaRpsMinus1( Int  val )                       { m_absDeltaRpsMinus1 = val;             }
     127  Int   getAbsDeltaRpsMinus1(  ) const                         { return m_absDeltaRpsMinus1;            }
     128
     129  Void  setUsedByCurrPicFlag( Int j, Bool flag )               { m_usedByCurrPicFlag[j] = flag;         }
     130  Bool  getUsedByCurrPicFlag( Int j ) const                    { return m_usedByCurrPicFlag[j];         }
     131
     132  Void  setUseDeltaFlag( Int j, Bool flag )                    { m_useDeltaFlag[j] = flag;              }
     133  Bool  getUseDeltaFlag( Int j ) const                         { return m_useDeltaFlag[j];              }
     134
     135  Void  setNumNegativePics( Int  val )                         { m_numNegativePics = val;               }
     136  Int   getNumNegativePics(  ) const                           { return m_numNegativePics;              }
     137
     138  Void  setNumPositivePics( Int  val )                         { m_numPositivePics = val;               }
     139  Int   getNumPositivePics(  ) const                           { return m_numPositivePics;              }
     140
     141  Void  setDeltaPocS0Minus1( Int i, Int  val )                 { m_deltaPocS0Minus1[i] = val;           }
     142  Int   getDeltaPocS0Minus1( Int i ) const                     { return m_deltaPocS0Minus1[i];          }
     143
     144  Void  setUsedByCurrPicS0Flag( Int i, Bool flag )             { m_usedByCurrPicS0Flag[i] = flag;       }
     145  Bool  getUsedByCurrPicS0Flag( Int i ) const                  { return m_usedByCurrPicS0Flag[i];       }
     146
     147  Void  setDeltaPocS1Minus1( Int i, Int  val )                 { m_deltaPocS1Minus1[i] = val;           }
     148  Int   getDeltaPocS1Minus1( Int i ) const                     { return m_deltaPocS1Minus1[i];          }
     149
     150  Void  setUsedByCurrPicS1Flag( Int i, Bool flag )             { m_usedByCurrPicS1Flag[i] = flag;       }
     151  Bool  getUsedByCurrPicS1Flag( Int i ) const                  { return m_usedByCurrPicS1Flag[i];       }
     152
     153  // Semantics variables:
     154  Int   getRefRpsIdx(Int stRpsIdx ) const                      { return ( stRpsIdx - (getDeltaIdxMinus1() +  1) ); }
     155  Int   getDeltaRps()  const                                   { return (  ( 1 - 2 * getDeltaRpsSign() ) * ( getAbsDeltaRpsMinus1() + 1 ) ); }
     156  Int   getNumDeltaPocs() const                                { return ( getNumNegativePicsVar() + getNumPositivePicsVar());    }
     157
     158  Void  setNumNegativePicsVar( Int  val )                      { m_numNegativePicsVar = val;            }
     159  Int   getNumNegativePicsVar(  ) const                        { return m_numNegativePicsVar;           }
     160
     161  Void  setNumPositivePicsVar( Int  val )                      { m_numPositivePicsVar = val;            }
     162  Int   getNumPositivePicsVar(  ) const                        { return m_numPositivePicsVar;           }
     163
     164  Void  setDeltaPocS0Var( Int i, Int  val )                    { m_deltaPocS0Var[i] = val;              }
     165  Int   getDeltaPocS0Var( Int i ) const                        { return m_deltaPocS0Var[i];             }
     166
     167  Void  setUsedByCurrPicS0Var( Int i, Bool flag )              { m_usedByCurrPicS0Var[i] = flag;       }
     168  Bool  getUsedByCurrPicS0Var( Int i ) const                   { return m_usedByCurrPicS0Var[i];       }
     169
     170  Void  setDeltaPocS1Var( Int i, Int  val )                    { m_deltaPocS1Var[i] = val;             }
     171  Int   getDeltaPocS1Var( Int i ) const                        { return m_deltaPocS1Var[i];            }
     172
     173  Void  setUsedByCurrPicS1Var( Int i, Bool flag )              { m_usedByCurrPicS1Var[i] = flag;       }
     174  Bool  getUsedByCurrPicS1Var( Int i ) const                   { return m_usedByCurrPicS1Var[i];       }
     175
     176  Void  inferRps( Int stRpsIdx, TComSPS* sps, Bool encoder );
     177};
     178
     179#endif
     180
    70181class TComReferencePictureSet
    71182{
     
    302413{
    303414  ProfileTierLevel m_generalPTL;
     415#if !NH_MV
    304416  ProfileTierLevel m_subLayerPTL    [MAX_TLAYER-1];      // max. value of max_sub_layers_minus1 is MAX_TLAYER-1 (= 6)
    305417  Bool m_subLayerProfilePresentFlag [MAX_TLAYER-1];
    306418  Bool m_subLayerLevelPresentFlag   [MAX_TLAYER-1];
     419#else
     420  ProfileTierLevel m_subLayerPTL    [MAX_TLAYER];        // However, highest index is 6, so we need one more.
     421  Bool m_subLayerProfilePresentFlag [MAX_TLAYER];
     422  Bool m_subLayerLevelPresentFlag   [MAX_TLAYER];
     423#endif
    307424
    308425public:
     
    804921
    805922  Void          setMaxVpsLatencyIncreasePlus1( Int i, Int j, Int  val )              { m_maxVpsLatencyIncreasePlus1[i][j] = val;                  }
    806   Int           getMaxVpsLatencyIncreasePlus1( Int i, Int j ) const                  { return m_maxVpsLatencyIncreasePlus1[i][j];                 }
     923  Int           getMaxVpsLatencyIncreasePlus1( Int i, Int j ) const                  { return m_maxVpsLatencyIncreasePlus1[i][j];                 }
     924  Int           getVpsMaxLatencyPictures     ( Int i, Int j ) const;
    807925};
    808926#endif
     
    9011019  Int         m_defaultDirectDependencyType;
    9021020 
    903 #if H_MV_HLS7_GEN
    904   Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
    905 #endif
    9061021  Bool        m_vpsVuiPresentFlag;
    9071022  TComVPSVUI  m_vpsVUI;
    908 #if !H_MV_HLS7_GEN
    9091023  Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
    910 #endif
    9111024
    9121025  // VPS EXTENSION SEMANTICS VARIABLES
     
    11191232  Void    setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val )             { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]  = val; }
    11201233  Int     getLayerSetIdxForOlsMinus1( Int outLayerSetIdx )           const      { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; }
    1121 #if NH_MV_FIX_TICKET_105
    11221234  Int     getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx )        const      { return gCeilLog2( getNumLayerSets() - 1 ); }
    1123 #else
    1124   Int     getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx )        const      { return gCeilLog2( getNumLayerSets() ); }
    1125 #endif
    11261235
    11271236  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )            { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
     
    18031912
    18041913  TComRPSList      m_RPSList;
     1914#if NH_MV
     1915  std::vector<TComStRefPicSet> m_stRefPicSets;
     1916#endif
    18051917  Bool             m_bLongTermRefsPresent;
    18061918  Bool             m_TMVPFlagsPresent;
     
    18251937  UInt             m_uiBitsForPOC;
    18261938  UInt             m_numLongTermRefPicSPS;
     1939#if NH_MV
     1940  Int              m_numShortTermRefPicSets;
     1941#endif
    18271942  UInt             m_ltRefPicPocLsbSps[MAX_NUM_LONG_TERM_REF_PICS];
    18281943  Bool             m_usedByCurrPicLtSPSFlag[MAX_NUM_LONG_TERM_REF_PICS];
     
    18381953  TComScalingList  m_scalingList;
    18391954  UInt             m_uiMaxDecPicBuffering[MAX_TLAYER];
     1955#if NH_MV
     1956  UInt             m_uiSpsMaxLatencyIncreasePlus1[MAX_TLAYER]; 
     1957  // Calling a member m_uiMaxLatencyIncrease although it is m_uiMaxLatencyIncreasePlus1 is really bad style. 
     1958#else
    18401959  UInt             m_uiMaxLatencyIncrease[MAX_TLAYER];  // Really max latency increase plus 1 (value 0 expresses no limit)
     1960#endif
    18411961
    18421962  Bool             m_useStrongIntraSmoothing;
     
    19112031  Void                   setConformanceWindow(Window& conformanceWindow )                                { m_conformanceWindow = conformanceWindow;                             }
    19122032
     2033#if NH_MV
     2034  UInt                   getNumLongTermRefPicsSps() const                                                 { return m_numLongTermRefPicSPS;                                       }
     2035#endif
     2036 
    19132037  UInt                   getNumLongTermRefPicSPS() const                                                 { return m_numLongTermRefPicSPS;                                       }
    19142038  Void                   setNumLongTermRefPicSPS(UInt val)                                               { m_numLongTermRefPicSPS = val;                                        }
     
    19392063  Void                   setBitsForPOC( UInt u )                                                         { m_uiBitsForPOC = u;                                                  }
    19402064  UInt                   getBitsForPOC() const                                                           { return m_uiBitsForPOC;                                               }
     2065#if NH_MV
     2066  UInt                   getMaxPicOrderCntLsb() const                                                    { return (1 << ( getLog2MaxPicOrderCntLsbMinus4() + 4) );  }
     2067  Int                    getLog2MaxPicOrderCntLsbMinus4() const                                          { return (getBitsForPOC() - 4);  }
     2068#endif
    19412069  Bool                   getUseAMP() const                                                               { return m_useAMP;                                                     }
    19422070  Void                   setUseAMP( Bool b )                                                             { m_useAMP = b;                                                        }
     
    19542082  const TComRPSList*     getRPSList() const                                                              { return &m_RPSList;                                                   }
    19552083  TComRPSList*           getRPSList()                                                                    { return &m_RPSList;                                                   }
     2084#if NH_MV
     2085  Void                   initStRefPicSets( )                                                             { m_stRefPicSets.resize( getNumShortTermRefPicSets() );                }
     2086  TComStRefPicSet*       getStRefPicSet( Int i )                                                         { return &(m_stRefPicSets[i]);                                         }
     2087  const TComStRefPicSet* getStRefPicSet( Int i ) const                                                   { return &(m_stRefPicSets[i]);                                         }
     2088  Bool                   getLongTermRefPicsPresentFlag() const                                           { return m_bLongTermRefsPresent;                                       }
     2089  Void                   setLongTermRefPicsPresentFlag(Bool b)                                           { m_bLongTermRefsPresent=b;                                            }
     2090#else
    19562091  Bool                   getLongTermRefsPresent() const                                                  { return m_bLongTermRefsPresent;                                       }
    19572092  Void                   setLongTermRefsPresent(Bool b)                                                  { m_bLongTermRefsPresent=b;                                            }
     2093#endif
    19582094  Bool                   getTMVPFlagsPresent() const                                                     { return m_TMVPFlagsPresent;                                           }
    19592095  Void                   setTMVPFlagsPresent(Bool b)                                                     { m_TMVPFlagsPresent=b;                                                }
     2096#if NH_MV
     2097  Bool                   getSpsTemporalMvpEnabledFlag() const                                            { return m_TMVPFlagsPresent;                                           }
     2098#endif
    19602099  // physical transform
    19612100  Void                   setMaxTrSize( UInt u )                                                          { m_uiMaxTrSize = u;                                                   }
     
    19882127  Void                   setPCMFilterDisableFlag( Bool bValue )                                          { m_bPCMFilterDisableFlag = bValue;                                    }
    19892128  Bool                   getPCMFilterDisableFlag() const                                                 { return m_bPCMFilterDisableFlag;                                      }
    1990 
     2129#if NH_MV
     2130  Void                  setNumShortTermRefPicSets( Int  val )                                            { m_numShortTermRefPicSets = val; }
     2131  Int                   getNumShortTermRefPicSets(  )const                                               { return m_numShortTermRefPicSets; }
     2132#endif
    19912133  Bool                   getScalingListFlag() const                                                      { return m_scalingListEnabledFlag;                                     }
    19922134  Void                   setScalingListFlag( Bool b )                                                    { m_scalingListEnabledFlag  = b;                                       }
     
    19982140  UInt                   getMaxDecPicBuffering(UInt tlayer) const                                        { return m_uiMaxDecPicBuffering[tlayer];                               }
    19992141  Void                   setMaxDecPicBuffering( UInt ui, UInt tlayer )                                   { assert(tlayer < MAX_TLAYER); m_uiMaxDecPicBuffering[tlayer] = ui;    }
     2142#if NH_MV
     2143  UInt                   getSpsMaxDecPicBufferingMinus1(UInt tlayer) const                               { return m_uiMaxDecPicBuffering[tlayer] -1 ;                           }
     2144  UInt                   getSpsMaxLatencyIncreasePlus1(UInt tlayer) const                                { return m_uiSpsMaxLatencyIncreasePlus1[tlayer];                       }
     2145  Void                   setSpsMaxLatencyIncreasePlus1( UInt ui , UInt tlayer)                           { m_uiSpsMaxLatencyIncreasePlus1[tlayer] = ui;                         }
     2146  Int                    getSpsMaxLatencyPictures( Int i )  const                                       { return ( getSpsMaxNumReorderPics(i) + getSpsMaxLatencyIncreasePlus1(i)-1); }
     2147#else
    20002148  UInt                   getMaxLatencyIncrease(UInt tlayer) const                                        { return m_uiMaxLatencyIncrease[tlayer];                               }
    20012149  Void                   setMaxLatencyIncrease( UInt ui , UInt tlayer)                                   { m_uiMaxLatencyIncrease[tlayer] = ui;                                 }
     2150#endif
     2151
     2152#if NH_MV
     2153  Int                    getSpsMaxNumReorderPics(Int i ) const                                           { return getNumReorderPics( i );                                       }
     2154#endif
    20022155
    20032156  Void                   setUseStrongIntraSmoothing(Bool bVal)                                           { m_useStrongIntraSmoothing = bVal;                                    }
     
    21332286  Void    setRefPicSetIdxL1(UInt idx, UInt refPicSetIdx) { assert(idx<REF_PIC_LIST_NUM_IDX); m_RefPicSetIdxL1[idx] = refPicSetIdx; }
    21342287#if NH_MV
    2135   // Why not a listIdx for all members, would avoid code duplication??
     2288 
    21362289  Void    setRefPicSetIdxL(UInt li, UInt idx, UInt refPicSetIdx) {( li==0 ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ) = refPicSetIdx;              }
    21372290  UInt    getRefPicSetIdxL(UInt li, UInt idx )                   { return ( li == 0 ) ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ;                  }
    21382291  Void    setRefPicListModificationFlagL(UInt li, Bool flag)     { ( li==0  ? m_refPicListModificationFlagL0 : m_refPicListModificationFlagL1 ) = flag;  }
    21392292  Bool    getRefPicListModificationFlagL(UInt li )               { return ( li== 0) ? m_refPicListModificationFlagL0 : m_refPicListModificationFlagL1;   }
     2293
     2294  Int     getListEntryL0( Int i) const                           { assert(i<REF_PIC_LIST_NUM_IDX); return m_RefPicSetIdxL0[i];         }
     2295  Int     getListEntryL1( Int i) const                           { assert(i<REF_PIC_LIST_NUM_IDX); return m_RefPicSetIdxL1[i];         }
     2296
     2297  Int     getListEntryLXLen( Int numPicTotalCur ) const          { return gCeilLog2( numPicTotalCur );                                 } 
     2298
     2299  Void    setListEntryL0( Int i, Int  val )                      { m_RefPicSetIdxL0[i] = val;                                          }
     2300  Void    setListEntryL1( Int i, Int  val )                      { m_RefPicSetIdxL1[i] = val;                                          }
     2301
     2302
    21402303#endif
    21412304};
     
    24702633private:
    24712634  //  Bitstream writing
     2635#if NH_MV
     2636  Bool                       m_firstSliceSegmentInPicFlag;
     2637#endif
    24722638  Bool                       m_saoEnabledFlag[MAX_NUM_CHANNEL_TYPE];
    24732639  Int                        m_iPPSId;               ///< picture parameter set ID
     
    24752641#if NH_MV
    24762642  Int                        m_slicePicOrderCntLsb;   
     2643  Bool                       m_shortTermRefPicSetSpsFlag;
     2644  Int                        m_shortTermRefPicSetIdx;
     2645  Int                        m_numLongTermSps;
     2646  Int                        m_numLongTermPics;
     2647  Int                        m_ltIdxSps                     [MAX_NUM_PICS_RPS];
     2648  Int                        m_pocLsbLt                     [MAX_NUM_PICS_RPS];
     2649  Bool                       m_usedByCurrPicLtFlag          [MAX_NUM_PICS_RPS];
     2650  Bool                       m_deltaPocMsbPresentFlag       [MAX_NUM_PICS_RPS];
     2651  Int                        m_deltaPocMsbCycleLt           [MAX_NUM_PICS_RPS];
     2652  Bool                       m_sliceTemporalMvpEnabledFlag;
     2653  TComStRefPicSet            m_stRefPicSet;
    24772654#endif 
    24782655  Int                        m_iPOC;
     
    25102687  Int                        m_aiRefPOCList  [NUM_REF_PIC_LIST_01][MAX_NUM_REF+1];
    25112688#if NH_MV
    2512   Int         m_aiRefLayerIdList[2][MAX_NUM_REF+1];
     2689  Int                        m_aiRefLayerIdList[2][MAX_NUM_REF+1];
    25132690#endif
    25142691  Bool                       m_bIsUsedAsLongTerm[NUM_REF_PIC_LIST_01][MAX_NUM_REF+1];
     
    25702747  SliceType                  m_encCABACTableIdx;           // Used to transmit table selection across slices.
    25712748#if NH_MV
    2572   Bool       m_availableForTMVPRefFlag;
    2573 #endif
    2574 
    2575 #if NH_MV
     2749
    25762750  std::vector<TComPic*>* m_refPicSetInterLayer0;
    25772751  std::vector<TComPic*>* m_refPicSetInterLayer1;
     
    25842758
    25852759// Additional slice header syntax elements
    2586 #if !H_MV_HLS7_GEN
    25872760  Bool       m_pocResetFlag;
    2588 #endif
     2761
    25892762  Bool       m_crossLayerBlaFlag;
    25902763  Bool       m_discardableFlag;
     
    25962769  Int        m_pocResetIdc;
    25972770  Int        m_pocResetPeriodId;
     2771
     2772  Bool       m_hasPocResetPeriodIdPresent;
     2773  DecodingProcess m_decodingProcess;
     2774  DecodingProcess m_decProcPocAndRps;
    25982775  Bool       m_fullPocResetFlag;
    25992776  Int        m_pocLsbVal;
    2600   Bool       m_pocMsbValPresentFlag;
    2601   Int        m_pocMsbVal;
     2777  Bool       m_pocMsbCycleValPresentFlag;
     2778  Int        m_pocMsbCycleVal;
    26022779  Bool       m_pocMsbValRequiredFlag;
    26032780
     
    26762853  Void                        setSlicePicOrderCntLsb( Int i )                        { m_slicePicOrderCntLsb = i;                                    }
    26772854  Int                         getSlicePicOrderCntLsb(  )  const                      { return m_slicePicOrderCntLsb;                                 }
     2855
     2856  Bool                        getFirstSliceSegementInPicFlag() const                 {  return m_firstSliceSegmentInPicFlag;                         }
     2857  Void                        setFirstSliceSegementInPicFlag(Bool val)               { m_firstSliceSegmentInPicFlag = val;                           }
    26782858#endif
    26792859  Bool                        getPicOutputFlag() const                               { return m_PicOutputFlag;                                       }
     
    27342914  Void                        setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx )      { m_pBaseViewRefPicList[iViewIdx] = pListPic; }                 
    27352915  Void                        setARPStepNum( TComPicLists*ivPicLists );                                                                             
     2916  Void                        setPocsInCurrRPSs( );
     2917
    27362918  TComPic*                    getBaseViewRefPic    ( UInt uiPOC , Int iViewIdx )     { return xGetRefPic( *m_pBaseViewRefPicList[iViewIdx], uiPOC ); }
    27372919  UInt                        getARPStepNum( )                                       { return m_nARPStepNum;                                         } 
     
    27462928  Bool                        getMvdL1ZeroFlag() const                               { return m_bLMvdL1Zero;                                         }
    27472929  Int                         getNumRpsCurrTempList() const;
     2930#if NH_MV
     2931  Int                         getNumPicTotalCurr() const;
     2932#endif
    27482933  Int                         getList1IdxToList0Idx( Int list1Idx ) const            { return m_list1IdxToList0Idx[list1Idx];                        }
    27492934  Void                        setReferenced(Bool b)                                  { m_bRefenced = b;                                              }
     
    27532938  Void                        setNalUnitType( NalUnitType e )                        { m_eNalUnitType      = e;                                      }
    27542939  NalUnitType                 getNalUnitType() const                                 { return m_eNalUnitType;                                        }
     2940#if NH_MV
     2941  std::string                 getNalUnitTypeString(    )                             { return NALU_TYPE_STR[ getNalUnitType() ]; };
     2942#endif
    27552943  Bool                        getRapPicFlag() const;
    27562944  Bool                        getIdrPicFlag() const                                  { return getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP; }
    27572945  Bool                        isIRAP() const                                         { return (getNalUnitType() >= 16) && (getNalUnitType() <= 23);  }
     2946#if NH_MV 
     2947  Bool                        isBla() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP   )  || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP ) || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL ); }
     2948  Bool                        isIdr() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL )  || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP ); }
     2949  Bool                        isCra() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA ); }
     2950
     2951  Bool                        isSlnr() const                                         { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_TRAIL_N  ||   
     2952                                                                                                getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_N    ||   
     2953                                                                                                getNalUnitType() == NAL_UNIT_CODED_SLICE_STSA_N   ||   
     2954                                                                                                getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_N   ||   
     2955                                                                                                getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N   ||   
     2956                                                                                                getNalUnitType() == NAL_UNIT_RESERVED_VCL_N10     ||
     2957                                                                                                getNalUnitType() == NAL_UNIT_RESERVED_VCL_N12     ||           
     2958                                                                                                getNalUnitType() == NAL_UNIT_RESERVED_VCL_N14     );  }
     2959 
     2960  Bool                        isRasl() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_R )  || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N ); }
     2961  Bool                        isRadl() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_R )  || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_N ); }
     2962  Bool                        isStsa() const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_STSA_R )  || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_STSA_N ); }
     2963  Bool                        isTsa()  const                                          { return ( getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_R )   || ( getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_N ); }
     2964
     2965  Bool                        decProcClause8() const                                  { return ( m_decodingProcess == CLAUSE_8  ); }   
     2966  Bool                        decProcAnnexF()  const                                  { return ( decProcAnnexG()  || decProcAnnexH() || decProcAnnexI() ) ; }
     2967  Bool                        decProcAnnexG()  const                                  { return ( m_decodingProcess == ANNEX_G || decProcAnnexI()  ); }   
     2968  Bool                        decProcAnnexH()  const                                  { return ( m_decodingProcess == ANNEX_H  ); }   
     2969  Bool                        decProcAnnexI()  const                                  { return ( m_decodingProcess == ANNEX_I  ); }   
     2970  Int                         getCurrRpsIdx() const                                   { return ( getShortTermRefPicSetSpsFlag() ? getShortTermRefPicSetIdx() : getSPS()->getNumShortTermRefPicSets() ) ;}
     2971
     2972#endif
     2973
     2974
    27582975  Void                        checkCRA(const TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic);
    27592976  Void                        decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic, const bool bEfficientFieldIRAPEnabled);
     
    27742991  Void                        setRefPOC( Int i, RefPicList e, Int iRefIdx )          { m_aiRefPOCList[e][iRefIdx] = i;                               }
    27752992  Void                        setNumRefIdx( RefPicList e, Int i )                    { m_aiNumRefIdx[e]    = i;                                      }
     2993#if NH_MV
     2994  Int                         getNumRefIdxL0ActiveMinus1() const                     { return ( getNumRefIdx(REF_PIC_LIST_0) -1);                    }
     2995  Int                         getNumRefIdxL1ActiveMinus1() const                     { return ( getNumRefIdx(REF_PIC_LIST_1) -1);                    }
     2996#endif
    27762997  Void                        setPic( TComPic* p )                                   { m_pcPic             = p;                                      }
    27772998  Void                        setDepth( Int iDepth )                                 { m_iDepth            = iDepth;                                 }
     
    28273048  Void                        setTLayer( UInt uiTLayer )                             { m_uiTLayer = uiTLayer;                                        }
    28283049#if NH_MV
    2829   Int                         getTemporalId          ( )                             { return (Int) m_uiTLayer;                                      }
     3050  Int                         getTemporalId( ) const                                 { return (Int) m_uiTLayer;                                      }
    28303051#endif
    28313052
     
    28363057#if NH_MV
    28373058  Void                        createInterLayerReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer0, std::vector<TComPic*>& refPicSetInterLayer1 );
     3059  Void                        f834decProcForRefPicListConst();
     3060  Void                        cl834DecProcForRefPicListConst();
     3061
    28383062  static Void                 markIvRefPicsAsShortTerm    ( std::vector<TComPic*> refPicSetInterLayer0, std::vector<TComPic*> refPicSetInterLayer1 );
    28393063  static Void                 markCurrPic                 ( TComPic* currPic );
     
    28523076  Void                        setNoRaslOutputFlag( Bool val )                        { m_noRaslOutputFlag = val;                                     }
    28533077  Bool                        getNoRaslOutputFlag() const                            { return m_noRaslOutputFlag;                                    }
     3078
    28543079
    28553080  Void                        setHandleCraAsBlaFlag( Bool val )                      { m_handleCraAsBlaFlag = val;                                   }
     
    29153140  Bool                        getLFCrossSliceBoundaryFlag()                          { return m_LFCrossSliceBoundaryFlag;                            }
    29163141
     3142#if NH_MV
     3143  Void                        setShortTermRefPicSetSpsFlag( Bool flag )              { m_shortTermRefPicSetSpsFlag = flag;                           }
     3144  Bool                        getShortTermRefPicSetSpsFlag(  ) const                 { return m_shortTermRefPicSetSpsFlag;                           }
     3145
     3146  Int                         getShortTermRefPicSetIdxLen() const                    { return gCeilLog2( getSPS()->getNumShortTermRefPicSets() );    }
     3147  Void                        setShortTermRefPicSetIdx( Int  val )                   { m_shortTermRefPicSetIdx = val;                                }
     3148  Int                         getShortTermRefPicSetIdx(  ) const                     { return m_shortTermRefPicSetIdx;                               }
     3149 
     3150  Void                        setNumLongTermSps( Int  val )                          { m_numLongTermSps = val;                                       }
     3151  Int                         getNumLongTermSps(  ) const                            { return m_numLongTermSps;                                      }
     3152
     3153  Void                        setNumLongTermPics( Int  val )                         { m_numLongTermPics = val;                                      }
     3154  Int                         getNumLongTermPics(  ) const                           { return m_numLongTermPics;                                     }
     3155 
     3156  Int                         getLtIdxSpsLen() const                                 { return gCeilLog2( getSPS()->getNumLongTermRefPicsSps() );     }
     3157  Void                        setLtIdxSps( Int i, Int  val )                         { m_ltIdxSps[i] = val;                                          }
     3158  Int                         getLtIdxSps( Int i ) const                             { return m_ltIdxSps[i];                                         }
     3159
     3160  Int                         getPocLsbLtLen() const                                 { return (getSPS()->getLog2MaxPicOrderCntLsbMinus4()+ 4);       }
     3161  Void                        setPocLsbLt( Int i, Int  val )                         { m_pocLsbLt[i] = val;                                          }
     3162  Int                         getPocLsbLt( Int i ) const                             { return m_pocLsbLt[i];                                         }
     3163
     3164  Void                        setUsedByCurrPicLtFlag( Int i, Bool flag )             { m_usedByCurrPicLtFlag[i] = flag;                              }
     3165  Bool                        getUsedByCurrPicLtFlag( Int i ) const                  { return m_usedByCurrPicLtFlag[i];                              }
     3166
     3167  Void                        setDeltaPocMsbPresentFlag( Int i, Bool flag )          { m_deltaPocMsbPresentFlag[i] = flag;                           }
     3168  Bool                        getDeltaPocMsbPresentFlag( Int i ) const               { return m_deltaPocMsbPresentFlag[i];                           }
     3169
     3170  Void                        setDeltaPocMsbCycleLt( Int i, Int  val )               { m_deltaPocMsbCycleLt[i] = val;                                }
     3171  Int                         getDeltaPocMsbCycleLt( Int i ) const                   { return m_deltaPocMsbCycleLt[i];                               }
     3172
     3173  Void                        setSliceTemporalMvpEnabledFlag( Bool flag )            { m_enableTMVPFlag = flag;                         }
     3174  Bool                        getSliceTemporalMvpEnabledFlag(  ) const               { return m_enableTMVPFlag;                         }
     3175
     3176  TComStRefPicSet*            getLocalStRps( )                                       { return &m_stRefPicSet; };
     3177  const TComStRefPicSet*      getStRps( Int stRpsIdx ) const                         { return ( (stRpsIdx == getSPS()->getNumShortTermRefPicSets()) ? &m_stRefPicSet : getSPS()->getStRefPicSet( stRpsIdx ) ); };
     3178
     3179#endif
     3180
    29173181  Void                        setEnableTMVPFlag( Bool   b )                          { m_enableTMVPFlag = b;                                         }
    29183182  Bool                        getEnableTMVPFlag()                                    { return m_enableTMVPFlag;                                      }
     
    29223186
    29233187#if NH_MV
    2924   Void                        setAvailableForTMVPRefFlag( Bool   b )                 { m_availableForTMVPRefFlag = b;                                }
    2925   Bool                        getAvailableForTMVPRefFlag()                           { return m_availableForTMVPRefFlag;                             }
    2926 
    29273188  Void                        setLayerId     ( Int layerId )                         { m_layerId      = layerId;                                     }
    29283189  Int                         getLayerId     ()                 const                { return m_layerId;                                             }
     
    29323193  Void                        setViewIndex   ( Int viewIndex )                       { m_viewIndex = viewIndex;                                      }
    29333194  Int                         getViewIndex   ()                 const                { return m_viewIndex;                                           }
     3195
     3196  Void                        setDecodingProcess ( DecodingProcess decProc )         { m_decodingProcess = decProc;                                  }
     3197
     3198
    29343199#if NH_3D
    29353200#if NH_3D_TMVP
     
    29863251  Void                        checkCrossLayerBlaFlag ( ) const ;
    29873252
    2988 #if !H_MV_HLS7_GEN
     3253#if NH_MV
    29893254  Void                        setPocResetFlag( Bool flag )                           { m_pocResetFlag = flag;                                        }
    29903255  Bool                        getPocResetFlag(  ) const                              { return m_pocResetFlag;                                        }
     
    30103275  Void                        checkPocResetIdc( ) const                              { assert( !(getVPS()->getPocLsbNotPresentFlag( getLayerIdInVps() ) )  || !(getSlicePicOrderCntLsb() > 0 ) || !( getPocResetIdc() == 2) ); }
    30113276
     3277 
    30123278  Void                        setPocResetPeriodId( Int  val )                        { m_pocResetPeriodId = val;                                     }
    30133279  Int                         getPocResetPeriodId(  ) const                          { return m_pocResetPeriodId;                                    }
     
    30203286  Void                        checkPocLsbVal( ) const                                { assert( !(getVPS()->getPocLsbNotPresentFlag( getLayerIdInVps() ) )  || !getFullPocResetFlag() || ( getPocLsbVal() == 0 ) ); }
    30213287
     3288#if NH_MV
     3289  Void                        setHasPocResetPeriodIdPresent( Bool  val )              { m_hasPocResetPeriodIdPresent = val;                                }
     3290  Bool                        getHasPocResetPeriodIdPresent(  ) const                { return m_hasPocResetPeriodIdPresent;                               }
     3291
     3292  Void                        setPocMsbCycleValPresentFlag( Bool flag )              { m_pocMsbCycleValPresentFlag = flag;                                }
     3293  Bool                        getPocMsbCycleValPresentFlag(  )          const        { return m_pocMsbCycleValPresentFlag;                                }
     3294
     3295  Void                        setPocMsbCycleVal( Int  val )                          { m_pocMsbCycleVal = val;                                            }
     3296  Int                         getPocMsbCycleVal(  )         const                    { return m_pocMsbCycleVal;                                           }
     3297 
     3298  Int                         getPocLsbLtVar(Int i);
     3299  Bool                        getUsedByCurrPicLtVar(Int i) const;
     3300  Int                         getDeltaPocMsbCycleLtVar( Int i ) const;
     3301
     3302#else
    30223303  Void                        setPocMsbValPresentFlag( Bool flag )                   { m_pocMsbValPresentFlag = flag;                                }
    30233304  Bool                        getPocMsbValPresentFlag(  )          const             { return m_pocMsbValPresentFlag;                                }
     
    30253306  Void                        setPocMsbVal( Int  val )                               { m_pocMsbVal = val;                                            }
    30263307  Int                         getPocMsbVal(  )         const                         { return m_pocMsbVal;                                           }
     3308#endif
     3309
    30273310
    30283311  Bool                        getCraOrBlaPicFlag()       const                       { return ( getCraPicFlag() || getBlaPicFlag() );                }
    30293312  Bool                        getPocMsbValRequiredFlag() const                       { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) );  }
    30303313
    3031   UInt                        getPocLsbValLen() const                                { return getSPS()->getBitsForPOC();                             }; //log2_max_pic_order_cnt_lsb_minus4 + 4
     3314  UInt                        getPocLsbValLen() const                                { return getSPS()->getBitsForPOC();                             }; //log2_max_pic_order_cnt_lsb_minus4 + 4 
    30323315
    30333316  Bool getBlaPicFlag() const
     
    30693352  Void                        deriveInCmpPredAndCpAvailFlag( );
    30703353  Void                        init3dToolParameters();
    3071   Void                        checkInCompPredRefLayers();;
     3354  Void                        checkInCompPredRefLayers();
    30723355
    30733356  Bool                        getIvMvPredFlag           ( )                          { return m_ivMvPredFlag           ;                             };
     
    30953378#endif
    30963379#endif
     3380#if NH_MV
     3381 TComPic*                     getRefPicSetInterLayer( Int setIdc, Int i ) const;
     3382#endif
     3383
    30973384  // Inference
     3385#if NH_MV
     3386  Bool                        inferPocMsbCycleValPresentFlag();
     3387#else
    30983388  Bool                        inferPocMsbValPresentFlag();
     3389#endif
    30993390#endif
    31003391protected:
Note: See TracChangeset for help on using the changeset viewer.