Why not register?


Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next

All times are UTC [ DST ]

Author Message
PostPosted: Wed Jan 30, 2008 9:38 pm  Post subject: Calling all AviSynth experts
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I gave elguaxo at SBiG a sample of my latest project and look at what he was able to do:

Screenshots - Original vs. Filtered:
Image Image Image

The problem is I cannot recreate it. Here is the code that was used:

Code:
Import("D:\AviSynth 2.5\plugins\SeeSaw.avs")
Import("D:\AviSynth 2.5\plugins\LimitedSharpenFaster.avs")
Import("D:\AviSynth 2.5\plugins\RemoveNoiseMC.avs")
Import("D:\AviSynth 2.5\plugins\mq_filter.avs")

DGDecode_mpeg2source("H:\videos\samples\gigantibyte\Gor-sample.d2v",info=3)
ColorMatrix(hints=true, interlaced=true)

tfm(pp=7).tdecimate()

crop( 6, 64, -8, -72)
Spline36Resize(704,384)

mq_filter()


I have carefully recreated every avs file, and installed all the plugins needed. I even got a copy of elguaxo's plugin directory, used the same version of DGIndex.

However, when I try the above code in VirtualDubMod I get:

Image

I am confident the code in RemoveNoiseMC.avs is valid, because many others have used it. I seem to be the first to report this problem (lucky me).

If I can get this working on my PC, it will undoubtedly make all future releases by me look great too! (This project is also the reason I haven't posted anything new in the last couple of days. I'm stuck!)


Reference links:
http://bad-good.org/phpBB2/viewtopic.php?p=91766#91766
http://forum.doom9.org/showthread.php?p ... ost1094267


Top
 Profile  
PostPosted: Wed Jan 30, 2008 10:47 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Sat Oct 20, 2007 10:31 am
Posts: 3600
Could you post the code of these AVS files?

Are you using the same version of Avisynth as elguaxo?


Top
 Profile  
PostPosted: Thu Jan 31, 2008 1:20 am  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
RemoveNoiseMC.avs:
Code:
function RemoveTempGrain(clip input, int _mode)
{
  rg = RemoveGrain(input, mode=_mode)
  return TemporalRepair(rg, input)
}

function RemoveDirt(clip input, int limit, int rgrain, bool "_grey")
{
  _grey = default(_grey, false)
  _dgr1 = 0.35+rgrain*0.3
  _dgr2 = 0.45+rgrain*0.4
  repmode = 1
  clensed = Clense(input, grey=_grey, cache=4)
  restore = input.FluxSmoothST(3+3*rgrain,rgrain)
  restore = Repair(restore, input, mode=repmode, modeU= _grey ? -1 : repmode)
  restore = rgrain==0 ? restore.RemoveGrain(1) : \
    restore.VagueDenoiser(threshold=_dgr1, chromaT=_dgr1, nsteps=7, percent=75).RemoveGrain(1)
  alt = input.VagueDenoiser(threshold=_dgr2, chromaT=_dgr2, nsteps=7, percent=100).RemoveGrain(5)
  return RestoreMotionBlocks(clensed, restore, neighbour=input, alternative=alt, pthreshold=4+2*rgrain, cthreshold=6+2*rgrain, gmthreshold=40, dist=1, dmode=2, debug=false, noise=limit, noisy=12, grey=_grey)
}

global idx_c = 25

