Intel-Media-SDK / MediaSDK

The Intel® Media SDK
MIT License
923 stars 453 forks source link

does hevc encoder support the extmbqp feature on windows? #2664

Open bingguji opened 3 years ago

bingguji commented 3 years ago

when I use the sample_multi_transcode to test the extmbqp feature,I find that h264 encoder support extmbqp, but h265 return error.

my devices is Intel core i7-8700@3.2GHz, my system is windows 10.

H265:

sample_multi_transcode.exe -i::h265 StandardSequence_cbr.bin -o::h265 test_1080_trans.265 -hw -cqp -extmbqp

Multi Transcoding Sample Version 8.4.27.0

Session 0: [WARNING] Configuration changed on the Query() call mfx.LowPower:0 changed to mfx.LowPower:32 ext.265P.PicHeightInLumaSamples:1080 changed to ext.265P.PicHeightInLumaSamples:1088 ext.CDO3.EnableMBQP:16 changed to ext.CDO3.EnableMBQP:0 Pipeline surfaces number (DecPool): 11 Input video: HEVC Output video: HEVC MFX dll: C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_f48be35b3d221b44\libmfxhw32.dll

Session 0 was NOT joined with other sessions

Transcoding started

[ERROR], sts=MFX_ERR_UNDEFINED_BEHAVIOR(-16), TranscodingSample::CTranscodingPipeline::PutBS, Encode: SyncOperation failed at src\pipeline_transcode.cpp:1950

[ERROR], sts=MFX_ERR_ABORTED(-12), TranscodingSample::CTranscodingPipeline::Transcode, PutBS failed at src\pipeline_transcode.cpp:1912

[ERROR], sts=MFX_ERR_ABORTED(-12), TranscodingSample::CTranscodingPipeline::Run, CTranscodingPipeline::Run::Transcode() [03B1DE10] failed at src\pipeline_transcode.cpp:4584

session 0 [03B1DE10] failed with status MFX_ERR_ABORTED shutting down the application...

session [03B1DE10] m_bForceStop is set

Transcoding finished

Common transcoding time is 0.0635322 sec

*** session 0 [03B1DE10] FAILED (MFX_ERR_ABORTED) 0.0628109 sec, 8 frames, 127.366 fps -i::h265 StandardSequence_cbr.bin -o::h265 test_1080_trans.265 -hw -cqp -extmbqp


The test FAILED

[ERROR], sts=MFX_ERR_ABORTED(-12), wmain, transcode.ProcessResult failed at src\sample_multi_transcode.cpp:1255

H264:

sample_multi_transcode.exe -i::h265 StandardSequence_cbr.bin -o::h264 test_1080_trans.264 -hw -cqp -extmbqp

Multi Transcoding Sample Version 8.4.27.0

Session 0: Pipeline surfaces number (DecPool): 7 Input video: HEVC Output video: AVC MFX dll: C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_f48be35b3d221b44\libmfxhw32.dll

Session 0 was NOT joined with other sessions

Transcoding started .......... Transcoding finished

Common transcoding time is 13.4545 sec

*** session 0 [012F9CC0] PASSED (MFX_ERR_NONE) 13.4536 sec, 1097 frames, 81.539 fps -i::h265 StandardSequence_cbr.bin -o::h264 test_1080_trans.265 -hw -cqp -extmbqp


The test PASSED

vilichev commented 3 years ago

Hi @bingguji,

  1. MBQP feature is not supported on CFL Windows. Сorresponding HW capabilities are reported from driver to MSDK lib (MbQpDataSupport=0). The feature is supported on Windows starting from TGL.
  2. As regards "[ERROR], sts=MFX_ERR_UNDEFINED_BEHAVIOR» the issue was fixed according to https://github.com/Intel-Media-SDK/MediaSDK/pull/2673. After this fix encoding with “-extmbqp” will be PASSED but without MBQP. The output will just contain: [WARNING] Configuration changed on the Query() call ext.CDO3.EnableMBQP:16 changed to ext.CDO3.EnableMBQP:0