summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc_h264.c
diff options
context:
space:
mode:
authorgalinart <artem.galin@gmail.com>2022-12-05 20:18:21 +0000
committerHaihao Xiang <haihao.xiang@intel.com>2023-01-30 08:48:58 +0800
commit500282941655558e2440afe163f0268dc5ac61bf (patch)
tree2f19c8273c7fedfb629a720cfde70dbb3a3facd0 /libavcodec/qsvenc_h264.c
parentaecfec6f80fd8be68e050a97935589beeae588fa (diff)
downloadffmpeg-500282941655558e2440afe163f0268dc5ac61bf.tar.gz
libavcodec/qsvenc: enable Hyper Encode
Hyper Encode uses Intel integrated and discrete graphics on one system to accelerate encoding of a single video stream. Depending on the selected parameters and codecs, performance gain on AlderLake iGPU + ARC Gfx up to 1.6x. More information: https://www.intel.co.uk/content/www/uk/en/architecture-and-technology/adaptix/deep-link.html Developer guide: https://github.com/oneapi-src/oneVPL-intel-gpu/blob/main/doc/HyperEncode_FeatureDeveloperGuide.md Hyper Encode is supported only on Windows and requires D3D11 and oneVPL. To enable Hyper Encode need to specify: -Hyper Encode mode (-dual_gfx on or dual_gfx adaptive) -Encoder: h264_qsv or hevc_qsv -BRC: VBR, CQP or ICQ -Lowpower mode (-low_power 1) -Closed GOP for AVC or strict GOP for HEVC -idr_interval = 0 used by default Depending on the encoding parameters, the following parameters may need to be adjusted: -g recommended >= 30 for better performance -async_depth recommended >= 30 for better performance -extra_hw_frames recommended equal to async_depth value -bf recommended = 0 for better performance In the cases with fast encoding (-preset veryfast) there may be no performance gain due to the fact that the decode is slower than the encode. Command line examples: ffmpeg.exe -init_hw_device qsv:hw,child_device_type=d3d11va,child_device=0 -v verbose -y -hwaccel qsv -extra_hw_frames 60 -async_depth 60 -c:v h264_qsv -i bbb_sunflower_2160p_60fps_normal.mp4 -async_depth 60 -c:v h264_qsv -preset medium -g 60 -low_power 1 -bf 0 -dual_gfx on output.h265 Signed-off-by: galinart <artem.galin@intel.com>
Diffstat (limited to 'libavcodec/qsvenc_h264.c')
-rw-r--r--libavcodec/qsvenc_h264.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index bbdedc3335..071a9a79e9 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -117,6 +117,9 @@ static const AVOption options[] = {
QSV_OPTION_SCENARIO
QSV_OPTION_AVBR
QSV_OPTION_SKIP_FRAME
+#if QSV_HAVE_HE
+ QSV_HE_OPTIONS
+#endif
{ "cavlc", "Enable CAVLC", OFFSET(qsv.cavlc), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
#if QSV_HAVE_VCM