function RemoveNoiseMC(clip,int "rdlimit", int "rgrain", int "denoise", bool "sharp", float "csharpen", bool "_grey")
{
  rdlimit = default(rdlimit,11)
  rgrain = default(rgrain,2)
  denoise = default(denoise,8)
  sharp = (rgrain<1>2) ? default(csharpen,0.17) : (rgrain>1) ? default(csharpen,0.15) : default(csharpen,0.13)
  csharpen = sharp ? csharpen : csharpen+0.08
  _grey = default(_grey,false)
  _dgr = 0.45+rgrain*0.4
  dummy = clip.BlankClip(length=0)
  global idx_c = idx_c+1
  cbs = 8
  cov = (cbs>4) ? cbs/4 : 0
  ccf = cbs*cbs/64
  cpn = (denoise>12) ? 50*ccf : (denoise>8) ? 58*ccf : (denoise>5) ? 66*ccf : 72*ccf
  csh = sharp ? 1 : 0
  bvec2 = clip.MVAnalyse(isb=false, blksize=cbs, delta=2, pel=2, sharp=csh, overlap=cov, truemotion=true, pnew=cpn, idx=idx_c)
  bvec1 = clip.MVAnalyse(isb=false, blksize=cbs, delta=1, pel=2, sharp=csh, overlap=cov, truemotion=true, pnew=cpn, idx=idx_c)
  fvec1 = clip.MVAnalyse(isb=true, blksize=cbs, delta=1, pel=2, sharp=csh, overlap=cov, truemotion=true, pnew=cpn, idx=idx_c)
  fvec2 = clip.MVAnalyse(isb=true, blksize=cbs, delta=2, pel=2, sharp=csh, overlap=cov, truemotion=true, pnew=cpn, idx=idx_c)
  backw1 = rdlimit>13 ? \
    rdlimit>20 ? \
      clip.MVFlow(bvec1, idx=idx_c).Deblock(quant=22, aOffset=6, bOffset=6) : \
      clip.MVFlow(bvec1, idx=idx_c).Deblock(quant=16, aOffset=4, bOffset=4) : \
    clip.MVFlow(bvec1, idx=idx_c)
  forw1  = rdlimit>13 ? \
    rdlimit>20 ? \
      clip.MVFlow(fvec1, idx=idx_c).Deblock(quant=22, aOffset=6, bOffset=6) : \
      clip.MVFlow(fvec1, idx=idx_c).Deblock(quant=16, aOffset=4, bOffset=4) : \
    clip.MVFlow(fvec1, idx=idx_c)
  clp = interleave(backw1,clip,forw1)
  clp = clp.RemoveDirt(rdlimit,rgrain,_grey)
  dnc = denoise==0 ? clp.RemoveTempGrain(rgrain).SelectEvery(3,1) : dummy
  clp = clp.SelectEvery(3,1)
  dnc = denoise==0 ? dnc : \
    clp.MVDenoise(bvec2, bvec1, fvec1, fvec2, thT=denoise, thSAD=190+15*denoise, thmv=40, thSCD1=230+5*denoise)
  vid_mo = dnc.VagueDenoiser(threshold=_dgr, chromaT=_dgr, nsteps=7, percent=75)
  vid_mo = rgrain==1 ? vid_mo.RemoveGrain(1) : vid_mo.RemoveGrain(5)
  dnc = dnc.ConditionalFilter(dnc, vid_mo, "(YDifferenceFromPrevious()+YDifferenceToNext())/AverageLuma()", "<", "0.3")
  clp = clp.SeeSaw(dnc, Sstr=csharpen, Szp=12, SdampHi=20, bias=40)
  return clp
}



mq_filter.avs:
Code:
function mq_filter(clip c)
{
  c=c.RemoveNoiseMC(rdlimit=10,rgrain=2,denoise=8)
  c=c.LimitedSharpenFaster(Smode=4,strength=20,overshoot=1,wide=false,ss_x=1.3,ss_y=1.3)
  return c
}


LimitedSharpenFaster.avs: (EDIT: DO NOT USE THIS CODE!!!! Read below.)
Code:
# LimitedSharpen()   ( a modded version, 29 Oct 2005 )
#
# A multi-purpose sharpener by Didée
#
#
# Changes in this mod:
#
# - RemoveGrain >= v0.9  IS REQUIRED!!
#   ==================================
#
# - Smode=4   / sometimes does the magic ;-)
# - a separate "undershoot" parameter, to allow for some line darkening in comic or Anime
# - Lmode=3   / on edges, limited sharpening with zero OS & US. On not-edges, limited sharpening with specified OS + LS
# - "soft" acts different now: no more boolean true/false, but instead integer 0 - 100  (or -1 -> automatic)
#    instead of blurring before finding minima/maxima, it now softens the "effect-of-sharpening"
# - edgemode=-1 now shows the edgemask. (scaling still not implemented :p )
#
## - MODIFIED version using MaskTools 2.0 and dedicated support plugin LimitedSupport

