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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 7th November 2020, 05:26   #1  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
AviSynth+ plugins and utilities for other OSes and CPUs

I debated whether to put this in the Development area or not, but since this is mostly about making sure there's a list of what's available to use, it probably belongs here.

I've been working on this list for the last month, intending to actually do first-party tests of them on the target OSes and CPUs, but I've not had the time or motivation to do so after getting home from work. So it stalled quite a bit, and the intent here was eventually to get this on here so other users can report back any successes/failures in using the plugins or utilities on stuff other than Windows and/or x86, so here we are.

It's very possible that many of these utilities or plugins could build or run without any problem on other OSes or CPUs without much or any modification, so don't consider the list below definitive.

This could/should probably be used to create a chart on the AviSynth Wiki for this info. I'll try to make sure the first post is updated with information as others report stuff that I'd not gotten to yet. The basic format I'll be using is
Code:
Name: Name of project
URL: Main upstream URL of the source code
OSes: OSes that the plugin has been tested and runs on
CPUs: CPU architectures that the plugin has been tested and runs on; 32-bit and 64-bit architectures are separate
AviSynth+ itself added support for Linux, macOS, and BSD in version 3.5. Basic* support for ARM was added in 3.6. Haiku and PowerPC support was added in version 3.7.0. RISC-V and SPARC were added in 3.7.1 after testing in QEMU. MIPS was enabled in 3.7.3, but untested on my end.

*There are no SIMD/intrinsics to speed things up compared to the compiler optimizing the C/C++ version of the functions, although multi-threading seems to work on Linux and Mac.

Utilities:

Name: FFmpeg (4.3 or higher to use AviSynth+ on non-Windows; versions below 4.3 expect AvxSynth)
URL: https://ffmpeg.org/
OSes: Numerous
CPUs: Numerous

Name: avs2yuv
URL: https://github.com/DJATOM/avs2yuv.git
OSes: Windows, Linux, macOS, BSD, Haiku
CPUs: x86(-64), ARM, PowerPC, SPARC, RISC-V

Name: x264 (AviSynth+ replaced AvxSynth on non-Windows platforms as of 2022-Feb-21/22)
URL: https://code.videolan.org/videolan/x264.git
OSes: Numerous
CPUs: Numerous

Name: avsViewer
URL: https://github.com/Selur/avsViewer
OSes: Numerous?
CPUs: Numerous?
? Qt's OS and CPU support is really the determining factor here.


Plugins:

Name: FFMS2
URL: https://github.com/FFMS/ffms2.git
OSes: Windows, Linux, macOS, BSD, Haiku
CPUs: x86(-64), ARM32, ARM64, PowerPC32, PowerPC64, PowerPC64-LE
(i686, amd64, armv7, aarch64, ppc, ppc64, ppc64le)

Name: LSMASHSource
URL: https://github.com/HomeOfAviSynthPlu...MASH-Works.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: RawSource_2.6x
URL: https://github.com/Asd-g/RawSource_2.6x
OSes: Windows, Linux
CPUs: x86(-64)

Name: MPEG2DecPlus
URL: https://github.com/Asd-g/MPEG2DecPlus
OSes: Windows, Linux
CPUs: x86(-64)

Name: FluxSmooth
URL: https://github.com/pinterf/FluxSmooth.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: avsresize
URL: https://forum.doom9.org/showthread.p...56#post1925356
OSes: WIndows, Linux
CPUs: x86(-64)

Name: DelogoHD
URL: https://github.com/HomeOfAviSynthPlu...n/DelogoHD.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_f3kdb
URL: https://github.com/HomeOfAviSynthPlu.../neo_f3kdb.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_fft3dfilter
URL: https://github.com/HomeOfAviSynthPlu...tion/neo_FFT3D
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_gradient_mask
URL: https://github.com/HomeOfAviSynthPlu..._Gradient_Mask
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_minideen
URL: https://github.com/HomeOfAviSynthPlusEvolution/minideen
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_dfttest
URL: https://github.com/HomeOfAviSynthPlu...on/neo_DFTTest
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_tmedian
URL: https://github.com/HomeOfAviSynthPlu...eo_TMedian.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: neo_vague_denoiser
URL: https://github.com/HomeOfAviSynthPlu...e_Denoiser.git
OSes: Windows, Linux
CPUs: x86(-64)

