View Full Version : SmoothAdjust [v3.20 - Update 2015/11/15]
Pages :
1
2
3
4
5
6
7
8
[
9]
10
TheSkiller
18th September 2013, 13:22
Alright, so I downloaded and installed vanilla "AVS 2.6.0 Alpha 4 [130114]" from SourceForge and version() now shows Jan 14 2013.
No MT, and plugins directory empty (except for the plugins the installer puts there). Still the same error. All the earlier versions of SmoothAdjust worked for me no problem at all.
Opening SmoothAdjust.dll (2.6 x86) in Dependency Walker I instantly get an error report.
Module EFSADU.DLL
Error opening file. The System cannot find the requested file (2).
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
:(
LaTo
18th September 2013, 13:34
Opening SmoothAdjust.dll (2.6 x86) in Dependency Walker I instantly get an error report.
:(
Module EFSADU.DLL is about "Encrypting File System", nothing to do with SmoothAdjust.
Maybe a VS2013 bug, is your windows version XP or lower?
LaTo
18th September 2013, 13:44
I have just opened the .dll in dependency walker, wtf are all these loaded dll...
I need to investigate a bit why so much useless dll are loaded.
edit: GetSystemMetrics is the culprit
TheSkiller
18th September 2013, 14:39
My OS is Windows XP indeed.
All the earlier versions of SmoothAdjust worked for me no problem at all.
More precisely, what I mean is, 2.60 was the last version that worked for me (I missed 2.62).
LaTo
18th September 2013, 17:18
My OS is Windows XP indeed.
More precisely, what I mean is, 2.60 was the last version that worked for me (I missed 2.62).
Is this working: SmoothAdjust-Test.7z (http://latoninf.free.fr/d9/SmoothAdjust-Test.7z) ?
Try it on vanilla 2.6.0a4 please :)
TheSkiller
18th September 2013, 18:49
Tested with vanilla 2.6.0a4, still no success.
The error code has changed to 0x45a.
LaTo
18th September 2013, 19:48
Tested with vanilla 2.6.0a4, still no success.
The error code has changed to 0x45a.
Strange, it is working on my old XP machine.
Your XP has SP3 and is up-to-date?
TheSkiller
18th September 2013, 20:20
It's with SP2, I never really bothered with SP3. Oh well, maybe I should...
But why does it suddenly not work anymore? It used to be so simple. :p
LaTo
18th September 2013, 20:23
It's with SP2, I never really bothered with SP3. Oh well, maybe I should...
But why does it suddenly not work anymore? It used to be so simple. :p
It's because VS 2012 & 2013 requires SP3 on windows XP (older version was compiled with VS2010).
Gavino
18th September 2013, 23:35
Are the older versions archived somewhere, LaTo?
Only the latest one appears to be available on your website.
LaTo
19th September 2013, 13:36
v2.85:
fixed bugs inside multi-threading code
removed user32 dependency
added AVX2 detection (for future opt)
LaTo
19th September 2013, 13:41
Are the older versions archived somewhere, LaTo?
Only the latest one appears to be available on your website.
I uploaded the old v2.62 version for those who need it (and v1.02 for AutoGain).
Partial support for Windows XP is a pity but I need VS2013 for C++11 features.
Anyway this is a really bad idea to keep an XP not-updated... So in the end this is a good thing :)
Gavino
19th September 2013, 16:20
I uploaded the old v2.62 version for those who need it (and v1.02 for AutoGain).
Thanks, LaTo.
Any chance you could put the last ICL-compiled versions up too?
I lost all my plugins in a recent disk crash and like to keep various versions around for reference.
LaTo
31st October 2013, 17:02
v2.90:
fixed possible freeze in MT code
added explicit error messages
LaTo
31st October 2013, 17:11
Thanks, LaTo.
Any chance you could put the last ICL-compiled versions up too?
I lost all my plugins in a recent disk crash and like to keep various versions around for reference.
Sorry I don't have these anymore (but these builds have no interest, new versions are considerably better)
leeperry
13th November 2013, 03:04
Hi LaTo, now that I finally moved to LCD displays(after decades of DLP & CRT), I'm trying this plugin for TV>PC conversion again and it still looks as good as it did before :)
But why did you remove the "smooth" argument? IIRC it drastically lowered CPU usage, I use it in realtime in ffdshow.
And what kind of dithering do you use again? Floyd-Steinberg IIRC?
:thanks:
LaTo
14th November 2013, 18:18
v2.95:
fixed minor things
tweaked multi-threading code
SamKook
20th November 2013, 00:11
Is there a way to get the same histogram as the ones in debug view to be displayed like avisynth own histogram function?
So basically only having one histogram to the right of the output video and not have the input video+histogram.
The options could still be displayed on the right of it since it's easy enough to crop them if not needed.
The dim graph on it is very useful for fading text and can't be achieved with avisynth histogram(as far as I could find), but the debug view is taking way too much screen space for my taste and makes working with other stuff open at the same time pretty hard.
SamKook
23rd November 2013, 04:14
I seem to have found a bug in the latest version.
When using a crop at the same time as smoothCurve, there's an avisynth read error: "SmoothAdjust: Invalid memory alignment" when trying to play the script(which display no picture when paused) and if setmtmode is enabled, it crashes when trying to load the script.
I'm using SEt's release of AvisynthMT from 2013-09-28(but I also tried with the one from 2013-03-09 and the official alpha5 release with the same result) and the following script:
ffvideosource("D:\_1enc_\test_xvid.avi")
Crop(6, 0, -6, -0)
SmoothCurve(Ycurve="0-2;255-235", HQ=true)
I tried with an mp4 with h264 and also tried DGDecode_mpeg2source with a DVD source and it doesn't make a difference. Removing the HQ option also doesn't change anything.
If I comment either the crop or smoothcurve, it works perfectly fine.
I was previously using v2.00 which worked fine in this scenario so I'm not sure when the behavior started to occur since I didn't try any in between the 2.
LaTo
24th November 2013, 01:19
Add align=true in the Crop() call.
SamKook
24th November 2013, 02:38
Thanks, it works now.
The error message makes a lot more sense when you know crop has an align parameter.
Is there any particular reason why it's mandatory now?
LaTo
28th November 2013, 16:15
Thanks, it works now.
The error message makes a lot more sense when you know crop has an align parameter.
Is there any particular reason why it's mandatory now?
It's because of speed optimization (post-v2.62 versions run 1.5x faster)
Gavino
28th November 2013, 16:54
That's the first time I have seen a plugin insist on aligned crops being used. It's better than crashing with unaligned (as some have done), but normally you would expect this to be supported as it's 'legal' Avisynth input.
LaTo
28th November 2013, 19:05
That's the first time I have seen a plugin insist on aligned crops being used. It's better than crashing with unaligned (as some have done), but normally you would expect this to be supported as it's 'legal' Avisynth input.
Yes it was planned, but I am tired and I have to finish small other things prior to release the new version.
Using NewVideoFrame(vi, 16 or 32) and BitBlit on unaligned frame is a good practice?
I remember an old post where I read that chroma planes could be aligned at half the requested alignment and that values above 16 are silently ignored?!?
ARDA
28th November 2013, 21:26
That's the first time I have seen a plugin insist on aligned crops being used. It's better than crashing with
unaligned (as some have done), but normally you would expect this to be supported as it's 'legal' Avisynth input.
That concept was discussed here
http://forum.doom9.org/showthread.php?p=1648026#post1648026
and followed here
http://forum.doom9.org/showthread.php?p=1648644#post1648644
I remember an old post where I read that chroma planes could be aligned at half the requested alignment and that
values above 16 are silently ignored?!?
If I am not wrong, not anymore.
leeperry
5th December 2013, 04:49
Still thoroughly impressed by SmoothLevels(preset="tv2pc",HQ=true) in realtime :cool:
But I can barely run it on 720p24 with my Q9450@3.5Ghz, so is 1080p hopeless?
This would give me an excuse to buy a newer CPU, but apparently even a 4770K isn't clearly >2.25(1080p/720p) times faster than a 8*400 QX9770(slightly slower than my 8*438 3.5Ghz Q9450): http://www.anandtech.com/bench/product/48?vs=836
It's pretty striking how GPU's performance has drastically improved but not really CPU's apparently? And I'm not shelling out $1K(with the mobo and a beefier PSU) on a 6/8 cores CPU :D
humm: http://www.pcworld.com/article/2030005/why-moores-law-not-mobility-is-killing-the-pc.html
performance is increasing at just 10 percent per year for desktops
HOB
10th December 2013, 20:14
Hello LaTo
Thank you for giving me the opportunity to try out SmoothAdjust, I'm new to this aspect of video control and I've not been able to use SmoothAdjust often enough to feel conversant on the subject except at the most basic level, needless to say I'm enjoying learning about your effort and how to use it.
I came across a problem trying to update to the latest version, v2.95. My virus software, Norton from Symantec, flags the smoothadjust.dll file as a security risk. It sees a risk ONLY with the x86 files and not the x64 files. Norton detects a Cloud.7.F risk which make me wonder if that file is somehow accessing some form of the "cloud" in some way?
Here is a screen grab of the Norton Security History:
http://i43.tinypic.com/2z81dus.jpg
Are you using the "cloud" in some way or is this a "false positive" on Norton's part? In any event can you suggest a way to update?
Thanks again LaTo
StainlessS
11th December 2013, 04:26
I uploaded the 2.6 x86 dll to VirusTotal.com where was scanned by 49 antivirus products where 3 of them identified as suspicious.
(Norton not amongst the anitvirus products, presumably Norton no longer thought worthy).
These are results from those 3 AV products:-
AV-Product Identified As Date of AV DBase update
Bkav HW32.CDB.D512 20131210
CMC Trojan.Win32.VBKrypt!O 20131202
McAfee-GW-Edition Heuristic.BehavesLike.Win32.Suspicious-BAY.G 20131211
I think you can ignore Norton and above, but would suggest submitting false +ve to Norton.
can you suggest a way to update?
You could un-quarantine (but when you move dll it will likely fire another quarantine).
HOB
11th December 2013, 05:01
Thanks for the feedback StainlessS, I appreciate your effort in uploading the file to VirusTotal.com.
I'm inclined to un-quarantine the file myself. I'm NOT that familiar with the "cloud", other than I will NOT update my Photoshop CS6 to the CC version…EVER! LOL…they lost a LONG TIME customer. I thought that there might be some legitimate reason for LaTo to add some kind of cloud access to the DLL in question, which would eliminate it as a threat so I hope I'm able to get a response sometime in the future.
Norton has quarantined .exe files from more than a few of the programs I own, so I'm quite familiar on how 2 un-quarantine a file. ;-)
StainlessS
11th December 2013, 13:50
The term 'Cloud' could mean anything in the suspected malware name.
I do suggest that you submit/upload as false +ve to Norton so that they can examine it in detail and remove from next dbase update
and no longer bother you.
Some time ago, I posted a VB program on D9 which showed up as some kind of malware, it turned out to be a sequence of (about 8)
buttons on a dialog box that were all identical with exception of vertical position on the form, my antivirus interpreted this slightly
different but repeated data sequence as some kind of data factory, eg virus mutating code. Rearranging the button order placated
daft AV and halted the false +ve's. I'm guessing that Norton is just being a panic merchant and the weight of numbers from VirusTotal
gives a better indication.
EDIT: I also submitted to http://virusscan.jotti.org/en as well as https://www.virustotal.com/ and 3 AV products there out of about 29 ID'ed as suspicious.
HOB
11th December 2013, 16:26
Just submitted the file to Norton...I'll let you know the outcome...if any?
LaTo
11th December 2013, 20:09
SmoothAdjust uses nothing from the network at all... This is simply a false alarm from Norton, if you download the file from this thread you will be safe.
HOB
12th December 2013, 19:43
Thanks for your response LaTo, it's as I suspected a false alarm from Norton NOT a problem with your efforts.
cybersharky
23rd December 2013, 14:21
Add align=true in the Crop() call.
Thanks, just had same issue today.
cybersharky
2nd January 2014, 19:15
edit not needed
ronnylov
4th January 2014, 16:18
Hi!
I am trying to use SmoothAdjust on Linux with wine. With an old version 2.00 beta8 I had on my hard drive everything works.
With latest version v2.95 it does not work (virtualdub says unknown avisynth error opening frame or something like that).
Now I want to find out latest version that works but can I download older versions somewhere?
Maybre there are some windows system file needed for newer versions that are missing when I use wine on Linux?
EDIT: Found this on previous thread page.
I uploaded the old v2.62 version for those who need it (and v1.02 for AutoGain).
Partial support for Windows XP is a pity but I need VS2013 for C++11 features.
Anyway this is a really bad idea to keep an XP not-updated... So in the end this is a good thing
Any links to these files?
LaTo
9th March 2014, 18:33
v3.00:
dropped Avs v2.5.x support
added AVX2 code (10% faster)
modified plugin to be thread-safe (MT_NICE_FILTER)
Update :)
LaTo
16th March 2014, 10:24
Quoted from AutoAdjust's thread:
Thank you for your bug report, but unfortunately I can't do anything with so little information.
I need these:
- Windows version
- Processor/CPU model
- Exact Avisynth version
- Precise error message
- Crash where? At startup? In the clip? At the end?
- Entire used script
- Properties of the video, or better, a short sample
So this is the last time I write this, the next incomplete bug reports will be simply ignored.
(Nothing personal, but it is always the same thing and I don't have enough free time to explore hypothetical bugs)
:devil:
TheSkiller
16th March 2014, 11:36
Just wanted to note, SmoothAdjust now does load again on my Windows XP SP2 machine. :confused: :)
I didn't change anything. This is not new to 3.0 though, it started working again with version 2.90 if I remember correctly.
LaTo
16th March 2014, 17:40
Just wanted to note, SmoothAdjust now does load again on my Windows XP SP2 machine. :confused: :)
I didn't change anything. This is not new to 3.0 though, it started working again with version 2.90 if I remember correctly.
Yes the compiler doesn't support WinXP before SP3... I can't do anything, use the older version :)
TheSkiller
17th March 2014, 19:50
I'm not sure you understand me.^^
I'm currently using version 3.00 with Win XP SP2 no problems at all. It does load and work even though there's no SP3 installed which is great. :)
LaTo
17th March 2014, 20:56
I'm not sure you understand me.^^
I'm currently using version 3.00 with Win XP SP2 no problems at all. It does load and work even though there's no SP3 installed which is great. :)
It seems I was tired... :D
I don't know why it's working now, but that's great!
killerteengohan
3rd September 2014, 20:33
This is a great filter and I really like it.
Reel.Deel
14th October 2014, 14:17
Hi LaTo, I was wondering how can I convert your SmoothYLevels function to work on 16-bit content? Change all 255's to 65535? But how about the other numbers (162.97466)?
function SmoothYlevels(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high",
\ string "mode", int "TVrange", bool "limiter", bool "show")
{
input_low = Default(input_low, 0 )
gamma = Default(gamma, 1.0 )
input_high = Default(input_high, 255 )
output_low = Default(output_low, 0 )
output_high = Default(output_high, 255 )
mode = Default(mode, "Y" )
TVrange = Default(TVrange, 0 )
limiter = Default(limiter, false)
show = Default(show, false)
exprY = "(((((Y-"+string(input_low)+")/("+string(input_high)+"-"+string(input_low)+"))^(1/"+string(gamma)+"))*("+string(output_high)+"-"+string(output_low)+"))+"+string(output_low)+")"
exprG = (gamma>1.0) ? "((("+string(exprY)+"*Y)+(Y*(255-Y)))/255)" : "((("+string(exprY)+"*(255-Y))+(Y*Y))/255)"
exprS = "((("+string(exprY)+"*(sin((Y/162.97466))*255))+(Y*(255-(sin((Y/162.97466))*255))))/255)"
exprC = "((("+string(exprY)+"*(255-(cos((Y/162.97466))*255)))+(Y*(cos((Y/162.97466))*255)))/255)"
expr = (mode == "G") ? exprG : (mode == "S") ? exprS : (mode == "C") ? exprC : exprY
return clp.SmoothCustom(Yexpr=expr,TVrange=TVrange,limiter=limiter,show=show)
}
StainlessS
14th October 2014, 14:23
Reel.Deel,
Quick answer, just leave that number as it is and try it out, LaTo should (I think) confirm.
EDIT:
OOps, Above is RUBBISH.
Perhaps 65535 should be 65280 (255 * 256), and 162.97466 should be 41721.51296 (162.97466 *256.0).
Reel.Deel
14th October 2014, 14:30
I tried just switching SmoothCustom to SmoothCustom16 and leaving the rest as is but with SmoothYLevels(gamma=1.1) the result is different (darker).
Edit: StainlessS: I had 65280 in my previous post but changed it to 65535 since I wasn't sure.
StainlessS
14th October 2014, 14:43
Prev post fixed, Not sure but I think 16 bit max is 255 *256 (ie $FF00).
StainlessS
14th October 2014, 14:57
Perhaps: (max is I think $FF00 in Stack16),
If max is 65280 (255*256 ie $FF00) then
65280 (255 * 256), and 162.97466 should be 41721.51296 (162.97466 *256.0).
If max is 65535 (255*257 ie $FFFF) then
65535 (255 * 257), and 162.97466 should be 41884.48762 (162.97466 *257.0).
Reel.Deel
14th October 2014, 17:59
Ok, due to this comment I decided to go with 65280 and 41721.51296 as suggested by StainlessS. Visually it looks identical to the original SmoothYLevels (http://forum.doom9.org/showpost.php?p=1619975&postcount=355). (I hope it's correct)
255 in 16 bit is 65280, so your conversion will never be the same as 8 bit.
function SmoothYlevels16(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high",
\ string "mode", int "TVrange", bool "limiter", bool "show")
{
input_low = Default(input_low, 0 )
gamma = Default(gamma, 1.0 )
input_high = Default(input_high, 65280 )
output_low = Default(output_low, 0 )
output_high = Default(output_high, 65280 )
mode = Default(mode, "Y" )
TVrange = Default(TVrange, 0 )
limiter = Default(limiter, false )
show = Default(show, false )
exprY = "(((((Y-"+string(input_low)+")/("+string(input_high)+"-"+string(input_low)+"))^(1/"+string(gamma)+"))*("+string(output_high)+"-"+string(output_low)+"))+"+string(output_low)+")"
exprG = (gamma>1.0) ? "((("+string(exprY)+"*Y)+(Y*(65280-Y)))/65280)" : "((("+string(exprY)+"*(65280-Y))+(Y*Y))/65280)"
exprS = "((("+string(exprY)+"*(sin((Y/41721.51296))*65280))+(Y*(65280-(sin((Y/41721.51296))*65280))))/65280)"
exprC = "((("+string(exprY)+"*(65280-(cos((Y/41721.51296))*65280)))+(Y*(cos((Y/41721.51296))*65280)))/65280)"
expr = (mode == "G") ? exprG : (mode == "S") ? exprS : (mode == "C") ? exprC : exprY
return clp.SmoothCustom16(Yexpr=expr,TVrange=TVrange,limiter=limiter,debug=show) # changed "show" to "debug" to be in compliance with the latest SmoothAdjust
}
LaTo
15th November 2015, 17:02
v3.20:
updated for Avs v2.6.0 final
fixed AVX2 crash with Win7 without SP1
Despite ongoing events in my country, life must go on...
This small update was already planned, so here it is!
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.