Changeset 1412 in 3DVCSoftware for branches/HTM-16.2-dev/source/Lib/TLibCommon/TComSlice.h
- Timestamp:
- 12 Apr 2018, 11:12:21 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-16.2-dev/source/Lib/TLibCommon/TComSlice.h
r1405 r1412 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 6, ITU/ISO/IEC6 * Copyright (c) 2010-2017, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 1315 1315 1316 1316 Bool getViewCompLayerPresentFlag (Int i, Bool d ) const { return m_viewCompLayerPresentFlag[ getVoiInVps(i) ][d]; } 1317 BoolgetViewCompLayerId (Int i, Bool d ) const { return m_viewCompLayerId [ getVoiInVps(i) ][d]; }1317 Int getViewCompLayerId (Int i, Bool d ) const { return m_viewCompLayerId [ getVoiInVps(i) ][d]; } 1318 1318 #endif 1319 1319 Bool getDependencyFlag( Int i, Int j ) const { return m_dependencyFlag[i][j]; } … … 1352 1352 1353 1353 Bool isOutputLayer( Int outLayerSetIdx, Int layerIdInNuh ) const; 1354 Bool isIndependendNonBaseLayer ( Int layerIdInNuh ) const { return (layerIdInNuh > 0) && getNumRefLayers( layerIdInNuh ) == 0 ; }; 1355 #if NH_3D 1356 Bool isFirstDepthLayer ( Int layerIdInNuh ) const; 1357 #endif 1358 1354 1359 Void deriveLayerSetLayerIdList(); 1355 1360 1356 1361 Int olsIdxToLsIdx( Int i ) const { return ( i < getNumLayerSets() ) ? i : getLayerSetIdxForOlsMinus1( i ) + 1 ; }; 1362 1357 1363 Void initTargetLayerIdLists ( ); 1358 1364 Void deriveTargetLayerIdList ( Int i ); 1365 1359 1366 std::vector<Int> getTargetDecLayerIdList( Int targetDecLayerSetIdx ) const { return m_targetDecLayerIdLists[targetDecLayerSetIdx]; }; 1360 1367 std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx ) const { return m_targetOptLayerIdLists[targetOptLayerSetIdx]; }; … … 1377 1384 // helpers 1378 1385 Void printPTL() const; 1386 Void printRepFormat() const; 1379 1387 Void printLayerDependencies() const; 1380 1388 Void printScalabilityId() const; 1381 1389 Void printLayerSets() const; 1382 1390 1391 IntAry1d getLayersOfVpsPtl( Int idxOfVpsPtl ) const; 1383 1392 1384 1393 /// VPS EXTENSION 2 SYNTAX ELEMENTS … … 1427 1436 #endif 1428 1437 1429 template <typename T, typename S, typename U> Void xPrintArray( const TChar* name, Int numElemDim1, U idx, S numElemDim2, T vec, Bool printNumber, Bool printIdx = true ) const1438 template <typename T, typename S, typename U> Void xPrintArray( const TChar* name, Int numElemDim1, U idx, S numElemDim2, T vec, Bool printNumber, Bool printIdx = true, Int elemDist = 3 ) const 1430 1439 { 1431 1440 std::cout << std::endl; 1432 1441 for (Int j = 0; j < numElemDim1; j++ ) 1433 1442 { 1434 std::cout << std::right << std::setw( 27) << name;1443 std::cout << std::right << std::setw(40) << name; 1435 1444 if (printIdx) 1436 1445 { … … 1454 1463 for (Int i = 0; i < numElemDim2[j]; i++) 1455 1464 { 1456 std::cout << std::right << std::setw( 3) << vec[j][i];1465 std::cout << std::right << std::setw(elemDist) << vec[j][i]; 1457 1466 } 1458 1467 std::cout << std::endl; … … 1460 1469 } 1461 1470 1462 template <typename T> Void xPrintArray( const char* name, Int numElem, T vec, Bool printNumber ) const1471 template <typename T> Void xPrintArray( const char* name, Int numElem, T vec, Bool printNumber, Int elemDist = 3 ) const 1463 1472 { 1464 1473 std::vector<Int> numElemDim2(1, numElem); 1465 1474 std::vector<T> vec2 (1, vec ); 1466 1475 std::vector<Int> idx2 (0); 1467 xPrintArray( name, 1, idx2, numElemDim2, vec2, printNumber, false );1476 xPrintArray( name, 1, idx2, numElemDim2, vec2, printNumber, false, elemDist ); 1468 1477 } 1469 1478 1470 1479 #endif 1480 1471 1481 }; 1472 1482 1473 #if NH_3D _DLT1483 #if NH_3D 1474 1484 class TComDLT 1475 1485 { … … 1491 1501 1492 1502 public: 1493 TComDLT( );1503 TComDLT( ); 1494 1504 ~TComDLT(); 1495 1505 … … 1811 1821 for (Int d = 0; d < 2; d++) 1812 1822 { 1813 m_ivDiMcEnabledFlag [d] = false;1814 m_ivMvScalEnabledFlag [d] = false;1815 m_log2IvmcSubPbSizeMinus3 [d] = 3;1816 m_ivResPredEnabledFlag [d] = false;1817 m_depthRefEnabledFlag [d] = false;1818 m_vspMcEnabledFlag [d] = false;1819 m_dbbpEnabledFlag [d] = false;1820 m_texMcEnabledFlag [d] = false;1821 m_log2TexmcSubPbSizeMinus3 [d] = 3;1822 m_intraContourEnabledFlag [d] = false;1823 m_ivDiMcEnabledFlag [d] = false; 1824 m_ivMvScalEnabledFlag [d] = false; 1825 m_log2IvmcSubPbSizeMinus3 [d] = 3; 1826 m_ivResPredEnabledFlag [d] = false; 1827 m_depthRefEnabledFlag [d] = false; 1828 m_vspMcEnabledFlag [d] = false; 1829 m_dbbpEnabledFlag [d] = false; 1830 m_texMcEnabledFlag [d] = false; 1831 m_log2TexmcSubPbSizeMinus3 [d] = 3; 1832 m_intraContourEnabledFlag [d] = false; 1823 1833 m_intraDcOnlyWedgeEnabledFlag [d] = false; 1824 m_cqtCuPartPredEnabledFlag 1834 m_cqtCuPartPredEnabledFlag [d] = false; 1825 1835 m_interDcOnlyEnabledFlag [d] = false; 1826 m_skipIntraEnabledFlag [d] = false;1836 m_skipIntraEnabledFlag [d] = false; 1827 1837 } 1828 1838 } … … 1917 1927 #endif 1918 1928 Bool m_bLongTermRefsPresent; 1919 Bool m_ TMVPFlagsPresent;1929 Bool m_SPSTemporalMVPEnabledFlag; 1920 1930 Int m_numReorderPics[MAX_TLAYER]; 1921 1931 … … 1974 1984 UInt m_forceDecodeBitDepth; // 0 = do not force the decoder's bit depth, other = force the decoder's bit depth to this value (best effort decoding) 1975 1985 #endif 1976 #if NH_MV 1986 #if NH_MV 1977 1987 TComVPS* m_pcVPS; 1978 1988 // SPS … … 2001 2011 #if NH_MV 2002 2012 Int m_layerId; 2013 TComRepFormat* m_inferredRepFormat; 2003 2014 #endif 2004 2015 … … 2025 2036 UInt getPicWidthInLumaSamples() const { return m_picWidthInLumaSamples; } 2026 2037 Void setPicHeightInLumaSamples( UInt u ) { m_picHeightInLumaSamples = u; } 2038 2027 2039 UInt getPicHeightInLumaSamples() const { return m_picHeightInLumaSamples; } 2028 2040 … … 2092 2104 Void setLongTermRefsPresent(Bool b) { m_bLongTermRefsPresent=b; } 2093 2105 #endif 2094 Bool get TMVPFlagsPresent() const { return m_TMVPFlagsPresent;}2095 Void set TMVPFlagsPresent(Bool b) { m_TMVPFlagsPresent=b;}2096 #if NH_MV 2097 Bool getSpsTemporalMvpEnabledFlag() const { return m_ TMVPFlagsPresent; }2106 Bool getSPSTemporalMVPEnabledFlag() const { return m_SPSTemporalMVPEnabledFlag; } 2107 Void setSPSTemporalMVPEnabledFlag(Bool b) { m_SPSTemporalMVPEnabledFlag=b; } 2108 #if NH_MV 2109 Bool getSpsTemporalMvpEnabledFlag() const { return m_SPSTemporalMVPEnabledFlag; } 2098 2110 #endif 2099 2111 // physical transform … … 2103 2115 // Bit-depth 2104 2116 Int getBitDepth(ChannelType type) const { return m_bitDepths.recon[type]; } 2117 2105 2118 Void setBitDepth(ChannelType type, Int u ) { m_bitDepths.recon[type] = u; } 2106 2119 #if O0043_BEST_EFFORT_DECODING … … 2219 2232 // Inference 2220 2233 2221 Void inferRepFormat ( TComVPS* vps, Int layerIdCurr, Bool encoder);2234 Void inferRepFormat ( TComVPS* vps, Int layerIdCurr, Bool alreadySet ); 2222 2235 Void inferScalingList( const TComSPS* spsSrc ); 2223 2236 … … 2358 2371 Bool m_useWeightedBiPred; //!< Use of Weighting Bi-Prediction (B_SLICE) 2359 2372 Bool m_OutputFlagPresentFlag; //!< Indicates the presence of output_flag in slice header 2360 Bool m_TransquantBypassEnable Flag;//!< Indicates presence of cu_transquant_bypass_flag in CUs.2373 Bool m_TransquantBypassEnabledFlag; //!< Indicates presence of cu_transquant_bypass_flag in CUs. 2361 2374 Bool m_useTransformSkip; 2362 2375 Bool m_dependentSliceSegmentsEnabledFlag; //!< Indicates the presence of dependent slices … … 2371 2384 std::vector<Int> m_tileRowHeight; 2372 2385 2373 Bool m_sign HideFlag;2386 Bool m_signDataHidingEnabledFlag; 2374 2387 2375 2388 Bool m_cabacInitPresentFlag; … … 2379 2392 Bool m_deblockingFilterControlPresentFlag; 2380 2393 Bool m_deblockingFilterOverrideEnabledFlag; 2381 Bool m_p icDisableDeblockingFilterFlag;2394 Bool m_ppsDeblockingFilterDisabledFlag; 2382 2395 Int m_deblockingFilterBetaOffsetDiv2; //< beta offset for deblocking filter 2383 2396 Int m_deblockingFilterTcOffsetDiv2; //< tc offset for deblocking filter … … 2403 2416 #endif 2404 2417 2405 #if NH_3D _DLT2418 #if NH_3D 2406 2419 TComDLT m_cDLT; 2407 2420 #endif … … 2428 2441 UInt getMaxCuDQPDepth() const { return m_uiMaxCuDQPDepth; } 2429 2442 2430 #if NH_3D _DLT2443 #if NH_3D 2431 2444 Void setDLT( TComDLT cDLT ) { m_cDLT = cDLT; } 2432 2445 const TComDLT* getDLT() const { return &m_cDLT; } … … 2467 2480 Void setOutputFlagPresentFlag( Bool b ) { m_OutputFlagPresentFlag = b; } 2468 2481 Bool getOutputFlagPresentFlag() const { return m_OutputFlagPresentFlag; } 2469 Void setTransquantBypassEnable Flag( Bool b ) { m_TransquantBypassEnableFlag = b;}2470 Bool getTransquantBypassEnable Flag() const { return m_TransquantBypassEnableFlag;}2482 Void setTransquantBypassEnabledFlag( Bool b ) { m_TransquantBypassEnabledFlag = b; } 2483 Bool getTransquantBypassEnabledFlag() const { return m_TransquantBypassEnabledFlag; } 2471 2484 2472 2485 Bool getUseTransformSkip() const { return m_useTransformSkip; } … … 2493 2506 UInt getTileRowHeight(UInt rowIdx) const { return m_tileRowHeight[rowIdx]; } 2494 2507 2495 Void setSign HideFlag( Bool signHideFlag ) { m_signHideFlag = signHideFlag;}2496 Bool getSign HideFlag() const { return m_signHideFlag;}2508 Void setSignDataHidingEnabledFlag( Bool b ) { m_signDataHidingEnabledFlag = b; } 2509 Bool getSignDataHidingEnabledFlag() const { return m_signDataHidingEnabledFlag; } 2497 2510 2498 2511 Void setCabacInitPresentFlag( Bool flag ) { m_cabacInitPresentFlag = flag; } … … 2502 2515 Void setDeblockingFilterOverrideEnabledFlag( Bool val ) { m_deblockingFilterOverrideEnabledFlag = val; } 2503 2516 Bool getDeblockingFilterOverrideEnabledFlag() const { return m_deblockingFilterOverrideEnabledFlag; } 2504 Void setP icDisableDeblockingFilterFlag(Bool val) { m_picDisableDeblockingFilterFlag = val;} //!< set offset for deblocking filter disabled2505 Bool getP icDisableDeblockingFilterFlag() const { return m_picDisableDeblockingFilterFlag;} //!< get offset for deblocking filter disabled2517 Void setPPSDeblockingFilterDisabledFlag(Bool val) { m_ppsDeblockingFilterDisabledFlag = val; } //!< set offset for deblocking filter disabled 2518 Bool getPPSDeblockingFilterDisabledFlag() const { return m_ppsDeblockingFilterDisabledFlag; } //!< get offset for deblocking filter disabled 2506 2519 Void setDeblockingFilterBetaOffsetDiv2(Int val) { m_deblockingFilterBetaOffsetDiv2 = val; } //!< set beta offset for deblocking filter 2507 2520 Int getDeblockingFilterBetaOffsetDiv2() const { return m_deblockingFilterBetaOffsetDiv2; } //!< get beta offset for deblocking filter … … 2726 2739 Int m_pocMsbCycleVal; 2727 2740 Bool m_pocMsbValRequiredFlag; 2741 #endif 2728 2742 2729 2743 #if NH_3D 2730 2744 IntAry2d m_aaiCodedScale ; 2731 2745 IntAry2d m_aaiCodedOffset; 2732 #endif 2733 #if NH_3D_TMVP 2746 2734 2747 Int m_aiAlterRefIdx [2]; 2735 #endif2736 #if NH_3D_ARP2737 2748 Bool m_arpRefPicAvailable[2][MAX_NUM_LAYERS]; 2738 2749 TComList<TComPic*> * m_pBaseViewRefPicList[MAX_NUM_LAYERS]; 2739 2750 UInt m_nARPStepNum; 2740 2751 Int m_aiFirstTRefIdx [2]; 2741 #endif2742 #if NH_3D2743 2752 std::vector<Int> m_pocsInCurrRPSs; 2744 #endif2745 #if NH_3D_IC2746 2753 Bool m_bApplyIC; 2747 2754 Bool m_icSkipParseFlag; 2748 #endif2749 #if NH_3D2750 2755 std::vector<Int> m_inCmpRefViewIdcs; 2751 2756 Bool m_inCmpPredAvailFlag; … … 2753 2758 Bool m_cpAvailableFlag; 2754 2759 Int m_numViews; 2755 #endif2756 #if NH_3D_QTL2757 2760 TComPic* m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 2758 #endif2759 #if NH_3D2760 2761 Int** m_depthToDisparityB; 2761 2762 Int** m_depthToDisparityF; 2762 2763 Bool m_bApplyDIS; 2763 #endif2764 #endif2765 #if NH_3D_IC2766 2764 Int* m_aICEnableCandidate; 2767 2765 Int* m_aICEnableNum; 2768 #endif 2769 #if NH_3D 2766 2770 2767 Int m_iDefaultRefViewIdx; 2771 2768 Bool m_bDefaultRefViewIdxAvailableFlag; … … 2844 2841 Int getNumRefIdx( RefPicList e ) const { return m_aiNumRefIdx[e]; } 2845 2842 TComPic* getPic() { return m_pcPic; } 2843 const TComPic* getPic() const { return m_pcPic; } 2846 2844 TComPic* getRefPic( RefPicList e, Int iRefIdx) { return m_apcRefPicList[e][iRefIdx]; } 2847 2845 const TComPic* getRefPic( RefPicList e, Int iRefIdx) const { return m_apcRefPicList[e][iRefIdx]; } … … 2855 2853 Int getNumCurCmpLIds( ) const { return (Int) m_inCmpRefViewIdcs.size(); } 2856 2854 TComPic* getIvPic( Bool depthFlag, Int viewIndex) const { return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2857 #endif2858 #if NH_3D_QTL2859 2855 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2860 2856 2861 #endif2862 #if NH_3D_IC2863 2857 Void setApplyIC( Bool b ) { m_bApplyIC = b; } 2864 2858 Bool getApplyIC() { return m_bApplyIC; } … … 2867 2861 Void setIcSkipParseFlag( Bool b ) { m_icSkipParseFlag = b; } 2868 2862 Bool getIcSkipParseFlag() { return m_icSkipParseFlag; } 2869 #endif 2870 #if NH_3D_ARP 2863 2871 2864 Void setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx ) { m_pBaseViewRefPicList[iViewIdx] = pListPic; } 2872 2865 Void setARPStepNum( TComPicLists*ivPicLists ); … … 3155 3148 3156 3149 #if NH_3D 3157 #if NH_3D_TMVP3158 3150 Void generateAlterRefforTMVP (); 3159 3151 Void setAlterRefIdx ( RefPicList e, Int i ) { m_aiAlterRefIdx[e] = i; } 3160 3152 Int getAlterRefIdx ( RefPicList e ) { return m_aiAlterRefIdx[e]; } 3161 #endif3162 #if NH_3D_ARP3163 3153 Int getFirstTRefIdx ( RefPicList e ) { return m_aiFirstTRefIdx[e]; } 3164 3154 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } … … 3166 3156 Bool getArpRefPicAvailable ( RefPicList e, Int viewIdx) { return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, false, 0 )]; } 3167 3157 IntAry1d getPocsInCurrRPSs() { return m_pocsInCurrRPSs; } 3168 #endif3169 3158 #endif 3170 3159 #if NH_3D_VSO || NH_3D … … 3192 3181 Int getCpInvOff( Int j ) { return m_aaiCodedOffset[1][j]; } 3193 3182 3194 #endif3195 #if NH_3D_QTL3196 3183 Void setIvPicLists( TComPicLists* m_ivPicLists ); 3197 #endif 3198 #if NH_3D 3184 3199 3185 Void setDepthToDisparityLUTs(); 3200 3186 3201 3187 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ getVPS()->getVoiInVps( refViewIdx) ];} 3202 3188 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ getVPS()->getVoiInVps( refViewIdx) ];} 3203 #if NH_3D_IC 3189 3204 3190 Void setICEnableCandidate( Int* icEnableCandidate) { m_aICEnableCandidate = icEnableCandidate; } 3205 3191 Void setICEnableNum( Int* icEnableNum) { m_aICEnableNum = icEnableNum; } … … 3209 3195 Int getICEnableCandidate( Int layer) { return m_aICEnableCandidate[ layer ]; } 3210 3196 Int getICEnableNum( Int layer) { return m_aICEnableNum[ layer ]; } 3211 #endif3212 3197 #endif 3213 3198 // Additional slice header syntax elements … … 3335 3320 Int getMpiSubPbSize ( ) { return m_mpiSubPbSize ; }; 3336 3321 Int getSubPbSize ( ) { return m_subPbSize ; }; 3337 #if NH_3D_NBDV 3322 3338 3323 Int getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; } 3339 3324 Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; } … … 3343 3328 Void setDefaultRefView( ); 3344 3329 #endif 3345 #endif3346 3330 #if NH_MV 3347 3331 TComPic* getRefPicSetInterLayer( Int setIdc, Int i ) const; … … 3364 3348 3365 3349 3366 Void calculateParameterSetChangedFlag(Bool &bChanged, const std::vector<UChar> *pOldData, const std::vector<UChar> &newData);3350 Void calculateParameterSetChangedFlag(Bool &bChanged, const std::vector<UChar> *pOldData, const std::vector<UChar> *pNewData); 3367 3351 3368 3352 template <class T> class ParameterSetMap … … 3390 3374 } 3391 3375 3392 Void storePS(Int psId, T *ps, const std::vector<UChar> &naluData) 3376 T *allocatePS(const Int psId) 3377 { 3378 assert ( psId < m_maxId ); 3379 if ( m_paramsetMap.find(psId) == m_paramsetMap.end() ) 3380 { 3381 m_paramsetMap[psId].bChanged = true; 3382 m_paramsetMap[psId].pNaluData=0; 3383 m_paramsetMap[psId].parameterSet = new T; 3384 setID(m_paramsetMap[psId].parameterSet, psId); 3385 } 3386 return m_paramsetMap[psId].parameterSet; 3387 } 3388 3389 Void storePS(Int psId, T *ps, const std::vector<UChar> *pNaluData) 3393 3390 { 3394 3391 assert ( psId < m_maxId ); … … 3398 3395 3399 3396 // work out changed flag 3400 calculateParameterSetChangedFlag(mapData.bChanged, mapData.pNaluData, naluData);3397 calculateParameterSetChangedFlag(mapData.bChanged, mapData.pNaluData, pNaluData); 3401 3398 delete m_paramsetMap[psId].pNaluData; 3402 3399 delete m_paramsetMap[psId].parameterSet; … … 3409 3406 m_paramsetMap[psId].bChanged = false; 3410 3407 } 3408 if (pNaluData != 0) 3409 { 3411 3410 m_paramsetMap[psId].pNaluData=new std::vector<UChar>; 3412 *(m_paramsetMap[psId].pNaluData) = naluData; 3411 *(m_paramsetMap[psId].pNaluData) = *pNaluData; 3412 } 3413 else 3414 { 3415 m_paramsetMap[psId].pNaluData=0; 3416 } 3417 } 3418 3419 Void setChangedFlag(Int psId, Bool bChanged=true) 3420 { 3421 if ( m_paramsetMap.find(psId) != m_paramsetMap.end() ) 3422 { 3423 m_paramsetMap[psId].bChanged=bChanged; 3424 } 3413 3425 } 3414 3426 … … 3451 3463 std::map<Int,MapData<T> > m_paramsetMap; 3452 3464 Int m_maxId; 3465 3466 static Void setID(T* parameterSet, const Int psId); 3453 3467 }; 3454 3468 … … 3460 3474 3461 3475 //! store sequence parameter set and take ownership of it 3462 Void storeVPS(TComVPS *vps, const std::vector<UChar> &naluData) { m_vpsMap.storePS( vps->getVPSId(), vps, naluData); };3476 Void storeVPS(TComVPS *vps, const std::vector<UChar> &naluData) { m_vpsMap.storePS( vps->getVPSId(), vps, &naluData); }; 3463 3477 //! get pointer to existing video parameter set 3464 3478 TComVPS* getVPS(Int vpsId) { return m_vpsMap.getPS(vpsId); }; … … 3468 3482 3469 3483 //! store sequence parameter set and take ownership of it 3470 Void storeSPS(TComSPS *sps, const std::vector<UChar> &naluData) { m_spsMap.storePS( sps->getSPSId(), sps, naluData); };3484 Void storeSPS(TComSPS *sps, const std::vector<UChar> &naluData) { m_spsMap.storePS( sps->getSPSId(), sps, &naluData); }; 3471 3485 //! get pointer to existing sequence parameter set 3472 3486 TComSPS* getSPS(Int spsId) { return m_spsMap.getPS(spsId); }; … … 3476 3490 3477 3491 //! store picture parameter set and take ownership of it 3478 Void storePPS(TComPPS *pps, const std::vector<UChar> &naluData) { m_ppsMap.storePS( pps->getPPSId(), pps, naluData); };3492 Void storePPS(TComPPS *pps, const std::vector<UChar> &naluData) { m_ppsMap.storePS( pps->getPPSId(), pps, &naluData); }; 3479 3493 //! get pointer to existing picture parameter set 3480 3494 TComPPS* getPPS(Int ppsId) { return m_ppsMap.getPS(ppsId); }; … … 3502 3516 3503 3517 #if NH_MV 3504 const TComSPS* getActiveSPS( Int layer )const { return m_sps Map.getPS(m_activeSPSId[layer]); };3518 const TComSPS* getActiveSPS( Int layer )const { return m_spsActiveForLayer.getPS(layer); }; 3505 3519 #else 3506 3520 const TComSPS* getActiveSPS()const { return m_spsMap.getPS(m_activeSPSId); }; 3507 3521 #endif 3508 3522 3523 #if NH_MV 3524 Void setSpsActiveForLayer( Int layer, TComSPS*& ps ) 3525 { 3526 TComSPS* psCopy = m_spsActiveForLayer.allocatePS( layer ); 3527 (*psCopy) = (*ps); 3528 ps = psCopy; 3529 } 3530 #endif 3509 3531 protected: 3510 3532 ParameterSetMap<TComVPS> m_vpsMap; 3511 3533 ParameterSetMap<TComSPS> m_spsMap; 3512 3534 ParameterSetMap<TComPPS> m_ppsMap; 3535 3536 #if NH_MV 3537 // As several SPS syntax elements be might inferred depending for the current layer, copies are stored for each layer 3538 ParameterSetMap<TComSPS> m_spsActiveForLayer; 3539 #endif 3513 3540 3514 3541 Int m_activeVPSId; // -1 for nothing active
Note: See TracChangeset for help on using the changeset viewer.