Log in

View Full Version : Let's share your favorite Avisynth scripts! :)


Pages : 1 [2] 3

lovelegend
4th August 2002, 19:40
@Shayne
as theReal said, I haven't seen a script using filters before ivtc too... although I didn't know the reason (thanks theReal for the explanation... :) )

@All
I've got another problem using Acaila's filter chain... here's my script of trying to use Acaila's filter chain:


movie=AVISource("D:\movie.avi")
LoadPlugin("F:\ASDLL\mpeg2dec\mpeg2dec.dll")
LoadPlugin("F:\ASDLL\SmoothHiQ\SmoothHiQ.dll")
LoadPlugin("F:\ASDLL\TemporalSoften2\TemporalSoften2.dll")
Temporal=movie.TemporalSoften2(1,5,25).MergeChroma(movie)
Spatial=SmoothHiQ(Temporal,7,25,15,192,3).MergeLuma(Temporal)
return Spatial

But the script gave me the error message: Avisynth: illegal instruction at 0x00dfed28 (I'm using avisynth 2.02)

Hope I didn't do any silly mistake as I did last time... :D

@theReal
I remember you said I didn't need to write very fancy script in the beginning, but I just wanna try other people's filter chains as a reference. :)

Dreassica
4th August 2002, 19:44
Try using a more up to date version of Avisynth!!

theReal
4th August 2002, 20:05
@lovelegend, I learned a lot in this thread, too. I didn't know before about the benefits of seperate luma and chroma filtering.
It can be very good for tv-captures, though.

For most normal DVDs I'm still a fan of no filtering and the strongest filter I accept is Precise Bilinear Resizing in VDub instead of neutral Bicubic in avisynth :)

Marc FD
4th August 2002, 20:37
@lovelegend
sounds like it needs an emms somewhere. lemme guess, you used Bicubic resize of avs b5 or something like that ??

To process TV sources, i will use the new filters of the "smooth in time and space" thread. they are still experimental, but i think there would be soon improvements there : Convolution3D and MAM are well suited for very noisy sources or to get a very good quality (for DVDs )

Cnr2 will be added in the CVS when it would be good tested

Wilbert
5th August 2002, 09:56
He is using 2.02 and not 1.0b5. There's a problem with MergeChroma in 2.02. Try using a newer version given in: http://forum.doom9.org/showthread.php?s=&postid=161254#post161254

Shayne
7th August 2002, 03:10
Hi again i am tring to run these filter chains but keep getting the following error

"Script error: there is no function named mergechroma"

is this an external function and if so where can we download it ........ and MergeLuma.

Thanks for ur time

theReal
7th August 2002, 03:16
http://forum.vcdhelp.com/userguides/99389.php

it's the "Merge 1.0" package - each command is a seperate dll

Shayne
7th August 2002, 03:19
I thank u my friend for that speedy reply

jarthel
8th August 2002, 12:16
You mentioned this AVS script in one of your messages here.

-----------
Source=MPEG2source("D:\DivX Rip\DivX\X-Men\X-Men_64bit.d2v").Crop(16,74,696,432)

LumaFiltered=Source.TemporalSoften2(1,5,25)
ChromaFiltered=LumaFiltered.Cnr2().MergeLuma(LumaFiltered)

Movie=ChromaFiltered.Trim(0,136800).BicubicResize(672,288,0,0.5)
Credits=Source.Trim(136801,0).TemporalSmoother(10).BilinearResize(672,288)

Return Movie+Credits
-----------

Where is the good place to place an IVTC line?

Thanks

Jayel

Richard Berg
8th August 2002, 12:19
Before any smoothing. The sharper the comb artifacts, the easier they are to detect.

Acaila
8th August 2002, 12:32
I've never had to do any IVTC (yet), but isn't it also better to do it before cropping so the deinterlace filter can use the full frame/field resolution?

In which case this would mean:
Source=MPEG2source("D:\DivX Rip\DivX\X-Men\X-Men_64bit.d2v").PutWhateverIVTCFiltersYouWantToUseInThisSpot.Crop(16,74,696,432)

Richard Berg
8th August 2002, 12:37
I can only see it mattering if you crop an odd number of pixels off the top, in which case you'll simply need to flip a parameter somewhere.

Disclaimer: I didn't write any of the IVTC plugins.

soulfx
8th August 2002, 13:22
If levels and tweak are nessisary use them before the IVTC as well.

jarthel
8th August 2002, 13:28
just a question

I just made this quick AVS file
----
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\mpeg2dec.dll")
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\decomb.dll")
#LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\InverseTelecine.dll")
#LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\Avisynth_Spatial.dll")
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\TemporalSoften2.dll")
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\SimpleResize.dll")
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\SmoothHiQ.dll")
LoadPlugin("D:\downloads\windows\utilities\divx\GordianKnot\cnr2.dll")

