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.

 Doom9's Forum mt_lutxy
 User Name Remember Me? Password
 Register FAQ Calendar Search Today's Posts Mark Forums Read

 Thread Tools Search this Thread Display Modes
 11th May 2012, 15:07 #1  |  Link lisztfr9 Registered User   Join Date: Apr 2010 Posts: 175 mt_lutxy Hi, I can't get started with this function... mt_lutxy mt_lutxy : clip clip1, clip clip2, string expr("x"), string yexpr("x"), string uexpr("x"), string vexpr("x") It applies a two-parameters function defined by expr to all the pixels. The function is written is reverse polish notation. If yexpr, uexpr or vexpr isn't defined, expr is used instead. 1) How pixels of the clip 2 are used for calculation ? - expr("x") I guess the other expressions applies to Y, U, V ? mt_lutxy(o,g,"x x y - abs "+string(z)+" / 1 "+string(pow)+" / ^ "+string(z)+" * "+string(str)+ \ " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" + / * x y - x y - abs 0.001 + / * +",U=2,V=2) Ok, i know what reverse polish notation is, but i'm unable to understand this. It would be nice to have at least 1 example somewhere, to start with, explaining how the function is working on a simple task.... x y looks like Cartesian coordinates... what does x x y ? * x y - 2 ^ x y - 2 where comes clip2 in calculation ... ? reverse notation, why is the * before the x, y : * x y - x y ? TIA, L
 11th May 2012, 15:26 #2  |  Link lisztfr9 Registered User   Join Date: Apr 2010 Posts: 175 mt_average mt_average : clip clip1, clip clip2 Equivalent to mt_lutxy("x y + 2 /"), but faster. Ok, this is x + y / 2.
11th May 2012, 16:39   #3  |  Link
Gavino
Avisynth language lover

Join Date: Dec 2007
Location: Spain
Posts: 3,420
Quote:
 Originally Posted by lisztfr9 How pixels of the clip 2 are used for calculation ?
For each pixel, the output value is calculated from the relevant expression, with x as the value of the pixel in clip1 and y the pixel in clip2.

For RPN, see http://en.wikipedia.org/wiki/Reverse_Polish_notation.

Note also the functions mt_polish and mt_infix for converting between RPN and 'normal' (infix) expression form.
__________________
GScript and GRunT - complex Avisynth scripting made easier

 12th May 2012, 09:46 #4  |  Link lisztfr9 Registered User   Join Date: Apr 2010 Posts: 175 Ok, but why is it so confusing ? because this is not RPN : (o,g,"x x y - abs "+string(z)+" The first "x" must belong to the syntax of the function, but seems also be a part of an RPN expression. But for being RPN, it would need 2 operators behind, where there is only 1. Also, there are 2 levels of quotes, around variables and around expressions ! The "abs" statement, applies to a parameter inside quotes, which usually enclose strings variables. And finally, x y usually refer to coordinated along X and Y axis in a plan... Last edited by lisztfr9; 12th May 2012 at 09:53. Reason: typo
12th May 2012, 10:55   #5  |  Link
Gavino
Avisynth language lover

