Encoding Performance with Expression Encoder 4 Pro SP1 and NVIDIA CUDA-accelerated GPUs
In Expression Encoder Pro Service Pack 1 (SP1), we have added support for GPU (graphics processing unit) encoding with NVIDIA® CUDA-accelerated GPUs. 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.
What is GPU Encoding and Why is it Important?
Traditional video transcoding runs similarly to a water pipeline: uncompressed video frames first flow out of the decoder component, are then processed (resized, de-interlaced, etc.) and are finally sent to the encoder component of the pipeline. If one of these operations takes significantly longer than the others, the system gets clogged and the flow of video frames slows down across the whole pipeline.
With the current PCs on the market, the usual bottleneck of the transcoding process resides in that last encoder component, even on PCs with many processors. This is where the GPU comes to the rescue. The GPU, typically found on graphics cards and used for drawing pixels on your computer screen, is a hardware resource that is also extremely efficient at doing many tasks in parallel and is very adept at video encoding.
To address this bottleneck we have added GPU encoding to Expression Encoder 4 Pro SP1 by integrating the new Main Concept H.264 CUDA encoder into our encoding pipeline to enable NVIDIA GPUs as video encoding accelerators. The result: improved encoding performance by a factor of 2-3x over CPU alone for offline cases, and enabling some Live Smooth Streaming scenarios that weren't possible before with software-based encoding, such as encoding 3 or 4 HD streams concurrently in real-time using a high-end laptop.
For more detailed information on GPU encoding with Expression Encoder Pro, please see this whitepaper.
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.).
| Scenario |
Machine |
Specifications |
| Laptop |
Dell Alienware M15X Laptop |
8-core i7-940M, NVIDIA GTX 260M, 8GB RAM, SSD HDD, Win7x64 |
| Consumer Desktop |
Dell Studio 9000 Desktop |
8-core i7-950, NVIDIA GTX 460, 9GB RAM, 1TB 7200mm HDD, Win7x64 |
| Professional Workstation |
HP Z800 Workstation |
24-core Dual Xeon X5650, NVIDIA Quadro 6000 or NVIDIA Tesla C2050, 6GB RAM, 500 GB 7200 HDD, Win7x64 |
| Server |
SuperMicro 6016GT-TF-FM205 |
24-core Dual Xeon X5670, 2 x NVIDIA Tesla C2050, 32GB RAM, 1 TB SAS Array, Win7x64 |
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 four 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
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 1.5-2x.
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. As you can see from the performance numbers below, time to encode is fastest on a workstation or server, but there are 2-3x improvements across each of the machines that were tested.
Case 3: Offline H.264 5 x 1080p Streams
Encoding Profile: 1080p H.264 Smooth Streaming 5 x 1080p Streams, bi-cubic resizing
Case 3 involves simultaneous encoding of five 1080p streams with the same frame rate and bitrate. While all of the machines experience significant performance improvements with GPU assist, this is ideal for situations in which time to encode is the most pressing factor, such as cluster encoding.
Case #4: 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, the laptop is not able to generate live Smooth Streaming broadcasts. With the GPU-assist, you can use a laptop to produce onsite, live Smooth Streaming broadcasts. With higher-end machines such as the workstation or server, the number of streams the machine is capable of producing is doubled.
Secondly, in the chart to the right, Here we examine CPU usage with and without GPU assist. In addition to increasing the number of streams your machine is capable of delivering, GPU also has a significant impact on offloading work from the CPU (especially in a laptop scenario).
Conclusion
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.