Source=mpeg2source("D:\dvdrips\dual7\dual7.d2v").Crop(16,74,696,432)

LumaFiltered=Source.TemporalSoften2(1,5,25)
ChromaFiltered=LumaFiltered.Cnr2().MergeLuma(LumaFiltered)

Movie=ChromaFiltered.Trim(0,136800).BicubicResize(672,288,0,0.5)
Credits=Source.Trim(136801,0).TemporalSmoother(10).BilinearResize(672,288)

Return Movie+Credits
----------

it's telling me it can't find mergeluma function? Where can I download the dll? Thanks

Jayel

ps. I'm using avisythn 1.06

Wilbert
8th August 2002, 13:38
it's telling me it can't find mergeluma function? Where can I download the dll? Thanks

Download either the external plugin (see faq Q12), or download AviSynth v2.04 http://sourceforge.net/project/showfiles.php?group_id=57023&release_id=103898.

jarthel
8th August 2002, 14:59
I encode only animes.

Can you suggest temporalsoften2 settings is possible? The settings will be use in the code you posted.

Thanks :)

Jayel

Acaila
8th August 2002, 15:15
Anime is an entirely different story. You'll need both spatial and temporal filters there, not just temporal. With anime you'll need filtering to get rid of artifacts, with normal movies you should use filtering to get rid of noise only because getting rid of artifacts kills too much detail.
For TemporalSoften2 I would think (1,10,15) should do the trick. But I'd use it on both luma and chroma plane, not just luma as I did in my chain.

But anyway, just do a search for anime and you'll find a hundred or so filter suggestions.

Ps. Anyone else agree with me that we need a seperate anime/cartoon encoding section? There's enough posts around (spread over all sections) that could justify it I believe.

Marc FD
8th August 2002, 15:48
Anime is something else. :cool:
@acalia
I do tons of anime encode and what you said makes sense ;)

You can do temporal filtering with separate luma/chroma
without mergechroma/mergeluma :

TemporalSoften2(.,.,0) for luma only
Cnr2() for chroma only

Acaila
8th August 2002, 16:38
Marc FD wrote:
You can do temporal filtering with separate luma/chroma
without mergechroma/mergeluma :

TemporalSoften2(.,.,0) for luma only
Cnr2() for chroma onlyWell yes, but I meant that slight temporal filtering alone isn't enough for anime, so there's no need (IMO) to split the planes up with different filters, might as well use one filter (TemporalSoften2) on both planes at once.

And could you please get my nick right by now, it's Acaila, not Acalia :D

Ps. If I'm not mistaken (Dividee please correct me if I am), but using TemporalSoften2(..,..,0) will only start to smooth luma if there is no chroma difference. It does not smooth luma or chroma seperately, but only when both thresholds are passed.
So to smooth luma regardless of chroma value you'll still need TemporalSoften2(..,..,255).MergeChroma(..)

Marc FD
8th August 2002, 16:55
hmm, i didn't really thinked at that too ...
I think i should better work on my filters :)

and sorry for your nick, i always write it wrong, and sometimes i doesn't check. no offense :)

Maybe a MAM with strong settings could do some "magic". i hope at least, because it's why i created it :D

dividee
8th August 2002, 17:49
Ps. If I'm not mistaken (Dividee please correct me if I am), but using TemporalSoften2(..,..,0) will only start to smooth luma if there is no chroma difference. It does not smooth luma or chroma seperately, but only when both thresholds are passed.

No, that's the opposite. TemporalSoften smooth luma and chroma separately (but SpatialSoften smooth only if luma and chroma passed).
That's one of the reason for it's speed.

Note that if you use avisynth 2.04, you don't need the TemporalSoften2 plugin anymore, I replaced the built-in TemporalSoften with my implementation.

Acaila
8th August 2002, 19:05
Oh.

Well thanks for clearing that up :)

WarpEnterprises
8th August 2002, 21:36
I want to add a function which helps me quite a lot.
It is inspired by the VD-plugin "rmPAL" by Peter Schweizer (see here) (http://homepages.fh-giessen.de/~hg6423/rmPal/index.englische-uebersetzung--translated-into-english.html) , which removes the alternating line colors often seen when capturing from video.

LoadPlugin("c:\programme\videotools\plugins\mpeg2dec.dll")
# ...
# your code
# ...
function rmPal(clip c) {
c = c.AssumeFrameBased.SeparateFields.AssumeFrameBased
MergeChroma( c, c.BlendFields(), 1 )
AssumeFieldBased()
return Weave()
}

This blends the color only of two lines per field.
The AssumeFrameBased are necessary to fool BlendFields and SeparateFields to always work.

theReal
8th August 2002, 21:49
@dividee, do you know if there is any updated avisynth reference that includes all the internal changes being made since the original reference was published?
It seems to me that there are a lot of commands and possibilities in newer versions of avisynth that I only hear of by chance (like in this thread :))

