Chat Transcript: ATI's texture filtering algorithms

cho

Regular
Chat Transcript: ATI's texture filtering algorithms

Date: Wednesday May 19, 2004
Time: 3:00PM - 4:30PM EST

Below is the transcript from today's chat session on ATI's trilinear filtering. We're posting it here to give as many people as possible the opportunity to see the answers to the questions. Because the technical issues slowed down our ability to answer your questions, we added another hour to the session, and I believe we covered the major points. However, we apologize for the technical difficulties - we wanted to respond as quickly as possible to address people's concerns, and appear to have got ahead of the technology.

Moderator
Thanks for joining us this afternoon. With me are Andy Pomianowski and Raja Koduri, two of the main people behind our performance and image quality algorithms. The chat will last for one hour. We will attempt to answer every question. If you don't see an answer to your question immediately, please be patient, because it can take five to ten minutes for our answers to be posted on the website. Start submitting questions!

TheRock
Why are you not doing full AF?

Andy/Raja
Our AF is not "full" AF? After all, we've been using an adaptive method for this since the R200. If you select 16x in the control panel, you may get 8x, 4x, or 2x depending on how steeply angled the surface is. Doing 16x AF on a wall you're viewing straight on would look exactly the same as no AF, but require 16x more texture samples. Why would it make any sense to do this? This is exactly the same idea we're using for trilinear filtering.

Rush
Why are your trilinear optimizations different to what Nvidia is doing?

Andy/Raja
We won't comment on competitor's algorithms. Our focus is to retain full image quality while offering the best performance possible.

No-one is suggesting that our texture filtering algorithms produce a worse output than previous generations. In fact, if we took them out now the speed would be marginally less and we will receive complaints from users that our quality is lower. We did receive feedback from several folks who think that the X800 IQ is better than our 9800 series - it is always our goal to improve quality in newer hardware generations. To assist in this we have many additional quality controls in hardware in X800 series than on 9800.

Our target is also to avoid any need to detect applications, and as such we have to try to be sure that our image quality remains high in all cases. To achieve this we spent a lot of effort developing algorithms to make the best use of our quality tuning options. This isn’t a performance enhancement applied to popular gaming benchmarks; it’s a performance boost – without image degradation – applied generically to every game that uses box-filtered mipmaps, which is most of them. This means, incidentally, that it’s working during the WHQL tests (unlike optimizations activated by application detection), which means that it has to meet the very stringent image quality requirements of those tests.

TheRock
Will full trilinear filtering be allowed to be set in the drivers?

Andy/Raja
We try to keep the control panel as simple as possible (even as its complexity increases), and if the image quality is identical or better there doesn't seem to be a need to turn it off. However, if our users request otherwise and can demonstrate that it's worthwhile, we would consider adding an option to the control panel.

Singer
Is this really trilinear filtering?

Andy/Raja
Yes, It's a linear function between the two mipmap levels based on the LOD.

gs.
When will ATI restore full trilinear so that review sites can actually rebench and retest your cards, since any previous review benchmarks is invalidated by this cheat/optimisation/whatever?

Andy/Raja
We have never removed "full trilinear". We certainly do not believe that any benchmarks have been invalidated by our techniques. In all cases reviewed so far we believe that we have higher image quality than other implementations.

Sphinx
Is Ati cheating if Colored MipMaps are enabled and shows True FULL_TRI AF and Only Then. Like the Article in ComputerBase.de Descripe it as such one.

Andy/Raja
Absolutely not. If it were the case that we were only performing full trilinear with coloured mipmaps then you might have a point, but this is emphatically not what we do. We take advantage of properties of texture maps for performance and IQ gains. In cases where we are not able to determine that the texture content is appropriate for these techniques we use legacy trilinear filtering. This includes cases such as dynamically uploaded texture maps where we avoid performing analysis so as not to cause any possible gameplay hitches.

volt_Bjorn3D
I think the whole community appreciates the time and the initiative for doing a chat about current filtering algorithm which certainly raised a few issues. Was the new filtering algorithm intentional and if you could tell us why werent review sites notified about it. Thanks.

