Chat Transcript: ATI's texture filtering algorithms

Kombatant said:
suicuique said:
What is piecewise linear about "If X < Threshold return A" ?

As you may know, constant functions (though representable by a "line") are not considered linear.

So a piecewise fuction of constant and linear functions, is *not* piecewise linear in any means of the word.

/nitpicking mode off :)

regards, alex

Ahh... mathematics :) Allow me to play too. Linear functions have the form of:

f(x) = a*x + b

and we call them linear because a) they are a straight line b) the 'x' is in the power of 1.

So, as you can see, if you have a=0 and b=A, you have the function:

f(x) = A

That function is a subcase of the linear functions. So it is STILL a linear function :)

edit: Here's one of the links that google got me, I am sure you can find a lot more : http://people.hofstra.edu/faculty/Stefan_Waner/RealWorld/tutorialsf0/frames1_3.html

Thanks for the link but i have studied Maths for 6 years in college, so i should be comfortable with polynoms :)

And the "order" of the polynom is called after the highest NonZero coeffecient.
If you would not do this that way, something like y = 3*x+5 could be called a polynom of second order, 5th order etc . Where to stop? :)

Hence it makes perfect sense, to impose the constraint that a=!0 in the general formula y=a*x+b to call that function linear.

Looking forward to your reply :)

Edit Addendum:
Kombatant said:
Linear functions have the form of:

f(x) = a*x + b

and we call them linear because a) they are a straight line b) the 'x' is in the power of 1.

Linear functions (respective functionals) are called this way because they are linear in their argument, so f(x) is linear in x if and only if f(a*x)=a*f(x).
I dont see this condition being served for the constant functions (=!0 ;).

Note: That strict definition would not even allow offsets (read: affine Transformations), but as this would really become way too OT I will stop here. I still stand by my assertion, that constant functions are in now way considered "linear" in mathematics.

regards, alex
 
One of the criteria for a function f(x) to be considered linear for each value of x1 where x1 is a real number lim x -> x1 f(x) must be defined. Piecewise functions do not always have a limit at the break point and therefore are not always linear. The way ATi seems to be handling this situation is very similar to the way step functions behave, before and after the step they behave like functions with a slope of 0 but as a function they are not considered linear because they do not have a limit at the break point. Otherwise, a function in the form of f(x)=ax+b with the a coefficient as 0 is by all means a linear function, but the function ATi appear to be using is not this.

But whoever thinks ATi should have given the people present at the chat session a math class is expecting too much of a one hour chat session.

Yalaz Ozkanli
 
And the "order" of the polynom is called after the highest NonZero coeffecient.
If you would not do this that way, something like y = 3*x+5 could be called a polynom of second order, 5th order etc . Where to stop? :)
The first polynome is the polynome of zero order.
Hence it makes perfect sense, to impose the constraint that a=!0 in the general formula y=a*x+b to call that function linear.
Hence your constraint is false. And btw, the general formula ax+b is an affine function, which could be in particular situation linear (ax) ora constant function (b)

Linear functions (respective functionals) are called this way because they are linear in their argument, so f(x) is linear in x if and only if f(a*x)=a*f(x).
I dont see this condition being served for the constant functions (=!0 ;).
If x=0 then f(ax)=af(x) iif b=0. But that is the general case and a necessity to have b=0. That's true for all x, even x=0.

That's not true for affine functions or for constant with b !=0.
 
DaveBaumann said:
christoph said:
could you please give me quote or test number from the specs? maybe i missed something, i couldnt find the word trilinear a single time in them.....so if this tests exist, they dont seem to be documented in the specs for me.

Did you search on "Trilinear" or "Linear"?

oops, my bad, i overlooked this one. but it doesnt really matter in this context because colored mips are used:
5.22.4 The Texture Filter – MipMapping Test
Test renders a striped mip-mapped texture with the various mip filter modes, uses three different colored mip-maps, the highest being 256x256, varies the mesh size, and compares with the Reference rasterizer. The different mip filter modes used are:

