运动估计/补偿之xTZSearchHelp转自http://blog.csdn.net/frd2009041510 https://blog.csdn.net/FRD2009041510/articl
其他
2018-06-22 02:28:41
阅读次数: 3
-
-
-
-
-
-
- __inline Void TEncSearch::xTZSearchHelp( TComPattern* pcPatternKey, IntTZSearchStruct& rcStruct, const Int iSearchX, const Int iSearchY, const UChar ucPointNr, const UInt uiDistance )
- {
- UInt uiSad;
-
- Pel* piRefSrch;
-
- piRefSrch = rcStruct.piRefY + iSearchY * rcStruct.iYStride + iSearchX;
-
-
- m_pcRdCost->setDistParam( pcPatternKey, piRefSrch, rcStruct.iYStride, m_cDistParam );
-
-
- if ( m_pcEncCfg->getUseFastEnc() )
- {
- if ( m_cDistParam.iRows > 8 )
- {
- m_cDistParam.iSubShift = 1;
- }
- }
-
- setDistParamComp(0);
-
-
- m_cDistParam.bitDepth = g_bitDepthY;
- uiSad = m_cDistParam.DistFunc( &m_cDistParam );
-
-
- uiSad += m_pcRdCost->getCost( iSearchX, iSearchY );
-
- if( uiSad < rcStruct.uiBestSad )
- {
- rcStruct.uiBestSad = uiSad;
- rcStruct.iBestX = iSearchX;
- rcStruct.iBestY = iSearchY;
- rcStruct.uiBestDistance = uiDistance;
- rcStruct.uiBestRound = 0;
- rcStruct.ucPointNr = ucPointNr;
- }
- }
-
- Void TComRdCost::setDistParam( TComPattern* pcPatternKey, Pel* piRefY, Int iRefStride, DistParam& rcDistParam )
- {
-
- rcDistParam.pOrg = pcPatternKey->getROIY();
- rcDistParam.pCur = piRefY;
-
- rcDistParam.iStrideOrg = pcPatternKey->getPatternLStride();
- rcDistParam.iStrideCur = iRefStride;
-
-
- rcDistParam.iCols = pcPatternKey->getROIYWidth();
- rcDistParam.iRows = pcPatternKey->getROIYHeight();
- rcDistParam.DistFunc = m_afpDistortFunc[DF_SAD + g_aucConvertToBit[ rcDistParam.iCols ] + 1 ];
-
- #if AMP_SAD
- if (rcDistParam.iCols == 12)
- {
- rcDistParam.DistFunc = m_afpDistortFunc[43 ];
- }
- else if (rcDistParam.iCols == 24)
- {
- rcDistParam.DistFunc = m_afpDistortFunc[44 ];
- }
- else if (rcDistParam.iCols == 48)
- {
- rcDistParam.DistFunc = m_afpDistortFunc[45 ];
- }
- #endif
-
-
- rcDistParam.iSubShift = 0;
- }
-
- class DistParam
- {
- public:
- Pel* pOrg;
- Pel* pCur;
- Int iStrideOrg;
- Int iStrideCur;
- Int iRows;
- Int iCols;
- Int iStep;
- FpDistFunc DistFunc;
- Int bitDepth;
-
- Bool bApplyWeight;
- wpScalingParam *wpCur;
- UInt uiComp;
-
-
-
- Int iSubShift;
-
- DistParam()
- {
- pOrg = NULL;
- pCur = NULL;
- iStrideOrg = 0;
- iStrideCur = 0;
- iRows = 0;
- iCols = 0;
- iStep = 1;
- DistFunc = NULL;
- iSubShift = 0;
- bitDepth = 0;
- }
- };
转载自blog.csdn.net/sinat_39372048/article/details/80622373