[FFmpeg-devel] [PATCH] iirfilter: Rework FILTER_O2() to improve performance.

Justin Ruggles justin.ruggles
Mon Jan 31 17:32:37 CET 2011


Store coefficient pointers locally.
Store state locally, then save at end.
Split up arithmetic.
---
 libavcodec/iirfilter.c |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 deletions(-)


I was able to gcc to do what I wanted, but it's not pretty.

Also, if a simplified version of ff_iir_filter_flt() is added that
doesn't read/save the state and always has sstep/dstep == 1, it can
gain about another 3% speedup.  I'll save that for later though
since it would be unnecessarily complicating something that's not
even used yet.

Athlon64
current: 217731
patched: 195939
simple:  189951

Atom
current: 569708
patched: 542916
simple:  524855

Cheers,
Justin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-iirfilter-Rework-FILTER_O2-to-improve-performance.patch
Type: text/x-patch
Size: 2912 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110131/b3d8bfd4/attachment.bin>



More information about the ffmpeg-devel mailing list