baz00ie
8th August 2002, 22:21
Well, i've been following the "Smooth in Time and Space..." thread - http://forum.doom9.org/showthread.php?s=&threadid=29829 - and i've put together a simple script that provides excellent results when applied to very noisy video.

#################################################
# ASYNTH v2.04 De-Interlace + Noise reduction #
#################################################

LoadPlugin("C:\Programs\avisynth\Convolution3D.dll")
LoadPlugin("C:\Programs\avisynth\TomsMoComp.dll")
LoadPlugin("C:\Programs\avisynth\mam.dll")
LoadPlugin("C:\Programs\avisynth\MPEG2DEC.dll")
LoadPlugin("C:\Programs\avisynth\SmoothHiQ.dll")
LoadPlugin("C:\Programs\avisynth\Cnr2.dll")

AVISource("D:\...")

Convolution3D(8,16,0)

TomsMoComp(1,0,1)

MAM(TemporalSmoother(3,1),SmoothHiQ(3,10,0,75,1))

Cnr2()

SmoothHiQ(3,0,15,75,1)

Tweak(hue=9.0)

#end

I've found that doing all the smoothing in the YUV colorspace seemed to add a little green to the image... Tweak(9.0) shifts it back about 5%.

To see the results, please download the "before n' after" images here: http://www3.sympatico.ca/joseph.cooke/de-noise_results.zip

Thank you, to Marc FD, Vlad59 and everyone else for there hard work in providing some great video tools.

Later
baz

jarthel
8th August 2002, 23:46
Originally posted by Acaila
Anime is an entirely different story. You'll need both spatial and temporal filters there, not just temporal.

Thanks for the reply acaila. But can you tell me where should I place these filters in relation to your code.

Thanks

Jayel

ps. I'm fairly new to this manual advance editing as I've used gknot ever since. :)

