Skip to content

Low power encoding

Bartosz Meglicki edited this page Feb 24, 2021 · 5 revisions

Some Intel platforms support alternative low power encoding path for some profiles.

The functionality may be limited.

Using

To request low power encoding pass non-zero low_power in hve_config when calling hve_init.

Support

Check support with vainfo:

vainfo
# or specify device if you have multiple (e.g. NVIDIA/Intel)
vainfo --display drm --device /dev/dri/renderD128
# or specify driver if you have multiple (e.g. Ubuntu 20.04)
LIBVA_DRIVER_NAME=i965 vainfo --display drm --device /dev/dri/renderD128
LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD128

Example output fragment:

# example H.264 encoding entry point
VAProfileH264Main               :	VAEntrypointEncSlice
# example H.264 encoding low power entry point
VAProfileH264Main               :	VAEntrypointEncSliceLP

iHD support by generation - media-driver
i965 support by generation - intel-vaapi-driver

Bitrate control

Low power encoding requires loaded HuC for bitrate control.

If you try to use rate control mode (e.g. VBR, CBR) without HuC expect error:

# FFmpeg 3.4.8 (Ubuntu 18.04)
[h264_vaapi @ 0x5619121478a0] Rate control mode 0x4 is not supported (mask: 0x10).
# FFmpeg 4.2.4 (Ubuntu 20.04)
[h264_vaapi @ 0x564874b298c0] Driver does not support any RC mode compatible with selected options (supported modes: CQP).

For information about loading HuC see GuC-and-HuC.

Checking at runtime

You may verify if low power encoding is used with intel_gpu_top.

sudo intel_gpu_top

While low power encoding your Render/Render busy will not be affected.

Clone this wiki locally