Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th June 2006, 11:14   #201  |  Link
rig_veda
Registered User
 
Join Date: Aug 2005
Posts: 20
I'd like to address a big THANK YOU to Fizick and Manao for bringing the mvtools to where they are now!
Very impressive things can be done with motion-adaptive denoising, especially in animation, as I lately found out. It's possible to use temporal denoisers at places where I would never have believed it possible without artifacts before.

Lately the line
Code:
interleave(last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 7, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 6, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 5, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 4, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 3, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 2, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1), last, last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 2, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 3, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 4, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 5, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 6, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 7, idx = 1), idx=1)).TTempSmooth(maxr=7,lthresh=3,cthresh=4,strength=5).selectevery(15,7)
has more or less become my only denoiser for DVDs with low noise level. It might look like a little overkill to use 7 frames backwards and forwards, but it mostly has proven worth it if quality is more important than speed. Cause its slooow.. ^^;

On the other hand, if the movie is pretty noisy, like Ghibli's Porko Rosso, i needed to apply much more massive filtering to the static and slow motion scenes (which i defined manually via ReplaceFrames):
Code:
#denoise fast pans
ReplaceFramesSimple(last, last.FFT3DFilter(), filename="PorcoRosso_denoise_FFT3D.txt")
#TTempSmooth_middle_short - denoise slow pans
ReplaceFramesSimple(last, interleave(last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1), last, last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1)).TTempSmooth(maxr=1,lthresh=10,cthresh=10,strength=5).selectevery(3,1), filename="PorcoRosso_denoise_TTempSmooth_middle_short.txt")
#TTempSmooth_lite_wide - denoise intro
ReplaceFramesSimple(last, interleave(last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 7, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 6, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 5, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 4, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 3, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 2, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = false, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1), last, last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 1, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 2, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 3, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 4, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 5, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 6, idx = 1), idx=1), last.MVCompensate(MVAnalyse(isb = true, pel = 2, search = 3, truemotion=true, delta = 7, idx = 1), idx=1)).TTempSmooth(maxr=7,lthresh=4,cthresh=5,strength=5).selectevery(15,7), filename="PorcoRosso_denoise_TTempSmooth_lite_wide.txt")
#TTempSmooth_middle_wide - denoise still frames
ReplaceFramesSimple(last, last.TTempSmooth(maxr=7,lthresh=10,cthresh=10,strength=5), filename="PorcoRosso_denoise_TTempSmooth_middle_wide.txt")
with FFT3DFilter doing the problematic high-motion/low-contrast and fade scenes and mvcompensate+ttempsmooth doing anything else.

Motion compensation worked well in most cases where a texture with a good mount of structure was moved not too fast. Too little detail, too little contrast or to large movements kind make it difficult for the mvtools, and it also has now way of recognising a uniform change in brigthness.. But after all it's supposed to do motion compensation, not fading compensation.

Speaking of which - does anybody think something like a "fading compensation" can be done, in theory? It kind of seems to resemble mc, but with the vectors moving more or less uniformly through the YUV space.. or not? o_O
rig_veda is offline   Reply With Quote
Old 14th June 2006, 17:25   #202  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Quote:
Originally Posted by rig_veda
...quality is more important than speed. Cause its slooow.. ^^;
You can easy make your "long line" more slower with new overlap mode in MVTools v.1.3

But generally temporal radius=2 is very good (and radius=1 is quite good for speed).
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 14th June 2006, 17:28   #203  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Fading compensation?
Deflick the image, remember deflick correction values,
analyze and compensate motion of deflicked clip, denoise it,
and revert deflick changes?

It is not MVTools question, of course.
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 14th June 2006, 17:34   #204  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Quote:
Originally Posted by Fizick
...
try convert to 30fps with Depan (interleave with offset=0.5, see its doc).
That would be with something like this:

Code:
i=last
data=DePanEstimate(i,range=1,trust=5)
f=DePan(i,data,offset=0.5)
b=DePan(i,data,offset=-0.5)
Interleave(f,i,b)
SelectEvery(...)
, right? What should I put in the SelectEvery line?
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 14th June 2006, 19:36   #205  |  Link
rig_veda
Registered User
 
Join Date: Aug 2005
Posts: 20
Quote:
Originally Posted by Fizick
You can easy make your "long line" more slower with new overlap mode in MVTools v.1.3
That's definitely what I'll do when it's released.

Quote:
Originally Posted by Fizick
Fading compensation?
Deflick the image, remember deflick correction values,
analyze and compensate motion of deflicked clip, denoise it,
and revert deflick changes?

