Showing the changes to codec/encoder/core/src/sample.cpp (1 of 14 files). Show all
Unified · Split
| @@ -95,6 +95,21 @@ int32_t WelsSampleSatd4x4_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSamp · 94 unmodified lines | ||
| 95 | 95 | |
| 96 | 96 | return ((iSatdSum + 1) >> 1); |
| 97 | 97 | } |
| 98 | + | |
| 99 | +int32_t WelsSampleSatd8x4_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2) { | |
| 100 | + int32_t iSatdSum = 0; | |
| 101 | + iSatdSum += WelsSampleSatd4x4_c (pSample1, iStride1, pSample2, iStride2); | |
| 102 | + iSatdSum += WelsSampleSatd4x4_c (pSample1 + 4, iStride1, pSample2 + 4, iStride2); | |
| 103 | + return iSatdSum; | |
| 104 | +} | |
| 105 | + | |
| 106 | +int32_t WelsSampleSatd4x8_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2) { | |
| 107 | + int32_t iSatdSum = 0; | |
| 108 | + iSatdSum += WelsSampleSatd4x4_c (pSample1, iStride1, pSample2, iStride2); | |
| 109 | + iSatdSum += WelsSampleSatd4x4_c (pSample1 + (iStride1 << 2), iStride1, pSample2 + (iStride2 << 2), iStride2); | |
| 110 | + return iSatdSum; | |
| 111 | +} | |
| 112 | + | |
| 98 | 113 | int32_t WelsSampleSatd8x8_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2) { |
| 99 | 114 | int32_t iSatdSum = 0; |
| 100 | 115 | |
| @@ -325,6 +340,8 @@ void WelsInitSampleSadFunc (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 224 unmodified lines | ||
| 325 | 340 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x16 ] = WelsSampleSad8x16_c; |
| 326 | 341 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x8 ] = WelsSampleSad8x8_c; |
| 327 | 342 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_4x4 ] = WelsSampleSad4x4_c; |
| 343 | + pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x4 ] = WelsSampleSad8x4_c; | |
| 344 | + pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_4x8 ] = WelsSampleSad4x8_c; | |
| 328 | 345 | |
| 329 | 346 | //pfSampleSatd init |
| 330 | 347 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_16x16] = WelsSampleSatd16x16_c; |
| @@ -332,12 +349,16 @@ void WelsInitSampleSadFunc (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 1 unmodified line | ||
| 332 | 349 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x16 ] = WelsSampleSatd8x16_c; |
| 333 | 350 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x8 ] = WelsSampleSatd8x8_c; |
| 334 | 351 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_4x4 ] = WelsSampleSatd4x4_c; |
| 352 | + pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x4 ] = WelsSampleSatd8x4_c; | |
| 353 | + pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_4x8 ] = WelsSampleSatd4x8_c; | |
| 335 | 354 | |
| 336 | 355 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x16] = WelsSampleSadFour16x16_c; |
| 337 | 356 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x8] = WelsSampleSadFour16x8_c; |
| 338 | 357 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x16] = WelsSampleSadFour8x16_c; |
| 339 | 358 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x8] = WelsSampleSadFour8x8_c; |
| 340 | 359 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_4x4] = WelsSampleSadFour4x4_c; |
| 360 | + pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x4] = WelsSampleSadFour8x4_c; | |
| 361 | + pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_4x8] = WelsSampleSadFour4x8_c; | |
| 341 | 362 | |
| 342 | 363 | pFuncList->sSampleDealingFuncs.pfIntra4x4Combined3Satd = NULL; |
| 343 | 364 | pFuncList->sSampleDealingFuncs.pfIntra8x8Combined3Satd = NULL; |