AMF Encoder Plugin 2.2.x and AMD Driver 17.7.2

AMD released Driver 17.7.2 into the wild and with it came some much needed features and fixes. The plugin quickly followed suit and updated as well, allowing everyone using Open Broadcaster Software Studio to easily use their Hardware for encoding. Let’s take a look at what really changed.

What changed in the Driver?

The most important part of this is the changes in the Driver, which enables the plugin to work. Without knowing this, we don’t know what the plugin actually had to change.

Pre-Pass (aka Pre-Analysis) for H264 (AVC)

The most demanded feature that I’ve been asked over and over again, but until now I was not able to provide proper support for it in H264 (AVC) encoded content. It allows for slightly higher quality on Constant Bitrate or Variable Bitrate encoding, but takes a small fraction of encoding performance to do so.

I have tested this feature at 3840×2160 60fps with 6mbit using my Cabin In The Woods footage and you can see the differences in this imgsli link or by opening these two images separately:

3840×2160 60 FPS 6MBit Normal

3840×2160 60 FPS 6MBit Pre-Pass

Variance Adaptive Quantization for H264 (AVC)

One of the lesser known features that also was added properly in 17.7.2, Variance Based Adaptive Quantization (or Variance Adaptive Quantization) is an encoding feature that allows slightly better distribution of bitrate in very specific situations. It is based on the idea that the human eye is less sensitive to artifacts in highly detailed areas and thus improves quality in smoother surfaces.

The results vary from use case to use case and it has a very small impact on encoding performance so it doesn’t hurt to turn it on. Since I couldn’t find any local lossless footage that actually produced visible results please take a look at the Wikipedia link above.

Some fixes for H265 (HEVC)

This Driver added VUI headers to HEVC encoding which now allows decoders to know the proper Color Space and Color Range by just reading the encoded footage. Additionally the encoder now differentiates between IDR- and I-Frames which allows proper seeking, enabling editing software to properly read the encoded footage.

Unfortunately the HEVC encoder is currently crashing on shutdown, which should be fixed with the next Hotfix driver. On to the AMF Encoder, which has also gone through some changes.

What changed in the AMF Encoder Plugin?

There have actually been very few changes to the Plugin, most of the changes have been fixes for new issues and some quality of life changes.

New Default Values

Some options have received new default values which will be applied once you either reset your configuration or switch ‘View Mode’. ‘Queue Size’ has been increased to 8 to hopefully fix issues with horriblyoptimizedgamesthatsomehowfloodthemarket, ‘Deblocking Filter’ for HEVC is now disabled to fix issues with Premiere Pro, After Effects and Vegas Pro, ‘Profile’ for H264 was changed to High and ‘VBAQ’ is now disabled by default too.

Fixes for Crashes and Bugs

With 17.7.2 the testing for all features began again and thus new crashes and bugs were discovered. A memory corruption crash was fixed, the ‘Debug’ logging crash was fixed, a work-around to a crash has been changed to only apply to a specific Driver, the newly added HEVC crash has been fixed and the almost undetectable crash on quitting OBS has also been fixed. Additionally the frame corruption issue with Constant QP was fixed and Constant QP will now respect the proper QP settings starting with 2.2.3.

And that is it for the changes in the plugin for now. On to…

Final Words: FFMPEG with AMF Encoding

For those who have waited for the day to come, it is finally about to happen. Thanks to Mikhail at AMD the AMF integration into ffmpeg has really gone stepped up a notch, going from “not working” to “working” in the span of a single week. If you want to stay up to date, I regularly post updates about this in Discord and on my Twitter. Alternatively, if you are interested in testing, Patrons have received early access to the preview builds of ffmpeg with AMF.