[FFmpeg-devel] [PATCH] x86/me_cmp: port mmxext vsad functions to yasm

Michael Niedermayer michaelni at gmx.at
Fri Sep 19 23:41:23 CEST 2014

On Fri, Sep 19, 2014 at 05:04:49PM -0300, James Almer wrote:
> Also add mmxext versions of vsad8 and vsad_intra8, and sse2 versions of
> vsad16 and vsad_intra16.
> Since vsad8 and vsad16 are not bitexact, they are accordingly marked as
> approximate.
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> Unrelated to this patch, but this simd implementation of vsad is *far* 
> from approximate.
> Here's an excerpt of the output from motion-test.c (modified to use vsad 
> and ignore the bitexact flag).
> mmx2 for 16x16 pixels
> testing 'vsad'
> error: mmx=9867 c=12871
> error: mmx=9654 c=11976
> error: mmx=9399 c=12579
> error: mmx=11566 c=14152
> error: mmx=9751 c=13461

it would be more interresting with real world data, vsad isnt even
a motion estimation function, its used to detect interlaced areas

> +;---------------------------------------------------------------------
> +;int ff_vsad_approx(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2,
> +;                   int line_size, int h);
> +;---------------------------------------------------------------------
> +; %1 = 8/16
> +%macro VSAD_APPROX 1
> +cglobal vsad%1_approx, 5, 5, 5, v, pix1, pix2, lsize, h

> +    mova   m1, [pb_127]

isnt this supposed to be 128 ?

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140919/3162b805/attachment.asc>

More information about the ffmpeg-devel mailing list