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

H264 decoder high CPU usage issue

Rock_L_
Beginner
977 Views

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.

0 Kudos
1 Solution
Igor_A_Intel
Employee
977 Views

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

View solution in original post

0 Kudos
4 Replies
Roman_T_
New Contributor I
977 Views

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

0 Kudos
Igor_A_Intel
Employee
978 Views

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

0 Kudos
Rock_L_
Beginner
977 Views

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

0 Kudos
Roman_T_
New Contributor I
977 Views

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

0 Kudos
Reply