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 | return (16 - iCnt); | 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 | void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { | 518 | void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { |
| 512 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c; | 519 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c; |
| 513 | pFuncList->pfCopy16x16Aligned = | 520 | pFuncList->pfCopy16x16Aligned = |
| @@ -571,5 +578,28 @@ void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 57 unmodified lines | |||
| 571 | //#endif//MACOS | 578 | //#endif//MACOS |
| 572 | 579 | ||
| 573 | #endif//X86_ASM | 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 | } |