diff options
author | Hubert Mazur <hum@semihalf.com> | 2022-07-12 11:15:33 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2022-07-13 23:25:22 +0300 |
commit | 01e190dc9950f4c35a4d5d795736460577807e3f (patch) | |
tree | dfad7f7f0381f20ab6c3e38c9fa7380f76276eb4 /libavcodec/aarch64/me_cmp_init_aarch64.c | |
parent | a0994440e8e66ff4f67aae56c01ee2727c7d283c (diff) |
lavc/aarch64: Add pix_abs16_x2 neon implementation
Provide neon implementation for pix_abs16_x2 function.
Performance tests of implementation are below.
- pix_abs_0_1_c: 283.5
- pix_abs_0_1_neon: 39.0
Benchmarks and tests run with checkasm tool on AWS Graviton 3.
Signed-off-by: Hubert Mazur <hum@semihalf.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/aarch64/me_cmp_init_aarch64.c')
-rw-r--r-- | libavcodec/aarch64/me_cmp_init_aarch64.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/aarch64/me_cmp_init_aarch64.c b/libavcodec/aarch64/me_cmp_init_aarch64.c index bec9148a1a..136b008eb7 100644 --- a/libavcodec/aarch64/me_cmp_init_aarch64.c +++ b/libavcodec/aarch64/me_cmp_init_aarch64.c @@ -27,6 +27,8 @@ int ff_pix_abs16_neon(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, ptrdiff_t stride, int h); int ff_pix_abs16_xy2_neon(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, ptrdiff_t stride, int h); +int ff_pix_abs16_x2_neon(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, + ptrdiff_t stride, int h); av_cold void ff_me_cmp_init_aarch64(MECmpContext *c, AVCodecContext *avctx) { @@ -34,6 +36,7 @@ av_cold void ff_me_cmp_init_aarch64(MECmpContext *c, AVCodecContext *avctx) if (have_neon(cpu_flags)) { c->pix_abs[0][0] = ff_pix_abs16_neon; + c->pix_abs[0][1] = ff_pix_abs16_x2_neon; c->pix_abs[0][3] = ff_pix_abs16_xy2_neon; c->sad[0] = ff_pix_abs16_neon; |