dividee
8th August 2002, 23:59
@theReal
Things are getting into place, and documentation is catching up.
Look here (still largely incomplete, anybody can help):
avisynth.org
and here (sh0dan's doc update):
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/avisynth2/avisynth/docs/index.html

lovelegend
9th August 2002, 08:11
Thanks jarthel and Acaila (I hope didn't spell wrong... :D )
I thought anime was the same as movie.... ^^"
Just knew that I needed a different filter chain for it... ^^"
I think I need to search and read a lot of threads in this "Doom9 Avisynth Library" again.... ;) :D

MaTTeR
9th August 2002, 14:38
Originally posted by Acaila
@Marc FD:
However on closer examination I noticed a kind of 'chroma ghosting' effect. During fast motion the residual chroma image would linger a frame or two behind the real image (which at 25fps during playback won't be noticable, that's why I didn't see it earlier). This can probably be reduced/avoided by using custom settings, however it still means the default values are too aggressive.

Marc FD,

Have the default values been tweaked to address the ghosting issue Acaila mentioned? Or is this more of an internal code problem that your looking into? I plan on doing some tests real soon with X-Men so I'm just curious. Thanks for the nice work on the filter.

theReal
9th August 2002, 15:23
@dividee, thanks! Those links help a lot! :)

vidiot
12th August 2002, 22:12
...havenīt read everything in this thread...,
but did someone mentioned the beautyful script:
Edit with avysnth @vcdhelp.com?

http://forum.vcdhelp.com/userguides/99389.php

and another (old, from 2001...), which helped me much to understand
how avisynth works.
I couldnīt find this thread anymore @vcdhelp, but on my HD:
(Hope nobody gets angry about posting such scripts from somewhere else...)


#######################################################
# Copyright 2001 Eric Warnke
# Free for non-commercial use, please give credit
#######################################################
#
# Generic .avi to VCD, and SVCD conversion
# script. Allows converion between PAL->NTSC
# frame rates. Please use AVISynth 1.0b3, as not all
# functions work under 0.3
#
# Follow directions and uncomment lines where necessary
# when done you should have a complete conversion sctipt.
# For simplicity I assume..
# VCD = 352x240/288 with a frmae rate of 23.976,29.97/25
# SVCD = 480x480/576 @ 23.976,29.97/25
#
# I do not answer simple questions at above email address
# but I will take any corrections/alterations.
#
########################################################
#
# Load video source
#
# Uncomment ONE of the following lines to load
# your source. Make sure to include the full path to
# your avi source or this may not work.
#
#1 Use for most normal .avi files including Divx
#AVIFileSource("moviename.avi")
#2 Use next line only for LARGE .avi's
#OpenDMLSource("moviename.avi")
#3 Use Next line only for virtualdub/avi_io segmented .avi's
#SegmentedAVISource("moviebase.avi")
#4 Use for odd formats that play though MP see AVIsynth doc
# for more info. Can open MS DV files.
#DirectShowSource("movie.mpg")
#4a if you notice off colored lines when using Directshowsource
# use the following line
#FixBrokenChromaUpsampling()
#
#########################################################
#
# Load external audio source ( if necessary )
#
# This will overlay an .wav file over the movie. Great for use
# with program like DVD2AVI that produce a seperate .wav file.
#
#1 If necessary load external .wav file for movie
#audioDub ( WAVSource("Mymovieaudio.wav") )
#2 bump audio if necessary -in seconds-
#delayaudio(1)
#
##########################################################
#
# Video size / bordering
#
# Use one of the following to get a properly resized borderd
# video based on input and output. All resize values have
# been rounded to the nearest 16 to prevent macroblock waste.
#
# NOTE: These are only applicable to PROGRESSIVE material
# do not attempt to use these for interlaced material as
# you will end up with a big mess.
#
# If you input is -- 4:3 -- and you are going to ....
# NTSC and a format of
#1 VCD
#bicubicresize(352,240)
#2 SVCD
#bicubicresize(480,480)
# PAL and a format of
#3 VCD
#bicubicresize(352,28
#4 SVCD
#bicubicresize(480,576)
#
# If you input is -- 16:9 -- and you are going to ....
# NTSC and a format of
#5 VCD
#bicubicresize(352,176).addborders(0,32,0,32)
#6 SVCD
#bicubicresize(480,352).addborders(0,64,0,64)
# PAL and a format of
#7 VCD
#bicubicresize(352,20.addborders(0,40,0,40)
#8 SVCD
#bicubicresize(480,432).addborders(0,72,0,72)
#
# If you input is -- 2.35:1 -- and you are going to ....
# NTSC and a format of
#9 VCD
#bicubicresize(352,144).addborders(0,48,0,4
#10 SVCD
#bicubicresize(480,272).addborders(0,104,0,104)
# PAL and a format of
#11 VCD
#bicubicresize(352,160).addborders(0,64,0,64)
#12 SVCD
#bicubicresize(480,320).addborders(0,128,0,12
#
##########################################################
#
# Misc functions
#
#1 Clean up head noise or other garbage at top and bottom
# of the video frame by adding black borders VCD only
#letterbox(8,
#2 Clean up head noise SVCD
#letterbox(16,16)
#3 If you get a technicolor mess as your mpeg output, this option
# may be necessary. If you have YUY2 or huffyuv as source and
# going to CCE you will probably need this option.
#ConvertToRGB()
#4 PC -> TV brightness correction
#levels(0,1,255,16,239)
#5 Audio rate correction. If your audio is not already 44,100
# many encoders will complain, use this to correct
#resampleaudio(44100)
#6 Fix for broken codecs that decompress upside-down
#FlipVertical()
#
#########################################################
#
# Frame rate converion ( if necessary )
#
# Uncomment one of the assumefps or change fps lines if
# frame rate conversion is necessary. If you video is
# already in one of the three following 23,976,25,29,97
# and not chaning it's format you do not need to use
# one of the following lines.
#
# First three add and drop frames, last two speed/slow
# video and audio to proper FPS ( 1.0b3 only ) it's a
# better method, but is only applicable to two specific
# conversion senarios.
#
#1 Irregualr FPS converison to NTSC film rate
# use this for 10,15,20 -> NTSC film conversion
#ChangeFPS(23.976)
#2 Irregualr FPS -> NTSC frame rate
# use for 10,15,20 -> NTSC conversion
#ChangeFPS(29.76)
#3 Irregular FPS to PAL frame rate
#ChangeFPS(25)
#4 NTSC film 23.976 -> PAL 25
#assumeFPS(25,sync_audio=true)
#5 PAL 25 -> NTSC film 23.976
#assumeFPS(23.976,sync_audio=true)
#
#
# Thats all folks, assuming you have everything installed properly
# You can now open this file in TMPGenc, CCE, MP, and most other video
# applications.
#
# END OF SCRIPT


-----------
Hope this helps

Harald

Marc FD
18th August 2002, 10:14
@Matter

in Cnr2 the values are the defaults of the VDub version.
Wide luma 192/45 near chroma 255/37 (from what i remember)
i think you would get better results using Cnr2 BEFORE tempsoften.

matrix
18th August 2002, 17:33
I felt somewhat shy about posting this, it's really long, but then it looks so good; so.... why not?
So, here it goes:
It creates a motion menu with animated thumbnails.
x1=480
y1=480
x2=60
y2=60
x3=160
y3=160
hgap1=50
hgap2=20
hgap3=20
hgap4=20
hgap5=20
hgap6=50
vgap1=140
vgap2=40
vgap3=80
dur=980
tf1=0
tf2=0
tf3=0
tf4=0
tf5=0
tf6=0
tf7=0
bvid=AviSource("C:\Movie\menu.avi").AddBorders(24,28,24,16).BilinearResize(1920,1920).Animate(80,130,"subtitle","the",960,260,80,80,"Rackham Italic",0,$FFFFFF,"the",920,260,130,130,"Rackham Italic",96,$FFFFFF).Animate(100,150,"subtitle","LORD",1960,360,100,100,"Snipple",144,$EEAD0E,"LORD",720,360,150,150,"Snipple",144,$EEAD0E).Animate(100,150,"subtitle","of the",-240,348,100,100,"Airstream",96,$FFFFFF,"of the",1032,348,150,150,"Airstream",96,$FFFFFF).Animate(130,180,"subtitle","RINGS",960,464,130,130,"Europa",0,$FFD700,"RINGS",676,484,180,180,"Europa",144,$FFD700).Subtitle("the",920,260,130,550,"Rackham Italic",96,$FFFFFF).Subtitle("LORD",720,360,150,550,"Snipple",144,$EEAD0E).Subtitle("of the",1032,348,150,550,"Airstream",96,$FFFFFF).Subtitle("RINGS",676,484,180,550,"Europa",144,$FFD700).Animate(550,600,"subtitle","the",920,260,550,550,"Rackham Italic",96,$FFFFFF,"the",960,260,600,600,"Rackham Italic",0,$FFFFFF).Animate(550,600,"subtitle","LORD",720,360,550,550,"Snipple",144,$EEAD0E,"LORD",1960,360,600,600,"Snipple",144,$EEAD0E).Animate(550,600,"subtitle","of the",1032,348,550,550,"Airstream",96,$FFFFFF,"of the",-240,348,600,600,"Airstream",96,$FFFFFF).Animate(550,600,"subtitle","RINGS",676,484,550,550,"Europa",144,$FFD700,"RINGS",960,464,600,600,"Europa",0,$FFD700).BilinearResize(x1,y1).trim(0,dur).Subtitle("Main Menu",30,400,0,980,"Johnny Fever",16,$BDB76B).Subtitle("Play Movie",368,400,0,980,"Johnny Fever",16,$BDB76B).Subtitle("1. The Bridge",50,210,0,980,"Times New Roman",13,$CDAF95).Subtitle("of Khazad-Dum",50,223,0,980,"Times New Roman",13,$CDAF95).Subtitle("2. Lothlorien",130,210,0,980,"Times New Roman",13,$CDAF95).Subtitle("3. The Mirror",210,210,0,980,"Times New Roman",13,$CDAF95).Subtitle("of Galadriel",210,223,0,980,"Times New Roman",13,$CDAF95).Subtitle("4. Farewell",290,210,0,980,"Times New Roman",13,$CDAF95).Subtitle("to Lorien",290,223,0,980,"Times New Roman",13,$CDAF95).Subtitle("5. Parth ",370,210,0,980,"Times New Roman",13,$CDAF95).Subtitle("Galen",390,223,0,980,"Times New Roman",13,$CDAF95).Subtitle("6. The Departure",50,310,0,980,"Times New Roman",13,$CDAF95).Subtitle("of Boromir",50,322,0,980,"Times New Roman",13,$CDAF95).Subtitle("7. Credits",370,310,0,980,"Times New Roman",13,$CDAF95)
tvid1=AviSource("C:\Movie\t1.avi").BilinearResize(x2,y2).Trim(tf1,tf1+dur)
tvid2=AviSource("C:\Movie\t2.avi").BilinearResize(x2,y2).Trim(tf2,tf2+dur)
tvid3=AviSource("C:\Movie\t3.avi").BilinearResize(x2,y2).Trim(tf3,tf3+dur)
tvid4=AviSource("C:\Movie\t4.avi").BilinearResize(x2,y2).Trim(tf4,tf4+dur)
tvid5=AviSource("C:\Movie\t5.avi").BilinearResize(x2,y2).Trim(tf5,tf5+dur)
tvid6=AviSource("C:\Movie\t6.avi").BilinearResize(x2,y2).Trim(tf6,tf6+dur)
tvid7=AviSource("C:\Movie\t7.avi").BilinearResize(x2,y2).Trim(tf7,tf7+dur)
V01=AviSource("C:\Movie\t1.avi").AddBorders(0,0,0,60)
V02=AviSource("C:\Movie\t2.avi").AddBorders(0,0,0,60)
V03=AviSource("C:\Movie\t3.avi").AddBorders(0,0,0,60)
V04=AviSource("C:\Movie\t4.avi").AddBorders(0,0,0,60)
V05=AviSource("C:\Movie\t5.avi").AddBorders(0,0,0,60)
V06=AviSource("C:\Movie\t6.avi").AddBorders(0,0,0,60)
V07=AviSource("C:\Movie\t7.avi").AddBorders(0,0,0,60)
V01=Trim(BicubicResize(V01,160,160),1,138).Subtitle("1",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("The Bridge of Khazad-Dum",2,158,0,980,"Johnny Fever",12,$CD9B1D)
V02=Trim(BicubicResize(V02,160,160),141,278).Subtitle("2",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("Lothlorien",48,158,0,980,"Johnny Fever",13,$CD9B1D)
V03=Trim(BicubicResize(V03,160,160),281,418).Subtitle("3",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("The Mirror of Galadriel",10,158,0,980,"Johnny Fever",12,$CD9B1D)
V04=Trim(BicubicResize(V04,160,160),421,558).Subtitle("4",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("Farewell to Lorien",18,158,0,980,"Johnny Fever",13,$CD9B1D)
V05=Trim(BicubicResize(V05,160,160),561,698).Subtitle("5",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("Parth Galen",34,158,0,980,"Johnny Fever",14,$CD9B1D)
V06=Trim(BicubicResize(V06,160,160),701,838).Subtitle("6",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("The Departure of Boromir",8,158,0,980,"Johnny Fever",11,$CD9B1D)
V07=Trim(BicubicResize(V07,160,160),841,978).Subtitle("7",7,133,0,980,"Johnny Fever",13,$CD9B1D).Subtitle("Credits",56,158,0,980,"Johnny Fever",14,$CD9B1D)
V01=Reverse(FadeOut(Reverse(FadeOut(V01,25)),25))
V02=Reverse(FadeOut(Reverse(FadeOut(V02,25)),25))
V03=Reverse(FadeOut(Reverse(FadeOut(V03,25)),25))
V04=Reverse(FadeOut(Reverse(FadeOut(V04,25)),25))
V05=Reverse(FadeOut(Reverse(FadeOut(V05,25)),25))
V06=Reverse(FadeOut(Reverse(FadeOut(V06,25)),25))
V07=Reverse(FadeOut(Reverse(FadeOut(V07,25)),25))
tvid8=V01+V02+V03+V04+V05+V06+V07
h1=hgap1+x2
h2=hgap1+x2+hgap2+x2
h3=hgap1+x2+hgap2+x2+hgap3+x2
h4=hgap1+x2+hgap2+x2+hgap3+x2+hgap4+x2
h5=hgap1+x2+hgap2+x2+hgap3+x2+hgap4+x2+hgap5+x2
h6=hgap1+x2+50+x3
h7=50+x2+hgap6
v1=vgap1
v2=vgap1+y2
v3=vgap1+y2+vgap2
v4=vgap1+y2+vgap2+y2
v5=vgap1+y2+vgap2+y2+100
part1=bvid.Crop(0,0,x1,v1)
part2=StackHorizontal(bvid.Crop(0,v1,hgap1,y2),tvid1,bvid.Crop(h1,v1,hgap2,y2),tvid2,bvid.Crop(h2,v1,hgap3,y2),tvid3,bvid.Crop(h3,v1,hgap4,y2),tvid4,bvid.Crop(h4,v1,hgap5,y2),tvid5,bvid.Crop(h5,v1,hgap6,y2))
part3=bvid.Crop(0,v2,x1,vgap2)
part4=StackHorizontal(bvid.Crop(0,v3,hgap1,y2),tvid6,bvid.Crop(h1,v3,hgap2+30,y2),tvid8.Crop(0,0,x3,y2),bvid.Crop(h6,v3,30+hgap5,y2),tvid7,bvid.Crop(h5,v3,hgap6,y2))
part5=StackHorizontal(bvid.Crop(0,v4,h1+50,100),tvid8.Crop(0,y2,x3,100),bvid.Crop(h6,v4,h7,100))
part6=bvid.Crop(0,v5,x1,vgap3)
mvid=StackVertical(part1,part2,part3,part4,part5,part6)
return mvid
I'll attach a pic of how it looks like, if "they"(the moderators) will make it show.
The larger thumbnail plays a few seconds from each chapter (this btw was "pko" idea), I liked it, and addopted it(with some minor changes).
The text is animated too, some words come from different directions, some zoom in, it looks nice, well, I like it.

Hmm.... How do I post that picture?

Edit.


Can't seem to be able to post that picture. ..something wrong with the forum database...(whatever that means):mad:

iago
18th August 2002, 17:45
@Acaila and everybody

This is my first attempt to use Acaila's filter chain in one of my rips, with a rather difficult to compress movie, aiming for 1CD 645000kb video size, using Koepi's latest (18082002-1) build :).

Encoding parameters will be:
1st pass: 6.UltraHigh/MPEG/Lumi enabled
2nd pass: 6.UltraHigh/MPEG or MODULATED/Lumi enabled
(unnecessary to mention other parameters I guess)

(Avisynth 2.04+)

Can you please analyze and verify that the following avs script is correct:
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\TemporalSoften2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")

SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452)

LumaFiltered=Source.TemporalSoften2(1,5,25)
ChromaFiltered=LumaFiltered.Cnr2().MergeLuma(LumaFiltered)
Movie=ChromaFiltered.Trim(0,205210).SimpleResize(512,272)
Credits=Source.Trim(205211,0).TemporalSmoother(10).BilinearResize(512,272)

Return Movie+Credits
----------------------------------------------------------------------

(My first try somehow crashed during encoding in VirtualDub 1.4.10 without any error messages, with my PC restarting, but I'm not sure if it was due to something wrong with the avs script above.)

And any other suggestions would surely be appreciated :).

Thanks a lot in advance,
iago

Marc FD
18th August 2002, 18:34
Originally posted by iago
@Acaila and everybody
Can you please analyze and verify that the following avs script is correct:
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\TemporalSoften2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")

SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452)

LumaFiltered=Source.TemporalSoften2(1,5,25)
ChromaFiltered=LumaFiltered.Cnr2().MergeLuma(LumaFiltered)
Movie=ChromaFiltered.Trim(0,205210).SimpleResize(512,272)
Credits=Source.Trim(205211,0).TemporalSmoother(10).BilinearResize(512,272)

Return Movie+Credits
----------------------------------------------------------------------


from what i now from Tempsoften now, this script is totally outdated ;)
try this :
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")

SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452)

TemporalSoften(1,5,0)
Cnr2()

Movie=Trim(0,205210).SimpleResize(512,272)
Credits=Source.Trim(205211,0).TemporalSmoother(10).BilinearResize(512,272)

Return Movie+Credits
----------------------------------------------------------------------
or maybe even that (faster and should be quite accurate)
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")

SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452).SimpleResize(512,272)

Movie=Trim(0,205210).TemporalSoften(1,5,0).Cnr2()
Credits=Source.Trim(205211,0).TemporalSmoother(10)

Return Movie+Credits
----------------------------------------------------------------------
and take a look on smooth in time and space, Convolution3D and MAM can be used to gain even more quality and compressibility !

iago
18th August 2002, 19:14
@Marc FD

Thanks a lot for the reply :). I'll try your settings asap.
And, yes, surely I'm keeping my eyes on the related avisynth threads, and admire all this great effort around.

