[FFmpeg-devel] libavcodec/utvideodsp : add avx2 version

Martin Vignali martin.vignali at gmail.com
Wed Oct 25 22:53:39 EEST 2017


2017-10-22 14:05 GMT+02:00 Martin Vignali <martin.vignali at gmail.com>:

> Hello,
>
> In attach patch to add AVX2 version for the utvideodsp
>
> Checkasm result (Kaby Lake, os 10.12)
> restore_rgb_planes_c: 8371.0
> restore_rgb_planes_sse2: 6583.7
> restore_rgb_planes_avx2: 3596.5
>
> restore_rgb_planes10_c: 16735.7
> restore_rgb_planes10_sse2: 11478.5
> restore_rgb_planes10_avx2: 7193.7
>
>
> Pass fate test for me
>
>
> 0001-checkasm-add-utvideodsp-test :
> I'm not entirely sure of mine, for this checkasm,
>
> 0002-libavcodec-x86-utvideodsp-make-macro-for-func
> Code reorganization
>
> 0003-libavcodec-utvideodsp-add-avx2-version-for-the-dsp
> AVX2 version
>
> 0004-libavcodec-x86-utvideodsp.asm-cosmetic
> Cosmetic
>
> Martin
> Jokyo Images
>
>
Following comments of Paul B Mahol in another thread

Here too, data alignment "is made" with AVFrame->data / AVFrame->linesize

these func are call with this code :

c->utdsp.restore_rgb_planes(frame.f->data[2], frame.f->data[0],
frame.f->data[1],
                                    frame.f->linesize[2],
frame.f->linesize[0], frame.f->linesize[1],
                                    avctx->width, avctx->height);
and
c->utdsp.restore_rgb_planes10((uint16_t *)frame.f->data[2], (uint16_t
*)frame.f->data[0], (uint16_t *)frame.f->data[1],
                                      frame.f->linesize[2] / 2,
frame.f->linesize[0] / 2, frame.f->linesize[1] / 2,
                                      avctx->width, avctx->height);


Martin


More information about the ffmpeg-devel mailing list