VideoHelp Forum




+ Reply to Thread
Results 1 to 6 of 6
  1. Just met with weird inconsistent results using srestore (IMHO).
    I have telecined NTSC stream, that I've already mentioned in one of my previous posts (Restoring telecined video).
    Here the another piece from the same program: https://drive.google.com/file/d/1ZO0V29X0uxzG3bKvqoydhkIvmg2PD9EC/view?usp=sharing
    There are clearly noticeable distortions in certain places.
    I'm using the following Avisynth script:

    FFmpegSource2("face2_10bit.mov")
    #LSMASHVideoSource("face2_10bit.mov")
    #LWLibavVideoSource("face2_10bit.mov")
    ConvertToRGB24()
    ConvertToYV12()
    # Just trying to trat top and bottom parts separately (doesn't work)
    #top = Crop(0,0,-0,240).TFM().TDecimate()
    #bot = Crop(0,240,-0,240).QTGMC(preset="fast").SRestore(frate=23.976)
    #stackVertical(top, bot)

    Crop(0,4,-0,-2).QTGMC(preset="fast").SRestore(frate=23.976)
    TurnLeft()
    DeStripe(2,3,16)
    DeStripe(2,2,16)
    DeStripe(2,1,12)
    TurnRight()
    #KillerSpots()
    Spotless()
    CropResize(640,360, 14,0,-6,0, InDAR=0.8, OutDAR=1.0, Info=false)
    FineDehalo()

    So, the result of that script in approx 7 cases from 10 (very approximately) produces video, preserving existing distortions: https://drive.google.com/file/d/1hHVAFl2g4eD7bbj2RHoXR2agwCsdq_HD/view?usp=sharing

    But (there is the mystery) in some random cases preview in AvsPmod and VirtualDub2 shows nice and clean non distorted frames.
    Attempt to output that video (with non distorted preview) still gives video with distorted frames.
    So, once I've managed to save just frame by frame non-distorted preview from AvsPmod :https://drive.google.com/file/d/1bFoYUhqWPNHmZEodeAvH-X1GMdGmhDvF/view?usp=sharing.
    Have no clue what could be the case of such inconsistent result.
    Such things happen on both 32bit and 64bit Avisynth versions.
    Any suggestion greatly appreciated.
    Last edited by semel1; 5th Feb 2021 at 22:22. Reason: Add info
    Quote Quote  
  2. srestore requires linear access an you cannot preview by jumping around or you'll get different results

    If you want to preview, you have to go back about 10-20 frames then seek frame by frame
    Quote Quote  
  3. The problem is that this is a shot between two others:https://drive.google.com/file/d/1WaKfFmu-lUn7-xNeQsLokfbzDOVQCwnv/view?usp=sharing
    Attempt to "go back about 10-20 frames" brings me to the previous shot, and gives "stable" distorted image as mentioned above.
    The question is how to get sure distortion free result (see above), that sometime I "mysteriously" manage to get?
    Last edited by semel1; 6th Feb 2021 at 09:33.
    Quote Quote  
  4. The matches are consistent if you go back 20 frames. If they give distortion, that's consistent, they always give the same distortion if you seek linearly.

    The inconsistent behaviour occurs when you seek non linearly (forward/back). So you can try or cutting up the clip with different start points - that's how you mysteriously get different results - different matches are used

    srestore is not perfect, sometimes clip is not solvable.

    You might have to do some manual rotowork, masking, compositing
    Quote Quote  
  5. Finally managed to get "mystery" result in100% cases without involving "... manual rotowork, masking, compositing" ... etc. .
    1st - performed all necessary filtering exclude srestore and output to intermediate file.
    2nd - load another script with intermediate file as source and srestore only in VirtualDub2
    3rd - play whole video from the beginning till the end and then go back to the beginning.
    From that point you get perfect (non distorted) stream that could be saved.
    P.S. Such approach works on the single scene only.

    Ideal solution(IMHO) could be if we can detect scene changes and perform srestore solving for each scene ("nullifying" previous "solvers) , keeping solving results for each scene in some kind of "indexing" file/memory and after that perform final output using these solving results.
    Just an idea - I don't know if it even possible.
    Last edited by semel1; 7th Feb 2021 at 13:29.
    Quote Quote  
  6. Maybe using something like:
    Code:
    Preroll(video=XX,audio=0)
    with XX being current framerate (or similar) would work, so that there are always 20 frames cached before sRestore is used.
    (http://avisynth.nl/index.php/Preroll)

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



Similar Threads

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