MipNearest
MipLinear
LinearMipNearest
LinearMipLinear
Reference Documents: The DirectX DDK, the Reference Rasterizer Source section of the DirectX DDK, and the DirectX SDK.
Test Description: TD-5.22 Texture Tests Description
 
suicuique said:
Thanks for the link but i have studied Maths for 6 years in college, so i should be comfortable with polynoms :)

And the "order" of the polynom is called after the highest NonZero coeffecient.
If you would not do this that way, something like y = 3*x+5 could be called a polynom of second order, 5th order etc . Where to stop? :)

Hence it makes perfect sense, to impose the constraint that a=!0 in the general formula y=a*x+b to call that function linear.

Looking forward to your reply :)

Edit Addendum:
Kombatant said:
Linear functions have the form of:

f(x) = a*x + b

and we call them linear because a) they are a straight line b) the 'x' is in the power of 1.

Linear functions (respective functionals) are called this way because they are linear in their argument, so f(x) is linear in x if and only if f(a*x)=a*f(x).
I dont see this condition being served for the constant functions (=!0 ;).

Note: That strict definition would not even allow offsets (read: affine Transformations), but as this would really become way too OT I will stop here. I still stand by my assertion, that constant functions are in now way considered "linear" in mathematics.

regards, alex

As far as terminology is concerned you will have to excuse me; I was taught Mathematics in Greek so I wouldn't know how you guys call some stuff (although you do use many Greek words, which makes it much easier) :)

To our main point: I do not want to question your knowledge in mathematics, but a function of f(x)=a always was, is and will be linear, simply because it can be written as f(x)=0*x + a. And here's proof. Yes I know the page is funny, but it does make a point :p Google it and you will reach the same conclusion :) When you have an f(x) = a*x + b, in order to call it linear, a, b must be real numbers (which includes zero).

Look it up and let me know if you find something else :)
 
Evildeus said:
And the "order" of the polynom is called after the highest NonZero coeffecient.
If you would not do this that way, something like y = 3*x+5 could be called a polynom of second order, 5th order etc . Where to stop? :)
The first polynome is the polynome of zero order.

?
Did i say otherwise?
What i did say is that the "nonzero" constraint guarantees a unique and well defined categorization of polynomials.

Hence it makes perfect sense, to impose the constraint that a=!0 in the general formula y=a*x+b to call that function linear.
Hence your constraint is false. And btw, the general formula ax+b is an affine function, which could be in particular situation linear (ax) ora constant function (b)

How is my constraint false?
To call a polynomial first order, the highest nonzero coefficient has to be the one in front of x^1 (lets call it a_1).
A Polynomial to be of n-th order, the highest nonzero coefficient has to be a_n. Agree?

As for a*x+b, your right. The function is constant if a=0, it is linear if b=0, it is an affine function if a=!0.

Linear functions (respective functionals) are called this way because they are linear in their argument, so f(x) is linear in x if and only if f(a*x)=a*f(x).
I dont see this condition being served for the constant functions (=!0 ;).
If x=0 then f(ax)=af(x) iif b=0. But that is the general case and a necessity to have b=0. That's true for all x, even x=0.

Sorry, but i suppose there is misunderstanding: the "a" in f(a*x)=a*f(x) is not he same "a" as in f(x)=a*x+b but a random real number.
Sorry for the confusion.
All i wanted to make clear is, that a "linear" function has to act linearly on its argument.


regards, alex
 
Kombatant said:
As far as terminology is concerned you will have to excuse me; I was taught Mathematics in Greek so I wouldn't know how you guys call some stuff (although you do use many Greek words, which makes it much easier) :)

And i was taught it in german.

