Quantcast Avisynth: Motion Adaptive Filtering Now Possible? - Page 13 - digitalFAQ.com Forums [Archives]
Go Back    digitalFAQ.com Forums [Archives] > Video Production Forums > Avisynth Scripting

Reply
 
LinkBack Thread Tools
  #241  
06-02-2003, 11:06 AM
Racer99 Racer99 is offline
Free Member
 
Join Date: Sep 2002
Location: Massachusetts
Posts: 119
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by kwag
Quote:
Originally Posted by Racer99
Keep it up and pretty soon we'll be able to put a whole movie on my 256mb Thumb Drive.
If you have a Pocket PC, you can put "The Matrix" on one 128MB flash card , and it looks pretty damn good on the iPaq screen
I did that a long time ago, without any of the latest techniques, so now it would probably look even better

-kwag
Unfortunately no I don't have a Pocket PC (no real need for one). I was just comparing about how we have learned better techniques that have led to better compression without visible loss of quality since you have (we have) started working on improving this craft.

Keep up the good work guys .

Racer99
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
  #242  
06-02-2003, 09:04 PM
black prince black prince is offline
Free Member
 
Join Date: Jul 2002
Posts: 1,224
Thanks: 0
Thanked 0 Times in 0 Posts
@Kwag,

My test was Drumline DVD, 118 minutes, full screen, low action movie,
and the target filesize was one 80 minute CD. Tok file prediction was
very low for 704x480 (CQ 15), 528x480 (CQ 19) and 352x480 (CQ 30).
I used the current Optimal Script for v2.5x and default settings for
VCD in Tok.

1) ToK CQ predictions at any resolution very low

2) Encoding time veeeeeeerrrrry slooooooooow

3) Filesize bigger than using avisynth 2.08

4) Picture quality pooooor (due to low CQ prediction)

I've got to wonder if this process is better than using avisynth 2.08+

-bp
Reply With Quote
  #243  
06-02-2003, 09:09 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
Something is WAY wrong bp
My encoding with the current script and 2.52 is much faster than with 2.08.
Have you tried deinstalling 2.08 completely, and then installing 2.52
The quality I have achieve now has surpassed any previous encoding I have ever done before. There's just no comparison

-kwag
Reply With Quote
  #244  
06-02-2003, 09:22 PM
black prince black prince is offline
Free Member
 
Join Date: Jul 2002
Posts: 1,224
Thanks: 0
Thanked 0 Times in 0 Posts
@Kwag,

Kwag wrote:
Quote:
Something is WAY wrong bp
My encoding with the current script and 2.52 is much faster than with 2.08.
Have you tried deinstalling 2.08 completely, and then installing 2.52
The quality I have achieve now has surpassed any previous encoding I have ever done before. There's just no comparison
I uninstalled avisynth 2.08 before installing 2.5.2. Everything runs without
errors, but Tok file predictions are much lower than 2.08 for the same
resolutions. Encoding times are 15+ hours at 352x240 instead
of 5 to 6 with v2.08. Filesize is also gaining weight with v2.5.2. I don't
know what magic you're using but I can't seem to duplicate anything
close to the picture quality you've getting

LoadPlugin("E:\DVD BACKUP\1 - DVD2KVCD\3 - MOVIESTACKER\Filters25\MPEG2Dec3.dll")
LoadPlugin("E:\DVD BACKUP\1 - DVD2KVCD\3 - MOVIESTACKER\Filters25\Unfilter.dll")
LoadPlugin("E:\DVD BACKUP\1 - DVD2KVCD\3 - MOVIESTACKER\Filters25\STMedianFilter.dll")
## Defined Variables and Constants ##
#
MaxTreshold = 1.58
scd_trigger = 15 # Scene change trigger value.
cf = 0 # Current frame.
lf = 0 # Last frame
val = 0 # Dynamic value applied to filters
#
####

## Main section and static filters ###
#

Mpeg2Source("D:\Temp\movie.d2v")

