diff options
author | James Darnley <james.darnley@gmail.com> | 2015-12-30 17:20:59 +0000 |
---|---|---|
committer | James Darnley <james.darnley@gmail.com> | 2016-01-17 16:03:43 +0100 |
commit | 3836f404a8c0ffd7c565260434768ef4ebba85a7 (patch) | |
tree | ab80a28b382bb5dec0629671a85cb07804836f31 /libavcodec/x86/v210enc_init.c | |
parent | 61625dcc395f98ad77e9378ec4eb48cf7c981bce (diff) |
avcodec/v210: add avx2 version of the 8-bit line encoder
Around 35% faster than the avx version.
Signed-off-by: Henrik Gramner <henrik@gramner.com>
Diffstat (limited to 'libavcodec/x86/v210enc_init.c')
-rw-r--r-- | libavcodec/x86/v210enc_init.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/x86/v210enc_init.c b/libavcodec/x86/v210enc_init.c index 2afb1b2d7b..be6698c512 100644 --- a/libavcodec/x86/v210enc_init.c +++ b/libavcodec/x86/v210enc_init.c @@ -24,6 +24,8 @@ void ff_v210_planar_pack_8_ssse3(const uint8_t *y, const uint8_t *u, ptrdiff_t width); void ff_v210_planar_pack_8_avx(const uint8_t *y, const uint8_t *u, const uint8_t *v, uint8_t *dst, ptrdiff_t width); +void ff_v210_planar_pack_8_avx2(const uint8_t *y, const uint8_t *u, + const uint8_t *v, uint8_t *dst, ptrdiff_t width); void ff_v210_planar_pack_10_ssse3(const uint16_t *y, const uint16_t *u, const uint16_t *v, uint8_t *dst, ptrdiff_t width); @@ -39,4 +41,9 @@ av_cold void ff_v210enc_init_x86(V210EncContext *s) if (EXTERNAL_AVX(cpu_flags)) s->pack_line_8 = ff_v210_planar_pack_8_avx; + + if (EXTERNAL_AVX2(cpu_flags)) { + s->pack_line_8 = ff_v210_planar_pack_8_avx2; + s->sample_factor = 2; + } } |