• Fei Wang's avatar
    lavfi/qsvvpp: support async depth · 89ffcd1b
    Fei Wang authored
    Async depth will allow qsv filter cache few frames, and avoid force
    switch and end filter task frame by frame. This change will improve
    performance for some multi-task case, for example 1:N transcode(
    decode + vpp + encode) with all QSV plugins.
    
    Performance data test on my Coffee Lake Desktop(i7-8700K) by using
    the following 1:8 transcode test case improvement:
    1. Fps improved from 55 to 130.
    2. Render/Video usage improved from ~61%/~38% to ~100%/~70%.(Data get
    from intel_gpu_top)
    
    test CMD:
    ffmpeg -v verbose -init_hw_device qsv=hw:/dev/dri/renderD128 -filter_hw_device                 \
     hw -hwaccel qsv -hwaccel_output_format qsv -c:v h264_qsv -i 1920x1080.264                     \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null - \
    -vf 'vpp_qsv=w=1280:h=720:async_depth=4' -c:v h264_qsv -r:v 30 -preset 7 -g 33 -refs 2 -bf 3 -q 24 -f null -
    Signed-off-by: 's avatarFei Wang <fei.w.wang@intel.com>
    Reviewed-by: 's avatarLinjie Fu <linjie.justin.fu@gmail.com>
    Signed-off-by: 's avatarZhong Li <zhongli_dev@126.com>
    89ffcd1b
qsvvpp.h 3.82 KB