Changeset 773 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecTop.cpp
- Timestamp:
- 16 Jan 2014, 09:56:13 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r758 r773 228 228 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, uiViewIndex ); 229 229 m_aiViewId[ uiViewIndex ] = pcSlice->getViewId(); 230 #if CAM_HLS_F0136_F0045_F0082 230 231 231 if( uiViewIndex == 1 ) 232 232 { … … 239 239 AOF( m_bCamParsVaryOverTime == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) ); 240 240 } 241 #else 242 if( uiViewIndex == 1 ) 243 { 244 m_uiCamParsCodedPrecision = pcSlice->getSPS()->getCamParPrecision (); 245 m_bCamParsVaryOverTime = pcSlice->getSPS()->hasCamParInSliceHeader (); 246 } 247 else if( uiViewIndex > 1 ) 248 { 249 AOF( m_uiCamParsCodedPrecision == pcSlice->getSPS()->getCamParPrecision () ); 250 AOF( m_bCamParsVaryOverTime == pcSlice->getSPS()->hasCamParInSliceHeader () ); 251 } 252 #endif 241 253 242 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ ) 254 243 { … … 264 253 else 265 254 { 266 #if CAM_HLS_F0136_F0045_F0082267 255 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedScale (uiViewIndex) [ uiBaseIndex ]; 268 256 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedOffset (uiViewIndex) [ uiBaseIndex ]; 269 257 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ]; 270 258 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ]; 271 #else272 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedScale () [ uiBaseIndex ];273 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedOffset () [ uiBaseIndex ];274 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedScale () [ uiBaseIndex ];275 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseIndex ];276 #endif277 259 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); 278 260 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); … … 302 284 } 303 285 304 #if QC_DEPTH_IV_MRG_F0125286 #if H_3D_IV_MERGE 305 287 Void 306 288 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) 307 289 { 308 #if !CAM_HLS_F0136_F0045_F0082309 UInt uiViewIndex = pcSlice->getViewIndex();310 311 pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );312 #endif313 290 if( m_bCamParsVaryOverTime ) 314 291 { … … 656 633 #if H_MV 657 634 m_apcSlicePilot->setVPS(vps); 658 #if H_MV_6_PS_0092_17659 635 // The nuh_layer_id value of the NAL unit containing the PPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA. 660 636 assert( pps->getLayerId() == m_layerId || pps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, pps->getLayerId() ) ); 661 637 // The nuh_layer_id value of the NAL unit containing the SPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA. 662 638 assert( sps->getLayerId() == m_layerId || sps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, sps->getLayerId() ) ); 663 #endif664 639 sps->inferRepFormat ( vps , m_layerId ); 665 640 sps->inferScalingList( m_parameterSetManagerDecoder.getActiveSPS( sps->getSpsScalingListRefLayerId() ) ); … … 692 667 693 668 #if H_MV 694 #if H_MV_FIX_SKIP_PICTURES695 669 Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay, Bool newLayerFlag, Bool& sliceSkippedFlag ) 696 #else697 Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay, Bool newLayerFlag )698 #endif699 670 { 700 671 assert( nalu.m_layerId == m_layerId ); … … 754 725 #endif 755 726 756 #if H_MV _LAYER_WISE_STARTUP727 #if H_MV 757 728 xCeckNoClrasOutput(); 758 729 #endif … … 762 733 m_prevSliceSkipped = true; 763 734 m_skippedPOC = m_apcSlicePilot->getPOC(); 764 #if H_MV _FIX_SKIP_PICTURES765 735 #if H_MV 736 sliceSkippedFlag = true; 766 737 #endif 767 738 return false; … … 772 743 m_prevSliceSkipped = true; 773 744 m_skippedPOC = m_apcSlicePilot->getPOC(); 774 #if H_MV _FIX_SKIP_PICTURES775 745 #if H_MV 746 sliceSkippedFlag = true; 776 747 #endif 777 748 return false; … … 1007 978 pcSlice->setRefPicList ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true ); 1008 979 #if H_3D_ARP 1009 #if SHARP_ARP_REF_CHECK_F01051010 980 pcSlice->setARPStepNum(m_ivPicLists); 1011 #else1012 pcSlice->setARPStepNum();1013 #endif1014 981 if( pcSlice->getARPStepNum() > 1 ) 1015 982 { … … 1113 1080 } 1114 1081 1115 #if QC_DEPTH_IV_MRG_F01251082 #if H_3D_IV_MERGE 1116 1083 if( pcSlice->getIsDepth() && m_pcCamParsCollector ) 1117 1084 { … … 1127 1094 m_pcCamParsCollector->setSlice( pcSlice ); 1128 1095 } 1129 #if QC_DEPTH_IV_MRG_F01251130 if( pcSlice->getIsDepth() )1131 {1132 #if !CAM_HLS_F0136_F0045_F00821133 pcSlice->getSPS()->setHasCamParInSliceHeader( false );1134 #endif1135 }1136 #endif1137 1096 #endif 1138 1097 m_bFirstSliceInPicture = false; … … 1174 1133 pps->setLayerId( getLayerId() ); 1175 1134 #endif 1176 #if DLT_DIFF_CODING_IN_PPS1135 #if H_3D 1177 1136 // Assuming that all PPS indirectly refer to the same VPS via different SPS 1178 1137 // There is no parsing dependency in decoding DLT in PPS. … … 1181 1140 // Step 1) decoding DLT tables based on the number of depth layers, and 1182 1141 // Step 2) mapping DLT tables to the depth layers 1183 // as descri pted in the 3D-HEVC WD.1142 // as described in the 3D-HEVC WD. 1184 1143 TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); 1185 1144 m_cEntropyDecoder.decodePPS( pps, vps ); … … 1226 1185 1227 1186 #if H_MV 1228 #if H_MV_FIX_SKIP_PICTURES1229 1187 Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay, Bool newLayerFlag, Bool& sliceSkippedFlag ) 1230 #else1231 Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay, Bool newLayerFlag)1232 #endif1233 1188 #else 1234 1189 Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay) … … 1275 1230 case NAL_UNIT_CODED_SLICE_RASL_R: 1276 1231 #if H_MV 1277 #if H_MV_FIX_SKIP_PICTURES1278 1232 return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay, newLayerFlag, sliceSkippedFlag ); 1279 #else1280 return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay, newLayerFlag);1281 #endif1282 1233 #else 1283 1234 return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay); … … 1328 1279 return true; 1329 1280 } 1330 #if H_MV _LAYER_WISE_STARTUP1281 #if H_MV 1331 1282 else if ( !m_layerInitilizedFlag[ m_layerId ] ) // start of random access point, m_pocRandomAccess has not been set yet. 1332 1283 #else … … 1340 1291 { 1341 1292 1342 #if H_MV _LAYER_WISE_STARTUP1293 #if H_MV 1343 1294 if ( xAllRefLayersInitilized() ) 1344 1295 { … … 1357 1308 else if ( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP ) 1358 1309 { 1359 #if H_MV _LAYER_WISE_STARTUP1310 #if H_MV 1360 1311 if ( xAllRefLayersInitilized() ) 1361 1312 { 1362 1313 m_layerInitilizedFlag[ m_layerId ] = true; 1314 m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable. 1315 } 1316 else 1317 { 1318 return true; 1319 } 1320 #else 1363 1321 m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable. 1322 #endif 1364 1323 } 1365 1324 else 1366 1325 { 1367 return true; 1368 } 1369 #else 1370 m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable. 1371 #endif 1372 } 1373 else 1374 { 1375 #if H_MV_FIX_SKIP_PICTURES 1326 #if H_MV 1376 1327 static Bool warningMessage[MAX_NUM_LAYERS]; 1377 1328 static Bool warningInitFlag = false; … … 1408 1359 return true; 1409 1360 } 1410 #if H_MV _LAYER_WISE_STARTUP1361 #if H_MV 1411 1362 return !m_layerInitilizedFlag[ getLayerId() ]; 1412 1363 #else … … 1455 1406 } 1456 1407 1457 #if H_MV _LAYER_WISE_STARTUP1408 #if H_MV 1458 1409 Void TDecTop::xCeckNoClrasOutput() 1459 1410 {
Note: See TracChangeset for help on using the changeset viewer.