[FFmpeg-devel] [PATCH] avfilter/vf_removegrain: replace qsort with AV_QSORT

Michael Niedermayer michael at niedermayer.cc
Mon Oct 26 10:50:58 CET 2015


On Sun, Oct 25, 2015 at 03:10:27PM -0400, Ganesh Ajjanagadde wrote:
> filter_slice calls qsort, so qsort is in a performance critical
> position. AV_QSORT is substantially faster due to the inlining of the
> comparison callback. Thus, the increase in performance is worth the
> increase in binary size.
> 
> Sample benchmark (x86-64, Haswell, GNU/Linux),
> filter-removegrain-mode-02 (from FATE)
> new:
>   24060 decicycles in qsort,       1 runs,      0 skips
>   15690 decicycles in qsort,       2 runs,      0 skips
>    9307 decicycles in qsort,       4 runs,      0 skips
>    5572 decicycles in qsort,       8 runs,      0 skips
>    3485 decicycles in qsort,      16 runs,      0 skips
>    2517 decicycles in qsort,      32 runs,      0 skips
>    1979 decicycles in qsort,      64 runs,      0 skips
>    1911 decicycles in qsort,     128 runs,      0 skips
>    1568 decicycles in qsort,     256 runs,      0 skips
>    1596 decicycles in qsort,     512 runs,      0 skips
>    1614 decicycles in qsort,    1024 runs,      0 skips
>    1874 decicycles in qsort,    2046 runs,      2 skips
>    2186 decicycles in qsort,    4094 runs,      2 skips
> 
> old:
>  246960 decicycles in qsort,       1 runs,      0 skips
>  135765 decicycles in qsort,       2 runs,      0 skips
>   70920 decicycles in qsort,       4 runs,      0 skips
>   37710 decicycles in qsort,       8 runs,      0 skips
>   20831 decicycles in qsort,      16 runs,      0 skips
>   12225 decicycles in qsort,      32 runs,      0 skips
>    8083 decicycles in qsort,      64 runs,      0 skips
>    6270 decicycles in qsort,     128 runs,      0 skips
>    5321 decicycles in qsort,     256 runs,      0 skips
>    4860 decicycles in qsort,     512 runs,      0 skips
>    4424 decicycles in qsort,    1024 runs,      0 skips
>    4191 decicycles in qsort,    2046 runs,      2 skips
>    4934 decicycles in qsort,    4094 runs,      2 skips
> 
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavfilter/vf_removegrain.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)

LGTM

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20151026/77fe5c83/attachment.sig>


More information about the ffmpeg-devel mailing list