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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 12th April 2005, 18:35   #61  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
MacAddict: ok try to change Line 481 to 495 in ps.hlsl from this:
Code:
//***************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
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*float4(1,1,1,1);
}
#endif
to this:
Code:
//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);

float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float2 PSDInv=1/PSD;
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
	MulFac.xz=(PSD.x-SIGMA.y)*PSDInv.x;
if(SIGMA.x<PSD.y)
	MulFac.yw=(PSD.y-SIGMA.y)*PSDInv.y;
return MulFac*src;
}
#endif
if that doesn't work try this variant:
Code:
//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);

float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float2 PSDInv=1/PSD;
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
	MulFac.xz=1-SIGMA.y*PSDInv.x;
if(SIGMA.x<PSD.y)
	MulFac.yw=1-SIGMA.y*PSDInv.y;
return MulFac*src;
}
#endif
tsp is offline   Reply With Quote
Old 12th April 2005, 19:01   #62  |  Link
vinetu
Registered User
 
Join Date: Oct 2001
Posts: 195
MacAddict,
If you get troubles counting lines in ps.hlsl - you can use the script editor inside VirtualDubMod.

tsp,
Now (thanks to your script example) I see the blocks...

here are before/after zipped images (the web host is doing some weird things with my images,so I've zipped them)

before

fft3dGPU(mode=0,bw=128,bh=128,sigma=50)

the right Aspect Ratio for viewing is 16:9 (original resolution is 720x576),
the VGA is Radeon9600 non pro (Latest Drivers) AGPx8,
WinXP SP1,DirectX 9c 4.09.0000.904,FFT3dGPU.dll version 0.42 (updated one )

Ah and if you get troubles downloading images above with IE ("Save Target as..." did not work here) -try with some download manager...
vinetu is offline   Reply With Quote
Old 12th April 2005, 19:44   #63  |  Link
vinetu
Registered User
 
Join Date: Oct 2001
Posts: 195
tsp,
now I did remember that nVidia VGA chips are working at low speed in 2D mode!
Typical example - 300MHz in 2D (avisynth) and 500MHz in 3D mode (Doom III ).
This is true for FX 5xxx and 6xxx series.

Did you know that?
vinetu is offline   Reply With Quote
Old 12th April 2005, 19:49   #64  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
Quote:
Originally posted by vinetu
tsp,
now I did remember that nVidia VGA chips are working at low speed in 2D mode!
Typical example - 300MHz in 2D (avisynth) and 500MHz in 3D mode (Doom III ).
This is true for FX 5xxx and 6xxx series.

Did you know that?
yes I have mine clocked at 80 Mhz at 2D. I have a really noise fan on my graphc card so I have it run at very low speed in 2d mode.
Also don't worry when using fft3dgpu the 3D mode clock is used because I'm using Direct3D, you just don't see the rendered scene directly.

Also I can't download the after.zip even with a download accelerator. Couldn't you just upload the uncompressed picture
(The png file is compressed so you don't gain extra compression by "ziping" it)

Last edited by tsp; 12th April 2005 at 19:53.
tsp is offline   Reply With Quote
Old 12th April 2005, 20:51   #65  |  Link
vinetu
Registered User
 
Join Date: Oct 2001
Posts: 195
the problem with this .png images is that the web host there is "too smart" - at first try the files was .png and when i decide
to check them and download the hosted images - I get .png ,but looking like heavy down-resized and compressed .jpg ...
that's why i zipped them.

EDIT - Ok here they are:
before
after

script:
--------------------------------------
fft3dGPU(mode=0,bw=128,bh=128,sigma=50)
--------------------------------------

Radeon9600 non pro,WinXP SP1,DirectX 9c 4.09.0000.904

Last edited by vinetu; 12th April 2005 at 21:13.
vinetu is offline   Reply With Quote
Old 13th April 2005, 09:16   #66  |  Link
koszopal
Registered User
 
Join Date: Jul 2003
Posts: 35
@vinetu
maybe u can try post 2 png on
http://www.imageshack.ws/ ?
u can try post there as png files
and point here
koszopal
koszopal is offline   Reply With Quote
Old 13th April 2005, 21:17   #67  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
vinetu: That is exactly the kind of border artifacts. Also note how the plain area interacts with high detail area. So don't use such a high sigma value or use mode 1 or 2.

MacAddict: You can try this ps.hlsl file. It might work.
tsp is offline   Reply With Quote
Old 13th April 2005, 22:06   #68  |  Link
vinetu
Registered User
 
Join Date: Oct 2001
Posts: 195
Quote:
Originally posted by tsp
That is exactly the kind of border artifacts.
Are these artifacts somehow different from these you get on nVidia?

I ask because long time ago I've read a review (something like "Ati vs nVidia") where was a lot of screen shots showing differences in rendered images in 3D games.For example the dithering on gradients was beter on Radeon 8500 ( IIRC the oposite card was GeForce 3 ).
I'm not an Ati fan this is technical question... I'm courious what could be my next VGA - for now the winner is FX6600...
vinetu is offline   Reply With Quote
Old 14th April 2005, 08:31   #69  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
@vinetu: imho, you should go for a 6800 non-GT/non-ultra, the price difference is not that much with a 6600GT, and you got a much much better chip (10ps/5vs pipelines instead of 8/3...)

@tsp : v0.42 + ps.hlsl from the test version fixed the problem, i didn't get any blocks with many different parameter.
I didn't got nvperfhud working though, but it's not like it's important .

btw, i took a (really) quick look at your code (nice one indeed) and saw some DirectInput stuff ??? why do you need to manage something like that in an avisynth filter (just wondering) ?
bill_baroud is offline   Reply With Quote
Old 14th April 2005, 08:59   #70  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
bill_baroud: the ps.hlsl file from the test version disables the Wienerfiltering. So the problem lies in the WFilter function. Could you try the ps.hlsl from my last post. It's a fully working version.

About NVPerf:
Also you did use NVperf=true and used this commandline to run it:
Code:
"PATH TO NVPerfHUD\NVPerfHUD.exe" "PATH TO VIRTUALDUBMOD\virtualdubmod.exe" "PATH TO AVS\test.avs"
and enabled "force NON PURE device"

The DirectInput code is included to intercept keyboard commands to nvperfhud. So if nvperfhud isn't enabled the DirectInputcode isn't executed. Also I will have to comment the code better some day and organize the Getframe code. To many if..else.


Vinetu: The artifacts are the same. This filter doesn't use anything fancy like anisotopic filtering or even bi/trilinear filtering but it uses many pixelshaders. So the only difference between ati and nvidia is that nvidia uses 32 bit precision and ati only 24 bit. It doesn't matter that much because when usefloat16=true(the default) is used the result from each pixelshader is saved at 16 bit precision.
A artifact I haven't seen on a ATI card is this when using high bw,bh like this:
Code:
fft3dGPU(mode=0,bt=1,bw=512,bh=256)
tsp is offline   Reply With Quote
Old 14th April 2005, 14:06   #71  |  Link
MacAddict
XviD User
 
Join Date: Oct 2004
Location: Ky
Posts: 190
Quote:
Originally posted by tsp
MacAddict: You can try this ps.hlsl file. It might work.
tsp, using this file with the 0.42 build I'm still getting artifacts using fft3dGPU(bt=1) Haven't tried other parameters yet.
__________________
DFI NF4 SLI Expert | Opteron 165 CCBBE 0616 XPMW (9x325HTT=2.9Ghz) | 2x1GB G.Skill HZ (3-4-4-8-12-16-2T) | LG 62L DVD/CD | Geforce 7300GT | All SATA | Antec 650 Trio PSU | XP SP2
MacAddict is offline   Reply With Quote
Old 14th April 2005, 14:42   #72  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
Quote:
Originally posted by MacAddict
tsp, using this file with the 0.42 build I'm still getting artifacts using fft3dGPU(bt=1) Haven't tried other parameters yet.

Oh well I ordered a Geforce FX 5200 today so I will see if I can fix it when it arrives.
tsp is offline   Reply With Quote
Old 14th April 2005, 15:47   #73  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
Quote:
Originally posted by tsp
About NVPerf:
Also you did use NVperf=true and used this commandline to run it:
Code:
"PATH TO NVPerfHUD\NVPerfHUD.exe" "PATH TO VIRTUALDUBMOD\virtualdubmod.exe" "PATH TO AVS\test.avs"
and enabled "force NON PURE device"
uh no, i didn't thought of that .. tried the combo-key but it didn't work, and it can't launch the dll

Quote:
Oh well I ordered a Geforce FX 5200 today so I will see if I can fix it when it arrives.
i'm very curious of the performances it can achieve in your filter
bill_baroud is offline   Reply With Quote
Old 15th April 2005, 16:06   #74  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
ok, i did some tests yesterday, here the results :
Code:

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=0) : mixed normal/greenish image  / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=1) : greenish image                    / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=2) : mixed normal/greenish image  / a pink/green triangle, no filtering with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=0) : close vdub      / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=1) : greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=2) : close vdub      / same with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=0) : close vdub	    / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=1) : greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=2) : close vdub      / same with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=0)
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=1) : black with image blocks ;)  / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=2) : no filtering, only a black with white dots triangle in the left high corner. / same with test-ps.hlsl
same with bt=3 

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=0, mode=0/1) : mixed image/black blocks / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=0, mode=2) : mixed image/black blocks    / black triangle bug with test-ps.hlsl

