Changeset 259 in SHVCSoftware for branches/SHM-2.1-multilayers-dev
- Timestamp:
- 5 Jun 2013, 03:48:35 (11 years ago)
- Location:
- branches/SHM-2.1-multilayers-dev/source
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.1-multilayers-dev/source/App/TAppEncoder/TAppEncTop.cpp
r245 r259 910 910 #if VPS_EXTN_DIRECT_REF_LAYERS 911 911 // Direct reference layers 912 UInt maxDirectRefLayers = 0; 912 913 for(UInt layerCtr = 1;layerCtr <= vps->getMaxLayers() - 1; layerCtr++) 913 914 { 914 915 vps->setNumDirectRefLayers( layerCtr, m_acTEncTop[layerCtr].getNumDirectRefLayers() ); 916 maxDirectRefLayers = max<UInt>( maxDirectRefLayers, vps->getNumDirectRefLayers( layerCtr ) ); 917 915 918 for(i = 0; i < vps->getNumDirectRefLayers(layerCtr); i++) 916 919 { … … 930 933 #endif 931 934 #if JCTVC_M0458_INTERLAYER_RPS_SIG 932 vps->setMaxOneActiveRefLayerFlag( true);935 vps->setMaxOneActiveRefLayerFlag(maxDirectRefLayers > 1 ? false : true); 933 936 #endif 934 937 #else -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComPic.cpp
r254 r259 568 568 569 569 #if REF_IDX_MFM 570 Void TComPic::copyUpsampledMvField(TComPic* pcPicBase) 571 { 572 UInt refLayerIdc = pcPicBase->getLayerId(); 570 Void TComPic::copyUpsampledMvField(UInt refLayerIdc, TComPic* pcPicBase) 571 { 573 572 #if AVC_SYNTAX && !ILP_DECODED_PICTURE 574 573 const Window &confBL = pcPicBase->getConformanceWindow(); -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComPic.h
r253 r259 124 124 125 125 #if REF_IDX_MFM 126 Void copyUpsampledMvField ( TComPic* pcPicBase );126 Void copyUpsampledMvField ( UInt refLayerIdc, TComPic* pcPicBase ); 127 127 Void initUpsampledMvField (); 128 128 #endif -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComSlice.cpp
r256 r259 544 544 if(!(m_eNalUnitType >= NAL_UNIT_CODED_SLICE_BLA_W_LP && m_eNalUnitType <= NAL_UNIT_CODED_SLICE_CRA) && m_pcSPS->getMFMEnabledFlag()) 545 545 { 546 ilpPic[refLayerIdc]->copyUpsampledMvField( m_pcBaseColPic[refLayerIdc] );546 ilpPic[refLayerIdc]->copyUpsampledMvField( refLayerIdc, m_pcBaseColPic[refLayerIdc] ); 547 547 } 548 548 else … … 1094 1094 m_activeNumILRRefIdx = pSrc->m_activeNumILRRefIdx; 1095 1095 m_interLayerPredEnabledFlag = pSrc->m_interLayerPredEnabledFlag; 1096 m_numInterLayerRefPics = pSrc->m_numInterLayerRefPics;1097 1096 memcpy( m_interLayerPredLayerIdc, pSrc->m_interLayerPredLayerIdc, sizeof( m_interLayerPredLayerIdc ) ); 1098 1097 #elif REF_IDX_FRAMEWORK -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComSlice.h
r253 r259 1532 1532 #if JCTVC_M0458_INTERLAYER_RPS_SIG 1533 1533 Bool m_interLayerPredEnabledFlag; 1534 Int m_numInterLayerRefPics;1535 1534 #endif 1536 1535 public: … … 1803 1802 Void setActiveNumILRRefIdx ( Int i ) { m_activeNumILRRefIdx = i; } 1804 1803 1805 Int getInterLayerPredLayerIdc (UInt Idx ) { return m_interLayerPredLayerIdc[Idx];}1806 Void setInterLayerPredLayerIdc (UInt val, UInt Idx) { m_interLayerPredLayerIdc[Idx] = val; }1804 Int getInterLayerPredLayerIdc (UInt layerIdx) { return m_interLayerPredLayerIdc[layerIdx];} 1805 Void setInterLayerPredLayerIdc (UInt refLayerIdc, UInt layerIdx) { m_interLayerPredLayerIdc[layerIdx] = refLayerIdc; } 1807 1806 1808 1807 Void setInterLayerPredEnabledFlag ( Bool val ) { m_interLayerPredEnabledFlag = val; } 1809 Bool getInterLayerPredEnabledFlag () { return m_interLayerPredEnabledFlag;} 1810 1811 Void setNumInterLayerRefPics ( UInt val ) { m_numInterLayerRefPics = val; } 1812 UInt getNumInterLayerRefPics () { return m_numInterLayerRefPics;} 1808 Bool getInterLayerPredEnabledFlag () { return m_interLayerPredEnabledFlag;} 1813 1809 #else 1814 1810 Void setNumILRRefIdx ( Int i ) { m_numILRRefIdx = i; } -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r249 r259 1067 1067 if( !pcSlice->getVPS()->getMaxOneActiveRefLayerFlag()) 1068 1068 { 1069 WRITE_CODE(pcSlice->get NumInterLayerRefPics(), numBits,"num_inter_layer_ref_pics_minus1");1069 WRITE_CODE(pcSlice->getActiveNumILRRefIdx() - 1, numBits,"num_inter_layer_ref_pics_minus1"); 1070 1070 } 1071 1071 for(Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ ) -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCu.cpp
r253 r259 458 458 if (rpcBestCU->getLayerId() > 0) 459 459 { 460 // the right reference layerIdc should be specified, currently it is set to 0 461 if (rpcBestCU->getSlice()->getBaseColPic(0)->getSlice(0)->getSliceType() == I_SLICE) 460 TComList<TComPic*> *cListPic = m_ppcTEncTop[rpcBestCU->getLayerId()]->getRefLayerEnc(rpcBestCU->getLayerId()-1)->getListPic(); 461 TComPic* picLowerLayer = pcSlice->getRefPic( *cListPic, pcSlice->getPOC() ); 462 if(picLowerLayer->getSlice(0)->getSliceType() == I_SLICE) 462 463 { 463 464 testInter = false; -
branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r191 r259 491 491 { 492 492 #if JCTVC_M0458_INTERLAYER_RPS_SIG 493 // currently only one reference layer is supported in software and no decision logic to select yet.494 // hence num of active inter layer references is set to one always495 493 if( rpcSlice->getNumILRRefIdx() > 0 ) 496 494 { 497 rpcSlice->setActiveNumILRRefIdx(1); 495 rpcSlice->setActiveNumILRRefIdx( rpcSlice->getNumILRRefIdx() ); 496 for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ ) 497 { 498 rpcSlice->setInterLayerPredLayerIdc(i, i); 499 } 498 500 rpcSlice->setInterLayerPredEnabledFlag(1); 499 501 }
Note: See TracChangeset for help on using the changeset viewer.