Testing Shows AMD's AMF Encoder Finally on Par With Nvidia NVENC

Radeon RX 6800 XT
(Image credit: AMD)

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.

Aaron Klotz
Contributing Writer

Aaron Klotz is a contributing writer for Tom’s Hardware, covering news related to computer hardware such as CPUs, and graphics cards.

  • -Fran-
    Good to know they're adding things to make the HW encoder better, but no one working with videos will EVER use a hardware encoder. Even when streaming, I'd be willing to say most people will still use software encoder with the fast preset for either H264 and H265. Save the output raw and then process it; that is why most video editors salivate for ThreadRipper XD

    Anyway, pedantries and saltiness aside, it's still good to know they're now at least viable on paper. I wish more Devs force AMD to help them add support for these features and AMD, please, realize you're not doing your Company any favours by ignoring such important tools like OBS, FRAPS (does it still exist? XD) and a plethora of other encoding and decoding software out there (LAV, madVR, X264, etc!).

    Regards.
    Reply
  • gggplaya
    Author said:
    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.

    You should probably qualify that as live streaming support.

    I used AMD relive all the time years ago with my Vega64, the h.265 enconding was superior to Nvidia's latest h.264 at the same bitrate. I would save the last 20 minutes for games that I won. The clips were cleaner on AMD h.265 than my RTX3080 I have now saving with shadowplay in h.264 for the same file size. AMD and Intel Quicksync h.264 encoding was Macroblocking galore at lower bitrates.

    CPU encoding is still the cleanest at any given bitrate, but especially at low bitrates. If you're a streamer, you should consider a 12 core or 16 core CPU so you can allocate a few cores to video encoding.
    Reply
  • salgado18
    -Fran- said:
    Good to know they're adding things to make the HW encoder better, but no one working with videos will EVER use a hardware encoder. Even when streaming, I'd be willing to say most people will still use software encoder with the fast preset for either H264 and H265. Save the output raw and then process it; that is why most video editors salivate for ThreadRipper XD

    Anyway, pedantries and saltiness aside, it's still good to know they're now at least viable on paper. I wish more Devs force AMD to help them add support for these features and AMD, please, realize you're not doing your Company any favours by ignoring such important tools like OBS, FRAPS (does it still exist? XD) and a plethora of other encoding and decoding software out there (LAV, madVR, X264, etc!).

    Regards.
    People working with videos will invest in CPU encoding, because to them time and quality is money. But GPU encoding is very important to casual streamers, who commonly have 8 or less cores to work with, and probably don't mind a slight drop in quality.

    It will be very useful for other types of streaming too, like playing through Steam Link or Parsec, or even Xbox and Playstation, which uses AMD GPUs.

    Also, they got to evolve the tech, so one day it reaches CPU quality on the GPU, right?
    Reply
  • -Fran-
    salgado18 said:
    People working with videos will invest in CPU encoding, because to them time and quality is money. But GPU encoding is very important to casual streamers, who commonly have 8 or less cores to work with, and probably don't mind a slight drop in quality.

    It will be very useful for other types of streaming too, like playing through Steam Link or Parsec, or even Xbox and Playstation, which uses AMD GPUs.

    Also, they got to evolve the tech, so one day it reaches CPU quality on the GPU, right?
    Hm... I'll be willing to say dedicated encoders will never be as good as software ones only because of how much you can tweak per scene or frame types. Plus, the "accelerated" part is rather a small one in the whole pipeline. We all talk about "hardware based encoding", but in reality is like 1/5th of the whole pipeline? For both encoding and decoding. This is what I remember, but I'd imagine it hasn't changed that much from when I investigated all of this. Going to doom9.org is always a good reminder :D

    In any case, I don't disagree it's a useful feature to have; not at all. As I said, it was mostly a salty comment, as I personally don't like hardware encoders over software. Plus, as a bit of a counter: even 8 core CPUs actually do an excellent job at encoding on the fly with AVX1/2 nowadays. You just need to know how to tweak the encoder in OBS or whatever you're using (usually wrapping X264). It's ironic how most games, as they don't fully use the whole thing, that spare capacity is more than enough for the software encoder to do a great job. You'll use more power and endager hiccups, but from personal experience, the GPU having to deal with less usually yields better results. Maybe it would be an interesting set of tests? :p

    EDIT: Talking in the Tom's Discord, I remembered this article: https://www.tomshardware.com/reviews/video-transcoding-amd-app-nvidia-cuda-intel-quicksync,2839.html
    It is definitely a good read to understand the intricancies of "hardware encoding and decoding".

    Regards.
    Reply
  • Sleepy_Hollowed
    Huh, I did not know the 264 encoding was bad on AMD before this article, since I've only been using 265 to transcode my video files and save space, and it looks real good without artifacts, but this is good.

    I'm also amazed that there's so little support for 265 for streaming as well, but I guess it's not surprising since web cams that come in 4K are still rare and heck, 1080p on mass laptops is now becoming mainstream.
    Reply
  • Kamen Rider Blade
    I'm still hoping for H.266 VVC to quickly take off and EVC Baseline to get support since it's "Royalty Free".
    Reply
  • Giroro
    "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"

    I don't think this statement properly expresses the idea that the NVENC hardware H.264 encoding is visually closer to a specific setting in a specific software encoder.

    "The only exception to this is HVEC encoding, where AMD's AMF encoder performs exceptionally well. "

    I've seen no testing to support the idea that AMD is "exceptional" at HEVC encoding. The testing I've seen is that AMD's HEVC encoding looks somewhat better than NVENC's h.264, and good enough that its not that critical for video that will ultimately get crushed for internet delivery... but it is still far inferior to HEVC encoding from NVidia and in software.

    But, its hard to prove that encoding quality "looks better", and the overwhelming majority of the information out there was made by streamers who know almost nothing about video...outside of the OBS settings they heard about from another streamer, who copied the "how to" content from another streamer, and so on.
    Reply
  • gggplaya
    Giroro said:
    "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"

    I don't think this statement properly expresses the idea that the NVENC hardware H.264 encoding is visually closer to a specific setting in a specific software encoder.

    "The only exception to this is HVEC encoding, where AMD's AMF encoder performs exceptionally well. "

    I've seen no testing to support the idea that AMD is "exceptional" at HEVC encoding. The testing I've seen is that AMD's HEVC encoding looks somewhat better than NVENC's h.264, and good enough that its not that critical for video that will ultimately get crushed for internet delivery... but it is still far inferior to HEVC encoding from NVidia and in software.

    But, its hard to prove that encoding quality "looks better", and the overwhelming majority of the information out there was made by streamers who know almost nothing about video...outside of the OBS settings they heard about from another streamer, who copied the "how to" content from another streamer, and so on.

    From my anecdotal observation, comparing output from my Vega 64 to my RTX 3080, AMD HEVC looks much cleaner than Nvidia h.264 Shadowplay at the same file size output for 20 minutes of video, around 3GB is what I aim for. I can't get Nvidia to use h.265 encoding for shadowplay, whereas h.265 is available on AMD Relive.
    Reply
  • Kamen Rider Blade
    gggplaya said:
    From my anecdotal observation, comparing output from my Vega 64 to my RTX 3080, AMD HEVC looks much cleaner than Nvidia h.264 Shadowplay at the same file size output for 20 minutes of video, around 3GB is what I aim for. I can't get Nvidia to use h.265 encoding for shadowplay, whereas h.265 is available on AMD Relive.
    Now imagine halving that file size with H.266 VVC once it gets supported in hardware.
    Reply
  • LuxZg
    Kamen Rider Blade said:
    Now imagine halving that file size with H.266 VVC once it gets supported in hardware.

    Why not AV1 ? Which is royalty free and already in upcoming hardware?
    Reply