- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:http://software.intel.com/en-us/forums/showpost.php?p=159280
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:http://software.intel.com/en-us/forums/showpost.php?p=153071
Regards,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 http://software.intel.com/en-us/forums/showpost.php?p=153071, 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?
Thanks,
Wei Xin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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,
Jeff
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page