Video Enhance AI v1.6.1

When saving settings as the default, it doesn’t save the bitrate for mp4. Adding new videos always reverts to 7 Mb/s. I have over 100 DVD episodes of a TV series to uprez and have to set the bitrate individually for each episode, even though I saved all my settings as the default. It remembers the other settings, but not the bitrate. Can a future update save the bitrate along with the other settings when saving as default?

Thanks

2 Likes

I did the same thing Audrey, it processed for 3 days & then crashed, tried again & crashed etc etc, frustrated I went back to V1.5.3
& will stay on this version till I hear an update where all subscribers are happy.

1 Like

TR2 is an important setting in QTGMC for stabilization and VEAI is very sensitive on that part and can exacerbate these moving blocks/pixels due to video compression. Unless your source is already very clean and has a very high bitrate I’m not sure setting TR2 to 0 is a good choice. Placebo preset has a TR2 of 3 by default.

I would agree that unless the source is clean, TR2 should be set to 1 or more depending on the source, IF you were NOT upscaling the result with a machine learning upscale process afterwards.

I’ve experimented with it quite a lot. If you’re going to be processing with Video Enhance AI, TR2=0 is in all the cases I’ve tried the best way to be sure you get as much detail as possible in the upscale. Importantly, details in textures and faces get lost and the upscale looks with softer, distorted in some cases, or VEAI tries to generate details which in some cases look better, but in other cases look worse.

You can run the VEAI result through QTGMC again with input type set to 1 and then do the denoising. This tells QTGMC not to run any deinterlacing process and only do denoising. Just because the default for TR2 is higher for slower QTGMC profiles doesn’t mean that’s the best option here. Those defaults were set without considering running a machine learning upscaling process on the result.

For InputType=1 meaning a progressive video you want to clean or fix bad deinterlacing there is almost no difference by setting TR2=0. So why bothering using QTGMC then ?
On interlaced videos InputType=0 , you will not see so much difference by using another more quick deinterlacer like Yadif by setting TR2=0
TR2=0 on QTGMC is only meant for fast presets. A trade for speed over quality.
At first you can think that bypassing any denoising/smoothing will produce better results in VEAI but in my experience it is not. What is called motion inconstancy in VEAI comes mostly from the source compression artifacts like these unstabilized macroblocks every other frame that QTGMC fixes magically if TR2 is set to a proper setting.

I’m using Artemis-HQ a lot for upsize 320x160 mpeg1 to 1920x960 because it gives me the best sharp result and has no strange “pixel-wobble” like all the others…
Only bad things are sometimes artefacts like dark “interlaced-lines” or the fact that the CPU-Mode is different and much worse than die GPU-Mode.

My workflow at moment:
Chromasmoothing the mpeg1 video in virtualdub and save it as a RGB-Video with FFV1 codec.
I upscale 320x160 → 1920x960 with Artemis-HQ → downscale to 1280x640 → upscale to 4K with Gaia HQ… looks good.
I do the downscale for more sharpening/anti aliasing and to get rid of the small dark interlaced lines that sometimes occur with Artemis-HQ

I’m having crashes on the last 2 releases also. Haven’t tested if my speed was reduced the newer versions. Also seem to have issues with windows scale- buttons not lined up unless fullscreen.

1 Like

I would agree. InputType=1 for denoising would be pointless if you set TR2=0. It seems you didn’t understand what I wrote, or maybe you’re not familiar with what the input type options of 1, 2 and 3 are for. I would suggest running the VEAI result (the UPSCALED video) through QTGMC with InputType=1 and TR2=1-6, i.e., AFTER upscaling.

