One option you have to off load CPU load during upscaling is to use the GPU encoder in a really high quality mode, or even a lossless mode, then transcode with x265 later. That way you get no CPU impact during upscale, since the GPU is encoding. But you still need to use the CPU later on during for the x265 transcode.
For example you can use the hevc_nvnec (h265 nvenc) encoder in lossless mode using these setting with ffmpeg (what Topaz Video Enhance AI uses for encoding): -c:v hevc_nvenc -tune lossless
But you may want to remove the CPU entirely (E.G. No CPU transcode later on) and switch to AV1, in which case I have included some extra information below related to the AV1 stuff.
Please make sure your TV, or the device you’re using to play the video, supports AV1 playback at reasonable performance levels before making the switch to AV1. Most TVs don’t support AV1 playback, and only modern GPUs support hardware AV1 decoding, and not all major video players have support for hardware decoding (VLC 3.X doesn’t support hardware AV1 decoding).
Software decoding is a thing, but if your CPU isn’t fast enough, you may not be able to play back 4k AV1 video reliably.
I will be running some tests tonight comparing av1_nvenc to libx265 and post the results when I get them.
As you pointed out, hardware encoding typically suffers in compression efficiency in exchange for speed compared to software encoders. But when it comes to AV1, the trade off may not be that large.
Yes, hardware encoding will be worse in terms of quality compared to software encoding. But AV1 software encoding is SO SLOW for high resolution content on average consumer CPUs that the trade off is probably worth it.
As for how av1_nvenc compares to libx265 that’s a more interesting question that you probably can’t find an answer for. When I get my tests done, I could potentially answer that.
av1_nvenc, the Nvidia AV1 encoder doesn’t support CRF, so I believe -crf 20
will not work. CQ is slightly different from CRF, but apparently it behaves similarly to CRF. For reference, CRF is “Constant Rate Factor”, CQ is “Constant Quality”.
av1_nvenc does support some other modes, Varibale Bitrate, Constant Bitrate, Constant Quantization Parameter, but you probably don’t want to use any of those if you want to output directly from TVAI to a video file you plan to keep around long term and watch.
Based on testing done by myself. H264 is better at preserving detail than AV1. Although I am comparing libx264 to svt-av1 at high bit rates (E.G. 50mbps). Low bit rates are a different matter.
This seems to be because AV1 priorities providing a “clean” image rather than a detailed one. A result of this is that svt-av1 looks better when you’re watching a video, but it has less detail and thus looks worse when you pause it and compare the compressed videos to the original source material (an admittedly uncommon use case).
So if your goal is to maintain as much detail as possible, AV1 (at least svt-av1) isn’t for you. But if you want a high quality compressed video, AV1 can do that.
An extra thing that might help. You can find a full list of av1_nvenc settings by running this in a terminal: ffmpeg --help encoder=av1_nvenc