astroelectronic at t-online.de
Wed Oct 13 23:50:31 EEST 2021
Am 12.10.2021 um 19:29 schrieb Michael Koch:
> Am 12.10.2021 um 18:52 schrieb Paul B Mahol:
>> On Tue, Oct 12, 2021 at 10:55 AM Michael Koch
>> <astroelectronic at t-online.de>
>>> I have a question about the "fftfilt" filter. What's the default value
>>> of the weight_U and weight_V options? I'm asking because I get an
>>> unexpected result.
>>> This command line creates my input image for testing:
>>> ffmpeg -f lavfi -i color=black:s=300x50 -lavfi
>>> -frames 1 -y test.png
>>> This is the fftfilt lowpass example from the official documentation:
>>> ffmpeg -i test.png -vf fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)' -y
>>> Problem: The output has a greenish tint.
>> Expressions by default for U and V are copied from Y if are unset.
>> filter works only in YUV or gray space thus in above combination one
>> green tint.
I'm trying to make the filter's cutoff frequency independant of the
image size. But that's not so easy because I don't know the size of the
FFT array. It's calculated in vf_fftfilt.c lines 185 and 297.
This calculation is difficult (and slow) to replicate in an expression,
because either a loop or a logarithm is required.
Would it be possible to add two new variables so that the FFT array size
can be used in an expression?
ARRAY_H = 1 << rdft_hbits
ARRAY_V = 1 << rdft_vbits
It the array size is known, things would become much easier.
More information about the ffmpeg-user