mdct15: add inverse transform postrotation SIMD
authorRostislav Pehlivanov <atomnuker@gmail.com>
Sat, 29 Jul 2017 20:27:01 +0000 (21:27 +0100)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Sun, 30 Jul 2017 06:38:39 +0000 (07:38 +0100)
commit70eb77b34e9f08cd5e431921a2792f31e4b5265c
treedc163df43e5fa5c29176cc88a5ae261825c625af
parentb0c61209cd30f9ddf3356d5ded6df488f25d1bd5
mdct15: add inverse transform postrotation SIMD

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.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/mdct15.c
libavcodec/mdct15.h
libavcodec/x86/mdct15.asm
libavcodec/x86/mdct15_init.c