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:
http://forum.videohelp.com/attachment.php?attachmentid=10562&stc=1&d=1326745102
avisynth:
http://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)
references:
virtualdub v1.9.0
neat video v2.22 (also tried with newer version v3)
avisynth 2.6.0.2
+ Reply to Thread
Results 1 to 30 of 52
Thread: Neatvideo strange behavior
Thread
-
Last edited by themaster1; 16th Jan 2012 at 14:51.
-
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.)
-
can you be more specific?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...
do you mean loading neat video in avisynth script ?
or loading avisynth script into vdub with neat video filter ?
and please post your script -
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. -
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 -
yeah at least the same result if not better is what i meant
-
The video content actually isn't interlaced - it's field shifted, progressive 29.97
To realign : e.g
orCode:MPEG2Source("SAMPLE.d2v") assumetff() separatefields() trim(1,0) weave()
or use field delay plugin in vdubCode:MPEG2Source() assumetff() TFM()
But that doesn't explain why neat video plugin reacts differently in avs script -
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] ... -
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:
The NeatVideo call should have these parameters:Code:LoadVirtualDubPlugin("C:\Program Files\VirtualDub\plugins\NeatVideo.vdf","NeatVideo",1)\ # Integer=temporal filter radius preload
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.Code:NeatVideo(Profile, Preset, Threshold, Radius, Adaptive, Interlaced)
Discussion here: http://www.neatvideo.com/nvforum/viewtopic.php?t=252&sid=b365f4efd5e6705a8d599532fc25b81a
with sample script:
Code:LoadVirtualDubPlugin("C:\Program Files\VirtualDub\plugins\NeatVideo.vdf","NeatVideo",1) # Integer=temporal filter radius preload ConvertToRGB32() Profile = "C:\Program Files\Neat Video for VirtualDub\PROFILES\WingTsun.dnp" Preset = "C:\Program Files\Neat Video for VirtualDub\PRESETS\Wing Tsun.nfp" Threshold = "1.0" # TemporalThreshold Radius = "1" # TemporalRadius Adaptive = "1" # Adaptive Filtration 1=on, 0=off Interlaced = "1" NeatVideo(Profile, Preset, Threshold, Radius, Adaptive, Interlaced)Last edited by sanlyn; 16th Jan 2012 at 20:35.
Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau -
Are the results the same (or very close) when you make those changes Sanlyn ?
-
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.
Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau -
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()
-
Those corrections might make a difference, vhelp.
Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau -
"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 -
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()
-
@vHelp:
Try the new sample i have uploaded
http://www.megaupload.com/?d=DOWU1S52
(Meanwhile, i go to the bed cos it's late) -
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.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
Last edited by vhelp; 17th Jan 2012 at 19:22.
-
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 13:54.
-
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)
http://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 VdubLast edited by themaster1; 26th Jan 2012 at 05:12.
-
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".Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau -
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 (didn't someone say it's not interlaced??), interlaced should be false in all statements.
Ed: I didn't know one could "matrix" in Convert to YV12. When I use it I get an error message. Maybe it's just me.Last edited by sanlyn; 26th Jan 2012 at 08:25.
Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau -
But he specificed (matrix="rec601", interlaced=true) in post #4for 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)
Similar Threads
-
I Can't Get DVD Shrink To Work. Strange Behavior Problem.
By V Bot in forum DVD RippingReplies: 1Last Post: 1st Jun 2011, 23:55 -
AC3 6ch audio strange behavior in AVISynth
By lovyagin in forum Video ConversionReplies: 10Last Post: 1st Mar 2010, 10:17 -
LG DN788 ~Very Strange Behavior~Need suggestions
By buffee in forum DVD & Blu-ray PlayersReplies: 0Last Post: 27th Feb 2010, 18:22 -
Strange behavior of the 5990
By ahhaa in forum DVD & Blu-ray PlayersReplies: 0Last Post: 19th Aug 2009, 11:27 -
Strange behavior of Outlook Express
By ahhaa in forum ComputerReplies: 4Last Post: 27th Jul 2007, 09:29



Quote