Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
6628 Discussions

does the H264 encoder of IPP spawning extra threads?

gennadii_mog
Beginner
186 Views
Hi

I ran the Shark profiler on Mac OS X, in order to profile our application, and noticed that functions from the IPP H264 encoder appear on several threads. Yet, our application only calls it from one thread.

Can I therefore assume that the H264 encoder of IPP is spawning extra threads? and if so, why? it makes our life harder if we want to manually distribute threads across multiple cores

thanks for any idea,
Lior
0 Kudos
2 Replies
pvonkaenel
New Contributor III
186 Views
Quoting - gennadii.mog
Hi

I ran the Shark profiler on Mac OS X, in order to profile our application, and noticed that functions from the IPP H264 encoder appear on several threads. Yet, our application only calls it from one thread.

Can I therefore assume that the H264 encoder of IPP is spawning extra threads? and if so, why? it makes our life harder if we want to manually distribute threads across multiple cores

thanks for any idea,
Lior

Both the H.264 specific IPP routines and the H.264 encoder within the UMC sample contain OpenMP for threading. If you do not want to use OpenMP or wish to reduce the number of threads it uses, you can specify the number of threads in a call to ippSetNumThreads(). See the user's guide for details about the call.
Vladimir_Dudnik
Employee
186 Views

Small correction. Almost all video coding functions do not contain internal threading due to relatevely small amount of data they process in one call. For media codecs we implement threading on top of IPP, on codec level. So, to control number of threads you need to use appropriate UMC parameter, please check with H.264 readme.htm or UMC manual for more details.

The ippSetNumThreads function can only control number of threads to be spawned by IPP functions (many of IPPimage processing and computer vision functions are threaded)

Regards,
Vladimir
Reply