Community
cancel
Showing results for 
Search instead for 
Did you mean: 
nick_k_5
Beginner
129 Views

Is it possible to notify h264 HW encoder about frame update region?

hello

I am trying to use HW encoder for streaming h264. I know i should push raw frames to encoder and it will do everything for me.

Besides that i am expecting that encoder should compare new coming frame with several previous frames for making P-frame difference calculation. And i expect that frame comparation is probably very heavy task.

What if i know exactly update region? I know list of affected regions which changed relative to previous frames. This info theoretically could help encoder to do frame comparation faster. Knowledge of frame update region could save some CPU/GPU power.

But question is: how to give update region to encoder? Is it ever possible?

0 Kudos
2 Replies
Alexey_F_Intel
Employee
129 Views

this is really nice question which does not have simple answer. bare metal likes predictable process - if you region is moving within a picture then it might not be any relief to encoding process. Yes, for sure it is nice to know content ahead of encoding but what blocks you make a smart application which encodes only changing regiond?

As far as I recall there is only option to specify QP(in CQP mode only!)  for a region for Media SDK, not exactly that you ask.

Alexey

nick_k_5
Beginner
129 Views

Alexey Fadeev (Intel) wrote:

this is really nice question which does not have simple answer. bare metal likes predictable process - if you region is moving within a picture then it might not be any relief to encoding process. Yes, for sure it is nice to know content ahead of encoding but what blocks you make a smart application which encodes only changing regiond?

As far as I recall there is only option to specify QP(in CQP mode only!)  for a region for Media SDK, not exactly that you ask.

Alexey

i can explain why this feature could be useful. Lets assume i am working on wireless display driver.

Display driver receives a draw calls like BitBlt or TextOut or LineTo. Of cause, because of this, display driver knows exactly update region on user desktop. User activity on screen very often takes small action on screen, small area is affected: user types text in WinWord few chars in second, or invokes context menu, or even watches youtube video in browser window - also not a full screen.

We know update region but we cannot pass this info to h264 encoder.

So we need to pass 20-30 fps whole screen to encoder - i expect this is probably not effective. Issue is even dramatic if display driver is for mutliuser terminal server. If HW can compress 300 FPS full HD, this mean that only 10 users can be handled by terminal server in this case.

такие дела..

nick

 

Reply