FFmpeg Adds AMD AMF Decoder, FSR-Based Upscaling

FFmpeg already has supported AMD's Advanced Media Framework "AMF" on the video encode side while FFmpeg has landed initial "AMFDEC" support as video decoding support using AMD AMF.
This commit introduces AMFDEC to FFmpeg's libavcodec library. FFmpeg's AMFDEC support covers H.264, H.265/HEVC, and AV1 video decoding.
In addition to that, FFmpeg has landed AMF VPP and super resolution filters. These video filters make use of AMF hardware acceleration on Radeon GPUs with "vpp_amf" providing simple scaling algorithms and color conversion. More interesting is the "sr_amf" filter for video upscaling and provides advanced scaling algorithm support such as for FidelityFX Super Resolution (FSR).
The AMD AMF SDK via GPUOpen.com has provided accelerated decode already, FSR integration, and its own downstream of FFmpeg. Nice seeing this AMFDEC and FSR upscaling support come though to upstream FFmpeg that is more prominently packaged up and available across different Linux distributions and other environments.
In addition to the AMFDEC and new video filters, hwcontext_amf was added to FFmpeg as a means of a new shared AMF context across encoders/decoders/filters that allows bypassing memory copies to the host RAM. This allows for direct video memory access from the CPU, much better performance in full AMF pipelines, VCN power management control for decoders, and more. AMD Is also said to soon be providing a full AMF API for the MA350 multimedia accelerator.
30 Comments