I'm trying to encode a live stream (720x576) to h.264. at main level @1.75Mbps.
But having the problems that the system goes 100% load and that encoding cannot keepupwith the input.
I can encode to h264 (360x288) on the same system using one core at the same level and bitrate.
I tried using more threads(4) and slices(4) for the 720x576 setting but what is see is that I have 4 threads on 4 cores one runs at 85% and the other three at 99% ?
Also when I use the 360x288 setting and allow 4 thread 3 of them will run at max load ?
I would expect that distributing the load over multiple cores would result in a lower load per thread ?
There is no easy answer regarding loading across cores in a multi-threaded application. It depends on the threading mechanism, the OS, the code being executed, the type of processor and cache (HT versus non-HT), how the threading mechanism is configured, the nature of the application, etc.
If the threading is being done by OpenMP in its default configuration you should generally expect to see all available cores/threads heavily loaded, regardless of the data size/type. OpenMP attempts to go "all out" in its use of the available resources.
To really understand what is going on with multi-threading in your application you might consider using something like Intel Parallel Studio to help you design and profile multiple threads in your application.