To our main point: I do not want to question your knowledge in mathematics, but a function of f(x)=a always was, is and will be linear, simply because it can be written as f(x)=0*x + a. And here's proof. Yes I know the page is funny, but it does make a point :p Google it and you will reach the same conclusion :) When you have an f(x) = a*x + b, in order to call it linear, a, b must be real numbers (which includes zero).

Ok answer me this then:
Is f(x) = a quadratic function?
Since it can be written as f(x)=0*x^2+0*x+a and using your above deduction, i suppose it is ;)

And is f(x)=a a cubic function?
Same arguments apply, and we have shown that obviously f(x)=a is a cubic function.

...

Do you see the problem uf a unique and well defined "syntax" of polynomials now?

If you still contend, that f(x)=a is a "linear" function, lets agree to disagree, as i have reiterated my point often enough. No need to repeat ad infinitum.

regards, alex
 
suicuique said:
Evildeus said:
And the "order" of the polynom is called after the highest NonZero coeffecient.
If you would not do this that way, something like y = 3*x+5 could be called a polynom of second order, 5th order etc . Where to stop? :)
The first polynome is the polynome of zero order.

?
Did i say otherwise?
What i did say is that the "nonzero" constraint guarantees a unique and well defined categorization of polynomials.
Well to me it seems you did. It wasn't clear.

Hence it makes perfect sense, to impose the constraint that a=!0 in the general formula y=a*x+b to call that function linear.
Hence your constraint is false. And btw, the general formula ax+b is an affine function, which could be in particular situation linear (ax) ora constant function (b)

How is my constraint false?
To call a polynomial first order, the highest nonzero coefficient has to be the one in front of x^1 (lets call it a_1).
A Polynomial to be of n-th order, the highest nonzero coefficient has to be a_n. Agree?
Of course, but as your precedent point wasn't clear...

As for a*x+b, your right. The function is constant if a=0, it is linear if b=0, it is an affine function if a=!0.
Affine if a and b !=0


Linear functions (respective functionals) are called this way because they are linear in their argument, so f(x) is linear in x if and only if f(a*x)=a*f(x).
I dont see this condition being served for the constant functions (=!0 ;).
If x=0 then f(ax)=af(x) iif b=0. But that is the general case and a necessity to have b=0. That's true for all x, even x=0.

Sorry, but i suppose there is misunderstanding: the "a" in f(a*x)=a*f(x) is not he same "a" as in f(x)=a*x+b but a random real number.
Sorry for the confusion.
All i wanted to make clear is, that a "linear" function has to act linearly on its argument.


regards, alex
Of course it's not the same.
But f(dx)=df(x) iif b=0 in the function f(x)=ax+b. This is true for all a, even for a=0.
 
Evildeus said:
Of course it's not the same.
But f(dx)=df(x) iif b=0 in the function f(x)=ax+b. This is true for all a, even for a=0.

You are of course right, i should not quickread this stuff (your x=0 somehow confused me).

The "linearity requirement" of f(d*x)=d*f(x) is not satisfied with f(x)=b (a=0,b=!0).
It is with f(x) =0 (a,b=0), i should have noted this exception.
Mea culpa.

regards, alex
 
Blastman said:
CyanBlues said:
…its a cheat cuz they tried to hide it….

Because they didn’t file a report to let you know about their new Adaptive-Trilinear it’s a cheat ….??? ….. Like I say …ridiculous. Are ATI suppose to file a report with us every time they develop a new technology?

ATI hasn’t tried to deceive anyone about anything. And ATI didn’t try to hide it, it looks like they just didn’t want tell anyone about it. And I can see why now for good reason . ATI has developed a great new Adaptive-Trilinear technology that works as good or better than the old Trilinear and improves performance at the same time. Why would they want to blab about it and let their competitors know about it?. The likely reason ATI never told anyone about this new Adaptive-Trilinear technology is for competitive reasons.


l…

