AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Funtionsweise Grafikkarte Monitor
Thema durchsuchen
Ansicht
Themen-Optionen

Funtionsweise Grafikkarte Monitor

Ein Thema von steppo · begonnen am 10. Mai 2007 · letzter Beitrag vom 24. Mai 2007
Antwort Antwort
Seite 3 von 3     123   
Muetze1
(Gast)

n/a Beiträge
 
#21

Re: Funtionsweise Grafikkarte Monitor

  Alt 13. Mai 2007, 20:49
Zitat von WS1976:
..., dass das Bild 60 mal oder ( für Schlaumeier wie Xaromz ) so oft im Bildspeicher liegt wie die Bildwiederholfrequenz.
Das war die Vorstellung des Threaderstellers und das haben doch bisher alle Poster entsprechend anders erklärt. Ich weiss nicht wo du den anderen Postern (da du nicht den Threadersteller ansprichst) (so auch mich) eine Bestätigung in dieser Aussage gesehen hast.

Zitat von WS1976:
Dass die irgendwo getrennt abliegen ist und bleibt Unfug.
Wie gesagt, habe ich bis auf die Ausgangsfrage nirgendwo gesehen dass dies irgendwer behauptet hat. Es wurde statt dessen immer wieder anders geklärt.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#22

Re: Funtionsweise Grafikkarte Monitor

  Alt 14. Mai 2007, 06:18
OK,

ihr habt Recht und ich meine Ruhe.
Bitte keine Antworten mehr auf meine Beiträge (in diesem Thread)

Grüsse
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#23

Re: Funtionsweise Grafikkarte Monitor

  Alt 14. Mai 2007, 11:07
Am bestens wird es sein die geschichtliche Entwicklung der Grafikkarten zu betrachten, dann wird vieles klarer. Heutige Grafikkarten sind Hochleitsungsmaschinen die in bestimmten Punkten mehr Power haben können als die CPU des Rechners selber. Das begründet dann auch den fakt das es eben keine einfache und universelle Erklärung geben kann wie heutige Grafikkarten das Bild real erzeugen !

Als erstes gab es die Monochromen Grafikkarten. Sie bestanden aus 2 Bildschirmspeichern (virtuell betrachtet). Dem eigentlichen Bildschirmspeicher und einen Zeichnensatzspeicher (Font). Im Bildschirmspeicher standen überlicherweise 80x25 Bytes -> pro Speicherstelle 1 Byte ASCII also der Buchstabe den man darstellen will. Also 80 Buchstaben pro Zeile und 25 Zeilen. Die Grafikkarte liest nun mit der Zeilenfrequenz diese Bytes aus. Das wird als Index benutzt um aus der Fonttabelle die Pixel des Zeichens zu aktuellen Zeile zu dekodieren. Das waren 9 Pixel -> 8 Pixel fürs Zeichen und 1 Pixel als Lücke. Diese 9 Pixel wurden dann im Pixeltakt gesetzt.

Man benötigte also 80x25+256x12 Bytes an Speicher, sehr wenig also.

Weiter ging es mit Farbgrafikkarten. Dort wurde der Bildschiemspeicher quasi verdoppelt und zu jedem ASCII Code noch 1 Byte an Farbinformation gespeichert. Diese Byte besteht aus 2 Nibbles = 4Bit und diese beschreiben die Hinter- und Vodergrundfarbe des Zeichens das dargestellt werden soll. Das ergibt also 16 Farben -> EGA.

VGA Karten stellten dann einen "Quantensprung" dar, konnte man ihnen doch
1.) echte Grafiken=Bitmaps darstellen
2.) mehr als nur 16 Farben darstellen (anfangs 256)
3.) größere Auflösungen erreichen
4.) hatte mehr Grafikspeicher zur Verfügung als für den aktuellen Modus nötig wären

