PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geforce FX Frage


Unregistered
2003-01-18, 20:30:55
Ich hab da mal eine Frage.In einem ATI-Interview las ich folgendes:
http://www.nordichardware.se/artiklar/Intervjuer/English/ATi/index.php

"Does ATi support what Matrox calls "Gigabit Color", ie 10 bit precision per color channel instead of 8 bits?
If so when will this be realized in software?
[ATi] We are not sure what you mean by "10bit precision per color". Is it 10bit render target or 10bit lookup table? 10bit render target is supported, under DirectX 9."

Meine Frage:

Mit welcher bit-Tiefe arbeitet denn der lookup table der Geforce FX?

Hintergrund für meine Frage ist folgendes:
Wenn ich meinen Monitor per Messgerät und Software kalibriere,greift das Kalibrierprogramm auf die Video-LUT (lookup-table) zu und verändert dort die gamma-Werte.
Das führt bei 8-bit lookup-table leider dazu,dass danach kein gleichmässiger Grauverlauf (z.B. im Photoshop) mehr zu sehen ist,sondern mehr oder weniger Streifen.Bei meiner GF2 war das übrigens noch viel schlimmer als bei meiner GF4.

Mit wieviel bit Farbtiefe arbeiten also die lookup-table der Geforce FX?

Stefan

Unregistered
2003-01-18, 23:30:32
He Leute,
wo sind denn die Technik-Gurus unter Euch?
Stefan

StefanV
2003-01-18, 23:51:34
hast du es schonmal bei einer Radeon 9500/9700 versucht ???

LovesuckZ
2003-01-18, 23:55:25
Originally posted by Stefan Payne
hast du es schonmal bei einer Radeon 9500/9700 versucht ???

Hast du die dazugehoerige Frage entdeckt?

Unregistered
2003-01-19, 00:03:25
Stefan,
laut diesem Interview arbeitet ATI auch nicht mit 10bit/Kanal in der Video-LUT,zumindest verstehe ich die Aussage von ATI so.
Daher wird es mit der ATI wahrscheinlich auch nicht besser gehen.

Lovesuck,die Frage war,mit welcher bit - Tiefe (8 oder 10 per Kanal) die Video-LUT arbeitet.
Stefan

LovesuckZ
2003-01-19, 00:09:16
Originally posted by Unregistered
Lovesuck,die Frage war,mit welcher bit - Tiefe (8 oder 10 per Kanal) die Video-LUT arbeitet.
Stefan

Er fragt aber nicht nach Ati Karten. Deswegen frage ich auch, wo die Frage zu deiner Antwort stand.

Unregistered
2003-01-19, 00:22:51
Lovesuck,

die obige Antwort auf Deine Frage war nicht von Stefan Payne,sondern von mir (heisse auch Stefan).Ich hab Dich wohl missverstanden.
Meine Frage war natürlich nicht nach ATI-Karten,da hattest Du Recht.
Aber Stefan Payne wollte wohl einfach wissen,ob ich diesen Effekt auch schon bei einer ATI überprüft habe,was ich mit "nein" beantworten muss.
Stefan

StefanV
2003-01-19, 00:26:06
Originally posted by Unregistered
Aber Stefan Payne wollte wohl einfach wissen,ob ich diesen Effekt auch schon bei einer ATI überprüft habe,was ich mit "nein" beantworten muss.
Stefan

Genau, ich wollte einfach nur wissen, ob diesen Effekt auch auf anderen Karten als Geforce 2 und GF4 überprüft hast.

Unregistered
2003-01-19, 00:39:31
Ihr könnt den Effekt leicht reproduzieren.Macht eine neue Datei in Photoshop mit einem linearen Verlauf von schwarz nach weiss.Ihr werdet einen perfekten Verlauf bekommen,ohne Streifen.Dann geht mal in den nvidia-Treiber unter Farbkorrektur und schiebt mal am "gamma"-Regler,während ihr den Grauverlauf beobachtet.Der bekommt nun auf einmal Streifen.Dasselbe passiert bei der Monitorkalibrierung,die auf eben diesen gamma-Wert zugreift.
Bei der Parhelia mit 10bit/Kanal Video-LUT passiert das wahrscheinlich nicht.Und bei der GFFX.....?
Stefan

Unregistered
2003-01-19, 00:44:29
Wobei ich (als Nicht-Techniker) auch nicht genau weiss,wo der Unterschied zwischen 10bit RAMDAC (den ATI,Parhelia und GFFX haben)und 10bit Video-LUT liegt,den zumindest ATI wohl sicher nicht hat.
Stefan

Xmas
2003-01-19, 02:05:11
Die Gamma-Tabelle (oder hier Video-LUT) dient zur Gamma-Korrektur. Dabei wird ein Wert aus dem Framebuffer gelesen, als Index in die Tabelle verwendet, und der Eintrag der an diesem Index steht an den RAMDAC weitergeleitet. Die Tabelle ist dreifach ausgelegt, für Rot, Grün und Blau getrennt. Sie ist durch die Anzahl und Breite der Einträge definiert.

Theoretisch könnte man die Tabelle auch durch eine Recheneinheit ersetzen, aber weil Gamma als Exponent in der Formel vorkommt, wäre das deutlich komplexer.

