Changeset 1390 in 3DVCSoftware for branches/HTM-16.0-MV-draft-5/source/Lib/TLibCommon/TComRdCost.h
- Timestamp:
- 13 Nov 2015, 17:00:20 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-16.0-MV-draft-5/source/Lib/TLibCommon/TComRdCost.h
r1386 r1390 46 46 #include "TComSlice.h" 47 47 #include "TComRdCostWeightPrediction.h" 48 #if NH_3D_VSO49 #include "../TLibRenderer/TRenModel.h"50 #include "TComYuv.h"51 #include "TComTU.h"52 #endif53 48 54 49 //! \ingroup TLibCommon … … 57 52 class DistParam; 58 53 class TComPattern; 59 #if NH_3D_VSO60 class TComRdCost;61 #endif62 54 63 55 // ==================================================================================================================== … … 69 61 70 62 71 #if NH_3D_VSO72 typedef Dist (TComRdCost::*FpDistFuncVSO) ( Int, Int, Pel*, Int, Pel*, Int, UInt, UInt, Bool );73 #endif74 63 // ==================================================================================================================== 75 64 // Class definition … … 84 73 Int iStrideOrg; 85 74 Int iStrideCur; 86 #if NH_3D_VSO87 // SAIT_VSO_EST_A003388 Pel* pVirRec;89 Pel* pVirOrg;90 Int iStrideVir;91 #endif92 #if NH_3D_IC93 Bool bUseIC;94 #endif95 #if NH_3D_SDC_INTER96 Bool bUseSDCMRSAD;97 #endif98 75 Int iRows; 99 76 Int iCols; … … 130 107 iSubShift(0) 131 108 { 132 #if NH_3D_VSO133 // SAIT_VSO_EST_A0033134 pVirRec = NULL;135 pVirOrg = NULL;136 iStrideVir = 0;137 #endif138 #if NH_3D_SDC_INTER139 bUseSDCMRSAD = false;140 #endif141 109 } 142 110 }; … … 156 124 Double m_dLambdaMotionSSE[2 /* 0=standard, 1=for transquant bypass when mixed-lossless cost evaluation enabled*/]; 157 125 Double m_dFrameLambda; 158 #if NH_3D_VSO159 // SAIT_VSO_EST_A0033160 static Double m_dDisparityCoeff;161 #endif162 126 163 127 // for motion cost … … 165 129 Double m_motionLambda; 166 130 Int m_iCostScale; 167 #if NH_3D_DBBP168 Bool m_bUseMask;169 #endif170 131 171 132 public: 172 133 TComRdCost(); 173 134 virtual ~TComRdCost(); 174 #if NH_3D_VSO175 Double calcRdCost64( UInt64 uiBits , Dist64 uiDistortion, Bool bFlag = false, DFunc eDFunc = DF_DEFAULT );176 Double calcRdCost( Double numBits, Dist intDistortion, DFunc eDFunc = DF_DEFAULT );177 #else178 135 Double calcRdCost( Double numBits, Double distortion, DFunc eDFunc = DF_DEFAULT ); 179 #endif180 136 181 137 … … 185 141 186 142 Double getSqrtLambda () { return m_sqrtLambda; } 187 #if NH_3D_VSO188 // SAIT_VSO_EST_A0033189 Void setDisparityCoeff( Double dDisparityCoeff ) { m_dDisparityCoeff = dDisparityCoeff; }190 Double getDisparityCoeff() { return m_dDisparityCoeff; }191 #endif192 143 193 144 Double getLambda() { return m_dLambda; } … … 204 155 Void setDistParam( DistParam& rcDP, Int bitDepth, const Pel* p1, Int iStride1, const Pel* p2, Int iStride2, Int iWidth, Int iHeight, Bool bHadamard = false ); 205 156 206 #if NH_3D_DBBP207 Void setUseMask(Bool b) { m_bUseMask = b; }208 #endif209 157 210 158 Distortion calcHAD(Int bitDepth, const Pel* pi0, Int iStride0, const Pel* pi1, Int iStride1, Int iWidth, Int iHeight ); 211 159 212 #if NH_3D_ENC_DEPTH213 UInt calcVAR(Pel* pi0, Int stride, Int width, Int height, Int cuDepth, UInt maxCuWidth );214 #endif215 160 216 161 // for motion cost … … 242 187 static Distortion xGetSSE64 ( DistParam* pcDtParam ); 243 188 static Distortion xGetSSE16N ( DistParam* pcDtParam ); 244 #if NH_3D_IC || NH_3D_SDC_INTER245 static UInt xGetSADic ( DistParam* pcDtParam );246 static UInt xGetSAD4ic ( DistParam* pcDtParam );247 static UInt xGetSAD8ic ( DistParam* pcDtParam );248 static UInt xGetSAD16ic ( DistParam* pcDtParam );249 static UInt xGetSAD32ic ( DistParam* pcDtParam );250 static UInt xGetSAD64ic ( DistParam* pcDtParam );251 static UInt xGetSAD16Nic ( DistParam* pcDtParam );252 #endif253 189 254 190 static Distortion xGetSAD ( DistParam* pcDtParam ); … … 259 195 static Distortion xGetSAD64 ( DistParam* pcDtParam ); 260 196 static Distortion xGetSAD16N ( DistParam* pcDtParam ); 261 #if NH_3D_VSO 262 static UInt xGetVSD ( DistParam* pcDtParam ); 263 static UInt xGetVSD4 ( DistParam* pcDtParam ); 264 static UInt xGetVSD8 ( DistParam* pcDtParam ); 265 static UInt xGetVSD16 ( DistParam* pcDtParam ); 266 static UInt xGetVSD32 ( DistParam* pcDtParam ); 267 static UInt xGetVSD64 ( DistParam* pcDtParam ); 268 static UInt xGetVSD16N ( DistParam* pcDtParam ); 269 #endif 270 271 #if NH_3D_IC || NH_3D_SDC_INTER 272 static UInt xGetSAD12ic ( DistParam* pcDtParam ); 273 static UInt xGetSAD24ic ( DistParam* pcDtParam ); 274 static UInt xGetSAD48ic ( DistParam* pcDtParam ); 275 #endif 197 276 198 277 199 static Distortion xGetSAD12 ( DistParam* pcDtParam ); … … 280 202 281 203 282 #if NH_3D_IC || NH_3D_SDC_INTER283 static UInt xGetHADsic ( DistParam* pcDtParam );284 #endif285 204 286 205 static Distortion xGetHADs ( DistParam* pcDtParam ); … … 288 207 static Distortion xCalcHADs4x4 ( const Pel *piOrg, const Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 289 208 static Distortion xCalcHADs8x8 ( const Pel *piOrg, const Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 290 #if NH_3D_DBBP291 static UInt xGetMaskedSSE ( DistParam* pcDtParam );292 static UInt xGetMaskedSAD ( DistParam* pcDtParam );293 static UInt xGetMaskedVSD ( DistParam* pcDtParam );294 #endif295 209 296 210 … … 299 213 Distortion getDistPart(Int bitDepth, const Pel* piCur, Int iCurStride, const Pel* piOrg, Int iOrgStride, UInt uiBlkWidth, UInt uiBlkHeight, const ComponentID compID, DFunc eDFunc = DF_SSE ); 300 214 301 #if KWU_RC_MADPRED_E0227 302 UInt getSADPart ( Int bitDepth, Pel* pelCur, Int curStride, Pel* pelOrg, Int orgStride, UInt width, UInt height ); 303 #endif 304 305 #if NH_3D_VSO 306 // SAIT_VSO_EST_A0033 307 UInt getDistPartVSD( TComDataCU* pcCu, UInt uiPartOffset, Int bitDepth, Pel* piCur, Int iCurStride, Pel* piOrg, Int iOrgStride, UInt uiBlkWidth, UInt uiBlkHeight, Bool bHad, DFunc eDFunc = DF_VSD); 308 static UInt getVSDEstimate( Int dDM, const Pel* pOrg, Int iOrgStride, const Pel* pVirRec, const Pel* pVirOrg, Int iVirStride, Int x, Int y ); 309 310 private: 311 Double m_dLambdaVSO; 312 Double m_dSqrtLambdaVSO; 313 UInt m_uiLambdaMotionSADVSO; 314 UInt m_uiLambdaMotionSSEVSO; 315 Double m_dFrameLambdaVSO; 316 Bool m_bAllowNegDist; 317 Bool m_bUseVSO; 318 Bool m_bUseLambdaScaleVSO; 319 UInt m_uiVSOMode; 320 321 FpDistFuncVSO m_fpDistortFuncVSO; 322 TRenModel* m_pcRenModel; 323 324 325 // SAIT_VSO_EST_A0033 326 TComPicYuv * m_pcVideoRecPicYuv; 327 TComPicYuv * m_pcDepthPicYuv; 328 Bool m_bUseEstimatedVSD; 329 330 // LGE_WVSO_A0119 331 Int m_iDWeight; 332 Int m_iVSOWeight; 333 Int m_iVSDWeight; 334 Bool m_bUseWVSO; 335 336 public: 337 338 Void setRenModel ( TRenModel* pcRenModel ) { m_pcRenModel = pcRenModel; } 339 TRenModel* getRenModel ( ) { return m_pcRenModel; } 340 Void setRenModelData ( const TComDataCU* pcCU, UInt uiAbsPartIndex, const TComYuv* pcYuv, const TComTURecurse* tuRecurseWithPU ); 341 Void setRenModelData ( const TComDataCU* pcCU, UInt uiAbsPartIndex, const Pel* piData, Int iStride, Int iBlkWidth, Int iBlkHeight ); 342 343 Void setLambdaVSO ( Double dLambda ); 344 Void setFrameLambdaVSO ( Double dLambda ) { m_dFrameLambdaVSO = dLambda; }; 345 346 347 Void setUseVSO ( Bool bIn ) { m_bUseVSO = bIn; }; 348 Bool getUseVSO ( ) { return m_bUseVSO;}; 349 350 Bool getUseRenModel ( ) { return (m_bUseVSO && m_uiVSOMode == 4); }; 351 Void setUseLambdaScaleVSO(Bool bIn) { m_bUseLambdaScaleVSO = bIn; }; 352 Bool getUseLambdaScaleVSO( ) { return m_bUseLambdaScaleVSO; }; 353 354 Void setVSOMode( UInt uiIn); 355 UInt getVSOMode( ) { return m_uiVSOMode; } 356 Void setAllowNegDist ( Bool bAllowNegDist ); 357 358 Double getSqrtLambdaVSO () { return m_dSqrtLambdaVSO; } 359 Double getLambdaVSO () { return m_dLambdaVSO; } 360 361 Dist getDistPartVSO( TComDataCU* pcCU, UInt uiAbsPartIndex, Int bitdDepth, Pel* piCur, Int iCurStride, Pel* piOrg, Int iOrgStride, UInt uiBlkWidth, UInt uiBlkHeight, Bool bSAD ); 362 Double calcRdCostVSO ( UInt uiBits, Dist uiDistortion, Bool bFlag = false, DFunc eDFunc = DF_DEFAULT ); 363 364 // SAIT_VSO_EST_A0033 365 Bool getUseEstimatedVSD( ) { return m_bUseEstimatedVSD; }; 366 Void setUseEstimatedVSD( Bool bIn ) { m_bUseEstimatedVSD = bIn; }; 367 368 TComPicYuv* getVideoRecPicYuv () { return m_pcVideoRecPicYuv; }; 369 Void setVideoRecPicYuv ( TComPicYuv* pcVideoRecPicYuv ) { m_pcVideoRecPicYuv = pcVideoRecPicYuv; }; 370 TComPicYuv* getDepthPicYuv () { return m_pcDepthPicYuv; }; 371 Void setDepthPicYuv ( TComPicYuv* pcDepthPicYuv ) { m_pcDepthPicYuv = pcDepthPicYuv; }; 372 373 // LGE_WVSO_A0119 374 Void setUseWVSO ( Bool bIn ) { m_bUseWVSO = bIn; }; 375 Bool getUseWVSO ( ) { return m_bUseWVSO;}; 376 Void setDWeight ( Int iDWeight ) { m_iDWeight = iDWeight; }; 377 Int getDWeight () { return m_iDWeight; }; 378 Void setVSOWeight ( Int iVSOWeight ) { m_iVSOWeight = iVSOWeight; }; 379 Int getVSOWeight () { return m_iVSOWeight; }; 380 Void setVSDWeight ( Int iVSDWeight ) { m_iVSDWeight = iVSDWeight; }; 381 Int getVSDWeight () { return m_iVSDWeight; }; 382 383 private: 384 Dist xGetDistVSOMode4( Int iStartPosX, Int iStartPosY, Pel* piCur, Int iCurStride, Pel* piOrg, Int iOrgStride, UInt uiBlkWidth, UInt uiBlkHeight, Bool bSAD ); 385 386 #endif // NH_3D_VSO 215 387 216 388 217
Note: See TracChangeset for help on using the changeset viewer.