- Timestamp:
- 15 Nov 2012, 21:36:12 (12 years ago)
- Location:
- branches/HTM-4.1-dev0/source
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.1-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r105 r188 436 436 m_useDepth = true; 437 437 438 #if FIX_DECODING_WO_WRITING439 438 if ( m_pchReconFile ) 440 439 { 441 #endif442 440 while( m_tVideoIOYuvReconFile.size() < newNumberOfViewDepth) 443 441 { … … 473 471 free ( nextFilename ); 474 472 } 475 #if FIX_DECODING_WO_WRITING 476 } 477 #endif 473 } 478 474 479 475 while( m_pocLastDisplay.size() < newNumberOfViewDepth ) -
branches/HTM-4.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r187 r188 74 74 { 75 75 m_aidQP = NULL; 76 #if FIXES77 76 m_aidQPdepth = NULL; 78 #endif79 77 } 80 78 … … 86 84 } 87 85 88 #if FIXES89 86 if ( m_aidQPdepth ) 90 87 { 91 88 delete[] m_aidQPdepth; m_aidQPdepth = NULL; 92 89 } 93 #endif94 90 95 91 for(Int i = 0; i< m_pchInputFileList.size(); i++ ) … … 120 116 #endif 121 117 122 #if FIX_MEM_LEAKS123 118 if ( m_pchCameraParameterFile != NULL ) 124 119 free ( m_pchCameraParameterFile ); … … 139 134 free ( m_scalingListFile ); 140 135 141 #endif142 136 143 137 } … … 330 324 #endif 331 325 #if DBL_CONTROL 332 #if FIX_DBL_CONTROL_DEFAULT333 326 ("DeblockingFilterControlPresent", m_DeblockingFilterControlPresent, true) 334 #else335 ("DeblockingFilterControlPresent", m_DeblockingFilterControlPresent, false)336 #endif337 327 #endif 338 328 -
branches/HTM-4.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r185 r188 689 689 if ( m_uiVSOMode == 4 ) 690 690 { 691 #if HHI_VSO_SPEEDUP_A0033692 691 #if LGE_VSO_EARLY_SKIP_A0093 693 692 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, g_uiMaxCUHeight , LOG2_DISP_PREC_LUT, 0, m_bVSOEarlySkip ); 694 693 #else 695 694 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, g_uiMaxCUHeight , LOG2_DISP_PREC_LUT, 0 ); 696 #endif697 #else698 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, m_iSourceHeight, LOG2_DISP_PREC_LUT, 0 );699 695 #endif 700 696 … … 1027 1023 pcDepthPicYuvOrg = NULL; 1028 1024 1029 #if FIX_MEM_LEAKS1030 1025 if ( pcPdmDepthOrg != NULL ) 1031 1026 { … … 1034 1029 pcPdmDepthOrg = NULL; 1035 1030 }; 1036 #endif1037 1031 1038 1032 … … 1293 1287 #endif 1294 1288 #if HHI_VSO 1295 #if HHI_VSO_SPEEDUP_A00331296 1289 Void TAppEncTop::setupRenModel( Int iPoc, Int iEncViewIdx, Int iEncContent, Int iHorOffset ) 1297 1290 { 1298 #if FIX_VSO_SETUP1299 1291 m_cRendererModel.setupPart( iHorOffset, Min( g_uiMaxCUHeight, m_iSourceHeight - iHorOffset ) ); 1300 #else1301 m_cRendererModel.setHorOffset( iHorOffset );1302 #endif1303 #else1304 Void TAppEncTop::setupRenModel( Int iPoc, Int iEncViewIdx, Int iEncContent )1305 {1306 #endif1307 1292 Int iEncViewSIdx = m_cCameraData.getBaseId2SortedId()[ iEncViewIdx ]; 1308 1293 -
branches/HTM-4.1-dev0/source/App/TAppEncoder/TAppEncTop.h
r177 r188 136 136 #endif 137 137 #if HHI_VSO 138 #if HHI_VSO_SPEEDUP_A0033139 138 Void setupRenModel ( Int iPoc, Int iEncViewIdx, Int iEncContent, Int iHorOffset ); 140 #else141 Void setupRenModel ( Int iPoc, Int iEncViewIdx, Int iEncContent );142 #endif143 139 #endif 144 140 -
branches/HTM-4.1-dev0/source/App/TAppRenderer/TAppRendererTop.cpp
r124 r188 532 532 #endif 533 533 534 #if HHI_VSO_SPEEDUP_A0033535 #if FIX_VSO_SETUP536 534 cCurModel.setupPart( 0, m_iSourceHeight ); 537 #else538 cCurModel.setHorOffset( 0 );539 #endif540 #endif541 535 542 536 for ( Int iViewIdx = 0; iViewIdx < m_iNumberOfInputViews; iViewIdx++ ) … … 713 707 714 708 AOT( m_iLog2SamplingFactor != 0 ); 715 #if HHI_VSO_SPEEDUP_A0033716 #if FIX_VSO_SETUP717 709 cCurModel.setupPart( 0, m_iSourceHeight ); 718 #else719 cCurModel.setHorOffset( 0 );720 #endif721 #endif722 710 #if LGE_VSO_EARLY_SKIP_A0093 723 711 cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false ); -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r187 r188 93 93 m_pcTrCoeffCr = NULL; 94 94 #if ADAPTIVE_QP_SELECTION 95 #if FIX_MEM_LEAKS96 95 m_ArlCoeffIsAliasedAllocation = false; 97 96 m_pcArlCoeffY = NULL; 98 97 m_pcArlCoeffCb = NULL; 99 98 m_pcArlCoeffCr = NULL; 100 #endif101 99 #endif 102 100 … … 255 253 m_pcArlCoeffCb = m_pcGlbArlCoeffCb; 256 254 m_pcArlCoeffCr = m_pcGlbArlCoeffCr; 257 #if FIX_MEM_LEAKS258 255 m_ArlCoeffIsAliasedAllocation = true; 259 #endif260 256 } 261 257 else … … 381 377 if ( m_pcTrCoeffCr ) { xFree(m_pcTrCoeffCr); m_pcTrCoeffCr = NULL; } 382 378 #if ADAPTIVE_QP_SELECTION 383 #if FIX_MEM_LEAKS384 379 if (!m_ArlCoeffIsAliasedAllocation) 385 380 { … … 388 383 xFree(m_pcArlCoeffCr); m_pcArlCoeffCr = 0; 389 384 } 390 #endif391 385 if ( m_pcGlbArlCoeffY ) { xFree(m_pcGlbArlCoeffY); m_pcGlbArlCoeffY = NULL; } 392 386 if ( m_pcGlbArlCoeffCb ) { xFree(m_pcGlbArlCoeffCb); m_pcGlbArlCoeffCb = NULL; } … … 2397 2391 #if H0204_QP_PREDICTION 2398 2392 UInt lPartIdx, aPartIdx; 2399 #if FIX_COMP_WARNING_INIT2400 2393 lPartIdx = 0; 2401 2394 aPartIdx = 0; 2402 #endif2403 2395 TComDataCU* cULeft = getQpMinCuLeft ( lPartIdx, m_uiAbsIdxInLCU + uiCurrAbsIdxInLCU ); 2404 2396 TComDataCU* cUAbove = getQpMinCuAbove( aPartIdx, m_uiAbsIdxInLCU + uiCurrAbsIdxInLCU ); -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComDataCU.h
r187 r188 159 159 Int* m_pcArlCoeffCb; ///< ARL coefficient buffer (Cb) 160 160 Int* m_pcArlCoeffCr; ///< ARL coefficient buffer (Cr) 161 #if FIX_MEM_LEAKS162 161 Bool m_ArlCoeffIsAliasedAllocation; ///< ARL coefficient buffer is an alias of the global buffer and must not be free()'d 163 #endif164 162 165 163 static Int* m_pcGlbArlCoeffY; ///< ARL coefficient buffer (Y) -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComPicSym.cpp
r121 r188 123 123 124 124 125 #if FIX_MEM_LEAKS126 125 for( i=0; i<(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ ) 127 126 { 128 127 if ( m_apcTComTile[i] ) delete m_apcTComTile[i]; 129 128 } 130 #endif131 129 132 130 delete [] m_apcTComTile; -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r183 r188 1704 1704 , m_cabacInitPresentFlag (false) 1705 1705 , m_encCABACTableIdx (0) 1706 #if POZNAN_CABAC_INIT_FLAG_FIX1706 #if FIX_POZNAN_CABAC_INIT_FLAG 1707 1707 , m_encPrevPOC (0) 1708 1708 #endif -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComSlice.h
r181 r188 883 883 Bool m_cabacInitPresentFlag; 884 884 UInt m_encCABACTableIdx; // Used to transmit table selection across slices 885 #if POZNAN_CABAC_INIT_FLAG_FIX885 #if FIX_POZNAN_CABAC_INIT_FLAG 886 886 UInt m_encPrevPOC; 887 887 #endif … … 1018 1018 Bool getCabacInitPresentFlag() { return m_cabacInitPresentFlag; } 1019 1019 UInt getEncCABACTableIdx() { return m_encCABACTableIdx; } 1020 #if POZNAN_CABAC_INIT_FLAG_FIX1020 #if FIX_POZNAN_CABAC_INIT_FLAG 1021 1021 Void setEncPrevPOC(UInt uiPOC) { m_encPrevPOC = uiPOC; } 1022 1022 UInt getEncPrevPOC() { return m_encPrevPOC; } -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TComYuv.cpp
r118 r188 409 409 410 410 #if LG_RESTRICTEDRESPRED_M24766 411 void411 Void 412 412 TComYuv::getPUXYOffset(PartSize uhPartitionSize, Int iWidth, Int iHeight, Int &iXOffset, Int &iYOffset) 413 413 { -
branches/HTM-4.1-dev0/source/Lib/TLibCommon/TypeDef.h
r187 r188 44 44 ///// ***** FIXES ********* 45 45 // A 46 #define FIXES 1 47 #define POZNAN_CABAC_INIT_FLAG_FIX 1 48 #define FIX_DECODING_WO_WRITING 1 49 #define FIX_INIT_ROM 1 50 #define FIX_VIRT_DESTRUCTOR 1 51 #define FIX_MEM_LEAKS 1 52 #define FIX_VSO_SETUP 1 53 #define FIX_COMP_WARNING_INIT 1 54 #define FIX_RDO_MACRO 1 46 #define FIX_POZNAN_CABAC_INIT_FLAG 1 55 47 #define FIX_LG_RESTRICTEDRESPRED_M24766 1 56 #define FIX_REMOVE_TILE_DEPENDENCE 157 #define FIX_DBL_CONTROL_DEFAULT 158 48 59 49 // B … … 70 60 #define HHI_DMM_WEDGE_INTRA 1 // depth model modes independent on texture (explicit and intra-predicted Wedgelet prediction) 71 61 #define HHI_DMM_PRED_TEX 1 // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction ) 72 #define LGE_EDGE_INTRA_A0070 1 // JCT 2-A007062 #define LGE_EDGE_INTRA_A0070 1 // JCT3V-A0070 73 63 #define RWTH_SDC_DLT_B0036 1 // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table 74 64 #define HHIQC_DMMFASTSEARCH_B0039 1 // JCT3V-B0039: fast Wedgelet search for DMM modes 1 and 3 … … 79 69 #define QC_MRG_CANS_B0048 1 // JCT3V-B0048, B0086, B0069 80 70 #if QC_MRG_CANS_B0048 81 #define OL_DISMV_POS_B0069 1 // different pos for dispa irty MV candidate, B006982 #endif 83 #define MTK_INTERVIEW_MERGE_A0049 1 // JCT 2-A0049 second part71 #define OL_DISMV_POS_B0069 1 // different pos for disparity MV candidate, B0069 72 #endif 73 #define MTK_INTERVIEW_MERGE_A0049 1 // JCT3V-A0049 second part 84 74 #if HHI_INTER_VIEW_MOTION_PRED 85 75 #define SAIT_IMPROV_MOTION_PRED_M24829 1 // improved inter-view motion vector prediction … … 116 106 #define HHI_VSO_LS_TABLE_M23714 1 // m23714, enable table base Lagrange multiplier optimization 117 107 #define HHI_VSO_DIST_INT 1 // Allow negative synthesized view distortion change 108 #define HHI_VSO_COLOR_PLANES 1 // Compute VSO distortion on color planes 109 #define HHI_VSO_RM_ASSERTIONS 0 // Output VSO assertions 118 110 #define HHI_VSO_SYNTH_DIST_OUT 0 // Output of synthesized view distortion instead of depth distortion in encoder output 119 #define HHI_VSO_COLOR_PLANES 1 // Compute VSO distortion on color planes 120 #define HHI_VSO_RM_ASSERTIONS 0 // output VSO assertions 121 #define HHI_VSO_SPEEDUP_A0033 1 // JCT2-A0033 modification 1 (changes in classes directly related the renderer model 122 // to are not covered by this define, since nearly the entire class has been changed) 123 #define HHI_VSO_SET_OPTIM 1 // remove unnecessary updates (works only with HHI_VSO_FIX 1 properly) 124 #define SAIT_VSO_EST_A0033 1 // JCT2-A0033 modification 3 125 #define LGE_VSO_EARLY_SKIP_A0093 1 // JCT2-A0093 modification 4 126 #define LGE_WVSO_A0119 1 // JCT2-A0119 & JCT3V-B0131 Depth Metric with a weighted depth fidelity term 111 #define SAIT_VSO_EST_A0033 1 // JCT3V-A0033 modification 3 112 #define LGE_VSO_EARLY_SKIP_A0093 1 // JCT3V-A0093 modification 4 113 #define LGE_WVSO_A0119 1 // JCT3V-A0119 & JCT3V-B0131 Depth Metric with a weighted depth fidelity term 127 114 128 115 … … 408 395 // This is here just to perform timing tests -- OL_FLUSH_ALIGN should be 0 for WPP. 409 396 410 #define RVM_VCEGAM10_M 4397 #define RVM_VCEGAM10_M 4 411 398 412 399 #define PLANAR_IDX 0 … … 775 762 }; 776 763 777 #if HHI_VSO_SPEEDUP_A0033778 764 779 765 enum BlenMod … … 785 771 BLEND_GEN = 3 786 772 }; 787 #endif788 773 789 774 /// supported prediction type -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncCfg.h
r181 r188 279 279 Int m_iColumnRowInfoPresent; 280 280 Int m_iUniformSpacingIdr; 281 #if FIX_REMOVE_TILE_DEPENDENCE282 #else283 Int m_iTileBoundaryIndependenceIdr;284 #endif285 281 Int m_iNumColumnsMinus1; 286 282 UInt* m_puiColumnWidth; -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r187 r188 1348 1348 1349 1349 #if HHI_VSO 1350 #if HHI_VSO_SET_OPTIM1351 #else1352 if( m_pcRdCost->getUseRenModel() ) // necessary ??1353 {1354 UInt uiWidth = m_ppcRecoYuvBest[uhNextDepth]->getWidth ( );1355 UInt uiHeight = m_ppcRecoYuvBest[uhNextDepth]->getHeight ( );1356 Pel* piSrc = m_ppcRecoYuvBest[uhNextDepth]->getLumaAddr( 0 );1357 UInt uiSrcStride = m_ppcRecoYuvBest[uhNextDepth]->getStride ( );1358 m_pcRdCost->setRenModelData( pcSubBestPartCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );1359 }1360 #endif1361 1350 #endif 1362 1351 } -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r187 r188 449 449 #endif 450 450 451 #if HHI_VSO_SPEEDUP_A0033452 #else453 if ( iVSOMode == 4 )454 {455 m_pcEncTop->getEncTop()->setupRenModel( pcSlice->getPOC(), pcSlice->getViewId(), m_pcEncTop->isDepthCoder() ? 1 : 0 );456 }457 else458 {459 AOT(true);460 }461 #endif462 451 463 452 #if SAIT_VSO_EST_A0033 -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncGOP.h
r101 r188 137 137 138 138 Void preLoopFilterPicAll ( TComPic* pcPic, UInt64& ruiDist, UInt64& ruiBits ); 139 #if HHI_VSO_SPEEDUP_A0033140 139 TEncTop* getEncTop() { return m_pcEncTop; } 141 #endif142 140 143 141 TEncSlice* getSliceEncoder() { return m_pcSliceEncoder; } -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r187 r188 307 307 } 308 308 309 #if CABAC_INIT_FLAG && POZNAN_CABAC_INIT_FLAG_FIX309 #if CABAC_INIT_FLAG && FIX_POZNAN_CABAC_INIT_FLAG 310 310 m_pcSlice->getPPS()->setEncPrevPOC( m_pcSlice->getPOC() ); 311 311 #endif -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r187 r188 6513 6513 6514 6514 Dist uiActDist = RDO_DIST_MAX; 6515 #if FIX_RDO_MACRO6516 6515 #if SAIT_VSO_EST_A0033 6517 6516 if ( m_pcRdCost->getUseEstimatedVSD() ) … … 6544 6543 #endif // LGE_WVSO_A0119 6545 6544 } 6546 #else // FIX_RDO_MACRO6547 #if SAIT_VSO_EST_A00336548 if ( m_pcRdCost->getUseEstimatedVSD() )6549 {6550 TComPicYuv* pcVirRec = m_pcRdCost->getVideoRecPicYuv();6551 TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();6552 uiActDist = m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight );6553 #if LGE_WVSO_A01196554 if ( m_pcRdCost->getUseWVSO() )6555 {6556 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();6557 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();6558 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD );6559 uiActDist = (iDWeight * iD + iVSDWeight * (Dist) uiActDist) / ( iDWeight + iVSDWeight);6560 }6561 #endif // LGE_WVSO_A01196562 }6563 else6564 #else // SAIT_VSO_EST_A0033 <-- wrong #else statement should be #endif6565 {6566 uiActDist = m_pcRdCost->getDistVS( pcCU, 0, piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, 0 );6567 #if LGE_WVSO_A01196568 if ( m_pcRdCost->getUseWVSO() )6569 {6570 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();6571 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight();6572 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD );6573 uiActDist = (iDWeight * iD + iVSOWeight * (Dist) uiActDist) / ( iDWeight + iVSOWeight);6574 }6575 #endif // LGE_WVSO_A01196576 }6577 #endif // SAIT_VSO_EST_A0033 <-- wrong #endif should be removed6578 #endif // FIX_RDO_MACRO6579 6545 6580 6546 if( uiActDist < uiBestDist || uiBestDist == RDO_DIST_MAX ) -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
r187 r188 38 38 #include "TEncTop.h" 39 39 #include "TEncSlice.h" 40 #if HHI_VSO_SPEEDUP_A003341 40 #include "../../App/TAppEncoder/TAppEncTop.h" 42 #endif43 41 #include <math.h> 44 42 … … 659 657 m_uiPicDist = 0; 660 658 661 #if CABAC_INIT_FLAG && POZNAN_CABAC_INIT_FLAG_FIX659 #if CABAC_INIT_FLAG && FIX_POZNAN_CABAC_INIT_FLAG 662 660 Bool bReset =(pcSlice->getPOC() == 0) || 663 661 (pcSlice->getPOC() % m_pcCfg->getIntraPeriod() == 0) || … … 823 821 UInt uiTileLCUX = 0; 824 822 825 #if HHI_VSO_SPEEDUP_A0033826 823 Int iLastPosY = -1; 827 #endif828 824 829 825 // for every CU in slice … … 838 834 pcCU->initCU( rpcPic, uiCUAddr ); 839 835 840 #if HHI_VSO_SPEEDUP_A0033841 836 if ( m_pcRdCost->getUseRenModel() ) 842 837 { … … 852 847 } 853 848 } 854 #endif855 849 856 850 // inherit from TR if necessary, select substream to use. -
branches/HTM-4.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r181 r188 91 91 { 92 92 // initialize global variables 93 #if FIX_INIT_ROM94 93 if( m_viewId == 0 && m_isDepth == false ) 95 94 { 96 #endif97 95 initROM(); 98 #if FIX_INIT_ROM 99 } 100 #endif 96 } 101 97 102 98 … … 605 601 // mark it should be extended 606 602 rpcPic->getPicYuvRec()->setBorderExtension(false); 607 #if FIXES608 603 rpcPic->getPicYuvOrg()->setBorderExtension(false); 609 #endif610 604 } 611 605 … … 1106 1100 1107 1101 // # substreams is "per tile" when tiles are independent. 1108 #if FIX_REMOVE_TILE_DEPENDENCE1109 1102 if ( m_iWaveFrontSynchro ) 1110 #else1111 if (m_iTileBoundaryIndependenceIdr && m_iWaveFrontSynchro)1112 #endif1113 1103 { 1114 1104 m_cPPS.setNumSubstreams(m_iWaveFrontSubstreams * (m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1)); -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenImage.cpp
r101 r188 106 106 } 107 107 108 #if HHI_VSO_SPEEDUP_A0033109 108 template<typename T> 110 109 Void TRenImage<T>::getDataAndStrides( T** pptData, Int* piStrides ) … … 127 126 } 128 127 } 129 #endif130 128 131 129 template<typename T> -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenImage.h
r101 r188 69 69 TRenImagePlane<T>** getPlanes() const; 70 70 71 #if HHI_VSO_SPEEDUP_A003372 71 Void getDataAndStrides( T** pptData, Int* piStrides ); 73 72 Void getWidthAndHeight( Int* piWidths, Int* piHeights ); 74 #endif75 73 76 74 UInt getNumberOfPlanes() const; -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenModel.cpp
r145 r188 42 42 m_iWidth = -1; 43 43 m_iHeight = -1; 44 #if FIX_VSO_SETUP45 44 m_iUsedHeight = -1; 46 #endif47 45 m_iNumOfBaseViews = -1; 48 46 m_iSampledWidth = -1; … … 437 435 { 438 436 AOT( iViewNum < 0 || iViewNum > m_iNumOfBaseViews ); 439 #if FIX_VSO_SETUP440 437 AOF( pcPicYuvVideoData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvVideoData->getWidth() == m_iWidth ); 441 438 AOF( pcPicYuvDepthData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvDepthData->getWidth() == m_iWidth ); 442 #else443 AOF( pcPicYuvVideoData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvVideoData->getWidth() == m_iWidth );444 AOF( pcPicYuvDepthData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvDepthData->getWidth() == m_iWidth );445 #endif446 439 447 440 pcPicYuvVideoData->extendPicBorder(); 448 441 449 #if FIX_VSO_SETUP450 442 TRenFilter::sampleHorUp ( m_iShiftPrec, pcPicYuvVideoData->getLumaAddr() + m_uiHorOff * pcPicYuvVideoData->getStride () , pcPicYuvVideoData->getStride() , m_iWidth, m_iUsedHeight, m_aapiCurVideoPel[ iViewNum ][0], m_aaiCurVideoStrides[iViewNum][0] ); 451 443 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCbAddr() + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiCurVideoPel[ iViewNum ][1], m_aaiCurVideoStrides[iViewNum][1] ); 452 444 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCrAddr() + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiCurVideoPel[ iViewNum ][2], m_aaiCurVideoStrides[iViewNum][2] ); 453 445 TRenFilter::copy ( pcPicYuvDepthData->getLumaAddr() + m_uiHorOff * pcPicYuvDepthData->getStride () , pcPicYuvDepthData->getStride(), m_iWidth, m_iUsedHeight, m_apiCurDepthPel [ iViewNum], m_aiCurDepthStrides [iViewNum] ); 454 #else455 TRenFilter::sampleHorUp ( m_iShiftPrec, pcPicYuvVideoData->getLumaAddr() + m_uiHorOff * pcPicYuvVideoData->getStride () , pcPicYuvVideoData->getStride() , m_iWidth, m_iHeight, m_aapiCurVideoPel[ iViewNum ][0], m_aaiCurVideoStrides[iViewNum][0] );456 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCbAddr() + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiCurVideoPel[ iViewNum ][1], m_aaiCurVideoStrides[iViewNum][1] );457 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCrAddr() + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiCurVideoPel[ iViewNum ][2], m_aaiCurVideoStrides[iViewNum][2] );458 TRenFilter::copy ( pcPicYuvDepthData->getLumaAddr() + m_uiHorOff * pcPicYuvDepthData->getStride () , pcPicYuvDepthData->getStride(), m_iWidth, m_iHeight, m_apiCurDepthPel [ iViewNum], m_aiCurDepthStrides [iViewNum] );459 #endif460 446 461 447 // Used for rendering reference pic from original video data … … 465 451 if ( m_abSetupVideoFromOrgForView[iViewNum] ) 466 452 { 467 #if FIX_VSO_SETUP468 453 AOF( pcPicYuvOrgVideoData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvOrgVideoData->getWidth() == m_iWidth ); 469 454 pcPicYuvOrgVideoData->extendPicBorder(); … … 471 456 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCbAddr() + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][1], m_aaiOrgVideoStrides[iViewNum][1] ); 472 457 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCrAddr() + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][2], m_aaiOrgVideoStrides[iViewNum][2] ); 473 #else474 AOF( pcPicYuvOrgVideoData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvOrgVideoData->getWidth() == m_iWidth );475 pcPicYuvOrgVideoData->extendPicBorder();476 TRenFilter::sampleHorUp ( m_iShiftPrec, pcPicYuvOrgVideoData->getLumaAddr() + m_uiHorOff * pcPicYuvOrgVideoData->getStride() , pcPicYuvOrgVideoData->getStride() , m_iWidth, m_iHeight, m_aapiOrgVideoPel[ iViewNum ][0], m_aaiOrgVideoStrides[iViewNum][0] );477 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCbAddr() + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][1], m_aaiOrgVideoStrides[iViewNum][1] );478 TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCrAddr() + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][2], m_aaiOrgVideoStrides[iViewNum][2] );479 #endif480 458 } 481 459 482 460 if ( m_abSetupDepthFromOrgForView[iViewNum] ) 483 461 { 484 #if FIX_VSO_SETUP485 462 AOF( pcPicYuvOrgDepthData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvOrgDepthData->getWidth() == m_iWidth ); 486 463 TRenFilter::copy ( pcPicYuvOrgDepthData->getLumaAddr() + m_uiHorOff * pcPicYuvOrgDepthData->getStride() , pcPicYuvOrgDepthData->getStride(), m_iWidth, m_iUsedHeight, m_apiOrgDepthPel [ iViewNum], m_aiOrgDepthStrides [iViewNum] ); 487 #else488 AOF( pcPicYuvOrgDepthData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvOrgDepthData->getWidth() == m_iWidth );489 TRenFilter::copy ( pcPicYuvOrgDepthData->getLumaAddr() + m_uiHorOff * pcPicYuvOrgDepthData->getStride() , pcPicYuvOrgDepthData->getStride(), m_iWidth, m_iHeight, m_apiOrgDepthPel [ iViewNum], m_aiOrgDepthStrides [iViewNum] );490 #endif491 464 } 492 465 } … … 497 470 AOT( iModelNum < 0 || iModelNum > m_iNumOfRenModels ); 498 471 499 #if FIX_VSO_SETUP500 472 m_apcRenModels[iModelNum]->setupPart( m_uiHorOff, m_iUsedHeight ); 501 #endif502 473 503 474 // Switch model to original data for setup if given to render reference … … 520 491 } 521 492 522 #if FIX_VSO_SETUP523 493 m_apcRenModels[iModelNum]->setup ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, false ); 524 #else525 m_apcRenModels[iModelNum]->setup ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, false, m_uiHorOff );526 #endif527 494 528 495 // Setup to Org … … 545 512 546 513 // setup keeping reference rendered from original data 547 #if FIX_VSO_SETUP548 514 m_apcRenModels[iModelNum]->setup ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, true ); 549 #else550 m_apcRenModels[iModelNum]->setup ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, true, m_uiHorOff);551 #endif552 515 } 553 516 } … … 579 542 580 543 581 #if FIX_VSO_SETUP582 544 Void 583 545 TRenModel::setupPart ( UInt uiHorOff, Int iUsedHeight ) … … 587 549 m_iUsedHeight = iUsedHeight; 588 550 } 589 #else590 Void591 TRenModel::setHorOffset ( UInt uiHorOff )592 {593 m_uiHorOff = uiHorOff;594 }595 #endif596 551 597 552 #if LGE_VSO_EARLY_SKIP_A0093 … … 606 561 607 562 AOT( iWidth + iStartPosX > m_iWidth ); 608 #if FIX_VSO_SETUP609 563 AOT( iHeight + iStartPosY > m_iUsedHeight ); 610 #else611 AOT( iHeight + iStartPosY > m_iHeight );612 #endif613 564 614 565 AOT( iStartPosX < 0); … … 644 595 645 596 iWidth = min(iWidth , m_iWidth - iStartPosX ); 646 #if FIX_VSO_SETUP647 597 iHeight = min(iHeight, m_iUsedHeight - iStartPosY ); 648 #else649 iHeight = min(iHeight, m_iHeight - iStartPosY );650 #endif651 598 652 599 AOT( iStartPosX < 0); … … 684 631 TRenModel::getSynthVideo( Int iModelNum, Int iViewNum, TComPicYuv* pcPicYuv ) 685 632 { 686 #if FIX_VSO_SETUP687 633 m_apcRenModels[iModelNum]->getSynthVideo(iViewNum, pcPicYuv ); 688 #else689 m_apcRenModels[iModelNum]->getSynthVideo(iViewNum, pcPicYuv, m_uiHorOff );690 #endif691 634 } 692 635 … … 694 637 TRenModel::getSynthDepth( Int iModelNum, Int iViewNum, TComPicYuv* pcPicYuv ) 695 638 { 696 #if HHI_VSO_SPEEDUP_A0033 && !FIX_VSO_SETUP697 m_apcRenModels[iModelNum]->getSynthDepth(iViewNum, pcPicYuv, m_uiHorOff );698 #else699 639 m_apcRenModels[iModelNum]->getSynthDepth(iViewNum, pcPicYuv ); 700 #endif701 640 } 702 641 … … 705 644 { 706 645 TComPicYuv cPicYuvSynth; 707 #if FIX_VSO_SETUP708 646 cPicYuvSynth.create( m_iWidth, m_iUsedHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth ); 709 #else710 cPicYuvSynth.create( m_iWidth, m_iHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth );711 #endif712 647 713 648 TComPicYuv cPicYuvTempRef; 714 #if FIX_VSO_SETUP715 649 cPicYuvTempRef.create( m_iWidth, m_iUsedHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth); 716 #else717 cPicYuvTempRef.create( m_iWidth, m_iHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth);718 #endif719 650 720 651 Int64 iSSEY = 0; … … 724 655 for (Int iCurModel = 0; iCurModel < m_iNumOfCurRenModels; iCurModel++) 725 656 { 726 #if FIX_VSO_SETUP727 657 m_apcCurRenModels[iCurModel]->getSynthVideo( m_aiCurPosInModels[iCurModel], &cPicYuvSynth ); 728 658 m_apcCurRenModels[iCurModel]->getRefVideo ( m_aiCurPosInModels[iCurModel], &cPicYuvTempRef ); … … 731 661 iSSEU += TRenFilter::SSE( cPicYuvSynth.getCbAddr() , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, cPicYuvTempRef.getCbAddr() , cPicYuvTempRef.getCStride()); 732 662 iSSEV += TRenFilter::SSE( cPicYuvSynth.getCrAddr() , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, cPicYuvTempRef.getCrAddr() , cPicYuvTempRef.getCStride()); 733 #else734 m_apcCurRenModels[iCurModel]->getSynthVideo( m_aiCurPosInModels[iCurModel], &cPicYuvSynth, 0 );735 TComPicYuv* pcPicYuvRef = &cPicYuvTempRef;736 m_apcCurRenModels[iCurModel]->getRefVideo ( m_aiCurPosInModels[iCurModel], pcPicYuvRef , 0 );737 738 iSSEY += TRenFilter::SSE( cPicYuvSynth.getLumaAddr(), cPicYuvSynth.getStride(), m_iWidth, m_iHeight , pcPicYuvRef->getLumaAddr(), pcPicYuvRef->getStride() );739 iSSEU += TRenFilter::SSE( cPicYuvSynth.getCbAddr() , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iHeight >> 1, pcPicYuvRef->getCbAddr() , pcPicYuvRef->getCStride());740 iSSEV += TRenFilter::SSE( cPicYuvSynth.getCrAddr() , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iHeight >> 1, pcPicYuvRef->getCrAddr() , pcPicYuvRef->getCStride());741 #endif742 663 } 743 664 -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenModel.h
r124 r188 62 62 63 63 // Set horizontal offset 64 #if FIX_VSO_SETUP65 64 Void setupPart ( UInt uiHorOff, Int iUsedHeight ); 66 #else67 Void setHorOffset ( UInt uiHorOff );68 #endif69 65 70 66 // Set Mode … … 104 100 Int m_iSampledWidth; 105 101 Int m_iPad; 106 #if FIX_VSO_SETUP107 102 Int m_iUsedHeight; // height currently used in buffer, whereas m_iHeight is the total height of the buffer 108 #endif109 103 110 104 111 105 Int m_iNumOfBaseViews; 112 106 113 #if HHI_VSO_SPEEDUP_A0033114 107 // Horizontal Offset in input data 115 108 UInt m_uiHorOff; 116 #endif117 109 118 110 /// Current Error Type /// -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenSingleModel.cpp
r145 r188 44 44 m_iHeight = -1; 45 45 m_iStride = -1; 46 #if FIX_VSO_SETUP47 46 m_iUsedHeight = -1; 48 47 m_iHorOffset = -1; 49 #endif50 48 m_iMode = -1; 51 49 m_iPad = PICYUV_PAD; … … 104 102 if ( m_pcInputSamples [1] ) delete[] m_pcInputSamples [1]; 105 103 106 #if FIX_MEM_LEAKS107 104 if ( m_pcOutputSamples ) delete[] m_pcOutputSamples ; 108 #else 109 if ( m_pcOutputSamples ) delete m_pcOutputSamples ; 110 #endif 111 112 #if FIX_MEM_LEAKS 105 113 106 if ( m_piInvZLUTLeft ) delete[] m_piInvZLUTLeft ; 114 107 if ( m_piInvZLUTRight ) delete[] m_piInvZLUTRight; … … 117 110 if ( m_aapiRefVideoPel[1] ) delete[] ( m_aapiRefVideoPel[1] - ( m_aiRefVideoStrides[1] * m_iPad + m_iPad ) ); 118 111 if ( m_aapiRefVideoPel[2] ) delete[] ( m_aapiRefVideoPel[2] - ( m_aiRefVideoStrides[2] * m_iPad + m_iPad ) ); 119 #endif120 112 } 121 113 … … 197 189 Int iOffsetX = ( iViewPos == VIEWPOS_RIGHT ) ? 1 : 0; 198 190 199 #if FIX_VSO_SETUP200 191 for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ ) 201 #else202 for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )203 #endif204 192 { 205 193 if ( iViewPos == VIEWPOS_RIGHT ) … … 245 233 246 234 } 247 #if FIX_VSO_SETUP248 235 template <BlenMod iBM, Bool bBitInc> Void 249 236 TRenSingleModelC<iBM,bBitInc>::setupPart ( UInt uiHorOffset, Int iUsedHeight ) … … 254 241 m_iHorOffset = (Int) uiHorOffset; 255 242 } 256 #endif257 243 258 244 template <BlenMod iBM, Bool bBitInc> Void 259 #if FIX_VSO_SETUP260 245 TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference ) 261 #else262 TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference, UInt uiHorOff )263 #endif264 246 { 265 247 AOT( !m_bUseOrgRef && pcOrgVideo ); … … 275 257 if ( pcOrgVideo && !bKeepReference ) 276 258 { 277 #if FIX_VSO_SETUP278 259 TRenFilter::copy( pcOrgVideo->getLumaAddr() + m_iHorOffset * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth, m_iUsedHeight, m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]); 279 260 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr() + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]); 280 261 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCrAddr() + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]); 281 #else282 TRenFilter::copy( pcOrgVideo->getLumaAddr() + uiHorOff * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth, m_iHeight, m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]);283 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr() + (uiHorOff >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]);284 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCrAddr() + (uiHorOff >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]);285 #endif286 262 xSetStructRefView(); 287 263 } … … 290 266 xResetStructError(); 291 267 xInitSampleStructs(); 292 #if FIX_VSO_SETUP293 268 switch ( m_iMode ) 294 269 { … … 320 295 AOT(true); 321 296 } 322 #else323 switch ( m_iMode )324 {325 case 0:326 #if LGE_VSO_EARLY_SKIP_A0093327 xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false );328 #else329 xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );330 #endif331 break;332 case 1:333 #ifdef LGE_VSO_EARLY_SKIP_A0093334 xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);335 #else336 xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );337 #endif338 break;339 case 2:340 TRenFilter::setupZLUT( true, 30, iDistToLeft, ppiBaseShiftLutLeft, ppiBaseShiftLutRight, m_iBlendZThres, m_iBlendDistWeight, m_piInvZLUTLeft, m_piInvZLUTRight );341 #ifdef LGE_VSO_EARLY_SKIP_A0093342 xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false);343 xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);344 #else345 xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );346 xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );347 #endif348 break;349 default:350 AOT(true);351 }352 #endif353 297 354 298 // Get Rendered View as Reference … … 413 357 #endif 414 358 415 #if FIX_VSO_SETUP416 359 for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ ) 417 #else418 for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )419 #endif420 360 { 421 361 for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ ) … … 470 410 #endif 471 411 472 #if FIX_VSO_SETUP473 412 for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ ) 474 #else475 for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )476 #endif477 413 { 478 414 for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ ) … … 617 553 } 618 554 619 #if FIX_VSO_SETUP620 555 template <BlenMod iBM, Bool bBitInc> Void 621 556 TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv ) … … 648 583 #endif 649 584 } 650 #else 651 template <BlenMod iBM, Bool bBitInc> Void 652 TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset ) 653 { 654 AOT( pcPicYuv->getWidth() != m_iWidth ); 655 AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOffset ); 656 657 #if HHI_VSO_COLOR_PLANES 658 Pel RenModelOutPels::* piText[3] = { NULL, NULL, NULL }; 659 xGetSampleStrTextPtrs(iViewPos, piText[0], piText[1], piText[2]); 660 661 // Temp image for chroma down sampling 662 PelImage cTempImage( m_iWidth, m_iHeight, 3, 0); 663 664 Int aiStrides[3]; 665 Pel* apiData [3]; 666 667 cTempImage.getDataAndStrides( apiData, aiStrides ); 668 669 for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ ) 670 { 671 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight); 672 } 673 xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset ); 674 #else 675 Pel RenModelOutPels::* piY; 676 xGetSampleStrTextPtrs(iViewPos, piY); 677 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piY, pcPicYuv->getLumaAddr() + uiHorOffset * pcPicYuv->getStride(), pcPicYuv->getStride(), m_iWidth, m_iHeight ); 678 pcPicYuv->setChromaTo( 128 << g_uiBitIncrement ); 679 #endif 680 } 681 #endif 682 683 #if FIX_VSO_SETUP 585 684 586 template <BlenMod iBM, Bool bBitInc> Void 685 587 TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv ) … … 695 597 } 696 598 697 #else 698 template <BlenMod iBM, Bool bBitInc> Void 699 TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOff ) 700 { 701 AOT( iViewPos != 0 && iViewPos != 1); 702 AOT( pcPicYuv->getWidth() != m_iWidth ); 703 AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOff ); 704 705 Pel RenModelOutPels::* piD = 0; 706 xGetSampleStrDepthPtrs(iViewPos, piD); 707 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piD, pcPicYuv->getLumaAddr() + pcPicYuv->getStride() * uiHorOff, pcPicYuv->getStride(), m_iWidth, m_iHeight ); 708 pcPicYuv->setChromaTo( 128 << g_uiBitIncrement ); 709 } 710 #endif 711 712 #if FIX_VSO_SETUP 599 713 600 template <BlenMod iBM, Bool bBitInc> Void 714 601 TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv ) … … 742 629 #endif 743 630 } 744 #else745 template <BlenMod iBM, Bool bBitInc> Void746 TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset )747 {748 AOT( pcPicYuv->getWidth() != m_iWidth );749 AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOffset);750 751 #if HHI_VSO_COLOR_PLANES752 Pel RenModelOutPels::* piText[3];753 piText[0] = &RenModelOutPels::iYRef;754 piText[1] = &RenModelOutPels::iURef;755 piText[2] = &RenModelOutPels::iVRef;756 757 // Temp image for chroma down sampling758 759 PelImage cTempImage( m_iWidth, m_iHeight, 3, 0);760 Int aiStrides[3];761 Pel* apiData [3];762 763 cTempImage.getDataAndStrides( apiData, aiStrides );764 765 for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ )766 {767 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight);768 }769 770 xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset );771 #else772 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, &RenModelOutPels::iYRef, pcPicYuv->getLumaAddr() * pcPicYuv->getStride() + uiHorOffset, pcPicYuv->getStride(), m_iWidth, m_iHeight );773 pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );774 #endif775 }776 #endif777 631 778 632 template <BlenMod iBM, Bool bBitInc> RMDist … … 2018 1872 } 2019 1873 2020 #if FIX_VSO_SETUP2021 1874 template <BlenMod iBM, Bool bBitInc> Void 2022 1875 TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget ) … … 2026 1879 TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCrAddr () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() ); 2027 1880 } 2028 #else2029 template <BlenMod iBM, Bool bBitInc> Void2030 TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget, UInt uiHorOffset )2031 {2032 TRenFilter::copy ( ppiSrcVideoPel[0], piStrides[0], m_iWidth, m_iHeight, rpcPicYuvTarget->getLumaAddr() + uiHorOffset * rpcPicYuvTarget->getStride() , rpcPicYuvTarget->getStride () );2033 TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[1], piStrides[1], m_iWidth, m_iHeight, rpcPicYuvTarget->getCbAddr () + (uiHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );2034 TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iHeight, rpcPicYuvTarget->getCrAddr () + (uiHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );2035 }2036 #endif2037 1881 2038 1882 template class TRenSingleModelC<BLEND_NONE ,true>; -
branches/HTM-4.1-dev0/source/Lib/TLibRenderer/TRenSingleModel.h
r124 r188 69 69 public: 70 70 71 #if FIX_VIRT_DESTRUCTOR72 71 virtual ~TRenSingleModel() { } 73 #endif74 72 #if LGE_VSO_EARLY_SKIP_A0093 75 73 virtual Void create ( Int iMode, Int iWidth, Int iHeight, Int iShiftPrec, Int*** aaaiSubPelShiftTable, Int iHoleMargin, Bool bUseOrgRef, Int iBlendMode, Bool bEarlySkip ) = 0; … … 80 78 // Set Frame dependent data 81 79 virtual Void setLRView ( Int iViewPos, Pel** apiCurVideoPel, Int* aiCurVideoStride, Pel* piCurDepthPel, Int iCurDepthStride ) = 0; 82 #if FIX_VSO_SETUP83 80 virtual Void setupPart ( UInt uiHorOffset, Int iUsedHeight ) = 0; 84 81 virtual Void setup ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference ) = 0; 85 #else86 virtual Void setup ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference, UInt uiHorOffset ) = 0;87 #endif88 82 89 83 // Set Data … … 103 97 virtual RMDist getDistVideo ( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData ) = 0; 104 98 105 #if FIX_VSO_SETUP106 99 virtual Void getSynthVideo ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0; 107 100 virtual Void getSynthDepth ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0; 108 101 virtual Void getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0; 109 #else110 virtual Void getSynthVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset ) = 0;111 virtual Void getSynthDepth ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset ) = 0;112 virtual Void getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset ) = 0;113 #endif114 102 }; 115 103 … … 181 169 // Set Frame dependent data 182 170 Void setLRView ( Int iViewPos, Pel** apiCurVideoPel, Int* aiCurVideoStride, Pel* piCurDepthPel, Int iCurDepthStride ); 183 #if FIX_VSO_SETUP184 171 Void setupPart ( UInt uiHorOffset, Int uiUsedHeight ); 185 172 Void setup ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference ); 186 #else187 Void setup ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight, Int** ppiBaseShiftLutRight, Int iDistToLeft, Bool bKeepReference, UInt uiHorOffset );188 #endif189 173 190 174 #if LGE_VSO_EARLY_SKIP_A0093 … … 203 187 RMDist getDistVideo ( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData ); 204 188 205 #if FIX_VSO_SETUP206 189 Void getSynthVideo ( Int iViewPos, TComPicYuv* pcPicYuv ); 207 190 Void getSynthDepth ( Int iViewPos, TComPicYuv* pcPicYuv ); 208 191 Void getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv ); 209 #else210 Void getSynthVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset );211 Void getSynthDepth ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset );212 Void getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset );213 #endif214 192 215 193 private: … … 293 271 Void xInitSampleStructs (); 294 272 Void xSetStructSynthViewAsRefView (); 295 #if FIX_VSO_SETUP296 273 Void xCopy2PicYuv ( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget ); 297 #else298 Void xCopy2PicYuv ( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget, UInt uiHorOffset );299 #endif300 274 301 275 template< typename S, typename T> 302 276 Void xCopyFromSampleStruct ( S* ptSource , Int iSourceStride, T S::* ptSourceElement, T* ptTarget, Int iTargetStride, Int iWidth, Int iHeight ) 303 277 { 304 #if FIX_VSO_SETUP305 278 AOT( iWidth != m_iWidth ); 306 279 for (Int iPosY = 0; iPosY < iHeight; iPosY++) 307 #else308 for (Int iPosY = 0; iPosY < m_iHeight; iPosY++)309 #endif310 280 { 311 281 for (Int iPosX = 0; iPosX < m_iWidth; iPosX++) … … 321 291 Void xCopyToSampleStruct ( T* ptSource , Int iSourceStride, S* ptTarget, Int iTargetStride, T S::* ptSourceElement, Int iWidth, Int iHeight ) 322 292 { 323 #if FIX_VSO_SETUP324 293 AOT( iWidth != m_iWidth ); 325 294 for (Int iPosY = 0; iPosY < iHeight; iPosY++) 326 #else327 for (Int iPosY = 0; iPosY < m_iHeight; iPosY++)328 #endif329 295 { 330 296 for (Int iPosX = 0; iPosX < m_iWidth; iPosX++) … … 344 310 Int m_iStride; 345 311 Int m_iPad; 346 #if FIX_VSO_SETUP347 312 Int m_iUsedHeight; 348 313 Int m_iHorOffset; 349 #endif350 314 351 315 Int m_iSampledWidth; 352 #if FIX_VSO_SETUP353 #else354 Int m_iSampledHeight;355 #endif356 316 Int m_iSampledStride; 357 317
Note: See TracChangeset for help on using the changeset viewer.