[FFmpeg-devel] MIPS optimizations of AMR FP decoders

Nedeljko Babic nbabic at mips.com
Wed Jun 6 14:01:06 CEST 2012

Per previous code review:
mips.texi file with MIPS Technologies copyright notice,
list of files where this copyright notice can be found and 
short explanation regarding what was targeted CPU 
architecture added.
mips.texi is included in ffmpeg.texi.

Per previous code review:
Organization of code is changed because the way in which 
functions are used is also changed. Most of the functions are 
now being called using function pointers. Additional structures 
are added to support this. For the rest of the functions
#ifndef function_name is being used.

Per previous code review:
Suggested code changes are done.
Info regarding assumptions for loop counts added in appropriate 
*.h files. Optimization of function ff_amrwb_lsp2lpc removed.
Change maid in 37ddd3833219fa7b913fff3f5cccc6878b047e6b
applied in ASM for function ff_celp_lp_synthesis_filterf.

What was not done in this patch:
Optimization of lrintf is left in FMFPEG.
Since lrintf  is part of libm library and not ffmpeg, I agree that 
this is not the best place for this optimization. However, current 
compilers ( Sourcery G++ 4.5.1 is the last that I tested ) are 
doing poor job optimizing this function.
Because lrintf uses lot of decoding time (8 - 10%) on streams that 
we used for profiling it is left in place for now.
We can always remove it when this optimization becomes unnecessary.

More information about the ffmpeg-devel mailing list