PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie stellt eine Graka den Desktop dar?! [technisch]


groni
2010-08-15, 13:08:25
Hallo,

ich muss fürs Studium die Funktionsweise einer Graka im 2D und 3D Betrieb genauer verstehen!
Im ComputerBase Forum meinte jemand, dass ich hier eher Beistand bekommen kann :)

Bleiben wir erstmal bei 2D:

Ich habe ein Blockbild zur Darstellung vom Desktop inkl einem Fenster mit
Hardwarebeschleunigter Videowiedergabe:
http://www.hasi-land.com/GrakaVideo.gif

Ich verstehe das ganze so:

1) Die RGB-Daten (Desktop ansich) und die Videodaten (z.b YUV) gelangen
über BUS oder (moderner) über Punkt-zu-Punkt-verbindung zur Grafikkarte

2) Die RGB Daten werden in der 2D-Engine verabeitet und enthalten danach
u.a Positionen für Fenster etc. Das Videofenster ist z.b mit einer Keyfarbe makiert.

3) Die RGB-Daten aus der 2D-Engine werden ins primary-surface des V_Rams
geladen (Bereich für Desktop ansich bzw. Vollbildanzeige).

4) Die Video-Daten werden direkt ins secondary-surface des V_Ram geladen
(Anteile des Bildes, die nicht direkt zum Desktop gehören bzw. einzeln verarbeitet werden müssen)

5) Der Scaler/Filter und Zeilenpuffer verarbeiten die VUY Video-Daten.
Z.b Anpassung auf 60Hz und Fenstergröße.

6) Umwandeln des Videosmaterial von VUY nach RGB

7)Die RGB-Daten des Desktops aus dem primary surface werden in der
color keying und window-control unit für das Zusammenfügen mit weiteren
Daten aus dem secondary Surface vorbereitet.
(durchsichtig machen mancher Bildbereiche, Z-Position der Fenster=Sichtbarkeit etc.)

7)Zusammenfügen der Daten im Digital/Analog-Converter und
ggf. Umwandlung in analoges RGB format für D-Sub-ausgabe.

So ist jedenfalls aktuell mein Verständnis des Ablaufs!
Liege ich damit richtig?
Unsicher bin ich mir am meisten damit, wann die Daten gemerged werden.
So wie ich es verstehe kann eine einfache Desktopausgabe ohne Fenster auch direkt
aus dem RAM an eine digitale Anzeigequelle weitergegeben werden.
Is der RAM DAC ansich nur für analoge Ausgabe nötig und die Keying/Windowcontroll
unit führt alle RGB Daten zusammen oder werden die Daten im RAM DAC zusammengeführt
und bei digitaler Ausgabe nur die Wandlung nach analog ausgelassen ?

Hoffe es gibt hier so eingefleischte Profis, dass jemand Rat weiß :)

InsaneDruid
2010-08-15, 14:07:28
Das Blockschaltbild zeigt aber nur die Wiedergabe von RGB/"YUV" (YUV wird nicht übertragen, sondern YCbCr), nicht das Darstellen des Desktops.

groni
2010-08-15, 14:22:28
Ich bin der Meinung mit den RGB Daten sind vorberechnete Bilddaten wie z.B WinXP Desktop gemeint.
Wo ist der explizite Unterschied bei YUV und YCbCr?
Y= Luminanzanteil UV=Chromaanteile wobei CbCr doch nur eine genauere Angabe für Chroma Blue und Chroma Red ist oder nicht ?
Im Endeffekt berechnet sich der Fehlende 3te Teil Cg über Konstanten
k1*Cr + k2*Cg + k3*Cb = 1.

InsaneDruid
2010-08-15, 14:36:13
http://de.wikipedia.org/wiki/YUV-Farbmodell

groni
2010-08-15, 15:18:25
Ah verstehe! Okay, aber die Beschriftung ist quasi vom Skript vorgegeben. Entweder weiß der Prof es selbst nicht besser oder es dient als Vereinfachung.

Kannst du denn was zum Rest mit dem colorkeying, window-control und RAM DAC sagen oder hast einen Link zu einer aussagekräftigen Erklärung ? :)

PatkIllA
2010-08-21, 14:38:20
Mit ColorKeying ist wahrscheinlich gemeint, dass das Videobild an genau den Stellen sichtbar ist, wo eine bestimmte Farbe sichtbar ist. Damit hat man evtl auch Video an Stellen wo es gar nicht hingehört.
In Zeiten von Aero geht das allerdings ein bisschen anders.
RAM DAC passt bei DVI auch nicht.

groni
2010-08-22, 21:25:16
Ja, bei neuem Betriebssystemen ist das schonwieder anders :)
Das Keying macht defintiv so etwas, aber ich weiß halt nicht wie im Detail der Ablauf ist :/

PatkIllA
2010-08-22, 21:37:58
Die Grafikkarte kennt das Rechteck, wo das Video (wohl das video window im primary surface) hin soll und es gibt eine Farbe, die sagt, dass dort auch wirklich das Video ist und nicht ein drüberliegendes Fenster. Das kannst du sehen wenn du einen Screenshot machst. Da fehlt das Overlay und es ist ein gefülltes Rechteck an der Stelle.
Wenn jetzt die Zeile für die Ausgabe aus dem Speicher ausgelesen wird, dann entscheidet die Karte anhand von PixelPosition und Farbe, ob das Video oder die normale GUI sichtbar ist.
Wenn das Video sichtbar sein soll, dann kommen die Daten nach Bearbeitung durch Scaler und YUV durch RGB Konverter aus dem Zeilenpuffer.
Das besondere ist halt, dass die Daten bei der Ausgabe überlagert werden und das Bild was letztlich auf den Bildschirm kommt nie in Gänze in einem Pufferspeicher lag.

http://en.wikipedia.org/wiki/Hardware_overlay

groni
2010-08-26, 13:41:51
Super, danke, dass hat mir nochmal weitergeholfen!
Morgen ist dann auch Klausur ;)