Showing the changes to codec/encoder/core/src/encode_mb_aux.cpp (1 of 28 files). Show all
Unified · Split
| @@ -508,6 +508,13 @@ int32_t WelsGetNoneZeroCount_c (int16_t* pLevel) { · 507 unmodified lines | ||
| 508 | 508 | return (16 - iCnt); |
| 509 | 509 | } |
| 510 | 510 | |
| 511 | +#ifdef HAVE_NEON | |
| 512 | +int32_t WelsHadamardQuant2x2Skip_neon(int16_t* pRes, int16_t iFF, int16_t iMF) { | |
| 513 | + int16_t iThreshold = ((1<<16)-1)/iMF - iFF; | |
| 514 | + return WelsHadamardQuant2x2SkipKernel_neon(pRes, iThreshold); | |
| 515 | +} | |
| 516 | +#endif | |
| 517 | + | |
| 511 | 518 | void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { |
| 512 | 519 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c; |
| 513 | 520 | pFuncList->pfCopy16x16Aligned = |
| @@ -571,5 +578,28 @@ void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 57 unmodified lines | ||
| 571 | 578 | //#endif//MACOS |
| 572 | 579 | |
| 573 | 580 | #endif//X86_ASM |
| 581 | + | |
| 582 | +#if defined(HAVE_NEON) | |
| 583 | + if (uiCpuFlag & WELS_CPU_NEON) { | |
| 584 | + pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_neon; | |
| 585 | + pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_neon; | |
| 586 | + pFuncList->pfDctT4 = WelsDctT4_neon; | |
| 587 | + pFuncList->pfCopy8x8Aligned = WelsCopy8x8_neon; | |
| 588 | + pFuncList->pfCopy8x16Aligned = WelsCopy8x16_neon; | |
| 589 | + | |
| 590 | + pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_neon; | |
| 591 | + pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_neon; | |
| 592 | + | |
| 593 | + pFuncList->pfQuantization4x4 = WelsQuant4x4_neon; | |
| 594 | + pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_neon; | |
| 595 | + pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_neon; | |
| 596 | + pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_neon; | |
| 597 | + | |
| 598 | + pFuncList->pfCopy16x16Aligned = WelsCopy16x16_neon; | |
| 599 | + pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_neon; | |
| 600 | + pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_neon; | |
| 601 | + pFuncList->pfDctFourT4 = WelsDctFourT4_neon; | |
| 602 | + } | |
| 603 | +#endif | |
| 574 | 604 | } |
| 575 | 605 | } |