Does Version 6 use both GPU *and* CPU to encode?

calande

Member
Hello,

In the description of Version 6, it says if you have an NVidia GPU, VideoReDo will use it to encode. In this case, does it also use the CPU at the same time?
Thanks,
 

Dan203

Senior Developer
Staff member
We support the NVEnc encoder, which is built into most NVidia GPUs. You can choose it or the CPU encoder on a per save basis, but not both simultaneously.
 

Otter

Member
Yes, it does - at least with nVidia Turing chips.
Selecting "GPU" encoding in VRD results in a much faster completion than software only, but the CPU is still very involved.

Test hardware:
CPU - Ryzen 9 3900X 12c/24t
GPU - nVidia 1650 Super (Turing)
16 GB DDR4 3600Ghz memory
source file on 970 EVO 512GB NVME
output file to ADATA SX8200 Pro 2TB NVME

Did a test recode on a 11 min file while monitoring with HWInfo 64.
No other foreground programs were active and VRD was definitely set to use "NVEnc" encoding
The GPU engine loaded to about 27%, but all 12 cores and 24 threads on Ryzen loaded also to 60%-70%
The CPU usage was not a spike, but continued until encoding stopped.
VRD completed the test in 25 secs at 786 fps

Ran same source again, but with 2-pass SW encoding using similar specs
GPU load was 0% and CPU load was again even across cores/threads and still about 50%-70%
This time, completion took 111 secs at 177 fps

I did not have an appropriate system or time to run tests using a Turing video card and a less powerful CPU, but I'm sure it will be proportionally slower on a quad or hex core system with the same NVEnc card.

So, NVEnc GPU encoding is much faster and pretty good quality, but your CPU is still being used - a lot - and how powerful it is will have an effect on completion times also.
 

Dan203

Senior Developer
Staff member
Yes, it does - at least with nVidia Turing chips.
Selecting "GPU" encoding in VRD results in a much faster completion than software only, but the CPU is still very involved.
This is true of all encoders. They have to use a little CPU to function. But the vast majority of the CPU you see being used is from the other parts of VideoReDo. All of the processing we do, like resampling, deinterlacing, sync adjustments, muxing, etc... happen in the CPU.
 

calande

Member
Thanks for your feedback. This week-end, I've tried encoding a one-minute TS file in VDR and in another famous video encoding application that I was using so far to encode using HEVC. I've tried a number of settings, but I can't have a decent video quality with a rather small file size like I used to. I tried the same settings on VRD and on my other application, but to no avail... Quality is there, but the file is big. I tried the 5 encoders listed here (Default, Intel, Software, Classic and NVEnc). Otherwise, same settings. I even lowered target quality, but output result is slightly pixelated image with still a fairly heavy file. I was wondering what to do... Is it possible to use/import our own HEVC encoders to give a try?
 

Dan203

Senior Developer
Staff member
Thanks for your feedback. This week-end, I've tried encoding a one-minute TS file in VDR and in another famous video encoding application that I was using so far to encode using HEVC. I've tried a number of settings, but I can't have a decent video quality with a rather small file size like I used to. I tried the same settings on VRD and on my other application, but to no avail... Quality is there, but the file is big. I tried the 5 encoders listed here (Default, Intel, Software, Classic and NVEnc). Otherwise, same settings. I even lowered target quality, but output result is slightly pixelated image with still a fairly heavy file. I was wondering what to do... Is it possible to use/import our own HEVC encoders to give a try?
No there is no way to use a 3rd party encoder in VRD. GPU encoders are not really meant for maximum quality and minimum bitrate. They’re meant for speed. If you want max quality at lower bitrates set the encoder to software, then go to advanced, then to the HEVC options and set the "preset" to one of the slower options. You might also want to try enabling dual pass encoding. That will give you the best possible quality. If you still have issues then your bitrate is too low.

Also for the record "software" in VideoReDo is x265 so it's likely the same encoder used in every other application on the market. It's all just a matter of finding the right settings.
 

jmc

Active member
I love the "Presets" for H264 and use the "Very Slow".
If you understand all the setting then you can make intelligent choices.

I have to go with the slowest speed Preset and hope for the best.

Did find some "gold" setting in the Advanced Profile area. (H264)
Just by testing a lot of different settings I found a couple that made a big speed boost
with a "Very Slow" Preset. (with a "lite" Preset level...NO benefit at all)

One was "Encoder determines B or P type" it greatly increased the "First Pass" cpu use and negated a lot of the
slow down of the "Very Slow" Preset.

No idea why they helped so, so much but will take what I can get! (don't know about X265 setting tho)
 
Top Bottom