Thanks again.
Best regards,
iago

matrix
18th August 2002, 22:45
Can't seem to be able to post that picture.
Here's what I'm talking about:

iago
18th August 2002, 23:02
@Marc FD

try this :
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")
SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452)
TemporalSoften(1,5,0)
Cnr2()
Movie=Trim(0,205210).SimpleResize(512,272)
Credits=Source.Trim(205211,0).TemporalSmoother(10).BilinearResize(512,272)
Return Movie+Credits
I think Line8 of the above script you provide should be corrected as:
Movie=Source.Trim(0,205210).SimpleResize(512,272)


and
or maybe even that (faster and should be quite accurate)
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")
SetMemoryMax(40)
Source=mpeg2source("D:\RIP\RIP.d2v").crop(0,11,718,452).SimpleResize(512,272)
Movie=Trim(0,205210).TemporalSoften(1,5,0).Cnr2()
Credits=Source.Trim(205211,0).TemporalSmoother(10)
Return Movie+Credits
I guess Line6 of the above script should be corrected as:
Movie=Source.Trim(0,205210).TemporalSoften(1,5,0).Cnr2()

Right? ;)

thanks,
iago

MoonWalker
18th August 2002, 23:11
Yes that's right..

Daring to ask
What exactly SetMemoryMax(40)does??