Punkt 4.) führte dann dazu das man diesen Speicher virtuell in Bänke einteilen konnte und der Karte dann einfach die Addresse des Speichers mitteilte an dem das aktuelle Bild liegt, das sogennate Bankswitching. So konnt man 2 bis zu 8 Bilder im Speicher halten, sie reiherhum neu berechnen und immer nur eine dieser Bänke anzeigen. Ziel dabei ist es die Darstellung auf dem Monitor flickerfrei zu machen. Denn auch bei 60Hz Bildwiederholrate kann man die Aktualisierung des Bildschirmspeichers als Flicker beobachten. Das fällt umsomehr auf je häufiger das Speil zb. seinen Darstellung auffrischt/neu berechnet. ALso bei schnellen Games wir Arkanoid war dies schon sichtbar.
Ein weitere Vorteil dieses größeren Speichers war es das man nun Scrollen konnte. Statt also nur ein Bankstiching zu machen konnt man über den vorher erzeugten Bildspeicher/Darstellung nach oben/unten scrollen. Ebenfalls bei Arkanoid sehr schön umgesetzt.

Nachfolgende Karten verfolgten nun das Ziel immer mehr Speicher in immer höhren Grafikauflösungen mit immer mehr Farbe darzustellen. Man erkannt schnell eine Grenze in der Leistungsfähigkeit der CPU des Rechners. Diese war immer mehr damit beschäftigt ihre Grafiken zu berechnen. Folge davon ist logischerweise das die Grafikkarte einiges dieser Arbeit der CPU abnehmen sollte. Die Grafikarte wurde intelligent. Das fing damit an als Grafische Betriebsysteme den Markt eroberten, bzw. leicht vorher mit den professionellen Spielkonsolen. Man entwickelte Hardware-Sprite-Unterstützung. Das sind separate Speicherbereiche die die Animation einer Spielfigur enthalten. Die Garfikkarte kennt die Dimension und Anzahl der Frames dieser Sprites und stellt an vorprogrammierten Koordinaten auf dem Bildschirm diese Sprites selbständig dar. Die Overlay Technik war geboren. Overlays sind Speicherbe3reich die die Grafikarte selbständig über den normalen Bildschirminhalt einblendet. Zb. alle heutigen AVI/MPEG Player arbeiten mit solchen Overlays. Ein angezeigtes Bild auf dem Monitor bestand also eben nicht mehr aus nur einem zusammenhängendem Bildschirmspeicher sondern nunmehr aus vielen solcher Overlays die die Grafikkarte dynamisch selbständig anzeigte.

Die logsche Weierentwicklung war es nun die Grafische Verküpfungen zwischen einzelnen Overlays ebenfalls der GraKa zu überlassen. Bestes Beispiel ist der Schatten untern Mauscursor. Auch dies macht eine heutige Grafikkarte und nicht mehr die CPU.

Der letzte Schritt könnte man als Vektor-Grafikkarten bezeichnen. Statt also mit Bitmaps, durch die CPU erzeugt, die GraKa zu füttern, werden ganze 2 dimensionelle Szenen als Vektoren mit Beleuchtung/Bewegungsvektroren/Schatten und Oberflächenstrukturen der GraKa übergeben. Diese baut dann live, in dem sie mit einem Hochleistungsprozessor diese Szene berechnet, das Bild zusammen.
Es gibt also den Bildschirmspeicher wie ürsprünglich garnicht mehr.

Das zur Grafikkarte nun zu den Monitoren:
Früher war das alles analog. Als erstes nun ein Schwarz/Weiß Monitor, auch monochrom genannt. Der Monitor benötigte im Grunde nur 3 Signale -> H-Sync, V-Sync und "Pixel". H und V Sync sind die Signale die den Elektronenstrahl in der Röhre von oben nach unten und von links nach rechts bewegen. Pixel bestimmte ob nun der Bildpunkt hell oder dunkel war.

