After almost a decade of quality issues, AMD's AMF encoder has finally received a massive upgrade in image quality thanks to the introduction of B-Frames in AMF Release 1.4.24. The update actually dropped months ago, but it wasn't until yesterday that Chris Griffith from Code Calamity finally put the new update to the test.
According to Griffith, he saw massive gains from the update. The AMF encoder was able to close in on Nvidia's newest NVENC encoder found in its RTX 20 series and 30 series GPUs. This update could see AMD Radeon GPUs as much more viable solution for game streaming, with low bitrate images looking almost as good as Nvidia's counterpart.
Major issues surrounding AMD's encoders have gone back as far as the 400 series Polaris GPUs, and in some cases even further. Support and quality have been constant issues and, for the most part, were always inferior to other encoders such as Nvidia's NVENC or Intel's QuickSync encoder.
But the quality issue was compounded by the introduction of Nvidia's 6th generation NVENC encoder, introduced into the RTX 20 series, which elevated GPU encoding significantly, putting performance on par with good x264 encoding.
Despite 6th generation NVENC coming out over four years ago, AMD never really made a comeback, with its encoders remaining largely the same, even on the latest Radeon RX 6000 series GPUs. Streaming expert EposVox's video illustrates how terrible AMF's streaming performance is in low-bitrate scenarios running on the H.264 codec.
The only exception to this is HVEC encoding, where AMD's AMF encoder performs exceptionally well. But this capability will almost never be used in the real world, with all modern video players today requiring H.264 support.
B-Frames Are Back
The decisive feature improving AMF's image qulaity is the re-introduction of B-frames into the AMD encoder. Ironically, AMD originally had B-Frame support with its original encoder and decoder engine VCE (starting with the 2nd gen implementation). But AMD seems to have dropped support for it when the company released its new VCN engine, which was first released with AMD Raven Ridge APUs and RDNA1 graphics cards.
B-Frames are a very important aspect of video compression in the modern era. These frames are paired with I and P frames to build a highly compressed video file. B frames allow the H.264 compression algorithm to predict image data from both past frames and future frames in a video stream. It is an optional feature, but one that has proven to significantly increase the image quality of streams at lower bit rates.
Code Calamity used VMAF to measure the image quality differentiation between AMF, NVENC and Intel QuickSync, with Big Buck Bunny as the reference video. In this benchmark, the highest possible score 100 is points. For reference, NVENC scores 96.13 points, and Intel QuickSync scored 96.37 in this test. According to Code Calamity, AMD's AMF encoder is just half a point behind both those encoders, where as before (without B-Frames), AMD's AMF was a full two points behind.
This benchmark can be difficult to understand. But basically, it means AMF's image quality is right underneath Nvidia's latest NVENC encoder right now, which is much much better than where it used to sit before the latest update.
Support Is Still Largely Absent
As of now, the only problem with this new AMF encoder update is that no streaming platform has offered support, including OBS, despite the update being out for nearly four months. It's unclear why no one has implemented support for the update yet, but AMD does have a history of not broadly supporting developers in implementing its encoder SDKs. This might be the reason why support is taking so long to implement.
So for now, we have to take this benchmark as a future look into AMF's performance. Hopefully, it won't take long for apps like OBS to take advantage of the new update, so that current and future owners of AMD cards can make better use of them for streaming and other tasks.