pinterf/FFT3dGPU

Block size and overlaps parameter check needed

Opened this issue · 0 comments

Only power-of-2 blocksizes between 4-512 are valid, small and big sizes are clamped, others are accepted but how they work is not clear. Overlap values: seemingly only blocksize/2 works properly.

(source)
bw=8
bh=bw
ow=2
oh=ow

bt=2
c1 = FFT3DGPU(sigma=16,sigma2=6,sigma3=1,sigma4=0,bw=bw,bh=bh,ow=ow,oh=oh,bt=bt,plane=0,precision=2)
c2 = FFT3DFilter(sigma=16,sigma2=6,sigma3=1,sigma4=0,bw=bw,bh=bh,ow=ow,oh=oh,bt=bt,plane=0)

StackVertical(c1, c2, Diff(c1, c2))

Function Diff(clip src1, clip src2)
{
  return Subtract(src1.ConvertBits(8),src2.ConvertBits(8)).Levels(120, 1, 255-120, 0, 255, coring=false)
}


# blocksize overlap
# 32 4 FFT3dGPU artifacts
# 16 4 garbage
# 16 6 garbage
# 16 8 OK
# 16 2,4 garbage
# 8 2 garbage
# 8 4 OK

See also at
https://forum.doom9.org/showthread.php?t=89941&page=47