VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 52
Thread
  1. Something's not right when using avisynth and neat video the result is different than on virtualdub, i have asked the question on neat's forum some time ago, no answer...

    Experiment: take the same video, same noise profiles, parameters and see what's coming out

    Pictures:
    Vdub:
    https://forum.videohelp.com/attachment.php?attachmentid=10562&stc=1&d=1326745102
    avisynth:
    https://forum.videohelp.com/attachment.php?attachmentid=10563&stc=1&d=1326745132

    The result with vdub is better (look at the chroma at the upper right side) so either neatvideo don't like avisynth or virtualdub is adding some kind of filtering (!!) .

    The 1 million $ question is more about how to reproduce this filtering in avisynth (assuming this theory is true)

    Zoom-In (Vdub/avisynth)


    Click image for larger version

Name:	vdub-ZOOM.jpg
Views:	252
Size:	83.8 KB
ID:	10564Click image for larger version

Name:	avisynth-ZOOM.jpg
Views:	313
Size:	143.6 KB
ID:	10565


    references:
    virtualdub v1.9.0
    neat video v2.22 (also tried with newer version v3)
    avisynth 2.6.0.2
    Image Attached Thumbnails Click image for larger version

Name:	vdub.jpg
Views:	737
Size:	88.6 KB
ID:	10562  

    Click image for larger version