opening many avs file in vdub without closing it > no more video memory and crash
some screenshots can be found here

edit: it was v0.42 + ps.hlsl from your last post and from the test.zip

Last edited by bill_baroud; 15th April 2005 at 16:15.
bill_baroud is offline   Reply With Quote
Old 15th April 2005, 17:10   #75  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
bill_baroud: The pink/green block is the same error as the black blocks just in the U og V plane. In mode 2 the blocks are triangulair because each block is created using two triangles (in mode 0 and 1 the entire image is made up by two triangles). I'm really curious what warnings the debug directx dll will produce when I get my new superfast Geforce fx 5200 with 64 mb ram

Also did you download version 0.42 before I updated it with the right dll since you getting out of video memory? You can see the version number in explorer.
tsp is offline   Reply With Quote
Old 16th April 2005, 12:32   #76  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
yes i think i did get the silent update version (can't verify now) because i downloaded it after you said so (iirc).

Also, i have the dx SDK installed with debug version and co, you could have asked me a report or something, by giving me the procedure to follow. Well now you can enjoy the blazing speed of the geforce FX series
bill_baroud is offline   Reply With Quote
Old 19th April 2005, 19:52   #77  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
ph33r |v|¥ n33w G'ph0Я5e 5200!!!! 1+ W1||| PWN J00!!!!!!!!!!!!!

oh well got my new geforce fx and finnaly fixed the stupid bug. A small riddle:
What is 1000/1000?
Is it 1 not if you ask a geforce fx no it's 13231 ???

Here's the fix change line 481 to 495 in ps.hlsl from this:

Code:
//***************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
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*float4(1,1,1,1);
}
#endif
to this:

