AMD's Encoder Tweaks Rival Nvidia, But Intel's AV1 Reigns Supreme
AMD's encoder now matches NVENC, at a severe cost to performance
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.
Stay On the Cutting Edge: Get the Tom's Hardware Newsletter
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
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.
Aaron Klotz is a contributing writer for Tom’s Hardware, covering news related to computer hardware such as CPUs, and graphics cards.
-
-Fran- Just to make the point again: comparing AV1 to H264 when H265 exists for both AMD and nVidia is not a fair or good match. Also, Twitch doesn't support AV1 yet (that I know if; happy to be wrong) and YT has it in beta IIRC (although, Google has everything in beta until they kill it xD).Reply
It is definitely nice to see more tweaks from AMD to up the quality of encoding for sure, but you know I've been testing this as well and CPU H264 gets eerily close to H265 and AV1 when tuned properly in terms of quality at the same-ish compression quality (I test at 6mbps, since that's Twitch's limit), albeit at the expense of a lot of CPU performance (depending on the tuning). Also, H265 does look good as well, but I'll concede it is worse than software AV1. And on that note, software AV1 is impressive for sure, but the penalty is huge. It hits way harder than H264 via software, but it definitely looks better hands down. I'll be most curious to see what AMD and nVidia accomplish when they introduce their AV1 HW encoders.
Regards. -
Giroro "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. "Reply
To be clear, source code for an SDK on github and hardware baked into a GPU are absolutely not the same thing. -
Giroro "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.Reply
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."
What does outperform by 16% even mean when the scale has a baseline of 94/100?
94% + 16% = 110% -
neojack Giroro said:What does outperform by 16% even mean when the scale has a baseline of 94/100?
94% + 16% = 110%
the sentence didn't explained wich tests were performed. maybe it was the netflix test that you mentionned with a 94 score, maybe it was another test
Also, generaly, when in an article you see "X is 16% faster than Y", its does not mean that you add 16 points to the score. it means that the difference between the scores is 16%