Name: rotate
URL: https://github.com/SuNNjek/rotate-plugin
OSes: Windows, Linux
CPUs: x86(-64)

Name: yadifmod2
URL: https://github.com/Asd-g/yadifmod2
OSes: Windows, Linux
CPUs: x86(-64)

Name: TurnsTile
URL: https://github.com/ItEndsWithTens/TurnsTile
Oses: Windows, Linux, macOS
CPUs: x86(-64)

Name: AddGrainC
URL: https://github.com/pinterf/AddGrainC
OSes: Windows, Linux
CPUs: x86(-64), ARM32, ARM64

Name: RgTools
URL: https://github.com/pinterf/RgTools
OSes: Windows, Linux
CPUs: x86(-64)

Name: mvtools
URL: https://github.com/pinterf/mvtools
OSes: Windows, Linux
CPUs: x86(-64)

Name: TIVTC and TDeint
URL: https://github.com/pinterf/TIVTC
OSes: Windows, Linux
CPUs: x86(-64)

Name: Masktools2
URL: https://github.com/pinterf/masktools
OSes: Windows, Linux
CPUs: x86(-64)

Name: RemoveDirt
URL: https://github.com/pinterf/RemoveDirt
OSes: Windows, Linux
CPUs: x86(-64)

Name: MedianBlur2
URL: https://github.com/pinterf/MedianBlur2
OSes: Windows, Linux
CPUs: x86(-64)

Name: AssRender
URL: https://github.com/pinterf/assrender
OSes: Windows, Linux
CPUs: x86(-64)

Name: TComb
URL: https://github.com/pinterf/TComb
OSes: Windows, Linux
CPUs: x86(-64)

Name: RemoveGrainHD
URL: https://github.com/pinterf/RemoveGrainHD
OSes: Windows, Linux
CPUs: x86(-64)

Name: Convolution3D
URL: https://github.com/pinterf/Convolution3D
OSes: Windows, Linux
CPUs: x86(-64)

Name: fft3dfilter
URL: https://github.com/pinterf/fft3dfilter
OSes: Windows, Linux
CPUs: x86(-64)

Name: TNLMeans
URL: https://github.com/pinterf/TNLMeans
OSes: Windows, Linux
CPUs: x86(-64)

Name: Average
URL: https://github.com/pinterf/Average
OSes: Windows, Linux
CPUs: x86(-64)

Name: AjkMedian
URL: https://github.com/pinterf/AjkMedian
OSes: Windows, Linux
CPUs: x86(-64)

Name: fmtconv
URL: https://github.com/EleonoreMizo/fmtconv
OSes: Windows, Linux
CPUs: x86(-64)

Name: KNLMeansCL
URL: https://github.com/qyot27/KNLMeansCL/commits/avs-linux (upstream pull request)
OSes: Windows, Linux
CPUs: x86(-64)


AvxSynth plugins that might be easily updated:

Name: avxsynth-decomb
URL: https://github.com/qyot27/avxsynth-decomb
OSes: Linux

Last edited by qyot27; 12th August 2023 at 03:04. Reason: 2023-08-11: revise details about non-x86 CPUs and version numbers
qyot27 is offline   Reply With Quote
Old 13th December 2020, 19:56   #2  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
maybe adding this https://github.com/Asd-g/MPEG2DecPlus/pull/5 too

also adding this thread link to https://forum.doom9.org/showthread.php?t=180436 so people will know about it from there
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 13th December 2020, 22:16   #3  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
Quote:
Originally Posted by real.finder View Post
As it hasn't been merged yet, I'd initially go with the eblanca/MPEG2DecPlus repo, but if there's some hint it'll be merged soon, I'd rather hold off until that happens.

Or I could just create a 'pending' section for stuff where the changes have been made externally and a PR exists upstream. Once it's merged, it'll go into the regular list.

Quote:
also adding this thread link to https://forum.doom9.org/showthread.php?t=180436 so people will know about it from there
Good idea.
qyot27 is offline   Reply With Quote
Old 14th December 2020, 12:48   #4  |  Link
Losko
Registered User
 
Join Date: Dec 2010
Posts: 65
Great idea qyot27!
This thread turns out to become a very useful resource for any non-Windows users out there!