Name:	avisynth.jpg
Views:	832
Size:	250.4 KB
ID:	10563  

    Last edited by themaster1; 16th Jan 2012 at 15:51.
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  2. Mod Neophyte Super Moderator redwudz's Avatar
    Join Date
    Sep 2002
    Location
    USA
    Search Comp PM
    I'll probably leave this to the experts here, but I suspect you are getting a colorspace conversion through VD that Avisynth doesn't do. Try adding a brightness/contrast filter in VD before the NV filter and see if anything changes. (Not sure if you need to make any adjustments with the B/C filter, try it without any first.)
    Quote Quote  
  3. Something's not right when using avisynth and neat video the result is different than on virtualdub, i have asked the question on neat's forum some time ago, no answer...
    can you be more specific?

    do you mean loading neat video in avisynth script ?

    or loading avisynth script into vdub with neat video filter ?



    and please post your script
    Quote Quote  
  4. I have used two scripts:
    for vdub:
    MPEG2Source("F:\MyVideo.d2v", cpu=0,info=3)

    for avisynth
    MPEG2Source("F:\MyVideo.d2v", cpu=0,info=3)
    converttorgb32(matrix="Rec601",interlaced=true)
    LoadVirtualDubPlugin("C:\Program Files (x86)\virtualdub1.9\plugins\00-NeatVideo.vdf", "NeatVideo", 0)
    NeatVideo("C:\Program Files (x86)\Neat Video for VirtualDub\PROFILES\00neatv3.0-59%-neatgpu.dnp", "C:\Program Files (x86)\Neat Video for VirtualDub\PRESETS\00-neatv3.0-neatgpu.nfp", "1.0", "2", "1", "1")
    converttoyv12(matrix="Rec601",interlaced=true)


    The first script is opened in vdub and i pick the neat video filter -> encoding with lagarith

    Same thing for the second except i don't pick any filter indeed, encoding only.
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  5. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    If the video is interlaced (as your 2nd script suggests), vdub will screw up the chroma on conversion to RGB.
    Add converttorgb32(matrix="Rec601",interlaced=true) to the first script.
    Quote Quote  
  6. You don't get it the vdub result is BETTER than the avisynth. A logical person would think it's the opposite yet here are the hard facts to swallow.

    Here is a sample of the original video (13mb) so you can try to recreate the experiment:
    http://www.megaupload.com/?d=9FE0DH4C
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  7. Originally Posted by themaster1 View Post
    You don't get it the vdub result is BETTER than the avisynth. A logical person would think it's the opposite yet here are the hard facts to swallow.

    Here is a sample of the original video (13mb) so you can try to recreate the experiment:
    http://www.megaupload.com/?d=9FE0DH4C

    Why would you expect the opposite? Shouldn't you would expect the same results ?

    Looks like a bug with using neat video plugin in avisynth. If their developers can't answer the question in their own forum, then issue is unlikely to be resolved
    Quote Quote  
  8. yeah at least the same result if not better is what i meant
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  9. The video content actually isn't interlaced - it's field shifted, progressive 29.97

    To realign : e.g
    Code:
    MPEG2Source("SAMPLE.d2v")
    assumetff()
    separatefields()
    trim(1,0)
    weave()
    or

    Code:
    MPEG2Source()
    assumetff()
    TFM()
    or use field delay plugin in vdub



    But that doesn't explain why neat video plugin reacts differently in avs script
    Quote Quote  
  10. The first script don't make no sense to me (a trim between separatefields+weave ..the end goal being... what ??);
    Second makes more sense but not quite useful considering i'm picky , tfm leaves some ugly artefact behind.

    What about this:
    QTGMC( "fast", TR0=1, TR1=1, TR2=1)
    SelectEven() #
    TDecimate()

    Here is a new sample (30mb): http://www.megaupload.com/?d=DOWU1S52
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  11. Originally Posted by themaster1 View Post
    The first script don't make no sense to me (a trim between separatefields+weave ..the end goal being... what ??);
    Second makes more sense but not quite useful considering i'm picky , tfm leaves some ugly artefact behind.

    What about this:
    QTGMC( "fast", TR0=1, TR1=1, TR2=1)
    SelectEven() #
    TDecimate()

    Here is a new sample (30mb): http://www.megaupload.com/?d=DOWU1S52

    Deinterlacing will degrade quality more - the "ugly" artifacts are in the source to begin with. Use other filters to get rid of them. You usually want to start with highest quality first , instead of reduced qualilty to begin with. You shouldn't deinterlace progressive content.


    field shifting or phase shifting means this - the fields are misaligned, that's why you see "combing". But it's progressive content!
    [z a] [a b] [b c] [c d] ...

    The separatefields and trim will get rid of the "z" so upper field a, lower field a, become frame A
    [a a] [b b] [c c] ...
    Quote Quote  
  12. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by themaster1 View Post

    MPEG2Source("F:\MyVideo.d2v", cpu=0,info=3)
    converttorgb32(matrix="Rec601",interlaced=true)
    LoadVirtualDubPlugin("C:\Program Files (x86)\virtualdub1.9\plugins\00-NeatVideo.vdf", "NeatVideo", 0)
    NeatVideo("C:\Program Files (x86)\Neat Video for VirtualDub\PROFILES\00neatv3.0-59%-neatgpu.dnp", "C:\Program Files (x86)\Neat Video for VirtualDub\PRESETS\00-neatv3.0-neatgpu.nfp", "1.0", "2", "1", "1")
    converttoyv12(matrix="Rec601",interlaced=true)
    Your LoadVirtualDubPlugin statement parameters don't agree with the NeatVideo statement that does the processing (see characters in GREEN above). The Load statement should have these parameters:

    Code:
    LoadVirtualDubPlugin("C:\Program Files\VirtualDub\plugins\NeatVideo.vdf","NeatVideo",1)\
     # Integer=temporal filter radius preload
    The NeatVideo call should have these parameters:

    Code:
    NeatVideo(Profile, Preset, Threshold, Radius, Adaptive, Interlaced)
    By default NeatVideo expects RGB but works internally in its own proprietary YCbCr. Just how this color conversion plays inside Avisynth is anyone's guess. Meanwhile, In the above script, converting YUV->RGB->YUV doesn't help.
    Last edited by sanlyn; 21st Mar 2014 at 08:29.
    Quote Quote  
  13. Are the results the same (or very close) when you make those changes Sanlyn ?
    Quote Quote  
  14. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    I think it's cleaner (somewhat) with NeatVideo by itself in VirtualDub. Haven't run a lot of tests with that, but I have run NV in Avisynth and thought it ran much slower. In any case I've always found that NeatVideo gives better results when it's run all by itself with no chance of interaction from other processes.
    Last edited by sanlyn; 21st Mar 2014 at 08:30.
    Quote Quote  
  15. I've never used NV or any other vdub plugin in avisynth. When I use NV, I use it by itself.

    If , despite those changes, there are still discrepancies - that confirms what themaster1 is saying about NV for avisynth isn't working properly
    Quote Quote  
  16. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    this is a progressive 30p source. i think you just didn't send the proper prepared script to neatvideo for processing.

    Code:
    # AVIsynth drag drop tool
     
      x = "E:\SAMPLE.mpg"
      LoadPlugin( "C:\PLUGINS\ffms2.dll" )
      V = FFVideoSource(x)
      FFVideoSource(x)#,fpsnum=29700,fpsden=1001)
    
    # fields
    # 02468AC
    # 13579bd
    
      trim(0,332).separatefields().selectevery(2, 1,2).weave()
    Image Attached Files
    Quote Quote  
  17. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Those corrections might make a difference, vhelp.
    Last edited by sanlyn; 21st Mar 2014 at 08:30.
    Quote Quote  
  18. "There is no function named FFVideoSource" that's what i get (and i have loaded the ffms2.dll...YES i did)

    What's the point to use FFmpegSource anyways , i'm reading the mediawiki as i type , known issues section ... it's not appealing to say the least
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  19. Originally Posted by themaster1 View Post
    "There is no function named FFVideoSource" that's what i get (and i have loaded the ffms2.dll...YES i did)

    What's the point to use FFmpegSource anyways , i'm reading the mediawiki as i type , known issues section ... it's not appealing to say the least
    No advantage for a MPEG2 source file , other than being slightly easier to use. MPEG2Source is more consistent and reliable for MPEG2 sources

    Whether or not you use MPEG2Source or FFVideosource still doesn't explain the difference. Whether or not you used proper progressive input or interlaced still doesn't explain the difference - that's what you're looking for, right?

    Otherwise, you can clean up the chroma noise in avisynth with chubbyrain + fft3dfilter on chroma planes if you didn't feel like using neat
    Quote Quote  
  20. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    sorry, i had made a quick mod to that above script because the source had no audio (the script woudn't work in this case--maybe that was your problem) my app just creates the script for me and then opens the video in virtualdub for quick viewing.

    when i want quickly open/view a (mp4/mp2/m2ts/mov/etc) video, can't be bothered with all the preporation steps, so i just d/l, drag/drop into my app and i'm in business. othewise i have to either use dvd2avi or dgindex and all the steps involved, just to open/review a video.

    i prefer FFmpegsource over dgindex because it is faster to setup. am not looking for perfection, just a quick open and view, thats all. this method is not perfect, in some cases may cause other problems. but i use the method above when i want to quickly review a file other than avi, and i almost never have a problem opening. a lot of times i am D/L'ing a video and can't be bother with prepping it. drag-n-dropping into my app is so much easier.

    if you source has no audio then you have to include the audio=no switch in your param line, or use the method below..

    her is code snip again:
    Code:
      x = "E:\SAMPLE.mpg"
      LoadPlugin( "C:\PLUGINS\ffms2.dll" )
      FFVideoSource(x)
      trim(0,332).separatefields().selectevery(2, 1,2).weave()
    Quote Quote  
  21. Originally Posted by sanlyn View Post
    Your LoadVirtualDubPlugin statement parameters don't agree with the NeatVideo statement that does the processing (see characters in GREEN above).
    It's in the doc i know that but is not a real necessity, that's the conclusion i draw after many experiments with neat in avisynth. Don't ask me why..
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  22. @vHelp:
    Try the new sample i have uploaded
    http://www.megaupload.com/?d=DOWU1S52

    (Meanwhile, i go to the bed cos it's late)
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  23. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    Code:
    # 
    # this is some special fx (monitor in background) and 
    # home-video (progressive) mixed with film for this m.video
    # 
    # you would have to break all the (known) segments and process
    # each according to ivtc, field-correct, etc, then restitch into one
    # main segment which would ultimately have to be 29.970 fps.
    # 
    # the monitor in background seem to be film behind the main
    # feature, progessive.
    # 
    # ivtc, ie, the car bopping up/down is film and since these film
    # scenes are at different places in the video, they could have
    # sliced inside the PPPii pattern and may not be as easy to work
    # with. other problems are in this video, blends, etc.
    # 
    # the footage (home-video, made progressive) is mixed with film.
    # i'm guessing that the singer is narrarating his experiences.
    # 
    
      x = "E:\SAMPLE_2.mpg"
      LoadPlugin( "C:\PLUGINS\ffms2.dll" )
      FFVideoSource(x)
    # trim(0,0).separatefields().selectevery(2, 1,2).weave()     # progressive
    # trim(0,0).separatefields().selectevery(5, 0,1,2,3).weave() # film
    because there were so many different mixture of scenes i did not bother to attempt to decode each segment and bring to new 29.970 fps. i will leave that up to you or other members. its bed time for me. good luck.
    Last edited by vhelp; 17th Jan 2012 at 20:22.
    Quote Quote  
  24. It's a big mess in other words. I will focus on that later for now denoising, color correction only
    edit:
    Here's where i'm at:
    http://imageshack.us/f/28/whereimat.jpg/
    Last edited by themaster1; 17th Jan 2012 at 14:54.
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  25. Ok guys i found out what's wrong, take a look at this picture which compare the different results i have obtained:
    In the order: original, Neat Vdub, avisynth Neat (normal), avisynth Neat (my solution)

    https://forum.videohelp.com/attachment.php?attachmentid=10668&stc=1&d=1327575563

    I'll let you guess what i did, it wouldn't be fun otherwise

    Now the result is "on par" with Vdub
    Image Attached Thumbnails Click image for larger version

Name:	TheMaster1-result.jpg
Views:	632
Size:	503.1 KB
ID:	10668  

    Last edited by themaster1; 26th Jan 2012 at 06:12.
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  26. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Sorry, I couldn't guess. When I use Avisynth and NeatVideo in the same run, I don't load NeatVideo inside an Avisynth script. I open the script in VirtualDub, then load NeatVideo as a separate VDub filter that works with Avisynth's output.

    Avisynth open source
    run plugin
    run plugin
    ....
    ....
    ConvertToRGB32(matrix="whatever", interlaced=true)
    VirtualDub: add NeatVideo.

    If you managed this by loading NV inside the Avisynth script, I wouldn't know what to modify other than to use NeatVideo's recommendations. My only "guess" would be that the NeatVideo statement in the AVS script must specify the input clip explicitly, e.g. "last".
    Last edited by sanlyn; 21st Mar 2014 at 08:30.
    Quote Quote  
  27. No No, it's real avs scripting, no trick involved.You can do better sanlyn come on.
    A tip maybe ? Something's wrong with converttoyv12 (oops i said too much)
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  28. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by themaster1 View Post
    No No, it's real avs scripting, no trick involved.You can do better sanlyn come on.
    A tip maybe ? Something's wrong with converttoyv12 (oops i said too much)
    You mean "RGB32" instead of "YV12", I assume.
    Anyway, I haven't tried it -- I'm still rebuilding this damn PC with new hard drives, and all my AVI's are saved as DriveImage backups on external drives. But for this particular video, interlaced should be false.
    Last edited by sanlyn; 21st Mar 2014 at 08:30.
    Quote Quote  
  29. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    interlaced=true? (or not? )
    Quote Quote  
  30. for avisynth
    MPEG2Source("F:\MyVideo.d2v", cpu=0,info=3)
    converttorgb32(matrix="Rec601",interlaced=true)
    LoadVirtualDubPlugin("C:\Program Files (x86)\virtualdub1.9\plugins\00-NeatVideo.vdf", "NeatVideo", 0)
    NeatVideo("C:\Program Files (x86)\Neat Video for VirtualDub\PROFILES\00neatv3.0-59%-neatgpu.dnp", "C:\Program Files (x86)\Neat Video for VirtualDub\PRESETS\00-neatv3.0-neatgpu.nfp", "1.0", "2", "1", "1")
    converttoyv12(matrix="Rec601",interlaced=true)
    But he specificed (matrix="rec601", interlaced=true) in post #4
    Quote Quote  



Similar Threads

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