Add Arm64 neon Intra-pred code
Showing the changes to codec/decoder/core/src/decoder.cpp (1 of 11 files). Show all
Unified · Split
| @@ -672,6 +672,35 @@ void AssignFuncPointerForRec (PWelsDecoderContext pCtx) { · 671 unmodified lines | ||
| 672 | 672 | } |
| 673 | 673 | #endif//HAVE_NEON |
| 674 | 674 | |
| 675 | +#if defined(HAVE_NEON_AARCH64) | |
| 676 | + if (pCtx->uiCpuFlag & WELS_CPU_NEON) { | |
| 677 | + //pCtx->pIdctResAddPredFunc = IdctResAddPred_neon; | |
| 678 | + | |
| 679 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_DC] = WelsDecoderI16x16LumaPredDc_AArch64_neon; | |
| 680 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_P] = WelsDecoderI16x16LumaPredPlane_AArch64_neon; | |
| 681 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_H] = WelsDecoderI16x16LumaPredH_AArch64_neon; | |
| 682 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_V] = WelsDecoderI16x16LumaPredV_AArch64_neon; | |
| 683 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_DC_L] = WelsDecoderI16x16LumaPredDcLeft_AArch64_neon; | |
| 684 | + pCtx->pGetI16x16LumaPredFunc[I16_PRED_DC_T] = WelsDecoderI16x16LumaPredDcTop_AArch64_neon; | |
| 685 | + | |
| 686 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_H ] = WelsDecoderI4x4LumaPredH_AArch64_neon; | |
| 687 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_DDL ] = WelsDecoderI4x4LumaPredDDL_AArch64_neon; | |
| 688 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_DDL_TOP] = WelsDecoderI4x4LumaPredDDLTop_AArch64_neon; | |
| 689 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_VL ] = WelsDecoderI4x4LumaPredVL_AArch64_neon; | |
| 690 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_VL_TOP ] = WelsDecoderI4x4LumaPredVLTop_AArch64_neon; | |
| 691 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_VR ] = WelsDecoderI4x4LumaPredVR_AArch64_neon; | |
| 692 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_HU ] = WelsDecoderI4x4LumaPredHU_AArch64_neon; | |
| 693 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_HD ] = WelsDecoderI4x4LumaPredHD_AArch64_neon; | |
| 694 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_DC ] = WelsDecoderI4x4LumaPredDc_AArch64_neon; | |
| 695 | + pCtx->pGetI4x4LumaPredFunc[I4_PRED_DC_T ] = WelsDecoderI4x4LumaPredDcTop_AArch64_neon; | |
| 696 | + | |
| 697 | + pCtx->pGetIChromaPredFunc[C_PRED_H] = WelsDecoderIChromaPredH_AArch64_neon; | |
| 698 | + pCtx->pGetIChromaPredFunc[C_PRED_V] = WelsDecoderIChromaPredV_AArch64_neon; | |
| 699 | + pCtx->pGetIChromaPredFunc[C_PRED_P ] = WelsDecoderIChromaPredPlane_AArch64_neon; | |
| 700 | + pCtx->pGetIChromaPredFunc[C_PRED_DC] = WelsDecoderIChromaPredDc_AArch64_neon; | |
| 701 | + pCtx->pGetIChromaPredFunc[C_PRED_DC_T] = WelsDecoderIChromaPredDcTop_AArch64_neon; | |
| 702 | + } | |
| 703 | +#endif//HAVE_NEON_AARCH64 | |
| 675 | 704 | |
| 676 | 705 | #if defined(X86_ASM) |
| 677 | 706 | if (pCtx->uiCpuFlag & WELS_CPU_MMXEXT) { |