Log in

View Full Version : fft3dGPU 0.8.2


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19

nurbs
19th August 2008, 19:41
A question for the people running this filter on HD content: What speed do you get and what graphics card do you have? I'd like to know if it's possible to get 10 fps at 1080p with default or slower settings with a cheap graphics card like a Radeon HD 3850.

Adub
19th August 2008, 20:31
I don't think you'll have any problems. I can't say for sure, but I have used fft3dgpu on so HD material before, and it works realtime. That was 720p, but 1080p should work fine, provide you have enough memory.

Blue_MiSfit
19th August 2008, 21:59
On Vista, with an 8800gt, I can run two instances in very near real-time. Fast enough to not affect encoding speed at all (since I end up with ~10fps in CRF mode on my 3 GHz Q6600).

XP is a little slower, since it's not as good with managing video memory and has a tendency to do stupid things in this situation. For example, if you play a video while encoding with fft3dgpu, and are at near max memory usage (easily 512MB for one instance on 1080p), I often get corrupted video output from Haali renderer. Never happens on Vista ;)

~MiSfit

nurbs
20th August 2008, 11:31
Thank you. :)

Quark.Fusion
23rd August 2008, 08:31
fft3dGPU memory usage on HD content:
OS is Vista x64 with 8GB RAM, GPU is 8800GT with 512MB RAM

copying avfs mounted avi file with SetMemoryMax(128) and without fft3dGPU:
Working Set = 168 504, Private = 166 120, Virtual = 242 924

with FFT3DGPU(bt=4, plane=4, sigma=3, bw=64, bh=64, ow=32, oh=32, mode=1, precision=2):
Working Set = 275 164, Private = 1 131 660, Virtual = 1 228 644
Copy OK

with GrainOptimizer(last, FFT3DGPU(bt=4, plane=4, sigma=6, bw=64, bh=64, ow=32, oh=32, mode=1, precision=2)):
Working Set = 298 772, Private = 1 155 256, Virtual = 1 254 956
Copy OK

with GrainOptimizer(FFT3DGPU(bt=4, plane=4, sigma=2, bw=64, bh=64, ow=32, oh=32, mode=1, precision=2), FFT3DGPU(bt=4, plane=4, sigma=6, bw=64, bh=64, ow=32, oh=32, mode=1, precision=2))
Working Set = 263 280, Private = 1 928 716, Virtual = 2 029 430
Copy stalled at 0%, process hanged


You can see that fft3dGPU really need about 100MB of memory, but allocating around 1GB for each instance.

Avenger007
17th September 2008, 10:17
Does anyone have that problem of fft3dGPU pausing whenever Windows is locked (windows key + L)?

OS: Windows XP SP2
Graphics Card: ATI Radeon X800 XL

talen9
17th September 2008, 10:59
Well ... maybe you have a 3D Screensaver that kicks off soon after that, and *that* is very likely to collide with FFT3DGPU :)

Avenger007
17th September 2008, 11:08
No, screensaver is set to none.

Quark.Fusion
17th September 2008, 16:38
It pauses when desktop session changes — i.e. when Vista UAC appears or other protected windows like system password promt. I'm doubt that it can be solved with current way of using GPU (as 3D-accelerator, not external device).

Avenger007
17th September 2008, 16:55
OK. I do in fact have a password prompt. Since it's an OS issue I guess I'll just have to live with it. Thanks.

Undead Sega
19th September 2008, 13:27
Can MCBob work with this? If so, will it improve speed whatsoever?

Adub
20th September 2008, 19:43
What?? MCbob doesn't even use FFT3Dfilter, let alone need it.

So, no. MCbob won't work with this. However, if you want to improve speed, use the MVtools Multi-threaded version that is floating around.

Navalynt
1st October 2008, 17:17
File:
Line: 216
Error Code: D3DERR_INVALIDCALL (0X8876086C)
Calling: Creating Device

Staxrip gives the following error in the log:
x264 Encoder failed with exit code -1
avis [error]: unsupported input format (DIB )
x264 [error]: could not open input file 'E:\Ripped Discs\MainMovie\Enterprise\Disc 2\ENTERPRISE S2D2 E1\VIDEO_TS\VTS_01_1.avs'

