Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jack_Chimasera
Beginner
92 Views

Hardware encoder disobeys VBR bitrate change ?

Jump to solution
Hello
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 ?

regards

Jack Chimasera
0 Kudos
1 Solution
IDZ_A_Intel
Employee
92 Views
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:
[bash]MFXVideoENCODE_Init(&Params);
Params.mfx.TargetKbps += 10;
MFXVideoENCODE_Reset(&Params);[/bash]
- This will enable immediate rate change via following MFXVideoENCODE_Reset calls during encode.


Thanks,
Petter

View solution in original post

2 Replies
IDZ_A_Intel
Employee
93 Views
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:
[bash]MFXVideoENCODE_Init(&Params);
Params.mfx.TargetKbps += 10;
MFXVideoENCODE_Reset(&Params);[/bash]
- This will enable immediate rate change via following MFXVideoENCODE_Reset calls during encode.


Thanks,
Petter

View solution in original post

sjbaran
Novice
92 Views
This helped me too, thanks.
Reply