Andy/Raja
We are constantly tuning our drivers and our hardware. Every new generation of hardware provides the driver with more programmability for features and modes that were hard-wired in the previous generation. We constantly strive to increase performance and quality with every new driver release. There are literally dozens and dozens of such optimizations that went into our drivers in the last year or so. Sometimes many such optimizations are not even communicated internally to marketing and PR teams for example. And many optimizations are very proprietary in nature and we cannot disclose publicly anyways.

Astaroth
Is x800's hardware able to do "traditional" trilinear or is the new algorithm completely hardwired (not that I would mind :) ??

Andy/Raja
The X800 hardware is capable of all features of previous generations, and many more besides.

alp
Is this http://www.ixbt.com/video2/images/r420xt/r420-anis0x.jpg (copy and past it) bilinear or bri/trillinear as is is supposed to be...i heard it is possilby a bug in cod causing it to set filtering to bi rather than a really bad trillinear filtering method, is this true?

Andy/Raja
This we believe is test error and the X800 images appear to be obtained using only a bilinear filter. We have been unable to reproduce this internally. Also, note that the game defaults to bilinear when a new card is installed and this may explain the tester error

Singer
Why did ATI say to the general public that they were using trilinear by default, when in fact it was something else? (quality is ok, i agree, but you did deceive, by claiming it to be a trilinear)

Andy/Raja
We understand that there was confusion due to the recent reports otherwise. We provide trilinear filtering in all cases where trilinear filtering was asked for. As has been demonstrated many times by several people - almost every hardware has a different implementation of lod calculation and filtering calculations. If we start calling all the existing filtering implementations with different names - we will end up with many names for trilinear

Wer
Is bit comparison difference images can highlight IQ differences surely there must be some - why do you say there are no IQ differences when these comparisons show otherwise?

Andy/Raja
The bit comparison differences between implementations occur due to many reasons. We constantly make improvements to our hardware algorithms. Bit comparisons just say they are different - not necessarily that one is better than the other. We always on the lookout for cases where we can find IQ problems with our algorithms. We can guarantee you that there will be bit-wise mis-matches without future generation hardware too and the future generation hardware will be better. Our algorithms are exercised by the stringent MS WHQL tests for mipmap filtering and trilinear and we pass all these tests. These tests do not look for exact bit matches but have a reasonable tolerance for algorithmic and numeric variance.

crushinator
Is this Algorythm implemented in hardware? who's analysing texture maps, is it just the driver doing that or is it the chip?

Andy/Raja
The image analysis is performed by the driver to choose the appropriate hardware algorithm. This allows us to continually improve the quality and performance with future drivers.

Bouncing Zabaglione Brothers
If its so good, why has it remained hidden from the public and not marketed as "ATI SmartFilter" or somesuch? Surely if its as good as you say (better quality, faster speed), ATI marketing should be crowing about it? One of the issue here is that it *looks* like ATI is trying to hide things, even if what you have is a genuine improvement for the customer.

Andy/Raja
The engineering team at ATI is constantly improving our drivers by finding ways to take better advantage of the hardware. These improvements happen during all the catalyst releases. We might have missed an opportunity to attach a marketing buzzword to this optimization!

Hanners79
Can you give a more detailed explanation as to why the use of coloured mipmaps shows the use of full trilinear, which doesnt correspond to what seems to occur in a normal, real-world situation?

Andy/Raja
Coloured mipmaps naturally show full trilinear as our image quality analysis reveals that there could be visible differences in the image. It should be noted that trilinear was originally invented to smooth transitions between mip-levels, and in the original definition mip-levels should be filtered versions of each other, as coloured mip-levels clearly are not. Despite this, we understand that people often make use of hardware for purposes beyond that originally envisioned, so we try to make sure that everything always functions exactly as expected.

Cthellis
From previous comments, there have been mention of this technique used for a while (~12 months?) in the RV300 series of chips, but most as with R420. can you tell us which cards, which Catalyst versions, and/or which games exist where we can see similar tendencies.

