[FFmpeg-devel] [PATCH] SIMD-optimized exponent_min() for ac3enc

Justin Ruggles justin.ruggles
Sat Jan 15 04:21:20 CET 2011


This patch adds optimized versions of the exponent_min() function in
ac3enc.c.  Exponent encoding has already had some speed-ups earlier
today (benchmarks below) and this will give another 55% speed-up.

Much thanks to Ronald B. for helping me improve PMINUB_MMX.

Benchmarks for exponent_min():
Note: The inner loop runs 1 to 5 times depending on the exponent
strategy in each block, so I modified the AC3 encoder to always use the
same strategy during the benchmarks so the result wouldn't be
content-dependent.  All the speeds are slightly faster with the normal
exponent strategy decision.

   C: 38692
 MMX:  6957
 SSE:  5306
SSE2:  2891

   C: 99100
 MMX: 12996
 SSE: 10464
SSE2:  5829

Benchmarks for encode_exponents() on Athlon64:
     yesterday: 248878
        r26357: 228710
        r26358: 130051  (exponent_min() is 30%)
patched (sse2):  58905  (exponent_min() is 5%)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ac3_exponent_min.patch
Type: text/x-patch
Size: 12458 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110114/9aab32d0/attachment.bin>

More information about the ffmpeg-devel mailing list