VideoHelp Forum
+ Reply to Thread
Results 1 to 11 of 11
Thread
  1. Member
    Join Date
    May 2011
    Location
    Netherlands
    Search PM
    Hello everyone. My brother filmed some 8mm film of our parents on a paper screen with his DSLR. This was shot at 1080p, 24fps or 30fps. I am now trying to filter these movies to surprise my parents with a semi-restored movie. I was really inspired by Freddy van der Putte's 'Power of Avisynth', and brought together filters in an Avisynth script to make the film a little bit better watchable.

    Below are two examples of the original (left) and filtered outcome (right).

    Please find attached the

    Original Video
    My avisynth script
    Before-and-after-video

    Click image for larger version

Name:	0142.jpeg
Views:	445
Size:	396.5 KB
ID:	28067Click image for larger version

Name:	0040.jpeg
Views:	511
Size:	371.5 KB
ID:	28068

    I do not expect magic, like Freddy did, but of course want to come somewhat close
    I would like to stabilize these videos, enhance the contrast and colors, and get rid of some hairs and spots. I do not need to get super clean results, as I think some 8mm film effects has its charm.

    I am not so happy with my result, as
    1. there is some ghosting induced,
    2. I still have lots of hairs and big spots visible,
    3. and I loose more detail then I would love.

    I have been tweaking the parameters quite a lot, but this is the best result I could get so far. I am wondering if people here could kindly advice me with their experience, to get an even better result? Many thanks!!
    Last edited by elbenno; 21st Oct 2014 at 14:43.
    Quote Quote  
  2. Originally Posted by elbenno View Post
    Hello everyone. My brother filmed some 8mm film of our parents on a paper screen with his DSLR. This was shot at 1080p, 24fps or 30fps ... <snip> ... I am not so happy with my result, as

    1. there is some ghosting induced,
    2. I still have lots of hairs and big spots visible,
    3. and I loose more detail then I would love.

    ... <snip> ... I am wondering if people here could kindly advice me with there experience, to get an even better result? Many thanks!!
    Fred's scripts require that the film transfer be "frame accurate." This means that each frame in your video contains exactly one frame of film. Unfortunately, when you point a video camera at a movie screen, and simply film what is being projected, many of your video frames will contain a blend of adjacent frames of film. Some will contain a duplicate of the previous frame. The proportion of blends, duplicates, and clean frames will depend entirely on the ratio of the speed of the projector (typically 16 or 18 fps for a silent projector, and 24 fps for a sound projector) and the speed of your filming which you say was either 24 or 30 fps, progressive.

    So, you will not be able to use any of "VideoFred's" restoration scripts, or my modified versions of his work.

    However, one of the gurus over at doom9.org, Didée, helped someone develop a way to recover something that approaches a frame-accurate transfer from what you get if you just film the movie screen. The person who he helped was so grateful, that he uploaded to doom9.org all the things needed to do this recovery. You'll find his thread here:

    The power of Avisynth: salvaging "botched" transfers of old 8mm films to DVD

    While I do my own film transfers, and they are all frame accurate, someone gave me a film transfer that had been done in the same manner as yours, and I had a reason to try out his script. It worked pretty well.

    So, what you'll need to do is first run your transfer through this recovery script, and then take the results of that script and run that through VideoFred's restoration script.

    If you want to read about how the recovery script was created, you can start at this point in VideoFred's long film restoration thread. I think you will find it useful to read 2-3 pages from this point forward, because it will help you understand the issues you will face:

    Developing a Frame Accurate Recovery Script
    Quote Quote  
  3. you could try this to sharpen it:
    ConverttoRGB32(matrix="rec709",interlaced=false)
    LoadVirtualDubPlugin("C:\Program Files (x86)\VirtualDub\plugins\msu_sharpen.vdf", "MSUSmartSharpen", 1)
    MSUSmartSharpen(2) # from 0 to 5 (mad)
    converttoyv12(matrix="Rec709",interlaced=false)

    more here
    Sharpen first then remove dirt dust etc..
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  4. Member
    Join Date
    May 2011
    Location
    Netherlands
    Search PM
    Thanks John. I will read into the post!
    Quote Quote  
  5. I was able to recover something pretty close to a real frame-accurate transfer. I then put that through my version of VideoFred's script. Here is a still shot of the result:

    Click image for larger version

