Quantcast Avisynth: Motion Adaptive Filtering Now Possible? - Page 10 - digitalFAQ.com Forums [Archives]
  #181  
05-31-2003, 01:02 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by rendalunit
Quote:
Originally Posted by kwag
Right now I'm looking with Vdub at the value that is assigned to val on every scene change. It's usually above 3.
way higher than 3 (like ~35-200). I wonder why the numbers you're talking about are so low Are those numbers the YDifferenceFromPrevious divided by a constant?

btw- i'm using 528x480 in case it's because of using different resolutions

thnx,
ren
It's because of the line "ScriptClip("val=YDifferenceFromPrevious()/14.55" I'm testing on 704x480 resolution.
I'm getting a difference of ~3.x from previous scene to next scene on a scene change.

-kwag
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Site Staff / Ad Manager
 
Join Date: Dec 2002
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #182  
05-31-2003, 03:00 PM
Gaudi Gaudi is offline
Free Member
 
Join Date: Dec 2002
Location: Buenos Aires, Argentina
Posts: 131
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to Gaudi
I think I may be missing something.
How can I do to include this conditional filter into my script.
Should I download a new .dll?
or just using the provided optimal script will do?

Many thanks.


Gaudi
Reply With Quote
  #183  
05-31-2003, 03:07 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by Gaudi
I think I may be missing something.
How can I do to include this conditional filter into my script.
Should I download a new .dll?
or just using the provided optimal script will do?

Many thanks.