Mit Farbe musst sich auch hier was ändern. Es gab nun 3 Farbsignal, analog für Rot/Grün/Blau. Der Spannungspegel dieser Leitungen bestimmmte die Helligkeit der einzelnen Farbe. Das bedeutete die GraKa musst nun ein Digitales Signal und ein Analoges umwandeln. Man benötigt also drei AD-Wandler (analog zu digital) in der GraKa. Die Herrausforderung dabei ist der Pixeltakt, also die Geschwindigeit mit der dieser Wandler die Daten umwandeln müssen. Das sind minimal 15 Mhz Wandlungsrate. So, der oben angesprochene RAMDAC übernahm diese Aufgabe in der GraKa. Dies ist ein AD Wandler für 3 Kanäle (RGB) der zusätzlich noch eine Loookuptabelle enthält. Das ist eine Farbtabelle die zb. 256 Farbeinträge enthält aber diese 256 Farben in quasi 2^24 Farbtiefe umrechnen konnte. So war es möglich auf VGA Karten mit 256 gleichzeitig darstellbaren Farben denoch insgesamt 2^24 Farben darzustellen, aber eben immer nur 256 Farben davon gleichzeitg.
Naja, später wurde alles nochmal besser, merh Farbe, mehr Auflösung.
Der entscheidende Schritt passiert in diesem Sektor gerade jetzt. Der Übergang von analogen Monitoren zu digitalen. Nunmehr werden die Signale der GraKa rein digital an den Monitor geschickt. Und da die Datenmenge immer weiter anwächst werden die Monitore auch mathematisch komplexe Komprimierungsverfahren anwenden -> HDTV. Als kleiner Effekt nebenbei kann man nun diese digitalen Daten auch noch verschlüsseln so das in Zukunft der Monitor nur noch Daten anzeigen wird die der jeweilige Betrachter auch bezahlt hat.

Soweit das was ich die letzten Jahre verfolgen konnte Natürlich könnte man noch viel mehr dazu schreiben, 3 fette Bücher werden es bestimmt.


Gruß Hagen
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#24

Re: Funtionsweise Grafikkarte Monitor

  Alt 14. Mai 2007, 19:39
Zitat von negaH:
Als erstes gab es die Monochromen Grafikkarten. Sie bestanden aus 2 Bildschirmspeichern (virtuell betrachtet). Dem eigentlichen Bildschirmspeicher und einen Zeichnensatzspeicher (Font). Im Bildschirmspeicher standen überlicherweise 80x25 Bytes -> pro Speicherstelle 1 Byte ASCII also der Buchstabe den man darstellen will. Also 80 Buchstaben pro Zeile und 25 Zeilen. Die Grafikkarte liest nun mit der Zeilenfrequenz diese Bytes aus. Das wird als Index benutzt um aus der Fonttabelle die Pixel des Zeichens zu aktuellen Zeile zu dekodieren. Das waren 9 Pixel -> 8 Pixel fürs Zeichen und 1 Pixel als Lücke. Diese 9 Pixel wurden dann im Pixeltakt gesetzt.

Man benötigte also 80x25+256x12 Bytes an Speicher, sehr wenig also.
Wenn du damit MDA (Monochrome Display Adapter) meinst, dann muss ich dich korrigieren. Diese haben neben jedem Byte für den Zeichenkode ein zweites folgend mit Attributen (intensiv, blinked). Da ich hier eine funktionstüchtige MDA Karte sowie Monitor habe (für Debugausgabe unverzichtlich im PM bzw. HW Programmierung ohne OS).

Mein Hinweis ist natürlich hinfällig, wenn du ein System vor den MDA Karten/anderes System meinst.

/EDIT: HGC (Hercules Graphics Card) und MDA nehmen sich dabei nichts, nur das HGC noch einen Grafikmodus konnte. Bei der Aussage zum Textmodus ändert sich nichts.
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

Re: Funtionsweise Grafikkarte Monitor

  Alt 21. Mai 2007, 22:16
Hallo zusammen,

wie ich sehe hat mein Thema zu heftigen Diskussionen geführt. Dies war nicht meine Absicht. Ich freue mich aber über so viel Resonanz.

Ich bedanke mich auch nocheinmal recht herzlich, dass ihr euch so viel Zeit genommen habt, mir das ganze zu erklären.

Wie ich dazu kam, diese Frage ins Forum zu stellen!

Ich habe vor längerer Zeit einen Bericht gesehen, wo Tests in Kinos gemacht wurden, indem im Film Einzelbilder durch Obst (in diesem Fall Bananen) ersetzt wurden. Ich weiß, altes Thema, aber sehr interessant. Das Ergebnis des Tests war, dass 75% der Kinobesucher beim Anblick des Obstkorbes zu einer Banane griffen.

