Changeset 1317 in 3DVCSoftware for branches/HTM-15.0-dev0/source/Lib/TLibCommon/TComSlice.h
- Timestamp:
- 4 Sep 2015, 21:28:58 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-15.0-dev0/source/Lib/TLibCommon/TComSlice.h
r1313 r1317 53 53 class TComTrQuant; 54 54 #if NH_MV 55 class TComDecodedRps; 55 56 class TComPicLists; 56 57 class TComVPS; … … 68 69 69 70 /// Reference Picture Set class 71 72 #if NH_MV 73 class TComStRefPicSet 74 { 75 // This class is currently only used by the decoder. 76 // TBD: Modify encoder to use also it. 77 78 private: 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 103 public: 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 70 181 class TComReferencePictureSet 71 182 { … … 302 413 { 303 414 ProfileTierLevel m_generalPTL; 415 #if !NH_MV 304 416 ProfileTierLevel m_subLayerPTL [MAX_TLAYER-1]; // max. value of max_sub_layers_minus1 is MAX_TLAYER-1 (= 6) 305 417 Bool m_subLayerProfilePresentFlag [MAX_TLAYER-1]; 306 418 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 307 424 308 425 public: … … 804 921 805 922 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; 807 925 }; 808 926 #endif … … 901 1019 Int m_defaultDirectDependencyType; 902 1020 903 #if H_MV_HLS7_GEN904 Int m_directDependencyType [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];905 #endif906 1021 Bool m_vpsVuiPresentFlag; 907 1022 TComVPSVUI m_vpsVUI; 908 #if !H_MV_HLS7_GEN909 1023 Int m_directDependencyType [MAX_NUM_LAYERS] [MAX_NUM_LAYERS]; 910 #endif911 1024 912 1025 // VPS EXTENSION SEMANTICS VARIABLES … … 1119 1232 Void setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val ) { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ] = val; } 1120 1233 Int getLayerSetIdxForOlsMinus1( Int outLayerSetIdx ) const { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; } 1121 #if NH_MV_FIX_TICKET_1051122 1234 Int getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx ) const { return gCeilLog2( getNumLayerSets() - 1 ); } 1123 #else1124 Int getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx ) const { return gCeilLog2( getNumLayerSets() ); }1125 #endif1126 1235 1127 1236 Void setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag ) { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; } … … 1803 1912 1804 1913 TComRPSList m_RPSList; 1914 #if NH_MV 1915 std::vector<TComStRefPicSet> m_stRefPicSets; 1916 #endif 1805 1917 Bool m_bLongTermRefsPresent; 1806 1918 Bool m_TMVPFlagsPresent; … … 1825 1937 UInt m_uiBitsForPOC; 1826 1938 UInt m_numLongTermRefPicSPS; 1939 #if NH_MV 1940 Int m_numShortTermRefPicSets; 1941 #endif 1827 1942 UInt m_ltRefPicPocLsbSps[MAX_NUM_LONG_TERM_REF_PICS]; 1828 1943 Bool m_usedByCurrPicLtSPSFlag[MAX_NUM_LONG_TERM_REF_PICS]; … … 1838 1953 TComScalingList m_scalingList; 1839 1954 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 1840 1959 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; // Really max latency increase plus 1 (value 0 expresses no limit) 1960 #endif 1841 1961 1842 1962 Bool m_useStrongIntraSmoothing; … … 1911 2031 Void setConformanceWindow(Window& conformanceWindow ) { m_conformanceWindow = conformanceWindow; } 1912 2032 2033 #if NH_MV 2034 UInt getNumLongTermRefPicsSps() const { return m_numLongTermRefPicSPS; } 2035 #endif 2036 1913 2037 UInt getNumLongTermRefPicSPS() const { return m_numLongTermRefPicSPS; } 1914 2038 Void setNumLongTermRefPicSPS(UInt val) { m_numLongTermRefPicSPS = val; } … … 1939 2063 Void setBitsForPOC( UInt u ) { m_uiBitsForPOC = u; } 1940 2064 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 1941 2069 Bool getUseAMP() const { return m_useAMP; } 1942 2070 Void setUseAMP( Bool b ) { m_useAMP = b; } … … 1954 2082 const TComRPSList* getRPSList() const { return &m_RPSList; } 1955 2083 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 1956 2091 Bool getLongTermRefsPresent() const { return m_bLongTermRefsPresent; } 1957 2092 Void setLongTermRefsPresent(Bool b) { m_bLongTermRefsPresent=b; } 2093 #endif 1958 2094 Bool getTMVPFlagsPresent() const { return m_TMVPFlagsPresent; } 1959 2095 Void setTMVPFlagsPresent(Bool b) { m_TMVPFlagsPresent=b; } 2096 #if NH_MV 2097 Bool getSpsTemporalMvpEnabledFlag() const { return m_TMVPFlagsPresent; } 2098 #endif 1960 2099 // physical transform 1961 2100 Void setMaxTrSize( UInt u ) { m_uiMaxTrSize = u; } … … 1988 2127 Void setPCMFilterDisableFlag( Bool bValue ) { m_bPCMFilterDisableFlag = bValue; } 1989 2128 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 1991 2133 Bool getScalingListFlag() const { return m_scalingListEnabledFlag; } 1992 2134 Void setScalingListFlag( Bool b ) { m_scalingListEnabledFlag = b; } … … 1998 2140 UInt getMaxDecPicBuffering(UInt tlayer) const { return m_uiMaxDecPicBuffering[tlayer]; } 1999 2141 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 2000 2148 UInt getMaxLatencyIncrease(UInt tlayer) const { return m_uiMaxLatencyIncrease[tlayer]; } 2001 2149 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 2002 2155 2003 2156 Void setUseStrongIntraSmoothing(Bool bVal) { m_useStrongIntraSmoothing = bVal; } … … 2133 2286 Void setRefPicSetIdxL1(UInt idx, UInt refPicSetIdx) { assert(idx<REF_PIC_LIST_NUM_IDX); m_RefPicSetIdxL1[idx] = refPicSetIdx; } 2134 2287 #if NH_MV 2135 // Why not a listIdx for all members, would avoid code duplication??2288 2136 2289 Void setRefPicSetIdxL(UInt li, UInt idx, UInt refPicSetIdx) {( li==0 ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ) = refPicSetIdx; } 2137 2290 UInt getRefPicSetIdxL(UInt li, UInt idx ) { return ( li == 0 ) ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ; } 2138 2291 Void setRefPicListModificationFlagL(UInt li, Bool flag) { ( li==0 ? m_refPicListModificationFlagL0 : m_refPicListModificationFlagL1 ) = flag; } 2139 2292 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 2140 2303 #endif 2141 2304 }; … … 2470 2633 private: 2471 2634 // Bitstream writing 2635 #if NH_MV 2636 Bool m_firstSliceSegmentInPicFlag; 2637 #endif 2472 2638 Bool m_saoEnabledFlag[MAX_NUM_CHANNEL_TYPE]; 2473 2639 Int m_iPPSId; ///< picture parameter set ID … … 2475 2641 #if NH_MV 2476 2642 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; 2477 2654 #endif 2478 2655 Int m_iPOC; … … 2510 2687 Int m_aiRefPOCList [NUM_REF_PIC_LIST_01][MAX_NUM_REF+1]; 2511 2688 #if NH_MV 2512 Int m_aiRefLayerIdList[2][MAX_NUM_REF+1];2689 Int m_aiRefLayerIdList[2][MAX_NUM_REF+1]; 2513 2690 #endif 2514 2691 Bool m_bIsUsedAsLongTerm[NUM_REF_PIC_LIST_01][MAX_NUM_REF+1]; … … 2570 2747 SliceType m_encCABACTableIdx; // Used to transmit table selection across slices. 2571 2748 #if NH_MV 2572 Bool m_availableForTMVPRefFlag; 2573 #endif 2574 2575 #if NH_MV 2749 2576 2750 std::vector<TComPic*>* m_refPicSetInterLayer0; 2577 2751 std::vector<TComPic*>* m_refPicSetInterLayer1; … … 2584 2758 2585 2759 // Additional slice header syntax elements 2586 #if !H_MV_HLS7_GEN2587 2760 Bool m_pocResetFlag; 2588 #endif 2761 2589 2762 Bool m_crossLayerBlaFlag; 2590 2763 Bool m_discardableFlag; … … 2596 2769 Int m_pocResetIdc; 2597 2770 Int m_pocResetPeriodId; 2771 2772 Bool m_hasPocResetPeriodIdPresent; 2773 DecodingProcess m_decodingProcess; 2774 DecodingProcess m_decProcPocAndRps; 2598 2775 Bool m_fullPocResetFlag; 2599 2776 Int m_pocLsbVal; 2600 Bool m_pocMsb ValPresentFlag;2601 Int m_pocMsb Val;2777 Bool m_pocMsbCycleValPresentFlag; 2778 Int m_pocMsbCycleVal; 2602 2779 Bool m_pocMsbValRequiredFlag; 2603 2780 … … 2676 2853 Void setSlicePicOrderCntLsb( Int i ) { m_slicePicOrderCntLsb = i; } 2677 2854 Int getSlicePicOrderCntLsb( ) const { return m_slicePicOrderCntLsb; } 2855 2856 Bool getFirstSliceSegementInPicFlag() const { return m_firstSliceSegmentInPicFlag; } 2857 Void setFirstSliceSegementInPicFlag(Bool val) { m_firstSliceSegmentInPicFlag = val; } 2678 2858 #endif 2679 2859 Bool getPicOutputFlag() const { return m_PicOutputFlag; } … … 2734 2914 Void setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx ) { m_pBaseViewRefPicList[iViewIdx] = pListPic; } 2735 2915 Void setARPStepNum( TComPicLists*ivPicLists ); 2916 Void setPocsInCurrRPSs( ); 2917 2736 2918 TComPic* getBaseViewRefPic ( UInt uiPOC , Int iViewIdx ) { return xGetRefPic( *m_pBaseViewRefPicList[iViewIdx], uiPOC ); } 2737 2919 UInt getARPStepNum( ) { return m_nARPStepNum; } … … 2746 2928 Bool getMvdL1ZeroFlag() const { return m_bLMvdL1Zero; } 2747 2929 Int getNumRpsCurrTempList() const; 2930 #if NH_MV 2931 Int getNumPicTotalCurr() const; 2932 #endif 2748 2933 Int getList1IdxToList0Idx( Int list1Idx ) const { return m_list1IdxToList0Idx[list1Idx]; } 2749 2934 Void setReferenced(Bool b) { m_bRefenced = b; } … … 2753 2938 Void setNalUnitType( NalUnitType e ) { m_eNalUnitType = e; } 2754 2939 NalUnitType getNalUnitType() const { return m_eNalUnitType; } 2940 #if NH_MV 2941 std::string getNalUnitTypeString( ) { return NALU_TYPE_STR[ getNalUnitType() ]; }; 2942 #endif 2755 2943 Bool getRapPicFlag() const; 2756 2944 Bool getIdrPicFlag() const { return getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP; } 2757 2945 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 2758 2975 Void checkCRA(const TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic); 2759 2976 Void decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic, const bool bEfficientFieldIRAPEnabled); … … 2774 2991 Void setRefPOC( Int i, RefPicList e, Int iRefIdx ) { m_aiRefPOCList[e][iRefIdx] = i; } 2775 2992 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 2776 2997 Void setPic( TComPic* p ) { m_pcPic = p; } 2777 2998 Void setDepth( Int iDepth ) { m_iDepth = iDepth; } … … 2827 3048 Void setTLayer( UInt uiTLayer ) { m_uiTLayer = uiTLayer; } 2828 3049 #if NH_MV 2829 Int getTemporalId ( ){ return (Int) m_uiTLayer; }3050 Int getTemporalId( ) const { return (Int) m_uiTLayer; } 2830 3051 #endif 2831 3052 … … 2836 3057 #if NH_MV 2837 3058 Void createInterLayerReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer0, std::vector<TComPic*>& refPicSetInterLayer1 ); 3059 Void f834decProcForRefPicListConst(); 3060 Void cl834DecProcForRefPicListConst(); 3061 2838 3062 static Void markIvRefPicsAsShortTerm ( std::vector<TComPic*> refPicSetInterLayer0, std::vector<TComPic*> refPicSetInterLayer1 ); 2839 3063 static Void markCurrPic ( TComPic* currPic ); … … 2852 3076 Void setNoRaslOutputFlag( Bool val ) { m_noRaslOutputFlag = val; } 2853 3077 Bool getNoRaslOutputFlag() const { return m_noRaslOutputFlag; } 3078 2854 3079 2855 3080 Void setHandleCraAsBlaFlag( Bool val ) { m_handleCraAsBlaFlag = val; } … … 2915 3140 Bool getLFCrossSliceBoundaryFlag() { return m_LFCrossSliceBoundaryFlag; } 2916 3141 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 2917 3181 Void setEnableTMVPFlag( Bool b ) { m_enableTMVPFlag = b; } 2918 3182 Bool getEnableTMVPFlag() { return m_enableTMVPFlag; } … … 2922 3186 2923 3187 #if NH_MV 2924 Void setAvailableForTMVPRefFlag( Bool b ) { m_availableForTMVPRefFlag = b; }2925 Bool getAvailableForTMVPRefFlag() { return m_availableForTMVPRefFlag; }2926 2927 3188 Void setLayerId ( Int layerId ) { m_layerId = layerId; } 2928 3189 Int getLayerId () const { return m_layerId; } … … 2932 3193 Void setViewIndex ( Int viewIndex ) { m_viewIndex = viewIndex; } 2933 3194 Int getViewIndex () const { return m_viewIndex; } 3195 3196 Void setDecodingProcess ( DecodingProcess decProc ) { m_decodingProcess = decProc; } 3197 3198 2934 3199 #if NH_3D 2935 3200 #if NH_3D_TMVP … … 2986 3251 Void checkCrossLayerBlaFlag ( ) const ; 2987 3252 2988 #if !H_MV_HLS7_GEN3253 #if NH_MV 2989 3254 Void setPocResetFlag( Bool flag ) { m_pocResetFlag = flag; } 2990 3255 Bool getPocResetFlag( ) const { return m_pocResetFlag; } … … 3010 3275 Void checkPocResetIdc( ) const { assert( !(getVPS()->getPocLsbNotPresentFlag( getLayerIdInVps() ) ) || !(getSlicePicOrderCntLsb() > 0 ) || !( getPocResetIdc() == 2) ); } 3011 3276 3277 3012 3278 Void setPocResetPeriodId( Int val ) { m_pocResetPeriodId = val; } 3013 3279 Int getPocResetPeriodId( ) const { return m_pocResetPeriodId; } … … 3020 3286 Void checkPocLsbVal( ) const { assert( !(getVPS()->getPocLsbNotPresentFlag( getLayerIdInVps() ) ) || !getFullPocResetFlag() || ( getPocLsbVal() == 0 ) ); } 3021 3287 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 3022 3303 Void setPocMsbValPresentFlag( Bool flag ) { m_pocMsbValPresentFlag = flag; } 3023 3304 Bool getPocMsbValPresentFlag( ) const { return m_pocMsbValPresentFlag; } … … 3025 3306 Void setPocMsbVal( Int val ) { m_pocMsbVal = val; } 3026 3307 Int getPocMsbVal( ) const { return m_pocMsbVal; } 3308 #endif 3309 3027 3310 3028 3311 Bool getCraOrBlaPicFlag() const { return ( getCraPicFlag() || getBlaPicFlag() ); } 3029 3312 Bool getPocMsbValRequiredFlag() const { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) ); } 3030 3313 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 3032 3315 3033 3316 Bool getBlaPicFlag() const … … 3069 3352 Void deriveInCmpPredAndCpAvailFlag( ); 3070 3353 Void init3dToolParameters(); 3071 Void checkInCompPredRefLayers(); ;3354 Void checkInCompPredRefLayers(); 3072 3355 3073 3356 Bool getIvMvPredFlag ( ) { return m_ivMvPredFlag ; }; … … 3095 3378 #endif 3096 3379 #endif 3380 #if NH_MV 3381 TComPic* getRefPicSetInterLayer( Int setIdc, Int i ) const; 3382 #endif 3383 3097 3384 // Inference 3385 #if NH_MV 3386 Bool inferPocMsbCycleValPresentFlag(); 3387 #else 3098 3388 Bool inferPocMsbValPresentFlag(); 3389 #endif 3099 3390 #endif 3100 3391 protected:
Note: See TracChangeset for help on using the changeset viewer.