Code:
//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
	MulFac.xz=((PSD.x-SIGMA.y)/(PSD.x+0.0000000000000000000000000000000000001);
if(SIGMA.x<PSD.y)
	MulFac.yw=((PSD.y-SIGMA.y)/(PSD.y+0.0000000000000000000000000000000000001);
return MulFac*src;
}
or download the ps.hlsl from here
I will release a new version when I fixes the mousecursor shuttering.

edit
hmm it seems as the shuttering is only present when the framerate drops below 4 fps and that it is the nvidia driver that is causing it. If you look at the cpu utilization in the task list and enables show kernel time you will notice a very high kernel time cpu utilization(in this case the nvidia driver) when the shuttering is present. The only solution I have found is to decrease the number of commands the GPU process at once. This however really kills the framerate (something like 1 fps for a 64x64 images ) so the only real solution is to upgrade the graphics card to something faster


Also the Geforce FX 5200 is about 15-30 times slower than my geforce 6800 GT. Can't wait to get it back in the computer.

Last edited by tsp; 19th April 2005 at 20:51.
tsp is offline   Reply With Quote
Old 20th April 2005, 08:07   #78  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
1000/1000 = 13231 ?? that's a nifty bug... you should perhaps forward it to nvidia ?

I'll test the new ps.hlsl this evening, thanks
bill_baroud is offline   Reply With Quote
Old 21st April 2005, 12:25   #79  |  Link
MacAddict
XviD User
 
Join Date: Oct 2004
Location: Ky
Posts: 190
tsp,

It seems you definitely found the block bug a few of us were getting with the FX cards. The ps.hlsl modification seems to have fixed the issue.

I seen this stuttering problem while encoding and your right about the kernel times. In fact, while encoding my CPU only uses around 80% max utilization. I'm guessing my FX GPU is the bottleneck and thats why the CPU isn't being utilized 100%
__________________
DFI NF4 SLI Expert | Opteron 165 CCBBE 0616 XPMW (9x325HTT=2.9Ghz) | 2x1GB G.Skill HZ (3-4-4-8-12-16-2T) | LG 62L DVD/CD | Geforce 7300GT | All SATA | Antec 650 Trio PSU | XP SP2
MacAddict is offline   Reply With Quote
Old 22nd April 2005, 00:03   #80  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
good to hear the modification worked. If you is not getting 100 % cpu just use some more demanding encoding settings or some more filters before fft3dgpu. Just curious what framerate do you get with a geforce fx 5900? also is it the total cpu utilization(green color) or is it the kerneltime(red color) that uses 80%?
tsp is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 00:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.