Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st April 2019, 09:14   #41  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by jpsdr View Post
Probably globaly the same generation. Made a mistake/confusion... ZX spectrum i was more in high school. It was the ZX81 i was middle school...

Yes pinterf, can you make a ZX81 compatible version...? (And it's the good day for this kin of things)
O.K. but it has to work with the 1 kbyte version as well .
(I was only window-shopping when I was 13 or so. Unfortunately I possessed none of the popular machines (C64 and Speccy), they costed us too much, I had only a DIY kit based Z80 machine with 6 kbytes RAM during my 15-18 years old era. Optimization, yes, was always welcome)
pinterf is offline   Reply With Quote
Old 1st April 2019, 14:06   #42  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Arh, my ol' ZX81 with 32KB ram pack (complete with lump of blue-tac or optional RAMPACK wobble feature).
After buildin' the ZX81 (with soldering iron), was a hairy moment when nothing happened on switch on,
was heat sink not quite square with board and slightly overlapped the board edge causing short with
earth strip around edge of board, squared up with board, all okey-dokey.
Boxed as new ZX Spectrum now bout £1500, or so I heard.
Wish I had had the power house ZX80, what a machine !
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 1st April 2019, 14:35   #43  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by StainlessS View Post
Boxed as new ZX Spectrum now bout £1500, or so I heard.
What? That's insane.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 1st April 2019, 15:09   #44  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Qwik look on ebay,most expensive found was £599.00 (for the 128 KB m/c).
https://www.ebay.co.uk/i/293003953054

I think the £1,500 price tag was mentioned in some review.

EDIT: The £599.00 Spectrum above aint quite MINT, the machine might well be, but the box looks well knocked about.
£1,500.00 tag was for mint boxed.

Mind you, a year or two ago,someone put up a Samsung Galaxy Beam GT xxx (dont remember number), a projector phone,
somebody had one on e-bay for $2,500, they were only about $300 new and many others on e-bay were about $80.00.
Guess some people just put em up at rediculous price in the hope that someone stupid comes along.
EDIT: Maybe Galaxy Beam GT i8530.

EDIT: In same link above, Sinclair ZX80 and at same price £599.00.

EDIT To below: 32KB RAMPACK was the biggest possible ram upgrade, came initially with 1KB ram (my 1st rampack was 16KB).
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 2nd April 2019 at 01:23.
StainlessS is offline   Reply With Quote
Old 1st April 2019, 23:25   #45  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
Quote:
my ol' ZX81 with 32KB ram pack
Considering that my first computer shipped with 64MB of RAM and Windows 98, I feel like I'm much younger than you, Jean-Philippe, Tormento and Ferenc are. :P
FranceBB is offline   Reply With Quote
Old 2nd April 2019, 18:04   #46  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by FranceBB View Post
Considering that my first computer shipped with 64MB of RAM and Windows 98, I feel like I'm much younger than you, Jean-Philippe, Tormento and Ferenc are. :P
Yep, you are lucky, unfortunately we'll not live out when gravitational-wave detectors would be easily embedded in an iPhone XLIII.
pinterf is offline   Reply With Quote
Old 4th April 2019, 08:46   #47  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
More serious question : Is there some kind of redistribuable to install to run the clang/llvm version ?
I've tried the releases.llvm link to see, but (at least right now) didn't work (time out).
__________________
My github.
jpsdr is offline   Reply With Quote
Old 4th April 2019, 09:49   #48  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
I built with /MT so it does not need any redistributables.
pinterf is offline   Reply With Quote
Old 6th April 2019, 08:04   #49  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by real.finder View Post
TemporalRepair in TemporalDeGrain_SE
I'm near the end of porting (including to make the source human readable, re-creating plain C language versions, these works take a huge amount of time as well). Right now I put it in the RemoveDirt DLL, I woudn't create a new DLL just for the sake of this single function. Opinion?
pinterf is offline   Reply With Quote
Old 6th April 2019, 10:01   #50  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by pinterf View Post
I'm near the end of porting (including to make the source human readable, re-creating plain C language versions, these works take a huge amount of time as well). Right now I put it in the RemoveDirt DLL, I woudn't create a new DLL just for the sake of this single function. Opinion?
isn't Rgtools better for it? they was part of RemoveGrain in first place
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 6th April 2019, 10:04   #51  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by real.finder View Post
isn't Rgtools better for it? they was part of RemoveGrain in first place
That was my second thought.
pinterf is offline   Reply With Quote
Old 6th April 2019, 18:37   #52  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
Quote:
Originally Posted by real.finder View Post
isn't Rgtools better for it? they was part of RemoveGrain in first place
I second that.

Edit:

pinterf, I started working on the wiki documentation for RemoveDirt (still not done), do you know what the cache and gcache parameters do in SCSelect? They are undocumented in Kassandro's wall of text, umm I mean documentation .

Last edited by Reel.Deel; 6th April 2019 at 18:58.
Reel.Deel is offline   Reply With Quote
Old 6th April 2019, 20:18   #53  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
RD heres the source,

Code:
public:
	SCSelect(PClip clip, PClip _scene_begin, PClip _scene_end, PClip _global_motion, double dfactor, bool _debug, bool planar, int cache, int gcache)   // the constructor
		: GenericVideoFilter(clip), AccessFrame(vi.width, vi.IsYUY2()), scene_begin(_scene_begin), scene_end(_scene_end), global_motion(_global_motion), dirmult(dfactor), debug(_debug), lnr(-2)
	{
		if( vi.IsYV12() + planar == 0 ) AVSenvironment->ThrowError("SCSelect: only YV12 and planar YUY2 clips are supported");
		CompareVideoInfo(vi, scene_begin->GetVideoInfo(), "SCSelect");
		CompareVideoInfo(vi, scene_end->GetVideoInfo(), "SCSelect");
		CompareVideoInfo(vi, global_motion->GetVideoInfo(), "SCSelect");
		hblocks = vi.width / (2*SSE_INCREMENT);
		incpitch = hblocks * (-2*SSE_INCREMENT);
		scene_begin->SetCacheHints(CACHE_RANGE, 0);
		scene_end->SetCacheHints(CACHE_RANGE, 0);
		if(gcache >= 0) global_motion->SetCacheHints(CACHE_RANGE, 0);       // used nowhere else
		if(cache >= 0) child->SetCacheHints(CACHE_RANGE, cache);                              // child = source to ScSelect (input, or DClip in below script function)
	}
};