Die Tabelle wandelt also einen x Bit breiten Wert aus dem Framebuffer (oder dem AA-Sample-Filter*) in einen y Bit breiten Wert für den RAMDAC um, den dieser in einen Analogwert (Spannung) umwandelt. Der RAMDAC ist also so ausgelegt dass er den y Bit breiten Wert verarbeiten kann, alles andere wäre sinnlos.

[* Bei Antialiasing mit Filtern beim Scanout (z.B. GF4) besteht die Möglichkeit, zwei bzw. vier 8Bit-AA-Samples zu einem 9Bit bzw. 10Bit Wert zu addieren. Ob dies wirklich getan wird weíß ich nicht.]


Bei 8Bit zu 8Bit Umsetzung erhält man maximal 256 Intensitäten in 1/255 Schritten. Dreht man hier ein bisschen am Gamma, kommt es vor dass verschiedene Eingangswerte denselben Ausganswert haben, somit tritt Banding auf. Das ist bei älteren Karten üblich, auch bei der GF2.

8Bit zu 10Bit verbessert das, man erhält 256 Intensitäten, aber mit 1/1023 Schritten. Die Gamma-Kurve wird also feiner aufgelöst. Das macht z.B. die GF4.

Die Parhelia bietet 10Bit zu 10Bit, also 1024 Intensitäten mit 1/1023 Schritten. Leider ist der Gigacolor-Framebuffer nur dort sinnvoll, wo auch mit mehr als 8 Bit pro Farbe gearbeitet wird, und das tun die wenigsten Programme.


Aufgrund der Aussage von ATI muss man annehmen dass 10Bit/Kanal nur in 3D für das Speichern von Zwischenwerten vorgesehen ist, wo die Rechengenauigkeit eine Rolle spielt, nicht aber als normales Framebuffer-Format. Deswegen kann man bei den Radeons wohl auch eine 8Bit zu 10Bit Umsetzung vermuten.

Unregistered
2003-01-19, 13:54:18
Hey XMas,
danke für Deine Mühe,das war wirklich ausführlich und aufschlussreich!
Nun bleibt nur noch die Frage offen,wie die GeforceFX die Sache macht:8bit (VLUT) zu 10bit(RAMDAC) oder 10 zu 10.

Stefan

Unregistered
2003-01-20, 12:24:52
Xmas,

zusätzlich zu meiner obigen Frage bezüglich der GFFX ist mir beim Durchlesen Deiner Antwort noch eine Frage gekommen:
Wie kann man bei einem 8 zu 10 Verfahren am Ausgang 1023 Schritte haben,wenn zuvor (in der LUT) nur noch 256 Schritte zur Verfügung standen?
Gruss
Stefan

Xmas
2003-01-20, 17:07:37
Originally posted by Unregistered
Xmas,

zusätzlich zu meiner obigen Frage bezüglich der GFFX ist mir beim Durchlesen Deiner Antwort noch eine Frage gekommen:
Wie kann man bei einem 8 zu 10 Verfahren am Ausgang 1023 Schritte haben,wenn zuvor (in der LUT) nur noch 256 Schritte zur Verfügung standen?
Gruss
Stefan
Du nimmst einen 8 Bit breiten Wert aus dem Framebuffer. Dies ist ein Intensitätswert mit 0 = Schwarz und 255 = volle Intensität. Man setzt daher auch 255 mit 1.0 gleich und sagt, die Intensität bewegt sich zwischen 0.0 und 1.0 in 1/255-Schritten.

Dieser Wert aus dem Framebuffer wird als Index in eine Tabelle mit 256 Einträgen verwendet. Bei einer GF4 sind diese Einträge 10 Bit breit. Die Einträge in der Tabelle entsprechen genauso Intensitäten von 0.0 bis 1.0, aber die Werte können sich nun um 1/1023 oder ein Vielfaches davon unterscheiden.

Da Gamma die Intensität nichtlinear verändert, "drängen" sich die Funktionswerte in einem bereich zusammen, in einem anderen werden sie "auseinandergezogen".


Eine Analogie wäre, wenn du versuchen würdest, die Zahlen mit einer Nachkommastelle zwischen 0 und 1 zu quadrieren, und das Ergebnis ebenfalls mit einer Nachkommastelle darstellen wolltest. Das sähe so aus:

0,0² -> 0,00 -> 0,0
0,1² -> 0,01 -> 0,0
0,2² -> 0,04 -> 0,0
0,3² -> 0,09 -> 0,1
0,4² -> 0,16 -> 0,2
0,5² -> 0,25 -> 0,3
0,6² -> 0,36 -> 0,4
0,7² -> 0,49 -> 0,5
0,8² -> 0,64 -> 0,6
0,9² -> 0,81 -> 0,8
1,0² -> 1,00 -> 1,0

Man sieht, dass eine Nachkommastelle nicht ausreicht, die Präzision der Ergebnisse sollte höher sein als die Präzision der Eingangswerte. Genauso ist es bei der Gamma-Tabelle auch.

Unregistered
2003-01-20, 17:21:00
Danke Xmas,
ich glaube,ich versteh`s ungefähr.Und wie macht`s nun die Geforce FX?
8bit VLUT oder 10bit?
Stefan

Unregistered
2003-01-23, 21:04:19
Weiss das echt niemand?

Stefan