Edit: PR for MPEG2DecPlus got merged hours ago - I'm user eblanca on github

Last edited by Losko; 14th December 2020 at 12:56.
Losko is offline   Reply With Quote
Old 14th December 2020, 19:06   #5  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
Done.
qyot27 is offline   Reply With Quote
Old 15th December 2020, 14:55   #6  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by qyot27 View Post
Done.
Hi, as a practice I updated a relatively easy case: AddGrainC.
I'm not sure I have copy-pasted-merged properly.
Nevertheless it is working fine on my WSL. Can someone try it? Theoratically it handles the INTEL_INTRINSICS define as well through an option, just like Avisynth does.
pinterf is offline   Reply With Quote
Old 15th December 2020, 18:11   #7  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
And a second one from me:
https://github.com/pinterf/RgTools
(Tested on my Ubuntu WSL, only intel at the moment but I'm glad that even this was achieved)
pinterf is offline   Reply With Quote
Old 16th December 2020, 06:36   #8  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
Did some quick and dirty tests on Ubuntu 20.10/i5-9400, both AddGrainC and RgTools build and can run (although I noticed that RemoveGrain mode 19 seems to not like 10-bit 4:4:4). Added to the list.

I did not test AddGrainC on the RasPi 4, but given how the changes look I'd be surprised if it didn't work.

One way to quickly have a way of verifying this on other CPU arches would be qemu VMs that users could download and test-run. The problem is that even with 7z compression, that's still a pretty big download, multiplied several times if users don't want to bother with setting up the VMs themselves and just want something they can run out of the box and test the compile/run process on just the plugin (and/or AviSynth+ and corresponding FFmpeg/mpv).

Last edited by qyot27; 16th December 2020 at 06:48.
qyot27 is offline   Reply With Quote
Old 16th December 2020, 08:13   #9  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by qyot27 View Post
(although I noticed that RemoveGrain mode 19 seems to not like 10-bit 4:4:4).
Thanks, this mode had a bug in 16 bit, fixed on git.
pinterf is offline   Reply With Quote
Old 16th December 2020, 14:08   #10  |  Link
Losko
Registered User
 
Join Date: Dec 2010
Posts: 65
Quote:
Originally Posted by qyot27 View Post
One way to quickly have a way of verifying this on other CPU arches would be qemu VMs that users could download and test-run. The problem is that even with 7z compression, that's still a pretty big download, multiplied several times if users don't want to bother with setting up the VMs themselves and just want something they can run out of the box and test the compile/run process on just the plugin (and/or AviSynth+ and corresponding FFmpeg/mpv).
Some times ago I stumbled into this page offering qemu images of debian 6/7 for different architectures. One nice thing I noticed is once you install debian without any DEs, the resulting image is very compact (I see there are some under 300 MB).
I think running new plugins into a VM can be useful for testing and bug hunting, also assuming avisynth+ is about number crunching (no visual output needed), those can be taken as a viable solution.


Edit: "those" I mean a current debian installation image, neither 6 nor 7.

Last edited by Losko; 16th December 2020 at 14:12.
Losko is offline   Reply With Quote
Old 16th December 2020, 14:57   #11  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,153
Quote:
Originally Posted by pinterf View Post
Thanks, this mode had a bug in 16 bit, fixed on git.
Can you compile new ver with fixed?
kedautinh12 is offline   Reply With Quote
Old 20th December 2020, 19:48   #12  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by kedautinh12 View Post
Can you compile new ver with fixed?
Not finished yet
pinterf is offline   Reply With Quote
Old 20th December 2020, 19:56   #13  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
MvTools2 Linux port and other things. I'm happy with that, I never ever thought that I would be doing that. A running related injury helped a lot to have time for that
Tested on my Ubuntu 19.10 WSL.

Code:
- 2.7.45 (WIP)
  - MSuper: rfilter=0 and 1
    8 bit: drop old SSE code, port to SIMD intrinsics. Add SIMD to 16 bit case. Quicker, much quicker.
    (rfilter: Hierarchical levels smoothing and reducing (halving) filter)
  - MSuper: sharp=1 for pel=2 or 4
    Bicubic resizer drop old SSE code, port to SIMD intrinsics, implement SIMD intrinsics to 16 bit case.
    No need for Bilinear.asm and Bilinear-x64.asm any more.
  - SATD: add 8 bit C versions (geee, there wasn't one) (as an alternative to the external asm)
  - SAD: add internal SIMD for 8 bit SAD (SSE4.1) (as an alternative to the external asm)
  - Overlaps: Add internal SIMD for 8 bit. (as an alternative to the external asm)
  - In def.h any existing external assembler file can be disabled. 
    The primary reason for this was to quickly test the linux port, for me this was easier than bothering with asm compilation and linking.
    For non-Windows cases all of these are disabled now.
    - USE_COPYCODE_ASM (CopyCode-a.asm). Has internal alternative. Same speed.
    - USE_OVERLAPS_ASM (Overlap-a.asm). asm implements 8 bit only. Has internal SIMD alternative. About the same speed.
    - USE_SAD_ASM (sad-a.asm) asm implements 8 bit only. Note: Internal 8 bit SIMD SAD is a bit slower that these handcrafted ones.
    - USE_SATD_ASM (Pixel-a.asm) asm implements 8 bit only. Note: SATD 8 bit has no SIMD replacement yet. 
    - USE_LUMA_ASM (Variance-a.asm) asm implements 8 bit only. Has internal alternative. 
    - USE_FDCT88INT_ASM (fdct_mmx.asm, fdct_mmx_x64.asm) 
                        Only used for 8x8 block sizes. Quick integer version instead of fftw3.
                        No internal alternative, fftw3 is used instead.
    - USE_AVSTP (do not search for avstp.dll on Windows)
  - Minor and not so minor cosmetics, mainly for GCC.
  - Add Cmake build system.
  - Linux/GCC port (needs sse4.1), Dewindowsification.
    fftw3: MAnalyze dct modes that require fftw3 library will search for libfftw3f_threads.so.3
    Install either libfftw3-single3 (deb) or fftw-devel (rpm) package"
    e.g. sudo apt-get update
         sudo apt-get install libfftw3-dev
  - Not done (will be done in a second phase):
    Add back some external asms. For 8 bit SAD and SATD mainly.
    Linux port is still Intel-only, though every part has C alternative by now.
    Separate the 3 projects (mvtools2, depan, depan_estimate).
    Depan and Depan_estimate Linux port

Last edited by pinterf; 20th December 2020 at 19:58.
pinterf is offline   Reply With Quote
Old 20th December 2020, 20:17   #14  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Fortunate running injury, lets hope you have many more
__________________
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 ???
StainlessS is offline   Reply With Quote
Old 21st December 2020, 00:55   #15  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
So, was depan originally part of mvtools? Because if it was, then I guess there's no need to keep the btb/depan entry in that 'port from AvxSynth?' section.
qyot27 is offline   Reply With Quote
Old 21st December 2020, 08:26   #16  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by qyot27 View Post
So, was depan originally part of mvtools? Because if it was, then I guess there's no need to keep the btb/depan entry in that 'port from AvxSynth?' section.
Right. No need. Depan filters are not part of mvtools2, but I treat them together; mvtools2 MDepan can generate vectors with additional rotation and probably zoom info for depan_stabilize. They had some common source parts as well.
pinterf is offline   Reply With Quote
Old 21st December 2020, 19:23   #17  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
O.K. after mvtools2, DePan and DePanEstimate filters are ported as well. Not tested at all.
Code:
  - Separate the 3 projects (mvtools2, depan, depan_estimate).
  - DePan and DePanEstimate: Linux port
  - DePanEstimate: add fft_threads variable (default 1) for fftw3 mode (experimental)
  - DepanEstimate: add MT guard around sensible fft3w functions
pinterf is offline   Reply With Quote
Old 27th December 2020, 18:48   #18  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
TIVTC and TDeint (x86/x64 Linux, built on Ubuntu 19.10 WSL)
https://github.com/pinterf/TIVTC
pinterf is offline   Reply With Quote
Old 29th December 2020, 23:45   #19  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Masktools2 (x86/x64 Linux, built on Ubuntu 19.10 WSL)
https://github.com/pinterf/masktools
pinterf is offline   Reply With Quote
Old 30th December 2020, 00:34   #20  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
thanks pinterf, after your updates for Linux I think I will install Linux on virtualbox and try play with avs+ in Linux
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 Jump


All times are GMT +1. The time now is 07:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.