AVSValue __cdecl CreateSCSelect(AVSValue args, void* user_data, IScriptEnvironment* env)   // get user args and calls constructor returning filtered clip
{
	enum ARGS { CLIP, SBEGIN, SEND, GMOTION, DFACTOR, DEBUG, PLANAR, CACHE, GCACHE };
	return new SCSelect(args[CLIP].AsClip(), args[SBEGIN].AsClip(), args[SEND].AsClip(), args[GMOTION].AsClip(), args[DFACTOR].AsFloat(4.0)
				, args[DEBUG].AsBool(false), args[PLANAR].AsBool(false), args[CACHE].AsInt(2), args[GCACHE].AsInt(0));           // cache default 2, gcache default 0
};
No idea how that cash stuff works, I prefer plastic [ EDIT: Actually, many UK banknotes are now plastic, but its just not the same. ]

EDIT: So far as I remember, the global_motion clip is the clip delivered when decided that it is NOT a scene change, and may or may not be subtitled by the client/user.

EDIT:
This is almost the same as a script func [ dont think I ever got different results comparing to SCSelect ]
EDIT: SCSelect(input) and SCSelect_Like(dclip) are synonymous except that dclip can be dissimilar colorspace and dimensions to the other script clips.
Code:
# RemoveDirt's SCSelect(clip input, clip scene_begin, clip scene_end, clip global_motion, float dfactor, bool debug, bool planar)

