Hi friends
I want to ask advice on how to improve or restore my animation DVDs of my children, who are already a few years old.
I use STAXRIP normally for compression, these videos as you can see have multiple problems, artifacts, points, blur, etc.
Thank you very much and any help will be welcome
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 30 of 31
Thread
-
-
Many for your contribution
I think with an excellent result. I'm going to investigate and find that filter and how to do the compression with STAXRIP.
If you can pass parameter information and others that the filter needs, I would be very grateful.
Have you done the whole process with virtualdub?
GreetingsLast edited by Santojob; 23rd Aug 2021 at 12:20.
-
Yes, all done in Virtual Dub.
The filter (32 bit) is here:
http://www.infognition.com/dirtcleaner/
and these are the settings I used:
[Attachment 60402 - Click to enlarge] -
AviSynth:
Code:Mpeg2Source("Title_t01_corregir.d2v", CPU2="ooooxx", Info=3) Crop(10,0,-6,-0) RemoveDirt(limit=50, _grey=false) vInverse() dehalo_alpha(rx=2.5, ry=2.5) MergeChroma(KNLMeansCL(d=2, a=2, h=2.0, channels="Y").aWarpSharp(depth=5).Sharpen(0.5), KNLMeansCL(d=2, a=2, h=4.0, channels="UV").aWarpSharp(depth=15).Sharpen(0.7))
-
Thank you very much everyone for the help
The results are very good, as I am used to using STAXRIP, I have to spend more time learning about AviSynth and Virtual Dub.
I am doing the initial tests with http://www.infognition.com/VideoEnhancer/ and the Film Dirt Cleaner filter. I hope to try everything you have recommended.
Greetings friends -
@jagabo, with what application have you compressed that avs script and have you obtained such a good result?
I have tried to load some plugin in STAXRIP but it gives me errors especially RemoveDirt and I can't move forward to test your script.
I'm quite a newbie to scripting and other compression topics, so I'm asking you, thanks. -
For that video I used 32 bit AviSynth+ and the x264 command line encoder. Put this in a batch file and you can drag/drop avs script onto it for encoding:
Code:start /b /low "x264" "g:\program files\x264\x264-32bit.exe" --preset=slow --crf=18 --keyint=50 --sar=12:11 --colormatrix=smpte170m --stitchable --output "%~1.mkv" "%~1"
32 bit AviSynth+ was used mostly for the deringing filter in Mpeg2Source(... CPU2="ooooxx") -- it isn't implemented in the 64 bit version.
There are many versions of RemoveDirt. The one I used is attached. I believe it requires RGTools and RemoveDirt.dll. Maybe others too.
Instead of dehalo_alpha() try using FineDehalo(). It does less damage while still fixing most of the halos. Also try adding Santiag() to smooth out the aliased edges.
Code:Mpeg2Source("Title_t01_corregir.d2v", CPU2="ooooxx", Info=3) Crop(10,0,-6,-0) RemoveDirt(limit=50, _grey=false) vInverse() src = last Santiag(2,0) FineDehalo(rx=2.5, ry=2.5) MergeChroma(KNLMeansCL(d=2, a=2, h=2.0, channels="Y").aWarpSharp(depth=5).Sharpen(0.5), KNLMeansCL(d=2, a=2, h=4.0, channels="UV").aWarpSharp(depth=15).Sharpen(0.7))
-
I found Spotless() to be very helpful for repairing such cases.
Below is with default parameters for spotless()
Code:MPEG2Source("Title_t01_corregir.d2v") spotless()
Last edited by Sharc; 24th Aug 2021 at 12:21.
-
I hadn't used Spotless() in the past but I tried it today. Generally it removed more spots than RemoveDirt() or RemoveDirtMC(). In a few places it didn't remove a spot that RemoveDirt() did. And a few places it removed something that wasn't a spot. Overall I think Spotless() worked better. And oddly, using a weak RemoveDirt(20) after Spotless() removed some of the spots that Spotless() left behind.
Code:Mpeg2Source("Title_t01_corregir.d2v", CPU2="ooooxx", Info=3) Crop(10,0,-6,-0) src = last Spotless() RemoveDirt(20) Santiag(2,0) FineDehalo(rx=2.5, ry=2.5) MergeChroma(KNLMeansCL(d=2, a=2, h=2.0, channels="Y").aWarpSharp(depth=5).Sharpen(0.5), KNLMeansCL(d=2, a=2, h=4.0, channels="UV").aWarpSharp(depth=15).Sharpen(0.7)) StackHorizontal(src, last)
-
I like Spotless too, and have pretty much replaced RemoveDirtMC and RemoveSpotsMC3X with it now. I clean videos pretty thoroughly to prepare them for YouTube's low bitrate compression.
-
I see that there are so many versions of programs that it is a little crazy. I have tried virtualdub2 and I see that it supports VDF Filters and that when I pass a DLL filter it gives me an error and I no longer know what process to do.
The filters that you comment: Spotless and Removedirt, I have not been able to test them because I do not know in what format and how I should use them, I do not know if they are DLL or if they are VFD, as I mentioned I am quite a newbie and I am learning at full speed , Hahaha.
Greetings and thanks again to all of you who are participating. -
Film Dirt Cleaner is a VirtualDub filter. It appears to be available only in a 32 bit version. To use it you will need to use 32 bitVirtualDub2. Put dirtcleaner.vdf in VirtualDub2's plugins32 folder. Once you've done that start 32 bit VirtualDub2 (VirtualDub.exe, not VirtualDub64.exe) and:
1) Open your video with File -> Open Video File...
2) Select Video -> Filters...
3) From the Filters dialog press the Add... button.
4) From the Add Filters dialog double click on Film Dirt Cleaner (or single click and press the OK button).
5) Adjust the sliders to your liking. Unfortunately, that filter doesn't have a live preview. So start with the defaults.
6) Close the Film Dirt Cleaner dialog by pressing OK.
7) Close the Filters dialog by pressing OK.
Back at the mail VirtualDub2 window you can see the result of the filter in the output pane.
The rest of the discussion is about AviSynth, a text script driven filtering system. You create scripts with a text editor like NotePad then View the results in an editor like VirtualDub2. You open the script in VirtualDub2 by drag/dropping it onto ViritualDub2 or with File -> Open Video File... within VirtualDub2. VirtualDub2 also has a built in AVS script editor. Or you can use a dedicated AviSynth script editor like avspmod, which has a built in preview function.
AviSynth+ and AviSynth links:
https://avs-plus.net/
https://avs-plus.net/get_started.html
http://avisynth.nl/index.php/External_filters
http://avisynth.nl/index.php/Getting_started
http://avisynth.nl/index.php/First_script
AviSynth(+) is difficult to get started with. But it's one of the most advanced and powerful tools for filtering and crude editing. -
Very well explained everything @jagabo
I have managed to do my first tests with the dirtcleaner.vdf, obtaining very similar tests to yours, with good quality and cleanliness, I generate a large AVI. Then I use STAXRIP for the final finish, codec and size which is easier for me now. I get a very good result.
The subject of AviSynth is a pending subject for me and with time I will try to catch up.
Just one last question, abusing your generosity, is there a VDF filter to focus the VIDEO a little after cleaning? With that step, it would be perfect for me.
Thank you very much for sharing your knowledge with all of us.
Greets and a hug -
You might have to explain what you mean by "focus". Sharpen, maybe? Something else?
-
You can export directly from VirtualDub2 with the codecs and container you are likely using in Staxrip.
VirtualDub(2) has a built in sharpen filter. There are lots of third party sharpening filters available for VirtualDub. Including a warpsharp filter like I used in my processing. Here's one site with several sharpen filters:
http://www.infognition.com/VirtualDubFilters/sharpen.html
And other filters there:
http://www.infognition.com/VirtualDubFilters/
http://www.infognition.com/VDFilterPack/
If you search you will find others. -
-
Just for the fun of it: Vapoursynth with QTGMC(fast) + 4xDespot + DPIR with strength 10
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
-
Hello again @Selur
Could you pass the Vapoursynth script with which you created such good compression?
Greetings -
The script I used should be:
Code:# Imports import os import sys import ctypes # Loading Support Files Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll") import vapoursynth as vs # getting Vapoursynth core core = vs.core # Import scripts folder scriptPath = 'I:/Hybrid/64bit/vsscripts' sys.path.insert(0, os.path.abspath(scriptPath)) # Loading Plugins core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/EEDI3.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/libmvtools.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/scenechange.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll") core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll") # Import scripts import lostfunc import havsfunc # source: 'C:\Users\Selur\Desktop\Title_t01_corregir.mkv' # current color space: YUV420P8, bit depth: 8, resolution: 720x576, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: top field first # Loading C:\Users\Selur\Desktop\Title_t01_corregir.mkv using LWLibavSource clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/Title_t01_corregir.mkv", format="YUV420P8", cache=0, prefer_hw=0) # making sure input color matrix is set as 470bg clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited") # making sure frame rate is set to 25 clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1) # Setting color range to TV (limited) range. clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1) # setting field order to what QTGMC should assume (top field first) clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # Deinterlacing using QTGMC clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True) # new fps: 25 # make sure content is preceived as frame based clip = core.std.SetFieldBased(clip, 0) clip = clip[::2] # Denoise using DeSpot clip = lostfunc.DeSpot(o=clip) clip = lostfunc.DeSpot(o=clip) clip = lostfunc.DeSpot(o=clip) clip = lostfunc.DeSpot(o=clip) # cropping the video to 694x572 clip = core.std.CropRel(clip=clip, left=16, right=10, top=2, bottom=2) from vsdpir import DPIR # adjusting color space from YUV420P8 to RGBS for vsDPIRDenoise clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, matrix_in_s="470bg", range_s="limited") # denoising using DPIRDenoise clip = DPIR(clip=clip, strength=10.000, device_index=0) # resizing to compensate the PAR clip = core.fmtc.resample(clip=clip, kernel="spline16", w=704, h=544, interlaced=False, interlacedd=False) # adjusting output color from: RGB48 to YUV420P10 for x265Model clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, matrix_s="470bg", range_s="limited") # set output frame rate to 25.000fps clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1) # Output clip.set_output()
I used Hybrid with a special add-on to use DPIR.
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
Thanks for the help, your time and your work @Selur. I am going to have to learn many things, I am a newbie to these compression systems and starting from scratch costs a lot, since you have a very advanced level of use of Vapoursynth.
Good weekend ... I'll spend it practicing and learning -
Note that the scripts do the cleaning, sharpening, etc. The compression is done by the encoder. Selur used x265 at crf 18 and what looks like the medium preset with maybe a few tweaks.
-
jagabo is correct, I probably used:
Code:x265 --input - --output-depth 10 --y4m --profile main10 --ctu 32 --limit-modes --no-early-skip --no-open-gop --opt-ref-list-length-pps --crf 18.00 --opt-qp-pps --cbqpoffs -2 --crqpoffs -2 --nr-intra 100 --nr-inter 100 --qpfile GENERATED_QP_FILE --limit-refs 0 --ssim-rd --psy-rd 2.50 --rdoq-level 2 --psy-rdoq 10.00 --aq-mode 0 --deblock=-1:-1 --limit-sao --no-repeat-headers --range limited --colormatrix bt470bg --output OUTPUTFILE
users currently on my ignore list: deadrats, Stears555 -
Hello again @Selur
I have installed and tested Hybrid, I have managed to add two of the filters that you were telling me to the project, QTGMC (fast) and 4xDespot, with very good results.
I have not managed to install the VSDPIR module and therefore I have not been able to apply DPIR, mainly because I do not know how to do this step through Hybrid, could you tell me how to do it?
In the end, since I don't know how to perform that step (install the VSDPIR module), I don't know if I should edit the script or just installing the module would give me the DPIR Filter option available in the filters column .... I'm a bit lost, sorry.
Greetings -
To use VSDPIR you require torchpy and a few other things, like I wrote before I got an addon for Hybrid which adds VSGAN, VSDPIR, FFDNET and VSRealESRGAN support to Hybrid, downside is that the addon is a ~9GB download (~14GB extracted) iirc.
Note that using pytorch&co also requires an NVIDIA graphics card.
-> will send you a link
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
@shockaholic: send you a link via pm
Cu Selurusers currently on my ignore list: deadrats, Stears555
Similar Threads
-
Restore/upscale Poorly Mastered Anime DVD -- Please help!!
By laserbolt5 in forum RestorationReplies: 10Last Post: 21st Jan 2021, 19:12 -
Does CGI animation require more or less bitrate than Hand Drawn animation?
By killerteengohan in forum Newbie / General discussionsReplies: 13Last Post: 29th Mar 2019, 10:50 -
Can someone help me restore this
By Starfx in forum RestorationReplies: 10Last Post: 13th Aug 2017, 12:33 -
Anyway to restore all frames from NTSC>PAL animation
By nick1977 in forum RestorationReplies: 39Last Post: 23rd May 2017, 06:01 -
Creating VFR encodes from NTSC animation DVD
By ChewieLewis in forum Video ConversionReplies: 10Last Post: 8th Jan 2017, 17:18