Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

MFX_RATECONTROL_QVBR and sample_encode

koby_s_
Beginner
1,004 Views

Hi
I am trying to use MFX_RATECONTROL_QVBR and I am getting the same problem described here : https://software.intel.com/en-us/forums/intel-media-sdk/topic/594161 .
The difference is that I am using  the H264 encoder on windows.

In pipeline_encode::InitMfxEncParams (line ~370, just after setting the TargetKbps) I added

m_mfxEncParams.mfx.MaxKbps                 = pInParams->nBitRate * 2;
m_mfxEncParams.mfx.BufferSizeInKB         = (m_mfxEncParams.mfx.MaxKbps / 8);
m_mfxEncParams.mfx.RateControlMethod     = MFX_RATECONTROL_QVBR;

MSDK_ZERO_MEMORY(m_CodingOption3);
m_CodingOption3.Header.BufferId         = MFX_EXTBUFF_CODING_OPTION3;
m_CodingOption3.Header.BufferSz         = sizeof(m_CodingOption3);
m_CodingOption3.QVBRQuality             = 30;
m_EncExtParams.push_back((mfxExtBuffer *)&m_CodingOption3);

I tried to use software and hardware implementations. In both cases I got MFX_ERR_INCOMPATIBLE_VIDEO_PARAM from m_pmfxENC->Init(&m_mfxEncParams;
Attached are tracer logs and system analyzer output.

I can confirm that the original 'sample_encode' is working without any problem (both sw and hw).

Also, I couldn't find in the release notes if QVBR rc is supported on windows and if so, which encoders supporting this rate control (HEVC?  MPEG2?)

Can you please refer me to the correct file/link ?

BTW - 

I am using Media Server Studio 2016

Thnak you

Koby

0 Kudos
5 Replies
Surbhi_M_Intel
Employee
1,004 Views

Hi Koby, 

Uri has asked same question through IPS, case number 6000159669. I am copying my reply here to the original question -" QVBR is supported for windows and H264 codec. It is not supported for other codecs. Can you please confirm if your are seeing issue with H264 encoding using QVBR rate control?" 
Can we discuss this issue at one place to avoid multiple parallel discussion on same topic. 

Thanks,
Surbhi

0 Kudos
koby_s_
Beginner
1,004 Views

Hi Surbhi

Thank you for the answer.
Yes, it's the H264 encoder with QVBR rate control (both software and hardware).

Thank you
koby

0 Kudos
Surbhi_M_Intel
Employee
1,004 Views

Koby, 

I am able to reproduce the issue on 3rd generation core processor, however same application works on 4th generation core processor. My initial analysis is that it could be broken on 3rd generation driver, will check with the driver and developer team to work on the root cause.

Thanks,
Surbhi 

0 Kudos
koby_s_
Beginner
1,004 Views

Hi Surbhi

Thank you for the response.

Did you also try the software implementation or just the hardware? As I mentioned before it happens on both modes.

Thank you

Koby

0 Kudos
Surbhi_M_Intel
Employee
1,004 Views

Hi Koby, 

I tested using hardware implementation, also received confirmation form development team that QVBR is not supported on 3rd generation. This rate control successfully works on 4th generation. QVBR is not supported through sw implementation, from Media Server Studio release notes - 

  • The following APIs are not supported by the software implementation of the SDK library:
    • mfxExtEncoderCapability, mfxExtEncoderResetOption, mfxExtAVCEncodedFrameInfo
    • MFX_RATECONTROL_LA, MFX_RATECONTROL_ICQ, MFX_RATECONTROL_LA_ICQ, MFX_RATECONTROL_VCM, MFX_RATECONTROL_QVBR, MFX_RATECONTROL_LA_HRD  and any options related to these BRC modes

Thanks,
Surbhi

0 Kudos
Reply