… We encourage users to experiment with moving the texture preference slider from “Quality†towards "Performance" – you will see huge performance gains with no effect on image quality until the very end, and even then, the effect is hardly noticeable. We are confident that we give gamers the best image quality at every performance level. …

If the mipmap transitions are barely noticeable with the control panel set all the way to performance -- this is amazing. Sounds like that Adaptive-Trilinear is really good. The performance setting on the X800 may be as good or better than the Brilinear on the 6800. Maybe we should be benchmarking with ATI X800 cards set to all the way to performance against the 6800’s Brilinear.

Oh really? Then try explaining why ATi reccomends reviewers disable Brilinear filtering on nVidia products when benchmarking but says not a word about their own trilinear optimizations.

-----
Lyme wrote: "no matter how many people tell me the quality of trylinear is great and wonderful, if it's not trilinear you can't call it that. It seems alot of people are trying to say 'it looks close, so who cares'. Well we went through that with nvidia last time and it didn't fly, why should it now?"
 
Oh really? Then try explaining why ATi reccomends reviewers disable Brilinear filtering on nVidia products when benchmarking but says not a word about their own trilinear optimizations.
Explain why nVidia has no trilinear optimizations.

So are we now going to start demanding that all bandwidth saving techniqes be turned off?
 
SiliconAbyss said:
Oh really? Then try explaining why ATi reccomends reviewers disable Brilinear filtering on nVidia products when benchmarking but says not a word about their own trilinear optimizations.
Explain why nVidia has no trilinear optimizations.

So are we now going to start demanding that all bandwidth saving techniqes be turned off?

nVidia do have trilinear optimizations (brilinear filtering) and the user has the ability to decide if they want to use it or not (at least for NV40).

With ATi you don't get a choice, which is as bad as nVidia forcing brilinear on all NV3x owners whether they wanted it or not.
 
SiliconAbyss said:
Oh really? Then try explaining why ATi reccomends reviewers disable Brilinear filtering on nVidia products when benchmarking but says not a word about their own trilinear optimizations.
Explain why nVidia has no trilinear optimizations.

So are we now going to start demanding that all bandwidth saving techniqes be turned off?

Either all of them turned off, or allow both cards to have them on. Many sites went through the difficulty of turning off nvidia's tri optimizations in the belief that ati was doing none. Saying that it is fair to have ati having tri optimizations but not nvidia (or vice versa) is just wrong.
 
lyme said:
Either all of them turned off, or allow both cards to have them on. Many sites went through the difficulty of turning off nvidia's tri optimizations in the belief that ati was doing none. Saying that it is fair to have ati having tri optimizations but not nvidia (or vice versa) is just wrong.

Is it?

Yes, I'm actually asking, and here's the reason why:

With nvidia you would only get brilinear at any given time. It would not do trilinear filtering on colour mimaps or any other texture with mimaps not generated from a box-filer, whereas with ATI's trylinear you would.

So the question becomes; what optimisations are equal and should be on during testing?

Can you really say that trylinear and brilinear gives the same result and should both be on during testing, or is trylinear so close to trilinear that it's fairer to compare trylinear with trilinear?


Also, what if you're interesetd in testing each cards trilinear?
By using textures with coloured mipmaps on ATI hardware you get full-/legacy-trilinear and as such, wasn't it correct for ATI to tell reviewers to turn nvidia's brilinear off, so one could compare their respective trilinear filtering? Otherwise the difference in quality in that test would be extreme since ati would be doing full-/legacy-trilinear whereas nvidia would've only done brilinear.


Also, how close does an optimisation need to be to the original result before it is judged to be a valid way of rendering that effect?
Or how close does an optimisation need to be to a "correct" level of IQ before it's judged valid?

I'm quite curious about this, since it hasn't been discussed that much (/at all?)
 
radar1200gs said:
Oh really? Then try explaining why ATi reccomends reviewers disable Brilinear filtering on nVidia products when benchmarking but says not a word about their own trilinear optimizations.


