Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComWedgelet.h
- Timestamp:
- 11 May 2012, 21:20:17 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComWedgelet.h
r5 r56 43 43 #include <vector> 44 44 45 46 45 enum WedgeResolution 47 46 { … … 49 48 FULL_PEL, 50 49 HALF_PEL 51 };52 53 enum WedgeDist54 {55 WedgeDist_SAD = 0,56 WedgeDist_SSE = 4,57 50 }; 58 51 … … 101 94 102 95 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 106 100 Bool checkPredDirAbovePossible( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffsett ); 107 101 Bool checkPredDirLeftPossible ( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffsett ); … … 109 103 Void getPredDirStartEndAbove( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd ); 110 104 Void getPredDirStartEndLeft ( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd ); 105 #endif 111 106 }; // END CLASS DEFINITION TComWedgelet 112 107 … … 142 137 typedef std::vector<TComWedgeRef> WedgeRefList; 143 138 139 #if HHI_DMM_PRED_TEX 140 enum WedgeDist 141 { 142 WedgeDist_SAD = 0, 143 WedgeDist_SSE = 4, 144 }; 145 146 class WedgeDistParam; 147 typedef UInt (*FpWedgeDistFunc) (WedgeDistParam*); 148 149 /// distortion parameter class 150 class WedgeDistParam 151 { 152 public: 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 // ==================================================================================================================== 180 class TComWedgeDist 181 { 182 private: 183 Int m_iBlkWidth; 184 Int m_iBlkHeight; 185 FpWedgeDistFunc m_afpDistortFunc[8]; 186 187 public: 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 195 private: 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 144 211 // ==================================================================================================================== 145 212 // Function definition roftoi (mathematically correct rounding of float to int)
Note: See TracChangeset for help on using the changeset viewer.