Table of Contents

Enum H264AMFProfile

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

Represents the H.264 profile settings for the AMD Advanced Media Framework (AMF) hardware encoder.

public enum H264AMFProfile

Fields

Main = 77

Main Profile - Standard profile for broadcast and storage applications.

Main Profile (profile_idc = 77) includes:

  • I, P, and B slices
  • CABAC entropy coding
  • Interlaced coding support (PAFF/MBAFF)
  • Weighted prediction
  • 4:2:0 chroma format only
  • 8-bit color depth

Hardware support:

  • VCE 1.0+ (Radeon HD 7700 and newer)
  • Optimized for broadcast television and disc authoring
  • Lower complexity than High Profile

Use cases:

  • Digital television broadcasts (DVB, ATSC)
  • IPTV and cable TV systems
  • Legacy device compatibility
  • Standard definition content

FFMPEG: -profile:v main or -profile:v 77

Note: Widely supported but less efficient than High Profile. Consider High Profile for better compression unless compatibility requires Main.

High = 100

High Profile - Advanced profile for high-quality video applications.

High Profile (profile_idc = 100) includes all Main Profile features plus:

  • 8x8 transform and prediction modes
  • Custom quantization matrices
  • Separate Cb and Cr QP control
  • Monochrome video support
  • Higher compression efficiency (10-20% over Main)

Hardware acceleration:

  • VCE 1.0+ full support
  • Optimized for HD and UHD content
  • Better motion estimation for complex scenes
  • Enhanced rate control algorithms

Standard for:

  • Blu-ray disc authoring
  • HD streaming services (Netflix, YouTube)
  • Professional video production
  • High-quality video conferencing
  • Modern web video (HTML5)

FFMPEG: -profile:v high or -profile:v 100

Recommended for most modern applications due to:

  • Universal hardware decoder support
  • Optimal quality/bitrate ratio
  • Wide software compatibility
ConstrainedBaseline = 256

Constrained Baseline Profile - Maximum compatibility profile for mobile and web.

Constrained Baseline Profile (profile_idc = 66, constraint_set1_flag = 1) features:

  • I and P slices only (no B-frames)
  • CAVLC entropy coding only (no CABAC)
  • No interlaced coding support
  • Simple and efficient decoding
  • 4:2:0 chroma format
  • 8-bit color depth

AMF implementation notes:

  • VCE hardware automatically disables B-frames
  • Forces CAVLC entropy coding
  • Optimized for low-latency encoding
  • Reduced memory bandwidth requirements

Compatibility advantages:

  • Decodable by ALL H.264 decoders
  • WebRTC and browser support
  • Mobile device compatibility
  • Embedded systems and IoT devices

Use cases:

  • Video conferencing (WebRTC)
  • Mobile streaming
  • HTML5 video fallback
  • Security cameras
  • Low-power devices

FFMPEG: -profile:v baseline or -profile:v constrained_baseline

Note: The value 256 is AMD-specific for constrained baseline. Lower compression efficiency but maximum compatibility.

ConstrainedHigh = 257

Constrained High Profile - High quality with broadcast compatibility constraints.

Constrained High Profile (custom AMD value = 257) features:

  • All High Profile tools except:
    • No support for field coding (progressive only)
    • Limited B-frame pyramid depth
    • Constrained intra prediction
  • Maintains High Profile compression efficiency
  • Simplified decoder requirements

AMD VCE optimizations:

  • Hardware-accelerated 8x8 transforms
  • Efficient CABAC implementation
  • Optimized for progressive content
  • Better power efficiency than full High Profile

Target applications:

  • Progressive HD broadcasting
  • Streaming media services
  • Digital signage
  • Set-top box compatibility
  • Gaming and screen recording

FFMPEG: -profile:v constrained_high (AMD-specific)

Benefits over standard High Profile:

  • Simpler decoder implementation
  • Better real-time performance
  • Wider hardware compatibility
  • Lower latency potential

Note: This is an AMD-specific profile value not part of the standard H.264 specification. It provides a good balance between compression efficiency and compatibility.

Remarks

H.264 profiles define sets of capabilities and constraints that ensure compatibility between encoders and decoders. AMD's AMF encoder leverages the Video Coding Engine (VCE) hardware block present in AMD GPUs (Radeon RX 400 series and newer) for accelerated encoding.

Profile selection affects:

  • Feature availability (B-frames, CABAC, 8x8 transform, etc.)
  • Device compatibility (mobile, web, broadcast, etc.)
  • Compression efficiency and quality
  • Encoding performance and power consumption

The numeric values correspond to the profile_idc values in the H.264 specification and are passed directly to FFMPEG's h264_amf encoder.

FFMPEG usage: -c:v h264_amf -profile:v [main|high|constrained_baseline|constrained_high]