Changeset 1148 in SHVCSoftware for branches/SHM-dev/source/Lib
- Timestamp:
- 8 Jul 2015, 00:10:36 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1147 r1148 2023 2023 ::memset(m_outputLayerFlag, 0, sizeof(m_outputLayerFlag)); 2024 2024 #endif 2025 #if VPS_EXTN_DIRECT_REF_LAYERS 2025 2026 2026 ::memset(m_directDependencyFlag, 0, sizeof(m_directDependencyFlag)); 2027 2027 ::memset(m_numDirectRefLayers, 0, sizeof(m_numDirectRefLayers )); … … 2029 2029 m_directDepTypeLen = 2; 2030 2030 ::memset(m_directDependencyType, 0, sizeof(m_directDependencyType)); 2031 #endif 2031 2032 2032 #if !NECESSARY_LAYER_FLAG 2033 2033 #if DERIVE_LAYER_ID_LIST_VARIABLES -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h
r1147 r1148 660 660 #endif 661 661 #endif 662 #if VPS_EXTN_DIRECT_REF_LAYERS 662 663 663 Bool m_directDependencyFlag[MAX_VPS_LAYER_IDX_PLUS1][MAX_VPS_LAYER_IDX_PLUS1]; 664 664 UInt m_numDirectRefLayers[MAX_VPS_LAYER_IDX_PLUS1]; … … 668 668 UInt m_defaultDirectDependencyType; 669 669 UInt m_directDependencyType[MAX_VPS_LAYER_IDX_PLUS1][MAX_VPS_LAYER_IDX_PLUS1]; 670 #endif 670 671 671 UInt m_numProfileTierLevel; 672 672 #if !VPS_EXTN_UEV_CODING … … 1022 1022 Void setOutputLayerFlag(Int layerSet, Int layerIdx, Bool x) { m_outputLayerFlag[layerSet][layerIdx] = x; } 1023 1023 #endif 1024 #if VPS_EXTN_DIRECT_REF_LAYERS 1024 1025 1025 // Direct dependency of layers 1026 1026 Bool getDirectDependencyFlag(Int currLayerIdx, Int refLayerIdx) { return m_directDependencyFlag[currLayerIdx][refLayerIdx]; } … … 1043 1043 Bool isSamplePredictionType(Int currLayerIdx, Int refLayerIdx) { assert(currLayerIdx != refLayerIdx); return ( ( m_directDependencyType[currLayerIdx][refLayerIdx] + 1 ) & 1 ) ? true : false; } 1044 1044 Bool isMotionPredictionType(Int currLayerIdx, Int refLayerIdx) { assert(currLayerIdx != refLayerIdx); return ( ( ( m_directDependencyType[currLayerIdx][refLayerIdx] + 1 ) & 2 ) >> 1 ) ? true : false; } 1045 #endif 1045 1046 1046 UInt getNumProfileTierLevel() { return m_numProfileTierLevel; } 1047 1047 Void setNumProfileTierLevel(Int x) { m_numProfileTierLevel = x; } -
branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h
r1147 r1148 130 130 #define VPS_EXTN_OP_LAYER_SETS 1 ///< Include output layer sets in VPS extension 131 131 #define VPS_EXTN_PROFILE_INFO 1 ///< Include profile information for layer sets in VPS extension 132 #define VPS_EXTN_DIRECT_REF_LAYERS 1 ///< Include indication of direct dependency of layers in VPS extension133 132 134 133 #define VPS_VUI_TILES_NOT_IN_USE__FLAG 1 ///< JCTVC-O0226: VPS VUI flag to indicate tile not in use -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1146 r1148 2764 2764 #endif 2765 2765 #endif // view id related signaling 2766 #if VPS_EXTN_DIRECT_REF_LAYERS 2766 2767 2767 // For layer 0 2768 2768 vps->setNumDirectRefLayers(0, 0); … … 2783 2783 vps->setNumDirectRefLayers(layerId, numDirectRefLayers); 2784 2784 } 2785 #endif 2785 2786 2786 #if Q0078_ADD_LAYER_SETS 2787 2787 #if O0092_0094_DEPENDENCY_CONSTRAINT // Moved here … … 3244 3244 #endif 3245 3245 3246 #if VPS_EXTN_DIRECT_REF_LAYERS3247 3246 READ_UVLC( uiCode, "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2); 3248 3247 … … 3274 3273 } 3275 3274 } 3276 #endif 3275 3277 3276 #if !Q0078_ADD_LAYER_SETS 3278 3277 #if O0092_0094_DEPENDENCY_CONSTRAINT // Moved up -
branches/SHM-dev/source/Lib/TLibDecoder/TDecGop.cpp
r1089 r1148 210 210 { 211 211 #if SVC_EXTENSION 212 #if VPS_EXTN_DIRECT_REF_LAYERS213 212 if( pcSlice->getRefPic(RefPicList(iRefList), iRefIndex)->isILR( m_layerId ) ) 214 213 { … … 224 223 printf ("%d", pcSlice->getRefPOC(RefPicList(iRefList), iRefIndex)); 225 224 } 226 #endif 225 227 226 if( pcSlice->getEnableTMVPFlag() && iRefList == 1 - pcSlice->getColFromL0Flag() && iRefIndex == pcSlice->getColRefIdx() ) 228 227 { -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1147 r1148 748 748 749 749 #if SVC_EXTENSION 750 #if VPS_EXTN_DIRECT_REF_LAYERS751 750 setRefLayerParams(m_apcSlicePilot->getVPS()); 752 #endif753 751 m_apcSlicePilot->setNumMotionPredRefLayers(m_numMotionPredRefLayers); 754 752 #endif … … 1723 1721 else 1724 1722 { 1725 #if VPS_EXTN_DIRECT_REF_LAYERS1726 1723 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1727 #else1728 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );1729 #endif1730 1724 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1731 1725 if( !pcSlice->setBaseColPic ( *cListPic, refLayerIdc ) ) … … 1735 1729 } 1736 1730 #else 1737 #if VPS_EXTN_DIRECT_REF_LAYERS1738 1731 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1739 #else1740 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );1741 #endif1742 1732 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1743 1733 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); … … 1821 1811 else 1822 1812 { 1823 #if VPS_EXTN_DIRECT_REF_LAYERS1824 1813 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1825 #else1826 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );1827 #endif1828 1814 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1829 1815 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); 1830 1816 } 1831 1817 #else 1832 #if VPS_EXTN_DIRECT_REF_LAYERS1833 1818 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1834 #else1835 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );1836 #endif1837 1819 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1838 1820 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); … … 2440 2422 } 2441 2423 2442 #if VPS_EXTN_DIRECT_REF_LAYERS2443 2424 TDecTop* TDecTop::getRefLayerDec( UInt refLayerIdx ) 2444 2425 { … … 2451 2432 return (TDecTop *)getLayerDec( vps->getRefLayerId( m_layerId, refLayerIdx ) ); 2452 2433 } 2453 #endif 2454 2455 #if VPS_EXTN_DIRECT_REF_LAYERS 2434 2456 2435 Void TDecTop::setRefLayerParams( TComVPS* vps ) 2457 2436 { … … 2479 2458 } 2480 2459 } 2481 #endif2482 2460 2483 2461 #if OUTPUT_LAYER_SET_INDEX -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h
r1145 r1148 143 143 #endif 144 144 #endif 145 #if VPS_EXTN_DIRECT_REF_LAYERS 145 146 146 Int m_numDirectRefLayers; 147 147 Int m_refLayerId[MAX_VPS_LAYER_IDX_PLUS1]; 148 148 Int m_numSamplePredRefLayers; 149 149 Int m_numMotionPredRefLayers; 150 #endif 150 151 151 TComPic* m_cIlpPic[MAX_NUM_REF]; ///< Inter layer Prediction picture = upsampled picture 152 152 #if OUTPUT_LAYER_SET_INDEX … … 243 243 TDecTop* getLayerDec (UInt layerId) { return m_ppcTDecTop[layerId]; } 244 244 Void xDeriveSmallestLayerId(TComVPS* vps); 245 #if VPS_EXTN_DIRECT_REF_LAYERS 245 246 246 TDecTop* getRefLayerDec (UInt refLayerIdx); 247 247 Int getNumDirectRefLayers () { return m_numDirectRefLayers; } … … 258 258 259 259 Void setRefLayerParams( TComVPS* vps ); 260 #endif 260 261 261 #if AVC_BASE 262 262 Void setBLReconFile( fstream* pFile ) { m_pBLReconFile = pFile; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r1146 r1148 2067 2067 #endif // VIEW_ID_RELATED_SIGNALING 2068 2068 2069 #if VPS_EXTN_DIRECT_REF_LAYERS2070 2069 for( Int layerCtr = 1; layerCtr < vps->getMaxLayers(); layerCtr++) 2071 2070 { … … 2075 2074 } 2076 2075 } 2077 #endif 2076 2078 2077 #if Q0078_ADD_LAYER_SETS 2079 2078 if (vps->getNumIndependentLayers() > 1) … … 2311 2310 codeVpsDpbSizeTable(vps); 2312 2311 #endif 2313 #if VPS_EXTN_DIRECT_REF_LAYERS 2312 2314 2313 WRITE_UVLC( vps->getDirectDepTypeLen()-2, "direct_dep_type_len_minus2"); 2315 2314 … … 2333 2332 } 2334 2333 } 2335 #endif2336 2334 2337 2335 #if P0307_VPS_NON_VUI_EXTENSION -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h
r1131 r1148 378 378 Bool m_crossLayerBLAFlag; 379 379 #endif 380 #if VPS_EXTN_DIRECT_REF_LAYERS 380 381 381 Int m_numDirectRefLayers; 382 382 Int m_refLayerId[MAX_VPS_LAYER_IDX_PLUS1]; … … 390 390 Bool m_samplePredEnabledFlag[MAX_VPS_LAYER_IDX_PLUS1]; 391 391 Bool m_motionPredEnabledFlag[MAX_VPS_LAYER_IDX_PLUS1]; 392 #endif 392 393 393 Int m_maxTidIlRefPicsPlus1; 394 394 #if FAST_INTRA_SHVC … … 1032 1032 Void setUseFastIntraScalable ( Bool b ) { m_useFastIntraScalable = b; } 1033 1033 #endif 1034 #if VPS_EXTN_DIRECT_REF_LAYERS 1034 1035 1035 Int getNumDirectRefLayers () { return m_numDirectRefLayers; } 1036 1036 Void setNumDirectRefLayers (Int num) { m_numDirectRefLayers = num; } … … 1062 1062 Bool getMotionPredEnabledFlag (Int layerIdx) { return m_motionPredEnabledFlag[layerIdx]; } 1063 1063 Void setMotionPredEnabledFlag (Int layerIdx,Bool flag) { m_motionPredEnabledFlag[layerIdx] = flag; } 1064 #endif 1064 1065 1065 Int getMaxTidIlRefPicsPlus1 () { return m_maxTidIlRefPicsPlus1; } 1066 1066 Void setMaxTidIlRefPicsPlus1 (Int num) { m_maxTidIlRefPicsPlus1 = num; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1147 r1148 1369 1369 UInt refLayerIdc = pcSlice->getInterLayerPredLayerIdc(i); 1370 1370 UInt refLayerId = pcSlice->getVPS()->getRefLayerId(m_layerId, refLayerIdc); 1371 #if VPS_EXTN_DIRECT_REF_LAYERS1372 1371 TComList<TComPic*> *cListPic = m_ppcTEncTop[pcSlice->getVPS()->getLayerIdxInVps(m_layerId)]->getRefLayerEnc(refLayerIdc)->getListPic(); 1373 #else 1374 TComList<TComPic*> *cListPic = m_ppcTEncTop[pcSlice->getVPS()->getLayerIdxInVps(m_layerId)-1]->getListPic(); 1375 #endif 1372 1376 1373 pcSlice->setBaseColPic( *cListPic, refLayerIdc ); 1377 1374 … … 3874 3871 { 3875 3872 #if SVC_EXTENSION 3876 #if VPS_EXTN_DIRECT_REF_LAYERS3877 3873 if( pcSlice->getRefPic(RefPicList(iRefList), iRefIndex)->isILR(m_layerId) ) 3878 3874 { … … 3896 3892 #endif 3897 3893 } 3898 #endif 3894 3899 3895 if( pcSlice->getEnableTMVPFlag() && iRefList == 1 - pcSlice->getColFromL0Flag() && iRefIndex == pcSlice->getColRefIdx() ) 3900 3896 { -
branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp
r1147 r1148 624 624 Bool zeroPhase = getPPS()->hasZeroResamplingPhase(m_cVPS.getRefLayerId(m_layerId, i)); 625 625 626 #if VPS_EXTN_DIRECT_REF_LAYERS627 626 TEncTop *pcEncTopBase = (TEncTop *)getRefLayerEnc( i ); 628 #else629 TEncTop *pcEncTopBase = (TEncTop *)getLayerEnc( m_layerId-1 );630 #endif631 627 #if O0194_DIFFERENT_BITDEPTH_EL_BL 632 628 UInt refLayerId = m_cVPS.getRefLayerId(m_layerId, i); … … 690 686 Bool zeroPhase = getPPS()->hasZeroResamplingPhase(m_cVPS.getRefLayerId(m_layerId, i)); 691 687 692 #if VPS_EXTN_DIRECT_REF_LAYERS693 688 TEncTop *pcEncTopBase = (TEncTop *)getRefLayerEnc( i ); 694 #else695 TEncTop *pcEncTopBase = (TEncTop *)getLayerEnc( m_layerId-1 );696 #endif697 689 #if O0194_DIFFERENT_BITDEPTH_EL_BL 698 690 UInt refLayerId = m_cVPS.getRefLayerId(m_layerId, i); … … 1432 1424 1433 1425 #if SVC_EXTENSION 1434 #if VPS_EXTN_DIRECT_REF_LAYERS1435 1426 TEncTop* TEncTop::getRefLayerEnc( UInt refLayerIdx ) 1436 1427 { … … 1442 1433 return (TEncTop *)getLayerEnc( m_cVPS.getLayerIdxInVps(m_cVPS.getRefLayerId( m_layerId, refLayerIdx )) ); 1443 1434 } 1444 #endif1445 1435 1446 1436 #if !REPN_FORMAT_IN_VPS -
branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.h
r1147 r1148 253 253 Void encode ( TComPicYuv* pcPicYuvOrg, const InputColourSpaceConversion snrCSC, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int iPicIdInGOP, Bool isTff ); 254 254 Void encodePrep( TComPicYuv* pcPicYuvOrg, TComPicYuv* pcPicYuvTrueOrg, Bool isTff ); 255 #if VPS_EXTN_DIRECT_REF_LAYERS 255 256 256 TEncTop* getRefLayerEnc(UInt refLayerIdx); 257 #endif 257 258 258 #if POC_RESET_IDC_ENCODER 259 259 Int getPocAdjustmentValue() { return m_pocAdjustmentValue;}
Note: See TracChangeset for help on using the changeset viewer.