This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Request: 64-bit Avisynth
#1
I really wish that Hybrid had the ability to select between 32 and 64 bit Avisynth.

Add it to the wish list? Smile
Reply
#2
Hybrid can already handle 64bit Avisynth, you just don't know how to tell Hybrid to use 64bit Avisynth. Big Grin
I'm currently not adding it to official releases since:
a. it would add an additional 200+MB to Hybrid
b. some filters are not supported
c. more stuff to maintain
d. I'm uncertain whether 64bit Avisynth will replace 32bit Avisynth and some filters get lost or if there really will be an option to switch between 32bit and 64bit Avisynth.

Cu Selur
Reply
#3
(24.07.2020, 20:48)Selur Wrote: Hybrid can already handle 64bit Avisynth, you just don't know how to tell Hybrid to use 64bit Avisynth.  Big Grin
I'm currently not adding it to official releases since:
a. it would add an additional 200+MB to Hybrid
b. some filters are not supported
c. more stuff to maintain
d. I'm uncertain whether 64bit Avisynth will replace 32bit Avisynth and some filters get lost or if there really will be an option to switch between 32bit and 64bit Avisynth.

Cu Selur

Tell me, tell me! Shy

Hybrid has a problem with the order in which masking and resizing is done. As you probably know, 99% of my sources are from consumer analog formats like VHS.

To mask a video (hide overscan, matte with black), you crop it, then pad back to 720x480/576, then resize to 4:3 AR (640x480 NTSC, 720x540 PAL).

So, in order to do this, I have to use Avisynth (32 or 64). For example:

### Typical VHS overscan crop
Crop(24,4,-14,-14)
AddBorders(20, 8, 18, 10) # left,top,right,bottom
spline36resize(640,480)

Easy, right?

Well, not quite. Since it's better to deinterlace before a mask (not required, but more ideal), I also run QTGMC first. And that's where the problem comes in.

Avisynth QTGMC 32-bit is slow ... SLOW! ... compared to 64-bit. Like 2x-3x slower to process. Yes, you can add the MT/+ syntax to make it faster, but it's just not stable. And it seems to make Hybrid less stable, and sometimes cascades to Hybrid crashing as well (usually just encode crashes, but not always). I'm not fond of the +32 version in general (+64 works perfectly).

Yes, I could learn Vapoursynth for the exact minimalist script (QTGMC, crop, addborder, resize), but there have been times where I wanted to run something more complex like KNLmeansCL (64-bit DLL), and could not. Had to process to another intermediary lossless, then encode that in Hybrid.

I keep touting Hybrid as a GUI for Avisynth newbie users (start Hybrid, then learn AvsPmod+Avisynth). Also a good lazy app, even if you know the scripting, I use it frequently. But it does have some limitations in the order of operations. Trying to mask results in stretched AR with wrong matting.

I tried to used Avisynth custom code within Hybrid, but it always crashed. Nothing special, just the Crop() and AddBorders(), not even the resizing, as test to 720x480 output. Encode crashed 1st second it started. So I was forced to write an AVS script, then open it in Hybrid. And it works ... just REALLY, REALLY slowly due to no x64.

In terms of program size ... so? The best apps are often larger. Photoshop is huge. Smile
 
If your worried about something secondary (in regards to size), like costs to host the larger files, then PM for email, let's talk. That's not a concern, and I support your project.

Some filters not being supported? Are you referring to general 32/64 issue?

Yes, more stuff to maintain, but I think it's worth it. Even if only QTGMC works well, for now (or foreseeable fitire), it'd be a win. You'd need some sort of checkbox with a warning ("SOME STUFF MAY NOT WORK, ONLY FOR ADVANCED USERS!"), to switch out of 32-bit processing to 64.

In terms of replace, do you refer to filters trying to overwrite one another? Just do the Avisynth+ route. I don't like +32, and do not have it installed. I have the official version. But I then have +64 installed, and use it frequently. Hybrid already uses 32 (isn't it self-contained?), and 64 shouldn't be much different.

Thanks for reading.