Function SCSelect_Like(clip dclip,clip Start,clip End,clip Motion, float "dfactor",bool "debug") {
    # Start, End, Motion MUST all be same, dclip can be other colorspace/size (unlike SCSelect).
    dfactor=Float(Default(dfactor,4.0))
    debug=Default(debug,false)
    Global SCM_A=0.0 Global SCM_B=0.0 Global SCM_SC=0 Global SCM_Prev=-1
    Motion.ScriptClip("""
        n = current_frame
        NotNext = (n!=SCM_Prev+1)
        Global SCM_A=(NotNext)? RT_LumaDifference(dclip,dclip,n=n-1,n2=n)  : SCM_B
        Global SCM_B=           RT_LumaDifference(dclip,dclip,n=n,n2=n+1)
        # 0 = Start of scene, 1 = End of scene, 2 = Global motion
        Global SCM_SC=(n==FrameCount-1)?1:(SCM_A>dfactor*SCM_B || n==0)?0:(SCM_B>dfactor*SCM_A)?1:2
        (SCM_SC==0) ? Start : (SCM_SC==1) ? End : Last      # Choose Start, End or Motion(ie Last)
        (debug)?RT_Subtitle("%d ] %6.2f %6.2f SC=%d",n,SCM_A,SCM_B,SCM_SC):NOP
        Global SCM_Prev=n
        Return Last
    """,args="dfactor,Start,End,Dclip,debug")          # Needs Grunt for args
    return Last
}
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 6th April 2019 at 21:14.
StainlessS is offline   Reply With Quote
Old 7th April 2019, 18:10   #54  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by Reel.Deel View Post
I second that.

Edit:

pinterf, I started working on the wiki documentation for RemoveDirt (still not done), do you know what the cache and gcache parameters do in SCSelect? They are undocumented in Kassandro's wall of text, umm I mean documentation .
They were converted internally to AVS 2.5 cache hints, telling the frame caching system to prefer caching at least the given number of frames. In Avisynth+ these hints do nothing. For avs 2.6, dunno. It probably served fine tuning purposes. Now the parameters are kept for compatibility reasons in order not to break old scripts.
pinterf is offline   Reply With Quote
Old 10th April 2019, 14:49   #55  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
Quote:
Originally Posted by pinterf View Post
They were converted internally to AVS 2.5 cache hints, telling the frame caching system to prefer caching at least the given number of frames. In Avisynth+ these hints do nothing. For avs 2.6, dunno. It probably served fine tuning purposes. Now the parameters are kept for compatibility reasons in order not to break old scripts.
Thanks for the info, I will add it to the wiki doc. next time I have a bit of time.
Reel.Deel is offline   Reply With Quote
Old 13th April 2019, 18:31   #56  |  Link
thescrapyard
Registered User
 
thescrapyard's Avatar
 
Join Date: Feb 2008
Posts: 59
Quote:
Originally Posted by StainlessS View Post
Arh, my ol' ZX81 with 32KB ram pack (complete with lump of blue-tac or optional RAMPACK wobble feature).
After buildin' the ZX81 (with soldering iron), was a hairy moment when nothing happened on switch on,
was heat sink not quite square with board and slightly overlapped the board edge causing short with
earth strip around edge of board, squared up with board, all okey-dokey.
Boxed as new ZX Spectrum now bout £1500, or so I heard.
Wish I had had the power house ZX80, what a machine !
I have a ZX80 I acquired, comes with some paperwork and a letter from Sinclair Research plus rare white ZX80 16K RAM pack. Never been tested it works and I've had over 10 years. Keep meaning to get a proper ZX80 power supply to add to it and at least try a universal power supply to see if it actually works. Not boxed

