Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComWedgelet.h


Ignore:
Timestamp:
11 May 2012, 21:20:17 (13 years ago)
Author:
hschwarz
Message:

updated trunk (move to HM6.1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComWedgelet.h

    r5 r56  
    4343#include <vector>
    4444
    45 
    4645enum WedgeResolution
    4746{
     
    4948  FULL_PEL,
    5049  HALF_PEL
    51 };
    52 
    53 enum WedgeDist
    54 {
    55   WedgeDist_SAD  = 0,
    56   WedgeDist_SSE  = 4,
    5750};
    5851
     
    10194
    10295  Bool  checkNotPlain();
    103   Bool  checkNotIdentical( Bool* pbRefPattern );
    104   Bool  checkNotInvIdentical( Bool* pbRefPattern );
    105 
     96  Bool  checkIdentical( Bool* pbRefPattern );
     97  Bool  checkInvIdentical( Bool* pbRefPattern );
     98
     99#if HHI_DMM_WEDGE_INTRA
    106100  Bool  checkPredDirAbovePossible( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffsett );
    107101  Bool  checkPredDirLeftPossible ( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffsett );
     
    109103  Void  getPredDirStartEndAbove( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd );
    110104  Void  getPredDirStartEndLeft ( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd );
     105#endif
    111106};  // END CLASS DEFINITION TComWedgelet
    112107
     
    142137typedef std::vector<TComWedgeRef> WedgeRefList;
    143138
     139#if HHI_DMM_PRED_TEX
     140enum WedgeDist
     141{
     142  WedgeDist_SAD  = 0,
     143  WedgeDist_SSE  = 4,
     144};
     145
     146class WedgeDistParam;
     147typedef UInt (*FpWedgeDistFunc) (WedgeDistParam*);
     148
     149/// distortion parameter class
     150class WedgeDistParam
     151{
     152public:
     153  Pel*  pOrg;
     154  Pel*  pCur;
     155  Int   iStrideOrg;
     156  Int   iStrideCur;
     157  Int   iRows;
     158  Int   iCols;
     159  Int   iStep;
     160  FpWedgeDistFunc DistFunc;
     161  Int   iSubShift;
     162
     163  WedgeDistParam()
     164  {
     165    pOrg = NULL;
     166    pCur = NULL;
     167    iStrideOrg = 0;
     168    iStrideCur = 0;
     169    iRows = 0;
     170    iCols = 0;
     171    iStep = 1;
     172    DistFunc = NULL;
     173    iSubShift = 0;
     174  }
     175};
     176
     177// ====================================================================================================================
     178// Class definition TComWedgeDist
     179// ====================================================================================================================
     180class TComWedgeDist
     181{
     182private:
     183  Int                     m_iBlkWidth;
     184  Int                     m_iBlkHeight;
     185  FpWedgeDistFunc         m_afpDistortFunc[8];
     186
     187public:
     188  TComWedgeDist();
     189  virtual ~TComWedgeDist();
     190
     191  Void init();
     192  Void setDistParam( UInt uiBlkWidth, UInt uiBlkHeight, WedgeDist eWDist, WedgeDistParam& rcDistParam );
     193  UInt getDistPart( Pel* piCur, Int iCurStride,  Pel* piOrg, Int iOrgStride, UInt uiBlkWidth, UInt uiBlkHeight, WedgeDist eWDist = WedgeDist_SAD );
     194
     195private:
     196  static UInt xGetSAD4          ( WedgeDistParam* pcDtParam );
     197  static UInt xGetSAD8          ( WedgeDistParam* pcDtParam );
     198  static UInt xGetSAD16         ( WedgeDistParam* pcDtParam );
     199  static UInt xGetSAD32         ( WedgeDistParam* pcDtParam );
     200  //static UInt xGetSAD64         ( WedgeDistParam* pcDtParam );
     201
     202  static UInt xGetSSE4          ( WedgeDistParam* pcDtParam );
     203  static UInt xGetSSE8          ( WedgeDistParam* pcDtParam );
     204  static UInt xGetSSE16         ( WedgeDistParam* pcDtParam );
     205  static UInt xGetSSE32         ( WedgeDistParam* pcDtParam );
     206  //static UInt xGetSSE64         ( WedgeDistParam* pcDtParam );
     207
     208};// END CLASS DEFINITION TComWedgeDist
     209#endif
     210
    144211// ====================================================================================================================
    145212// Function definition roftoi (mathematically correct rounding of float to int)
Note: See TracChangeset for help on using the changeset viewer.