Limiter()
UnFilter(50, 50)
BicubicResize(528,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 and Scene Change Detection ##
#
FrameEvaluate("cf = YDifferenceToNext()")
FrameEvaluate("val = (cf / 16) + 0.1")
ScriptClip("((cf - lf) < scd_trigger) ? (val < MaxTreshold) ? MergeLuma(blur(val)) : MergeLuma(blur(MaxTreshold)) : MergeLuma(blur(1.5))")
#
####

#LetterBox( Your_Values_Here ) # Depends on situation. Use MovieStacker!
#AddBorders( Your_Values_Here ) # Depends on situation. Use MovieStacker!
Limiter()
FrameEvaluate("lf = YDifferenceToNext()")
#
####

-bp
Reply With Quote
  #245  
06-02-2003, 09:36 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
Hi bp,

Could this be a processor related issue
I'm on a P4 @1.6Ghz. Are you on Intel or AMD

-kwag
Reply With Quote
  #246  
06-02-2003, 10:54 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
New script posted

There was an almost invisible problem on the previous posted script. It was very hard do see, but it was present if you looked at your .avs and moved frame by frame with VirtualDub. The third frame after every scene change was slightly blurred, in comparison to the adjacent frames. It's been squashed I also added a "Version" to the script, so we can all keep track of the last date/time modified. I hope this script can now create a basic framework so we all can grow it, and apply different filters (if nedded!) for different filtering strategies.

-kwag
Reply With Quote
  #247  
06-02-2003, 11:07 PM
DKruskie DKruskie is offline
Free Member
 
Join Date: May 2003
Location: Michigan
Posts: 147
Thanks: 0
Thanked 0 Times in 0 Posts
Im using the newest script posted, but while the movie is encoding I get this green bar along the right side in TMPGenc. Does anyone know what causes this?..Here is my script from TOK

## 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 = 15 # Scene change trigger value.
nf = 0 # Current frame.
lf = 0 # Last frame
val = 0 # Dynamic value applied to filters
#
####

## Main section and static filters ###
#
Mpeg2Source("C:\DVD\matrix.d2v")
Limiter()
UnFilter(50, 50)
BicubicResize( 352,240,0,0.6,8,0,740,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 and Scene Change Detection ##
#
FrameEvaluate("lf = YDifferenceToNext()")
FrameEvaluate("nf = YDifferenceToNext()")
FrameEvaluate("val = (lf / 16) + 0.1")
ScriptClip("((nf - lf) < scd_trigger) ? (val < MaxTreshold) ? \
MergeLuma(blur(val)) : MergeLuma(blur(MaxTreshold)) : \
( (sign(nf-lf)) != -1) && (val < MaxTreshold) ? MergeLuma(blur(val)) : MergeLuma(blur(.75)) ")
#
####

#LetterBox( 16,16,16,16 ) # Depends on situation. Use MovieStacker!
#AddBorders( 16,16,16,16 ) # Depends on situation. Use MovieStacker!
Limiter()
#
####
AssumeFPS(23.976)
LoadPlugin("C:\TOK\ToK_EXTRAS\Sampler\Sampler-2.5.dll")
oldfps = framerate
interval = round((FrameCount/24)/59.940)/10
nFrames = round(24)
SelectRangeEvery( (round(framecount/interval)),nFrames)


David
Reply With Quote
  #248  
06-02-2003, 11:34 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 DKruskie
Im using the newest script posted, but while the movie is encoding I get this green bar along the right side in TMPGenc.
What green bar David

-kwag
Reply With Quote
  #249  
06-03-2003, 05:27 AM
girv girv is offline
Free Member
 
Join Date: Sep 2002
Posts: 108
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to girv
Quote:
Originally Posted by kwag
Quote:
Originally Posted by girv
Have you considered using a non-linear motion->blur function?
No, because the whole idea of the linear adaptation is indeed to produce the sharpest result on slowest motion,
Yeah I get that, I was just floating the idea of a nonlinear function as it could possibly produce visually better results - less blurring on more low motion scenes, but increased blurring with higher motion. Im normally working with low quality non-DVD sources so I'd like to maintain as much noticeable detail as possible, only blurring when it won't be noticed.

Ignore me, Im just thinking "out loud"

Quote:
Originally Posted by kwag
Quote:
Originally Posted by girv
I'm also not sure if I agree with lf=YDifferenceToNext being at the end of the script,
That's just to read the value of the following frame, and use it as the variable as last frame for comparison on the next iteration
Yep, but with the line at the end I thought you might be comparing the filtered current frame with the non-filtered next frame (which seemed wrong), but I'm not sure which next frame (filtered or not) AVISynth would use for YDifferenceToNext (sh0dan?)

Anyway you've changed the script now so it doesn't matter
Reply With Quote
  #250  
06-03-2003, 05:41 AM
girv girv is offline
Free Member
 
Join Date: Sep 2002
Posts: 108
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to girv
Quote:
Originally Posted by kwag
The third frame after every scene change was slightly blurred, in comparison to the adjacent frames.
I've been experimenting with blurring 2-3 frames after the scene change, the theory being that at 24fps 3 frames ~= 0.1s which is the shortest time interval your eyes can react to (like your eyes run at 10Hz :). Should give more compression for no visual difference...I think :)
Reply With Quote
  #251  
06-03-2003, 07:38 AM
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 girv

I've been experimenting with blurring 2-3 frames after the scene change, the theory being that at 24fps 3 frames ~= 0.1s which is the shortest time interval your eyes can react to (like your eyes run at 10Hz . Should give more compression for no visual difference...I think
Yes, it might be a good idea to try, maybe blur the two frames after the scene change I'm not sure if I would blur 3 frames though , it might be visible. How about bluring the frame "before" the scene change, and 2 frames "after" the scene change
Right now, the script blurs only the frame after a scene change, using mergeluma(blur(MaxTreshold)).

-kwag
Reply With Quote
  #252  
06-03-2003, 09:00 AM
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
I've found what's possibly a bug in AviSynth and/or mergeluma.
After doing a test encode, I see some scenes where there's no scene change at all, and one frame slightly increases brightness. It looks like a small "flash". I've traced the problem to be when mergeluma blur value makes a transition from around ~0.180 to ~0.205.
I've corrected this by changing the minimum value to be 0.2.
So now mergeluma fluctuates between min=0.2 to max=1.58.
I have been able to reproduce the problem consistently. Here's a very short mpeg file which shows the effect:

www.kvcd.net/flash.mpg

And here's the same clip with the corrected min of .2 showing a clean clip:
www.kvcd.net/no-flash.mpg

The current script posted corrected this.

-kwag
Reply With Quote
  #253  
06-03-2003, 09:04 AM
Jellygoose Jellygoose is offline
Free Member
 
Join Date: Jun 2002
Location: Germany
Posts: 1,288
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by kwag
Hi bp,

Could this be a processor related issue
I'm on a P4 @1.6Ghz. Are you on Intel or AMD

-kwag
I'm on AMD Athlon XP1800+ and the new script looks beautiful...
__________________
j3llyG0053
Reply With Quote
  #254  
06-03-2003, 09:18 AM
girv girv is offline
Free Member
 
Join Date: Sep 2002
Posts: 108
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to girv
Quote:
Originally Posted by kwag
I've found what's possibly a bug in AviSynth and/or mergeluma
Aggh! Beat me to the Submit button :D I'd noticed this as well and the 0.1-0.2 transition point. Thanks for the fix!
Reply With Quote
  #255  
06-03-2003, 09:20 AM
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 girv
Quote:
Originally Posted by kwag
I've found what's possibly a bug in AviSynth and/or mergeluma
Aggh! Beat me to the Submit button I'd noticed this as well and the 0.1-0.2 transition point. Thanks for the fix!

I just PM'ed sh0dan about it

-kwag
Reply With Quote
  #256  
06-03-2003, 09:46 AM
audioslave audioslave is offline
Free Member
 
Join Date: Mar 2003
Location: Sweden
Posts: 725
Thanks: 0
Thanked 0 Times in 0 Posts
Just a quick (and stupid ) question...

Where in the script are you supposed to put the lines:

FieldDeinterlace()
or
Telecide()
Decimate()

Am I correct to presume I should put them directly after the first Limiter() line?

Newbie warning, I know... Sorry!
Reply With Quote
  #257  
06-03-2003, 09:48 AM
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 audioslave
Just a quick (and stupid ) question...

Where in the script are you supposed to put the lines:

FieldDeinterlace()
or
Telecide()
Decimate()

Am I correct to presume I should put them directly after the first Limiter() line?

Newbie warning, I know... Sorry!
Put them right after the source line where you open the .d2v

-kwag
Reply With Quote
  #258  
06-03-2003, 09:50 AM
audioslave audioslave is offline
Free Member
 
Join Date: Mar 2003
Location: Sweden
Posts: 725
Thanks: 0
Thanked 0 Times in 0 Posts
Thanks kwag! I just wanted to be sure to get it right.
You're the Man!
Reply With Quote
  #259  
06-03-2003, 10:01 AM
sh0dan sh0dan is offline
Free Member
 
Join Date: Mar 2003
Posts: 89
Thanks: 0
Thanked 0 Times in 0 Posts
I need a simple script to reproduce this.

Does this happend with or without mergeluma? (When you just blur)?
__________________
Regards, sh0dan // VoxPod
Reply With Quote
  #260  
06-03-2003, 10:02 AM
DorvalCS DorvalCS is offline
Free Member
 
Join Date: Dec 2002
Location: Montreal, Canada
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via AIM to DorvalCS
Hi Kwag,

In testing the new script I have noticed that on scenes with very little action the image seems to shift from left to right.... The Scene I'm looking at is from the movie "Meet the Parents" when they are at the dinner table. You can see the glass wine move from left to right... I have just tried this a couple of minutes ago with the last script you posted.

I don't notice this effect in scene with action/movement... Have you notice the same?
__________________
DorvalCS
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




 
All times are GMT -5. The time now is 07:29 PM  —  vBulletin © Jelsoft Enterprises Ltd