Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6722 Discussions

Change H.264 encoder bitrate in the time of encoding

evgeny777
Beginner
337 Views
Hi, all!

I'm developing VoIP application using Intel IPP H.264 encoder/decoder. I want my application to adapt to
current network conditions, so it can dynamically change bitrate of encoded H.264 stream. For exampleapplication can
start with relatively low bitrate (100 Kbps) and if user have plenty of available bandwidth then I want to increase encoder
bitrate. Can I make SetParams() call while encoding? Or I should create another encoder instance to accomplish this task?
0 Kudos
1 Solution
Emmanuel_W_
New Contributor I
337 Views
Quoting - evgeny777
Hi, all!

I'm developing VoIP application using Intel IPP H.264 encoder/decoder. I want my application to adapt to
current network conditions, so it can dynamically change bitrate of encoded H.264 stream. For exampleapplication can
start with relatively low bitrate (100 Kbps) and if user have plenty of available bandwidth then I want to increase encoder
bitrate. Can I make SetParams() call while encoding? Or I should create another encoder instance to accomplish this task?

Calling SetParam is better than reinitializing the encoder (this avoid generating an IDR) but the current ofSetParam implementation is not great in my opinion. The rate controller is reinitialized altogether which can cause temporary overshoot/undershoot which is not ideal for a VoIP application.

Emmanuel

View solution in original post

0 Kudos
1 Reply
Emmanuel_W_
New Contributor I
338 Views
Quoting - evgeny777
Hi, all!

I'm developing VoIP application using Intel IPP H.264 encoder/decoder. I want my application to adapt to
current network conditions, so it can dynamically change bitrate of encoded H.264 stream. For exampleapplication can
start with relatively low bitrate (100 Kbps) and if user have plenty of available bandwidth then I want to increase encoder
bitrate. Can I make SetParams() call while encoding? Or I should create another encoder instance to accomplish this task?

Calling SetParam is better than reinitializing the encoder (this avoid generating an IDR) but the current ofSetParam implementation is not great in my opinion. The rate controller is reinitialized altogether which can cause temporary overshoot/undershoot which is not ideal for a VoIP application.

Emmanuel
0 Kudos
Reply