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.

Bitrate on low resolutions

Levan_N_
Beginner
487 Views

Hello

I'm trying to create video for small devices, so video width and height is 320 x 192, framerate is set to 25 fps, codec is MFX_CODEC_AVC, targetUsage MFX_TARGETUSAGE_BEST_SPEED, PicStruct MFX_PICSTRUCT_PROGRESSIVE, RateControlMethod MFX_RATECONTROL_CBR, codec profile MFX_PROFILE_AVC_CONSTRAINED_BASELINE, GopPicSize 16.

TargetKbps is set to values from 50-150... But video output is always about 300 kbp/s.. I'm not able to lower bitrate. Even with 128 x 128 with TargetKbps = 50 video bitrate is about 300k Am I missing something?

Windows 7 64 bit, cpu i7 3770

0 Kudos
3 Replies
Petter_L_Intel
Employee
487 Views

Hi Levan,

What version of Media SDK are you using?

Quick test with similar configuration using HW indicates that the requested bitrate is quite close to the bitrate of the generated stream. Using MFX_PROFILE_AVC_CONSTRAINED_BASELINE, the bitrate is slightly higher but not by much.

I am a bit surprised to see that for SW encoder generates streams with bitrates much greater than requested rate. 

Can you confirm if you're using SW or HW encoder?

Regards,
Petter 

0 Kudos
Levan_N_
Beginner
487 Views

Hello Petter,

IntelMediaSDK2013 downloaded from the site... HW encoder, here is initialization code

---

APIChangeFeatures features = {};
features.MVCEncode = false;
features.ViewOutput = false;
features.JpegEncode = false;

mfxVersion version;
version.Major = 1;
version.Minor = 4;

mfxIMPL impl = MFX_IMPL_HARDWARE_ANY;
sts = m_mfxSession.Init(impl, &version);

---

In my tests, no bitrate less than 300 kbp/s could be achieved. on greater resolutions (640 x 480 for example) setting

bitrate (for example 800-1500) works well.

Regards,

Levan Natroshvili

0 Kudos
Levan_N_
Beginner
487 Views

Just found problem. Encoder gives exactly what should be... On my side bitrate is calculated using network traffic... Each frame is transferred using separate udp packet of MTU size... So even frame is 100 bytes I send ~1,5k

Sorry

0 Kudos
Reply