Showing the changes to codec/processing/src/downsample/downsamplefuncs.cpp (1 of 6 files). Show all
Unified · Split
| @@ -241,4 +241,15 @@ void GeneralBilinearAccurateDownsamplerWrap_neon (uint8_t* pDst, const int32_t k · 240 unmodified lines | ||
| 241 | 241 | uiScaley); |
| 242 | 242 | } |
| 243 | 243 | #endif |
| 244 | + | |
| 245 | +#ifdef HAVE_NEON_AARCH64 | |
| 246 | +void GeneralBilinearAccurateDownsamplerWrap_AArch64_neon (uint8_t* pDst, const int32_t kiDstStride, const int32_t kiDstWidth, const int32_t kiDstHeight, | |
| 247 | + uint8_t* pSrc, const int32_t kiSrcStride, const int32_t kiSrcWidth, const int32_t kiSrcHeight) { | |
| 248 | + const int32_t kiScaleBit = 15; | |
| 249 | + const uint32_t kuiScale = (1 << kiScaleBit); | |
| 250 | + uint32_t uiScalex = WELS_ROUND ((float)kiSrcWidth / (float)kiDstWidth * kuiScale); | |
| 251 | + uint32_t uiScaley = WELS_ROUND ((float)kiSrcHeight / (float)kiDstHeight * kuiScale); | |
| 252 | + GeneralBilinearAccurateDownsampler_AArch64_neon (pDst, kiDstStride, kiDstWidth, kiDstHeight, pSrc, kiSrcStride, uiScalex, uiScaley); | |
| 253 | +} | |
| 254 | +#endif | |
| 244 | 255 | WELSVP_NAMESPACE_END |