function LimitedSharpenFaster( clip clp,
 \                       float "ss_x",   float "ss_y",
 \                       int   "dest_x", int   "dest_y",
 \                       int   "Smode" , int   "strength", int  "radius",
 \                       int   "Lmode",  bool  "wide",     int  "overshoot", int "undershoot",
 \                       int   "soft",   int   "edgemode", bool "special",
 \                       int   "exborder" )
{
ox = clp.width
oy = clp.height

Smode     = default( Smode,       3 )
ss_x      = (Smode==4)
 \        ? default( ss_x,      1.25)
 \        : default( ss_x,      1.5 )
ss_y      = (Smode==4)
 \        ? default( ss_y,      1.25)
 \        : default( ss_y,      1.5 )
dest_x    = default( dest_x,     ox )
dest_y    = default( dest_y,     oy )
strength  = (Smode==1)
 \        ? default( strength,  160 )
 \        : default( strength,  100 )
strength  = (Smode==2&&strength>100) ? 100 : strength
radius    = default( radius,      2 )
Lmode     = default( Lmode,       1 )
wide      = default( wide,    false )
overshoot = default( overshoot, 1)
undershoot= default( undershoot, overshoot)
softdec   = default( soft,        0 )
soft    =  softdec!=-1 ? softdec : sqrt( (((ss_x+ss_y)/2.0-1.0)*100.0) ) * 10
soft    = soft>100 ? 100 : soft
edgemode  = default( edgemode,    0 )
special   = default( special, false )
exborder  = default( exborder, 0)
#radius =   round( radius*(ss_x+ss_y)/2)  #  If it's you, Mug Funky - feel free to activate it again 
xxs=round(ox*ss_x/8)*8
yys=round(oy*ss_y/8)*8
smx=exborder==0?dest_x:round(dest_x/Exborder/4)*4
smy=exborder==0?dest_y:round(dest_y/Exborder/4)*4

clp.isYV12() ? clp : clp.converttoyv12()

ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : last
tmp = last

edge = mt_logic( tmp.mt_edge(thY1=0,thY2=255,"8 16 8 0 0 0 -8 -16 -8 4")
 \              ,tmp.mt_edge(thY1=0,thY2=255,"8 0 -8 16 0 -16 8 0 -8 4")
 \              ,"max") .mt_lut("x 128 / 0.86 ^ 255 *") #.levels(0,0.86,128,0,255,false)

tmpsoft       = tmp.removegrain(11,-1)
dark_limit1   = tmp.mt_inpand()
bright_limit1 = tmp.mt_expand()
dark_limit    = (wide==false) ? dark_limit1   : dark_limit1  .removegrain(20,-1).mt_inpand()
bright_limit  = (wide==false) ? bright_limit1 : bright_limit1.removegrain(20,-1).mt_expand()
minmaxavg     = special==false
 \            ? SimpleAverage(dark_limit1, bright_limit1)
 \            : mt_merge(dark_limit,bright_limit,tmp.removegrain(11,-1),Y=3,U=-128,V=-128)

Str=string(float(strength)/100.0)
normsharp = Smode==1 ? unsharpmask(strength,radius,0)
 \        : Smode==2 ? sharpen(float(strength)/100.0)
 \        : Smode==3 ? mt_lutxy(tmp,minmaxavg,yexpr="x x y - "+Str+" * +")
 \        :            mt_lutxy(tmp,tmpsoft,"x y == x x x y - abs 16 / 1 2 / ^ 16 * "+Str+
 \                       " * x y - 2 ^ x y - 2 ^ "+Str+" 100 * 25 / + / * x y - x y - abs / * + ?")

OS = string(overshoot)
US = string(undershoot)
mt_lutxy( bright_limit, normsharp, yexpr="y x "+OS+" + <y> y x x y - "+US+" - 1 2 / ^ - "+US+" - ?")

Lmode==1 ? clamp(normsharp, bright_limit, dark_limit, overshoot, undershoot) : last
 
normal = last
zero   = clamp(normsharp, bright_limit, dark_limit, 0,0)

Lmode==3 ? mt_merge(normal,zero,edge.mt_inflate()) : normal

      edgemode==0  ?  last
 \  : edgemode==1  ?  mt_merge(tmp,last,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1)
 \  :                 mt_merge(last,tmp,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1)

AMNT  = string(soft)
AMNT2 = string(100-soft)
sharpdiff=mt_lutxy(tmp,last,"x y - 128 +")
sharpdiff2=mt_lutxy(sharpdiff,sharpdiff.removegrain(19,-1),
 \           "x 128 - abs y 128 - abs > y "+AMNT+" * x "+AMNT2+" * + 100 / x ?")

soft==0 ? last : mt_lutxy(tmp,sharpdiff2,"x y 128 - -")
 
     (ss_x != 1.0 || ss_y != 1.0)
\ || (dest_x != ox || dest_y != oy) ? lanczosresize(dest_x,dest_y) : last

ex=blankclip(last,width=smx,height=smy,color=$FFFFFF).addborders(2,2,2,2).coloryuv(levels="TV->PC")
 \.blur(1.3).mt_inpand().blur(1.3).bicubicresize(dest_x,dest_y,1.0,.0)
tmp =  clp.lanczosresize(dest_x,dest_y)

clp.isYV12() ? ( exborder==0 ? tmp.mergeluma(last)
 \                           : mt_merge(tmp,last,ex,Y=3,U=1,V=1) )
 \           : ( exborder==0 ? tmp.mergeluma(last.converttoyuy2())
 \                           : tmp.mergeluma( mt_merge(tmp.converttoyv12(),last,ex,Y=3,U=1,V=1)
 \                                           .converttoyuy2()) )
 
(edgemode!= -1) ? last : edge.lanczosresize(dest_x,dest_y).greyscale

return last
}