Andy/Raja
We had new filtering algorithms in places since Cat 3.4 or so. Note that the image quality improved over various driver updates since. Also, as noted earlier, X800 provides better controls than earlier parts. It will be hard to find an exact match with our earlier hardware and drivers

Mabru
Dont you think such a tradeoff is inconceivable in a 500$ graphic card?

Andy/Raja
We think that what we do is expected of all our cards, in particular the more expensive ones. Our users want the best looking results and the highest quality results. They want us to go and scratch our heads and come up with new ways to improve things. Users of ATI cards from last year want us to come out with new drivers that improve their performance and maintain the image quality. We have dedicated engineering teams that work hard to improve things. It's an ongoing effort, exploring new algorithms, finding new ways to improve the end user experience, which is what all this is about. And we are listening too; if you don't like what we offer, let us know and we will strive to improve things.

anonymouscoward
Image quality is a relative term. The real question is, "does the claimed 'trilinear filtering' produce a byte-for-byte replica of 'true trilinear filtering'?" Whether or not the image quality is "the same" or "essentially" the same is irrelevant to this questions

Andy/Raja
Byte for byte compared to what? "True trilinear" is an approximation of what would be the correct filtering, a blending between two versions, one which is too blurry and one too sharp. An improved filter is not byte for byte identical to anything other than itself, but that doesn't mean it isn't a better approximation.

wild_neo
Do you think that you still can compare the benchmarks with other brands, even if you use that different approach (non-equivalent technique)?

Andy/Raja
We've answered this, and yes, we feel we can compare ourselves to any brand, as we believe our quality and performance are higher. Perhaps at times we should be upset about people comparing us to lower quality implementations :)

Toaster
Whats the patent number and filing date of this algo?

Andy/Raja
This is in the patent pending process right now. So we will not put out the actual patent information at this time. Once approved, anyone can go read the patent.

Chris
What performance boost does this give you, anyway?

Andy/Raja
It's a very mild optimization at the default levels, so of the order of a few percent. But this is a neat algorithm - we encourage you to take the texture slider all the way towards "performance" - we don't think you'll be able to see any image change until the very end, and the performance increases are significant.

Moderator
Thanks for your time. We appreciate your persistence through the technical difficulties.

http://www.ati.com/online/chat/
 
Interesting, looks like they dodged anonymouscoward's question a little bit when he asked the straight forward question of "is it the same". This will probably prove to be a more powerful event(the chat) that has happened than will fully be realized. Also, I was a little disappointed they wouldn't give a pending patent number. I have a strange feeling they haven't filed one yet and probably weren't going to until someone in pr said "That sounds like a good idea".

Just my 2 cents...come on Matrox...
 
Singer
Is this really trilinear filtering?

Andy/Raja
Yes, It's a linear function between the two mipmap levels based on the LOD.

LIE LIE LIE LIE

Their is a conditional step in their algorithim it is neither mathematically linear nor is it A*X+B*(1-X) ( which is mathematically linear ).

It is
If X < Threshold return A;
else X > 1-Threshold return B;
else return A*([X-Threshold]/[ 1 - 2*Threshold] )+B*([1-X-Threshold]/[ 1 - 2*Threshold])

Or something close to it.


gs.
When will ATI restore full trilinear so that review sites can actually rebench and retest your cards, since any previous review benchmarks is invalidated by this cheat/optimisation/whatever?

Andy/Raja
We have never removed "full trilinear". We certainly do not believe that any benchmarks have been invalidated by our techniques. In all cases reviewed so far we believe that we have higher image quality than other implementations.