Name:	Restored.jpg
Views:	984
Size:	51.6 KB
ID:	28070

    Here is the video:

    https://dl.dropboxusercontent.com/u/1561578/Restored.avi

    And here is the script I used:

    Code:
    Loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll")
    import("C:\Program Files\AviSynth 2.5\plugins\Srestore\srestore.avs")
    loadPlugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\mt_masktools-26.dll")
    loadPlugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\mt_masktools-25.dll")
    
    avisource("e:\fs.avi").assumefps(30).ConvertToYV12(interlaced=true)
    
    o=last
    
    o.bob(-.2,.6)
    SRestore(frate=12,cache=10)
    requestlinear()
    
    rest=last
    
    calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25)#.repair(rest,1).removegrain(11)
    calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25)
    
    LOP = calm.bicubicresize(480,270).bicubicresize(1920,1080,1,0)
    HIP = rest.bicubicresize(480,270).bicubicresize(1920,1080,1,0)
    HIP = mt_makediff(rest,HIP)
    mix = LOP.mt_adddiff(HIP,U=2,V=2)
    
    sup1=rest.msuper(levels=1)
    sup2=mix.removegrain(11).msuper()
    
    bv2=sup2.manalyse(isb=true, delta=2,blksize=16,overlap=8,DCT=5)
    bv1=sup2.manalyse(isb=true, delta=1,blksize=16,overlap=8,DCT=5)
    fv1=sup2.manalyse(isb=false,delta=1,blksize=16,overlap=8,DCT=5)
    fv2=sup2.manalyse(isb=false,delta=2,blksize=16,overlap=8,DCT=5)
    
    rest.mdegrain2(sup1,bv1,fv1,bv2,fv2,thSAD=640)
    Crop(320,16,-320,-100)
    LanczosResize(720,480)
    assumefps(18)
    This script did give me some out of bounds error messages in the video. This is due to the fact that my decimation ratio was probably more than SRestore can handle. An Srestore guru over at doom9.org will have to be consulted. A quick and dirty way to deal with it would be to first do a slight decimation, using tfm/tdecimate to get rid of the frames that are complete duplicates. That will leave fewer frames for Srestore to deal with.
    Quote Quote  
  6. Member
    Join Date
    May 2011
    Location
    Netherlands
    Search PM
    Thanks, themaster1, I really like the MSU filters, that sharpens nicely. One question though:
    1. why sharpen first, then remove the dirt? I always learned one should sharpen at the end only, as the dirt might be enforced?

    Wow, John, that is quite an impressive step forward. I am playing with your script now to see what I can make of it myself. I will put if forward at Doom9. Before I go there, I have three questions:

    2. How does one prevent the out of bounds error messages to appear on the exported video (as in your export it did not)? Like

    Click image for larger version

Name:	0000.jpeg
Views:	938
Size:	195.5 KB
ID:	28076

    3. Also, the script works here, accept for the denoising, my version of avisynth does not recognize the 'sup1' command (error "I don't know what sup1 means"). How can I fix this?

    4. You loose me at the denosing part, what is happening there? Temporal softening, a type of resizing(?) and then the actual denoising?

    calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.2 5)#.repair(rest,1).removegrain(11)
    calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.2 5)

    LOP = calm.bicubicresize(480,270).bicubicresize(1920,108 0,1,0)
    HIP = rest.bicubicresize(480,270).bicubicresize(1920,108 0,1,0)
    HIP = mt_makediff(rest,HIP)
    mix = LOP.mt_adddiff(HIP,U=2,V=2)

    sup1=rest.msuper(levels=1)
    sup2=mix.removegrain(11).msuper()

    bv2=sup2.manalyse(isb=true, delta=2,blksize=16,overlap=8,DCT=5)
    bv1=sup2.manalyse(isb=true, delta=1,blksize=16,overlap=8,DCT=5)
    fv1=sup2.manalyse(isb=false,delta=1,blksize=16,ove rlap=8,DCT=5)
    fv2=sup2.manalyse(isb=false,delta=2,blksize=16,ove rlap=8,DCT=5)

    rest.mdegrain2(sup1,bv1,fv1,bv2,fv2,thSAD=640)
    Quote Quote  
  7. why sharpen first, then remove the dirt?
    The sharpening is preparing the clip for better "deflickering" and not actually doing any sharpening.

    How does one prevent the out of bounds error messages to appear on the exported video (as in your export it did not)?
    Actually, mine did as well, I just cut out the frames where it happened. I already addressed this in my previous post: you'll have to consult an "SRestore guru" over at doom9.org, or will have to first do a slight decimation of the source, using TFM/TDecimate to remove a few of the duplicate frames so the decimation in SRestore isn't quite as high. I actually looked through the SRestore script to find out where the out of bounds error is happening. I then experimented with lower decimation values (you control this via the frate parameter). If you increase frate a little, the problem goes away, but you also end up still having some blended or duplicate frames, and having those will ruin your chances of getting good results with VideoFred's script.

    Also, the script works here, accept for the denoising, my version of avisynth does not recognize the 'sup1' command (error "I don't know what sup1 means"). How can I fix this?
    I would guess it probably has to do with the version of MVTools2 you are using, but that is just a guess.

    You loose me at the denosing part, what is happening there? Temporal softening, a type of resizing(?) and then the actual denoising?
    The whole point of this is to get rid of the flicker, not to denoise.

    You can get a LOT more information about this script from that link I provided (the link that takes you to the thread started by the person who wanted to share the script Didee created).
    Quote Quote  
  8. Member
    Join Date
    May 2011
    Location
    Netherlands
    Search PM
    Thanks again John. I will create a topic to discuss this at Doom9. Thanks for the help!!

    I will read the "Developing a Frame Accurate Recovery Script".
    Quote Quote  
  9. Banned
    Join Date
    Oct 2014
    Location
    Northern California
    Search PM
    Originally Posted by elbenno View Post
    My brother filmed some 8mm film of our parents on a paper screen with his DSLR.
    That is not really the way to capture this.

    I would recommend bringing to film to a professional firm they can capture it, it does not cost a lot of money and the results will be much better!
    Quote Quote  
  10. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    Is everyone too polite to say what an awful transfer this is? Only the centre of the image is in focus. I'm sure the image on the actual film is far better than this, and the transfer has irrecoverably lost most of the details and quality.

    Cheers,
    David.
    Quote Quote  
  11. Member
    Join Date
    May 2011
    Location
    Netherlands
    Search PM
    I have come to the same conclusion David, I have to contact my brother about this, to check if it is the lens of the projector.
    Quote Quote  
Visit our sponsor! Try DVDFab and backup Blu-rays!