Great app you have here, and I want to help make it better.  Cool

I make make a new thread on the order of operations issue. Perhaps that can be addressed more quickly. My current project is taking 3x longer than it should. Interlaced VHS > H264, bob QTGMC and masked (nothing else).
Reply
#4
Quote:Hybrid has a problem with the order in which masking and resizing is done.
Tell me more, I mean, you know that you can change the order of the filters, right?

About using Avisynth 64bit simply extract a 64bit Avisynth Package into your "Hybrid/64bit folder" restart Hybrid, and check the Log-tab, it should report:
Quote:Avisynth+ is available,..
Avisynth plugin path: "PATH TO Hybrid"\64bit\Avisynth\avisynthPlugins
Now you are using 64bit Avisynth.
To revert to 32bit, simply rename the '64bit\Avisynth'-folder and restart Hybrid. Smile

Note that this should work, but I haven't tested everything that much since I usually don't use 64bit Avisynth, but 64bit Vapoursynth (which for me usually is faster than 64bit Avisynth).
I started working on Avisynth 64bit support a while ago, but due to lack of time it's on ice for the time being.


Cu Selur

Ps.: you might have to copy some of the scripts from the 32bit avisynthPlugins-folder to the 64bit avisynthPlugins-folder since I don't know for sure whether I updated the 64bit when I updated the general code and the 32bit scripts.

PPs.: you need to rename AVSMeter64.exe to AVSMeter.exe
Reply
#5
Mainly for completeness here's a list of filters that Hybrid does not support for 64bit:
  • Denoiser:
    • Deen
    • PeachSmoother
    • Deen (new)
    • NLMeansCL2
    • FrFun7
  • Deblocker:
    • Unblock
    • amDCT
    • DeblockPP7
  • SalFPSs 'warpfast' mode
  • Line Darkening:
    • Toon
    • mfToon
    • SuperToon
  • Sharpener:
    • LimitedSharpen
    • LimitedSharpenFasterMod
    • aSharp
  • YadifMod Edeint-mode: NNEDI2
  • DotCrawler-Remover:
    • DeCrawl
    • DeCrow
  • Resizer:
    • Spline100Resize
    • Spline144Resize
  • MPEG2SourceFiltering
  • Bluring:
    • BucketMedian
  • Adding Grain:
    • NoiseGenerator
  • EdgeCleaner
because last time I checked those filters/scripts did not work (or are not available) on 64bit.

If this has changed let me know. Smile

Cu Selur
Reply
#6
(25.07.2020, 16:46)While Selur Wrote: Tell me more, I mean, you know that you can change the order of the filters, right?

Well, yes and no.

Avisynth can change orders, I saw that.

But I don't see where the Crop/Resize can be changed, nor where Crop/Resize in relation to Avisynth or Vapoursynth can be changed.

Again, this is the order required for masking.

- deinterlaced (mask box may be cleaner edges if run before; technically can be run after as well)
- crop
- pad back to 720x480/576
- resize to 4:3, 640x480 NTSC or 720x540 PAL

What happens is that it crops, resizes, then pads. So you have the wrong AR.
Then it deinterlaces, and matte box edges can get fuzzy.

____________

Just FYI, for other readers, for anybody confused as to why matte is needing, VHS already has low resolution, with a fragile IQ. If you start to increase resolution, even the slightest, it artifacts. No amount of filtering can really fix this, which is also why upsizing VHS sources is a bad (nay, stupid) idea. And when you view this back on a TV (common for home movies!), not computer, it further crops in for set overscan. So you mask. Cover the overscan junk with black, so that it doesn't eat up bitrate, and look ugly on overscan-less viewing devices (aka computers).
Reply
#7
You can set crop, letterbox and deinterlace order in Avisynth.
Looking at:
Quote:- deinterlaced (mask box may be cleaner edges if run before; technically can be run after as well)
- crop
- pad back to 720x480/576
- resize to 4:3, 640x480 NTSC or 720x540 PAL
you would only need to move letterbox above the resizing.

