mdct15: add inverse transform postrotation SIMD

Multimedia / FFmpeg - Rostislav Pehlivanov [gmail.com] - 30 July 2017 02:38 EDT

2.5ms frames: Before (c): 2638 decicycles in postrotate, 2097040 runs, 112 skips After (sse3): 1467 decicycles in postrotate, 2097083 runs, 69 skips After (avx2): 1244 decicycles in postrotate, 2097085 runs, 67 skips

5ms frames: Before (c): 4987 decicycles in postrotate, 1048371 runs, 205 skips After (sse3): 2644 decicycles in postrotate, 1048509 runs, 67 skips After (avx2): 2031 decicycles in postrotate, 1048523 runs, 53 skips

10ms frames: Before (c): 9153 decicycles in postrotate, 523575 runs, 713 skips After (sse3): 5110 decicycles in postrotate, 523726 runs, 562 skips After (avx2): 3738 decicycles in postrotate, 524223 runs, 65 skips

20ms frames: Before (c): 17857 decicycles in postrotate, 261866 runs, 278 skips After (sse3): 10041 decicycles in postrotate, 261746 runs, 398 skips After (avx2): 7050 decicycles in postrotate, 262116 runs, 28 skips

Improves total decoding performance for real world content by 9% with avx2.

70eb77b mdct15: add inverse transform postrotation SIMD
libavcodec/mdct15.c | 38 +++++++++++-------
libavcodec/mdct15.h | 3 ++
libavcodec/x86/mdct15.asm | 93 +++++++++++++++++++++++++++++++++++++++++---
libavcodec/x86/mdct15_init.c | 9 +++++
4 files changed, 123 insertions(+), 20 deletions(-)

  • Share