[FFmpeg-devel] [PATCH/RFC] dsputil additions and wma(pro) speedups

Mans Rullgard mans
Sun Sep 27 12:49:16 CEST 2009

The following patch series adds a few new dsputil functions and makes
use of them in the wma and wmapro decoders.  I tried to keep them as
generic as possible without sacrificing speed.  They are missing
proper documentation, which I will add once we agree on the

There are also a few non-dsputil improvements to the wma decoders.
These are borderline hacks, so discussion is welcome.

With NEON versions of these functions (not included here), I get a
speedup on Cortex-A8 of 3.75x for wma and 1.65x for wmapro.

Mans Rullgard (12):
  Add vector_fmul_step_scalar for WMA
  Add fill_float to dsputil
  Add vector_clipf_interleave() function to dsputil
  Add vector_fmul_matrix to dsputil
  WMA: use vector_fmul_step_scalar
  WMA: use float_to_int16_interleave
  WMA: use fill_float from dsputil
  WMA: use a table instead of pow() in decode_exp_vlc
  WMA: store level_table as floats, use type punning for sign flip in
  WMAPRO: use vector_clipf_interleave()
  WMAPRO: use vector_fmul_matrix()
  WMAPRO: use some type punning in decode_coeffs()

 libavcodec/dsputil.c    |   90 +++++++++++++++++++++++++++++++++++++++++++++++
 libavcodec/dsputil.h    |    9 +++++
 libavcodec/wma.c        |   19 +++++++---
 libavcodec/wma.h        |    5 ++-
 libavcodec/wmadec.c     |   67 +++++++++++++++++++++-------------
 libavcodec/wmaprodata.h |    4 +-
 libavcodec/wmaprodec.c  |   84 ++++++++++++++++++++------------------------
 7 files changed, 196 insertions(+), 82 deletions(-)

More information about the ffmpeg-devel mailing list