Showing the changes to codec/processing/src (2 of 12 files). Show all
Unified · Split
| @@ -53,25 +53,25 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int · 52 unmodified lines | |||
| 53 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsampler_c; | 53 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsampler_c; |
| 54 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_c; | 54 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_c; |
| 55 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_c; | 55 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_c; |
| 56 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsampler_c; | 56 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsampler_c; |
| 57 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsampler_c; | 57 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsampler_c; |
| 58 | #if defined(X86_ASM) | 58 | #if defined(X86_ASM) |
| 59 | if (iCpuFlag & WELS_CPU_SSE) { | 59 | if (iCpuFlag & WELS_CPU_SSE) { |
| 60 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse; | 60 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse; |
| 61 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse; | 61 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse; |
| 62 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsamplerWidthx8_sse; | 62 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsamplerWidthx8_sse; |
| 63 | } | 63 | } |
| 64 | if (iCpuFlag & WELS_CPU_SSE2) { | 64 | if (iCpuFlag & WELS_CPU_SSE2) { |
| 65 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_sse2; | 65 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_sse2; |
| 66 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsamplerWrap_sse2; | 66 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsamplerWrap_sse2; |
| 67 | } | 67 | } |
| 68 | if (iCpuFlag & WELS_CPU_SSSE3) { | 68 | if (iCpuFlag & WELS_CPU_SSSE3) { |
| 69 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_ssse3; | 69 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_ssse3; |
| 70 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_ssse3; | 70 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_ssse3; |
| 71 | } | 71 | } |
| 72 | if (iCpuFlag & WELS_CPU_SSE41) { | 72 | if (iCpuFlag & WELS_CPU_SSE41) { |
| 73 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse4; | 73 | sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse4; |
| 74 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse4; | 74 | sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse4; |
| 75 | } | 75 | } |
| 76 | #endif//X86_ASM | 76 | #endif//X86_ASM |
| 77 | 77 | ||
| @@ -82,7 +82,7 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int · 4 unmodified lines | |||
| 82 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_neon; | 82 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_neon; |
| 83 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_neon; | 83 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_neon; |
| 84 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_neon; | 84 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_neon; |
| 85 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_neon; | 85 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_neon; |
| 86 | } | 86 | } |
| 87 | #endif | 87 | #endif |
| 88 | 88 | ||
| @@ -93,7 +93,7 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int · 4 unmodified lines | |||
| 93 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_AArch64_neon; | 93 | sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_AArch64_neon; |
| 94 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_AArch64_neon; | 94 | sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_AArch64_neon; |
| 95 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon; | 95 | sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon; |
| 96 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon; | 96 | sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon; |
| 97 | } | 97 | } |
| 98 | #endif | 98 | #endif |
| 99 | } | 99 | } |
| @@ -51,37 +51,37 @@ CVAACalculation::~CVAACalculation() { · 50 unmodified lines | |||
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | void CVAACalculation::InitVaaFuncs (SVaaFuncs& sVaaFuncs, int32_t iCpuFlag) { | 53 | void CVAACalculation::InitVaaFuncs (SVaaFuncs& sVaaFuncs, int32_t iCpuFlag) { |
| 54 | sVaaFuncs.pfVAACalcSad = VAACalcSad_c; | 54 | sVaaFuncs.pfVAACalcSad = VAACalcSad_c; |
| 55 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_c; | 55 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_c; |
| 56 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_c; | 56 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_c; |
| 57 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_c; | 57 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_c; |
| 58 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_c; | 58 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_c; |
| 59 | #ifdef X86_ASM | 59 | #ifdef X86_ASM |
| 60 | if ((iCpuFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) { | 60 | if ((iCpuFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) { |
| 61 | sVaaFuncs.pfVAACalcSad = VAACalcSad_sse2; | 61 | sVaaFuncs.pfVAACalcSad = VAACalcSad_sse2; |
| 62 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_sse2; | 62 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_sse2; |
| 63 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_sse2; | 63 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_sse2; |
| 64 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_sse2; | 64 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_sse2; |
| 65 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_sse2; | 65 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_sse2; |
| 66 | } | 66 | } |
| 67 | #endif//X86_ASM | 67 | #endif//X86_ASM |
| 68 | #ifdef HAVE_NEON | 68 | #ifdef HAVE_NEON |
| 69 | if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) { | 69 | if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) { |
| 70 | sVaaFuncs.pfVAACalcSad = VAACalcSad_neon; | 70 | sVaaFuncs.pfVAACalcSad = VAACalcSad_neon; |
| 71 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_neon; | 71 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_neon; |
| 72 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_neon; | 72 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_neon; |
| 73 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_neon; | 73 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_neon; |
| 74 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_neon; | 74 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_neon; |
| 75 | } | 75 | } |
| 76 | #endif//HAVE_NEON | 76 | #endif//HAVE_NEON |
| 77 | 77 | ||
| 78 | #ifdef HAVE_NEON_AARCH64 | 78 | #ifdef HAVE_NEON_AARCH64 |
| 79 | if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) { | 79 | if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) { |
| 80 | sVaaFuncs.pfVAACalcSad = VAACalcSad_AArch64_neon; | 80 | sVaaFuncs.pfVAACalcSad = VAACalcSad_AArch64_neon; |
| 81 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_AArch64_neon; | 81 | sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_AArch64_neon; |
| 82 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_AArch64_neon; | 82 | sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_AArch64_neon; |
| 83 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_AArch64_neon; | 83 | sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_AArch64_neon; |
| 84 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_AArch64_neon; | 84 | sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_AArch64_neon; |
| 85 | } | 85 | } |
| 86 | #endif//HAVE_NEON_AARCH64 | 86 | #endif//HAVE_NEON_AARCH64 |
| 87 | } | 87 | } |