SeeSaw.avs:
Code:
#  SeeSaw v0.3e (02 Jan 2006)
#
#  (Full Name: "Denoiser-and-Sharpener-are-riding-the-SeeSaw" )
#
#  This function provides a (simple) implementation of the "crystality sharpen" principle.
#  In conjunction with a user-specified denoised clip, the aim is to enhance
#  weak detail, hopefully without oversharpening or creating jaggies on strong
#  detail, and produce a result that is temporally stable without detail shimmering,
#  while keeping everything within reasonable bitrate requirements.
#  This is done by intermixing source, denoised source and a modified sharpening process,
#  in a seesaw-like manner.
#
#  This version is considered alpha. 
#
#  Usage:
#
#  a = TheNoisySource
#  b = a.YourPreferredDenoising()
#  SeeSaw( a, b, [parameters] )
#
#  You're very much encouraged to feed your own custom denoised clip into SeeSaw.
#  If the "denoised" clip parameter is omitted, a simple "spatial pressdown" filter is used.
#
#
#  Fiddled together by Didée, for your pleasure.
#


# =======  Main function  =======

function SeeSaw( clip  clp, clip "denoised",
 \               int   "NRlimit",int "NRlimit2",
 \               float "Sstr",   int "Slimit", float "Spower", float "SdampLo", float "SdampHi", float "Szp",
 \               float "bias",   int "Smode",    int "sootheT",  int "sootheS", float "ssx",     float "ssy")
{
ssx      = default( ssx,      1.0 )       # supersampling factor x  /  SeeSaw doesn't require supersampling urgently.
ssy      = default( ssy,      ssx )       # supersampling factor y  /  if at all, small values ~1.25 seem to be enough.
NRlimit  = default( NRlimit,    2 )       # absolute limit for pixel change by denoising
NRlimit2 = default( NRlimit2, NRlimit+1)  # limit for intermediate denoising
Sstr     = default( Sstr,     1.5 )       # Sharpening strength (don't touch this too much)
Slimit   = default( Slimit, NRlimit+2 )   # positive: absolute limit for pixel change by sharpening
                                          # negative: pixel's sharpening difference is reduced to diff=pow(diff,1/abs(limit))
Spower   = default( Spower,     4 )       # exponent for modified sharpener
Szp      = default( Szp,     16+2 )       # zero point - below: overdrive sharpening - above: reduced sharpening
SdampLo  = default( SdampLo, Spower+1 )   # reduces overdrive sharpening for very small changes
SdampHi  = default( SdampHi,   24 )       # further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
bias     = default( bias,      49 )       # bias towards detail ( >= 50 ) ,  or towards calm result ( < 50 )
Smode    = default( Smode,     ssx<1.35 ? 11 : ssx<1>=0 ? yv12lutxy(last,sharpdiff,"y 128 "+SLIM+" + > x "+SLIM+" - y 128 "+SLIM+" - < x "+SLIM+" + x y 128 - - ? ?",U=2,V=2)
 \        : yv12lutxy(last,sharpdiff,"y 128 = x x y 128 - abs 1 "+SlIM+" / ^ y 128 - y 128 - abs / * - ?",U=2,V=2)

return( last )
}


# =======  Modified sharpening function  =======

function sharpen2(clip clp, float strength, int power, float zp, float lodmp, float hidmp, int rgmode)
{
STR  = string( strength )
PWR  = string( 1.0/float(power) )
ZRP  = string(    ZP    )
DMP  = string(   lodmp  )
HDMP = (hidmp==0) ? "1" : "1 x y - abs "+string(hidmp)+" / 4 ^ +"

yv12lutxy( clp, clp.RemoveGrain(rgmode,-1,-1), \
           "x y = x x x y - abs "+ZRP+" / "+PWR+" ^ "+ZRP+" * "+STR+" * x y - 2 ^ x y - 2 ^ "+DMP+" + / * x y - x y - abs / * "+HDMP+" / + ?",U=2,V=2)
return( last )
}


# =======  Soothe() function to stabilze sharpening  =======

function Soothe(clip sharp, clip orig, int "sootheT", int "sootheS")
{
sootheT  = default(sootheT, 25 )
sootheS  = default(sootheS,  0 )
sootheT  = (sootheT > 100) ? 100 : (sootheT <100> 100) ? 100 : (sootheS <0> -1) ? last
 \             : yv12lutxy( last, last.temporalsoften(1,255,0,32,2),
 \             "x 128 - y 128 - * 0 <x> x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?", U=1,V=1)

yv12lutxy(orig,last,"x y 128 - -","x y 128 - -","x y 128 - -",U=1,V=1)
# mergechroma(sharp)  #  not needed in SeeSaw
return( last )
}


# =======  MOD4-and-atleast-16 helper function  =======

function m4(float x) {x<16?16:int(round(x/4.0)*4)}


Last edited by gigantibyte on Thu Jan 31, 2008 4:16 am, edited 2 times in total.

Top
 Profile  
PostPosted: Thu Jan 31, 2008 1:41 am  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I far as I can tell we are both using the latest stable build - 2.57.


Top
 Profile  
PostPosted: Thu Jan 31, 2008 4:12 am  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I was using the wrong version of LimitedSharpenFaster.avs . I got the latest at http://avisynth.org/mediawiki/LimitedSharpen. ^Rogue^ also gave me an older, but working-for-me version of RemoveNoiseMC.avs: http://bad-good.org/phpBB2/viewtopic.php?p=91855#91855

My sample is encoding now. I'm all giddy! :mrgreen:


Top
 Profile  
PostPosted: Thu Jan 31, 2008 7:30 am  Post subject:
Reply with quote
User avatar
Offline

The Devil, Probably
Joined: Fri Oct 26, 2007 3:40 pm
Posts: 2250
Location: Inside my body.
Yup, this is something you can only understand when you have scripting and programming experience.

The avisynth scripts look a bit like java-scripts IMO.

So in line 30 of your OLD "RemoveNoiseMC.avs" file there was a ternary operator ( x ? y : z ).

Quote:
csharpen = sharp ? csharpen : csharpen+0.08


It looks like the one who created the script has done something wrong. The variable named "sharp" is not evaluated to result in a boolean (true or false value).

A valid expression for example would have been:

Quote:
csharpen = sharp>1 ? csharpen : csharpen+0.08


Explanation: sharp>1 is an equation that can only return true or false, meaning it will result in a boolean value. :wink:

Hope that helps you to understand what went wrong.

_________________
Keep downloaded files shared as long as possible! You wouldn't be able to download without people sharing the stuff.

Image Image Image Image Image Image
Image

Next release will be: La Cité Des Entfants Perdu (1995) + Making Of (Status: working on the subtitles)
Last release was: Svengali (1931)


Top
 Profile  
PostPosted: Thu Jan 31, 2008 12:19 pm  Post subject:
Reply with quote
User avatar
Offline

Master Of The Dead Donkey
Joined: Mon Jun 19, 2006 4:01 pm
Posts: 708
RedVeil wrote:
Quote:
csharpen = sharp ? csharpen : csharpen+0.08


It looks like the one who created the script has done something wrong.


The syntax of that line is correct.


Top
 Profile  
PostPosted: Thu Jan 31, 2008 12:43 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Sat Oct 20, 2007 10:31 am
Posts: 3600
Agreed. The line is correct and sharp is declared as bool in the prototype.

Since the error is in "RemoveNoiseMC.avs" (which line is line 30 btw.?) and LimitedSharpenFaster() doesn't calls RemoveNoiseMC() the replacement of "RemoveNoiseMC.avs" probably solved the problem. 8)


Top
 Profile  
PostPosted: Thu Jan 31, 2008 3:36 pm  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
Using the RemoveNoiseMC.avs provided by ^Rogue^ did solve my problem, but it doesn't explain why the other version works for elguaxo and not me. :?

Anyhow, now I'm working on my next problem dealing with comptests and presets. *sigh* (I feel like Homer when he tried to build a barbeque pit - "Why must everything in life be so hard?")


Top
 Profile  
PostPosted: Thu Jan 31, 2008 6:33 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Sat Oct 20, 2007 10:31 am
Posts: 3600
I think the error is in this line of RemoveNoiseMC.avs:

Code:
sharp = (rgrain<1>2) ? default(csharpen,0.17) : (rgrain>1) ? default(csharpen,0.15) : default(csharpen,0.13)


In the other file that works for you it looks like this:

Code:
csharp = (rgrain>1) ? (rgrain>2) ? default(csharp,0.31) : default(csharp,0.28) : default(csharp,0.25)


I'm not familiar with the Syntax of Avisynth but "rgrain<1>2" is no valid expression in any programming language I'm aware of. :mrgreen:


Top
 Profile  
PostPosted: Thu Jan 31, 2008 7:00 pm  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I was wondering what "rgrain<1>2" meant. Of course, I was wondering what a lot of the other code meant too. :lol:

Running a Comptest now. It's taking longer than a full encode with AutoGK - 3.36 fps. It almost seems to stall sometimes...zzzzzzz


Top
 Profile  
PostPosted: Thu Jan 31, 2008 10:44 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Fri Jan 19, 2007 2:49 am
Posts: 2624
Location: Chernobyl
gigantibyte wrote:
Running a Comptest now. It's taking longer than a full encode with AutoGK - 3.36 fps. It almost seems to stall sometimes...zzzzzzz


Did you add a bit to the script to run 5% of the video as a comptest?
I ask because I remember forgetting to do that once & after asking Lux & elguaxo 30 odd hours later it became apparent that was what the problem was :wink:


Top
 Profile  
PostPosted: Thu Jan 31, 2008 11:13 pm  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
Oh man, it's worse than I thought. What I thought was the first pass of the comptest was actually just a mini comptest before the real one. I'm only half way through the first pass currently - 6 hours from starting. By the number of frames used in the test, I'm thinking this is a 10% test.


Code:

"Checking Source...."
Streaming frame 0 (of 1, 0.00%)
1
'C:\AviSynth' is not recognized as an internal or external command,
operable program or batch file.

start "3% Compressibility Test - Single Pass" /b /wait /belownormal "C:\AviSynth
 2.5\avs2qxvid\bin\xvid_encraw_20070203.exe"  -zones 0,w,1,KO -threads 2 -progre
ss 100 -max_key_interval 240 -nopacked -quality 4 -vhqmode 0 -max_bframes 2 -bqu
ant_ratio 162 -bquant_offset 0 -qtype 1 -qmatrix "C:\AviSynth 2.5\avs2qxvid\matr
ix\Didees-SixOfNine.cqm" -nochromame -turbo -single -cq 3 -stats "C:\temp\gorr\t
mp\Gor.ct.stats" -type 2 -i "C:\temp\gorr\Gor.ct.avs" -avi "C:\temp\gorr\Gor.ct.
avi"

xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003


xvid [info]: outputting statistics to C:\temp\gorr\tmp\Gor.ct.stats
Trying to retrieve width and height from input header
xvid [info]: Avisynth detected
xvid [info]: Input colorspace is YV12
xvid [info]: Input is 704 x 384, 23.976fps (24000/1001), starting from frame 0
xvid [info]: Number of frames to encode: 4102
xvid [info]: xvidcore build version: xvid-1.2.0-dev
xvid [info]: Bitstream version: 1.2.-127
xvid [info]: Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSC
xvid [info]: Detected cpus = 2, threads requested = 2, threads in use = 2
   4101 frames( 99%) encoded,   2.46 fps, Average Bitrate =  2214kbps
Tot: enctime(ms) =1668919.00,               length(bytes) =    47385158
Avg: enctime(ms) = 406.66, fps =   2.46, length(bytes) =       11546, psnr y = 4
5.86, psnr u = 50.14, psnr v = 50.31
I frames:    220 frames, size =  33492/    7368359, quants =  3 / 3.00 /  3
P frames:   1660 frames, size =  16747/   27801509, quants =  3 / 3.00 /  3
B frames:   2222 frames, size =   5497/   12215290, quants =  4 / 4.00 /  4

Source FPS              = 24000/1001
No. of frames for CT    = 2344
Size of selected frames = 23273133
Target Bitrate          = 972kbps
Compressibility Test    = 51
Selected Level          = 45

Preset to use           = TGHQ-45

start "TGHQ-45 - Pass 1/2" /b /wait /belownormal "C:\AviSynth 2.5\avs2qxvid\bin\
xvid_encraw_20070203.exe" -zones 0,q,3,KO -threads 2 -progress 100 -max_key_inte
rval 240 -nopacked -quality 5 -vhqmode 1 -max_bframes 2 -bquant_ratio 162 -bquan
t_offset 0 -qtype 1 -qmatrix "C:\AviSynth 2.5\avs2qxvid\matrix\eqm_v3hr_rev1.xcm
" -nochromame -turbo -bitrate 972 -pass1 "C:\temp\gorr\tmp\Gor.pass" -type 2 -i
"C:\temp\gorr\Gor.avs"

xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003


Trying to retrieve width and height from input header
xvid [info]: Avisynth detected
xvid [info]: Input colorspace is YV12
xvid [info]: Input is 704 x 384, 23.976fps (24000/1001), starting from frame 0
xvid [info]: Number of frames to encode: 136417, Bitrate = 972kbps
xvid [info]: xvidcore build version: xvid-1.2.0-dev
xvid [info]: Bitstream version: 1.2.-127
xvid [info]: Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSC
xvid [info]: Detected cpus = 2, threads requested = 2, threads in use = 2
  72601 frames( 53%) encoded,   3.43 fps, Average Bitrate =  1304kbps



Here's what I don't understand. Yesterday, I ran a 1 minute clip of this movie with the same filtering through GK. The encoding took 14 minutes for the two passes. So for a 90 minute movie x 14 = 1260 min / 60 = 21 hours. 10% = 2.1 hours. Why is this comptest taking so long?


Last edited by gigantibyte on Thu Jan 31, 2008 11:25 pm, edited 1 time in total.

Top
 Profile  
PostPosted: Thu Jan 31, 2008 11:19 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Fri Jan 19, 2007 2:49 am
Posts: 2624
Location: Chernobyl
Quote:
start "3% Compressibility Test - Single Pass"


Looks like youre actually comp testing a two pass full rip like I mentioned above :o

I honestly cant even remember the code to add to your script as its been ages since I ripped anything, but I'm sure if you ask on SBIG they will tell you immediately :D

_________________
Image


Top
 Profile  
PostPosted: Fri Feb 01, 2008 1:02 am  Post subject:
Reply with quote
User avatar
Offline

The Devil, Probably
Joined: Thu Jul 24, 2003 10:13 am
Posts: 2029
Location: The Slab
gigantibyte wrote:
Why is this comptest taking so long?


Have you missed out the line:

SelectRangeEvery(280,14)

from the avs? Otherwise you're doing a two-pass 100% comptest. :lol:

(Which is basically what bugs has asked you twice ;) )


