lavf/qsv_scale: add scaling modes support
authorZhong Li <zhong.li@intel.com>
Tue, 18 Jun 2019 07:52:29 +0000 (15:52 +0800)
committerZhong Li <zhong.li@intel.com>
Tue, 25 Jun 2019 03:33:12 +0000 (11:33 +0800)
commitdd662bbdd26e09957b3e67d3cde07b9468931e15
treebb50edf7eadceafd29ab40e0611a49586d8337f4
parent800f618a340d122754e7bdb82c22463cb9bd17b0
lavf/qsv_scale: add scaling modes support

low_power mode will use a fixed HW engine (SFC), thus can offload EU usage.
high quality mode will take EU usage (AVS sampler).

Performance and EU usage (Render usage) comparsion on Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz:

High quality mode : ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal_2000frames.h264 \
-vf scale_qsv=w=1280:h=736:mode=hq -f null -
fps=389
RENDER usage: 28.10 (provided by MSDK metrics_monitor)

Low Power mode: ffmpeg -hwaccel qsv -c:v h264_qsv -i ~/bbb_sunflower_1080p_30fps_normal_2000frames.h264 \
-vf scale_qsv=w=1280:h=736:mode=low_power -f null -
fps=343
RENDER usage: 0.00

Low power mode (SFC) may be disabled if not supported by
MSDK/Driver/HW, and replaced by AVS mode interanlly.

Signed-off-by: Zhong Li <zhong.li@intel.com>
libavfilter/vf_scale_qsv.c