Table of Contents

Enum H264AMFQuality

Namespace
VisioForge.Core.Types.FFMPEGEXE
Assembly
VisioForge.Core.dll

Represents the quality preference settings for the AMD H.264 AMF hardware encoder.

public enum H264AMFQuality

Fields

Speed = 1

Prefer Speed - Fastest encoding with reduced quality analysis.

Speed mode optimizations:

  • Minimal motion estimation search range
  • Simplified mode decision algorithms
  • Reduced reference frame analysis
  • Fast intra prediction modes only
  • Simplified rate control decisions

VCE hardware behavior:

  • Maximum throughput pipeline configuration
  • Reduced shader core utilization
  • Lower memory bandwidth usage
  • Minimal power consumption
  • Can encode 4K@60fps on modern VCE

Performance characteristics:

  • 2-3x faster than Quality mode
  • 10-20% larger file sizes
  • Suitable for real-time constraints
  • Lower GPU temperature and power draw

Best for:

  • Live streaming with strict latency requirements
  • Multi-stream encoding scenarios
  • Screen recording and game capture
  • Video conferencing applications
  • Battery-powered devices

FFMPEG: -quality speed or -quality 1

Note: Quality loss is most noticeable in complex motion scenes and detailed textures. Consider Balanced mode if quality matters.

Balanced = 0

Balanced - Default mode balancing speed and quality.

Balanced mode optimizations:

  • Moderate motion estimation search range
  • Standard mode decision complexity
  • Typical reference frame analysis
  • Mixed intra prediction modes
  • Adaptive rate control

VCE hardware utilization:

  • Balanced pipeline configuration
  • Moderate shader core usage
  • Standard memory bandwidth
  • Average power consumption
  • Good thermal characteristics

Performance profile:

  • 1.5-2x faster than Quality mode
  • 5-10% larger files than Quality mode
  • Good real-time performance
  • Suitable for most use cases

Recommended for:

  • General video transcoding
  • VOD content preparation
  • Casual streaming
  • Desktop recording
  • Default encoding tasks

FFMPEG: -quality balanced or -quality 0 (default)

This is the default setting that works well for most scenarios. It provides good quality without sacrificing too much performance. AMD recommends this mode for typical encoding workflows.

Quality = 2

Prefer Quality - Maximum quality with extensive analysis.

Quality mode optimizations:

  • Maximum motion estimation search range
  • Exhaustive mode decision algorithms
  • Full reference frame analysis
  • All intra prediction modes
  • Sophisticated rate-distortion optimization

VCE hardware utilization:

  • Maximum quality pipeline configuration
  • Full shader core utilization
  • High memory bandwidth usage
  • Maximum power consumption
  • Higher heat generation

Quality improvements:

  • Better motion prediction accuracy
  • Improved detail preservation
  • Superior rate control decisions
  • Reduced blocking artifacts
  • Better subjective quality

Performance impact:

  • 2-3x slower than Speed mode
  • 5-15% smaller file sizes
  • May limit real-time encoding resolution
  • Higher GPU utilization (90-100%)
  • Increased power consumption

Ideal for:

  • Archival and master copies
  • Professional video production
  • Blu-ray authoring
  • High-quality VOD content
  • Content where quality is paramount

FFMPEG: -quality quality or -quality 2

Note: The quality gain over Balanced mode may be subtle at high bitrates. Most beneficial for low-to-medium bitrate encoding where every bit counts.

Remarks

The quality preset controls the trade-off between encoding speed and output quality by adjusting various internal encoder parameters. AMD's Video Coding Engine (VCE) implements these presets through different hardware utilization strategies.

These settings affect:

  • Motion estimation search range and precision
  • Reference frame analysis depth
  • Rate-distortion optimization levels
  • Hardware pipeline utilization
  • Power consumption and thermal characteristics

The quality setting works in conjunction with bitrate/QP settings to determine the final output quality. Higher quality modes may not always produce visibly better results, especially at high bitrates.

FFMPEG usage: -c:v h264_amf -quality [speed|balanced|quality]