Hardware encoder disobeys VBR bitrate change ?

Hardware encoder disobeys VBR bitrate change ?

I've built a small program that encodes video into H264 using the Beta2 of V3 of the SDK.
When running in software encoding mode, calling Reset can change the bitrate produced by the encoder. However, the same code, when used in hardware encoding mode, has no effect at all ! The Reset command returns no error, but it also has absolutely no effect on the encoding process, is that a known shortcoming ?


Jack Chimasera

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

Hi Jack,

There are two things to take into consideration here.

1) Intel Media SDK 3.0 is targeted to expose HW accelerated features of next generation Intel platform, code named Ivy Bridge. This means that the new features of Media SDK in 3.0 may not yet be fully supported in HW in current generation Intel platforms. The intent is that the SW Media SDK implementaton of the feature will provide the same functionality leading up to the launch of Ivy Bridge. This is likely the reason you are experiencing issues using the Reset operation in changing bit rate.

2) The Dynamic bit rate feature is unfortunately not very well described in the appendix chapter of the Media SDK manual.To make sure this feature works optimally you should do the following:(Below approach is not perfect, but ensures the feature get enabled)- Call MFXVideoENCODE_Reset immediately after calling MFXVideoENCODE_Init during initialization of encoder. The MFXVideoENCODE_Reset call must set TargetKbps or MaxKbps to a different value than the value used in the MFXVideoENCODE_Init call. Initialization example below:

Params.mfx.TargetKbps += 10;

- This will enable immediate rate change via following MFXVideoENCODE_Reset calls during encode.


This helped me too, thanks.

Leave a Comment

Please sign in to add a comment. Not a member? Join today