Log in

View Full Version : manyPlus plugin


Pages : [1] 2

vcmohan
5th October 2020, 13:06
I have gathered modPlus, movePlus, fqPlus, Grid, testInput plugins into one and also included a couple of more functions and created this plugin. On my page links for this manyPlus (http://www.avisynth.nl/users/vcmohan/manyPlus/manyPlus.html) plugin now replace those 5 plugins.

real.finder
5th October 2020, 21:13
thanks, but where is the documentation of testInput? I didn't see it in the page

ChaosKing
5th October 2020, 22:02
Look at the index page http://www.avisynth.nl/users/vcmohan/manyPlus/manyPlus_src.7z
http://www.avisynth.nl/users/vcmohan/

real.finder
10th October 2020, 01:01
Look at the index page http://www.avisynth.nl/users/vcmohan/manyPlus/manyPlus_src.7z
http://www.avisynth.nl/users/vcmohan/

that source code

and I did looked at the index page and didn't find it

vcmohan
11th October 2020, 13:08
I get the link without any problem.

real.finder
11th October 2020, 14:04
I get the link without any problem.

the link work indeed and has a list for the others, but seems testInput is missed

vcmohan
13th October 2020, 13:10
The functions jitter, deJitter, Grid and pattern are part of the test input. I find they are in that plugin function list. Grid and pattern are used for testing many other functions. Jitter is used for testing dejitter. Jitter and pattern were developed on specific requests.

real.finder
14th October 2020, 10:05
The functions jitter, deJitter, Grid and pattern are part of the test input. I find they are in that plugin function list. Grid and pattern are used for testing many other functions. Jitter is used for testing dejitter. Jitter and pattern were developed on specific requests.

I see, thanks

vcmohan
24th December 2020, 07:12
I have added two new functions F2QBokeh that operates in frequency domain and bokeh that is in spatial domain. I understand that "bokeh" means to blur in Japanese. Many smart phones have this setting with camera.
A big difference between pics taken of birds, flowers or animals with high end cameras by seasoned photographers and taken by rest of us lies how the background appears vis-a-vis the object. Great pics have the background blurred beyond recognition in shapes similar to shape of Iris of camera, whereas ordinary pics show background with enough detail , though slightly blurred, to detract attention.
With a view to blur background more keeping in focus pic undisturbed these two functions are designed to operate. The metric used to discriminate in focus and out of focus parts are different in these two functions. Size of grid used and threshold play a key part in getting an acceptable result and so some experimentation using animate or scriptclip is required.
I have not yet posted the source code as I invite comments for improvement. As it is in my mind there are a couple of issues to be addressed. A link to a display of processed image
(http://www.avisynth.nl/users/vcmohan/manyPlus/f2qbokeh0.png). Top left is input, right is heavily blurred image, bottom left is F2QBokeh output, Right has difference between input and output.

real.finder
25th December 2020, 05:09
the image in http://www.avisynth.nl/users/vcmohan/manyPlus/Bokeh.html seems missing

vcmohan
26th December 2020, 07:54
Sorry for that. Capital and lower case letter usage problem. Corrected it. Hope you will get it now.

real.finder
26th December 2020, 16:38
Sorry for that. Capital and lower case letter usage problem. Corrected it. Hope you will get it now.

yes, it's ok now, thanks

real.finder
15th January 2021, 15:44
can GBlur rad limit be more than 8? I was plan to replace BinomialBlur in YAHRmask with gblur for HBD but seems gblur rad limit don't allow that

Variance = 4.0
rad=round(Variance*2)
#~ sh_Padding(rad,rad,rad,rad).GBlur(rad,sqrt(Variance)).crop(rad,rad,-rad,-rad)
BinomialBlur(Variance)

the code above show they are similar, but the Variance=4 is the maximum I can use, by the default settings in YAHRmask it has to be 10

vcmohan
3rd February 2021, 14:05
can GBlur rad limit be more than 8? I was plan to replace BinomialBlur in YAHRmask with gblur for HBD but seems gblur rad limit don't allow that

Variance = 4.0
rad=round(Variance*2)
#~ sh_Padding(rad,rad,rad,rad).GBlur(rad,sqrt(Variance)).crop(rad,rad,-rad,-rad)
BinomialBlur(Variance)

the code above show they are similar, but the Variance=4 is the maximum I can use, by the default settings in YAHRmask it has to be 10
Now I made it accept upto 32 for rad. Please check.

real.finder
3rd February 2021, 16:58
Now I made it accept upto 32 for rad. Please check.

thanks, it's seems work fine, time to replace BinomialBlur :)

real.finder
16th April 2021, 12:54
hi again

first why F2QTest/F2Quiver both need Field Based input?

Second:- F2QTest in small (SD) resolution the spectrum seems not display fully

real.finder
17th April 2021, 12:50
I find crash case

ColorBars(width=640, height=480, pixel_type="yv12")
AssumeFieldBased()
ScriptClip("F2Quiver(5,5,60,-35,20,1,2,120,60,8,4,1,70,80,4,3,4,40,42,18,morph =false,gamma=0.04)")
Prefetch(4)

same with F1Quiver(5,39,200,1, uv = true) and I think any plugin use fftw like F2QTest and others same as https://github.com/pinterf/fft3dfilter/commit/412c3237c3143797e4543499833a7a64d4766257

vcmohan
19th April 2021, 14:02
hi again

first why F2QTest/F2Quiver both need Field Based input?
If not field based, there can be displacement between two halves of interlaced frame. This causes step like variation in alternate scan lines and it will not be possible to get meaningful fft. If there is no displacement use assumefieldbased()

Second:- F2QTest in small (SD) resolution the spectrum seems not display fully
When you do 2D FFT in this case first width wise 1d fft is done . Then on that height wise 1d fft is done. With real data, During 1d fft, alternate points are treated as complex component of the data. So in effect it has half the number of points width wise. The output is complex numbers. Also by a math jugglery the zero of axis of spectrum is brought to center (near about) of frame. Width wise therefore there are only 1/ 4, and height wise there will be 1/2 number of complex numbers. Since it is spectrum the complex part is 0, so only real part of freq domain data is displayed. Hope I made it clear (or more confusing?).

real.finder
20th April 2021, 17:53
thanks for explain them

I understand your point about interlaced even if Video Seasoned will not fall in it but why not use frame properties then? since it for avs+ only, this way you will have both comfort and safety

vcmohan
22nd April 2021, 12:28
thanks for explain them

I understand your point about interlaced even if Video Seasoned will not fall in it but why not use frame properties then? since it for avs+ only, this way you will have both comfort and safety

It checks whether the video has seperated fields from frame properties. If not it will give that warning. I am not too sure whether I understood you correctly.

real.finder
22nd April 2021, 12:46
It checks whether the video has seperated fields from frame properties. If not it will give that warning. I am not too sure whether I understood you correctly.

so if "progressive" (0) it will not show warning?

edit: I just tested, it's not, seems you didn't get me correctly, and seems you mean clip properties which is old and not exclusive in avs+, avs+ frame properties is same as vs frame properties

http://avisynth.nl/index.php/Internal_functions#Functions_for_frame_properties

vcmohan
23rd April 2021, 13:30
Thanks for the link. I find that I am hopelessly outdated not following the thread regularly. All along I have been using what was indicated in a thread of avisynth+ in the initial stages and parent avisynth documentation. There are somethings not clear. It states one can get frame properties at run time only. This means they can change frame to frame. In case of vapoursynth if some properties change from frame to frame, in clip properties their value is set as 0. Is similar such arrangement happens in avs+ also or all frame properties will remain constant? I am asking this because in middle of clip an error condition should not arise.

real.finder
23rd April 2021, 14:21
Is similar such arrangement happens in avs+ also or all frame properties will remain constant?

don't know, but I think they changed so in middle of clip an error condition should arise, but I think you can make a code for this cases by seperated fields then Weave in these frames only, in any case we should wait pinterf about this or better ask him directly

vcmohan
24th April 2021, 07:51
I am also a bit confused as to how I can use it. On reading the documentatio I found following
Property get
Get properties by name or as a whole
Common parameters:
clip c,
string key_name,
integer "index", (default 0): for zero based indexing array access
integer "offset" (default 0), similar to the other runtime functions: frame offset (e.g. -1: previous, 2: next next)

I find clip is used not frame
I tried in the create section
if (has_at_least_v8)
if (propGetInt(args[0].AsClip(), "_FieldBased") == 0)
env->ThrowError("StepFilter: clip is progressive");
else
env->ThrowError("StepFilter: clip is interlaced");
It says there is no propGetInt function.
when I use in GetFrame section again I get message stating that there is no such function. I am with r3276.

real.finder
24th April 2021, 12:53
frame properties added in avs+ 3.6 IIRC, I think r3276 is 3.5

anyway, the last stable avs+ is 3.7 (r3382)

in any case you can make the plugin work in both cases (avs+ 3.5 and avs+ 3.6+) and even in 3.6+ when there are no frame properties like how most of these plugins works https://github.com/Asd-g?tab=repositories and https://github.com/pinterf?tab=repositories

vcmohan
24th April 2021, 13:59
frame properties added in avs+ 3.6 IIRC, I think r3276 is 3.5
version() on my system states it is 3.6.0

Almost all of my plugins excepting those operating in frequency domain do not need any other frame properties. Can I get link to any resize function source code? I understand that they need frame properties and I can get an idea of how to access them?

real.finder
24th April 2021, 14:16
this one use frame properties (not just copy them) http://avisynth.nl/index.php/Avsresize

vcmohan
25th April 2021, 07:54
Many thanks. I will go through. Hope I understand the code.
if in the script assumefieldbased() was used, will frame property _FieldBased become zero in that case? I need to check. Also it looks like that not only I need to test if version is 8 or more, whether that key in frame properties exist.

real.finder
25th April 2021, 11:22
if in the script assumefieldbased() was used, will frame property _FieldBased become zero in that case? I need to check.

I think assumefieldbased will not change _FieldBased

Also it looks like that not only I need to test if version is 8 or more, whether that key in frame properties exist.

Avsresize and many others did that, so you can make it do "if frame properties exist use it, if not then it do as it do right now (need field based clip)"

vcmohan
25th April 2021, 12:30
A bit confusing. If I use vi.IsFieldBased() for clip with seperated fields I will get true. But when I check frame properties the _FieldBased flag will be zero.

real.finder
25th April 2021, 12:52
I think pinterf make it do that then, and it make sense

so in this case the plugin should first check for IsFieldBased if not then check for _FieldBased and if there are no _FieldBased throw error

vcmohan
17th May 2021, 13:32
I have revised manyPlus (http://www.avisynth.nl/users/vcmohan/manyPlus/manyPlus.html) plugin and added a few new features and a new function all in frequency domain. All frequency domain functions operate as MT_SERIALIZED as FFTW3.dll has its own multi threading (is not external thread safe).
F1Quiver has a new filter type which makes it easier to specify in some cases, such as in Horizontal Noise Bars (https://forum.doom9.org/showthread.php?t=182712).
F2Quiver and F2QSharp functions have an option to modify filter behaviour using hamming function and radius parameters.
F2Qlimit is a new function that is easier to specify filters. Specially useful for the type Horizontal Noise Bars.
Added some images for the web documentation.
Will be grateful for suggestions and bug report.

kedautinh12
17th May 2021, 13:56
Thanks for your hardwork

real.finder
30th May 2021, 15:59
Many thanks. I will go through. Hope I understand the code.
if in the script assumefieldbased() was used, will frame property _FieldBased become zero in that case? I need to check. Also it looks like that not only I need to test if version is 8 or more, whether that key in frame properties exist.


the last update of avsresize has "- read frame properties from every frame (previously only from the first frame);"

I made a diff file of the changes https://www.solidfiles.com/v/eWWGjnm6gqBLr and in Attachments

don't know if it help here

kedautinh12
30th May 2021, 16:10
The file i download is avsresize_r6 diff with r5.ksh. I changed to avsresize_r6 diff with r5.zip but can't open with winrar

real.finder
30th May 2021, 16:16
The file i download is avsresize_r6 diff with r5.ksh. I changed to avsresize_r6 diff with r5.zip but can't open with winrar

it should has no extension, anyway try txt

kedautinh12
30th May 2021, 16:49
Thanks

real.finder
25th June 2021, 01:42
the changes for r5 vs r7 now in github https://github.com/realfinder/avsresize-mirror/commit/889da7a4f1b2f449fbc94dd183d6696ceffeb55f

vcmohan
15th September 2021, 08:00
I have added two functions in this plugin. 1. IFishI and 2. Circles.
IFishi corrects distortions introduced by camera lens. These include Barrel, Pin Cushion and Fish eye. The formula used for correcting Barrel and Pin Cushion distortions are different from those in DeBarrel function. Fish Eye correction has 4 versions viz: Orthogonal, Linear, Equi solid and Panoramic . The function can also convert a normal image into these 4 versions of Fish eye. Wikipedia and ALTERA Manipal DOT NET 2008 paper were used in the formulation. Test mode to see the data points for aiding in defining parameters. Arriving at proper parameters is a bit tedious.
Circles function draws concentric circles on an optionally dimmed input image. I felt the need when trying to process a fish eye image in which only part of the circular edge was seen. With this the diameter and center coordinates could be determined. May be of use.
Will be thankful for suggestions and bug reports.

vcmohan
1st November 2021, 13:34
The Barrel function of this plugin has been rewritten for two options and for speed. It is now much faster. The function FishEye corrects fish eye (wide angle lens) image and has 5 methods. Accepts all formats.

Kisa_AG
13th January 2022, 09:16
Hello!
When I'm trying to use F2Quiver (with different settings, like F2Quiver(3,4,74,84,20)), I'm getting the following error:

F2Quiver: Input must be fieldseparated.Please use either fieldbased() or assume framebased().separatefields()

But my video is progressive. Is it really works with interlaced videos only?

When I'm using AssumeFieldBased or AssumeFieldBased.SeparateFields the filter does nothing.

vcmohan
13th January 2022, 12:53
please use just assumefieldbased(). Only for interlaced data you need to use assumeframebased().seperatefields(). (There is a problem in avisynth+ nomeneclature. internally in frame properties framebased is progressive but in script it is interlaced. This is of no concern to user)

Kisa_AG
13th January 2022, 14:11
please use just assumefieldbased()

Thanks for the answer!
But in any case I cannot reproduce filter's effect shown here:
http://www.avisynth.nl/users/vcmohan/FFTQuiver/F2Quiver.htm

I'm using the following script:
ImageReader("FQInput0.png", end=99, fps = 25)
AssumeFieldBased
F2QTest(3,4,70,90,24)

I'm using the picture with frying pan from your tutorial.

My power spectrum looks different from your's, please take a look on screenshot.

When I'm swithing from F2QTest to F2Quiver(3,4,70,90,24), the picture looks like original, no visible filtration at all.
Am I wrong somewhere?

vcmohan
14th January 2022, 12:52
I just checked and I get image identical to what was shown in tutorial. I find my input was a jpg file. I could not access your output as the forum has not yet approved it.

vcmohan
2nd March 2022, 12:41
Thanks for the answer!
But in any case I cannot reproduce filter's effect shown here:
http://www.avisynth.nl/users/vcmohan/FFTQuiver/F2Quiver.htm


My power spectrum looks different from your's, please take a look on screenshot.

When I'm swithing from F2QTest to F2Quiver(3,4,70,90,24), the picture looks like original, no visible filtration at all.
Am I wrong somewhere?

It appears that the moderator has not yet permitted the attachment.

vcmohan
2nd March 2022, 12:46
I have added a new function F1QClean to this plugin. It operates on one dimensional Fourier transform row by row. Undesirable frequencies can either be cleaned in a band or individually limited. One need to run F1QTest prior to be able to specify frequency values. This is much easier to use than the more versatile F1Quiver.

StainlessS
2nd March 2022, 13:22
@Kisa_AG,
Quicker and just as easy to post image to Postimage.org,
See here[How to upload pictures]:- https://forum.doom9.org/showthread.php?p=1959414&highlight=postimage#post1959414

EDIT: Actual image shows in forum post.

vcmohan
3rd March 2022, 13:20
Thanks for the answer!
But in any case I cannot reproduce filter's effect shown here:
http://www.avisynth.nl/users/vcmohan/FFTQuiver/F2Quiver.htm

I
My power spectrum looks different from your's, please take a look on screenshot.

When I'm swithing from F2QTest to F2Quiver(3,4,70,90,24), the picture looks like original, no visible filtration at all.
Am I wrong somewhere?

As you stated the power spectrum looks completely different. As the dominant noise frequencies are differently oriented it is no wonder it has not filtered. I can not guess what went wrong except to request you to please check again your input image and your actual script.

vcmohan
4th March 2022, 12:30
giá gmail cổ (https://groups.google.com/g/bangmail) up phụ shop nÃ*o nhá»› thanks em nha em lÃ* khách quen cá»§a shop đó hi hi ^^

sorry. English translation is required.

kedautinh12
4th March 2022, 12:41
sorry. English translation is required.

It's spam advertisers. You can ignore it and it's Vietnamese language :D