Is iterative encoding possible ?

Is iterative encoding possible ?


I am currently working on a solution that will require me to encode a stream of H.264, but have very low latency. The problem I'm facing is that with "normal" quantizer control, if a perfectly static scene abruptly changes, there may be a bandwidth spike, and even if this is later compensated for by using a higher quantizer for a time, The time it will take to transmit the spike over my limited bandwidth may cause a noticeable increase in latency.

The solution for that in my view may involve iterative encoding, namely, if I encode a frame and its encoded size is above some threshold, I will reset the encoder to its state before the last frame was encoded, and try encoding it again with a higher quantizer. Is it possible to perform this feat with Intel's Media SDK ?

I know it is possible in the limited sense of ignoring the oversized encoded frame, and that same frame again as an I-Frame instead, but I was wondering if this is possible even without such a drastic measure.


Jack Chimasera

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

Hi Jack,

Unfortunately the usage you describe is not supported by Media SDK. As you stated, you may resort to encoding an I-frame instead, but I do understand the drawbacks of this.

We will consider your suggested use case for future releases of Media SDK.

As a side note, Media SDK has a feature called VPP "Scene Change Detection", which would potentially be useful for the above case. But the fact is that this feature only works in SW (not in HW), and therefore the feature will likely be deprecated quite soon.


Leave a Comment

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