Top
 Profile  
PostPosted: Fri Feb 01, 2008 2:18 am  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I forgot to make the proper enc.txt file. Lux didn't mention anything to me about SelectRangeEvery(280,14). Do I put that at the end of my main avs file?

Edit:

It was just because I hadn't created a proper enc.txt file. The comp test ran fine this time.


Top
 Profile  
PostPosted: Sun Feb 03, 2008 7:06 pm  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
How does this look?

source
Image

filtered
Image

.avs
Code:
Import("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\SeeSaw\Seesaw.avs")
Import("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\LimitedSharpenFaster.avs")

DGDecode_mpeg2source("C:\temp\griz\gsample.d2v",info=3)
ColorMatrix(hints=true, interlaced=true)

tfm(pp=7).tdecimate()

crop( 4, 62, -6, -64)


Spline36Resize(704,384)

#Filtering
a= last
b=a.LimitedSharpenFaster(Smode=4,strength=20,overshoot=1,wide=false,ss_x=1.3,ss_y=1.3)
SeeSaw(a,b, NRlimit=2, NRlimit2=4, Sstr=1.5, Slimit=6, Spower=6, Sdamplo=12, Szp=16)


Top
 Profile  
PostPosted: Sun Feb 03, 2008 7:28 pm  Post subject:
Reply with quote
User avatar
Offline

