View Full Version : New AviSynth tool - AvsP v1.4.0 (6/5/07)
Pages :
1
2
3
4
5
6
7
8
9
10
[
11]
12
13
14
15
16
17
sjakke
3rd January 2007, 17:43
Isnīt it possible 2 open and preview d2v-files?
Serbianboss
4th January 2007, 15:35
Also noticed if have 5 tabs opened with MVtools script sometimes avsp crashes
qwerpoi
15th January 2007, 06:55
New version 1.3.5 to cure the post holiday blues, get it from here (http://avisynth.org/qwerpoi/Download.html) or the mirror in the first post. Here's the changelog:
* added more font and color options (suggested by Alain2)
* added customizable keyword lists (suggested by Alain2)
* updated filter information with internal clip properties and functions
* improved autocompletion for functions with no arguments
* added several new macro functions (ExecuteMenuCommand, GetBookmarkList, GetAvs2aviDir, GetSliderTexts)
* added slider optimization macro with complete genetic algorithm implementation
* added option to associate .avs files with AvsP (suggested by foxyshadis, JoeTF)
> fixed minor issue with potential conflicting keyboard shortcuts (thanks Alain2)
Biggest change here is the improvements to the syntax highlighting. You can now configure every color and font you can think of, and I really mean everything, from avisynth data types to mismatched braces. You can configure the list of avisynth keywords, data types, and operators to highlight in "Options -> AviSynth function definition..." (in the second tab). There you can also specify a miscellaneous set of words or operators, if you have some custom coloring needs. Also, I updated AvsP's filter info to include avisynth internal functions (floor, round, assert, etc). Overall the result is that the program feels a bit more professional with respect to syntax highlighting, so there's no longer an excuse to stick with a different editor (in my opinion, anyway :)).
Also in this release are some new macro functions, the most important being ExecuteMenuCommand(). This function allows you to execute any of AvsP's menu commands from a macro, either by specifying the full menu label or its keyboard shortcut. For example, you can use the macro command avsp.ExecuteMenuCommand("Edit -> Find...") or avsp.ExecuteMenuCommand("Ctrl+F") to show the Find dialog box from a macro (not a terribly useful example, but hopefully you get the idea). The input is not case sensitive, but it must be spelled precisely - you can check out the list in "Options -> Configure shortcuts..." to double-check any label or keyboard shortcut spellings.
But there's something even bigger in this release, and that's the inclusion of a new toy, the "Optimize Sliders" macro. This macro utilizes an SGA (simple genetic algorithm) to optimize your avisynth script using either the PSNR or SSIM metric. This is an advanced tool, meant to optimize a relatively short video segment, since the algorithm will encode the same clip with varying parameters literally hundreds of times. That being said, it's really easy to use - just set up a script with a Compare() or SSIM() output, make user sliders for every parameter you want to optimize, and then run the macro. For example, this thread (http://forum.doom9.org/showthread.php?t=114582) was about testing various cleaning filters on a standardized video source, where people would post SSIM results for the various filters. So if I wanted to get SSIM-optimized results for FFT3DFilter, I could set up a script like this in AvsP:
source = avisource("flower_clean.avi")
noisy = avisource("flower_noisy_var25.avi")
denoised = noisy.FFT3DFilter(sigma=[<"sigma", 0, 10, 2.0>], bt=[<"bt", -1, 4, 3>], bw=[<"bw%16", 16, 64, 48>], bh=[<"bh%16", 16, 64, 48>], ow=[<"ow%4", 4, 32, 16>], oh=[<"oh%4", 4, 32, 16>], plane=0)
SSIM(source, denoised.MergeChroma(source),"logperframe.txt","log.txt", lumimask=0)
and simply run the "Optimize Sliders" macro. After the macro is finished running (using the genetic algorithm default settings provided by the macro), my resulting script is:
source = avisource("flower_clean.avi")
noisy = avisource("flower_noisy_var25.avi")
denoised = noisy.FFT3DFilter(sigma=5.1, bt=4, bw=32, bh=32, ow=12, oh=12, plane=0)
SSIM(source, denoised.MergeChroma(source), "logperframe.txt","log.txt", lumimask=0)
which has an average SSIM of 86.29 (the unfiltered noisy clip scored 67.5, and FF3DFilter with default paramters scored 74.2). This compares reasonably well score-wise with the manually determined settings posted in the thread, which had an SSIM of 88.6. Note that the default genetic algorithm parameters were set as a reasonable tradeoff between speed and optimality, you can try and bump up the max generations and/or population size for better results (but I wouldn't recommend straying too far from the defaults unless you're familiar with genetic algorithms). An astute user of FF3DFilter might point out here that the sliders set up in the original script would occasionally provide invalid results (the bw parameter must be greater than 2*ow, etc). This does not affect the optimization routine, as any error clips are simply assigned a score of zero.
The macro is set up to use a progress bar in a dialog box, you can hit cancel on the dialog box at any time and keep the best results run so far. Extra info is dumped to AvsP's scrap window to keep track of per-generation progress. I don't guarantee that the macro is 100% bug free, since I implemented the SGA myself from scratch (and I only learned about genetic algorithms several months ago), but it should be stable enough to play around with. I implemented the whole thing as an AvsP macro in hopes that others smarter than me could take a look at it and improve upon it. Anyhow, if there's enough interest, I'll try and make some documentation on it on the website (which needs a bit of updating as it stands). Bottom line is that this macro is probably more useful for developers than typical users, but I've had good looking results using SSIM optimization for unbiased post-processing sharpening (with blendbob deinterlacing using EEDI2 and LimitedSharpen), so others may find it practical as well. As always, be sure to report back with any new bugs or requests.
Alain2
15th January 2007, 21:37
Yosh, that's an interesting changelog! The link is not working atm though, but will try this version asap :)
About the updated filter information, is it done as well when updating avsp ? Is it possible to have this update and keep my customised filter list (mvtools & co, personal scripts names, etc) ?
qwerpoi
16th January 2007, 02:53
Yosh, that's an interesting changelog! The link is not working atm though, but will try this version asap :)
About the updated filter information, is it done as well when updating avsp ? Is it possible to have this update and keep my customised filter list (mvtools & co, personal scripts names, etc) ?
The savefile.com mirror from the first post should work, although it can be slow at times - here's the link (http://www.savefile.com/files/414243). The updated filter info is done automatically, basically I keep track of version numbers every time I update the internal info, so AvsP will add new filters, never delete old ones. If you're paranoid, you can back up your dat files before running a new version (but it shouldn't be necessary :)).
R3Z
16th January 2007, 08:14
qwerpoi - I would just like to say thankyou for this wonderful tool.
krisq
16th January 2007, 09:42
awesome, :thanks:
Henrikx
16th January 2007, 11:44
HAAPY NEW YEAR qwerpoi
Update German language translation AvsP 1.3.5 :cool:
rfmmars
16th January 2007, 18:28
Dittos for a job well done!!!
Richard
Veiga
18th January 2007, 03:37
qwerpoi, thanks for this new version
tranlation attached for portugues_Br
qwerpoi
18th January 2007, 04:07
Thanks for the kind words, fellas, and thanks Veiga and Henrikx for the translation updates (and a happy new year as well!). Glad to see this new version is trouble-free (so far...). Incidentally, I noticed the savefile.com mirror has been downloaded over 5,000 times - either that's a glitch or there are a lot more AvsP users than I thought :) .
Anyone get the chance to play around with the "Optimize Sliders" macro? I was hoping to get feedback from those familiar with SSIM or PSNR metrics, to get a feel for how usable the macro is. It's not meant to be a major feature of AvsP, but it's pretty unique and potentially powerful in my opinion.
Alain2
18th January 2007, 05:24
Sorry won't be able to report in the next few days, don't have time to play around with avsp at the moment :(
R3Z
18th January 2007, 09:12
Would it be possible to split up the sliders section with headings like so;
Color and Levels
__________________________
Hue -180----||------------180
Sat -180-----------||-----180
Noise Removal
__________________________
Etc ?
zemog
18th January 2007, 16:10
qwerpoy, thanks for the new version, it's really a good job.
qwerpoi
19th January 2007, 01:12
Would it be possible to split up the sliders section with headings like so;
Color and Levels
__________________________
Hue -180----||------------180
Sat -180-----------||-----180
Noise Removal
__________________________
Etc ?
Oddly enough, this would be pretty difficult to do, given the way the slider code is currently written. Still, I'll consider rewriting it to be more flexible.
qwerpoy, thanks for the new version, it's really a good job.
Thanks. I've updated the first post and website with the updated links for the Spanish and Portuguese translations.
Alain2
19th January 2007, 01:43
Forgot to say French translation is up to date as well ;)
I had a quick look, nice additions in the syntax highlights :) And I will try the new macro when I have a bit of time to play on teh computer, thanks for this interesting feature!
R3Z
19th January 2007, 04:40
Oddly enough, this would be pretty difficult to do, given the way the slider code is currently written. Still, I'll consider rewriting it to be more flexible.
Maybe i gave the wrong idea ?
I just meant to be able to put a name in like a separator is ?
ie [<"separator=Color Levels">]
Stupid request i know :(
krisq
19th January 2007, 20:26
Maybe i gave the wrong idea ?
ie [<"separator=Color Levels">]
Stupid request i know :(
Well, it's not stupid, it's a pretty good suggestion actually.
I second that :)
qwerpoi
19th January 2007, 23:39
Forgot to say French translation is up to date as well ;)
I had a quick look, nice additions in the syntax highlights :) And I will try the new macro when I have a bit of time to play on teh computer, thanks for this interesting feature!
Thanks for the translation update, looking forward to hearing your feedback on the new macro as well.
Maybe i gave the wrong idea ?
I just meant to be able to put a name in like a separator is ?
ie [<"separator=Color Levels">]
Stupid request i know :(
No, you got the right idea. It's easy to implement in terms of script syntax, but difficult to implement in the GUI code, at least the way it's currently structured. It does seem like a trivial change, but believe me, the code to display the sliders is more complicated then it seems, and adding this labeling feature would require rewriting a healthy portion of it. But as I said, I'll look it over, hopefully it will be in the next release.
affter333
21st January 2007, 03:14
Thank you, please make a 98 version so that we can use it.
Alain2
21st January 2007, 03:55
Not sure I can test the macro, it's a useful tool for developpers to test their filters effectiveness or for people who likes doing benchmarking of filters, but not sure if it would be usuable on a real life clip, where we don't have the clean original clip, only the noisy one as a source.. Is there any application of the macro other than benchmarking filters using ssim or other criteria ?
Now, I know you like my requests, so here's another bunch of them ^^
- {} cannot be added in the keywords list along function.. Can only be in Operator or Misc words lists ; can you change that ? Also, {} are not as tolerant as () when parsed in the script: "function m(int r, float x) { r..." is ok, "function m(int r, float x) {r..." results in a "bad operator"... Could you make the syntax coloring parsing for {} the same as for () ?
- Int in "function m(int r, float x) { return(x<16?16:Int(round(x/float(r))*r))}" will be displayed with the user syntax color... ? I defined Int in the functions list and allocated to the "internal filter" type, and it is also defined in the new data type list, but I end up with the color for user functions... strange, because it's not happening for float, which is defined as per int in my config.. Can you have a look ? btw it's convenient that as it is atm the data type words followed by a space are colored as per the avisynth data type list, and followed by something else like a "(" are colored as function, thank you :)
- I work with the constant width font all the time, and everything is bold I think (and changing between regular and bold the constant width font (courier new) has no effect). Do you think it could be possible to take into account the bold / italic definition as defined in each syntaxical color type ? Not important, I can just select Courier New for all the syntax coloration definitions ^^ I was also thinking at the size of the font: one nice thing in notepad++ is that the selected bracket is highlighted by changing regular to bold, color from black to red, and also increasing a bit the font size.. would be good to have the same possibility in avsp, for completeness of the syntax coloration ^^
- Can you add an option "use translation" ? Would be easier when working with another language to switch back quickly to English when trying to remember the original menu labels ^^
Obviously this is all kind of cosmetic requests, so if you consider adding some in your todo list you can put that in the low priority section ^^
qwerpoi
21st January 2007, 06:52
Thank you, please make a 98 version so that we can use it.
Whoa, a fellow win98 user! I'll try and make a 98 compatible version, won't be able to test it until tomorrow.
Not sure I can test the macro, it's a useful tool for developpers to test their filters effectiveness or for people who likes doing benchmarking of filters, but not sure if it would be usuable on a real life clip, where we don't have the clean original clip, only the noisy one as a source.. Is there any application of the macro other than benchmarking filters using ssim or other criteria ?
That's a good point, the "Optimize Sliders" macro is more likely to be useful for benchmarks and other developer tests. Nevertheless, there are a few examples where SSIM or PSNR optimization can be useful in application. Here's a few I can think of:
You can take a dvd source and compare it against a compressed avi, optimizing post processing filters.
You can try and line up two images by optimizing the crop values in a resize filter.
If you're really adventurous, you can try to optimize encoder settings for a given bitrate. This would require a command line encoder like xvid encraw and the call avisynth plugin, it would be a little tricky to set up.
These examples are all theoretical, I haven't tested them myself, and the genetic algorithm isn't guaranteed to work on arbitrarily difficult problems. The reason I'm interested in feedback is so I can find ways to improve the algorithm, either in terms of converging speeds or its ability to handle complex problems. But it's not a major priority, I don't expect the majority of users to use the macro, it's more like a side interest of mine :).
- {} cannot be added in the keywords list along function.. Can only be in Operator or Misc words lists ; can you change that ? Also, {} are not as tolerant as () when parsed in the script: "function m(int r, float x) { r..." is ok, "function m(int r, float x) {r..." results in a "bad operator"... Could you make the syntax coloring parsing for {} the same as for () ?
{} is not a keyword :), but I'll see what I can do. When I try it on my computer, "{r" does not result in a bad operator highlight, perhaps I'm misunderstanding your example.
- Int in "function m(int r, float x) { return(x<16?16:Int(round(x/float(r))*r))}" will be displayed with the user syntax color... ? I defined Int in the functions list and allocated to the "internal filter" type, and it is also defined in the new data type list, but I end up with the color for user functions... strange, because it's not happening for float, which is defined as per int in my config.. Can you have a look ? btw it's convenient that as it is atm the data type words followed by a space are colored as per the avisynth data type list, and followed by something else like a "(" are colored as function, thank you :)
Whoops, it looks like the user-defined function and the internal filter type fonts/colors are swapped, thanks for bringing that to my attention. I'll get that fixed for the next release, in the meantime you may want to reverse those fonts/colors if it bugs you (of course you'll have to reverse it again when the corrected version comes out :)). And yes, the fact that AvsP can recognize the difference between int as a data type and int() as a function is a nice touch, if I do say so myself :D .
- I work with the constant width font all the time, and everything is bold I think (and changing between regular and bold the constant width font (courier new) has no effect). Do you think it could be possible to take into account the bold / italic definition as defined in each syntaxical color type ? Not important, I can just select Courier New for all the syntax coloration definitions ^^
Unless I'm mistaken, AvsP can already work like this. If you have "Options -> Use monospaced font" enabled, all text will be displayed with Courier New, size 10 (or whatever font you set for the "Monospaced font" in the font/color dialog). Each element will be bolded/italicized based on the rest of the settings in the font/color dialog.
I was also thinking at the size of the font: one nice thing in notepad++ is that the selected bracket is highlighted by changing regular to bold, color from black to red, and also increasing a bit the font size.. would be good to have the same possibility in avsp, for completeness of the syntax coloration ^^
You should be able to achieve the same effect with the "Brace highlight" font/colors (which should perhaps be renamed to "Selected bracket"...).
- Can you add an option "use translation" ? Would be easier when working with another language to switch back quickly to English when trying to remember the original menu labels ^^
I think something like this has been requested before, unfortunately the way I implemented the translation it doesn't seem possible, at least as far as I tried. I'll work on the issue when I get some time, but it's not likely to be a huge priority :(.
Alain2
21st January 2007, 15:14
If you're really adventurous, you can try to optimize encoder settings for a given bitrate. This would require a command line encoder like xvid encraw and the call avisynth plugin, it would be a little tricky to set up.
These examples are all theoretical, I haven't tested them myself, and the genetic algorithm isn't guaranteed to work on arbitrarily difficult problems. The reason I'm interested in feedback is so I can find ways to improve the algorithm, either in terms of converging speeds or its ability to handle complex problems. But it's not a major priority, I don't expect the majority of users to use the macro, it's more like a side interest of mine :).
Funny, I was about to suggest something similar, but I am not sure how to do it.. Because I usually (for anime) filter a lot the DVD source because I don't like it (halos, noise, etc), I can't use it as a reference for optimizing purpose; but how about this: I create a lossless filtered clip of my DVD at a given high resolution, and then want to optimise the encoded result for a given set of encoder (x264 in my case) parameters, the parameter to be optimised by the macro would be the resize of the lossless clip to lower resolution. Encoded clips would then have to be read, resized to a common resolution (like fullscreen or the lossless clip resolution for instance) and compared (SSIM) with the lossless clip. That way I could expect to find the best trade-off between resolution and macroblocs/detail loss generation from the codec...
Can you help setting something for this ?
{} is not a keyword :), but I'll see what I can do. When I try it on my computer, "{r" does not result in a bad operator highlight, perhaps I'm misunderstanding your example.
My current color definition : 1 (http://img227.imageshack.us/img227/2689/temp7rk.jpg) 2 (http://img227.imageshack.us/img227/3449/temp4mv.jpg), and the way it appears for my example in avsp :{ unselected (http://img263.imageshack.us/img263/1361/temp8mf.jpg), { selected (http://img155.imageshack.us/img155/8801/temp1ui.jpg)(cursor placed next to {), and with a space after { (http://img262.imageshack.us/img262/1523/temp0am.jpg)
Unless I'm mistaken, AvsP can already work like this. If you have "Options -> Use monospaced font" enabled, all text will be displayed with Courier New, size 10 (or whatever font you set for the "Monospaced font" in the font/color dialog). Each element will be bolded/italicized based on the rest of the settings in the font/color dialog.
Here (http://img440.imageshack.us/img440/4690/temp9mp.jpg) is what I see with "Options -> Use monospaced font" enabled. If you compare with the font/color pictures I posted above, you can see that regular/bold is not applied, all is bold, and nothing changes either when I set choose regular or bold for the monospace font (I kept Courier New 10)
You should be able to achieve the same effect with the "Brace highlight" font/colors (which should perhaps be renamed to "Selected bracket"...).Not exactely, as you mentionned above, the size will be based on the monospace font size if working with monospace. But that's not important, as I said, I will just change everything to courier new and stop working with the monospace option.
However playing without the monospace option, it seems that the regular / bold selection is not working properly, choosing bold for the default font will make Operators (and others) bold as well even if regular is set, whereas if Default is regular then the Operators are regular/bold based on their setting.. Changing Default from regular to bold is immediate, changing it from bold to regular requires reloading of avsp to take effect..
qwerpoi
22nd January 2007, 05:03
@affter333
Getting a win98 version seems a little trickier than I first thought, but I should be able to get it done by the next version. If you can't wait, you actually should be able to run the program as a script - you would need to install Python 2.5 (http://www.python.org/download/releases/2.5/) and wxPython (http://www.wxpython.org/download.php) (the win32-ansi for Python 2.5 version). With both installed, you can simply double-click AvsP.py (it's in the src directory of the regular download). For most people this isn't an ideal solution, so as I said I'll try and get a win98 compatible executable by the next version.
Funny, I was about to suggest something similar, but I am not sure how to do it.. Because I usually (for anime) filter a lot the DVD source because I don't like it (halos, noise, etc), I can't use it as a reference for optimizing purpose; but how about this: I create a lossless filtered clip of my DVD at a given high resolution, and then want to optimise the encoded result for a given set of encoder (x264 in my case) parameters, the parameter to be optimised by the macro would be the resize of the lossless clip to lower resolution. Encoded clips would then have to be read, resized to a common resolution (like fullscreen or the lossless clip resolution for instance) and compared (SSIM) with the lossless clip. That way I could expect to find the best trade-off between resolution and macroblocs/detail loss generation from the codec...
Can you help setting something for this ?
First thing to note, if the only thing you're varying is a handful of different resolutions, a genetic algorithm is most likely overkill. If for example you have 4 possible resolutions to test, you only need to encode the clip 4 times, yet the genetic algorithm will encode the clip roughly (population size) * (number of generations) number of times. So the macro is only practical if you have a large number of possibilities (ie, you want to optimize several parameters at the same time). To do the overall setup, it would go something like this. First, make a script like you normally do, for example:
MPEG2Source("anime.d2v")
Telecide()
Decimate()
Sharpen(0.5)
LanczosResize(640, 480)
and save it as "test.avs". Then create the comparison script, this script compares the source to the compressed file. However, this script also has to create the compressed file, since we are interested in optimizing codec parameters. To do this, we'll need the call avisynth plugin (thread topic here (http://forum.doom9.org/showthread.php?t=46506)). This plugin lets you run a program on the command line in the middle of an avisynth script. So the comparison script looks like:
res = Select([<"index", 0, 3, 0>], "128x96", "176x144", "352x288", "704x576")
Call(BlankClip(), "c:\ffmpeg.exe -i test.avs -b 500 -s "+res+" -g [<"gop", 1, 500, 100>] -y test.avi", "-2")
source = MPEG2Source("anime.d2v").Telecide().Decimate()
compressed = AviSource("test.avi").LanczosResize(source.width, source.height)
SSIM(source.Trim(100, 110), compressed.Trim(100, 110), "logperframe.txt", "log.txt")
The command line call in this example is made up, you need to substitute it with your own command line encoder settings. The user slider in the first line is used to determine the resolution for the command line. Notice how there is also a user slider within the command line string, you can use multiple user sliders in this way to set up any other varying parameters you want to optimize. (As a side note, a user slider within a string will work, but it screws up the syntax highlighting a little :(). Also notice that I used a Trim() on the source and compressed clips on the last line - this is for the sake of speed, since the optimization routine will encode this script hundreds of times. I'd suggest optimizing a single frame to start out, to make sure everything works.
Anyway, as I mentioned earlier, this is all theoretical, I have tested the macro on different cases but not with this encoding example, which is without a doubt the most complicated setup I can think of. If you're still willing to set it all up, let me know how it turns out (although if you're not willing, I wouldn't blame you, it's a pretty big workout just trying to go through the theoretical setup :) ).
Also, for the syntax highlighting issues, I can't recreate all of them on my computer. It's likely to do with a specific combinations of options - if you could upload your filters.dat and textstyles.dat, it would be a big help.
foxyshadis
22nd January 2007, 09:09
Okay, now you got my attention. So basically I finally have a reason to hook up a network encoder - leave ten machines encoding all year to find the optimal settings+filtering for x264. =p Seriously, that's pretty neat. A genetic algorithm needs some smarts in order to finish in a vaguely reasonable time, though, and that means sectioning off the space and picking best-chance areas, even if it means the possibility of accidentally passing up the out-of-nowhere perfect match. Nearly all the time they're reasonably correlated. (I know there are good algorithms for finding multidimentional minima and maxima in reasonable times, even though I'm not to familiar with them. Generalizations of the sort of thing in x264's UMH search mode.)
Too bad it's only SSIM, and not the (much more complex) CWSSIM/WCWSSIM, for which I don't know of any standalone testors yet. The papers claim significantly better perceptual accuracy.
I haven't been replying in a while because as far as I was concerned avsp is complete enough for me, I've been quite happily using it. =D Probably the only thing I'd ask for is a step value (steps of around .1 are needed for a lot of filters), or perhaps an optional logarithmic scale. After all, a step size of .1 isn't so useful when you're at 1000! :p
Oh, and before I forget:
Traceback (most recent call last):
File "AvsP.py", line 3700, in OnClose
File "AvsP.py", line 4985, in ExitProgram
File "wx\_misc.pyo", line 5962, in __init__
TypeError: argument number 1: a 'unsigned number' is expected, 'int(-1)' is received
When trying to shut it down after working on it sometimes. No idea how to reproduce from clean though.
Alain2
23rd January 2007, 00:58
Also, for the syntax highlighting issues, I can't recreate all of them on my computer. It's likely to do with a specific combinations of options - if you could upload your filters.dat and textstyles.dat, it would be a big help.
I have added these files on my website, you can find them along with the translation files
For the macro, I will play with it in the next few days I think, I have first to finish the lossless encode of an avs (vdub says 1.5 days left :( ), thanks for the example, easy to follow, I will be able to adapt it I think :)
check
6th February 2007, 14:51
just found a need for this feature today, some way to remember the last frame displayed? Occasionally I've been seeking around and dragged the frame counter away before realising I was looking at the frame I wanted :P
qwerpoi
7th February 2007, 00:53
No immediate news about the time of the next release, currently the major focus is improving some of the cutting features of AvsP, which is lot of work. If things go well, I'd estimate a new release in a week or two.
Too bad it's only SSIM, and not the (much more complex) CWSSIM/WCWSSIM, for which I don't know of any standalone testors yet. The papers claim significantly better perceptual accuracy.
I guess it's possible to use any metrics, but obviously it's a lot easier to use ones implemented in Avisynth, which so far only includes SSIM and PSNR. Unless I'm thinking it through incorrectly, adding standalone testers into the mix would make the process slower (unless it accepted .avs files as inputs?).
I haven't been replying in a while because as far as I was concerned avsp is complete enough for me, I've been quite happily using it. =D Probably the only thing I'd ask for is a step value (steps of around .1 are needed for a lot of filters), or[/color] perhaps an optional logarithmic scale. After all, a step size of .1 isn't so useful when you're at 1000! :p
Don't worry about not replying, the fact that AvsP is stable enough for everyday use is good news to me! As far as steps are concerned, you can already specify steps of .1, AvsP will automatically determine the step size based on the decimal places of the input numbers (ie, [<"a", 0, 1, 1.00>] will have a step size of 0.01. As far as a logarithmic scale goes, that's possibly trickier, so we'll see :).
Oh, and before I forget:
Traceback (most recent call last):
File "AvsP.py", line 3700, in OnClose
File "AvsP.py", line 4985, in ExitProgram
File "wx\_misc.pyo", line 5962, in __init__
TypeError: argument number 1: a 'unsigned number' is expected, 'int(-1)' is received
When trying to shut it down after working on it sometimes. No idea how to reproduce from clean though.
Thanks for reporting it, I'll try and get it fixed by the next release.
I have added these files on my website, you can find them along with the translation files
For the macro, I will play with it in the next few days I think, I have first to finish the lossless encode of an avs (vdub says 1.5 days left :( ), thanks for the example, easy to follow, I will be able to adapt it I think :)
Thanks for uploading the files, I haven't had time yet but I should be able to hammer out those issues with the help of the dat files.
just found a need for this feature today, some way to remember the last frame displayed? Occasionally I've been seeking around and dragged the frame counter away before realising I was looking at the frame I wanted :P
If I'm understanding correctly, you can use the "Last scrolled frame" in the "Video -> Go to bookmark" menu (default shortcut F8). Kind of a strange place for it, and kind of a strange name for it, but it's kind of a strange feature :). The only reason it's already there is because my brother (AvsP's first tester!) asked for it a long time ago, and admittedly, it's handy to have when scrolling around.
check
7th February 2007, 01:10
ahh, if you need an egg cooked tell me, my face is red enough! :)
krisq
7th February 2007, 10:34
Just a hint. Crop editor should place its command in the place of the cursor not at the end of the script. :)
qwerpoi
7th February 2007, 19:13
ahh, if you need an egg cooked tell me, my face is red enough! :)
It's no big deal, I'm always the first to admit that the docs for AvsP are not perfect, so feel free to ask away if you can't find a feature in the docs or menus.
Just a hint. Crop editor should place its command in the place of the cursor not at the end of the script. :)
That's a good point. It could be problematic, though, since it's easy to activate the crop editor without paying attention to where the cursor is located. Also, it would be inconsistent if a resize occured after the crop. Still, I'll try and make it an option (in the form of a check box on the crop dialog) for the next release.
krisq
8th February 2007, 07:48
Also, it would be inconsistent if a resize occured after the crop. Still, I'll try and make it an option (in the form of a check box on the crop dialog) for the next release.
Great! I'm aware of resizing order. I just have Info() and Textsub() filters at the end of pretty much every script so it would be very helpful. :thanks:
foxyshadis
8th February 2007, 11:48
Now I remember what I was going to ask for! Because AvsP tends to end up keeping a lot of files open in a session, something I sometimes run into is that while it's closed, a file gets changed, and the changes aren't seen when it's reopened. It doesn't check for changes, like most editors. (I'm not sure how it could do that without being a guessing game as to whether the changes are important enough to overwrite the file, short of a 3-way diff, though.) Would something like that be useful, or just a distraction?
Oh yeah, and I wondered if Save Image As could default to png instead of bmp, and could include formats as separate filters (so one doesn't have to type the endings every time).
qwerpoi
11th February 2007, 06:04
Now I remember what I was going to ask for! Because AvsP tends to end up keeping a lot of files open in a session, something I sometimes run into is that while it's closed, a file gets changed, and the changes aren't seen when it's reopened. It doesn't check for changes, like most editors. (I'm not sure how it could do that without being a guessing game as to whether the changes are important enough to overwrite the file, short of a 3-way diff, though.) Would something like that be useful, or just a distraction?
As you noted, AvsP sessions work a bit differently from other text editors. Just to clarify, a saved session file contains more than the list of filenames in each tab, it actually contains all the text in each of the tabs along with the filenames. That way it's not necessary to prompt to save changes if you save a session with a bunch of tabs open. When you open a session, AvsP will create the new tabs and insert the text saved in the session appropriately. Then AvsP checks if the inserted text matches the text in the actual file on the hard drive. If not, then AvsP marks the tab as unsaved.
Anyway, to get to the point, it should be possible to add an option to change the behavior to something more standard, ie, simply find the file and load the script from there. Activating this option would probably also change the behavior such that AvsP would prompt you to save changes for each tab when you save a session to avoid conflict.
Oh yeah, and I wondered if Save Image As could default to png instead of bmp, and could include formats as separate filters (so one doesn't have to type the endings every time).
Shouldn't be a problem making separate filters, and I'll try and make it such that AvsP remembers the last saved format to take care of the default issue.
foxyshadis
11th February 2007, 08:28
I do actually like that behavior, don't get me wrong! It would also become a bit of a design problem (currently) because the thing doesn't have a method of saving sliders yet.
I think just asking for a reload from disk on a per-file basis if it's detected to have changed would be sufficient.
qwerpoi
21st February 2007, 06:01
New version 1.3.6, this release has some really great improvements. Download from the AvsP download page (http://www.avisynth.org/qwerpoi/Download.html) or from the savefile mirror (http://savefile.com/files/507148). I've also made a win98 compatible version, download from here (win98) (http://savefile.com/files/507150). Here's the changelog:
* saved files no longer lose user slider/toggle tag info (suggested by foxyshadis)
* prompt to reload modified files when loading a session (suggested by foxyshadis)
* added visual bookmarks along the video slider (suggested by doxville, avid_avs_user)
* added trim selection editor (suggested by Zarxrax, doxville, avid_avs_user)
* added option to not load bookmarks on startup (suggested by avid_avs_user)
* added crop editor options to insert at cursor, copy to clipboard (suggested by krisq)
* improved end of script detection for crop editor
* reorganized video menu for clarity (suggested by avid_avs_user)
* improved save image dialog with specific extensions (suggested by foxyshadis)
* created windows 98 compatible version (suggested by affter333)
> fixed crash when creating a new tab while crop editor is shown
> fixed small bug on program exit with multi-monitor setup (thanks foxyshadis)
> fixed several issues with syntax highlighting (thanks Alain2)
The first big change is that saving files in AvsP no longer loses any AvsP-specific markings, ie user sliders and toggle tags. The reason why these tags were stripped in the first place is because giving an encoder an avs script with user sliders would cause a crash, since the syntax is specific to AvsP, and is not understood directly by Avisynth. With this new version of AvsP, you can save a file with user sliders, when you send this avs file to an encoder it doesn't see any user sliders, but when you open the file up in AvsP all the user sliders are there! Magic! If you're curious how this works, basically now when AvsP saves a script with any user sliders, it saves the stripped version with the unstripped version underneath in a special commented section. When AvsP loads amy script, it checks to see if such a commented section exists, and if it does then it loads that section instead of the stripped script. If you don't understand this explanation, don't worry, just rest assured that it works without requiring you to do any extra work :).
The other big change is a whopper, and that is the ability to make bookmarks and trim selections directly on the video slider. When you bookmark a frame, it now appears directly under the video slider as a black triangle. When you left-click on the triangle, the video jumps to that bookmark. Awesome! As an additional shortcut you can right-click the video slider handle to add a bookmark (the "handle" is the small rectangle you drag around). You can delete a bookmark by middle-clicking the bookmark triangle or by setting a bookmark twice.
Going even further, there's now a trim selection editor, you can activate it from "Video -> Trim selection editor...". The dialog box looks a little complex, but using it is easy as pie. When the dialog is opened, you can see two extra buttons on the video slider handle. These buttons allow you to create start and end selections, which show up on the video slider as blue regions, much like VirtualDub. But unlike VirtualDub, you can create multiple selection regions. The selections endpoints appear under the video slider just like bookmarks - left-click to jump to that frame, middle-click to delete it, etc. Furthermore, the video frame itself is marked by either a green or red circle in the upper left corner - green indicates that the frame will be kept upon trimming, red means that it will be removed. This helps eliminate any potential errors or confusion about whether or not endpoints will be kept or removed. Once you understand that much, the options on the trim dialog itself are more or less self explanatory.
One final thing to note, this version fixes some bugs with the syntax highlighting. One subtle bug that Alain2 pointed out was that certain words were being colored with the wrong style. Turns out that the filters.dat file was keeping redundant information about filters with the same name but different cases, ie "int" and "Int". The bug only occured rarely, so it's likely you've never encountered it, but in order to fix the problem, simply open the "Options -> AviSynth function definition..." dialog and click on "OK", all filters should now be colored appropriately and any redundancies in the filters.dat are removed.
Anyway, the next major priority is updating the docs on the website, in particular giving details and screenshots of some of the new features from this release. As always, report back with any bugs or feature requests.
kumi
21st February 2007, 06:27
Omg... amazing :D
DeathTheSheep
21st February 2007, 06:29
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
krisq
21st February 2007, 09:21
qwerpoi... you totally rule, dude! :thanks:
Seriously, I can't imagine my work on scripts without AvsP :D
[edit]
I just tried trim editor and I must say this... It's perfect :)
HeadBangeR77
21st February 2007, 12:56
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
Holy... Sheep! :D ;)
I can only second that. :)
Fizick
21st February 2007, 14:32
qwerpoi,
thanks for update.
Some time ago I think about adding to Avisynth 2.6 some new syntax rules, in particular comment blocks.
Henrikx
21st February 2007, 14:32
Update German Translation 1.3.6 :)
Alain2
21st February 2007, 15:08
Thanks for the new version qwerpoi! French translation updated
The enhanced video editing capabilities sound very nice! And the new way of saving all AvsP markers as comments in the script is really a simple yet very good idea!
About the color syntaxing bugs I mentionned, I still have some apparently.. I tried the fix you mentionned for the filters.dat, but didn't seem to work (?) as the file was not overwritten ; I made a mod in my filters definition so that the file gets overwritten. I don't think there is a problem with words recognition anymore. But for the color syntax behaviour itself I still have the same strange problem:
- Initial condition:
Default: font = standard, black
Internal function: font = bold, orange
- Start AvsP -> as defined above
- Change Default from standard to bold -> ok
- Change Default from bold to standard -> stay bold
- Reload AvsP -> ok (now standard, as per the initial condition)
- Change Internal function to standard -> ok (!)
- Change Internal function to bold -> ok
- Change Internal function to standard (again) -> ok
- Change Default to bold -> ok for Default, but Internal function is now bold as well!
This above shows you that there is some dependencies between the items in font and colors..
Also, for the Advance->Brace Highlight for instance, if I want to change the font size to say 20 instead of the default (10), it stays at 10, even if I reload AvsP
doxville
21st February 2007, 16:55
http://www.cheesebuerger.de/images/midi/froehlich/a049.gif OMFGhttp://www.cheesebuerger.de/images/midi/froehlich/a049.gif
This is getting so much cooler than ever expected! Thanx for all the work on AvsP, the trim-editor is really great!
qwerpoi
22nd February 2007, 00:02
Omg... amazing :D
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
qwerpoi... you totally rule, dude! :thanks:
Seriously, I can't imagine my work on scripts without AvsP :D
[edit]
I just tried trim editor and I must say this... It's perfect :)
Holy... Sheep! :D ;)
I can only second that. :)
http://www.cheesebuerger.de/images/midi/froehlich/a049.gif OMFGhttp://www.cheesebuerger.de/images/midi/froehlich/a049.gif
This is getting so much cooler than ever expected! Thanx for all the work on AvsP, the trim-editor is really great!
Wow, that's a lot of positive feedback! I'm glad you guys like it. I put a lot of thought into the trim selection editor, particularly in how to make it easy to learn and use. Also, in order to implement the multiple selections and clickable bookmarks, I had to write my own slider class from scratch (anyone who does GUI programming hopefully knows how painful that is), so I'm glad that my hard work paid off (and that there aren't any major bugs so far :)).
qwerpoi,
thanks for update.
Some time ago I think about adding to Avisynth 2.6 some new syntax rules, in particular comment blocks.
Not sure how much my opinion counts, but I don't think comment blocks are necessary. I'm biased, since I do most of my programming in Python, which also has no block comments. I find that so long as the IDE or text editor has a way to comment multiple lines (like SciTe for Python or AvsP for Avisynth :)), then the extra syntax is unnecessary. Again, that's just my opinion, I'm sure c/c++ programmers would feel different.
Update German Translation 1.3.6 :)
Thanks for the speedy translation update!
Thanks for the new version qwerpoi! French translation updated
The enhanced video editing capabilities sound very nice! And the new way of saving all AvsP markers as comments in the script is really a simple yet very good idea!
Thanks for the translation update! And I can't take full credit for the idea of saving AvsP markers, my brother came up with the basic idea, the implementation turned out to be quite graceful. Should make working with user sliders a lot easier!
About the color syntaxing bugs I mentionned, I still have some apparently.. I tried the fix you mentionned for the filters.dat, but didn't seem to work (?) as the file was not overwritten ; I made a mod in my filters definition so that the file gets overwritten. I don't think there is a problem with words recognition anymore. But for the color syntax behaviour itself I still have the same strange problem:
- Initial condition:
Default: font = standard, black
Internal function: font = bold, orange
- Start AvsP -> as defined above
- Change Default from standard to bold -> ok
- Change Default from bold to standard -> stay bold
- Reload AvsP -> ok (now standard, as per the initial condition)
- Change Internal function to standard -> ok (!)
- Change Internal function to bold -> ok
- Change Internal function to standard (again) -> ok
- Change Default to bold -> ok for Default, but Internal function is now bold as well!
This above shows you that there is some dependencies between the items in font and colors..
Also, for the Advance->Brace Highlight for instance, if I want to change the font size to say 20 instead of the default (10), it stays at 10, even if I reload AvsP
I took a look over the code, and I'm finally beginning to understand what's really going on internally. To make a long story short, the making the default style bold should not make every other style bold, the fact that it currently does is a glitch (a bit of unclear programming on my part). The default style should only color the text that doesn't belong to any other category, it should not override any other styles at all. I'll have everything ironed out by the next release, sorry about the frustration.
foxyshadis
22nd February 2007, 01:35
The funny thing is, I was going to ask for a vdub-style slider, and all th sudden here it is! Wow, telepathic feature requests do work. :p In all seriouness, excellent update, it's amazing how much work got put into it.
Is it possible to have a switch to release avisynth? That would help for some very memory-intensive scripts, at which point I could hopefully go back to working after an allocation failure without having to recycle avsp. (Or just to leave it for something else for a while.) Should I just modify the source myself for such a thing?
qwerpoi
22nd February 2007, 03:24
The funny thing is, I was going to ask for a vdub-style slider, and all th sudden here it is! Wow, telepathic feature requests do work. :p In all seriouness, excellent update, it's amazing how much work got put into it.
Yes, I am indeed telepathic. All future requests must be submitted telepathically (although I suppose posting here is an acceptable alternative :)).
Is it possible to have a switch to release avisynth? That would help for some very memory-intensive scripts, at which point I could hopefully go back to working after an allocation failure without having to recycle avsp. (Or just to leave it for something else for a while.) Should I just modify the source myself for such a thing?
It should be doable, I could add the feature to the "Video" menu ("Release all videos from memory" or something like that). I'm guessing what would be more handy is if the video was handled in a separate thread, something you mentioned in an earlier post. I don't have much experience with threading processes, but I'll give it some looking over as well.
Dreassica
23rd February 2007, 00:34
I saw a manual telecide option in menu, but it doesn't seem to work? It's supposed to not work or just a menu item left in by accident?
Veiga
23rd February 2007, 03:24
qwerpoi, thanks for this new version
new tranlation update
foxyshadis
23rd February 2007, 04:35
I saw a manual telecide option in menu, but it doesn't seem to work? It's supposed to not work or just a menu item left in by accident?
Open AsvP\macros\[3] Manual Telecide.py in a text editor, the top of the file explains what it does and how it works. (Similar to YATTA.)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.