Changeset 479 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
- Timestamp:
- 18 Jun 2013, 23:24:53 (12 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp
r478 r479 759 759 } 760 760 #endif // !H_MV 761 #if H_3D_IV_MERGE762 READ_FLAG( uiCode, "base_view_flag" );763 if( uiCode )764 { // baseview SPS -> set standard values765 pcSPS->initCamParaSPS ( 0 );766 pcSPS->setPredDepthMapGeneration( 0, false );767 }768 else769 {770 READ_FLAG( uiCode, "depth_flag" );771 if( uiCode )772 {773 READ_UVLC( uiCode, "view_idx" );774 pcSPS->initCamParaSPSDepth ( uiCode );775 pcSPS->setPredDepthMapGeneration( uiCode, true );776 }777 else778 {779 UInt uiViewIndex;780 READ_UVLC( uiViewIndex, "view_idx" ); uiViewIndex++;781 UInt uiPredDepthMapGeneration = 0;782 UInt uiMultiviewMvPredMode = 0;783 784 READ_UVLC( uiPredDepthMapGeneration, "Pdm_generation" );785 if( uiPredDepthMapGeneration )786 {787 READ_UVLC( uiMultiviewMvPredMode, "multi_view_mv_pred_mode" );788 }789 790 pcSPS->setPredDepthMapGeneration( uiViewIndex, false, uiPredDepthMapGeneration, uiMultiviewMvPredMode);791 792 }793 }794 #endif795 761 } 796 762 } … … 987 953 if (uiCode) 988 954 { 955 #if H_3D 956 #if H_3D_IV_MERGE 957 for( Int layer = 0; layer <= pcVPS->getMaxLayers() - 1; layer++ ) 958 { 959 if (layer != 0) 960 { 961 if ( !( pcVPS->getDepthId( layer ) == 1 ) ) 962 { 963 READ_FLAG( uiCode, "ivMvPredFlag[i]"); pcVPS->setIvMvPredFlag( layer, uiCode == 1 ? true : false ); 964 } 965 } 966 } 967 #endif 968 #else 989 969 while ( xMoreRbspData() ) 990 970 { 991 971 READ_FLAG( uiCode, "vps_extension2_data_flag"); 992 972 } 973 #endif 993 974 } 994 975 … … 1449 1430 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 1450 1431 #if H_3D_IV_MERGE 1451 rpcSlice->setMaxNumMergeCand(((rpcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE) == PDM_USE_FOR_MERGE ? MRG_MAX_NUM_CANDS_MEM: MRG_MAX_NUM_CANDS) - uiCode); 1432 Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ; 1433 rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 1452 1434 #else 1453 1435 rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecGop.cpp
r478 r479 84 84 TComLoopFilter* pcLoopFilter, 85 85 TComSampleAdaptiveOffset* pcSAO 86 #if H_3D_IV_MERGE87 ,TComDepthMapGenerator* pcDepthMapGenerator88 #endif89 86 ) 90 87 { … … 96 93 m_pcLoopFilter = pcLoopFilter; 97 94 m_pcSAO = pcSAO; 98 #if H_3D_IV_MERGE99 m_pcDepthMapGenerator = pcDepthMapGenerator;100 #endif101 95 } 102 96 … … 158 152 m_LFCrossSliceBoundaryFlag.push_back( pcSlice->getLFCrossSliceBoundaryFlag()); 159 153 } 160 #if H_3D_IV_MERGE161 if( uiStartCUAddr == 0 )162 {163 m_pcDepthMapGenerator->initViewComponent( rpcPic );164 }165 #endif166 154 #if H_3D_NBDV 167 155 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecGop.h
r478 r479 51 51 #include "TLibCommon/TComSampleAdaptiveOffset.h" 52 52 53 #if H_3D_IV_MERGE54 #include "TLibCommon/TComDepthMapGenerator.h"55 #endif56 53 #include "TDecEntropy.h" 57 54 #include "TDecSlice.h" … … 82 79 TComLoopFilter* m_pcLoopFilter; 83 80 84 #if H_3D_IV_MERGE85 TComDepthMapGenerator* m_pcDepthMapGenerator;86 #endif87 81 TComSampleAdaptiveOffset* m_pcSAO; 88 82 Double m_dDecTime; … … 104 98 TComLoopFilter* pcLoopFilter, 105 99 TComSampleAdaptiveOffset* pcSAO 106 #if H_3D_IV_MERGE107 ,TComDepthMapGenerator* pcDepthMapGenerator108 #endif109 100 ); 110 101 Void create (); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp
r478 r479 37 37 38 38 #include "NALread.h" 39 #if H_3D_IV_MERGE40 #include "../../App/TAppDecoder/TAppDecTop.h"41 #endif42 39 #include "TDecTop.h" 43 40 … … 392 389 } 393 390 394 #if H_3D_IV_MERGE395 Void TDecTop::init(TAppDecTop* pcTAppDecTop)396 #else397 391 Void TDecTop::init() 398 #endif399 392 { 400 393 // initialize ROM … … 402 395 initROM(); 403 396 #endif 404 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO 405 #if H_3D_IV_MERGE 406 , &m_cDepthMapGenerator 407 #endif 408 ); 397 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO ); 409 398 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder ); 410 399 m_cEntropyDecoder.init(&m_cPrediction); 411 #if H_3D_IV_MERGE412 m_tAppDecTop = pcTAppDecTop;413 m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() );414 #endif415 400 } 416 401 … … 769 754 770 755 m_cSliceDecoder.create(); 771 #if H_3D_IV_MERGE772 UInt uiPdm = ( m_apcSlicePilot->getSPS()->getViewIndex() ? m_apcSlicePilot->getSPS()->getPredDepthMapGeneration() : m_tAppDecTop->getSPSAccess()->getPdm() );773 m_cDepthMapGenerator.create( true, m_apcSlicePilot->getSPS()->getPicWidthInLumaSamples(), m_apcSlicePilot->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_bitDepthY, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );774 TComDepthMapGenerator* pcDMG0 = m_tAppDecTop->getDecTop0()->getDepthMapGenerator();775 if( m_apcSlicePilot->getSPS()->getViewIndex() == 1 && ( pcDMG0->getSubSampExpX() != PDM_SUB_SAMP_EXP_X(uiPdm) || pcDMG0->getSubSampExpY() != PDM_SUB_SAMP_EXP_Y(uiPdm) ) )776 {777 pcDMG0->create( true, m_apcSlicePilot->getSPS()->getPicWidthInLumaSamples(), m_apcSlicePilot->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_bitDepthY, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );778 }779 #endif780 756 } 781 757 else … … 918 894 919 895 #endif 920 #if H_3D_IV_MERGE 921 TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView( m_viewIndex, pcSlice->getPOC(), false ) : NULL; 922 assert( !m_isDepth || pcTexturePic != NULL ); 923 pcSlice->setTexturePic( pcTexturePic ); 896 #if H_3D_GEN 897 pcSlice->setIvPicLists( m_ivPicLists ); 898 #if H_3D_IV_MERGE 899 assert( !getIsDepth() || ( pcSlice->getTexturePic() != 0 ) ); 900 #endif 924 901 #endif 925 902 // For generalized B -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.h
r476 r479 45 45 #include "TLibCommon/TComTrQuant.h" 46 46 #include "TLibCommon/SEI.h" 47 #if H_3D_IV_MERGE48 #include "TLibCommon/TComDepthMapGenerator.h"49 #endif50 47 51 48 #include "TDecGop.h" … … 225 222 Bool m_isDepth; 226 223 CamParsCollector* m_pcCamParsCollector; 227 #if H_3D_IV_MERGE228 TComDepthMapGenerator m_cDepthMapGenerator;229 TAppDecTop* m_tAppDecTop;230 #endif231 224 #endif 232 225 #endif … … 241 234 void setDecodedPictureHashSEIEnabled(Int enabled) { m_cGopDecoder.setDecodedPictureHashSEIEnabled(enabled); } 242 235 243 #if H_3D_IV_MERGE244 Void init(TAppDecTop* pcTAppDecTop);245 #else246 236 Void init(); 247 #endif248 237 #if H_MV 249 238 Bool decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay, Bool newLayer ); … … 276 265 Bool getIsDepth () { return m_isDepth; } 277 266 Void setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; } 278 #if H_3D_IV_MERGE279 TComDepthMapGenerator* getDepthMapGenerator () { return &m_cDepthMapGenerator; }280 #endif281 267 #endif 282 268 #endif
Note: See TracChangeset for help on using the changeset viewer.