MoonWalker

iago
18th August 2002, 23:32
@MoonWalker

Thanks for confirming the scripts. :)

And,
Daring to ask
What exactly SetMemoryMax(40)does??
I remember this issue being discussed (in several threads here, one started by neuron2 as I recall) as a serious matter regarding the low performance/slowness of Avisynth 2.04. It was discussed that allocating more memory to versions since 1.0beta6 is required, because versions after 1.0beta6 have very limited memory usage.

Found it here: "Avisynth 2.04 is SLOOOOW !!! What gives?" thread.

so long,
iago

Marc FD
19th August 2002, 08:58
i use SMM(64) . personnaly i gain nothing, just a smoother playback and maybe some fps in a very long term (several hours)

@iago

Mhh, thinking of it, use Cnr2 BEFORE tempsoften, or you'll be ghosted to ill !

it gives :
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")
SetMemoryMax(40)
MPEG2source("D:\RIP\RIP.d2v").crop(0,11,718,452).SimpleResize(512,272)
TemporalSoften(1,5,0)
Cnr2()
Trim(0,205210)+Trim(205211,0).TemporalSmoother(10)
---------------------------------------------------------------------

iago
19th August 2002, 12:24
@Marc FD

use Cnr2 BEFORE tempsoften, or you'll be ghosted to ill !

