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. |
|
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#1 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,468
|
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 *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) Name: DeDup URL: https://github.com/qyot27/DeDup OSes: Windows, Linux CPUs: x86(-64) Name: amDCT URL: https://github.com/pinterf/amDCT 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; 18th December 2024 at 17:31. Reason: 2024-12-18: amDCT |
![]() |
![]() |
![]() |
#2 | Link |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,631
|
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 |
![]() |
![]() |
![]() |
#3 | Link | ||
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,468
|
Quote:
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:
|
||
![]() |
![]() |
![]() |
#4 | Link |
Registered User
Join Date: Dec 2010
Posts: 66
|
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. |
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
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. |
![]() |
![]() |
![]() |
#7 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
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) |
![]() |
![]() |
![]() |
#8 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,468
|
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).
__________________
AviSynth+ native Linux/macOS/BSD support | AviSynth+ utilities and plugins for non-Windows and non-x86(-64) Last edited by qyot27; 16th December 2020 at 06:48. |
![]() |
![]() |
![]() |
#10 | Link | |
Registered User
Join Date: Dec 2010
Posts: 66
|
Quote:
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. |
|
![]() |
![]() |
![]() |
#13 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
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. |
![]() |
![]() |
![]() |
#14 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
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 ??? |
![]() |
![]() |
![]() |
#16 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
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.
|
![]() |
![]() |
![]() |
#17 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
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 |
![]() |
![]() |
![]() |
#18 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
TIVTC and TDeint (x86/x64 Linux, built on Ubuntu 19.10 WSL)
https://github.com/pinterf/TIVTC |
![]() |
![]() |
![]() |
#19 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,472
|
Masktools2 (x86/x64 Linux, built on Ubuntu 19.10 WSL)
https://github.com/pinterf/masktools |
![]() |
![]() |
![]() |
#20 | Link |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,631
|
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 |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|