I'm running Windows 2008 Server x64 on my home server. The administrative login auto logs and launches Mediaportal which is output to my TV. I use RDC to launch another session in which I do all of my compression which has served me well up until I tried using FFT3DGPU. I can start a project, it goes all the way through the first and second pass, but at the end of the second pass is when I get the pop-up error at the top.

AVI Synth Filters:
MPEG2Source("E:\Ripped Discs\MainMovie\Enterprise\Disc 2\ENTERPRISE S2D2 E1\VIDEO_TS\VTS_01_1.d2v")
Crop(4,0,-4,-0)
FFT3DGPU(sharpen=0.4)
LanczosResize(720,400)

Can anyone shed some light on this problem? I thought maybe it had to do with the CTRL -ALT - DEL issue reported earlier on this forum so I kept my laptop logged in and made sure the screensaver was off but it still did the same thing. My onboard video is a 780a SLI and I have it set in hybrid SLI with an 8400GS which essentially makes a 8500. I did try using a Radeon HD 3870 which yielded the same results so I'm really doubful it has anything to do with the hardware I'm using.

talen9
1st October 2008, 21:22
I think that the session you're opening via Remote Desktop can't directly access Direct3D "devices", hence the error.
I could be wrong, of course, but your setup is a bit .... unusual.

Blue_MiSfit
2nd October 2008, 03:30
yup - RDP breaks Direct3d, every time :(

~MiSfit

Leak
2nd October 2008, 09:54
Using VNC instead of Remote Desktop should do it...

VNC transmits and controls the existing display, while remote desktop creates a new display with a virtual graphics card.

swaaye
6th October 2008, 19:16
I've been playing around with filtering chroma as well as luma and have discovered that running two separate instances of fft3dgpu that do the filtering separately is much faster. I'm running a HD 3850 and a X800XL (two comps). Both showed a major speed gain. The HD 3850's GPU utilization is higher this way, which seems to mean that running separate instances somehow uses the GPU more efficiently.

fft3dgpu(sharpen=0.4).fft3dgpu(plane=3,sigma=1.5)

is much faster than

fft3dgpu(plane=4,sharpen=0.4)

I'd blame the sharpen that's happening on both chroma and luma with the lower call, but the GPU utilization being higher with the separate instances makes me doubt that. I tested performance by loading the AVS into Virtualdubmod and doing preview input and deselecting video output in the status window to let it go to max speed.

BTW, filtering chroma as well seems to be something that x264 really likes for compressibility. And it definitely cleans up some warbly/banded/ugly color in some darker scenes on the TV show I'm working on. I've also given up on using precision=2 because I simply can not see any visual improvement with it and it causes a serious speed loss. Anyone else have anything to say on this?

Quark.Fusion
7th October 2008, 07:18
Precision=2 is also causes huge speed loss for me (8800GT 512m, Vista x64), also both precision and second instance (if run on same data) uses more memory, which can cause memory overflow on HD content.

AFAIK, fft3dGPU uses parallel processing trick by requesting next frame while GPU work on current one.

swaaye
7th October 2008, 15:35
AFAIK, fft3dGPU uses parallel processing trick by requesting next frame while GPU work on current one.
That sounds similar to the double/triple buffering the GPU would do when doing 3D rendering as usual and for the same reason.

Avenger007
7th October 2008, 16:01
Do you notice a major slowdown when calling fft3dgpu twice when preceded by heavy CPU-bound filters, as opposed to calling it once?
I do.

swaaye
7th October 2008, 20:37
Well, the most CPU dependent filter that I use before fft3dgpu is TIVTC (tfm+tdecimate). So I don't load the CPU down much, thanks to the existence of fft3dgpu.

However, when I run a full speed test of the AVS w/o x264 hogging the CPU, the frame rate that the GPU pulls seems to be higher than it manages with x264 going too. For example, while within the virtualdubmod preview I may see ~40 fps from the script, during the encode process the GPU seems to struggle to manage 27 fps. CPU usage will be well under 100%, meaning the GPU is the speed bottleneck. So yes, some aspect of the CPU being busy, or all the threads being thrown around by x264, impacts how fast fft3dgpu can go compared to when it has the CPU mostly to itself.

3ngel
15th October 2008, 15:01
Hi,
i'm going to use fft3dGPU in conjunction with a CPU fft3d in order to obtain the most throughput from both.
I would like to know, the default parameters of the actual fft3dgpu correspond to the default parameters of standard CPU fft3d?
If so what are the parameters i have to pass to fft3dGPU in order to obtain the same defaults of the CPU version?
Moreover passing the same parameters to both does it gives the same results?
I read that sometimes can be differences.
The goal is to obtain the same frame result with both CPU and GPU fft3d
Thanks

totya
4th November 2008, 00:16
Hi! If source is very noised, which settings recommended?

sample (http://fapomatic.com/show.php?loc=0844&f=noise.png)

My avs now this:

Undot()
FFT3DGPU(mode=1, precision=2, sigma=30, interlaced=FALSE)

Thx :)

Adub
4th November 2008, 05:24
sigma=30????

Your video would turn into a soupy mess. I suggest you read up on further discussions in the Avisynth Usage section, and maybe take a look at some prebuilt denoising functions such as MCTemporalDenoise and MC_Spuds. They have special profiles that make it easier for selections to be made by people who are new to exact settings.

smok3
5th January 2009, 11:15
random finding;
if your source is animation with lots of ferlaufs then bt=4 reduces a lot of banding as it seems.

example;
#yuv2 video here
FFT3DGPU(sigma=4, sharpen=0.5, plane=0, mode=1, bt=4) # luma
FFT3DGPU(sigma=10, plane=3, mode=1, bt=4) # chroma

johnmeyer
27th January 2009, 05:27
I have a problem with horizontal lines. This doesn't happen with fft3dfilter.dll.

I am using fft3dGPU.dll version 0.8.2.0. I am using the fftw3.dll filter dated 1/30/2004. This picture shows the horizontal lines:

http://i177.photobucket.com/albums/w208/johnmeyer/FFT3dGPUscreenshot.jpg

Here is my simple test script:

AVISource("E:\Documents\Willian and Winks.avi")
fft3dGPU(plane=0,sigma=22,interlaced=true)

Yes, I know that is a really large value for sigma, but it makes it easier to see the problem. The problem is there even with smaller values.

My source video is 720x480 DV AVI.

Navalynt
27th January 2009, 05:47
Maybe try using a deinterlace filter before fft3dgpu? I always script as follows:

SOURCE
FIELD
CROP
RESIZE
NOISE (fft3dgpu)

I'm not sure if there is a better order but it seems logical to me that you would load your source, do any field work needed (deinterlace, ivtc), crop the black off, resize the picture, then run a noise filter (fft3dgpu) as the last step to clean up the output from the previous steps. I've never even heard of the interlaced option in fft3dgpu before but using fft3dgpu(sigma=1.5,sharpen=0.4) seems to be good enough to clean up DVD and BR sources during encoding.

johnmeyer
27th January 2009, 07:48
Well, if fft3dGPU doesn't support the "interlaced=true" function that is available in fft3dfilter, that would certainly explain it. I tried to search both this thread and elsewhere to get a list of which functions of the fft3dfilter are not supported in the latest fft3dGPU release, but I couldn't find a concise list. Having said that, fft3dGPU does throw an error message if I used "bt" and many other settings, and did NOT throw and error with the interlaced=true, which made me think it supported interlacing.

So, I'll try this generic way of handling interlaced material with a temporal filter:

SeparateFields()
even = SelectEven(last).fft3dfilter(plane=0,sigma=22)
odd = SelectOdd(last).fft3dfilter(plane=0,sigma=22)
Interleave(even, odd)
Weave()

Let's see how this works ...

Yup, that gets rid of the lines. However, when I benchmark doing a video analysis pass with the above script, I get lower fps than using the native fft3dfilter filter. I have a nVidia 9800GT, so I assume that it is supported by this GPU version of fft3dfilter.

Oh well, it was worth a try. With this new 3.2 GHz i7 computer the native fft3dfilter goes pretty fast, and I suspect the difference between the GPU and this processor is small.

Navalynt
27th January 2009, 08:15
Well, instead of deinterlacing the picture so it's progressive and feeding it into ff3dgpu once you're processing the fields separately. I think that's making the performance hit.

Is there any particular reason you are not using FieldDeinterlace or yadif? That way the picture is built as one full frame and processed once by ff3dgpu.

johnmeyer
27th January 2009, 08:34
I don't want to deinterlace. This is interlaced material and will be shown on an interlaced display, so it will look better if I keep it interlaced. As you know, deinterlacing always results in temporal degradation (and possibly spatial as well). If you have to watch on a progressive display, then that degradation is unavoidable, and you try to do the best deinterlacing possible. On a display that can display interlaced material, deinterlacing something that is interlaced is never the right thing to do. So, that's why I am not doing it in this case.

Navalynt
27th January 2009, 09:00
I don't want to deinterlace. This is interlaced material and will be shown on an interlaced display, so it will look better if I keep it interlaced. As you know, deinterlacing always results in temporal degradation (and possibly spatial as well). If you have to watch on a progressive display, then that degradation is unavoidable, and you try to do the best deinterlacing possible. On a display that can display interlaced material, deinterlacing something that is interlaced is never the right thing to do. So, that's why I am not doing it in this case.

Ahh, makes sense. Glad to hear you fixed the banding!

johnmeyer
27th January 2009, 10:03
Thanks for the tip on checking the interlacing. I guess I should have spotted that.

blubberbirne
5th February 2009, 21:03
File:
Line: 216
Error Code: D3DERR_INVALIDCALL (0X8876086C)
Calling: Creating Device

Staxrip gives the following error in the log:
x264 Encoder failed with exit code -1
avis [error]: unsupported input format (DIB )
x264 [error]: could not open input file 'E:\Ripped Discs\MainMovie\Enterprise\Disc 2\ENTERPRISE S2D2 E1\VIDEO_TS\VTS_01_1.avs'

I'm running Windows 2008 Server x64 on my home server. The administrative login auto logs and launches Mediaportal which is output to my TV. I use RDC to launch another session in which I do all of my compression which has served me well up until I tried using FFT3DGPU. I can start a project, it goes all the way through the first and second pass, but at the end of the second pass is when I get the pop-up error at the top.

AVI Synth Filters:
MPEG2Source("E:\Ripped Discs\MainMovie\Enterprise\Disc 2\ENTERPRISE S2D2 E1\VIDEO_TS\VTS_01_1.d2v")
Crop(4,0,-4,-0)
FFT3DGPU(sharpen=0.4)
LanczosResize(720,400)

Can anyone shed some light on this problem? I thought maybe it had to do with the CTRL -ALT - DEL issue reported earlier on this forum so I kept my laptop logged in and made sure the screensaver was off but it still did the same thing. My onboard video is a 780a SLI and I have it set in hybrid SLI with an 8400GS which essentially makes a 8500. I did try using a Radeon HD 3870 which yielded the same results so I'm really doubful it has anything to do with the hardware I'm using.

Same Error here, but i'm using Windows Vista x64 SP1 with nvidia Geforce gtx260 driver 181.22.

prokhozhijj
12th February 2009, 11:01
I've got following error message

File:
Line: 272
Error code: D3DERR_INVALIDCALL(0x8876086c)
Calling: Reset Device

This error constantly happens when I lock then unlock computer (Win+L
or Ctrl-Alt-Del -> Lock computer).

About me:
-------------------
OS Windows Vista SP1 Ultimate, 32bit

RAM: 3Gb
CPU: Intel Dual Core 6700

Graphic card: NVidia Geforce 8800 GTS (driver version: 181.22, Release
Date: January 22, 2009)

I think that Windows resets graphic card when I'm locking computer. Is this can be fixed in next release?

Leak
12th February 2009, 14:38
I think that Windows resets graphic card when I'm locking computer.
Exactly.
Is this can be fixed in next release?
If you're quick it can probably be fixed in the next release of Windows, yes.

np: Deadbeat - Night Stepping (Roots And Wire)

Dreassica
13th February 2009, 16:22
ON my 4870x2 it seems fft3dgpu adds a few pixels wide slice vertically in the middle of the frame when using plane 0 and 4.

swaaye
16th February 2009, 06:29
ON my 4870x2 it seems fft3dgpu adds a few pixels wide slice vertically in the middle of the frame when using plane 0 and 4.

Could be a crossfire issue. FFT3DGPU doesn't work with dual card setups. A single 4870 is overkill all by itself anyway.

swaaye
16th February 2009, 06:36
SeparateFields()
even = SelectEven(last).fft3dfilter(plane=0,sigma=22)
odd = SelectOdd(last).fft3dfilter(plane=0,sigma=22)
Interleave(even, odd)
Weave()

Yup, that gets rid of the lines. However, when I benchmark doing a video analysis pass with the above script, I get lower fps than using the native fft3dfilter filter. I have a nVidia 9800GT, so I assume that it is supported by this GPU version of fft3dfilter.

Oh well, it was worth a try. With this new 3.2 GHz i7 computer the native fft3dfilter goes pretty fast, and I suspect the difference between the GPU and this processor is small.

Your code snippet doesn't use FFT3DGPU. Am I right in assuming that you tested that script with FFT3DGPU and not FFT3DFILTER? I am confused by what you're saying there. And what's with sigma=22? That is an incredibly high value for sigma that will turn the frames into soupy mushy goo.

The advantage of using FFT3DGPU is that your Core i7 will be able to focus on everything other than noise filtering. That's a major time saver. A 9800GT should be a beast for processing with FFT3DGPU (my friend Navalynt uses one). With 480p material, it ought to be able to manage well over 60 fps running a single FFT3DGPU call with default settings.

Unfortunately, I've never messed with applying FFT3DGPU to interlaced material. One thing to note about FFT3DGPU however is that plane=4 is slower than running a separate plane=3 instance.

johnmeyer
16th February 2009, 18:36
Your code snippet doesn't use FFT3DGPU. Am I right in assuming that you tested that script with FFT3DGPU and not FFT3DFILTER?
Yeah, good catch. I definitely DID use FFT3DGPU when I did the comparison between it and the original FFT3DFilter (that's why I got different times!). However, I stupidly copied the wrong code snippet -- the two windows were open at the same time and I'm sure I just clicked on the wrong one. Probably late at night ...

swaaye
18th February 2009, 08:53
johnmeyer: are you cropping or resizing before running the video thru FFT3DGPU? I've found that feeding FFT3DGPU material that isn't in "compatible" multiples of width/height will give you those line distortions. I think it's related to the block width and height that FFT3DGPU uses (which are adjustable). Try running FFT3DGPU before both crop and resize so it's fed your 720x480 original.

johnmeyer
18th February 2009, 17:00
johnmeyer: are you cropping or resizing before running the video thru FFT3DGPU? I didn't do anything to the video. It was straight 720x480 DV AVI video.

totya
18th February 2009, 17:53
I didn't do anything to the video. It was straight 720x480 DV AVI video.

Sample video, please...

johnmeyer
18th February 2009, 18:14
Sample video, please...

I did post a still from my video in my initial post:

http://forum.doom9.org/showthread.php?p=1242253#post1242253

Here's a link to one second of video from the larger test clip. I just cut this with VirtualDub, using "direct stream copy." This link good for seven days:

https://www.yousendit.com/download/U0d4eFVYQzNCTWwzZUE9PQ

I'm not sure why anyone is interested in this. I think I pretty clearly identified the problem as being caused by the fact the fft3dGPU does NOT implement all of the functions of the original filter -- something that was already known -- and one of the things not implemented was the ability to deal natively with interlaced footage. Thus, if you include the extra steps for dealing with interlaced footage when using a temporal filter, the GPU version of the filter works without the horizontal line artifacts.

The remaining issue, however, is that on my new Intel i7-based computer, and nVidia 9800 GT video card, there was no speed advantage to using the GPU-based version of the filter. While initially surprising, it was in the end not that surprising, at least to me, because modern CPUs have added feature sets and architectures which make them much more able to deal with media in a manner which more closely resembles a GPU or DSP. Thus, I expect over time that the "GPU trick" used to gain performance will probably not provide as big an increase in speed as we saw a few years ago, when using older-architecture processors.

totya
18th February 2009, 22:10
Here's a link to one second of video from the larger test clip.

Hi, try mode=2 with your source.

johnmeyer
19th February 2009, 01:46
Hi, try mode=2 with your source. OK, I did that. Good news and bad news.

First the good news. This gets rid of the lines.

Further good news: the operation is MUCH faster than the native fft3d filter. I rendered a test clip in 17 seconds with fft3dGPU, but that same clip, using identical settings (except for mode=2 which is not available in the modern fft3d filter), took 44 seconds.

That is very impressive.

The bad news is that the quality of the video is not the same, and the GPU version is worse. Perhaps this has to do with the mode=2 setting, or perhaps it has to do with using older code (am I correct that the GPU filter is a few versions behind fft3d?).

Anyway, here is the magnified section of the armchair in the background (this is about 1/6 of the 720x480 clip). This first image is the original clip:

http://i177.photobucket.com/albums/w208/johnmeyer/Original-1.png

Now here is the clip filtered by the native fft3d filter:

http://i177.photobucket.com/albums/w208/johnmeyer/fft3d_01.png

and finally here is that same small section of the same frame, this time filtered with fft3dGPU:

http://i177.photobucket.com/albums/w208/johnmeyer/testfft3dGPU_01.png

In both cases, I used:

sigma=11, plane=0, sharpen=0.5, interlaced=true

(and mode=2 for the GPU version).

Now don't jump all over me. I know that this is way too high a sigma value, but I find that doing this helps me understand what artifacts to look for and, as in this case, lets me see problems in the filter that will still be there with smaller values, but might be overlooked at first glance. My usual procedure is to then use the individual sigma values (sigma2, sigma3, etc.) in order to tune the filtering even further.

Anyway, back to the point. What you will see is that both filters do considerable violence to the white spots on the chair, but the GPU version completely obliterates the spots on the front of the seat cushion, and actually blurs them vertically as well as horizontally.

I found similar problems with the texture on the oak table (see my original post).

Now, could the GPU version be made to look as good if I started changing other values? Perhaps. The speedup is pretty darned hard to pass up and ignore, but my pappy always said "the quality is remembered long after the price has been forgotten," the price in this case being the extra time to use the native filter.

[edit] I just did a little more testing, and the difference is far worse than the still image shows. If I magnify the video in Virtualdub and then actually play the video at normal speed, the GPU version of the filter shows all sorts of lag and smearing, like a temporal filter. One of the great things about the fft approach to filtering is that it is far less prone to this problem. So, the results are not acceptable at all, whereas the fft3d results are, as usual, absolutely brilliant.

swaaye
21st February 2009, 21:46
Try precision=2 with fft3dgpu. fft3dgpu does run at a low arithmetic precision by default and that could be the cause (or part of the problem). It's too bad that the author of fft3dgpu hasn't been around here in a long time.

I'm still unsure of why you were getting those lines to begin with. With a 720x480 image that shouldn't happen. I took a 720x480 DVD source here that's telecined and just fed it to fft3dgpu(interlaced=true) in Virtualdub. No problems. I'm on a Phenom II with a Radeon 4670.


MPEG2Source("blahblah.d2v")
fft3dgpu(interlaced=true)

As to the speed of a CPU vs a GPU for this math, well that all depends on how well the code fits with GPU architecture. The more powerful GPUs (like your 9800GT even) have massive mathematical throughput. That's all 3D rendering is. Your 9800GT has 112 floating point processors clocked at around 1.6 GHz (good for a theoretical rate of ~500 gigaFLOPS), and has around 60GB/s RAM bandwidth. The issue however is that GPUs reach their formidable speed by having specialized architectures with many limitations. 3D rendering doesn't need the level of flexibility a CPU has and 3D is extremely parallelizable so bunches of simple, separate processors are very easily kept busy unlike with CPU tasks.

Intel is actually building a CPU/GPU hybrid to try to find a middle ground, with various compromises of course. That's called "Larrabee" if you want to read about it. AMD and NVIDIA are very serious about GPUs evolving into more flexible mathematical processing powerhouses too. Things are a changing, that's for sure. The Radeon 4870 has somewhere between 140-220% more math power than your GPU. It's the current peak out there if you ignore the dual GPU cards that don't usually work with this kind of software.

johnmeyer
22nd February 2009, 01:36
Try precision=2 with fft3dgpu. OK, I tried it, but it gave me exactly the same, poor result.

Just to make sure I am using the "latest" version, mine is 0.8.2.

I took a 720x480 DVD source here that's telecined and just fed it to fft3dgpu(interlaced=true) in Virtualdub

Note quite sure what you mean by a "telecined" source. Don't get me wrong, I know what the word means, but it sounds like you may be looking at something that started as 24p. Just to be clear, the source for my footage was SVHS videotape, and was captured using the "pass-through" on my Sony FX1 camcorder. Thus, it is quite definitely NTSC 720x480 interlaced material, with odd fields having both different spatial AND temporal information than the even fields (i.e., I guess that's the definition of interlaced).

Something I never thought to ask: Are there any settings to program or "set" the GPU in some way? Perhaps this is something that happens because of the size of the "chunks" of data being fed to the GPU. The small amount of information on the "mode" parameter indicates that it may control how much information is sent for each computation.

So, do I need to open the nVidia control panel and change some settings?

swaaye
24th February 2009, 03:19
I just don't have any pure interlaced material on hand. Best I can do is NTSC TV that is interlaced from the telecine process. So yes it's film that was originally 24 fps. Instead of inverse telecining it, I just ran it through at the full 29.97 fps and FFT3DGPU seemed fine with it.

For GPU settings, I'd just make sure that everything is set to the defaults. And perhaps try getting the newest non-beta drivers from NVIDIA for your 9800GT. Not sure what else to suggest....

Best choice seems like you said: just stick with FFT3DFILTER if you can't get FFT3DGPU to work well enough. Especially the case if you don't have tons of material to process and speed is a total non-issue.

You might want to look up a deinterlacer called TDeint. I know you don't want to deinterlace because you're outputting the video on an interlaced device, but the future doesn't seem to be interlaced. :) TDeint is a superb deinterlace filter.
http://forum.doom9.org/showthread.php?t=82264
http://bengal.missouri.edu/~kes25c/

TheBigW
21st March 2009, 14:06
Hi am having an issue with the 0.82 version when encoding an avi file. The file is 46 mins long (something i recorded with a nice hd camera). When running with fft3dfilter i get the full length, but for some reason the fft3dGPUfilter thinks its only 6 mins long. (it cuts off after a few black frames- would this be a problem?). graphics card is Nividia 8500 1GB ram. Running script through megui.

settings are:

fft3dgpu(sigma=1.5, bt=3, bw=30, bh=30, ow=8, oh=8, sharpen=1.0, wintype=2)

Is this a bug??? (theres no error report im afraid as megui doesnt recognise the error :s

swaaye
25th April 2009, 09:39
Has anyone else become completely discouraged with the noise reduction the FFT method produces? I've been using it for over a year now and the banding it causes just sticks out to me more and more.. I recently was working on Hunt for Red October and had unsolvable banding problems during the underwater sequences, even with the aid of gradfunkmirror and gradfun2dbmod. I am starting to think that the FFT processing is fundamentally flawed with how I can still find color banding even with extremely low sigma of 0.5.

I decided to try out some new noise reduction methods and found the MVTools package. Using the motion compensated MDegrain2 noise reduction has just completely ruined FFT3DGPU and FFT3DFILTER for me. :) It's so much slower, but it's also so much better IMO! No banding. Noise is removed in a way that is both fascinating and extremely effective at maintaining overall image quality. It has worked wonders for super noisy sources I've tried it on. The slowness is tragic, but I love what I see with it so I'm going to just have to deal with it.

One very unfortunate problem with FFT3DGPU vs. FFT3DFILTER is the strangely bugged bt=4 mode. Instead of the smooth, temporally stable result of FFT3DFILTER, with FFT3DGPU the remaining noise seems to flow across the screen during playback in the strangest way that's not appealing at all. I tried a wide range of settings, including exactly identical ones, but FFT3DGPU simply doesn't come close to FFT3DFILTER's result.