Showing results for 
Search instead for 
Did you mean: 

Is there performance test report about the media sdk video encoding?

Hi guys,

My program needs to runmultiple video encoding (H264 main profilecodec) jobsparallelly on one machine, and the program is designed to deliver one YUV frame to encoder and sync to get the encoded frame, then go on the next frame (at the frame rate 25/s).

I developed the video encoder referenced by the encode sample of Media SDK 2.0, and using the Media SDK 2.0 lib. My program was tested on the I7-2600 CPU, all video channels use HW accelerate, the below is my testing result:

Video channles count | Video size | CPU usage(%)
8|D1(720 * 576) | about 30%
16|D1(720 * 576) | about 85%

Did I fully use the HW accelerate? Is the upper test result meaningful? Is there any offiitial performance testing report about the encoding using HW accelerate to reference?

0 Kudos
4 Replies

Hi maoerwei,

The CPU load measurements you post seem to indicate that you are either not using HW acceleration or that your CPU is being hit by very large disk access operations. The samples provided with Media SDK were not designed for performance measurements. For instance, if you look at the sample_encode application it reads the raw YUV file from the file system. In the case of reading 16 raw YUV files simultaneously, this will put lots of pressure on CPU and disk. If this description fits your case then you may want to explore the performance you get if you remove the file reading part of the application and just send arbitrary raw data to the encoder.

One thing to note, due to an exting bug there are issues setting up concurrent workloads for 32 bit builds. Please refer to the following post for workaround if you encounter issues:

We do not provide official performance tests since the performance will vary wildly depening on the workload, but we have provided a snapshot of the encode performance in this forum post:


Hi Petter,

Thanks for your reply.

I changedthe testing method, removing the file reading from program, instead grabbing the image for a hardware image card, now I get the new tesing result (CPU env: I7-2600):

Channel Count |Image Size | FPS | CPU usage(%)
8704 * 57625 15%
12704 * 5762550%
16704 * 5762065%

From your suggested link, MediaSDK HW can support 5 coccurrent H264 encodingstreamings of 1080Pimages.

Why running 16 channels ofencoding, the FPS can not reach the max value of25?Is there bottle neckwhen copying images data from system memory toGPU?

Is there any optimization work I can doto handle more encoding channels?


Wei Xin

Wei Xin,

I did some testing based on the multiple encoding scenario you've described, and I'm curious if the bottleneck might be somewhere other than Media SDK. If you don't encode at all,perhaps by just writing the raw video frames to NUL instead, what frame rate do you get?

25 FPS seems quite low for the resolution you're using, even for unoptimized encodes.

The encode sample is meant to be a relatively simple example of an encode pipeline. For more tips on best performance please see sample_multi_transcode and the Media SDK developer guide. The sample readme (readme-multi-transcode.rtf) has some hints about how to get best performance from this sample program.

Another tool to look at to understand performance is GPA. The latest version (4.1and above)has a media performance analyzer which provides some very helpful information to understand Media SDK's performance in your program. You should expect to see high (>90%) GPU utilization.

Best regards,


In case it might help, here is the link to GPA: