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. |
![]() |
#1201 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
you go ahead delete your posts if you want, I won't, I am not a big fan of self-censorship.
edit: for davidh, the definition of self-censorship: the act or action of refraining from expressing something (such as a thought, point of view, or belief) that others could deem objectionable. the perfect word for what you just did. Last edited by feisty2; 6th July 2021 at 21:10. |
![]() |
![]() |
![]() |
#1202 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,478
|
Not what the word means but okay...
Self-censoring is quite distinct from censorship. That's why it has "self-" in front of it. I deleted my posts not for their objectionality but because they were off-topic. Last edited by wonkey_monkey; 8th July 2021 at 22:18. |
![]() |
![]() |
![]() |
#1203 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,275
|
O.K., by popular demand I consider integrating brainfuck language elements into Expr
![]() |
![]() |
![]() |
![]() |
#1204 | Link |
Registered User
Join Date: Dec 2005
Location: Germany
Posts: 1,769
|
Finally something I can understand easily!
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository |
![]() |
![]() |
![]() |
#1205 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,531
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
![]() |
#1206 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,478
|
pinterf, do you know if there's any documentation for jitasm? I see references to a "GettingStarted wiki" but I don't know where to find that or if it still exists. I'm slowly grasping it through reading exprfilter.cpp but I could use the context of an actual guide.
|
![]() |
![]() |
![]() |
#1207 | Link | |
Registered User
Join Date: Apr 2010
Location: I have a statue in Hakodate, Japan
Posts: 741
|
Quote:
Here |
|
![]() |
![]() |
![]() |
#1208 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,337
|
Thanks for the update pinterf. I got the Sorting Network to work, it is not THAT slow though. Given that the top speed one can get with a median in Expr is "undot" (min and max clamp), sorting is only 18% below in performance. It's fine for implementing exotic kernels and use in production. The only problem I see is that unlike ex_boxblur() median Expr can't match removegrain speed, and the only difference is the operator used (min and max), since pixel fetching is shown to give the same performance. I do think there might be room for improvement but can't actually tell as I don't understand CPP.
Code:
# 100% removegrain(1,-1) # 83% ex_median(mode="undot",UV=1) # 65% ex_median(mode="undot2",UV=1) # 301fps # 1.2% MedianBlur(1,0,0) Code:
# mode name prone to change (suggestions welcome :P ) mode == "undot2" ? "x[-1,1] A^ x[0,1] B^ x[1,1] C^ x[-1,0] D^ x[1,0] E^ x[-1,-1] F^ x[0,-1] G^ x[1,-1] H^ " \ +"A C min AA^ A C max CC^ " \ +"B D min BB^ B D max DD^ " \ +"E G min EE^ E G max GG^ " \ +"F H min FF^ F H max HH^ " \ +"AA EE min A^ AA EE max E^ " \ +"BB FF min B^ BB FF max F^ " \ +"CC GG min C^ CC GG max G^ " \ +"DD HH min D^ DD HH max H^ " \ +"A B min AA^ A B max BB^ " \ +"C D min CC^ C D max DD^ " \ +"E F min EE^ E F max FF^ " \ +"G H min GG^ G H max HH^ " \ +"CC EE min C^ CC EE max E^ " \ +"DD FF min D^ DD FF max F^ " \ +"BB E min B^ BB E max EE^ " \ +"D GG min DD^ D GG max G^ " \ +"B C min BB^ B C max CC^ " \ +"DD EE min D^ DD EE max E^ " \ +"F G min FF^ F G max GG^ " \ +"x[0,0] BB GG clip" : \ @wonkey_monkey: I tested with the ternary option as I thought one ternary might be faster than min+max but I don't think your code example works. Code:
"A C < Q@ A AA^ C CC^ ? Z^ Q C CC^ A AA^ ? Z^ " PD: I had a look at the MSVC compiler size, 40Gb, ouch!
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1210 | Link | |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,478
|
Quote:
Remember that everything before the "?" gets executed - all "?" does is select which of the two topmost stack items to remove. Maybe you meant AA@ and CC@, so as not to remove A and C from stack, but in any case both will then be overwritten by the next section anyway, as will the result you would have stored in Z. So your code says: Code:
Compare A and C (stack contains result) Store result in Q (stack contains result) Load A, but immediately store and pop into AA (stack contains result) Load C, but immediate store and pop into CC (stack contains result) ? - needs three items on the stack so it fails Code:
x[0,0] FF GG clip" Last edited by wonkey_monkey; 8th July 2021 at 09:59. |
|
![]() |
![]() |
![]() |
#1212 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,337
|
@wonkey_monkey: true, true, typo (^ for @). I was also overwriting the second ternary.
This thing is tricky, this should do it but it doesn't, so I will leave this here and think in the evening: Code:
+"A C < Q@ A AA@ C CC@ ? Z^ Q C CC@ A AA@ ? Z^ " +"B D < Q@ B BB@ D DD@ ? Z^ Q D DD@ B BB@ ? Z^ " +"E G < Q@ E EE@ G GG@ ? Z^ Q G GG@ E EE@ ? Z^ " +"F H < Q@ F FF@ H HH@ ? Z^ Q H HH@ F FF@ ? Z^ " +"AA EE < Q@ AA AAA@ EE EEE@ ? Z^ Q EE EEE@ AA AAA@ ? Z^ " +"BB FF < Q@ BB BBB@ FF FFF@ ? Z^ Q FF FFF@ BB BBB@ ? Z^ " +"CC GG < Q@ CC CCC@ GG GGG@ ? Z^ Q GG GGG@ CC CCC@ ? Z^ " +"DD HH < Q@ DD DDD@ HH HHH@ ? Z^ Q HH HHH@ DD DDD@ ? Z^ " +"AAA BBB < Q@ AAA A@ BBB B@ ? Z^ Q BBB B@ AAA A@ ? Z^ " +"CCC DDD < Q@ CCC C@ DDD D@ ? Z^ Q DDD D@ CCC C@ ? Z^ " +"EEE FFF < Q@ EEE E@ FFF F@ ? Z^ Q FFF F@ EEE E@ ? Z^ " +"GGG HHH < Q@ GGG G@ HHH H@ ? Z^ Q HHH H@ GGG G@ ? Z^ " +"C E < Q@ C CC@ E EE@ ? Z^ Q E EE@ C CC@ ? Z^ " +"D F < Q@ D DD@ F FF@ ? Z^ Q F FF@ D DD@ ? Z^ " +"B EE < Q@ B BB@ EE EEE@ ? Z^ Q EE EEE@ B BB@ ? Z^ " +"DD G < Q@ DD DDD@ G GG@ ? Z^ Q G GG@ DD DDD@ ? Z^ " +"BB CC < Q@ BB BBB@ CC CCC@ ? Z^ Q CC CCC@ BB BBB@ ? Z^ " +"DDD EEE < Q@ DDD D@ EEE E@ ? Z^ Q EEE E@ DDD D@ ? Z^ " +"FF GG < Q@ FF FFF@ GG GGG@ ? Z^ Q GG GGG@ FF FFF@ ? Z^ " The last line should be the second from the minimum and second from the maximum, since order is A B C D E F G H, I chose B G. I compared it against removegrain(2) anyway.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1213 | Link | |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,478
|
Quote:
|
|
![]() |
![]() |
![]() |
#1214 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,337
|
I have used ternaries for years now, this is rather a stack issue, posted here a simplified code.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1215 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,398
|
It took several months, but I finally got around to working on a macOS installer package. 3.7.0 is available on the normal Releases page, in two forms:
High Sierra and Mojave builds (10.13 & 10.14) Catalina and higher builds (10.15+) And also filesonly tarballs if you'd rather skip the installer (although they do have shell scripts to help users unfamiliar with the process). |
![]() |
![]() |
![]() |
#1217 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,880
|
Quote:
Only thing I'm aware of, Code:
RT_ReadTxtFromFile(String ,Int "Lines"=0,Int "Start"=0) Non-clip function. String Filename, Name of text file to load into a string. Lines=0=unlimited. Set to number of leading lines in text file to load, eg 1 = load only the first line of text file. The return string is n/l ie Chr(10) separated, and carriage returns are removed from the returned string. If source file was missing newline on very last line, it will append a newline so that all lines are similarly formatted. v1.03, Added Start arg default=0=very first line (relative 0). Would have been nice to have start and lines in reverse order but implemented as above to not break scripts. Throws an error if your requested Start is >= to the number of lines in the file, or zero len file. To fetch the last line of a text file, use eg Start = RT_FileQueryLines(Filename) - 1 (Start is zero relative). You could eg get the last line of a d2v file which might look like this:- "FINISHED 100.00% VIDEO"
__________________
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 ??? |
|
![]() |
![]() |
![]() |
#1218 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,275
|
Quote:
http://avisynth.nl/index.php/ConditionalReader |
|
![]() |
![]() |
![]() |
#1219 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,275
|
Quote:
|
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|