Encoding Performance with Expression
Encoder 4 Pro SP2 and NVIDIA CUDA-
accelerated GPUs
Introduction
In Expression Encoder Pro Service Pack 1 (SP1), we introduced support for GPU (graphics processing unit) encoding with NVIDIA® CUDA-accelerated GPUs. In Service Pack 2 (SP2), we have enhanced the output quality of that feature and moved even more encoding calculations to the GPU to reduce the CPU footprint. Because encoding performance has so many dependencies, including your hardware, media source, and delivery target, we have provided some suggested PC configurations, appropriate GPU pairings, and associated performance results for a variety of scenarios.
For more detailed information on GPU encoding with Expression Encoder Pro, please see both the
SP1 and
SP2 whitepapers.
Suggested PC Configurations
Encoding performance has many dependencies, including your hardware, media source, and delivery target. To make it easier to identify appropriate hardware, we have provided sample PC configurations and appropriate GPU pairings below. Specifically, we tested NVIDIA CUDA-enabled GPUs from the GeForce® GTX, Quadro® 6000, and Tesla™ C2000 series. (Please note that this is not a recommendation or endorsement of any of the listed PCs.).
Note: Nvidia Kepler class GPU hardware (GeForce 6XX, Quadro K-series and Tesla K-series) is not supported in Expression Encoder 4.
| Scenario | Machine | Specifications | Number of Streams encoded by the GPU |
| Mid-end consumer desktop |
Dell Inspiron 620 MT | Intel i3-2100, 4 logical cores, NVIDIA GeForce GTX470 (448 cores), 8GB RAM, 7200rpm HDD, Win7x64 | 2 streams |
| High-end consumer desktop |
Dell Alienware Aurora | Intel i7-2600K, 8 logical cores, NVIDIA GeForce GTX 480 (480 cores), 8GB RAM, 7200rpm HDD, Win7x64 | 3 streams |
| Multimedia workstation |
Dell Alienware Aurora ALX | Intel i7-970, 12 logical cores, dual NVIDIA Tesla C2050 (2x448 cores), 12GB RAM, SSD, Win7x64 | 5 streams |
Note that the optimal number of streams encoded by the GPU was calculated with the help of a new performance tool bundled with the
Live Performance tool package.
Performance Testing
In case you’d like to test GPU encoding on your machine, we have provided the media source we used for performance tests at the link below.
"Big Buck Bunny" 1920x1080p 9m56s WMV file (6Mbps):
http://bit.ly/bbbwmv
We have identified three common use cases, ranging from encoding files for delivery to iDevices to enterprise-level encoding farms. For each use case, we have encoded Big Buck Bunny with all of the machines listed above and the encoding profiles provided below. Please read further for performance numbers for each machine and comparisons between CPU-only encoding and GPU-assisted encoding.
.png)
Case 1: Offline H.264 1080p MP4
Encoding Profile: MP4 1080p 8Mbps CBR, bi-cubic resizing
This is one of the most common use cases for consumers and/or enthusiasts who want to encode their media files for delivery to "iDevices" or YouTube. As you can see from the chart below, GPU assist can accelerate the encoding process by a factor of 2x.
.png)
Case 2: Offline H.264 1080p Smooth Streaming (10 streams)
Encoding Profile: H.264 IIS Smooth Streaming – HD1080p CBR, bi-cubic resizing
Case 2 is a common video-on-demand scenario, in which an enterprise might encode media files at 10 different bitrates for Smooth Streaming playback. From the performance numbers below, time to encode is fastest on the workstation, but there are 2-3x improvements across each of the machines that were tested.
.png)
Case 3: Live 1080p Smooth Streaming
Encoding Profile: 1080p H.264 Live Smooth Streaming using the
Live Performance Tool in auto-generate mode to get as many streams as possible (10 being the maximum)
The Expression Encoder team has developed a
Live Performance Tool, which allows you to test your computer’s ability to encode in real-time and optimize your encode setting for live broadcasting. First, we used this tool to understand how many streams each machine is capable of. As you can see in the chart below, without GPU assist, only the hi-end workstation was able to generate live Smooth Streaming broadcasts. With CUDA GPU-assisted encoding, you can encode live Smooth Streaming broadcasts on any of the three PCs. Using multiple CUDA cards can be very beneficial in this scenario, as shown with the workstation results.
Conclusion
With the proper Nvidia CUDA card, GPU encoding with Expression Encoder Pro can offer significant performance benefits, including accelerating the time to encode and increasing the number of streams your PC is capable of delivering. While we hope that this performance report helps you to understand the advantages of GPU encoding and make appropriate hardware choices, please help us improve our product and our recommendations by asking questions and providing feedback on the
Expression Encoder forum.