- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the process of testing the UMC H246 encoder, we have noticed that as we increase the video resolution the encoding process becomes more time-consuming and CPU intensive, this is obviously be expected.
The problem is that when we try running this code on multi-cored machines, the encoder only ever seems to use 1 core at a time, effectively serializing the encode process and forming a bottleneck.
We have tried altering the number of threads/slices in the encoder parameters; however this makes no difference to the number of threads created and the encoder still only uses a single core.
Can you please advise if it is possible to configure the H246 encoder to make more effective usage of the available processor resources? If so, is a possible to supply an example configuration.
The problem is that when we try running this code on multi-cored machines, the encoder only ever seems to use 1 core at a time, effectively serializing the encode process and forming a bottleneck.
We have tried altering the number of threads/slices in the encoder parameters; however this makes no difference to the number of threads created and the encoder still only uses a single core.
Can you please advise if it is possible to configure the H246 encoder to make more effective usage of the available processor resources? If so, is a possible to supply an example configuration.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello David,
The H.264 encoder should, by default, utilize as many threads as you have logical cores (via OpenMP). Can you confirm that your system "sees" multiple cores? (Note that an HT physical core should appear as two logical cores.)
On a Windows system the easiest way to confirm that your system sees multiple logical cores is to bring up the Task Manager and look at the Performance tab. In the CPU Usage History area of the dialog box you'll have one graph per logical core.
Are you using the dynamic linking model? Which version of the IPP library are you using?
Regards,
Paul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Paul Fischer (Intel)
Hello David,
The H.264 encoder should, by default, utilize as many threads as you have logical cores (via OpenMP). Can you confirm that your system "sees" multiple cores? (Note that an HT physical core should appear as two logical cores.)
On a Windows system the easiest way to confirm that your system sees multiple logical cores is to bring up the Task Manager and look at the Performance tab. In the CPU Usage History area of the dialog box you'll have one graph per logical core.
Are you using the dynamic linking model? Which version of the IPP library are you using?
Regards,
Paul
Hi Paul,
The Task Manager displays 4 CPU Usage History Graphs and we are using IPP 6.1 with dynamic linking.
Regards
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - david.jacksonipfx.com
Hi Paul,
The Task Manager displays 4 CPU Usage History Graphs and we are using IPP 6.1 with dynamic linking.
Regards
David
As I know, the IntelH264threading is mainly slice-based. Unless your file has multiple slices per frame, as AVCHD, the IntelH264Encoder won't able to take advantage of multiple cores.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page