Skip to main content

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.

ScenarioMachineSpecificationsNumber of Streams encoded by the GPU
Mid-end consumer desktop Dell Inspiron 620 MTIntel i3-2100, 4 logical cores, NVIDIA GeForce GTX470 (448 cores), 8GB RAM, 7200rpm HDD, Win7x642 streams
High-end consumer desktop Dell Alienware AuroraIntel i7-2600K, 8 logical cores, NVIDIA GeForce GTX 480 (480 cores), 8GB RAM, 7200rpm HDD, Win7x643 streams
Multimedia workstation Dell Alienware Aurora ALXIntel i7-970, 12 logical cores, dual NVIDIA Tesla C2050 (2x448 cores), 12GB RAM, SSD, Win7x645 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.

Case 1: Offline H.264 1080p MP4
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.

Case 2: Offline H.264 1080p Smooth Streaming (10 streams)
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.

Case 3: Live 1080p Smooth Streaming
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.