[FFmpeg-devel] [PATCH 3/3] lavfi/motion_estimation: use pixelutils API for sad.

mypopy at gmail.com mypopy at gmail.com
Thu Jul 12 03:50:18 EEST 2018


On Thu, Jul 12, 2018 at 12:43 AM Marton Balint <cus at passwd.hu> wrote:
>
>
>
> On Wed, 11 Jul 2018, Jun Zhao wrote:
>
> > use pixelutils API for sad in motion estimation.
>
> Does it make sense to improve this code? I thought a superior and faster
> approach was a result of 2017 GSOC task:
>
> https://docs.google.com/document/d/1Hyh_rxP1KGsVkg7i7yU8Bcv92z0LIL4r-axpoKfvMFk/edit
>
> Maybe that code should be merged back, and any further optimalization
> should be done based on that code, no?
>
> Thanks,
> Marton
>
Hi, Marton:

Yes, now I try to improve the minterpolate, and after use perf
profiing the commands:

./ffmpeg -i a.ts -filter_complex
"minterpolate=mi_mode=mci:mc_mode=aobmc:vsbmc=1" -f null /dev/null
I found the hotspot is:
- get_sbad_ob
- get_sbad
- get_sad_ob
- bilateral_obmc
- set_frame_data

So, as my plan, I will try to use sse2/avx2
Scatter/Gather, optimized
sad function (use pixelutils API)
 in  get_sbad_ob /  get_sbad /  get_sad_ob first, for  set_frame_data
case, maybe need to use Scatter/Gather SIMD instruction.

But if some guys have done some improve task in this case, I think
based on the pre-existing work is the better way.

BTW: I have tried to use SIMD to improve the blend data path (like a
command: ./ffmpeg -i a.ts -filter_complex
"minterpolate=mi_mode=blend:scd=fdiff:scd_threshold=1" -f null
/dev/null ), after the SIMD improve, the fps increae about 100% (from
30fps to 60fps in 1080P)


More information about the ffmpeg-devel mailing list