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 | return ((iSatdSum + 1) >> 1); | 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 | int32_t WelsSampleSatd8x8_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2) { | 113 | int32_t WelsSampleSatd8x8_c (uint8_t* pSample1, int32_t iStride1, uint8_t* pSample2, int32_t iStride2) { |
| 99 | int32_t iSatdSum = 0; | 114 | int32_t iSatdSum = 0; |
| 100 | 115 | ||
| @@ -325,6 +340,8 @@ void WelsInitSampleSadFunc (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 224 unmodified lines | |||
| 325 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x16 ] = WelsSampleSad8x16_c; | 340 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x16 ] = WelsSampleSad8x16_c; |
| 326 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x8 ] = WelsSampleSad8x8_c; | 341 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_8x8 ] = WelsSampleSad8x8_c; |
| 327 | pFuncList->sSampleDealingFuncs.pfSampleSad[BLOCK_4x4 ] = WelsSampleSad4x4_c; | 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 | //pfSampleSatd init | 346 | //pfSampleSatd init |
| 330 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_16x16] = WelsSampleSatd16x16_c; | 347 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_16x16] = WelsSampleSatd16x16_c; |
| @@ -332,12 +349,16 @@ void WelsInitSampleSadFunc (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 1 unmodified line | |||
| 332 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x16 ] = WelsSampleSatd8x16_c; | 349 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x16 ] = WelsSampleSatd8x16_c; |
| 333 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x8 ] = WelsSampleSatd8x8_c; | 350 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_8x8 ] = WelsSampleSatd8x8_c; |
| 334 | pFuncList->sSampleDealingFuncs.pfSampleSatd[BLOCK_4x4 ] = WelsSampleSatd4x4_c; | 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 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x16] = WelsSampleSadFour16x16_c; | 355 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x16] = WelsSampleSadFour16x16_c; |
| 337 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x8] = WelsSampleSadFour16x8_c; | 356 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_16x8] = WelsSampleSadFour16x8_c; |
| 338 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x16] = WelsSampleSadFour8x16_c; | 357 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x16] = WelsSampleSadFour8x16_c; |
| 339 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x8] = WelsSampleSadFour8x8_c; | 358 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_8x8] = WelsSampleSadFour8x8_c; |
| 340 | pFuncList->sSampleDealingFuncs.pfSample4Sad[BLOCK_4x4] = WelsSampleSadFour4x4_c; | 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 | pFuncList->sSampleDealingFuncs.pfIntra4x4Combined3Satd = NULL; | 363 | pFuncList->sSampleDealingFuncs.pfIntra4x4Combined3Satd = NULL; |
| 343 | pFuncList->sSampleDealingFuncs.pfIntra8x8Combined3Satd = NULL; | 364 | pFuncList->sSampleDealingFuncs.pfIntra8x8Combined3Satd = NULL; |