Micro optimizations for the amp filter.
authorAndre Noll <maan@systemlinux.org>
Sun, 19 Jul 2009 15:56:22 +0000 (17:56 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 19 Jul 2009 15:56:22 +0000 (17:56 +0200)
commit36d1c3d162c687cd11c05e88a93fa1de78f06eab
tree92c561b90876a52421da2d4bec6dcf68fc1349a3
parent732734671a6d8cc8960c3c5a67d25f85ba6d7cb4
Micro optimizations for the amp filter.

Use memcpy in the special case amp==0 (no amplification) and optimize the code in
the performance-critical loop. Intrestingly, using the likely()/unlikely() macros made the
code slower.

Results (three runs on identical input data on a 32bit x86 machine under Linux, gcc-4.4.0):

old with --amp 3:
        0m0.776s 0m0.790s 0m0.812s, avg: 792
new with --amp 3:
        0m0.456s 0m0.492s 0m0.477s, avg: 475
speedup: 1.67

old with --amp 0:
        0m0.791s 0m0.808s 0m0.810s, avg: 803
new with --amp 0:
        0m0.100s 0m0.103s 0m0.094s, avg: 99
speedup: 8.1
amp_filter.c