It is not MVTools question, of course.
Hm, I'll give that some thougt. Sounds like quite a task for my poor brain to put together.
The reason I asked about it was because it hit me as the next best thing to try to improve with my filter chain, but also because i was wondering whether mvtools' vector calculations (especially the truemotion concept) couldn't be (ab)used to do an area based brightness compensation. Anyway, i'm off to read deflick's manual.
rig_veda is offline   Reply With Quote
Old 15th June 2006, 05:56   #206  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
rig_veda,
double mistake
1) 1.3 is released.
2) defading is not implemented.
Fizick is offline   Reply With Quote
Old 20th June 2006, 10:01   #207  |  Link
redfordxx
Registered User
 
Join Date: Jan 2005
Location: Praha (not that one in Texas)
Posts: 863
Is there any way to save motion vectors to file and reuse them?
redfordxx is offline   Reply With Quote
Old 20th June 2006, 16:12   #208  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
No, only save.
Fizick is offline   Reply With Quote
Old 20th June 2006, 17:27   #209  |  Link
redfordxx
Registered User
 
Join Date: Jan 2005
Location: Praha (not that one in Texas)
Posts: 863
Quote:
Originally Posted by Fizick
No, only save.
You're saying it is possible to save motion vectors (how?), but you can't use it?
It could be good for speed up repeated processing.
R.
redfordxx is offline   Reply With Quote
Old 20th June 2006, 20:10   #210  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Read a doc about vectors saving (outfile). It is in beta stage.
But reading is not implemented. And I have no plan to do it now.
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 20th June 2006, 21:33   #211  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,637
I have a feature request

Is it possible to implement such a function:

function amount_of_motion_of_current_frame(clip clip, clip vectors)
{
return float
}

or even better:

function current_frame_is_part_of_fluent_sequence(clip clip, clip vectors, int some_thresholds)
{
return bool
}

I need functions that
- describe the amount of motion (length of vectors)
- return true, if a sequence of frames is consisting of individual frames (without duplicates (like 3:2 or 2:2 pulldown) or blending)
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 20th June 2006, 22:57   #212  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Seems, it is not possible in Avisynth plugins.
Use mvmask with additional conditional functions.
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 20th June 2006, 23:36   #213  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,637
Quote:
Seems, it is not possible in Avisynth plugins.
What do you mean is not possible? returning a bool or a number?
of course it is possible, but it needs to be a function for the conditional environment.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 21st June 2006, 16:56   #214  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Do you know al least one such plugin, which return not clip but float or boolean?
Fizick is offline   Reply With Quote
Old 21st June 2006, 19:41   #215  |  Link
krieger2005
Registered User
 
krieger2005's Avatar
 
Join Date: Oct 2003
Location: Germany
Posts: 377
I think Clouded made in his "Motion"-Plugin such functions.
krieger2005 is offline   Reply With Quote
Old 21st June 2006, 20:50   #216  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,637
Quote:
Originally Posted by Fizick
Do you know al least one such plugin, which return not clip but float or boolean?
eg.: the functions averageluma() (see AVS documentation)
or iscombed() from neuron2's Decomb.dll

of course both functions are for the conditional environment, only.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 22nd June 2006, 21:05   #217  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Of course, I know abot averageluma.
I suggested to you use Averageluma(MVMask(...)).
But I did not know about iscombed!
Thanks for poit to it. Therefore, it is possible to implement

function amount_of_motion_of_current_frame(clip clip, clip vectors)
{
return float
}

as MVMaskConditional...

But function current_frame_is_part_of_fluent_sequence is probably not related to MVTools. Maybe to DepanScenes ?
Fizick is offline   Reply With Quote
Old 23rd June 2006, 00:49   #218  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,637
I think, that it will be related to mvtools, cause I even want to know whether there is motion like talking head etc.

Depan won't catch that... (doesn't it?)

anyways, implement it the way you like and I'll see, whether it works or not
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 23rd June 2006, 14:59   #219  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Why not simple YDifferenceFromPrevious (clip) ?
Fizick is offline   Reply With Quote
Old 24th June 2006, 00:53   #220  |  Link
Adub
Fighting spam with a fish
 
Adub's Avatar
 
Join Date: Sep 2005
Posts: 2,687
Why is it that when ever I try to use MVflowfps or MVflowfps2 I get an
Quote:
Evaluate:System Exception - Access violation
error.

I am using Alpha 3 and MVtools version 1.3. I thought everything had been cleared up with this in this last release.

By the Way here is my script:

Quote:
DgDecode_mpeg2source("C:\Documents and Settings\Merlin\Desktop\Movies\USA Parkour\usa.parkour[1].d2v").KillAudio()
MVFlowfps2(num=25, den=1)
Thanks for any help in advance.
__________________
FAQs:Bond's AVC/H.264 FAQ
Site:Adubvideo

Last edited by Adub; 24th June 2006 at 20:35.
Adub is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:09.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.