Gaudi
Just install AviSynth 2.51 (Follow sh0dan's signature) and use the posted script for avisynth 2.51.
And stay tuned in this thread, because more changes WILL be coming soon

-kwag
Reply With Quote
  #184  
05-31-2003, 03:18 PM
Gaudi Gaudi is offline
Free Member
 
Join Date: Dec 2002
Location: Buenos Aires, Argentina
Posts: 131
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to Gaudi
Quote:
Originally Posted by kwag
Quote:
Originally Posted by Gaudi
I think I may be missing something.
How can I do to include this conditional filter into my script.
Should I download a new .dll?
or just using the provided optimal script will do?

Many thanks.


Gaudi
Just install AviSynth 2.51 (Follow sh0dan's signature) and use the posted script for avisynth 2.51.
And stay tuned in this thread, because more changes WILL be coming soon

-kwag
Thanks Kwag.

You bet I will.

Gaudi
Reply With Quote
  #185  
05-31-2003, 03:21 PM
ovg64 ovg64 is offline
Free Member
 
Join Date: Jan 2003
Location: Puerto Rico
Posts: 423
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to ovg64
What kind of changes may i ask
another what happen if i put the line
MergeLuma(blur(0.2)) in front of the bilinear adaptive script line?
will it work like it suppose to?
Reply With Quote
  #186  
05-31-2003, 04:05 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by ovg64
What kind of changes may i ask
another what happen if i put the line
MergeLuma(blur(0.2)) in front of the bilinear adaptive script line?
will it work like it suppose to?
I would add mergeluma(blur(0.1) as a static filter, and leave higher values as dynamic with the adaptive function.
Go ahead and add it :!, it will then make the MIN sustained value of 0.2 instead of close to 0 as it is now.
So the script should read something like this:

Code:
MaxTreshold=1.58 

UnFilter(50, 50) 
BicubicResize( Your_Resize_Values_Here ) 
STMedianFilter(8, 32, 0, 0 ) 
TemporalSoften(2,7,7,3,2) # Experimental! 
mergechroma(blur(1.50)) # Static filtering
mergeluma(blur(0.1)) # Static filtering
## Dynamic linear adaptive filtering ## 
ScriptClip("val=YDifferenceFromPrevious()/14.55" + "val > MaxTreshold ? MergeLuma(blur(MaxTreshold)) : MergeLuma(blur( val ))") 
## 
#LetterBox( Your_Values_Here ) # Depends on situation. Use MovieStacker! 
#AddBorders( Your_Values_Here ) # Depends on situation. Use MovieStacker! 
Limiter()
Now the file size will be even smaller that before

Edit: The changes to come are to detect scene changes, and avoid abrupt changes in blur, which cause slight "blinks" on some sporadic frames.

-kwag
Reply With Quote
  #187  
05-31-2003, 04:47 PM
audioslave audioslave is offline
Free Member
 
Join Date: Mar 2003
Location: Sweden
Posts: 725
Thanks: 0
Thanked 0 Times in 0 Posts
Is there a way of getting rid of Gibbs in this excellent new script? Like the Dust filters... I know the Dust filters don't work in AviSynth 2.5* but are there any similar filters that work in the same way as FaeryDust for example?
Reply With Quote
  #188  
05-31-2003, 05:38 PM
ovg64 ovg64 is offline
Free Member
 
Join Date: Jan 2003
Location: Puerto Rico
Posts: 423
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to ovg64
The only other noise filter i know other than STM for 2.51 is Deen witch is works like Convolution 3D and give you even a smaller file size when use it with STMedian.

Ex. deen("a3d",1,10,12)
Reply With Quote
  #189  
05-31-2003, 05:47 PM
audioslave audioslave is offline
Free Member
 
Join Date: Mar 2003
Location: Sweden
Posts: 725
Thanks: 0
Thanked 0 Times in 0 Posts
@ovg64

Thanx! I'll try it out right away!
Reply With Quote
  #190  
05-31-2003, 05:48 PM
jorel jorel is offline
Invalid Email / Banned / Spammer
 
Join Date: Aug 2002
Location: Brasil - MG - third stone from the sun
Posts: 5,570
Thanks: 0
Thanked 0 Times in 0 Posts


great news from sh0dan:
"No "Cannot locate decompressor (YV12)" messages."
and tons more with...

AviSynth 2.5.2 Released!

http://www.kvcd.net/forum/viewtopic.php?p=28135#28135
Reply With Quote
  #191  
05-31-2003, 05:59 PM
ovg64 ovg64 is offline
Free Member
 
Join Date: Jan 2003
Location: Puerto Rico
Posts: 423
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to ovg64
Quote:
Originally Posted by jorel


great news from sh0dan:
"No "Cannot locate decompressor (YV12)" messages."
and tons more with...

AviSynth 2.5.2 Released!

http://www.kvcd.net/forum/viewtopic.php?p=28135#28135
Well here we go again, time to Download again .
yet another faster version?


Thanks Jorel
Reply With Quote
  #192  
05-31-2003, 06:06 PM
jorel jorel is offline
Invalid Email / Banned / Spammer
 
Join Date: Aug 2002
Location: Brasil - MG - third stone from the sun
Posts: 5,570
Thanks: 0
Thanked 0 Times in 0 Posts
of course my friend,
see some ...

Optimizations:
* Added MMX RGB24->YUY2 conversion.
* Minor changes to existing RGB32 -> YUY2 MMX.
* Minor speedup to ISSE limiter.
* Added SoftWire dynamic compiled horizontal resizer.
Approximately 10-15% faster - maybe even more on P4.



*otimizations copied from shOdan post

http://www.kvcd.net/forum/viewtopic.php?p=28135#28135
Reply With Quote
  #193  
05-31-2003, 10:04 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Enjoy

Code:
## DLL Section ##
#
LoadPlugin("C:\Filters25\MPEG2Dec3.dll")
LoadPlugin("C:\Filters25\STMedianFilter.dll")
LoadPlugin("C:\Filters25\UnFilter.dll")
#
####

## Defined Variables and Constants ##
#
MaxTreshold = 1.58
scd_trigger = 1.0 # Scene change trigger value.
cf = 0 # Current frame.
lf = 0 # Last frame
#
####

## Main section and static filters ###
#
Mpeg2Source("Your_D2V_Source_Here")
UnFilter(50, 50)
BicubicResize( Your_Resize_Values_Here ) 
STMedianFilter(8, 32, 0, 0 )
TemporalSoften(2,7,7,3,2) # Experimental! 
MergeChroma(blur(1.50))
MergeLuma(blur( 0.1))
#
####

## Dynamic linear adaptive filters and scene change detection ## 
#
FrameEvaluate("lf = YDifferenceFromPrevious()/16")
FrameEvaluate("cf = YDifferenceToNext()/16")
ScriptClip("(cf - lf) < scd_trigger && cf < MaxTreshold ? MergeLuma(blur(cf)) : MergeLuma(blur( 0.1 ))")
ScriptClip("(cf - lf) < scd_trigger && cf >= MaxTreshold ? MergeLuma(blur(MaxTreshold)) : MergeLuma(blur( 0.1 ))") 
#LetterBox( Your_Values_Here ) # Depends on situation. Use MovieStacker! 
#AddBorders( Your_Values_Here ) # Depends on situation. Use MovieStacker! 
Limiter()
#
####
Sample here: www.kvcd.net/new-scene-change.mpg
Load it in vdub, and you'll see the show
"Flashes" are now permanently gone bye bye

*** PLEASE, TEST THIS, SO I CAN UPDATE THE CURRENT SCRIPT !!! ***
I won't update it until I get more feedback, and that it's all working right for you too
Then we can go on and build more filteres "hocked" into this

-kwag
Reply With Quote
  #194  
05-31-2003, 10:34 PM
ovg64 ovg64 is offline
Free Member
 
Join Date: Jan 2003
Location: Puerto Rico
Posts: 423
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to ovg64
Y just tried it K and it works find .

Good Deal
Reply With Quote
  #195  
05-31-2003, 10:38 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by ovg64
Y just tried it K and it works find .

Good Deal
Try it again. I forgot to add a line: ScriptClip("(cf - lf) < scd_trigger && cf >= MaxTreshold ? MergeLuma(blur(MaxTreshold)) : MergeLuma(blur( 0.1 ))")
I just edited the post

-kwag
Reply With Quote
  #196  
05-31-2003, 10:43 PM
rendalunit rendalunit is offline
Free Member
 
Join Date: Apr 2002
Location: san jose, Ca
Posts: 1,148
Thanks: 0
Thanked 0 Times in 0 Posts
Hi kwag,

The scene change detection was perfect in your 'city by the sea' sample
Do you still have the script that will add those subtitles? I'd like to do some testing too and those subs would be very helpful- i tested a script with evaluation of next frame yesterday and the encoding time doubled! I'm going to try this one now

Thanks!
ren
Reply With Quote
  #197  
05-31-2003, 10:47 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
You bet ren

Code:
LoadPlugin("C:\Filters25\MPEG2Dec3.dll")
LoadPlugin("C:\Filters25\STMedianFilter.dll")
LoadPlugin("C:\Filters25\UnFilter.dll")
LoadPlugin("C:\Filters25\BlockBuster.dll")

MaxTreshold=1.58
scd_trigger = 1.0 
scd="!!!!Scene Change Detected!!!!"
noscd="Normal Frame"
cf=0
lf=0

Mpeg2Source("K:\DVDbot\CITY_BY_THE_SEA\VIDEO_TS\sea.d2v")

UnFilter(50, 50)
BicubicResize(672, 448, 0, 0.6, 0, 0, 720, 480)
STMedianFilter(8, 32, 0, 0 )
TemporalSoften(2,7,7,3,2) # Experimental! 
MergeChroma(blur(1.50))
MergeLuma(blur( 0.1))

## Dynamic linear adaptive filtering ## 
FrameEvaluate("lf = YDifferenceFromPrevious()/16")
FrameEvaluate("cf = YDifferenceToNext()/16")
ScriptClip("(cf - lf) < scd_trigger && cf < MaxTreshold ? MergeLuma(blur(cf)) : MergeLuma(blur( 0.1 ))")
ScriptClip("(cf - lf) < scd_trigger && cf >= MaxTreshold ? MergeLuma(blur(MaxTreshold)) : MergeLuma(blur( 0.1 ))") 

ScriptClip("(cf - lf) < scd_trigger && cf < MaxTreshold ? Subtitle(noscd,1,60) : Subtitle(scd,1,60)")
ScriptClip("Subtitle(String(cf),1,30)")
I didn't use add borders because I wanted to see the full frame

-kwag
Reply With Quote
  #198  
05-31-2003, 10:51 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
It's beer time
Reply With Quote
  #199  
05-31-2003, 10:53 PM
ovg64 ovg64 is offline
Free Member
 
Join Date: Jan 2003
Location: Puerto Rico
Posts: 423
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to ovg64
Just did a 501 frame clip output 4697Kbs same size looks as well
I must be too tire to see any difference :tongue2:

Good Deal man

Aren't you going to update that sucker up there K?, i mean the Optimal cript.
Reply With Quote
  #200  
05-31-2003, 11:05 PM
jorel jorel is offline
Invalid Email / Banned / Spammer
 
Join Date: Aug 2002
Location: Brasil - MG - third stone from the sun
Posts: 5,570
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by kwag
It's beer time
one more beer for you dear friend.

i did using ToK:
Total Frames: 1001
Total Time : 00:00:33

Encoding... CQ : 65,000
Final Encoded Size: 5.725.261
Total Time (all operations): 00:01:50

my system is "tired", long time without reboot,
but the result is cool with clear details, very sharp.


i download the sample too and i'm impressed with
the quality, the color of skin face, the "tunnel",
the broken glasses in the floor and
the "dimension" along the stairs.



yes, it's beer time
Reply With Quote
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
Avisynth: Dynamic Linear Adaptive Filtering and Scene Change Detection supermule Avisynth Scripting 3 09-15-2006 01:45 AM
Avisynth: Message from linear motion adaptive filtering? holgerschlegel Avisynth Scripting 7 08-27-2003 04:08 AM
Avisynth: Help with Linear Motion Adaptive Filtering pitoman Avisynth Scripting 2 08-05-2003 12:51 PM
Avisynth: Motion adaptive filtering good enough? bicho_visacoso Avisynth Scripting 6 06-15-2003 06:30 AM
Avisynth: AVS 2.5x Script, Motion Adaptive Filtering problems? Bchteam Avisynth Scripting 15 05-31-2003 12:38 PM

Thread Tools



 
All times are GMT -5. The time now is 04:08 AM  —  vBulletin © Jelsoft Enterprises Ltd