Add A Tooltip To Explain Codec Quality Settings

This thread reminded me of an idea I had a while back. How about adding a tooltip for the Quality scale in the Codec tab of the Export menu? The average user doesn’t have a clue what CRF or percentages mean in this context. They may see that 55% and think “Oh, that’s low,” and crank it up high maybe even to 100% thinking they are picking the best for their needs. Or they might just stare at it, wishing they knew what it all meant so they could make better choices for their projects. A simple, concise and easy-to-understand tooltip could set them straight and point them in the right direction. The text could be something like this:

For AVC/H.264

Quality scale:

100% CRF-0 = Lossless (Uncompressed, highest quality but the largest file size)
64-67% CRF-17, 18 = Visually lossless (Slightly compressed, but the compression is unnoticeable to the human eye)
54-55% CRF-23 = Default (Compressed, but still high quality and suitable for most applications)
0% CRF-51 = Lowest quality (The most compressed, smallest file size but the most quality loss)

For HEVC/H.265

Quality scale:

100% CRF-0 = Lossless (Uncompressed, highest quality but the largest file size)
?? = Visually lossless (Slightly compressed, but the compression is unnoticeable to the human eye)
45-46% CRF-28 = Default (Compressed, but still high quality and suitable for most applications)
0% CRF-51 = Lowest quality (The most compressed, smallest file size but the most quality loss)

For HEVC, I left the “visually lossless” one with question marks since I’m honestly not sure what the equivalent CRF value would be compared to AVC’s 17 and 18. The answer someone left for this question here suggests that HEVC’s CRF for visually lossless is 23-24. @austin can you confirm?

So what do you think? This small addition would improve the overall user experience.

1 Like

I am using 65% for both settings with the hardware encoders, above this value the export does take endless time.

I Think at is to detailed to have as tooltips, a web/forum post with detailed would be nice (if it don’t exist already).
A better way is proberly to add presets with Lower quality (faster)
These values is advanced setting, the normal user should not mess with these values, without understanding that they do

There is a Documentation page about Advance Export. But it is incomplete for now.
The chapters about the Video, Codec and Audio tabs are blank.
I hope someday someone with a good knowledge of all these parameters will fill those blank :slight_smile:

When it is done, maybe a link to the Documentation page could be added somewhere at the bottom of the Export panel when on Advance mode. There are links included with some of the filters. The Compressor audio filter for example.
fxBa03mK0u

A tooltip is a good idea. In fact, I believe that all the parameters in the Export panel should have easy to understand tooltips.

But they will anyway :slight_smile:
And when you think of it, it’s not such a bad thing. How can anyone become an advanced user if he/she never plays with the advanced stuff? Good tooltips + a link to a complete documentation will help them improve their skills faster.

tooltips are translated, it is hard for translators to translate long complex tooltips, so it is best to keep them short and precise and easy to understand

Should have been “The normal user should not NEED to mess with…” :slight_smile:

Link to documentation is a good idea

Quality depends on the codec - not only the standard but its implementation. Its meaning is often complicated, and often it is non-linear. That means there would be a lot of different tooltips for just one parameter. Rather, it is best to treat this as something that is abstract and relative by starting with our default and adjusting it from there.

I wish I could, but I have not studied HEVC very much. I have always been reluctant to touch it because of its patent pool situation. I’ve moved on to AV1 with no plans of looking back.

Would you know what visually lossless is for AV1 in CRF?

There is one more parameter that affects the weight of the file - encoding speed. Unfortunately, you cannot control this parameter in the codec tab, but you can change it in the other tab. This is the “preset=” parameter. The default is preset=fast, but if you set preset=veryslow, encoding will be a little slower, but the file size will be much smaller, this is very effective using a software codec and not such a good result with a hardware codec. This parameter is very important if you really need to reduce the file size as much as possible without sacrificing quality.

Here are some results after transcoding a 150-second 4K30 sample clip:

Encoder CRF Preset Seconds Megabytes Quality
x264 16 Medium 916 1300.0 Visually lossless
SVT-AV1 16 8 1174 800.3 Visually lossless
SVT-AV1 18 2 19234 572.3 Visually lossless
SVT-AV1 20 10 445 594.6 Very high quality
SVT-AV1 24 10 456 483.0 High quality
x264 23 Fast 573 489.3 General purpose
SVT-AV1 32 8 1010 262.3 General purpose

I provided two visually lossles SVT-AV1 options to illustrate how it can be tuned to prioritize fast encode time or small file size.

The nuance here is that the SVT-AV1 visually lossless options require so much math to unpack that the video playback sometimes stutters when using a software decoder on my computer. Someone with more cores or a hardware decoder may not have that problem. (I’m using a 4-core/8-thread i7-4770 at 3.4 GHz.)

That’s why I included the CRF 20 Preset 10 option in the results. Preset 10 uses a simplified set of compression techniques which enables my computer to play the video back with under 50% CPU usage. The quality is borderline visually lossless for single-frame inspection, and effectively lossless at full-speed motion playback.

The cool thing about SVT-AV1 at CRF 20 Preset 10 is that it encodes a video in half the time and half the file size of x264 for essentially the same quality level. That’s for 4K… the benefits are a little less extreme for 1080p video.

For reference, the SVT-AV1 encodings were 10-bit while the x264 encodings were 8-bit. I also used these encoding parameters:

svtav1-params=crf=20:preset=10:tune=0:film-grain=0:film-grain-denoise=0:fast-decode=0:tile-columns=1

…although I didn’t specify tile-columns for the visually lossless encodings, just to see how small it could get the files.