- Timestamp:
- 8 Nov 2013, 02:13:51 (11 years ago)
- Location:
- branches/SHM-4.0-dev/source/Lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r442 r446 118 118 , m_temporalLayerNonReferenceFlag ( false ) 119 119 , m_enableTMVPFlag ( true ) 120 #if REF_IDX_MFM 121 , m_bMFMEnabledFlag ( false ) 122 #endif 120 123 { 121 124 m_aiNumRefIdx[0] = m_aiNumRefIdx[1] = 0; … … 631 634 #if RPL_INIT_N0316_N0082 632 635 if( m_layerId > 0 ) 633 { 636 { 634 637 #if JCTVC_M0458_INTERLAYER_RPS_SIG 635 638 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++) … … 1133 1136 #if SVC_EXTENSION 1134 1137 m_pcVPS = pSrc->m_pcVPS; 1138 m_layerId = pSrc->m_layerId; 1135 1139 #if JCTVC_M0458_INTERLAYER_RPS_SIG 1136 1140 m_activeNumILRRefIdx = pSrc->m_activeNumILRRefIdx; -
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecTop.cpp
r442 r446 684 684 685 685 #if SVC_EXTENSION 686 m_apcSlicePilot->setSliceIdx( m_uiSliceIdx ); // it should be removed if HM will reflect it in above 686 687 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 687 688 setRefLayerParams(m_apcSlicePilot->getVPS()); … … 1113 1114 #endif 1114 1115 1115 #if SVC_EXTENSION 1116 if(m_layerId > 0) 1117 { 1118 for( i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ ) 1119 { 1120 UInt refLayerIdc = pcSlice->getInterLayerPredLayerIdc(i); 1116 #if SVC_EXTENSION 1117 // Create upsampling reference layer pictures for all possible dependent layers and do it only once for the first slice. 1118 // Other slices might choose which reference pictures to be used for inter-layer prediction 1119 if( m_layerId > 0 && m_uiSliceIdx == 0 ) 1120 { 1121 for( i = 0; i < pcSlice->getNumILRRefIdx(); i++ ) 1122 { 1123 UInt refLayerIdc = i; 1121 1124 #if AVC_BASE 1122 1125 if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder[0].getActiveVPS()->getAvcBaseLayerFlag() ) … … 1200 1203 if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() ) 1201 1204 { 1205 for( i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ ) 1206 { 1207 UInt refLayerIdc = pcSlice->getInterLayerPredLayerIdc(i); 1208 #if AVC_BASE 1209 if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder[0].getActiveVPS()->getAvcBaseLayerFlag() ) 1210 { 1211 pcSlice->setBaseColPic ( refLayerIdc, *m_ppcTDecTop[0]->getListPic()->begin() ); 1212 #if AVC_SYNTAX 1213 TComPic* pBLPic = pcSlice->getBaseColPic(refLayerIdc); 1214 if( pcSlice->getPOC() == 0 ) 1215 { 1216 // initialize partition order. 1217 UInt* piTmp = &g_auiZscanToRaster[0]; 1218 initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp ); 1219 initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 ); 1220 } 1221 pBLPic->getSlice( 0 )->initBaseLayerRPL( pcSlice ); 1222 pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES ); 1223 #endif 1224 } 1225 else 1226 { 1227 #if VPS_EXTN_DIRECT_REF_LAYERS 1228 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1229 #else 1230 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 ); 1231 #endif 1232 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1233 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); 1234 } 1235 #else 1236 #if VPS_EXTN_DIRECT_REF_LAYERS 1237 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1238 #else 1239 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 ); 1240 #endif 1241 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1242 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); 1243 #endif 1244 1245 pcSlice->setFullPelBaseRec ( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc) ); 1246 } 1247 1202 1248 setILRPic(pcPic); 1203 1249 #if REF_IDX_MFM -
branches/SHM-4.0-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r442 r446 1607 1607 pcSlice->setSliceSegmentCurStartCUAddr ( startCUAddrSlice ); 1608 1608 pcSlice->setSliceBits(0); 1609 #if SVC_EXTENSION 1610 // copy reference list modification info from the first slice, assuming that this information is the same across all slices in the picture 1611 memcpy( pcSlice->getRefPicListModification(), pcPic->getSlice(0)->getRefPicListModification(), sizeof(TComRefPicListModification) ); 1612 #endif 1609 1613 uiNumSlices ++; 1610 1614 }
Note: See TracChangeset for help on using the changeset viewer.