What I would say, is it depends on your source. Most of the sources I tested don’t give as good a result when you run QTGMC with TR2>0 on the source, BEFORE upscaling. Detail is lost in the upscale. QTGMC wasn’t written with AI/machine learning upscaling in mind. So it doesn’t have any “preupscaling” profiles or settings. That’s up to the user. TR2>0 might work better for anime or cartoon sources that are going to be upscaled through Gaia-CG, but I haven’t tested this so much. I’ve mostly been testing live video with Gaia-HQ, and the best result on interlaced sources is to run QTGMC with TR2=0 (I use QTGMC(Preset="Placebo", InputType=0, TR2=0, Sharpness=0.2, SourceMatch=3, Lossless=0, MatchPreset="Placebo", MatchPreset2="Placebo", ediThreads=2), scale the result with VEAI, then if there is still noise, shimmer, etc. in the result, then run the result again through QTGMC with QTGMC(Preset="Placebo", InputType=1, TR2=0, Sharpness=0.2, SourceMatch=3, Lossless=0, MatchPreset="Placebo", MatchPreset2="Placebo", ediThreads=2), changing InputType from 1-6 depending on how much denoising you want (remember higher settings lose details), and also maybe adjusting Sharpness… most of the time I leave this at 0.2 which is the default for these settings.

Appreciate the post. I’ve been using Artemis LQ for my vhs/SD videos and though it improves quality, there is a ‘paint like’ artificial result noticeable on the distant scenes of the video. I’m not too bothered about noise preferring a sharper picture with better facial/scene details. Thanks dimsimjim

Ok, I have been trying to upscale DVD recordings, extracting them myself, and it has been ok so far, but I was not entirely happy with some of the artifacts from the DVD. For reference, and some irony as I only discovered this thread yesterday, it is also Voyager DVD.

Until yesterday, I had never used a pre-processing tool that was not easily GUI based. From mikaljan post much earlier up, you had a description on how to pro-process and also later how to extract from the DVD, so I now am not using Handbrake and using DVD Decrypter and Avisynth (thank you ^^). The source extraction is now good and direct, but the pre-processing I need some assistance with.

Vapoursynth lost me completely and I can’t find any good instructions for a relative new person. I gave up and used Avisynth+ and AvsPmod as I could find videos on setup, and then tried to mimic descriptions used here by mikaljan and also Chase but between QTGMC and its myriad of settings and relative newness I seem to not be working out the correct pre processing settings.

My first attempt used this:

SetFilterMTMode("QTGMC",2)
FFmpegSource2("J:\Voyager Processings Files\Season 3\S03E01.mkv", atrack=1)
ConvertToYV12()
AssumeBFF()
QTGMC(Preset="Slower", FPSDivisor=2, Edithreads=6)
Cnr2(mode="ooo", scdthr=10.0) 
BilinearResize(720,540)
Deblock(quant=25)
DeHalo_Alpha(rx=2.0)

This ran pretty quickly and seemed to remove most artifacts and looked pretty good in normal scale - but upscaling the faces looked like almost single colour with no real clarity so this one isn’t working entirely.

I then tried substituting the QTGMS line from chase:

QTGMC(Preset="Placebo", InputType=0, TR2=0, Sharpness=0.2, SourceMatch=3, Lossless=0, MatchPreset="Placebo", MatchPreset2="Placebo", ediThreads=2)

But the source file was then unusable. It took a lot longer to process, but the video was weird - it spent most of the episode looking like one frame was offset vertically from the next so the watching made it like it was constantly flickering and I couldn’t even test the upscale.

Mikaljan - if you are still lurking around - I know you processed a clip from Voyager and that upscale looked very good but I can’t seem to work out how to mimic your settings yet. Could you using the first code post above (if you have time) reedit to match the settings you would use? I would be much appreciated. If someone else also has settings they have been using effectively, I would definitely have a go as well.

Many thanks ^^

I am trying to scale 720x480 videos to 4K and have not been able to find the right model and setting mix. I am leaning towards Theia Detail just because I dont want to lose any details; would love to find out with recent changes to models, is my preference still a good choice? Any tips would be appreciated.

Interesting but also strange results.
I’m using the Titan RTX and get 0.33 sec/f what is even slightly faster when doing SD-> 4k with the same algorithm (alpha version). To my knowledge the 3080 should outperform the Titan RTX when using its tensorcores. What content do you upscale? Regarding the performance, I experienced a strong impact of the material you upscale.

I never got the script based QTGMC to work. StaxRip works perfectly and has QTGMC, much much better results than Handbrake. I’m only using Handbrake to encode VFR to CFR with best quality settings (official DVDs are rarely in VFR?) . Only way to keep audio in sync. Maybe the StaxRip also has an option for that?

V-1.5.1 TITAN RTX Gaia - HQ
SD640-480> 4K-0.3
SD720-576> 4K-0.4
HD1280-720> 4K-0.84

Any reason u didn’t choose mp4 as an output and went through these additional steps?

I don’t have the Voyager DVD, so I don’t know if it’s true interlaced, or telecined. If it’s telecined, then you do NOT want to be running QTGMC.

Load the ripped DVD into VirtualDub2. You may need to increase the zoom a bit. Now find a part of the video where there’s movement, even someone moving their hand around is good. Now advance one frame at a time. Do you see combing artifacts on every frame? Or, do you see three normal looking frames, then two frames with combing artifacts? If so, then you have a 3:2 pulldown or telecined DVD, and you need to detelecine it from 29.97 fps to 23.976 fps.

LoadPlugin("C:\PROGRA~1\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("C:\PROGRA~1\Hybrid\32bit\AVISYN~1\DGDecode.dll")
LoadPlugin("C:\PROGRA~1\Hybrid\32bit\AVISYN~1\TIVTC.dll")
LoadPlugin("C:\PROGRA~1\Hybrid\32bit\AVISYN~1\unblock.dll")
LoadDLL("C:\PROGRA~1\Hybrid\32bit\AVISYN~1\libfftw3f-3.dll")
TFM(slow=2,mChroma=true)
TDecimate(cycleR=1,cycle=5,hybrid=1)
AssumeFrameBased()

Video Enhance AI’s resize models are mainly 2x and 4x based. So, I strongly recommend you do NOT resize before processing via video enhance AI. Resize AFTERWARDS. Unless they are needed, you also should not run other processing filters first. VEAI does its own deblocking and noise reduction. If there is still noise in the upscaled result, do the denoising AFTERWARDS. Unless you are seeing specific problems in the source (visible rainbows or other chroma noise, strong halos), then I would NOT be running Cnr2 and DeHalo Alpha before upscaling.

Load the ripped DVD into VirtualDub2. You may need to increase the zoom a bit. Now find a part of the video where there’s movement, even someone moving their hand around is good. Now advance one frame at a time. Do you see combing artifacts on every frame? Or, do you see three normal looking frames, then two frames with combing artifacts? If so, then you have a 3:2 pulldown or telecined DVD, and you need to detelecine it from 29.97 fps to 23.976 fps.

Thanks for that. I downloaded and opened the raw file in Virtualdub and checked, there is combing on every frame (quite noticeable) so based on this I am assuming true interlaced from what you commented.

I did work out that the jerkiness was from the AssumeBFF() - after using MediaInfo from another tip I realised it was TFF so switched that command and the jerkiness went away so that was great and progress. I did see that it was resulting in double the frames of the original and this opened another rabbit hole of me looking into how this was working.

I am still not entirely sure if I understand correctly, but the QTGMC is removing the interlacing (by interpolation?) and resulting in a 50fps file instead of the original 25fps. I am not entirely sure, however, how to deal with that yet (or if I should leave it). I am not noticing any glaring issues while watching it in this new format, but I did notice in VirtualDub2 that there were noticeable scene changes that were blending the previous and post frames like this screenshot:

I redid the extract with the SelectEven() filter to keep only even frames which I “think” sorted most of this. The original does have a fade crossover at this point which is probably largely what causes the issue, this is from the original:

Video Enhance AI’s resize models are mainly 2x and 4x based. So, I strongly recommend you do NOT resize before processing via video enhance AI. Resize AFTERWARDS. Unless they are needed, you also should not run other processing filters first. VEAI does its own deblocking and noise reduction. If there is still noise in the upscaled result, do the denoising AFTERWARDS. Unless you are seeing specific problems in the source (visible rainbows or other chroma noise, strong halos), then I would NOT be running Cnr2 and DeHalo Alpha before upscaling.

I have no problem whatsoever in removing additional pre-processing and what I have put may well be overkill. Mostly I was trying to remove the rainbow artifacts in the original you can see here and here:

I believe it is definitely having an effect as these are the two scenes processed:

The small rainbow artifacts in the hair are essentially gone. When I put the raw file in VAEI, that same section keeps those rainbow artifacts and upscales them so I am assuming the Dehalo has to stay, unless you think it will be better to run Dehalo after VAEI upscaling to then remove them? I have not tried that option yet.

The last thing you mentioned was resizing the frame. The only reason I did this was because when I open the source in anything, such as VirtualDub2 (and the source straight from DVD with no processing using the DVDDecrypter) the frame size appears slightly wrong. You can see it in the pre-processed image above I linked with the scene changeover and for example here:

Where his face is abnormally long vertically. That size change was to fix that. But if it is better to do that after, I can switch it to after instead. I was just trying to reduce the number of times the file has to be processed especially given its at least 12x hours per episode already ^^.

Based on what you said above and my notes, I have simplified the script to:

SetFilterMTMode("QTGMC",2)
FFmpegSource2("J:\Voyager Processings Files\Season 3\S03E01.mkv", atrack=1)
ConvertToYV12()
AssumeTFF()
QTGMC(preset="Very Slow", InputType=0, sourceMatch=3, sharpness=1.0, tr2=2, ediThreads=8)
SelectEven()
DeHalo_Alpha(rx=2.0)

Would this look fine to you or do you have a better recommendation dealing with the de-interlacing? I am all for the least amount of pre-processing needed before VEAI to get the best results, especially as thats the big time sink overall.

One additional note is that while playing back all the processed files so far, the audio is very slightly out of sync from the original source. It doesn’t come and go its just like the voice is offset by a few frames and just noticeable enough that it is irritating. I am fairly certain this is easily fixed in post VEAI, but if you happen to know from the above what may be causing it, I would definitely be interested.

Thanks for the assistance ^^

because I want to use H.265 HEVC encoder and customize the settings and I don’t want to loose quality in the process.

Just remux your original audio into the new container using mp4box or some other tool.

Hi, Im trying to use this with my intel integrated graphics I’m running the latest drivers for it and VEAI isnt letting me choose the intel gpu in the preferences menu. It only shows the CPU, Im running v1.6.1