VideoHelp Forum
+ Reply to Thread
Results 1 to 15 of 15
Thread
  1. Hi there. I am attempting to restore these old DVDs of a UK Show but am running into some issues with my inexperience. I am attempting to only restore certain skits from this TV series that look like they were from a Film source rather than a true interlaced source since they don't look like they're interlaced when I play the file in AvsPmod, before any filters. From what I can tell there's a good amount of mosquito noise and ghosting going on in the segments I'm trying to extract. I tried to remove them with the following but the ghosting is still present.
    Code:
    mpeg2source("ULTIMATE_FAST_SHOW_COLLECTION_D2\VIDEO_TS\VTS_03_1.d2v", cpu=4, info=3)
    ConvertToYV12()
    TFM()
    LSFMod(Strength=75, Smode=5, Smethod=4, secure=True,preblur="FFT3Dfilter(sigma=4,plane=0)")
    GradFun3()
    LimitedSharpenFaster(ss_x=1.5, ss_y=1.5, dest_x=last.width, dest_y=last.height, Smode=4, strength=50, radius=2, Lmode=1, wide=false, overshoot=1, edgemode=0, special=true, exborder=0)
    ColorMatrix(mode="Rec.601->Rec.709")
    nnedi3_rpow2(rfactor=2,cshift="Spline36Resize",fwidth=1920,fheight=1536)
    The above gives the best result but I've also tried this as well which may be incorrect as it's not interlaced
    Code:
    mpeg2source("ULTIMATE_FAST_SHOW_COLLECTION_D2\VIDEO_TS\VTS_03_1.d2v", cpu=4, info=3)
    ConvertToYV12()
    QTGMC( Preset="Slower" )
    SRestore(frate=25)
    LSFMod(Strength=75, Smode=5, Smethod=4, secure=True,preblur="FFT3Dfilter(sigma=4,plane=0)")
    GradFun3()
    LimitedSharpenFaster(ss_x=1.5, ss_y=1.5, dest_x=last.width, dest_y=last.height, Smode=4, strength=50, radius=2, Lmode=1, wide=false, overshoot=1, edgemode=0, special=true, exborder=0)
    ColorMatrix(mode="Rec.601->Rec.709")
    nnedi3_rpow2(rfactor=2,cshift="Spline36Resize",fwidth=1920,fheight=1536)
    I saw that using QTGMC was recommended for its noise reduction which does give nice results but artifacts in some places whereas the first script gives a noisier but cleaner result.

    I've attached a sample below of a bit of the interlaced stuff (not for restoration, just there to show what's on the DVD, if useful) and then the next scene is what I'd like to clean up (film source?) which isn't interlaced as I can see.

    What would you recommend for this scene? Does it need deinterlacing? I notice that the hair looks like it's being blended together when I run either filter above and that there's major ghosting on edges like the chair. Is it possible to make the edges sharp? I was able to get them to look much better with WarpSharp but that seems to make everything too cartoony (and isn't listed on the Avisynth External Filters page anymore). Also what would you recommend for the periodic white spots that appear throughout or the fuzzy edges with skewed washed out color? Is that odd that the edges are soft if it's a film source? I usually see that with VHS to DVD transfers, not film.
    Image Attached Files
    Last edited by camjac251; 2nd Nov 2018 at 00:13.
    Quote Quote  
  2. I made a bit of progress with the restoration although I think I'm missing a step somewhere. I had a thread on Doom9 but since it's currently down, I'll copy it here.

    This is the script I'm currently using
    Code:
    mpeg2source("ULTIMATE_FAST_SHOW_COLLECTION_D2\VIDEO_TS\VTS_03_1.d2v", cpu=0, info=3)
    ConvertToYV12(matrix="Rec601", interlaced=true)
    Deblock_QED(quant1=24, quant2=26, aOff1=1, aOff2=1, bOff1=2, bOff2=2, uv=3)
    QTGMC( Preset="Slow", FPSDivisor=2, TR2=3 )
    TemporalDegrain2()
    FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=1.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
    LimitedSharpenFaster(ss_x=1.6,ss_y=1.0,Smode=3,strength=100,soft=0,edgemode=2,wide=false)
    nnedi3_rpow2(rfactor=2, nsize=6, nns=4, cshift="Spline36Resize")
    GradFun3()
    ColorMatrix(mode="Rec.601->Rec.709")
    Trim(28261,30009)
    I have some issue going on in QTGMC, is anyone else able to recreate it possibly?

    If I try to use NoiseProcess=2 in my QTGMC settings, the footage will end up looking dark and washed out, like it's a different colorspace.
    This is the script I'm using in this example below
    Code:
    mpeg2source("ULTIMATE_FAST_SHOW_COLLECTION_D2\VIDEO_TS\VTS_03_1.d2v", cpu=0, info=3)
    ConvertToYV12(matrix="Rec601", interlaced=true)
    QTGMC(Preset="Slower", FPSDivisor=2, ShowSettings=true)
    ColorMatrix(mode="Rec.601->Rec.709")
    Trim(28261,30009)
    and this is with NoiseProcess=2 added to QTGMC


    I've tried disabling the ColorMatrix filter, ConvertToYV12, tried RGB as well. I did a clean install of the filters required for QTGMC as well except redownloading QTGMC since it's not available with Doom9 being down right now.

    Is there a step I'm missing that's causing this issue?
    Last edited by camjac251; 5th Nov 2018 at 22:12.
    Quote Quote  
  3. It might be from using an older masktools2.dll or mvtools2.dll version . Try updating those
    If you have something like mt_masktools-26.dll in the plugins directory , move that to another folder . The pinterf branch is "masktools2.dll"
    Quote Quote  
  4. Actually it's from a newer version of those plugins with avs x86 . avs x64 works ok . I just updated myself, and now I can replicate your "dark" problem with QTGMC NoiseProcess=2 , whereas before with slightly older .dll's it was ok . I'll try to figure out exactly which one locally, and eventually file a bug report

    Which avisynth version are you using ?


    EDIT:

    It's not related to mvtools2 .

    It looks like masktools2 2.2.14 is the last version for x86 that didn't exhibit the problem, at least for me. My avs x86 is "avisynth classic" , avs x64 is avs+mt

    masktools2-v2.2.14 x86 => ok
    masktools2-v2.2.16 x86 => dark
    masktools2-v2.2.17 x86 => dark
    masktools2-v2.2.18 x86 => dark
    .
    .

    (For x86 I only tested the x86 versions, not the x86_xp versions)
    Last edited by poisondeathray; 5th Nov 2018 at 23:04.
    Quote Quote  
  5. Originally Posted by poisondeathray View Post
    Which avisynth version are you using ?

    I'm using Avisynth+ 32-bit
    Quote Quote  
  6. And did you try 2.2.14? did it "fix" the "dark" problem for you ?
    Quote Quote  
  7. I'm trying it now and get an error. Script error: mt_lut does not have a named argument "use_expr" SMDegrain.avsi line 737 QTGMC.avsi line 494.

    It might be that I'm using the latest version of SMDegrain. I think that requires at least 2.2.15 of MaskTools with what it shows in the commented section of the script.

    I might wait until doom9 comes back online since there may be a fix on the QTGMC thread already.
    Quote Quote  
  8. These are the ones that work ok for x64 for me . I don't know if there are newer ones.

    QTGMC_3.361s
    masktools2-v2.2.18
    smdegrain_v3.1.2.100s

    It "feels" like some masktools2 bug or version incompatibility to me; since older x86 versions work with their matching older versions
    Quote Quote  
  9. Originally Posted by poisondeathray View Post
    These are the ones that work ok for x64 for me . I don't know if there are newer ones.

    QTGMC_3.361s
    masktools2-v2.2.18
    smdegrain_v3.1.2.100s
    Thank you for pasting those. I had masktools2 and smdegrain up to date through the wiki and GitHub but QTGMC wasn't. I was unable to find out the current version of it until I came across a forum post on another site linking to https://pastebin.com/vm7S4PUS which is the latest QTGMC version.

    I was on QTGMC 3.358 before updating. Using the latest versions of its dependencies as well and the color issue is now fixed. Also I think you may need masktools 2.2.17 or higher according to the readme at the top of the QTGMC script, older versions may not work.
    Quote Quote  
  10. I think I created something that looks as good as it can get.

    I found out that the video isn't telecine'd or interlaced but just has some combing left over on a few frames and is sped up from 23.976 to 25fps. I'm using TemporalDegrain2 now which I like better than QTGMC's progressive input since it doesn't interpolate the motion which can cause an unnatural look.

    This is what I'm currently using

    Code:
    video=mpeg2source("VTS_03_1.d2v", idct=5, iPP=false, cpu=0, info=3, i420=true)
    audio=FFAudioSource("VTS_03_1 T80 2_0ch 192Kbps DELAY 1000ms.ac3").DelayAudio(1).Normalize(0.98)
    AudioDub(video,audio)
    Trim(28261,30009)
    Unblock()
    assumefps(23.976, sync_audio=True)
    Crop(16,0,692,574)
    ConvertToYV12(matrix="Rec601", interlaced=false)
    ColorMatrix(mode="Rec.601->Rec.709")
    ConvertToYV12(matrix="Rec709", interlaced=false)
    vInverse()
    #ColorYUV(autogain=true,autowhite=true)
    autolevels()
    TemporalDegrain2(degrainTR=1,postFFT=3,postSigma=4)
    ConvertToRGB(matrix="Rec709", interlaced=false)
    #GamMac(LockChan=-2,GrnMul=.95,BluMul=.74,Show=false) # Not really sure it looks that good so its disabled atm
    ConvertToYV12(matrix="Rec709", interlaced=false)
    ContinuityFixer(top=2,bottom=1,left=1,right=2) # Does anything better exist?
    #Spline64Resize(764,574) # kept here just in case
    nnedi3_rpow2(fwidth=1528,cshift="Spline64ResizeMT", rfactor=2, nsize=4, nns=4, qual=1, etype=0, pscrn=2, threads=0, csresize=true, mpeg2=true, threads_rs=0, logicalCores_rs=true, MaxPhysCore_rs=true, SetAffinity_rs=false, opt=3)
    Sharpen(0.5) # Doesn't really add much
    I've tried to use GamMac after autolevels due to the highlights not being completely white and hopefully remove the warm cast on this film source but it ends up looking bad toward the beginning of the video. Sharpening the result has also been difficult.

    Here's a newer sample hosted on Mediafire this time and is longer as well http://www.mediafire.com/file/5iw9lnqg6b6cj07/VTS_03_1.demuxed.m2v
    Quote Quote  
  11. I think your TemporalDegrain2() settings are too strong. There's a lot of ghosting in moving areas. I'm not familiar with that filter so I used TemporalDegrain() with moderate settings instead.

    I generally don't like using automatic levels adjustments. You can see that autolevels() is blowing out out brights in this scene. But I left it in.

    In your PM you asked for help with sharpening and color correction...

    For sharper upscaling you want to sharpen the image a bit before upscaling. And sharpening will exacerbate the existing VHS oversharpening halos so you want to remove those first. Halo removal can be very damaging so you may want reduce the settings a bit. The nnedi3_rpow2() I have didn't have some of the options in your script so I removed them. I don't know if those additional options help or not.

    Color correction is difficult because there's no way to know exactly what this single scene should look like. It's intentionally very warm. Guessing that some of the highlights in the background are supposed to be white I decreased the gain on the red channel a bit, and increased the gain on the blue channel.

    I think this looks a little better:

    Code:
    Mpeg2Source("VTS_03_1.demuxed.d2v", CPU2="ooooxx", Info=3) 
    
    Unblock()
    assumefps(23.976, sync_audio=True)
    Crop(16,0,692,574)
    ColorMatrix(mode="Rec.601->Rec.709")
    vInverse()
    autolevels()
    
    FineDehalo(rx=3.0, ry=1.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=1.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
    FineDehalo(rx=5.0, ry=1.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=1.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)
    
    TemporalDegrain(SAD1=200, SAD2=150, sigma=8)
    
    MergeChroma(aWarpSharp2(depth=5), aWarpSharp2(depth=15))
    Sharpen(0.3, 0.0)
    
    ConvertToRGB(matrix="Rec709", interlaced=false)
    RGBAdjust(r=0.99, b=1.10)
    ConvertToYV12(matrix="Rec709", interlaced=false)
    nnedi3_rpow2(fwidth=1528,cshift="Spline64Resize", rfactor=2, nsize=4, nns=4, qual=1, etype=0, pscrn=2, threads=0, opt=2)
    aWarpSharp(depth=5)
    Sharpen(0.3)
    Last edited by jagabo; 8th Jan 2019 at 18:00.
    Quote Quote  
  12. Wow, those halos vanished. My attempt with FineDehalo was not as good as this, this is great. Thank you.

    TemporalDegrain2 is available over on the D9 forums and seems to remove more noise while keeping the detail. The script file has a little help menu too which is nice.


    Do you have any recommendations for a chroma denoiser for the analog noise in the video. It almost looks like rainbows in the window, where it's bleeding color noise from yellow to pink. I wonder if I filtered that out first, all of the other filters would look better. I tried CCD in Vdub but it didn't really remove it.
    Is it also possible to get rid of this bloom effect on the video after the dehalo, with the edges of highlights glowing almost?

    I've made a comparison between 4 stills created from the script. Source, Old Script, New Script, and New Script with TemporalDegrain2(degrainTR=1) instead.
    Quote Quote  
  13. When I originally used your script with TemporalDegrain2 I had an old version (2.1.2) of the filter. It was generating ugly temporal blending artifacts, hence my original remark (for example, when they guy turned from profile to face the camera his face was very distorted). Thinking maybe an update would fix the problem I downloaded a more recent version 2.2.0. That was generating script errors so I updated the required plugins that were out of date. I never was able to get the 2.2.0 version of TD2 working. But when I went back to 2.1.2 the problem I had originally seen was gone. The older version of TemporalDegrain2 was working better than the even older TemporalDegrain so I'll probably switch to that in the future.

    I'm not sure what you mean about rainbow noise in the window. You can try using a much stronger noise reduction filter on the chroma only.
    Quote Quote  
  14. Are you using 64-bit or 32-bit Avisynth? I am not sure about 64-bit, but 32-bit work for me on the latest TD2 version. I don't use any mod versions of the plugins for use in TD2.

    If you look at a frame in the sample, do you see color noise in the highlights, or the white shirt? It's not really removed with TD2 since its chroma/color noise I think. I'm wondering if there could be a way to remove it without the detail loss.

    Here's a sample frame from maybe the original scan (although on the DVD, so compression still applies) before the final that's in the sample. I can't use this because it's only offered in fragments and missing parts unlike the sample. Its more apparent here though of the type of noise that is still in the sample but not as strong.
    Quote Quote  
  15. This is the final script I'm ending up using if anyone would like to try it on their own DVD sources.

    Code:
    video=mpeg2source("VTS_02_2.d2v", idct=5, iPP=false, cpu=0, info=3, i420=true)
    audio=FFAudioSource("VTS_02_2 T80 2_0ch 192Kbps DELAY -120ms.ac3").DelayAudio(-0.120).Normalize(0.98)
    AudioDub(video,audio)
    Trim(1086,2915)
    AssumeTFF().TFM()
    LoadVirtualDubPlugin ("VirtualDub-1.10.4\plugins32\MSU_SmartDeblock_0.8.vdf", "MSU_Smart_Deblocking",0)
    ConvertToRGB32(interlaced=false)
    MSU_Smart_Deblocking(0, 1, 1, 1)
    ConvertToYV12(matrix="Rec601", interlaced=false)
    assumefps(23.976, sync_audio=True)
    #RoboCrop()
    Crop(16,2,692,570)
    vinverse()
    TemporalDegrain2(degrainTR=1,postFFT=3,postSigma=1)
    #ContinuityFixer_ContinuityFixer(top=0, left=1, right=1, bottom=0, radius=1)
    #MergeChroma(aWarpSharp2(depth=5), aWarpSharp2(depth=15))
    Sharpen(0.3, 0.0)
    ColorMatrix(mode="Rec.601->Rec.709")
    #ConvertToRGB(matrix="Rec709", interlaced=false)
    #RGBAdjust(r=0.92, g=0.92, b=1.15)
    autolevels()
    #nnedi3_rpow2(fwidth=1524,cshift="Spline64Resize", rfactor=2, nsize=4, nns=4, qual=1, etype=0, pscrn=2, threads=0, opt=2)
    #aWarpSharp(depth=5)
    Sharpen(0.3)
    For upscaling, I'm processing the image sequence export using Topaz Gigapixel which has sharper results and good noise reduction than using CCD and nnedi3.
    There's still a dithering problem which I'm unable to fix.
    Quote Quote  



Similar Threads

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