it gives:
---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")
SetMemoryMax(40)
MPEG2source("D:\RIP\RIP.d2v").crop(0,11,718,452).SimpleResize(512,272)
TemporalSoften(1,5,0)
Cnr2()
Trim(0,205210)+Trim(205211,0).TemporalSmoother(10)
---------------------------------------------------------------------
I guess you mean rewriting the above script and using that one below:

---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")
SetMemoryMax(40)
MPEG2source("D:\RIP\RIP.d2v").crop(0,11,718,452).SimpleResize(512,272)
Cnr2()
TemporalSoften(1,5,0)
Trim(0,205210)+Trim(205211,0).TemporalSmoother(10)
---------------------------------------------------------------------

:confused:

iago

Marc FD
19th August 2002, 16:37
it's the same. at least it would gives the same result, i think.
Just try script against eachothers :)
i always prefer quality vs speed, but when you can have both, why not ? :devil:

iago
19th August 2002, 18:17
@Marc FD

Ok, thanks a lot. I've started a first pass with Koepi's latest aiming for 1CD (700mb or 800mb I haven't decided yet. After the first pass I will ;).) with this one:

---------------------------------------------------------------------
LoadPlugin("C:\PROGRA~1\GORDIA~1\mpeg2dec.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\cnr2.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\SimpleResize.dll")

SetMemoryMax(40)
MPEG2source("D:\RIP\RIP.d2v").crop(3,7,714,460).SimpleResize(512,272)
Cnr2()
TemporalSoften(1,5,0)
Trim(0,205210)+Trim(205211,0).TemporalSmoother(10)
---------------------------------------------------------------------

Hope the result comes out fine for this "difficult-to-compress" case, in which actually I don't mind a bit smoothing as long as too much detail is not taken away.

best wishes,
iago

iago
20th August 2002, 13:39
Well, after the first pass with:
----------------------
Cnr2()
TemporalSoften(1,5,0)
----------------------
(avisynth 2.04+/simple resize/after resizing)

1stPass/2ndPass ratio is 2.55 (which was originally 3.93/without filtering), aiming for 650000kb (635mb) video size.


Now, I'm trying:
----------------------------
Convolution3d(0,10,22,8,8,0)
----------------------------
(avisynth 1.06b/simple resize/before resizing)

And I want to have a look at the 1stPass/2ndPass ratio before going on.

Then, I will make a 2nd pass with both of the above (guess it will take some time :)) to compare the results both visually and in terms of quantizers, etc.