Join Date: Dec 2007
Location: Spain
Posts: 3,420
Quote:
 Originally Posted by lisztfr9 this is not RPN : (o,g,"x x y - abs "+string(z)+" The first "x" must belong to the syntax of the function, but seems also be a part of an RPN expression. But for being RPN, it would need 2 operators behind, where there is only 1. Also, there are 2 levels of quotes, around variables and around expressions ! The "abs" statement, applies to a parameter inside quotes, which usually enclose strings variables.
The added source of confusion here is that the expression string is being constructed dynamically by string concatenation. This is necessary because it needs to include the literal value of 'z' which is a script variable, so the string() function is used. Similarly for the other variables in the original expression.

You cannot in general make sense of a fragment of RPN without considering the whole string. The operator that goes with a particular operand may be much further on in the string.

Quote:
 And finally, x y usually refer to coordinated along X and Y axis in a plan...
They have that interpretation in mt_lutspa, but forget that here - in mt_lutxy, they refer to the pixels from the two clips.
__________________
GScript and GRunT - complex Avisynth scripting made easier

 12th May 2012, 17:34 #6  |  Link StainlessS HeartlessS Usurer     Join Date: Dec 2009 Location: Over the rainbow Posts: 10,080 For anyone wanting to play with RPN, there is a FreeWare RPN calculator Excalibur v2.00 (from 2006), have not as yet played with it much but it looks quite good. Below from text on SoftPedia (home site no longer on-line). Code: ```Excalibur description A full featured RPN-only calculator The Excalibur application was designed to be a full featured RPN-only calculator. This is a serious calculator for serious users. Excalibur takes up a small amount of resources for all it does so well. Here are some key features of "Excalibur": · Powerful RPN entry. 300 Functions (scientific, business, conversion, computer science, physics, complex numbers, geometry, vectors, etc). Full 4 or 8-level stack. · International support for different comma and decimal point formats. Programmable, macros, registers, custom button banks, etc.``` http://www.softpedia.com/get/Science...xcalibur.shtml __________________ 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 ???
 12th May 2012, 17:39 #7  |  Link 06_taro soy sauce buyer   Join Date: Mar 2010 Location: United Kingdom Posts: 164 mt_polish( any_infix_notation ) returns reverse polish notation mt_infix( any_rpn ) returns infix notation e.g., mt_lutxy(a, b, "x y +") equals to mt_lutxy(a, b, mt_polish("x + y"))
12th May 2012, 18:17   #8  |  Link
Overdrive80

Join Date: Feb 2009
Location: Spain
Posts: 674
Quote:
 Originally Posted by 06_taro mt_polish( any_infix_notation ) returns reverse polish notation mt_infix( any_rpn ) returns infix notation e.g., mt_lutxy(a, b, "x y +") equals to mt_lutxy(a, b, mt_polish("x + y"))
If I only use mt_polish("x + y"), will shows it in screen infix result??? Or I would need other more function as subtitle(....)?

Regards
__________________
Intel i7-6700K + Noctua NH-D15 + Z170A XPower G. Titanium + Kingston HyperX Savage DDR4 2x8GB + Radeon RX580 8GB DDR5 + ADATA SX8200 Pro 1 TB + Antec EDG750 80 Plus Gold Mod + Corsair 780T Graphite

12th May 2012, 18:40   #9  |  Link
Gavino
Avisynth language lover

Join Date: Dec 2007
Location: Spain
Posts: 3,420
Quote:
 Originally Posted by Overdrive80 If I only use mt_polish("x + y"), will shows it in screen infix result??? Or I would need other more function as subtitle(....)?
mt_polish() returns a string, so if you want to see it on the screen you can use Subtitle(mt_polish("x + y")).

Note that you can get away with never learning RPN at all and just use mt_polish("...") instead for your expressions.
I don't know why more people don't use it in published scripts - it's much easier to understand.
__________________
GScript and GRunT - complex Avisynth scripting made easier

 12th May 2012, 19:08 #10  |  Link Overdrive80 Anime addict     Join Date: Feb 2009 Location: Spain Posts: 674 Thanks Gavino. __________________ Intel i7-6700K + Noctua NH-D15 + Z170A XPower G. Titanium + Kingston HyperX Savage DDR4 2x8GB + Radeon RX580 8GB DDR5 + ADATA SX8200 Pro 1 TB + Antec EDG750 80 Plus Gold Mod + Corsair 780T Graphite
 13th May 2012, 14:38 #11  |  Link lisztfr9 Registered User   Join Date: Apr 2010 Posts: 175 Thanks to all. ScriptClip("""subtitle("" + string(mt_polish("x + y")))""") (many quotes...) Subtitle(last, mt_polish("x + y"),10, 20)
13th May 2012, 14:59   #12  |  Link
Gavino
Avisynth language lover

Join Date: Dec 2007
Location: Spain
Posts: 3,420
Quote:
 Originally Posted by lisztfr9 ScriptClip("""subtitle("" + string(mt_polish("x + y")))""")
Not sure if you were asking a question there.

string() is unnecessary as mt_polish already returns a string.
ScriptClip() is also unnecessary unless the other variable involves some run-time function.
__________________
GScript and GRunT - complex Avisynth scripting made easier

 Thread Tools Search this Thread Search this Thread: Advanced Search Display Modes Linear Mode

 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 Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Announcements and Chat     General Discussion     News     Forum / Site Suggestions & Help General     Decrypting     Newbies     DVD2AVI / DGIndex     Audio encoding     Subtitles     Linux, Mac OS X, & Co Capturing and Editing Video     Avisynth Usage     Avisynth Development     VapourSynth     Capturing Video     DV     HDTV / DVB / TiVo     NLE - Non Linear Editing     VirtualDub, VDubMod & AviDemux     New and alternative a/v containers Video Encoding     (Auto) Gordian Knot     MPEG-4 ASP     MPEG-4 Encoder GUIs     MPEG-4 AVC / H.264     High Efficiency Video Coding (HEVC)     New and alternative video codecs     MPEG-2 Encoding     VP9 and AV1 (HD) DVD, Blu-ray & (S)VCD     One click suites for DVD backup and DVD creation     DVD & BD Rebuilder     (HD) DVD & Blu-ray authoring     Advanced authoring     IFO/VOB Editors     DVD burning Hardware & Software     Software players     Hardware players     PC Hard & Software Programming and Hacking     Development     Translations

All times are GMT +1. The time now is 00:59.

 Doom9.org - Archive - Top