I tried 1080p HD source encoding with Intel HD graphic 4000 i7-3520M (ivy bridge) on ubuntu linux, however, the sample_encode_drm runs at only ~40fps avg with TU=1, and the CPU usage is about %66 of one core.
However, according to this test, intel hd graphics 4000 should reach the speed of over 100fps:
I've also rebooted to windows and encode with mediacoder, the result is also ~40fps.
How could I increase encoding speed? use another CPU?
The encode sample is primarily a functional demonstration and has many shortcomings as a benchmark. Raw frame I/O for decode and encode is unoptimized. What you measure when running sample_encode and sample_decode is mostly I/O, not Media SDK.
To get a quick estimate of Media SDK's capabilities, transcode is an easier place to start. There input is a compressed bitstream and output is a compressed bitstream so expensive raw I/O is not needed.
One way to get a rough order-of-magnitude estimate of what encode performance would look like is to simply skip where each frame is loaded from disk. This isn't a perfect approach but it will be closer to true performance than with all of the extra I/O. A better approach could be to loop over frames already in memory. Unfortunately code to do this would need to be added.
We're looking into ways to provide a better start for benchmarking in the future. For now, the Media SDK tutorial provides some help to get started.