best regards,
iago

vlad59
20th August 2002, 13:52
@iago

In theory, convolution3D(0, ...) will keep more details but the movie will be less compressible whereas Convolution3D(1, ...) will provide a smoother (more compressible) movie.

When you look frame by frame in vdub it's hard to see the quality difference.

iago
20th August 2002, 13:56
@vlad59

Thanks for your comment, clearing the issue further up for me :).

best wishes,
iago

Marc FD
20th August 2002, 17:25
i dont know if Convolution3D will gives you an outstanding result, but i'm sure of one thing : Cnr2().temporalSoften(1,5,0) is the faster filterchain you can use (you have 25-30 fps, right ??)

So i would be very interessed by a quality comparison (maybe screenshots ?) to see if encoding 2x slower really worth it.

iago
20th August 2002, 18:21
Originally posted by Marc FD
i'm sure of one thing : Cnr2().temporalSoften(1,5,0) is the faster filterchain you can use (you have 25-30 fps, right ??) Hi Marc, there's no doubt about the speed of Cnr2().temporalSoften(1,5,0), it's really as fast as a cheetah :), though not breaking such records as 25-30fps on my poor Celeron900/256RAM system ;).

So, to be fair in the comparison by equalizing the conditions :), and to inrease compressibility, and after taking vlad59's comments, I changed the convolution3d filter settings to matrix 1 and decided to apply it "after" simple resize, which gives:

----------------------------
Convolution3d(1,10,22,8,8,0)
----------------------------
avisynth 1.06b/simple resize/after resizing

(any comments vlad59?)


Originally posted by Marc FD
So i would be very interessed by a quality comparison (maybe screenshots ?) to see if encoding 2x slower really worth it. I will try to do that (yes, with screenshots) as soon as the long long encoding stage is finished :). That's what I've been considering from the beginning, but I doubted there would be any demand ;).

so long,
thanks and best regards to all,
iago

vlad59
20th August 2002, 19:08
Originally posted by iago
So, to be fair in the comparison by equalizing the conditions :), and to inrease compressibility, and after taking vlad59's comments, I changed the convolution3d filter settings to matrix 1 and decided to apply it "after" simple resize, which gives:

----------------------------
Convolution3d(1,10,22,8,8,0)
----------------------------
avisynth 1.06b/simple resize/after resizing

(any comments vlad59?)




No comments except that I know that Convolution3D can't really compete in speed because of its slowlyness (I'm working on it, but due to the spatial AND temporal work it'll be impossible to beat any optimized temporal only filter).
But in quality term (meaning keeping enought details and removing noise), it can compete.


Let's wait for the result.