Wish I had a Jupiter ACE though, worth over £400 even without a box and nothing else. They are really rare and did know somebody who bought one when they first came out many years ago
thescrapyard is offline   Reply With Quote
Old 13th April 2019, 21:46   #57  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Quote:
Originally Posted by thescrapyard View Post
I have a ZX80
Quote:
Originally Posted by StainlessS View Post
EDIT: In same link above, Sinclair ZX80 and at same price £599.00.
You be almost a millionaire then.

Very apt name and avatar Mr Steptoe.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 13th April 2019 at 21:52.
StainlessS is offline   Reply With Quote
Old 15th July 2020, 20:04   #58  |  Link
F1nkster
Registered User
 
Join Date: Sep 2011
Location: King of Prussia, PA
Posts: 19
How much effort would it take to get a Linux build of RemoveDirt to go with AVS+ on Linux? I'd like to request it, but I respect it may be easier said than done.
F1nkster is offline   Reply With Quote
Old 26th May 2021, 14:06   #59  |  Link
GMJCZP
Registered User
 
GMJCZP's Avatar
 
Join Date: Apr 2010
Location: I have a statue in Hakodate, Japan
Posts: 744
Hi, I am having trouble with my DeCelluloid script , some greenish frames appear, here is a sample:

Sample2

The culprit is RemoveDirt 0.9.3 and SCSelect, I had to reuse the old RemoveDirt SSE2 1.0
__________________
By law and justice!

GMJCZP's Arsenal
GMJCZP is offline   Reply With Quote
Old 26th May 2021, 15:09   #60  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
You using the Clang version again with no SSE 4.1 ?
If you dont have SSE4.1, SSE2 is probably best anyway, I remember there were often problems
with SSE3 and I never used it if SSE2 were available. [speed difference, negligible].

Post your script, and versions of stuff, AVS+, RemoveDirt RGtootls.

Also, whatever problem you have, post image using this.

Code:
###
# Function DeCelluloid (adapted by GMJCZP).
###

# Eliminate garbage of top and bottom image of old videos.
# Low Gfactor values => larger detection, more probability appear artifacts
# High Gfactor values => minor detection, more safe.
# Thanks a Didée for the idea.
# https://forum.doom9.org/showthread.php?p=1567932#post1567932
# Requirements: RGTools, RemoveDirt.
# Version 1.0, first attempt.

function DeCelluloid(clip source, float "Gfactor", bool "_grey" ) {
    Gfactor=default(Gfactor, 5.0) # Garbage factor
    _grey = default(_grey, false) # Source in Black and White
    prev = BackwardClense(source, grey=_grey)
    next = ForwardClense(source, grey=_grey)
    h = height(source)
    h_top = int(h*0.20)
    h_top = (h_top % 2) == 0 ? h_top : h_top + 1
    h_bottom = int(h*0.375)
    h_bottom = (h_bottom % 2) == 0 ? h_bottom : h_bottom + 1
    source.LetterBox(h_top,h_bottom).SCSelect(next,prev,source,dfactor=Gfactor)
}

FN = "Sample2.mp4".RT_GetFullPathName

LWLibavVideoSource(FN)
O=Last
#return info
DeCelluloid()

TOP=StackHorizontal(O,Last)
D1=ClipDelta(Last,O)
D2=ClipDelta(Last,O,true)
BOT=StackHorizontal(D1,D2)
StackVertical(Top,Bot)
return last

# Return Clip Difference of input clips (amp==true = Amplified, show==true = show background)
Function ClipDelta(clip clip1,clip clip2,bool "amp",bool "show") {
    amp=Default(amp,false)
    show=Default(show,false)
    c2=clip1.levels(128-32,1.0,128+32,128-32,128+32).greyscale()
    c1=clip1.subtract(clip2)
    c1=(amp)?c1.levels(127,1.0,129,0,255):c1
    return (show)?c1.Merge(c2):c1
}
Off to hopsital Appt, now.
EDIT: I dont see any green stuff.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 05:50.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.