Share your settings and process flow

questions about practical use of Neat Video, examples of use
Post Reply
Posts: 5
Joined: Tue Dec 17, 2019 6:48 am

Share your settings and process flow

Post by CraigT »

I'd like to share my settings and process flow in the hopes others would share theirs as well, so I could improve my project flow or efficiencies.

I am not a professional, do not do this for income, but have a lot of different formats of video footage, and absolutely hate excessive noise, especially in movies where it was intentional, added post-edit or scanned from dirty film, or early digital in low light, or analog back to the Hi8/VHS-C days (sorry, no analog reel experience), or from compression artifacts found so in most DVDs.

Process flow:
1. VirtualDub2 (64-bit latest version) - convert file to AVI
I convert to YUV first for several reasons:
I have the space and it doesn't take long
Scrubbing is super fast in both directions
All frames are available (I have frames not available when I use source video with Neat Video filter)
Almost zero issues/crashes
YUV instead of RGB - half the filesize and 220fps vs 85fps
Settings:(I saved these settings in VirtualDub2 and Load them each time)
Audio: No audio (audio and everything else will be muxed back in later)
Video: Decode Format: Autoselect usually works, but most of what I use is "4:2:0 planar YCbCr (YV12)"; Color Space: Rec. 709 (HD); Component range: Limited (Y: 16-235)
Video: Compression: FFMPEG Huffyuv lossless codec: Configure: YUV 4:2:0; Bit depth: 8; Prediction method: left; Pixel Format: YUV420-709; 4:2:0 planar YCbCr (YV12); Rec. 709 (HD); Limited (Y: 16-235)
2. VirtualDub2 - open AVI created in step 1
Settings: same as above
Edit using Neat Video 5 video filter
Save video using the same settings as above
2b. Occasionally I'll use AviSynth Compare to check the noise reduction
3. MKVToolNix GUI - mux AVI from step 2 with original video file into mkv container
4. HandBrake - transcode muxed mkv to final video

The colors stay very close to true using the above process. There is some color shifting, usually to green, and I read the reason why a while back, and understood it then, but can't explain it, except that it is common in all noise reduction processes. I think it has something to do with applying noise reduction differently among red, green and blue. Maybe.

When I need to apply multiple noise profiles to one video, I use Sony Vegas Pro 12 or a later version of Vegas Pro by Magix. I have determined the settings to keep the colors true for this as well, but it requires "Huffyuv 2.1.1 RGB" as input to Vegas, along with specific settings in Vegas.

Neat Video 5 Settings:
Some time ago I compared many of the settings against numerous noise samples. This is where I'd appreciate feedback. And I use the max settings, because, why not?
Temporal: Quality Mode: High; Radius: 5; Everything else - default
Spatial: Quality Mode: High; Artifact Removal: Off; Everything else - default
General: Mix with Original: 50% - Range of 40% to 70% with 50% the most often used value; this leaves just a hint of noise which retains the fine details in faces; Everything else - default; GPU only

Why mix 50% with original?
To me it leaves just a hint of noise, very subtle, without the annoying speckle (or whatever it's called) or low light sensor RGB noise, and retains the fine details in the face.

Why GPU only?
I have a 6 core cpu, i7-5930K 3.5GHz (40 PCIe lanes), 32GB RAM, AMD Radeon RC 5700 XT video card (awesome cheap single-item drop-in instant Neat Video performance improvement!). So GPU+CPU does not reduce render times by much if any. What it does give me is the ability to perform noise reduction using the GPU while HandBrake is transcoding the previous video already run thru VirtualDub2 with a manageable performance loss, from 4% to 29% based on HandBrake settings.
I've also found that running two instances of VirtualDub2 simultaneously with Neat Video noise reduction increases performance by 31%, increasing 7fps to an effective 9.2fps (you can laugh). I believe this occurs due to the GPU using 100% resources most of the time, but not all of the time when running one instance. Think of the GPU usage as a tall triangle wave, dropping down low after each spike. But when rendering two instances, the GPU stays near 100% all of the time. This also has negligible impact on HandBrake, although by default HandBrake is set to "CPU Priority: Below Normal", which works quite well for keeping the render stages above full most of the time.
The 40 PCIe lanes makes a big difference during each of the steps above, copying/generating 70GB to 300GB files between 5 SSDs, each using 4 lanes while the GPU uses 16 lanes. This is the reason I have not bought a Ryzen processor with only 20 lanes, but instead am waiting on funds to buy a Threadripper 24/32 core with 64 lanes. Add 3+ M.2 cards and waiting on 300GB to move between drives is a thing of the past. I'd also like to try 2x identical video cards on a motherboard that has 64 lanes with both cards in PCIe x16 slots. Hey -- we can all dream, right?
On videos with considerably more fine noise in certain timelines than others, I've found that leaving the fine noise alone in VirtualDub2:NeatVideo and addressing it in HandBrake (NLMeans Ultralight Film) works very well, although I don't do this often.

So, what can I improve in the process flow or settings?
Changing quality modes from high to normal?
Reducing Radius from 5 back to 2?
*4:2:0, 4:2:2 or 4:4:4?
*8-bit or 16-bit or something in-between?

Having worked a lot with pictures, the number of bits and compression make all the difference. Most pictures taken on a cell phone, even the good phones today, simply can't be improved much with tools such as Lightroom. But give me a raw 14-bit picture and I can pull details and color from pitch-black, or fix white-balance, almost like magic. But this is only a single editing step.

*Do the multiple intermediate formats make any difference converting the video 3 times as listed above, even though it is lossless? Original -> AVI intermediate is YUV 4:2:0 before and after. Neat Video converts it to RGB, then I output it as YUV 4:2:0 again and pass it to HandBrake, since Handbrake has an 8-bit pipeline and for me renders to YUV 4:2:0 anyway.

Posts: 64
Joined: Sat Apr 21, 2012 6:52 am

Re: Share your settings and process flow

Post by lansing »

Why don’t you do all the processing in Avisynth? Avisynth can also run virtualdub filter, that way you don’t have to create all those massive intermediate file.
Posts: 2560
Joined: Thu Sep 01, 2005 4:12 pm

Re: Share your settings and process flow

Post by NVTeam »

> And I use the max settings, because, why not?

It is slower. I recommend to evaluate the balance of speed vs difference in visual results when switching the quality from high to normal. It would render faster, while the quality should not drop much.

If you change the quality modes in one or both filters, re-do the optimization in Preferences > Performance. Make sure GPU-only is still optimal setting.

Maximizing Radius may not be necessary as well, depending on the video of course. Check if that really helps the results, as compared for example with the default radius of 2.

Post Reply