VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 31
Thread
  1. 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
    Image Attached Files
    Quote Quote  
  2. Member
    Join Date
    May 2005
    Location
    Australia-PAL Land
    Search Comp PM
    I'll have a go: Virtual Dub Film Dirt Cleaner filter.
    Image Attached Files
    Quote Quote  
  3. 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?

    Greetings
    Last edited by Santojob; 23rd Aug 2021 at 12:20.
    Quote Quote  
  4. Member
    Join Date
    May 2005
    Location
    Australia-PAL Land
    Search Comp PM
    Yes, all done in Virtual Dub.

    The filter (32 bit) is here:

    http://www.infognition.com/dirtcleaner/

    and these are the settings I used:

    Image
    [Attachment 60402 - Click to enlarge]
    Quote Quote  
  5. 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))
    Image Attached Files
    Quote Quote  
  6. Member
    Join Date
    May 2005
    Location
    Australia-PAL Land
    Search Comp PM
    Not bad, Jagabo, not bad at all!
    Quote Quote  
  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
    Quote Quote  
  8. Originally Posted by jagabo View Post
    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))
    @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.
    Quote Quote  
  9. 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"
    Change the path to x264 to where it's installed on your computer.

    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 use VirtualDub2 to check my scripts before rendering. It has a handy avs script editor built in.
    Image Attached Files
    Quote Quote  
  10. 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()
    Image Attached Files
    Last edited by Sharc; 24th Aug 2021 at 12:21.
    Quote Quote  
  11. 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)
    This type of filtering is matter of compromises. Experiment with different settings and see what you like best.
    Image Attached Files
    Quote Quote  
  12. 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.
    Quote Quote  
  13. 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.
    Quote Quote  
  14. 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.
    Quote Quote  
  15. 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
    Quote Quote  
  16. You might have to explain what you mean by "focus". Sharpen, maybe? Something else?
    Quote Quote  
  17. Originally Posted by Santojob View Post
    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.
    You can export directly from VirtualDub2 with the codecs and container you are likely using in Staxrip.

    Originally Posted by Santojob View Post
    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.
    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.
    Quote Quote  
  18. Originally Posted by manono View Post
    You might have to explain what you mean by "focus". Sharpen, maybe? Something else?
    Ok sorry as my English is not good.

    I mean that after the final result and having left the video quite clean, I have the feeling that it is a bit out of focus and that it would improve even more by retouching that refocusing point.

    Thanks
    Quote Quote  
  19. Just for the fun of it: Vapoursynth with QTGMC(fast) + 4xDespot + DPIR with strength 10


    Cu Selur
    Image Attached Files
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  20. Originally Posted by Selur View Post
    Just for the fun of it: Vapoursynth with QTGMC(fast) + 4xDespot + DPIR with strength 10


    Cu Selur
    Excellent final result, I really like it. Thanks for your contribution, I will try to filter it according to your recommendations.

    Greetings
    Quote Quote  
  21. Hello again @Selur

    Could you pass the Vapoursynth script with which you created such good compression?

    Greetings
    Quote Quote  
  22. 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()
    (might have used a little bit different crop-values)
    I used Hybrid with a special add-on to use DPIR.

    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  23. 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
    Quote Quote  
  24. 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.
    Quote Quote  
  25. 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
    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  26. 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
    Quote Quote  
  27. 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 Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  28. Member
    Join Date
    Jul 2005
    Location
    California
    Search Comp PM
    @Selur

    Would it be possible for me to get a link for the Hybrid addon also at your convenience?

    Thanks!
    Quote Quote  
  29. The same AviSynth script as in post #9 except the StackHorizontal() was removed and Spline36Resize(704,528) was added at the end. Encoded with Intel QSV h.265 encoder.
    Image Attached Files
    Quote Quote  
  30. @shockaholic: send you a link via pm

    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!