09-10-2020, 05:51 AM
|
|
Site Staff | Video
|
|
Join Date: Dec 2002
Posts: 13,994
Thanked 2,542 Times in 2,161 Posts
|
|
I've been on several sites this week, seeking Avisynth help from specific people, for various projects. Somebody here (themaster1) suggested that F1Quiver ( http://avisynth.nl/index.php/FFTQuiver) could solve my current herringbone problem. He's mentioned it to other members here a number of times, most recently on a thread ( http://www.digitalfaq.com/forum/vide...html#post54703) back in 2018.
Specifically, this was suggested to me:
Code:
F1Quiver(last,"custom", 25, 100, 50, 35, 70,0, 80,90, 120,30,test =true,row = 155, erow=300,degree = 8,gamma =0.2 )
Note: I wonder about the origin of it. Odd spacing.
Alas, it's not working.
Did anybody here ever try themaster1's script suggestions, and have it work for them?
My script comes back with
Code:
Script error: Invalid arguments to function 'F1Quiver'.
That happens even with no arguments:
Code:
AVISource("x.avi")
F1Quiver()
ie default settings, nothing else.
I have both Avisynth 2.6 MT x86, and Avisynth+ x64 installed, and the DLLs are present in the accompanying plugin folders. This plugin is available for both, but neither work.
Any idea what is wrong?
FYI, this filter is a nightmare to use. Lack of useful documentation, no meaningful samples. I don't think anybody other than the author understands it, and I've never read where anybody has used it successfully. I've never seen a before/after clip, and cannot reproduce any useful results.
For example, if you the script has the "degree" syntax, the error states that F1Quiver does not have an argument named "degree". If you remove degree, the error then starts that you must have the value "degree". It's a pretty f'd up script.
The author's "examples" function, but it's not useful. No idea what's going on with those, zero documentation, zero samples to illustrate with those do.
BTW, the original conversation was started at VH, hoping to get the attention of jagabo and johnmeyer (which it did), but neither of their solutions work.
https://forum.videohelp.com/threads/...ngbone-removal
|
Someday, 12:01 PM
|
|
Ads / Sponsors
|
|
Join Date: ∞
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
|
|
|
09-10-2020, 08:41 AM
|
|
Free Member
|
|
Join Date: Dec 2017
Location: Norway
Posts: 1,685
Thanked 460 Times in 394 Posts
|
|
Which version of it are you using? There are two different versions of it that have different ways of specifying the arguments, I've never gotten the newer one to work.
Older one linked here (2.5 version) is the one I have used.
EDIT: Yeah, the test parameter is not on the newer one, that one has a separate function for it.
Will have to test FQPlus for myself, seems it's been updated recently so maybe it works.
Last edited by hodgey; 09-10-2020 at 08:56 AM.
|
09-10-2020, 09:30 AM
|
|
Site Staff | Video
|
|
Join Date: Dec 2002
Posts: 13,994
Thanked 2,542 Times in 2,161 Posts
|
|
If you have any success, let me know.
The reason for trying to use it was to reduce/remove herringbone noise. But I really have no faith in it working. The same author's previous FanFilter never worked for me, and now this doesn't either. I've never read where anybody has had any success with it to date.
|
09-10-2020, 09:50 AM
|
|
Free Member
|
|
Join Date: Dec 2017
Location: Norway
Posts: 1,685
Thanked 460 Times in 394 Posts
|
|
I've only really had success in using it for removing high-frequency noise like residual Y/C artifacts from composite capture of VHS tapes (via e.g my ES10) that weren't filtered out by the Y/C filter and similar herringbone noise caused by bad capacitors. That stuff is outside the bandwidth of the VHS tape though (usually low-pass filtered by VCRs at around 3 MHz for PAL, don't remember what it is for NTSC.) so it's straight forward to just apply a low-pass filter that removes everything above a certain point. I don't know if it would work as well for the video in the thread as there is a lot of actual video data in the same frequency band, even more so if the frequency of the interference is not uniform over the video.
|
04-24-2023, 03:23 PM
|
|
Free Member
|
|
Join Date: Sep 2010
Location: Behind you
Posts: 473
Thanked 30 Times in 26 Posts
|
|
I also tried F1Quiver--too many parameters and too few documentation. Could never really get anywhere with it.
I have had better luck with the Fan and F1QClean functions inside manyPlus. Both work, but in my experience the latter allows more latitude in detecting the signal to filter out, allowing less destruction.
Because JPEGs uploaded here are downsampled, LS recommended that I attach a zip file with the various screenshots of these functions being used. Attached are the unfiltered clip, after Fan, after F1QClean, after F1QClean and RemoveDirt, after F1QClean/RemoveDirt/FFT3DFilter, and after Fan/RemoveDirt/FFT3DFilter.
Looking at the images, F1QClean actually removes less than Fan, but what it leaves behind can be removed by the two later functions. In the photos after F1QClean/RemoveDirt/FFT3DFilter versus Fan/RemoveDirt/FFT3DFilter, you can see that using Fan first affects the bridge of her nose and her left earring more than if F1QClean is used first.
Here are the functions used (with progressive footage)
Code:
Fan(last,edge=false,span=5,uv=true,plus=0.02,minus=0.02)
F1QClean(100,186,option=0,span=5)
RemoveDirtSMC(25).RemoveDirtSMC(25)
FFT3DFilter(sigma=2)
My layperson explanation:
With Fan, the higher the span, the stronger the effect but the greater chance of destroying detail. Plus and Minus control the strength within the span used. 0.01 is the strongest, because "Only data which are beyond these tolerances from average are modified" ( http://www.avisynth.nl/users/vcmohan/manyPlus/Fan.html)
With F1QClean, the higher the first value, the less destructive the filter. You should keep increasing the first number as high as possible where you still see that the interference is removed. Setting it low will remove the interference, but also destroy the image. The second value is the limit of frequencies (?) that you want to filter out. The goal is to reduce the distance between the first and second values as much as you can while achieving the desired effect. Again, set span as low as possible to remove the interference.
Hopes this helps!
Unfiltered
unfiltered.jpg
After F1QClean/RemoveDirt/FFT3DFilter
You must be logged in to view this content; either login or register for the forum. The attached screen shots, before/after images, photos and graphics are created/posted for the benefit of site members. And you are invited to join our digital media community. |
|
04-25-2023, 04:28 AM
|
|
Free Member
|
|
Join Date: Feb 2011
Location: France
Posts: 548
Thanked 119 Times in 103 Posts
|
|
you got lots of chroma noise and chroma shift to begin with. If you can upload a video sample i'll try to see what f1quiver can do
|
04-25-2023, 09:59 AM
|
|
Free Member
|
|
Join Date: Sep 2010
Location: Behind you
Posts: 473
Thanked 30 Times in 26 Posts
|
|
Thanks. Any tips are appreciated.
|
04-25-2023, 12:15 PM
|
|
Free Member
|
|
Join Date: Sep 2010
Location: Behind you
Posts: 473
Thanked 30 Times in 26 Posts
|
|
Also, while you are at it, if you have any suggestions for the noise in the attached clip it would also be appreciated. I tried to reduce it with RemoveDirt and SpotLess, which helped a bit. (SpotLess seemed to work better than vsCnr2).
|
04-26-2023, 02:07 PM
|
|
Free Member
|
|
Join Date: Feb 2011
Location: France
Posts: 548
Thanked 119 Times in 103 Posts
|
|
Quote:
Originally Posted by Winsordawson
Thanks. Any tips are appreciated.
|
You can try this
Code:
v=LWLibavVideoSource(source="test.mp4",format="yv12")
a=LWLibavAudioSource(source="test.mp4")
audiodub(v,a)
## Chroma Offset
A=Last
B=A.Greyscale()
Overlay(B,A,X=5,Y=2,Mode="Chroma") #
## Remove Chroma Noise (in Y'UV):
input=last
U = UToY().SpotLessUV()
V=VToY().SpotLessUV() #
YToUV(U,V,last)
# Deinterlacing BAD DEINTERLACING with QTGMC and inputtype
qtgmc("slower",inputtype=2,border=true,denoiser="dfttest",edithreads=4)
# Remove Chroma Noise in RGB:
ConverttoRGB32(matrix="rec601",interlaced=false)
LoadVirtualDubPlugin("C:\Program Files (x86)\Virtualdub\plugins32\ccd_sse2.vdf", "CCD", 0)
CCD(10,1) # strength: 0 to 100 , default is 30, 5-15 advised in most cases
converttoyv12(matrix="Rec601",interlaced=false)
# Remove Herringbones
main=last
main
bicubicresize(480,320) # NTSC
spline64resize(720,480) # NTSC
lsfmod
filtered=last
main
mt_edge(mode="prewitt",chroma="copy").mt_expand #mode prewitt = agressive
mymask=last
mt_merge(main, filtered, mymask)
# Destripe, remove dot crawl :
mergeluma(DeStripe(2,3,16),1)
|
The following users thank themaster1 for this useful post:
Winsordawson (04-27-2023)
|
04-27-2023, 02:05 PM
|
|
Free Member
|
|
Join Date: Sep 2010
Location: Behind you
Posts: 473
Thanked 30 Times in 26 Posts
|
|
Thanks for the code. I was able to skip the mask by increasing the strength of DeStripe. CCD worked great. I guess you don't have qualms about converting to RGB like Sanlyn did...
I assume F1Quiver didn't work here, since it wasn't used? And where can you find SpotLessUV()? Is it the same as SpotLess? I can't find it anywhere....
|
04-27-2023, 02:16 PM
|
|
Free Member
|
|
Join Date: Feb 2011
Location: France
Posts: 548
Thanked 119 Times in 103 Posts
|
|
yeah it's spotless basically one of the later versions the dev optimized for UV processing
|
04-27-2023, 03:53 PM
|
|
Free Member
|
|
Join Date: Sep 2010
Location: Behind you
Posts: 473
Thanked 30 Times in 26 Posts
|
|
Thanks. Do you have any tips for this ghosting issue above the woman's head?
ghosting.jpg
|
All times are GMT -5. The time now is 02:52 AM
|