Changeset 476 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
- Timestamp:
- 18 Jun 2013, 05:16:27 (12 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp
r446 r476 759 759 } 760 760 #endif // !H_MV 761 762 #if H_3D_IV_MERGE 763 READ_FLAG( uiCode, "base_view_flag" ); 764 if( uiCode ) 765 { // baseview SPS -> set standard values 766 pcSPS->initCamParaSPS ( 0 ); 767 pcSPS->setPredDepthMapGeneration( 0, false ); 768 } 769 else 770 { 771 READ_FLAG( uiCode, "depth_flag" ); 772 if( uiCode ) 773 { 774 READ_UVLC( uiCode, "view_idx" ); 775 pcSPS->initCamParaSPSDepth ( uiCode ); 776 pcSPS->setPredDepthMapGeneration( uiCode, true ); 777 } 778 else 779 { 780 UInt uiViewIndex; 781 READ_UVLC( uiViewIndex, "view_idx" ); uiViewIndex++; 782 UInt uiPredDepthMapGeneration = 0; 783 UInt uiMultiviewMvPredMode = 0; 784 785 READ_UVLC( uiPredDepthMapGeneration, "Pdm_generation" ); 786 if( uiPredDepthMapGeneration ) 787 { 788 READ_UVLC( uiMultiviewMvPredMode, "multi_view_mv_pred_mode" ); 789 } 790 791 pcSPS->setPredDepthMapGeneration( uiViewIndex, false, uiPredDepthMapGeneration, uiMultiviewMvPredMode); 792 793 } 794 } 795 #endif 761 796 } 762 797 } … … 1414 1449 { 1415 1450 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 1451 #if H_3D_IV_MERGE 1452 rpcSlice->setMaxNumMergeCand(((rpcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE) == PDM_USE_FOR_MERGE ? MRG_MAX_NUM_CANDS_MEM: MRG_MAX_NUM_CANDS) - uiCode); 1453 #else 1416 1454 rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode); 1455 #endif 1417 1456 } 1418 1457 -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCu.cpp
r455 r476 320 320 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 321 321 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 322 m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx); 323 #if H_3D_IV_MERGE 324 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 325 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; 326 #else 322 327 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS << 1]; // double length for mv of both lists 323 328 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 329 #endif 324 330 Int numValidMergeCand = 0; 325 331 for( UInt ui = 0; ui < m_ppcCU[uiDepth]->getSlice()->getMaxNumMergeCand(); ++ui ) -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecEntropy.cpp
r324 r476 156 156 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4; 157 157 158 #if H_3D_IV_MERGE 159 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 160 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; 161 #else 158 162 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS << 1]; // double length for mv of both lists 159 163 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 164 #endif 160 165 161 166 for ( UInt ui = 0; ui < pcCU->getSlice()->getMaxNumMergeCand(); ui++ ) … … 168 173 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 169 174 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 175 #if H_3D_IV_MERGE 176 pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx); 177 #endif 170 178 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 171 179 { -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecGop.cpp
r455 r476 84 84 TComLoopFilter* pcLoopFilter, 85 85 TComSampleAdaptiveOffset* pcSAO 86 #if H_3D_IV_MERGE 87 ,TComDepthMapGenerator* pcDepthMapGenerator 88 #endif 86 89 ) 87 90 { … … 93 96 m_pcLoopFilter = pcLoopFilter; 94 97 m_pcSAO = pcSAO; 98 #if H_3D_IV_MERGE 99 m_pcDepthMapGenerator = pcDepthMapGenerator; 100 #endif 95 101 } 96 102 … … 152 158 m_LFCrossSliceBoundaryFlag.push_back( pcSlice->getLFCrossSliceBoundaryFlag()); 153 159 } 160 161 #if H_3D_IV_MERGE 162 if( uiStartCUAddr == 0 ) 163 { 164 m_pcDepthMapGenerator->initViewComponent( rpcPic ); 165 } 166 #endif 167 154 168 #if H_3D_NBDV 155 169 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
r324 r476 51 51 #include "TLibCommon/TComSampleAdaptiveOffset.h" 52 52 53 #if H_3D_IV_MERGE 54 #include "TLibCommon/TComDepthMapGenerator.h" 55 #endif 56 53 57 #include "TDecEntropy.h" 54 58 #include "TDecSlice.h" … … 79 83 TComLoopFilter* m_pcLoopFilter; 80 84 85 #if H_3D_IV_MERGE 86 TComDepthMapGenerator* m_pcDepthMapGenerator; 87 #endif 88 81 89 TComSampleAdaptiveOffset* m_pcSAO; 82 90 Double m_dDecTime; … … 98 106 TComLoopFilter* pcLoopFilter, 99 107 TComSampleAdaptiveOffset* pcSAO 108 #if H_3D_IV_MERGE 109 ,TComDepthMapGenerator* pcDepthMapGenerator 110 #endif 100 111 ); 101 112 Void create (); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp
r446 r476 37 37 38 38 #include "NALread.h" 39 #if H_3D_IV_MERGE 40 #include "../../App/TAppDecoder/TAppDecTop.h" 41 #endif 39 42 #include "TDecTop.h" 40 43 … … 389 392 } 390 393 394 #if H_3D_IV_MERGE 395 Void TDecTop::init(TAppDecTop* pcTAppDecTop) 396 #else 391 397 Void TDecTop::init() 398 #endif 392 399 { 393 400 // initialize ROM … … 395 402 initROM(); 396 403 #endif 397 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO); 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 ); 398 409 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder ); 399 410 m_cEntropyDecoder.init(&m_cPrediction); 411 412 #if H_3D_IV_MERGE 413 m_tAppDecTop = pcTAppDecTop; 414 m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() ); 415 #endif 400 416 } 401 417 … … 754 770 755 771 m_cSliceDecoder.create(); 772 #if H_3D_IV_MERGE 773 UInt uiPdm = ( m_apcSlicePilot->getSPS()->getViewIndex() ? m_apcSlicePilot->getSPS()->getPredDepthMapGeneration() : m_tAppDecTop->getSPSAccess()->getPdm() ); 774 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) ); 775 TComDepthMapGenerator* pcDMG0 = m_tAppDecTop->getDecTop0()->getDepthMapGenerator(); 776 if( m_apcSlicePilot->getSPS()->getViewIndex() == 1 && ( pcDMG0->getSubSampExpX() != PDM_SUB_SAMP_EXP_X(uiPdm) || pcDMG0->getSubSampExpY() != PDM_SUB_SAMP_EXP_Y(uiPdm) ) ) 777 { 778 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) ); 779 } 780 #endif 756 781 } 757 782 else … … 893 918 #endif 894 919 920 #endif 921 922 #if H_3D_IV_MERGE 923 TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView( m_viewIndex, pcSlice->getPOC(), false ) : NULL; 924 assert( !m_isDepth || pcTexturePic != NULL ); 925 pcSlice->setTexturePic( pcTexturePic ); 895 926 #endif 896 927 // For generalized B -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.h
r446 r476 45 45 #include "TLibCommon/TComTrQuant.h" 46 46 #include "TLibCommon/SEI.h" 47 #if H_3D_IV_MERGE 48 #include "TLibCommon/TComDepthMapGenerator.h" 49 #endif 47 50 48 51 #include "TDecGop.h" … … 222 225 Bool m_isDepth; 223 226 CamParsCollector* m_pcCamParsCollector; 227 #if H_3D_IV_MERGE 228 TComDepthMapGenerator m_cDepthMapGenerator; 229 TAppDecTop* m_tAppDecTop; 230 #endif 224 231 #endif 225 232 #endif … … 234 241 void setDecodedPictureHashSEIEnabled(Int enabled) { m_cGopDecoder.setDecodedPictureHashSEIEnabled(enabled); } 235 242 243 #if H_3D_IV_MERGE 244 Void init(TAppDecTop* pcTAppDecTop); 245 #else 236 246 Void init(); 247 #endif 237 248 #if H_MV 238 249 Bool decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay, Bool newLayer ); … … 265 276 Bool getIsDepth () { return m_isDepth; } 266 277 Void setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; } 278 #if H_3D_IV_MERGE 279 TComDepthMapGenerator* getDepthMapGenerator () { return &m_cDepthMapGenerator; } 280 #endif 267 281 #endif 268 282 #endif
Note: See TracChangeset for help on using the changeset viewer.