ATI claim their new technique is better then FULL Trilinear ( the best implementation of Trilinear of course is trilinear which nvidia has done in the past.

An improved filter is not byte for byte identical to anything other than itself, but that doesn't mean it isn't a better approximation.
Oh so now your saying it might not actually be better?
 
To me it seems like their implementation is:
A*Y+B*(1-Y), with Y=f(x) ... Where f(X) produces visual-equivalent of X.
 
BRiT said:
To me it seems like their implementation is:
A*Y+B*(1-Y), with Y=f(x) ... Where f(X) produces visual-equivalent of X.

And if you subsitute f(x) for Y? then it won't be linear. Generally if you have a single non linear function the whole thing becomes non-linear if it wasn't for that then most of the sysmeteric ciphers would be useless.
 
NutSack said:
Interesting, looks like they dodged anonymouscoward's question a little bit when he asked the straight forward question of "is it the same". This will probably prove to be a more powerful event(the chat) that has happened than will fully be realized. Also, I was a little disappointed they wouldn't give a pending patent number. I have a strange feeling they haven't filed one yet and probably weren't going to until someone in pr said "That sounds like a good idea".

Just my 2 cents...come on Matrox...

The answer is "sometimes it does, and sometimes it doesn't". The algorithm uses full trilinear when it decides the textures warrent it. When the textures don't need it, levels drop down towards bilinear.

Bearing in mind that even "full trinlinear" is not going to be bitwise exactly the same as any other ATI or Nvidia version of full trilinear, and so it becomes a question that isn't really answered with a simple "yes or no".
 
bloodbob said:
Singer
Is this really trilinear filtering?

Andy/Raja
Yes, It's a linear function between the two mipmap levels based on the LOD.

LIE LIE LIE LIE

Their is a conditional step in their algorithim it is neither mathematically linear nor is it A*X+B*(1-X) ( which is mathematically linear ).

It is
If X < Threshold return A;
else X > 1-Threshold return B;
else return A*([X-Threshold]/[ 1 - 2*Threshold] )+B*([1-X-Threshold]/[ 1 - 2*Threshold])

Or something close to it.
In any event, it is still piecewise linear.
gs.
When will ATI restore full trilinear so that review sites can actually rebench and retest your cards, since any previous review benchmarks is invalidated by this cheat/optimisation/whatever?

Andy/Raja
We have never removed "full trilinear". We certainly do not believe that any benchmarks have been invalidated by our techniques. In all cases reviewed so far we believe that we have higher image quality than other implementations.
ATI claim their new technique is better then FULL Trilinear ( the best implementation of Trilinear of course is trilinear which nvidia has done in the past.
Since when did NVIDIA have the "best trilinear"? With NV40 you could perhaps argue that the new LOD selection function is more precise, but that doesn't affect trilinear, only the coefficient used. Of course, if brilinear is used, then it may not matter much that this new LOD function is in use. Anyway, none of this pertains to what "vidia has done in the past".
An improved filter is not byte for byte identical to anything other than itself, but that doesn't mean it isn't a better approximation.
Oh so now your saying it might not actually be better?
Actually it says the opposite.

-FUDie
 
FUDie said:
Since when did NVIDIA have the "best trilinear"?

Yep, people need to make the distinction between AF and trilinear. Nvidia clearly had the best AF quality on the GF3-4 generation of cards. Dunno about the trilinear part though but certainly not any worse then what the best cards today can product. Rather scary actually since we're talking about cards that in most cases can run 1600*1200, 8+X AF and 4X+ MSAA at acceptable framerates.
 
bloodbob said:
Singer
Is this really trilinear filtering?

Andy/Raja
Yes, It's a linear function between the two mipmap levels based on the LOD.

LIE LIE LIE LIE

Their is a conditional step in their algorithim it is neither mathematically linear nor is it A*X+B*(1-X) ( which is mathematically linear ).

It is
If X < Threshold return A;
else X > 1-Threshold return B;
else return A*([X-Threshold]/[ 1 - 2*Threshold] )+B*([1-X-Threshold]/[ 1 - 2*Threshold])

Or something close to it.


gs.
When will ATI restore full trilinear so that review sites can actually rebench and retest your cards, since any previous review benchmarks is invalidated by this cheat/optimisation/whatever?

Andy/Raja
We have never removed "full trilinear". We certainly do not believe that any benchmarks have been invalidated by our techniques. In all cases reviewed so far we believe that we have higher image quality than other implementations.

ATI claim their new technique is better then FULL Trilinear ( the best implementation of Trilinear of course is trilinear which nvidia has done in the past.

An improved filter is not byte for byte identical to anything other than itself, but that doesn't mean it isn't a better approximation.
Oh so now your saying it might not actually be better?



Do you mean to say that there is no conditional step in "true trilinear" calculations...AFAIK, what people call "true trilinear" is the same equation you have that you call a LIE with the "Threshold" set to 0.

ATI claim their new technique is better then FULL Trilinear ( the best implementation of Trilinear of course is trilinear which nvidia has done in the past.


Dude..You are getting confused between lod-calculation and trilinear. Yes - I do remember that Nvidia had good lod-calculation. Good lod-calculation leads to good trilinear...but all the FULL trilinear thing is a big nonsense..I'm surprised you throw out equations like you are in the know...

There is no such thing as full trilinear or half trilinear..do you eliminate mip-map transition boundaries or do you not is the only valid question...
 
That "chat" was a big joke, a big waste of time. They only answered the questions where they had prepared PR polished answers in the back. Lots of questions, although they have been asked polite and made sense in the context, haven't been answered at all. The behaviour of these two engineers was quite arrogant. You can't threat the community like this.
 
We try to keep the control panel as simple as possible (even as its complexity increases)

Sorry, but the slider for texture filtering quality is already there, so changing the maximum quality setting to standard trilinear doesn't add any complexity at all.
 
Our algorithms are exercised by the stringent MS WHQL tests for mipmap filtering and trilinear and we pass all these tests. These tests do not look for exact bit matches but have a reasonable tolerance for algorithmic and numeric variance.

One more lie. Users here have proved that WHQL doesn't test trilinear filter quality at all.
 
this chat was a piece of .....

They are cheating their ass of got caught with their paints down and know it.
The chat was just damage control. Bottom line remains. They are cheating.
 
As they say, trilinear is a compromise between "too blury" (the blending between mip levels... blending the right word?) and "too sharp". I don't see the obsession with trilinear, it's a compromise just like everything else in graphics, and if it can be improved upon, why not? Trilinear is NOT the best filtering method in EVERY situation, so why apply trilinear to everything? What is it with this love of the "one-size-fits-all" solution? People rant about relying on global CP settings, but when ATI come up with a solution for something that adapts to the situation, people complain about that.

I think people are just upset they didn't receive a personal e-mail from ATI telling them what they did.
 
These accusations of cheating are ridiculous.

l…

The objective of trilinear filtering is to make transitions between mipmap levels as near to invisible as possible. As long as this is achieved, there is no "right" or "wrong" way to implement the filtering.

The X800 is doing as good a job or better filtering mipmaps transitions as any other card out there that is also doing Trilinear. So how is this a cheat?
 
Mephisto said:
Our algorithms are exercised by the stringent MS WHQL tests for mipmap filtering and trilinear and we pass all these tests. These tests do not look for exact bit matches but have a reasonable tolerance for algorithmic and numeric variance.
One more lie. Users here have proved that WHQL doesn't test trilinear filter quality at all.
Is that so? :LOL:

-FUDie
 
Blastman said:
These accusations of cheating are ridiculous.

l?

The objective of trilinear filtering is to make transitions between mipmap levels as near to invisible as possible. As long as this is achieved, there is no "right" or "wrong" way to implement the filtering.

The X800 is doing as good a job or better filtering mipmaps transitions as any other card out there that is also doing Trilinear. So how is this a cheat?

its a cheat cuz they tried to hide it. how much you wanna make a bet that if nvidia implemented this, and tried to hide it, everyone would be calling it a cheat. i mean just look at brilinear among other things nvidia's done with lil iq loss that everyone still consider it a cheat :rolleyes:
 
They didn't mention their shader compiler, but that doesn't make that a cheat. Nor has anyone shown this method to reduce the IQ of images... in fact it has the potential to improve IQ.
 
Back
Top