Search code examples
intel-media-sdk

No performance gain using HyperEncode


I am trying out Intel OneVPL, MFX_VERSION = 2006 in Windows 11 Pro.

I use the sample_encoded.exe(https://github.com/oneapi-src/oneVPL/blob/master/tools/legacy/sample_encode/README.md) to encode the yuv frame into H264.

With Hyper encode, I tried the below command .\sample_encode.exe h264 -i test_out.yuv -o test_out.h264 -dGfx -dual_gfx::on -w 1920 -h 1080 -nv12 -idr_interval 0 -d3d11 -async 30 -g 30 -r 1 -u 4 -lowpower:on -n 8928

But I am not seeing any improvement with HyperEncode.

Any idea?


Solution

  • It is not guaranteed that using HyperEncode will always improve performance. It depends on various associated metrics and how the hardware is being utilized. One way of getting better performance from HyperEncode is to use '-perf_opt n option' which preloads n first frames to buffers from the input stream. Also, metrics like async value and GOP size can greatly impact performance.

    Moreover, if you have multiple GPUs on your system, it is recommended to split the stream into multiple segments and utilize the available GPUs simultaneously to improve performance.

    More information and example code for selecting from among multiple GPUs is included in the guide here.

    Also, you might not get substantial performance improvement from HyperEncode if the resolution is not high (>4K) enough.