Best Methods for Benchmarking Hardware Video Encoders

Benchmarking hardware video encoders like NVIDIA’s NVENC and Intel’s QuickSync requires a two-pronged approach that evaluates both encoding speed and output visual quality. Simply measuring how fast a chip renders a video is insufficient because hardware encoders process data differently, resulting in varying image quality at the same bitrate. This article covers the exact methodologies, standardized source files, software tools, and objective quality metrics like VMAF required to accurately test and compare modern media engines.

1. Prepare Uncompressed Source Material

To accurately test an encoder, you must feed it uncompressed, raw video files. Using an already compressed MP4 file from YouTube or a camera introduces generation loss, meaning the encoder has to waste bitrate trying to recreate existing compression artifacts.

  • File Format: Use .y4m (YUV4MPEG2) files, which are completely uncompressed. The Xiph.org Derf’s collection is the industry standard for free, uncompressed test sequences.
  • Variety of Content: Select at least three types of footage to stress the encoders differently:
    • High Motion: Sports or fast-paced action gaming (tests temporal compression).
    • High Detail/Static: Nature scenes with foliage or water (tests spatial compression).
    • Synthetic/Animation: 2D or 3D animation (tests flat color gradients and sharp lines).
  • Resolutions: Test at both 1080p at 60fps (the standard for live streaming) and 4K at 60fps (the standard for video editing and archiving).

2. Select the Benchmarking Software

Avoid using heavy video editing suites like Premiere Pro for isolated encoder testing, as they introduce CPU, RAM, and disk bottlenecks. Instead, use direct command-line utilities that isolate the hardware encoder.

  • FFmpeg: The industry standard for video manipulation. It supports NVENC, QuickSync, and AMD AMF, allowing you to run identical commands across different hardware.
  • Rigaya’s Hardware Encoders (NVEncC and QSVEncC): These are specialized command-line tools written specifically to expose every possible parameter of NVIDIA and Intel media engines without third-party software overhead.
  • HandBrake: If you need to represent a "real-world" user scenario, HandBrake is acceptable, as it uses FFmpeg under the hood while providing a standardized graphical interface.

3. Standardize the Encoding Parameters

Because NVENC and QuickSync use different architectures, their presets do not directly align. You must standardize the output constraints to create an apples-to-apples comparison.

  • Codecs: Test H.264 (AVC) for legacy compatibility, H.265 (HEVC) for modern editing, and AV1 for next-generation efficiency.
  • Bitrate Control (CBR): To test live-streaming performance, use Constant Bitrate (CBR). Set strict limits, such as 6,000 kbps for 1080p60 and 20,000 kbps for 4K60. Disable B-frames if testing ultra-low-latency scenarios, or use 2 B-frames for standard Twitch/YouTube streaming simulations.
  • Quality Control (CQP/ICQ): To test local recording and archiving, use Constant Quantization Parameter (CQP) for NVENC and Intelligent Constant Quality (ICQ) for QuickSync.
  • Presets: Test at least two presets per encoder. For NVENC, test P1 (Fastest) and P7 (Slowest/Best Quality). For QuickSync, test TU7 (Fastest) and TU1 (Slowest/Best Quality).

4. Measure Encoding Speed and Efficiency

Before running the speed test, place your uncompressed .y4m source files on a high-speed NVMe SSD or a RAM disk. Raw 4K video requires massive read speeds; a slow drive will bottleneck the encoder and ruin the benchmark.

  • Frames Per Second (FPS): FFmpeg and Rigaya’s tools will output the average encoding speed in FPS upon completion. This is your primary speed metric.
  • Hardware Utilization and Power: Run HWiNFO64 in the background during the encode. Log the "GPU Video Engine Load" and overall package power draw (in Watts). Calculate the "Frames Per Watt" to determine the true efficiency of the media engine, which is especially important for laptop benchmarking.

5. Measure Visual Quality Using VMAF

Speed means nothing if the resulting video is blurry. Because human eyes are subjective, you must use objective mathematical models to compare the encoded output against the original .y4m source file.

  • VMAF (Video Multi-Method Assessment Fusion): Developed by Netflix, VMAF is the gold standard for video quality benchmarking. It uses machine learning to predict how a human would perceive the video quality, scoring it from 0 to 100. A score of 93 or higher is generally considered visually indistinguishable from the original.
  • PSNR and SSIM: Peak Signal-to-Noise Ratio and Structural Similarity Index are older metrics. They are less accurate than VMAF regarding human perception, but they are fast to calculate and useful as secondary data points.

How to execute the quality test: Use FFmpeg with the libvmaf filter. Pass the newly encoded NVENC or QuickSync file and the original .y4m file into the filter. FFmpeg will compare them frame-by-frame and generate a mean VMAF score.

6. Plot the Bitrate-to-Quality Curve

The ultimate method for presenting hardware encoder benchmarks is a Bitrate-to-Quality curve.

  1. Encode the same source file five times at different CBR bitrates (e.g., 2 Mbps, 4 Mbps, 6 Mbps, 8 Mbps, and 10 Mbps) on both NVENC and QuickSync.
  2. Run a VMAF analysis on all the resulting files.
  3. Plot the results on a line graph with Bitrate on the X-axis and VMAF Score on the Y-axis.

This graph will definitively show which hardware encoder achieves higher visual quality at lower bitrates, providing a complete and undeniable benchmark of the hardware's capabilities.