H264 Decoder speedup skip frame

H264 Decoder speedup skip frame

Hi all, I was looking to the documentation of the UMC::H264Decoder class (IPP version 7.0.7) and I found that there's a new function that I never notice in the old version


The H264 decoder it's sometime very heavyespeciallyon FULL HD or higher streams. So I found that function and I would use it for make decoding process waste less CPU time,especiallywhen I have to decode a lot of streams at the same time (like a lot of IP camera): this way I can have a more scalable system.

I think that function was coded for that reason. The problem is that I have done a test on my PC (a quite old Intel Q6600) and I found no difference using 0 or 7 as decoding speed: I notice only poor quality (as I expected) with speed of 7, but the CPU consumed by the decoding process is the same in 0 or 7. (CPU decoding load was for example 10% in all cases)

Did you do some test with that function at different speed? could you notice some difference? what king of CPU?

publicaciones de 5 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.

Good day.

This function allows decoder to skip frames to speedup decoding, but only for non-reference frames. If there is many reference frames in the stream it may be not very effective.

I just run simple_player with this function on i5 M540 CPU and 1920x1080p_25.00_25mb_h264_cabac_180s stream:
0 - 60-70% CPU load
4 - 40-50% CPU load
7 - 25-35% CPU load - about half of frames were skipped in this mode.

In mode 7 it skips all non-reference frames, so I don't think it could be any faster.

Have a nice day.

ok thanks, I'll do some other tries. Probably the CPU/RAM I'm using it's quite out dated


I would like to add that I just tried using this function and the most I could get was 2x speedup, even tho the CPU was at 50%. Can you please investigate this?


Anyone from Intel to comment on this?

I set ChangeVideoDecodingSpeed(7) and GetSkipInfo() returns 6 once the decoding process starts and then it increments the counter only by two for each frame it emits. So I get: 6, 8, 10, 12, etc. So the playback speed is around 2X instead of 8X. Can you give us some pointers as what to try to make this work? I should say that the CPU usage is around 50-60%, so there's still plenty of space for the decoder to do faster decoding.

I also noticed "dbPlaybackRate" in Params struct. What is it for?

Thanks in advance.

Deje un comentario

Por favor inicie sesión para agregar un comentario. ¿No es socio? Únase ya