[FFmpeg-devel] [PATCHv2] avfilter/vsrc_mandelbrot: avoid sqrt for epsilon calculation
Ganesh Ajjanagadde
gajjanag at mit.edu
Wed Nov 25 02:38:37 CET 2015
On Tue, Nov 24, 2015 at 2:28 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Tue, Nov 24, 2015 at 12:02:24PM -0500, Ganesh Ajjanagadde wrote:
>> This rewrites into a similar expression avoiding sqrt. Similarity is
>> assured since sqrt(x^2 + y^2)/(x+y) lies in [1/sqrt(2), 1] for x, y > 0.
>>
>> Tested on x86-64, Haswell, GNU/Linux.
>> Command:
>> ffmpeg -f lavfi -i mandelbrot -f null -
>>
>> old (draw_mandelbrot):
>> 277625266 decicycles in draw_mandelbrot, 256 runs, 0 skips
>> 304527322 decicycles in draw_mandelbrot, 512 runs, 0 skips
>> 377593582 decicycles in draw_mandelbrot, 1024 runs, 0 skips
>> 338539499 decicycles in draw_mandelbrot, 2048 runs, 0 skips
>> 583630357 decicycles in draw_mandelbrot, 4096 runs, 0 skips
>>
>> new (draw_mandelbrot):
>> 274635709 decicycles in draw_mandelbrot, 256 runs, 0 skips
>> 300287046 decicycles in draw_mandelbrot, 512 runs, 0 skips
>> 371819935 decicycles in draw_mandelbrot, 1024 runs, 0 skips
>> 336663765 decicycles in draw_mandelbrot, 2048 runs, 0 skips
>> 581851016 decicycles in draw_mandelbrot, 4096 runs, 0 skips
>>
>> Reviewed-by: Michael Niedermayer <michael at niedermayer.cc>
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> ---
>> libavfilter/vsrc_mandelbrot.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> LGTM
>
> thx
pushed, thanks.
>
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Rewriting code that is poorly written but fully understood is good.
> Rewriting code that one doesnt understand is a sign that one is less smart
> then the original author, trying to rewrite it will not make it better.
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list