H264 decoder high CPU usage issue

H264 decoder high CPU usage issue

Hi,

I want to use the H264VideoDecoder of IPP 7.0

I built the example "simple_player.exe" to play a 1920x1080 h.264 video.

I found very high CPU usage with m_iThreads = 0. (about 60~70%), but the frame rate is 30 fps.

If I set m_iThreads = 1, the CPU usage down to 50% but the frame rate down to about 20 fps.

Desktop Machine Configurations are:

1. Windows 7 32bit

1. RAM: 4GB

2. Processor: Intel(R)Core(TM) i7-2620 CPU @2.70GHz

Is there a way to decrease the CPU usage and maintain 30 fps at the same time?

Could you help me to resolve this?

Thanks and Regards

Rock.

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

SimplePlayer is a UMC-based sample.

In this case we have 2 levels of parallelization: OpenMP parallelization in UMC and multiple threads inside IPP functions.

Try to disable parallelization inside IPP to avoid thread inside thread.

ippSetNumThreads(1);

 

Best regards,
Roman

Best Reply

Hi Rock,

please try the newer IPP version - I remember that in 7.0 there were problems with default settings for kmp_block_time in OMP that is used for IPP threading. 7.0 had several updates - so could you be more specific on which version do you use. Anyway it's better to switch to 7.1 or 8.0 and the best way is to use Intel Media SDK

regards, Igor

Hi Roman,

Thank you for your reply
I try to set ippSetNumThreads(1) and the CPU usage is still about 60~70%

Hi Igor,

Thank you for your reply
My IPP Version is 7.0.4.221
Does it have problems?

I need implement H.264 decoder in my commercial projects
Does it need the royalties for commercial?

Thanks and Regards
Rock

Quote:

Rock L. wrote:

I try to set ippSetNumThreads(1) and the CPU usage is still about 60~70%

Hi, Rock!

I'm using IPP 7.1. I didn't change the source code of simple_player and configured it via command line arguments.

simple_player -i test.mp4 -v opengl -t 2 --ipp_threads 1

So, UMC uses 2 threads and IPP doesn't use multithreading at all.

I used Full HD mp4 file with 30 FPS.

Initially simple_player starts 1:1 size. It takes about 55% of CPU load and gives 25 FPS.

But when I reduced the size of window (NOT OUTPUT RESOLUTION)  in 2 times, I obtained 30FPS and 25% CPU load.

And one more...

 

If you try another UMC/IPP sample umc_video_dec_con, you will see about 300 FPS.

So it's possible to decode Full HD online with only 10% of CPU load.

Best regards,
Roman

Leave a Comment

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