[FFmpeg-devel] AMR-NB decoder

Måns Rullgård mans
Sun Aug 9 17:20:02 CEST 2009


Colin McQuillan <m.niloc at googlemail.com> writes:

> 2009/8/8 Michael Niedermayer <michaelni at gmx.at>:
>> On Sat, Aug 08, 2009 at 04:09:39PM +0100, Colin McQuillan wrote:
>>> 2009/8/8 Michael Niedermayer <michaelni at gmx.at>:
>>> > On Fri, Aug 07, 2009 at 08:23:53PM +0100, Colin McQuillan wrote:
>>> >> 2009/8/6 Michael Niedermayer <michaelni at gmx.at>:
>>> >> > On Wed, Aug 05, 2009 at 05:51:36PM +0100, Colin McQuillan wrote:
>>> >> >> Attached is a patch for an AMR-NB decoder.
>>>
>>> [...]
>>>
>>> >> > that should e a seperate patch
>>> >>
>>> >> I'll leave this one until I investigate a version for sparse vectors. Attached:
>>> >>
>>> >> 1. Helper functions for gain control in floating-point codecs
>>> >> I couldn't find a similar fixed point function to copy the function name.
>>> >>
>>> >> 2. Floating-point version of ff_acelp_high_pass_filter
>>> >
>>> >> ?acelp_vectors.c | ? 22 ++++++++++++++++++++++
>>> >> ?acelp_vectors.h | ? 27 +++++++++++++++++++++++++++
>>> >> ?2 files changed, 49 insertions(+)
>>> >> f1abbee9b62c1779fd5fb1c634d4ab4294d8611d ?get-set-energyf.patch
>>> >> Index: libavcodec/acelp_vectors.c
>>> >> ===================================================================
>>> >> --- libavcodec/acelp_vectors.c ? ? ? ?(revision 19606)
>>> >> +++ libavcodec/acelp_vectors.c ? ? ? ?(working copy)
>>> >> @@ -155,3 +155,25 @@
>>> >> ? ? ? ? ?out[i] = weight_coeff_a * in_a[i]
>>> >> ? ? ? ? ? ? ? ? + weight_coeff_b * in_b[i];
>>> >> ?}
>>> >> +
>>> >> +float ff_energyf(const float *v, int length)
>>> >> +{
>>> >> + ? ?float sum = 0;
>>> >> + ? ?int i;
>>> >> +
>>> >> + ? ?for (i = 0; i < length; i++)
>>> >> + ? ? ? ?sum += v[i] * v[i];
>>> >> +
>>> >> + ? ?return sum;
>>> >> +}
>>> >
>>> > ff_dot_productf)(
>>>
>>> Do you mean that ff_energyf is redundant? I've taken it out.
>>
>> hmm well, as you say it that way, ff_energyf() could be faster due to
>> fewer mem reads, if that is te case in practice it could be kept
>
> ff_energyf is reliably 4% faster in my test, so I'll add it back in.

That function has high simdicity so it should be added to dsputil and
simdified.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list