Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
15th March 2005, 13:57 | #21 | Link | |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,391
|
Quote:
It gives you nightmares because of the achieved high bitrates ... For pressing very noisy sources into tiny files, 6of9 is not suited, by intention.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
|
15th March 2005, 22:59 | #22 | Link | |
ReMember
Join Date: Nov 2003
Posts: 416
|
Quote:
12~22 fps maintained 16-18 720x480 Xvid Q2 |
|
16th March 2005, 23:11 | #23 | Link | |
Registered User
Join Date: Oct 2001
Posts: 195
|
I did some tests and here is the results.
The CPU is P4 1.8GHz overclocked to 2.9GHz,The VGA card is Radeon 9600 Non Pro. The source avi is an uncompressed, progressive 720x576 YV12.avi ,273 frames,almost static natural video . The avs script is : ------------- LoadPlugin("fft3dGPU.dll") Avisource("X:\YV12.avi") fft3dGPU(bla,bla) ------------- The "X:" drive is a 500 Mb RAMDiSK drive. Processed in VirtualDubMod in direct stream mode and the filtered avi is saved on the same RAM drive -no HDDs involved... It's really impossible to me to see the differences between original and filtered images, so I decide to compress the filtered avi files at later point to XviD (single pass,quant 2,no B-frames) to "visualize" the filtering. The chain is "uncompressed->fft_filter->uncompressed". Quote:
Bow to the ground to both of you Fizick and Tsp!!! Edit: text formating Last edited by vinetu; 17th March 2005 at 00:29. |
|
16th March 2005, 23:57 | #24 | Link |
Registered User
Join Date: Aug 2004
Location: Denmark
Posts: 807
|
thanks for the feedback. Wonder if someone with a Geforce 6800 Ultra SLI could test this filter
vinetu: Please note that if bw or bh is not a power of two (4,8,16,32,64,128,256,512) it's rounded up to the next power of two 48 -> 64. This is not the case when using fft3dfilter because it uses fftw. Also it should be faster to compress directly to XviD when using fft3dGPU because the waisted CPU cycles when waiting on the graphics card are used the encode the last processed frame (if the program is multithreaded (virtualdubmod is)). |
17th March 2005, 00:22 | #25 | Link |
Registered User
Join Date: Oct 2001
Posts: 195
|
Thank You tsp!!!
In addition to speed tests - there is no difference in speed between AGPx8 and AGPx4 modes here, so I guess PCI-E cards should have equal performance to AGP ones (if core chip/memory is the same) Best Regards |
19th March 2005, 00:10 | #30 | Link |
Registered User
Join Date: Aug 2004
Location: Denmark
Posts: 807
|
Leo 69: Damn I hoped the new version would work on a Geforce Fx. Would you try this version and see if it works with bt=1 or bt=2 or both. In this test version the filtering is disabled so it is just to see where the error is.
|
19th March 2005, 07:04 | #31 | Link | |
Derek Prestegard IRL
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,989
|
@ Didee
Quote:
__________________
These are all my personal statements, not those of my employer :) |
|
19th March 2005, 14:11 | #32 | Link | |
Registered User
Join Date: Nov 2004
Posts: 227
|
Quote:
|
|
19th March 2005, 20:44 | #35 | Link |
Registered User
Join Date: Aug 2004
Location: Denmark
Posts: 807
|
Leo 69: Good then try version 0.31 again but change the following passage in the end of ps.hlsl(should be in the same directory as fft3dgpu.dll. It's an ordinary text file so use notepad to open it)
Code:
//**************************************************************** #ifdef BETA float4 WFilter( PS_INPUT In) : COLOR { float4 src=tex2D(Src,In.texCoord); float2 PSD=float2(length(src.xz),length(src.yw)); float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x); if(SIGMA.x<PSD.x) MulFac.xz=((PSD.x-SIGMA.y)/PSD.x); if(SIGMA.x<PSD.y) MulFac.yw=((PSD.y-SIGMA.y)/PSD.y); return MulFac*src; } #endif //******************************************************************* Code:
//******************************************************************* #ifdef BETA float4 WFilter( PS_INPUT In) : COLOR { float4 src=tex2D(Src,In.texCoord); float2 PSD=float2(length(src.xz),length(src.yw)); float4 MulFac; float4 dst; MulFac.xz=((PSD.x-SIGMA.y)/PSD.x)*(SIGMA.x<PSD.x)+(SIGMA.x>=PSD.x)*float2(BETA.x,BETA.x); MulFac.yw=((PSD.y-SIGMA.y)/PSD.y)*(SIGMA.x<PSD.y)+(SIGMA.x>=PSD.y)*float2(BETA.x,BETA.x); dst=MulFac*src; return dst; } #endif //******************************************************************* Code:
//******************************************************************* #ifdef BETA float4 WFilter( PS_INPUT In) : COLOR { float4 src=tex2D(Src,In.texCoord); float2 PSD=float2(length(src.xz),length(src.yw)); float4 dst; if(SIGMA.x<PSD.x) dst.xz=src.xz*((PSD.x-SIGMA.y)/PSD.x); else dst.xz=src.xz*float2(BETA.x,BETA.x); if(SIGMA.x<PSD.y) dst.yw=src.yw*((PSD.y-SIGMA.y)/PSD.y); else dst.xz=src.xz*float2(BETA.x,BETA.x); return dst; } #endif //******************************************************************* |
19th March 2005, 21:41 | #36 | Link |
Registered User
Join Date: Nov 2004
Posts: 227
|
None of the script versions work (properly), tsp. Overall Bt=2 mode gives largest amount of artifacts and by the way my mouse constantly stops responding for very short periods of time during playback (~0.2 sec or so).With test version too.
Last edited by Leo 69; 19th March 2005 at 21:49. |
19th March 2005, 23:13 | #37 | Link |
Registered User
Join Date: Aug 2004
Location: Denmark
Posts: 807
|
hmm could you post a sceneshoot of the artifacts? Also does this version produce artifacts(This disables the filtering but it's mainly to confirm that the bug lies in the if statements).
Code:
//******************************************************************* #ifdef BETA float4 WFilter( PS_INPUT In) : COLOR { float4 src=tex2D(Src,In.texCoord); float4 dst; dst=src; return dst; } #endif //******************************************************************* |
21st March 2005, 05:09 | #38 | Link |
Registered User
Join Date: Jan 2003
Posts: 109
|
Hi,
I tested you work TSP and here is what I get: I encoded a 10000 video frames (720 x 528) with this parameter for FFT: 'FFT3DFilter(sigma=3, bt=3, measure=true)' For FFT3dGPU I used: 'fft3dGPU(sigma=3, bt=3)' On a 2400+, 1Gb Ram, AGP Radeon 9600 Pro with latest drivers, Windows XP SP2, DirectX 9.0c. Neither my CPU nor my GPU are overcloked. Without FFT: 1st Pass = 13 min 2nd Pass = 37 min FFT Measure True: 1st Pass = 53 min 2nd Pass = 80 min FFT Measure OFF: 1st Pass = 59 min 2nd Pass = 82 min FFT3dGPU 1st Pass = 17 min 2nd Pass = 40 min In my example I selected the heaviest solution with latest XviD beta: Qpel, GMC, VHQ4, VHQ for bframes, Chroma motion, etc... So this is why the encode is so slow. You untick Qpel, you put VHQ1, no chroma motion and the speed rise up to the roof The GPU version is amazingly fast !!!! I can't believe it!!! As far as my eyes can see, the quality seems the same between your filter and the original by Fizick. Can you confirm the only thing is about the 16 bits float (useFloat16)? Except that option (which we still can enable to 32 bits), we are suppose to get the same quality that the original filter right? A last thing I don't understand, I quote you -- "usecache: if enabled the frames are saved in the GPU after the 2d FFT to avoid calculating them again the next frame if bt=2 or 3. It can be necessary to disable this internal cache if using motion compensation. Default = true" -- What do you mean by motion compensation? GMC option in DivX or XviD? What drawbacks are we suppose to get? Artifacts I suppose? And this option Off slow down the encode a lot? A great thanks for your work, Fizick's filter is very good but so slow. A good idea you've got here. I wouldn't imagine that my video card helps me to encode faster. Another reason to buy a fast new card |
22nd March 2005, 01:24 | #39 | Link | ||
Registered User
Join Date: Aug 2004
Location: Denmark
Posts: 807
|
Quote:
I will do two things about that: 1) Implement the 2:1 overlap(This will cut the speed in half ). 2) and as an option for the speed hungry people. Just use a slightly larger blocksize and then crop the borders. Until that is implementet be a little extra carefull with high sigma values. Quote:
|
||
Thread Tools | Search this Thread |
Display Modes | |
|
|