Erschreckend oder?

Nach ausgiebiger Recherche habe ich im Netz diverse Programme gefunden, die aufgrund dieser Technik den Menschen helfen wollen sich z.B. das Rauchen abzugewöhnen. Tolle Idee. Allerdings sind diese Programme, meiner Meinung nach unbrauchbar, da sie genau diese Technik (nämlich das für das Auge unsichtbare) nicht beherrschen. Entweder flimmern diese Programme oder das eingeblendete Ziel ist zu lange sichtbar oder gar unregelmäßig sichtbar.

Nun, wie dem auch sei habe ich, neugierig wie ich bin, versucht dieses einmal zu Programmieren (Canvas, durchsichtige Form, Timer, usw.). Allerdings, wie sollte es auch anders sein, bin ich sehr schnell an meine Grenzen gestoßen.

Da es anscheinend nicht über die Schiene Windows geht, mußte das ganze also noch tiefer in die Thematik Grafikprogrammierung gehen, und so bin ich mit der Frage "Wie funktioniert das ganze eigentlich zusammen?" bei euch gelandet.

Gruß Steppo
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#26

Re: Funtionsweise Grafikkarte Monitor

  Alt 22. Mai 2007, 00:15
Moin!

Das Problem der unbewussten Suggestion ist, dies unbemerkt zu tun. Das ein Canvas dafür zu langsam ist, hast du schon festgestellt. Wenn, dann sollte das Bild nur wenige ns bis ms gezeigt werden. Dies ist eigentlich nur mit folgenden Eckpunkten zu realisieren:

1. es findet eine Synchronisation mit der Abtastlücke (Kathodenrücklauf) statt bei CRT's
2. Die Bildwiederholfrequenz ist entsprechend hoch (desto kleiner, desto länger bleibt ein dargestelltes "Einzel"bild bestehen) bei CRTs

Bei den TFTs sind viel kürzere Zeiten machbar, da diese (digital angeschlossen) jede Speicheränderung direkt und digital auf den Bildpunkt (also bei Nutzung der nativen Auflösung, keine Interpolation) überbringen. Wenn ein analoges Signal genutzt wird (was die meisten Interfaces dann eh bitte auf 60 Hz haben wollen wegen der Signalverfolgung), dann ist das ganze wieder mehr als hinfällig...

Grundlegend sollte dort eine etwas hardwärenähere Lösung bevorzugt werden. Als Möglichkeit steht dir dort als High Level API DirectX zur Verfügung. Dort kapselt Windows afk auch die Informationen über die Abtastlücke in einer API bzw. einen möglichen Zugriff und somit eine der Möglichkeiten. Die WinAPI DC's sollten da wohl etwas zu sehr "verwaltet" bzw. "virtuell" sein um damit was vernünftiges in der Richtung basteln zu können.
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#27

Re: Funtionsweise Grafikkarte Monitor

  Alt 22. Mai 2007, 00:43
Zitat von steppo:
Das Ergebnis des Tests war, dass 75% der Kinobesucher beim Anblick des Obstkorbes zu einer Banane griffen.
Erschreckend oder?
Hört sich eher nach unwissenschaftlichen Methoden an. Mich interessiert die Quelle, von der diese Information stammt... hast du die zufällig noch parat?
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#28

Re: Funtionsweise Grafikkarte Monitor

  Alt 22. Mai 2007, 23:26
Solche Berichte über Suggestionsversuche geistern schon seit vielen Jahren immer mal wieder durchs Netz... meiner Meinung nach handelt es sich um eine Urban Legend.

Nach ein bißchen Gurgeln bin ich auf folgende URL gestoßen:
https://bora.uib.no/bitstream/1956/2...ta+Untiedt.pdf

Guck mal auf Seite 96, da steht was dazu.
  Mit Zitat antworten Zitat
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#29

Re: Funtionsweise Grafikkarte Monitor

  Alt 24. Mai 2007, 09:31
Weiß denn jemand hier genaueres darüber, wie ich Informationen über die Abtastlücke abfragen kann? Evtl. mit DirectX/DelphiX? Das wäre möglcherweise genau die Antwort auf meine Frage.

Gruß, valjah
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz