AMD has released a new update to its AMF encoder SDK, version 1.4.26, which has added several new features, including a brand new "quality boost" mode called PreAnalysis. Chris Griffith from Code Calamity managed to get hands-on time with the latest update, to determine whether or not this new boost mode is suitable. As it turns out, this feature can improve AMF's encoding quality by a percent or two, but at a severe cost to performance.
For the uninitiated, AMF is AMD's latest GPU hardware H.264 encoder built into its latest GPUs, such as the RX 6000 series for encoding videos or recording/streaming live gameplay. It is effectively AMD's counter to Nvidia's NVENC encoder.
PreAnalysis is a new Content Adaptive Quantization technique implemented into the AMD encoder. In basic terms, this gives AMF more control over the amount of I frames implemented into each video. It also gives AMF the ability to skip frames when needed.
Griffith tested several AMF encoder options to measure the quality improvements with the new PreAnalysis feature. He tested with B-Frames and Pre-Analysis enabled, B-Frames only (which came in an earlier 2022 update), and with both features disabled. Testing was benchmarked with Netflix's VMAF application with a score of 0 (unwatchable) to 100 (perfection).
At 5000 KBps, AMD's AMF encoder with no B-Frames or Pre-Analysis enabled hit a respectable 94.1215 score at a speed of 139.21 FPS. Enabling B-Frames improved the score by 1 point, hitting 95.3877, but frame rates dropped immensely to 83.75 FPS. Nonetheless, this performance is adequate for regular use cases such as live streaming gameplay at 60 FPS.
Enabling B-Frames and Pre-Analysis sees the encoder jump by another point, with a score of 96.0697. But the frame rate tanks incredibly hard with a speed of just 26.03 FPS.
If we check out the number of I-Frames implemented into each run, we can see why the AMF encoder tanks so hard when running Pre-Analysis. With the feature disabled, the amount of I-frames amounts to just 13, but enabling the feature (along with B-Frames) nearly doubles the i-frame count to 22.
This results in better pixel prediction with more data points for the decoder to process, improving the video quality. But, the result is far more workload on the encoder, which is why the frame rate slows to a crawl. In fact, it's so slow, to the point where live streaming at 30 FPS or 60FPS is impossible. But, as it turns out this statement is only partially true, more on that later.
|Configuration:||VMAF Score||Frame Rate||Percentage Difference With VMAF||Percentage Difference With FPS||I-Frames|
|B-Frames or Pre-Analysis Disabled||94.1215||139.21 FPS||Baseline||Baseline||13|
|B-Frames Only||95.3877||83.75 FPS||1.345% Improvement||39.8% Reduction||13|
|B-Frames and Pre-Analysis Enabled||96.0697||26.03 FPS||2.069% Improvement||81.3% Reduction||22|
But for video encoding purposes, AMD's AMF encoder with PreAnalysis is good. It effectively matches Nvidia's tried and true NVENC encoder featuring a VMAF score of 96.37 (versus 96.0697) with the same video and bitrate. It will probably be slower in the initial rendering process still, but the quality will at least be on par.
Technically Pre-Analysis Can Be Used In Live Gameplay, But Its Effects Are Mediocre
o despite Code Calamity's results, Pre-Analysis is too intensive for real-time streaming. It appears this is only partially true. Streaming expert and YouTuber EposVox just released a new AMF encoder optimization guide today, demonstrating Pre-Analysis in live gameplay in the new OBS beta 28 update.
We don't know what's going on here, but it's worth mentioning that H.264 has a nearly infinite number of hidden presets and configurations you can tune behind the scenes. There's a good chance Griffin's H.264 options were too intensive for AMF with Pre-Analysis enabled since EposVox was able to play with the feature in real-time at 60FPS, and he didn't complain about performance issues.
Nonetheless, EposVox says the feature can marginally improve image detail in motion, while reducing pixelization at the same time. Unfortunately, this results in a just barely noticeable improvement in sharpness. So it's probably worth turning on if you have enough encoding headroom, but it should probably be one of the first things you turn off if you encounter issues with encoder lag.
Unfortunately, EposVox did not conduct any performance testing with the feature exclusively in his new video, but apparently the feature works just fine in live gameplay. At least in the new OBS 28 Beta Update.
PreAnalysis Won't Save AMF From Intel's AV1 Encoder
PreAnalysis cannot save AMD's AMF encoder from Intel's brand new AV1 encoder, which dominates every H.264 offering, as shown in our previous coverage.
We can't compare Code Calamity's results to the ones shown by EposVox in our earlier article covering AV1. Still, it is easy to see that PreAnalysis would easily get destroyed by Intel's AV1 encoder.
To quickly recap, the AV1 encoder built into Intel's new Arc discrete GPUs outperformed both Nvidia's NVENC encoder and AMD AMF by a whopping 16% in real-time gaming tests.
That might not sound like a lot, but compared to the 1-2% performance gains from adding B-Frames and Pre-Analysis to AMF, it's a night and day difference. As a result, there is no doubt its behavior would remain the same, with performance results nowhere near that of Intel's AV1 encoder.
But this isn't at all surprising. At this point, it appears as both AMD, and Nvidia (probably Intel too with QuickSync), have reached the absolute limits of H.264's capabilities, with hardware encoding performance improvements almost flatlining since 2018 -- with the RTX 20 series launch. So with everyone's attention now on AV1, we'll have to wait for AMD to build a brand new AV1 encoder for Radeon 7000 before we see vastly improved video quality changes.