summaryrefslogtreecommitdiff
path: root/libavcodec/x86/v210enc_init.c
diff options
context:
space:
mode:
authorJames Darnley <james.darnley@gmail.com>2015-12-30 17:20:59 +0000
committerJames Darnley <james.darnley@gmail.com>2016-01-17 16:03:43 +0100
commit3836f404a8c0ffd7c565260434768ef4ebba85a7 (patch)
treeab80a28b382bb5dec0629671a85cb07804836f31 /libavcodec/x86/v210enc_init.c
parent61625dcc395f98ad77e9378ec4eb48cf7c981bce (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.c7
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;
+ }
}