diff options
author | James Darnley <james.darnley@gmail.com> | 2016-01-13 14:34:44 +0000 |
---|---|---|
committer | James Darnley <james.darnley@gmail.com> | 2016-02-05 17:26:04 +0100 |
commit | 7042a55c55d7ac04e9a6b3cd150c85d64cedb79f (patch) | |
tree | ee004806b6743c2f3609b7972b71caf980b4b363 /libavcodec/x86/h264dsp_init.c | |
parent | 9556446623d6b1e6a1a1369e27fd3a04b3f4afa0 (diff) | |
download | ffmpeg-7042a55c55d7ac04e9a6b3cd150c85d64cedb79f.tar.gz |
avcodec/h264: mmxext 4:2:2 chroma deblock/loop filter
2.6 times faster (366 vs. 142 cycles)
Diffstat (limited to 'libavcodec/x86/h264dsp_init.c')
-rw-r--r-- | libavcodec/x86/h264dsp_init.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/x86/h264dsp_init.c b/libavcodec/x86/h264dsp_init.c index 35db20014a..c8cd0650c7 100644 --- a/libavcodec/x86/h264dsp_init.c +++ b/libavcodec/x86/h264dsp_init.c @@ -129,6 +129,8 @@ LF_IFUNC(v, chroma_intra, depth, avx) LF_FUNCS(uint8_t, 8) LF_FUNCS(uint16_t, 10) +void ff_deblock_h_chroma422_8_mmxext(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); + #if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL LF_FUNC(v8, luma, 8, mmxext) static void deblock_v_luma_8_mmxext(uint8_t *pix, int stride, int alpha, @@ -245,6 +247,8 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth, if (chroma_format_idc <= 1) { c->h264_h_loop_filter_chroma = ff_deblock_h_chroma_8_mmxext; c->h264_h_loop_filter_chroma_intra = ff_deblock_h_chroma_intra_8_mmxext; + } else { + c->h264_h_loop_filter_chroma = ff_deblock_h_chroma422_8_mmxext; } #if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL c->h264_v_loop_filter_luma = deblock_v_luma_8_mmxext; |