May be because ATI is stupid?
May be because Nvidia's quality with trilinear is close to ATI's but brilinear is lower quality?
May be because reviewers are....never mind :)

I have seen both ATI and Nvidia recommend a bunch of things in their reviewers guides...who the F*&^ follows them anyway...so, who the F*&k cares what ATI wrote in there..what's important is the quality you get
 
MrGaribaldi said:
lyme said:
Either all of them turned off, or allow both cards to have them on. Many sites went through the difficulty of turning off nvidia's tri optimizations in the belief that ati was doing none. Saying that it is fair to have ati having tri optimizations but not nvidia (or vice versa) is just wrong.

Is it?

Yes, I'm actually asking, and here's the reason why:

With nvidia you would only get brilinear at any given time. It would not do trilinear filtering on colour mimaps or any other texture with mimaps not generated from a box-filer, whereas with ATI's trylinear you would.

Your right, brilinear filtering is not trilinear and thus doesn't do trilinear filtering on colour mipmaps.
In the same way trylinear filtering of mipmaps doesn't do full trilinear filtering unless the mipmaps are distinct.
So yes I agree.. brilinear filtering yeilds worse image quality than trylinear filtering. Just as trylinear filtering is worse than full trilinear filtering (wether you notice it or not).

MrGaribaldi said:
So the question becomes; what optimisations are equal and should be on during testing?

Using ATI's suggested testing methods they should be allowed to use any/all optimizations while nvidia uses none. Thankfully for nVidia they have kept their mouth shut from all the shit they caught last time.

MrGaribaldi said:
Can you really say that trylinear and brilinear gives the same result and should both be on during testing, or is trylinear so close to trilinear that it's fairer to compare trylinear with trilinear?

No in both cases. If your going to call it a full trilinear vs full trilinear test you better be using full trilinear on both. In addition if ATI tells you it's full trilinear you expect full trilinear and not a close faximile.

MrGaribaldi said:
Also, what if you're interesetd in testing each cards trilinear?
By using textures with coloured mipmaps on ATI hardware you get full-/legacy-trilinear and as such, wasn't it correct for ATI to tell reviewers to turn nvidia's brilinear off, so one could compare their respective trilinear filtering? Otherwise the difference in quality in that test would be extreme since ati would be doing full-/legacy-trilinear whereas nvidia would've only done brilinear.

true, however I don't know how much a difference in quaility there would be comparing trilinear vs brilinear nor the performance of nvidia in that comparision. I don't remember seeing any reviews using brilinear.


MrGaribaldi said:
Also, how close does an optimisation need to be to the original result before it is judged to be a valid way of rendering that effect?
Or how close does an optimisation need to be to a "correct" level of IQ before it's judged valid?

I'm quite curious about this, since it hasn't been discussed that much (/at all?)

Personally I don't own a video card capible of running decently games with either AA or AF on, so I don't see the big deal. It is generally the case where if you don't notice a problem during gameplay then its not a issue.
However since the release of the nv3x ATI-fans have been jumping all over nvidia, sometimes over the smallest nit picky things. I'm not one bit surprised that when ATI pulls something that nvidia-fans don't do the exact same thing to them in return.
In addition no matter how many people tell me the quality of trylinear is great and wonderful, if it's not trilinear you can't call it that. It seems alot of people are trying to say 'it looks close, so who cares'. Well we went through that with nvidia last time and it didn't fly, why should it now?
 
MrGaribaldi said:
With nvidia you would only get brilinear at any given time. It would not do trilinear filtering on colour mimaps or any other texture with mimaps not generated from a box-filer, whereas with ATI's trylinear you would.

Are you complaining that nvidia should do full trilinear filtering on colour mipmaps? The purpose of the colour mipmaps is to show us the filtering patterns and thankfully, when they're used on nvidia cards, everybody can see what the filtering pattern of nvidia's brilinear is like.
 
Back
Top