View Full Version : iip: Integrated Image Processor, e.g. DVD -> 720p HDTV
Pages :
1
2
3
4
5
[
6]
7
8
Teegedeck
9th July 2005, 19:59
How nice, I feel like a newbie again! Up till this moment I have spent about 12 hours trying to get the script to work and now feel very inclined to beg you to make a plugin from it. :)
When I try to load the script, the application crashes silently.
I have put the plugins into my plugins-directory:
DustV5.dll
LoadPluginEx.dll
MaskTools.dll [I've tried 1.4.16 as well as older versions]
UnDot.dll
warpsharp.dll [tried the one from the warpsharp package as well as the yv12 version]
This is my script, just kept the defaults for first experimenting:
LoadPlugin("D:\DGMPGDec\DGDecode.dll")
import("D:\AviSynth 2.5\plugins\deaktiviert\iip.avs")
mpeg2source("D:\DVD\IFO\B_II\VIDEO_TS\b.d2v")
MemoryMax(192)
iip( dest_x= 720, dest_y= 576,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1= 104, detailcontr2 = 208, contr_radius = 2, PixSharp=0.38,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.58, flatweight = 0,
\ protect_floor = 0, protect_bias = 16,
\ dering = -80, dering_weight= 1.0, dering_floor = 8, dering_bias=12,
\ detail_floor = 10, EQ = 2,
\ warp_Y = false, warp_UV = false, exborder = false,
\ debug= "protect | dering | compareH|V | showall",
\ cropx=64, cropy=32
\ )
Anything obvious that I've overlooked? This kind of thing really is beyond my grasp.
Soulhunter
9th July 2005, 20:26
@ Teegedeck
Hmm, here it works... :\
But I placed some plugins in separate folders n' load them manually !!!
# ZIP with plugins -> http://rapidshare.de/files/2928289/Plugins.zip.html
LoadPlugin("C:\Programme\DGDecode\DGMPGDec\DGDecode.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\Dust\LoadPluginEx2.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\Masktools.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\Undot.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\WarpSharp\WarpSharp.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\Dust\DustV5.dll")
mpeg2source("C:\Tests\Gladiator\Ch13.d2v")
iip( dest_x= 720, dest_y= 576,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1= 104, detailcontr2 = 208, contr_radius = 2, PixSharp=0.38,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.58, flatweight = 0,
\ protect_floor = 0, protect_bias = 16,
\ dering = -80, dering_weight= 1.0, dering_floor = 8, dering_bias=12,
\ detail_floor = 10, EQ = 2,
\ warp_Y = false, warp_UV = false, exborder = false,
\ debug= "protect | dering | compareH|V | showall",
\ cropx=64, cropy=32
\ )
Bye
Didée
9th July 2005, 23:24
OMG, a n00b! :D
12 hours of trying is brave work, Teegedeck, very brave. The first test encodings could already have finished ...
The problem surely is plugin autoloading. See this post (http://forum.doom9.org/showthread.php?p=597874#post597874) about the problems, and solutions.
Then, this comprehensive parameter overview (http://forum.doom9.org/showpost.php?p=656699&postcount=234) makes a good print-out before going to tweak parameters. ;)
BTW, the defaults very likely are too strong for your taste ...
Teegedeck
10th July 2005, 09:10
Thanks for the replies! Aha! Now we're getting somewhere... After downgrading AviSynth, media player classic doesn't exit silently anymore but AviSynth throws errors: First I got an error that maskedmerge doesn't have a 'use mmx' argument'. After deleting that from the iiP.avs, it came out that I needed trbarry's 'unfilter'-plugin. Now, that got completely past me. Only now I found that it has been mentioned in this thread.
So, problem solved, but I never would have gathered that I needed unfilter from just looking at the script - perhaps you could add it to the 'loadplugin...' list.
Thanks, Didée! I'm looking forward to playing with the parameters now.
molecool
11th July 2005, 02:02
Thanks for the replies! Aha! Now we're getting somewhere... After downgrading AviSynth, media player classic doesn't exit silently anymore but AviSynth throws errors: First I got an error that maskedmerge doesn't have a 'use mmx' argument'. After deleting that from the iiP.avs, it came out that I needed trbarry's 'unfilter'-plugin. Now, that got completely past me. Only now I found that it has been mentioned in this thread.
I was pointed to iip and limitedsharpen by the 3dtv alias and last weekend I finally tried it. Fortunately I read the entire thread and was able to resolve one problem after the other. Updating AviSynth, finding all those plugins, putting them into my plugins directory, putting them out again and loading them manually, removing those mmx arguments (it's the default setting in MaskTools now) - you guys know the drill. It takes some determination to make those scripts work and they are not for the faint of heart ;-)
BUT, the results are absolutely mind boggling and worth every hour of pain - I do a lot of anaglyphic encoding and having super sharp and crisp clips really increases the impact somehow. LimitedSharpen has now completely replaced all my sharpen calls in my AviSynth scripts - resulting in sharp but non-grainy clips - I simply couldn't believe my eyes.... Didée is a freakin' genius. I do have a programming background, but looking at both of his scripts I must say: RESPECT!!
Thanks for doing this, Didée - looking at the dates of the postings these scripts have gone through months of revisions. The potential to take regular DV content and size it up to HD dimensions witout major penalties is a huge step forward. Digital projection is rapidly gaining a foothold and 2k projectors are getting more and more affordable. Small indie filmmakers like me need every possible advantage to produce great looking work and this is more than I had hoped for. I even dare to say that, given enough processing power, IIP could compete head-to-head with IMAX' Digital Remastering - I might actually consult you (Didée) in the future about doing something like that.
Thanks a million for all the hard work, Didée :thanks:
NoodleMaps
21st August 2005, 19:46
First off, I am loving the results of the images I am getting from this script. But as a newbie should, I am having some problems. Why? Becuase I don't know what I'm doing. I have captured VHS into Premiere Pro via a Canopus ADVC300. I basicaaly turned off all of it's noise reducion, because it made the images look to muddy, that's when I found this thread and began to fiddle with the script and tried to learn what I could, since Friday. My original files are in the MicrosoftDV codec and my knowledge on avisynth are extremly limited. But I'm learning that the search option is my friend. Anyway, here is the script that I am using. On my 14inch stuido monitor I have setup here, the video looks great when it is played out. But when I play the same DVD that I made, on my 32in TV The image once again looks muddy. The 32 is a Sony Trinitron and I am playing the DVD through an Xbox hooked up via the Component connections.
SetMemoryMax(512)
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mpeg2dec3.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\Unfilter\UnFilter_Avisynth_2.5_Alpha\unfilter.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\Undot\undot.dll")
LoadPlugin("C:\otheravisysth Plugins\Masktools\masktools.dll")
LoadPlugin("C:\otheravisysth Plugins\warpsharp\warpsharp.dll")
LoadPlugin("C:\otheravisysth Plugins\LoadPluginEx.dll")
LoadPlugin("C:\otheravisysth Plugins\aWarpSharp.dll")
LoadPlugin("C:\otheravisysth Plugins\dust\dustv5.dll")
Import("I:\iip script\iip.avs")
#-----------------------------------------------------------------
avisource("I:\Justanother Test\Just Another.avi")
ConvertToYUY2(interlaced=true)
iip( dest_x = 720, dest_y = 480,
\ duststr = 4, dustweight = 1.0,
\ ss1_x = 1.33, ss1_y = 1.66,
\ detailcontr1 = 127, detailcontr2 = 208,
\ contr_radius = 3, PixSharp = 0.3,
\ ss2_x = 2.5, ss2_y = 3.5,
\ Xstren = 208, Xlimit = 255,
\ subpelstren = 0.0, flatweight = 0,
\ antiflicker1 = true, antiflicker2 = true,
\ protect_floor= 0, protect_bias = 12,
\ dering = -100, dering_weight= 1.0,
\ dering_floor = 8, dering_bias = 12,
\ detail_floor = 24,
\ EQ = 2, exborder = false,
\ warp_Y = true, warp_UV = true,
\ debug="dering | protect | detail | compareH | compareV | compareT | showall",
\ cropx = 40, cropy = 20
\ )
return( last )
here are 2 stills to show a before and after
http://home.comcast.net/~jmohney4/images/oingoiip.jpg
Suggestions welcomed
Thanks
jptheripper
22nd August 2005, 01:09
i have been trying to get iip to work for a long time now. right now i get s syntax error on the import iip.avs command, line 1 column 1 it says (which is a # !!!!!!)
any ideas?
Didée
22nd August 2005, 08:12
@ jptherripper
Probably a problem with unicode charset when copy/pasting the script from your browser window. Mentioned e.g. here (http://forum.doom9.org/showthread.php?p=651138#post651138). Re-save the script once more, with the text editor using plain Windows (ANSI) charset.
@ NoodleMaps
I'm not used to work with VHS captures (did that only 2 times at all, iirc), so I've very little experience with that. Generally, the results from VHS sources will be less impressing, since VHS simply does not deliver *that* much of detail, but need more filtering (smoothing) for stabilization.
But one important thing: If your source actually is interlaced (it probably is), then you must, at least, put the iiP call inbetween separatefields() ... weave(). Even better, but also much slower would be to first do a smartbob, then iiP, then re-weave again to an interlaced stream. (For the latter, the forum search is your friend ... if interlacing is concerned, I'm more than likely to produce nonsense when pulling something quickly out of the sleeve ;) )
dvwannab
31st August 2005, 18:15
But one important thing: If your source actually is interlaced (it probably is), then you must, at least, put the iiP call inbetween separatefields() ... weave(). Even better, but also much slower would be to first do a smartbob, then iiP, then re-weave again to an interlaced stream. (For the latter, the forum search is your friend ... if interlacing is concerned, I'm more than likely to produce nonsense when pulling something quickly out of the sleeve ;) )
Didee,
For interlaced clip, would the script look like this:
mpeg2source("F:\TVcap.d2v")
AssumeTFF()
TMCBob()
# function TMCbob(clip c)
{ ord = getparity(c) ? 1 : 0
c = c.SeparateFields.TomsMoComp(1,-1,0)
c = stackvertical(c.crop(0,0,0,1-c.height),c,c.crop(0,c.height-1,0,0))
evn = c.SelectEven
odd = c.SelectOdd
evn = (ord == 0) ? evn : evn.crop(0,1,0,0).addborders(0,0,0,1)
odd = (ord == 1) ? odd : odd.crop(0,1,0,0).addborders(0,0,0,1)
interleave(evn,odd).crop(0,0,0,-2).assumeframebased()
}
iip( dest_x= 704, dest_y= 480,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1= 127, detailcontr2 = 208, contr_radius = 2, PixSharp=0.3,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 0.58, flatweight = 0,
\ protect_floor = 0, protect_bias = 12,
\ dering = -100, dering_weight= 1.0, dering_floor = 8, dering_bias=12,
\ detail_floor = 10, EQ = 2,
\ warp_Y = false, warp_UV = false, exborder = true,
\ debug= "protect | dering | compareH|V | showall",
\ cropx=0, cropy=0
\ )
AssumeTFF()
SeparateFields()
SelectEvery(4,0,3)
Weave()
With IIP should the dest_y be doubled to 960 vice 480? A bit confused here. Thanks for help.
Red Raven
9th September 2005, 23:02
Can someone give me a link to IIP download? :)
Cheers
Taurus
10th September 2005, 09:44
Can someone give me a link to IIP download? :)
Cheers
I don't know, maybe you're blind?
On the very first page of this thread there is a link to page six IIP (http://forum.doom9.org/showthread.php?s=&postid=517100#post517100)
Just copy and paste all the stuff into a *.txt file and rename it's extension to IIP.avs.
Cheers
Taurus
dvwannab
14th September 2005, 19:34
double post
hannah
3rd October 2005, 00:07
When I change either warp_Y=true or warp_UV= true, I get an "no function named awarpsharp" error in the code (pic attached).
Am I missing any plugin here? Please see attached my list of plugins.
Many thanks in advance
______________________________
My .avs script:
SetMemoryMax(256)
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\LeakKernelDeint.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\MaskTools-p4-5.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins1\warpsharp.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\LoadPluginEx.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\UnDot.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\dustv5.dll")
Import("C:\Program Files\AviSynth 2.5\plugins\iip.avs")
MPEG2Source("C:\Documents and Settings\kmajumde\Desktop\Black\Black.d2v")
LeakKernelDeint(Order=1,threshold=5)
CROP(8,52,-8,-52,true)
ColorMatrix()
iip( dest_x= 1024, dest_y= 576,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1=127, detailcontr2 = 255, contr_radius = 3, PixSharp=0.4,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.0, flatweight = 64,
\ protect_floor= 4, protect_bias = 16,
\ dering = -60, dering_weight= 1.0, dering_floor = 16, dering_bias=8,
\ detail_floor= 1, EQ = 2,
\ warp_Y = false, warp_UV = false,
\ debug= "showall | compareH/V | protect | dering",
\ cropx=32, cropy=16
\ )
_________________________________________________
IIP.avs which is in my plugins dir:
# iip : Integrated Image Processor, v.0.5a
#
#
# ---------------
# | It is slow. |
# ---------------
#
# New in v.0.5 :
#
# EQ [int] : Edge quality. 0=deaktivated (don't do that!!!), 1=standard (as formerly), 2=better'n'slower, 3=evenbetter'n'evenslower
# Note: when using EQ = 2|3, then it's a good idea to *DEACTIVATE* deringing in iiP (don't hit the dog twice).
#
# warp_Y, warp_UV [bool] additional Luma & Chroma Warping.
#
# Luma warping should make the picture more 'gracile' when upsizing to bigger resolution, e.g. DVD -> HDTV.
# For same resolution or downsizing, it may (?) help for sources with distorted detail. Or it may not - YMMV.
#
# Chroma warping helps on sources with bleeding colors (e.g. Enterprise: on the uniforms, the red stripes are bleeding into
# the blue cloth, which looks *very* ugly [like an aquarell that's gotten wet]. It looks much better with chroma warping.)
# On clean sources, chroma warping is a waste of CPU cycles.
#
# exborder [bool] : exclude outmost 8-pixel-border from sharpening (gradient masked)
#
# dering: old method: called with positive values for "dering"
# new method: called with negative values for "dering" (better, but slower)
#
# detail_floor [int] : was formerly hardcoded, now user-definable. default 20.
#
function Ylevels(clip clp, int a, float gamma, int b, int c, int d)
{ wicked="x "+string(a)+" - "+string(b)+" "+string(a)+" - / 1 "+string(gamma)+" / ^ "+string(d)+" "+string(c)+" - * "+string(c)+" +"
# Reminder: Yexpr = "x a - b a - / 1 gamma / ^ d c - * c +"
# return( clp.subtitle(wicked) )
return( clp.YV12LUT(Yexpr = wicked) )
}
function FineEdge( clip clp, int "div" )
{
logic( clp.DEdgeMask(0,255,0,255,"5 10 5 0 0 0 -5 -10 -5", setdivisor=true, divisor=div)
\ ,clp.DEdgeMask(0,255,0,255,"5 0 -5 10 0 -10 5 0 -5", setdivisor=true, divisor=div), "max", Y=3,U=1,V=1 )
}
function iip( clip clp,
\ int "dest_x", int "dest_y",
\ int "duststr", float "dustweight",
\ float "ss1_x", float "ss1_y",
\ int "detailcontr1", int "detailcontr2",
\ int "contr_radius", float "PixSharp",
\ float "ss2_x", float "ss2_y",
\ int "Xstren", int "Xlimit",
\ float "subpelstren", int "flatweight",
\ bool "antiflicker1", bool "antiflicker2",
\ int "protect_floor",int "protect_bias",
\ int "dering", float "dering_weight",
\ int "dering_floor", float "dering_bias",
\ int "detail_floor",
\ int "EQ", bool "exborder",
\ bool "warp_Y", bool "warp_UV",
\ string "debug",
\ int "cropx", int "cropy"
\ )
{
ox = clp.width
oy = clp.height
xcorr=(int(ox/16.0+.9999)*16)-ox
ycorr=(int(oy/ 8.0+.9999)* 8)-oy
dest_x = default(dest_x, clp.width)
dest_y = default(dest_y, clp.height)
ss1_x = default(ss1_x, 1.414)
ss1_y = default(ss1_y, 1.414)
ss2_x = default(ss2_x, 3.5)
ss2_y = default(ss2_y, 3.5)
duststr = default(duststr, 2)
dustweight = default(dustweight, 1.0)
antiflicker1= default(antiflicker1, true)
antiflicker2= default(antiflicker2, true)
Xlimit = default(Xlimit, 255) # SS<3 ? 23 : 255
Xstren = default(Xstren, 255) # SS<3 ? 216 : 255
detailcontr1= default(detailcontr1, 104)
detailcontr2= default(detailcontr2, 208)
contr_radius= default(contr_radius, 2)
PixSharp = default(PixSharp, 0.4)
subpelstren = default(subpelstren, 1.58)
flatweight = default(flatweight, 0)
protect_floor=default(protect_floor, 0)
protect_bias= default(protect_bias, 16)
dering = default(dering, -80)
dering_floor= default(dering_floor, 8)
dering_floor= dering<0 ? dering_floor*2 : dering_floor
dering_bias = default(dering_bias, 16)
dering_weight=default(dering_weight, 1.0)
detail_floor= default(detail_floor, 20)
EQ = default(EQ, 2)
EQ = (EQ>3) ? 3 : EQ
exborder = default(exborder, false)
warp_Y = default(warp_Y, false)
warp_UV = default(warp_UV, false)
debug = default(debug, "Mickey Mouse")
cropx = default(cropx, 40)
cropy = default(cropy, 20)
cropx=int(cropx/4)*4
cropy=int(cropy/4)*4
xx_ss1 = int(ox*ss1_x/16+.5)*16
yy_ss1 = int(oy*ss1_y/16+.5)*16
xx_ss2 = int(ox*ss2_x/16+.5)*16
yy_ss2 = int(oy*ss2_y/16+.5)*16
xx_small = int(ox/(abs(dering)/80+1.0)/16+.5)*16 + 32
yy_small = int(oy/(abs(dering)/80+1.0)/16+.5)*16 + 16
# Now I have the other idea - but it's too slow, yet
clp = antiflicker1 == true ? clp.temporalsoften(2,2,3,23,2) : clp
#---------------------------------------------------------------------------------------------------------------------
# Base denoising by PixieDust
#
dusted = clp.addborders(0,0,xcorr,ycorr).converttoyuy2().PixieDust(limit=duststr).converttoyv12().crop(0,0,-xcorr,-ycorr)
dusted = (dustweight==0.0) ? clp
\ : ( dustweight<1.00 ? Overlay(clp, dusted, opacity=dustweight)
\ : dusted )
soft=dusted.bicubicresize(xx_small,yy_small,.2,.4).bicubicresize(xx_ss1,yy_ss1,1.0,.0)
#---------------------------------------------------------------------------------------------------------------------
# Build EdgeMask to protect already sharp detail from oversharpening
#
YV12subtract( dusted.sharpen(0.6).sharpen(0.6), dusted.blur(1.0).blur(1.0) )
edge00 = bicubicResize(xx_ss1,yy_ss1,-1.0,1.0)
edge0=edge00
\ .YV12LUT(Yexpr="x 128 - abs "+string(protect_floor)+" - "+string(protect_bias)+" *")
\ .deflate(Y=3,U=1,V=1).inflate(Y=3,U=1,V=1).blur(1.58)
edge00 = edge00.yv12lut(yexpr="x 128 - 2 *").expand(Y=3,U=1,V=1).blur(1.58)
#---------------------------------------------------------------------------------------------------------------------
# Build DeRing'ing Mask: +++ OLD ROUTINE +++
#
dering > 0 ? expand(Y=3,U=1,V=1) : NOP
edge1b = dering > 0
\ ? yv12subtract( expand(Y=3,U=1,V=1).blur(1.58),
\ inpand(Y=3,U=1,V=1),tol=1,wideRange=true )
\ .bicubicResize(xx_ss1,yy_ss1,-1.0,1.0)
\ .yv12LUT(Yexpr="x 128 - abs "+string(dering_floor)+" - "+string(dering_bias)+" *")
\ .deflate(Y=3,U=1,V=1).blur(1.58)
\ : last
# .Ylevels(0,3.0,255,0,255)
#---------------------------------------------------------------------------------------------------------------------
# 1st supersampling stage to perform sharpening at
#
(ss1_x > 1.0 || ss1_y > 1.0) ? dusted.Lanczosresize(xx_ss1,yy_ss1)
\ : dusted
#---------------------------------------------------------------------------------------------------------------------
# Build DeRing'ing Mask & perform dering'ing: +++ NEW ROUTINE (Pre-processor) +++
#
tmpp = string(dering_floor)
edge1b = dering < 0
\ ? yv12subtract( last, last.xsharpen(255,255),tol=1,wideRange=true )
\ .yv12lut(yexpr="x 128 - abs "+tmpp+" *")
\ .expand().inflate().expand().inflate().FineEdge(dering_bias).blur(1.58)
\ .greyscale.Ylevels(19,1.6,208,0,255)
\ : edge1b
dering < 0 ? maskedmerge( last, soft, edge1b, Y=3,U=1,V=1 ) : NOP
#-------- iterative sharpening, currently only 3-fold: its slow enough ... --------
temp = last
shrpcnt = 0
mskcnt = 0
shrpcnt = (PixSharp != 0) ? shrpcnt + 1 : shrpcnt
shrpcnt = (detailcontr2 != 0) ? shrpcnt + 1 : shrpcnt
shrpcnt = (detailcontr1 != 0) ? shrpcnt + 1 : shrpcnt
mskcnt = (EQ>shrpcnt) ? shrpcnt : EQ
# Stage 1 : UnsharpMasking, wide radius -----------------------
detailcontr1 != 0
\ ? unsharpmask(detailcontr1,contr_radius,0)
\ : NOP
detailcontr1 != 0 && (shrpcnt==1 || mskcnt>1 && shrpcnt>=mskcnt) && (EQ>0)
\ ? MaskedMerge(last,temp,edge0.expand.inflate.inflate, Y=3,U=1,V=1)
\ : NOP
mskcnt = (detailcontr1 != 0 && (shrpcnt==1 || mskcnt>1 && shrpcnt>=mskcnt))
\ ? mskcnt - 1
\ : mskcnt
shrpcnt = detailcontr1 != 0 ? shrpcnt - 1 : shrpcnt
# Stage 2 : UnsharpMasking, small radius ----------------------
detailcontr2 != 0
\ ? unsharpmask(detailcontr2, 1,0)
\ : NOP
detailcontr2 != 0 && (shrpcnt==1 || mskcnt>1&&shrpcnt>=mskcnt) && (EQ>0)
\ ? MaskedMerge(last,temp,edge0.inflate.inflate,Y=3,U=1,V=1)
\ : NOP
mskcnt = (detailcontr2 != 0 && (shrpcnt==1 || mskcnt>1&&shrpcnt>=mskcnt))
\ ? mskcnt - 1
\ : mskcnt
shrpcnt = detailcontr2 != 0 ? shrpcnt - 1 : shrpcnt
# Stage 3 : per-pixel sharpening ------------------------------
PixSharp != 0.0
\ ? sharpen( PixSharp )
\ : NOP
PixSharp != 0.0 && shrpcnt > 0 && EQ>0
\ ? MaskedMerge(last,temp,edge0, Y=3,U=1,V=1)
\ : NOP
undot()
#---------------------------------------------------------------------------------------------------------------------
# DeRing'ing of sharpen'ed clip: +++ OLD ROUTINE (Post-processor) +++
#
dering > 0 ? MaskedMerge(last,last.unfilter(-dering,-dering),edge1b.bicubicresize(xx_ss1,yy_ss1),Y=3,U=1,V=1)
\ : NOP
# Now I have the other idea - but it's too slow, yet
antiflicker2 == true ? temporalsoften(1,2,3,23,2) : NOP
#---------------------------------------------------------------------------------------------------------------------
# 2nd supersampling stage to perform SubPel operation & XSharpening at
#
# Notes: Luma Warping - may help for sources that are hard to get a "clean" picure from.
# - Should help making the picture a little more "gracile" when doing DVD -> HDTV upsizing
xx_ss2 != ox || yy_ss2 != oy ? LanczosResize(xx_ss2,yy_ss2) : NOP
subpelstren != 0.0 ? blur(subpelstren) : NOP
warp_Y ? awarpsharp(depth=(ss2_x+ss2_y)/2*3,thresh=0.5,blurlevel=2,cm=0) : NOP
Xstren != 0 && Xlimit !=0 ? xsharpen(Xstren,Xlimit) : NOP
LanczosResize(dest_x,dest_y).undot()
#---------------------------------------------------------------------------------------------------------------------
# Build new EdgeMask of the enhanced clip
#
edge2 = bicubicresize(int(dest_x/1.75/16+.5)*16,int(dest_y/1.75/16+.5)*16,1.0,.0)
\ .DEdgeMask(0,255,0,255,"-5 -7 -5 -7 48 -7 -5 -7 -5",Y=3,U=1,V=1,setdivisor=true,divisor=1)
bordermask = blankclip(edge2,width=dest_x-16,height=dest_y-16,color=$FFFFFF)
\ .addborders(2,2,2,2,color=$8F8F8F).addborders(2,2,2,2,color=$6F6F6F)
\ .addborders(2,2,2,2,color=$202020).addborders(2,2,2,2,color=$000000)
edge2 = edge2
\ .levels( (detail_floor+int(detailcontr1/15+detailcontr2/30+PixSharp*15)), 4.0,128,flatweight,255,false)
\ .bicubicResize(dest_x,dest_y,1.0,0)
edge2 = exborder ? edge2.logic(bordermask,"min") : edge2
edge2 = edge2
\ .inflate(Y=3,U=1,V=1).inflate(Y=3,U=1,V=1)
\ .blur(1.58).greyscale()
\ .inflate(Y=3,U=1,V=1).inflate(Y=3,U=1,V=1)
\ .temporalsoften(1,63,63,255,2)
#---------------------------------------------------------------------------------------------------------------------
# Put original de-noised & not-sharpened clip into areas still appearing flat, after all that sharpening
#
MaskedMerge(dusted.lanczosresize(dest_x,dest_y),last,edge2,Y=3,U=1,V=1)
#---------------------------------------------------------------------------------------------------------------------
# Chroma Warping - often useful for sources where colors are "bleeding". Superfluid for clean sources.
#
warp_UV ? MergeChroma( aWarpSharp(depth = 8.5 * (dest_x/ox + dest_y/oy), thresh=0.5, cm=1, blurlevel=2) ) : NOP
#---------------------------------------------------------------------------------------------------------------------
# Visualizations
#
debug == "dering" ? overlay(last,blankclip(last,color=$00A000),mask=edge1b.bicubicresize(dest_x,dest_y),mode="blend",opacity=dering_weight)
\ : NOP
debug == "protect" ? overlay(last,blankclip(last,color=$00A000),mask=edge0.bicubicresize(dest_x,dest_y),mode="blend",opacity=0.75)
\ : NOP
debug == "detail" ? overlay(last,blankclip(last,color=$00A000),mask=edge2.bicubicresize(dest_x,dest_y),mode="blend",opacity=0.75)
\ : NOP
debug == "compareH" ? stackhorizontal(clp.lanczosresize(dest_x,dest_y).crop(cropx,0,-cropx,-0).addborders(0,0,4,0,color=$800000).subtitle("Original"),
\ last.crop(cropx,0,-cropx,-0).subtitle("iiP") )
\ : NOP
debug == "compareV" ? stackvertical(clp.lanczosresize(dest_x,dest_y).crop(0,cropy,-0,-cropy).addborders(0,0,0,4,color=$800000).subtitle("Original"),
\ last .crop(0,cropy,-0,-cropy).subtitle("iiP") )
\ : NOP
debug == "showall" ? stackvertical( stackhorizontal( edge0 .greyscale().lanczosresize(dest_x,dest_y).crop(cropx,cropy,-cropx,-cropy)
\ .addborders(0,0,4,4,color=$800000).subtitle("Protection of sharp edges"),
\ edge1b.greyscale().lanczosresize(dest_x,dest_y).crop(cropx,cropy,-cropx,-cropy)
\ .addborders(0,0,0,4,color=$800000).subtitle("DeRing'ing") ),
\ stackhorizontal( edge2 .greyscale().lanczosresize(dest_x,dest_y).crop(cropx,cropy,-cropx,-cropy)
\ .addborders(0,0,4,0,color=$800000).subtitle("Detail areas"),
\ last .crop(cropx,cropy,-cropx,-cropy).subtitle("iiP") ) )
\ : NOP
return(last)
}
#
__________________________
Didée
3rd October 2005, 01:11
*cough* (http://www.avisynth.org/warpenterprises/#aWarpSharp)
mg262
3rd October 2005, 01:20
Also...in a standard set up plug-ins in your C:\Program Files\AviSynth 2.5\plugins\ directory will be loaded automatically, so you don't need to use this kind of thing:
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
... although it won't do any harm. The exception is this line:
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\dustv5.dll")
Autoloading dust seems a little risky... I would personally move it into a different directory (for example C:\Program Files\AviSynth 2.5\plugins\old ) and update the above line (the one in italics) accordingly.
hannah
3rd October 2005, 03:40
thanks guys..loaded aWarpSharp.dll and that solved the problem. Hey Didée any possibility of making your IIP as .dll. Also is Integrated Image Processor, v.0.5a the final version?
Didée
3rd October 2005, 15:11
any possibility of making your IIP as .dll.
Nobody holds you back from doing it :)
Also is Integrated Image Processor, v.0.5a the final version?
Good question. There are several possibilities for speeding it up. But in the meantime, I'm following completely other approaches to achieve what iiP is aiming for.
If one time I get bored, iiP might get overhauled. But the chances for me getting bored are pretty low.
Backwoods
3rd October 2005, 21:30
I wonder why people want DLLs so bad.
mg262
3rd October 2005, 21:49
I would be very interested in the answer to that question. Cf this thread, especially the post linked to on autoloading scripts:
http://forum.doom9.org/showthread.php?p=697833#post697833
jptheripper
3rd October 2005, 22:20
as for the dlls, i for one have never got iip to work. I am a (i thought) competent computer user, have even programmed in c++, but no matter what i do i get avs errors.
dll's are basically idiot proof, or at least a download package with all the right versions of everything in one folder. b/c for the life of me.. and i have tried on at least 10 occassions
Pookie
4th October 2005, 04:20
iiP is tricky to set up. Here's the "secret":
LoadPluginEx.dll and Dustv5.dll MUST reside in a folder OTHER than your normal 2.5 AviSynth plugins location.
#-----------------------#
import("d:\plugins2.5\iip.avs")
LoadPlugin("d:\plugins2.5\masktools.dll")
LoadPlugin("d:\plugins2.5\warpsharp.dll")
#Now, load the 2.0 plugins from a different directory
LoadPlugin("g:\plugins2.0\LoadPluginEx.dll")
LoadPlugin("g:\plugins2.0\DustV5.dll")
# Notice the 2.0 plugins are the LAST to be loaded in the script #
#-----------------------#
hannah
4th October 2005, 11:43
iiP is tricky to set up. Here's the "secret":
LoadPluginEx.dll and Dustv5.dll MUST reside in a folder OTHER than your normal 2.5 AviSynth plugins location.
I suppose there is a truth behind the above statement however I can verify that my IIP.avs works fine with all plugins being in the same directory. Please check the screenshot of my plugins directory.
As far as workable IIP.avs and IIP call script goes..look at my first post. That's working for me.
jptheripper if you need a zip file of my .dlls in my plugins I am more than happy to send it to you so that you can get your IIP.avs working.
And Didee when I asked about a .dll version of IIP, basically I was hoping that this way it will be idiot proof. I am sure we all will agree that there is certain degree of tweaking required to get IIP.avs working.
aberforthsgoat
7th October 2005, 18:14
OK guys,
I've spent several hours reading up on this stuff, and I'm ready to take the plunge. I live in Switzerland, am a big fan of American football, have DVDs sent on a regular basis - and the DVD quality is generall *awful.* To keep size down, they use a screwy encoding (I think it's called CVD, rather than normal DVD), everything blurs when the players go faster than a trot, artifacts galore, mucho bad interlacing. I'm thinking that this iip stuff may help me get a little more out of the material.
My goal: rebuild the DVDs offline, getting as much clean up done as possible, deinterlacing and resizing to 1280X1024 (for my monitor) or at least XGA (for my projector).
Problem: I'm a complete newbie to this stuff. I can run ZP with FFDShow, but I don't have a clue about this AVISynth stuff. Zero. Nada. Nichts.
I spent a while reading up, I downloaded a bunch of stuff, installed AVISynth, put a bunch of plugins into the directory, copied in the combined iip-limited sharpen avs combo, I copied the standard script from this thread into DVD rebuilder and set her off. No go.
I'm getting an AVISynth error message: "Script error: there is no function named "iip." Then something about line 21.
This is hardly going to be my last hang-up, but perhaps someone can hold my hand a little here.
BTW, I also read something over on AVS about EDIUpsizer - it'd be fun to pole that in somewhere. But I've absolutely no idea how, of course.
Thanks for any help!
Mike
Pookie
7th October 2005, 20:11
Mike - I think you're using the wrong tool to fix your problem. IIP is like the icing on the cake. ;) If the cake tastes bad, the icing isn't going to help.
IIP is great when you have your favorite movie ripped to disk, and about 40 hours of re-encoding time on your hands.
Post a 10-20 second clip of your footage somewhere so people can make suggestions, or try FFT3DFilter to clean up your source.
aberforthsgoat
7th October 2005, 23:17
Mike - I think you're using the wrong tool to fix your problem. IIP is like the icing on the cake. ;) If the cake tastes bad, the icing isn't going to help.
IIP is great when you have your favorite movie ripped to disk, and about 40 hours of re-encoding time on your hands.
Post a 10-20 second clip of your footage somewhere so people can make suggestions, or try FFT3DFilter to clean up your source.
Hmm. The 40 hours part wouldn't be such a big problem - I wasn't expecting this to be easy. And the wait would be more than worth it if I could extract a good picture out of the material.
But of course, the question is (1) whether I can get anything good out of what I have and (2) what it will take to do that.
If I could just deinterlace properly and convert it to standard DVD encoding, I could at least run the stuff under ZP with Dscaler and FFDShow (with Lanczos and some other filters). Since Dscaler seems to be allergic to the VCD encoding, I can't even do that right now.
Anyway, I'll see about getting a clip put together tomorrow.
Thaks again for the hints!
Mike
DarkNite
8th October 2005, 19:56
@aberforthsgoat
We can't help you much without a script to look at, and other materials that may help us to help you properly. So keep that in mind when asking for help later.
If you get an error like "no function named" then you haven't properly imported the script, or plugin associated with that call.
One thing I've seen cause that is when someone has "hide known file extensions" enabled in their folder view settings which (besides being a generally evil default setting, almost as evil as the shell media handler) makes it hard to change a .txt file to .avs and the call fails when they link it to "script.avs" because it's actually "script.avs.txt".
That was a shot in the dark, but that's what we're left doing if we don't have anything to refer to.
aberforthsgoat
9th October 2005, 08:39
One thing I've seen cause that is when someone has "hide known file extensions" enabled in their folder view settings which (besides being a generally evil default setting, almost as evil as the shell media handler) makes it hard to change a .txt file to .avs and the call fails when they link it to "script.avs" because it's actually "script.avs.txt".
That was a shot in the dark, but that's what we're left doing if we don't have anything to refer to.
Thanks - and that was a smart guess - but doesn't seem to be it. However, I agree - I seem to be getting stuck on some very minor error. I can now run simple plugins with AVSSynth - even tried out the EDIUpsizer - and these work fine (though I can't figure out how to tell EDI what output size I want ... ) - but when I try to import the iip avs file, I always get an error. Here's the script I'm tying to use at the moment:
Import("C:\PROGRA~1\GORDIA~1\iip.avs")
LoadPlugin("C:\PROGRA~1\GORDIA~1\undot.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\MaskTools.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\WarpSharp.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGDecode.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\LoadPluginEx.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\dustv5.dll")
mpeg2source("D:\Football4\Chargers-Pats.d2v")
iip( dest_x= 1024, dest_y= 768,
ss1_x = 1.414, ss1_y = 1.414,
duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
detailcontr1=127, detailcontr2 = 255, contr_radius = 3, PixSharp=0.4,
ss2_x = 3.5, ss2_y = 3.5,
Xstren = 255, Xlimit = 255,
subpelstren= 1.0, flatweight = 64,
protect_floor= 4, protect_bias = 16,
dering = -60, dering_weight= 1.0, dering_floor = 16, dering_bias=8,
detail_floor= 1, EQ = 2,
warp_Y = true, warp_UV = false,
debug= "showall | compareH/V | protect | dering",
cropx=32, cropy=16
)
I've been trying it in DVD Rebuilder, in Gordian Knot, in Zoom Player, and now in AVSEdit - and it always says there's a syntax error in line 12 column 0. I take this to mean that it's not importing the iip script - but I can't imagine why not.
BTW, and yes - I've carefully copied all the material to the Gordian knot folder.
Thanks for any more tips!
Mike
Didée
9th October 2005, 14:29
Did you really not put any "\" line breakers, or were they somehow lost when posting?
iip( dest_x= 1024, dest_y= 768,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1=127, detailcontr2 = 255, contr_radius = 3, PixSharp=0.4,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.0, flatweight = 64,
\ protect_floor= 4, protect_bias = 16,
\ dering = -60, dering_weight= 1.0, dering_floor = 16, dering_bias=8,
\ detail_floor= 1, EQ = 2,
\ warp_Y = true, warp_UV = false,
\ debug= "showall | compareH/V | protect | dering",
\ cropx=32, cropy=16
\ )
I admit that the descriptions about the necessarities for iiP are a little scattered, and for starters surely it's not the most easy function to get run.
But then, I won't make a general crash curse "how do use this Avisynth thingy at all?". Avisynth comes shipping with a manual, where Avisynth usage is thoroughly explained. However, it does not explain how to install an operating system or hardware drivers.
aberforthsgoat
9th October 2005, 15:54
Did you really not put any "\" line breakers, or were they somehow lost when posting?
Guilty as charged, your honor.
I admit that the descriptions about the necessarities for iiP are a little scattered, and for starters surely it's not the most easy function to get run.
But then, I won't make a general crash curse "how do use this Avisynth thingy at all?". Avisynth comes shipping with a manual, where Avisynth usage is thoroughly explained. However, it does not explain how to install an operating system or hardware drivers.
My apologies. I *had* made an attempt to RTFM, but perhaps not as, umm, serious an attempt as it should have been. Anyway, the problem is solved. And my knowledge of AVISynth grows apace.
Mike (who has now discovered that he has a mismatch between his version of DGDecode and the DGIndexing being done in his version of Gordian Knot, but is bound and determined to solve the problem by himself!)
aberforthsgoat
9th October 2005, 17:01
(who has now discovered that he has a mismatch between his version of DGDecode and the DGIndexing being done in his version of Gordian Knot, but is bound and determined to solve the problem by himself!)
And I did. I picked up a newer version of Gordian Knot, ironed out some more kinks - and IT WORKED!!!!
Mike (who should probably feeling much less elated and much more ashamed of himself.)
jbc23
14th October 2005, 12:16
iip is a GREAT script, kiss Didée to death if Didée were a girl, but iip is..........too...........slow.....
My computer is Pentium 4 cpu 3.3GB, 2GB RAM, I used iip script to encode a 130 mins DVD into 1.4GB XviD, 2 pass encoding, and it took 61 hours to finish ( first pass: 30 hours, 15 minutes; second pass: 30 hours, 45 minutes ), which means I had to turn on the computer for 2 and a half consecutive days, and meanwhile, I had no computer to use 'cause it's doing encoding job, although the result is wonderful, the encoding time is a bit too long, if the time needed for 2 pass encoding with iip could be shortened to within 10 hours, this script is simply extraordinary.
One bug to report is iip is compatible with DGindex 1.2.1, but not compatible with DGindex 1.4.3 (the latest version), I found this when I updated GordianKnot to the latest version (http://www.free-codecs.com/download/Gordian_Knot_Rip_Pack.htm), after I used DGindex to save a DVD project, if I opened the movie .d2v through iip script, GordianKnot said it could not found the movie .d2v, but I could open the movie .d2v directly (not through iip script), then I restored the DGindex to older version 1.2.1 to save a DVD project, then all worked fine, I could open the movie .d2v through iip script.
Didée
14th October 2005, 13:14
[while drying the kisses off my face] ;)
Welcome to the forum, jbc23.
iip is..........too...........slow..... It's not the fastest script around, agreed. It takes a while and some computing to make things look like iiP makes them look.
(Scribbling a draft is a matter of minutes, where a beautiful painting may take weeks or months.)
I used iip script to encode a 130 mins DVD into 1.4GB XviD, 2 pass encoding, and it took 61 hours to finish ( first pass: 30 hours, 15 minutes; second pass: 30 hours, 45 minutes )
...
if the time needed for 2 pass encoding with iip could be shortened to within 10 hours Well, you took the long road. Taking the short road won't cut the encoding time down to 10 hours ... but it will almost halven the time needed:
1st, load your script /w iiP and save that to an intermediate file /w lossless compression (e.g. ffdshow's YV12-Huffyuv)
Then, do a normal 2-pass XviD encoding with that lossless file as input. Doing so, you would have saved approx. 27 hours ...
One bug to report is iip is compatible with DGindex 1.2.1, but not compatible with DGindex 1.4.3 (the latest version) False. It is compatible. There is not any relation between iiP's functionality and the "how" of how you load the video source into the script. Suspect is either that after upgrading DGIndex you called the wrong d2v file, or that there is a general issue between GordianGnot and recent versions of DGIndex (can't tell .. it's been years since I used GordianGnot for encoding). But surely it has nothing to do with iiP.
Boulder
14th October 2005, 14:42
I've noticed that tsp's MT plugin loves the combination Didée's script+P4 HT CPU ;)
(Hint: multithreading == faster processing :cool: )
jbc23
14th October 2005, 14:55
Welcome to the forum, jbc23.
Thanks, you're a really nice person.
1st, load your script /w iiP and save that to an intermediate file /w lossless compression (e.g. ffdshow's YV12-Huffyuv)
Then, do a normal 2-pass XviD encoding with that lossless file as input. Doing so, you would have saved approx. 27 hours ...
How much harddisk space will it take to save a normal D5 DVD ( 4.3 GB ) to an intermediate file /w loseless compression.
There is not any relation between iiP's functionality and the "how" of how you load the video source into the script. Suspect is either that after upgrading DGIndex you called the wrong d2v file, or that there is a general issue between GordianGnot and recent versions of DGIndex (can't tell .. it's been years since I used GordianGnot for encoding). But surely it has nothing to do with iiP.
If I used DGindex 1.4.3 (the latest version) to save a DVD project, I could open the movie .d2v directly (not through iip script), but could not if I opened it through iip script ( I checked many times, there is no mistake with the movie .d2v file). Then if I restored the DGindex to older version 1.2.1 to save a DVD project, then all worked fine, I could open the movie .d2v through iip script.
Boulder
14th October 2005, 15:14
Post the script that gave you problems, otherwise the problem cannot be fixed.
Didée
14th October 2005, 15:24
How much harddisk space will it take to save a normal D5 DVD ( 4.3 GB ) to an intermediate file /w loseless compression. It depends, but it's not little. In the range of 5GB to 50 GB.
If I used DGindex 1.4.3 (the latest version) to save a DVD project, I could open the movie .d2v directly (not through iip script), but could not if I opened it through iip script ( I checked many times, there is no mistake with the movie .d2v file). Please double-check that the not-working script is loading the correct version of "DGDecode.dll". One should (often: must) always import exactly that version of dgdecode.dll that that comes shipping with the DGIndex.exe that was used to create a d2v project file.
Indicators:
a) GordianKnot said it could not found the movie .d2v This sounds exactly like the error message that mpeg2dec.dll (or versions of dgdecode.dll <= v1.2.x) will spit out when trying to load a d2v made by a newer DGindex with these old DLLs.
b) I actually checked a few minutes ago. It *does* work. :)
708145
14th October 2005, 15:41
iip is a GREAT script, kiss Didée to death if Didée were a girl, but iip is..........too...........slow.....
My computer is Pentium 4 cpu 3.3GB, 2GB RAM, I used iip script to encode a 130 mins DVD into 1.4GB XviD, 2 pass encoding, and it took 61 hours to finish ( first pass: 30 hours, 15 minutes; second pass: 30 hours, 45 minutes ), which means I had to turn on the computer for 2 and a half consecutive days, and meanwhile, I had no computer to use 'cause it's doing encoding job, although the result is wonderful, the encoding time is a bit too long, if the time needed for 2 pass encoding with iip could be shortened to within 10 hours, this script is simply extraordinary.
hi jbc23!
Plans are to add a feature to ELDER that allows to interrupt your encode and later (after reboot or so) continue without too much duplicated effort.
If enough ppl would like such a feature I'll add it to the official TODO list.
bis besser,
Tobias
jbc23
14th October 2005, 16:50
It depends, but it's not little. In the range of 5GB to 50 GB.
much less space than I thought, I assumed maybe it would take up to 80GB space to save a normal 4.3GB DVD w/ lossless compression.
Please double-check that the not-working script is loading the correct version of "DGDecode.dll". One should (often: must) always import exactly that version of dgdecode.dll that that comes shipping with the DGIndex.exe that was used to create a d2v project file.
Yeah, you're right, I just tried putting the DGDecode.dll 1.4.3 into iip foloder, then all worked like a charm.
btw, would you mind checking my iip script to see if there is wrong setting?
in my setting, the loadplugin list includes "DGDecode.dll, LeakKernelDeint.dll, mt_masktools.dll, warpsharp.dll, LoadPulginEx.dll, UnDot.dll, dustv5.dll", are these .dll all needed for iip to work, any of them is optional?
Is "import LimitedSharpen.avs" necessary, is "LimitedSharpen" an optional choice?
SetMemoryMax(256)
Loadplugin("E:\Program Files\iip\DGDecode.dll")
Loadplugin("E:\Program Files\iip\LeakKernelDeint.dll")
Loadplugin("E:\Program Files\iip\mt_masktools.dll")
Loadplugin("E:\Program Files\iip\warpsharp.dll")
Loadplugin("E:\Program Files\iip\LoadPluginEx.dll")
Loadplugin("E:\Program Files\iip\UnDot.dll")
Loadplugin("E:\Program Files\iip\dustv5.dll")
Import("E:\Program Files\iip\LimitedSharpen.avs")
Import("E:\Program Files\iip\iip.avs")
MPEG2Source("E:\test\test.d2v")
LeakKernelDeint(Order=1,threshold=5)
CROP(8,52,-8,-52,true)
ColorMatrix()
iip( dest_x= 800, dest_y= 444,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1=127, detailcontr2 = 255, contr_radius = 3, PixSharp=0.4,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.0, flatweight = 64,
\ protect_floor= 4, protect_bias = 16,
\ dering = -60, dering_weight= 1.0, dering_floor = 16, dering_bias=8,
\ detail_floor= 1, EQ = 2,
\ warp_Y = true, warp_UV = false,
\ debug= "showall | compareH/V | protect | dering",
\ cropx=32, cropy=16
\ )
hi jbc23!
Plans are to add a feature to ELDER that allows to interrupt your encode and later (after reboot or so) continue without too much duplicated effort.
If enough ppl would like such a feature I'll add it to the official TODO list.
bis besser,
Tobias
I, for one, would think this feature is marvellous, considering the fact a lot of ppl in the world still use not so fast computers, say Pentium 3 cpu 1GB, 512MB RAM, and the long encoding time and uninterruptable encoding process are a pain in the ass for them, if the encoding process could be interruptted at any time and resume later, it would be quite convenient for those computer users with slow CPUs.
However, I always dream of a script that can produce extraordinary encoding result with very little encoding time. :D
jptheripper
14th October 2005, 19:01
i finally got iip to run, works when double clicking the avs in media player (although screen stays blank
script is
SetMemoryMax(1024)
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\DGDecode.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\MaskTools-v1.5.8\MaskTools.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\warpsharp.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\LoadPluginEx.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\UnDot.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\dustv5.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\aWarpSharp.dll")
Import("C:\Program Files\AviSynth 2.5\iip\iip.avs")
MPEG2Source("C:\28temp\D2VAVS\V08.d2v")
iip( dest_x= 720, dest_y= 480,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1=127, detailcontr2 = 255, contr_radius = 3, PixSharp=0.4,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.0, flatweight = 64,
\ protect_floor= 4, protect_bias = 16,
\ dering = -60, dering_weight= 1.0, dering_floor = 16, dering_bias=8,
\ detail_floor= 1, EQ = 2,
\ warp_Y = false, warp_UV = false,
\ debug= "showall | compareH/V | protect | dering",
\ cropx=32, cropy=16
\ )
AudioDub(BlankClip())
i gave 4gb of memory
when i drag the avs into cce2.5sp to encode i get
"couldn't find appropriate video codec for 'yv12'"
any ideas?
Pookie
14th October 2005, 19:36
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\LoadPluginEx.dll")
and
Loadplugin("C:\Program Files\AviSynth 2.5\iip_plugins\dustv5.dll"
should be the last two lines in your "loadplugin section" .
Two things to try
1) add a Converttoyv12() line at the end of your script
2) http://forum.doom9.org/showthread.php?s=&threadid=56972
Boulder
14th October 2005, 20:23
Put ConverttoYUY2() at the end of the script.
DarkNite
15th October 2005, 00:57
@708145: Yes, please. I always find the various "pause" features useful. You never know when you might need those clock cycles back, or may have to restart your winbox for whatever reason. Could a pause/resume feature be implemented in ELDERChap as well?
@jpripper: If you use multipass VBR you'd be better off feeding CCE an intermediate file so that you could do multiple passes to your heart's content without wasting a week or two in the process. Personally, I don't feed an iip based script to anything except avs2avi or VirtualDub. After I have an intermediate anything goes.
708145
15th October 2005, 01:27
@708145: Yes, please. I always find the various "pause" features useful. You never know when you might need those clock cycles back, or may have to restart your winbox for whatever reason. Could a pause/resume feature be implemented in ELDERChap as well?
Another thing to add during beta then :)
About ELDERchap: I know no one besides me who actually used it so I consider it out-dated since ELDER will be available for Linux as well when Avisynth 3.0 gets released.
bis besser,
Tobias
Pookie
16th October 2005, 04:32
One way to speed up iiP might be to replace PixieDust (great, but SLOWWWWWW) with kassandro's RemoveGrain v1.0, especially with the SSE optimized plugins. Even Undot could be replaced with RemoveGrain(mode=1), (although Undot is quite peppy anyway).
Update: Well, I tried the above replacement filters and modified the iiP script, plus I replaced all instances of BicubicResize with FastBicubicResize. Yes, it is faster (2 fps instead of 1!). But I think the results aren't as sharp anymore.
jptheripper
16th October 2005, 14:35
Put ConverttoYUY2() at the end of the script.
sorry, but at the end of which script? iip.avs or my video avs
Boulder
16th October 2005, 16:40
And the end of your video avs.
Didée
16th October 2005, 18:12
One way to speed up iiP might be to ...
[grinding the hurdy-gurdy]
iiP is slow because it does things the way it does them. If it is doing certain things in a slow way, then most probably there were certain reasons to not do them the fast way.
[/grinding the hurdy-gurdy]
But okay ... for the speed freaks, here's the fastest possible solution:
function iiP_ultra_fast( clip clp )
{
return( clp .sharpen(1) )
}
:p :p
Seriously again - remember this (http://forum.doom9.org/showthread.php?p=565874#565874)? Could be there is a bug in it, but I forgot what it was.
Pookie
16th October 2005, 20:45
Didée:
The point of my "let's change the recipie" post was to demonstrate that speed can be had at the cost of quality. But that defeats the purpose of iiP. :D
Thanks for that iiP_ultra_fast function. I'm going to try it out on "Apocalypse Now Redux" and upscale it to 1920x1080. :p
jeffhuge
21st October 2005, 02:21
Didée:
First of all, I must appreciate you for the great, magnificent, amazing, unbelievable...... job!!! :)
And this is my questions as below:
In your answer to jbc23
1st, load your script /w iiP and save that to an intermediate file /w lossless compression (e.g. ffdshow's YV12-Huffyuv)
Then, do a normal 2-pass XviD encoding with that lossless file as input. Doing so, you would have saved approx. 27 hours ...
I met the same problem and my computer is p4 2.26G *_* 512MB sdram which needed almost 100 hours when encoding a 140min film!!!!! I use that iipv0.6 hack version.
I cant bear that much time but I dont quite understand what to do to output a an intermediate file /w lossless compression .Would you please to explain it with more details?
And I'm still waiting for your LS-EX because I am deeply impressed by LS (that LS2 is almost as good as LS).Is there any news about it? ^^
DarkNite
21st October 2005, 04:56
"an intermediate file /w lossless compression" is just a file (in your case probably an avi) that was encoded using a lossless codec to gain speed in a later multi pass operation without sacrificing quality. There are an abundance of lossless codecs to choose from, each having it's own strengths and weaknesses, or "focus" if you will.
You could just choose direct stream copy in virtualdub to output your avs to a lossless avi, but you wouldn't get any compression as it simply outputs raw yv12, or whatever your input was. Using a huffman based codec like ffdshow's implementation of huffyuv for yv12 you could achieve the same goal using 1/2 - 1/3 of the raw filesize (depending on settings).
Have a look around and see which lossless codec fits your needs. There are plenty of discussions on the subject in this forum, and others as well.
:search:
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.