The Devil, Probably
Joined: Fri Oct 26, 2007 3:40 pm
Posts: 2250
Location: Inside my body.
Looks good IMO. :beerchug:

_________________
Keep downloaded files shared as long as possible! You wouldn't be able to download without people sharing the stuff.

Image Image Image Image Image Image
Image

Next release will be: La Cité Des Entfants Perdu (1995) + Making Of (Status: working on the subtitles)
Last release was: Svengali (1931)


Top
 Profile  
PostPosted: Sun Feb 03, 2008 8:06 pm  Post subject:
Reply with quote
User avatar
Offline

Blood Sucking Freak
Joined: Sat Dec 09, 2006 4:24 am
Posts: 221
Location: Ninth circle of Hell
I seem to be suffering from dark corners. I wonder if there is a filter for that? Or perhaps a better s-video cable? Only seems to happen on HD channels.


Top
 Profile  
PostPosted: Sun Feb 03, 2008 8:17 pm  Post subject:
Reply with quote
User avatar
Offline

The Ancient One
Joined: Fri Jan 19, 2007 2:49 am
Posts: 2624
Location: Chernobyl
gigantibyte wrote:
I seem to be suffering from dark corners. I wonder if there is a filter for that?


LoL Hasn't taken you long to move from AGK to GK perfectionist :wink:


Top
 Profile  
Display posts from previous:  Sort by  

All times are UTC [ DST ]

Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next


Who is online

Users browsing this forum: No registered users and 6 guests


Moderator: Help Mods

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Frontpage / Forums / Scifi


What's blood for, if not for shedding?