I really don't see the problem,...
FFVideoSource("F:\TESTCL~1\files\INTERL~1\INTERL~1\YUV422~1.AVI",cachefile="E:\Temp\avi_1deca8d5573c8cb8cd8489678b764f38_853323747_1_0.ffindex",fpsnum=25,colorspace="YUY2")
# current resolution: 720x576
# deinterlacing
ConvertToYV16(interlaced=true)
AssumeTFF()
QTGMC(Preset="Fast", ediThreads=2)
SelectEven()
# cropping
Crop(20,0,-20,0)# 680x576
# letterboxing
AddBorders(20,0,20,0)# resolution: 680x576 -> 720x576
# scaling to 720x458
Spline36Resize(720,458)
# adjust color to YV12
ConvertToYV12()
PreFetch(8)
return last
works fine here when I move Letterbox over Resize,...
I need more details to reproduce the problem you are describing since atm. it looks to me like simply changing the filter order fixes the problem.

Cu Selur
Reply
#8
Well, I tried to move Vapoursynth filter order.
Moved all 3 to bottom, crop > letterbox/pad > resize.
That's how my Avisynth are almost always written, those go last in script.
Seemed okay.
I clicked the + to save, and got this error: (attached)
Had to click the same box 2-3 times.
But it seems to have saved after all, maybe? json is there in folder now. But it can't be applied. When applying, it reverts to default.

Also, before changes, I didn't think to save the default. Is there a reset? (Not that it mattered, it auto reverted this time, with the error.) But had it saved, I'd want to revert if needed.

I did a test encode, and it was cropped, not letterboxed/padded, then resized to 720x488. No idea how that mess happened.

-- update --

Tried Avisynth.
64bit has lots of errors when trying to add the job.
32bit added fine, but then we're back to the issue of slow QTGMC, the reason for Vapoursynth or Avisynth+x64

I cropped 0 top, 14 bottom, 18 left, 14 right
Resize to 640x480
Letterbox to 720x480

... and that's exactly what it did, in that order.
So I get cropped, bad-AR resize, padded to 720. But that's not the order of filter selected in Avisynth

Custom Filter Order has Crop > Letterbox > Resize

Now I want to reset filters to a default, but the reset arrow by "Filter(s): All" does nothing

I crashed Hybrid on purpose. After relaunch (after 2 failures), everything was reset. So I saved a Default Custom Order this time, just in case.

-- update --

The 64bit Avisynth is working very nicely. Ah ... 100fps QTGMC!!! No more 35fps from 32bit. Smile


Attached Files Thumbnail(s)
   
Reply
#9
about Avisynth: So everything is fine with Avisynth, right?


about Vapoursynth: "vsLSFModPreBlur" was removed a while back and I forgot to remove it from the list of defaults, which breaks the saving/loading of the filtering list.

Quote:I did a test encode, and it was cropped, not letterboxed/padded, then resized to 720x488. No idea how that mess happened.
looking at the Avisynth/Vapoursynth preview should have shown any problem,...

Cu Selur
Reply
#10
I've never gotten the previews to work reliably in any version. Always different errors. A 2018 or 2019 version had an infinite number of OK boxes, and must crash Hybrid to escape.

On Crop/Resize tab, the crop view preview, this x64 beta (not your newest, haven't installed it yet, 1 back from it still) brings up a gray windowed box, brings up mplayer box over it, with no video (black screen), using just resize. Add letterbox, and it just sometimes flashes on screen and disappear, sometimes same as resize black screen. It's no AvsPmod, and I wish it were. Nor a VirtualDub preview. This has always been a limitation.

One thing I can say is that it has gone from extremely buggy to very buggy. So ... better? Blush

I don't think this matters at all, but using the Intel HD onboard i7-6700K graphics, z170 Asrock Extreme 7+ board. Not a heat-generated nVidia or AMD card. I'm not a gamer, not trying to mine crypto coins, etc.

But the Avisynth-64bit processing seems to be working well. Smile

About to give it longer video, and step away while it processes. Then we'll know for sure!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)