-
Die Erfindung bezieht sich auf Schaltungen zum
Bereitstellen digitaler Farbtonwerte für eine Anzeigeeinrichtung einer
Datenverarbeitungseinrichtung mit einer Farbindex-Nachschlagetabelle
zum Übersetzen
von Pixeldaten in digitale Farbtonwerte sowie auf ein Verfahren
zum Aktualisieren einer Farbindex-Nachschlagetabelle.
-
Ein typisches Computersystem erzeugt
Daten, welche auf einem Ausgabedisplay wiedergegeben werden. Dieses
Ausgabedisplay ist typischerweise als Kathodenstrahlröhre ausgebildet,
die eine Anzahl von Vollschirmbildern so rasch nacheinander erzeugt,
daß sie
dem Betrachter auf dem Schirm als gleichmäßige Bewegung erscheinen, wenn
ein wiedergegebenes Programm eine derartige Bewegung erzeugt. Um
die nacheinander wiedergegebenen Einzelbilder (Rahmen) zu erzeugen,
können
Daten in einen Rahmenpuffer geschrieben werden. Der Rahmenpuffer
speichert Informationen über
jede Displayposition (jedes Pixel), die zur Erzeugung des Vollbildes
beleuchtet werden kann. So kann ein Display beispielsweise in der
Lage sein, Pixel in etwa 1.000 horizontalen Zeilen mit jeweils etwa
1.000 Pixeln wiederzugeben. All diese Informationen in jedem Rahmen
werden in den Rahmenpuffer geschrieben, bevor er für die Bildwiedergabe
abgetastet wird.
-
Wenn ein vollständiges Bild beschreibende Daten
im Rahmenpuffer vorhanden sind, kann der Rahmen zum Display übertragen
werden. Typischerweise werden Daten vom Rahmenpuffer zum Display pixel-
und zeilenweise übertragen,
beginnend an der oberen linken Ecke des Display und horizontal fortfahrend
von links nach rechts und Zeile um Zeile abwärts zur unteren rechten Ecke
des Display. Um das Bild auf dem Ausgabedisplay kontinuierlich erscheinen
zu lassen; müssen
aufeinanderfolgende Rahmen im Rahmenpuffer gleichmäßig zum
Ausgabedisplay abgetastet werden und zwar mit einer Geschwindigkeit
von 30 Rahmen/sec. oder mehr.
-
Daten können für die einzelnen Pixel gespeichert
werden, die in einer Anzahl von Formen dargestellt werden sollen.
In der einfachsten Form kann ein auf dem Display dargestelltes Pixel
eine von zwei Farben haben, typischerweise weiß oder schwarz. Da nur zwei
Bedingungen möglich
sind, verwendet diese Wiedergabeart nur ein einziges Datenbit zur Anzeige
der einen oder der anderen Farbe der Pixeldaten. Pixeldaten können auch
in einer Grauskalendarstellung gespeichert werden, die eine Anzahl
von Grautönen
von weiß nach
schwarz darstellen. In einer Grauskalendarstellung werden mehrere
Bits zur Darstellung jedes Pixels verwendet. Die Anzahl von Bits
muß ausreichen,
um die benötigte
Anzahl von Tönen
zu liefern. Beispielsweise können
32 Farbtöne mit
fünf Bits
dargestellt werden.
-
Farbdisplaysysteme können 8,
12, 24 oder eine beliebige andere Anzahl von Bits zur Darstellung der
Farbinformation in jedem Pixel verwenden. Es gibt jedoch zwei grundsätzlich akzeptierte
Verfahren zur Farbdarstellung auf einem Ausgabedisplay. Bei dem
ersten Verfahren werden die verfügbaren
Pixel in drei Gruppen unterteilt, von denen jeweils eine einen Farbton
von rot, grün
oder blau darstellt. Wenn dann beispielsweise 24 Datenbits verwendet
werden, benutzt das System in typischer Ausführung acht dieser Bits zur
Darstellung einer Rottönung,
acht zur Darstellung einer Grüntönung und
acht zur Darstellung einer Blautönung.
Jede dieser Tönungen
kann von farblos zu vollständig
gesättigt
verlaufen. Die drei Rot-, Grün-
und Blautönungswerte
werden in einer dem Fachmann bekannten Weise kombiniert, um die endgültige Farbe
zu erzeugen. Selbstverständlich können Farbsysteme
eine niedrigere Anzahl von Bits zur Darstellung jedes Farbtons verwenden
und eine niedrige Anzahl von Tönungen
jeder Farbe haben.
-
Alternativ kann ein Farbsystem auf
Farbindexierung basieren. Bei einem Farbindexsystem werden die der
Definition eines Pixels zugewiesenen Bits als Code verwendet, um
eine spezielle Farbe in einer Farb-Nachschlagetabelle (Farbindex-Speicherabbild) zu
finden. Ein solches System, genannt Farbindex-System, ermöglicht es,
daß eine
geringere Anzahl spe zieller Farben zur Verwendung aus der beispielsweise
sehr großen
Anzahl von 24-Bit-Farben ausgewählt
wird. Ein besonders erwünschtes
Merkmal eines Farbindex-Systems besteht darin, daß einfach
die in der Farbnachschlagetabelle oder Farbabbildungseinrichtung
(colour map) gespeicherten Farbwerte geändert werden, um unterschiedliche Farben
für verschiedene
Programme zu bilden. Ein sowohl die Farbindexierung mit Hilfe einer
Nachschlagetabelle als auch die direkte RGB-8-Bit-Darstellung verwendendes
Anzeigesystem ist z. B. in der
DE 39 15 439 A1 beschrieben. Dort ist zusätzlich die Korrektur
der RGB-Farbtonwerte durch Abbildung in korrigierte RGB-Werte mit
Hilfe von Gammakorrektur-Farbnachschlagetabellen beschrieben.
-
Die Änderung der Farben in einer
Farbindex-Tabelle bedingt jedoch, daß in die Tabelle geschrieben
wird. Dies sollte so geschehen, daß das Schreiben die Darstellung
auf dem Ausgabedisplay nicht stört.
In vielen Systemen war die verwendete Methode relativ langsam und
nicht in der Lage, optimale Ergebnisse zu erbringen, insbesondere
dann, wenn sich der Farbindex häufig ändert. Dies
bedeutet, daß eine
Störung
der Anzeige einfach akzeptiert wurde.
-
Bei einem typischen Computersystem schreibt
eine Steuerschaltung (z. B. die CPU) einfach die Farbindex-Tabelle
zum Ändern
der dort gespeicherten Farbtonwerte. Um eine Beeinträchtigung
der Anzeige zu vermeiden, könnte
ein Zwei-Port-Speicher
für die
Farbindex-Tabelle verwendet werden, wobei über den einen Port die geänderten
Werte in die Farbtabelle eingeschrieben werden, während der andere
Port zum Übersetzen
der Pixelwerte in auszugebende Farbtonwerte verwendet wird. Zwei-Port-Speicher
sind jedoch relativ teuer, so daß die Verwendung herkömmlicher
Ein-Port-Speicher erwünscht
ist. Eine Verwendung von Ein-Port-Speichern bedeutet jedoch, daß die Farbtabelle
keine Farbtonwerte zur Ausgabe an die Anzeige ausgeben kann, während der
Port zum Einschreiben geänderter
Farbtonwerte in die Tabelle benutzt wird.
-
Aufgabe der Erfindung ist, es, häufige und rasche Änderungen
der Farbtonwerte in der Farbindex-Tabelle ohne Beeinträchtigung
der Anzeige zu ermöglichen.
-
Diese Aufgabe wird erfindungsgemäß einerseits
durch eine Schaltung mit den Merkmalen des Patentanspruchs 1 bzw.
ein Verfahren mit den Merkmalen des Patentanspruchs 10 sowie andererseits durch
eine Schaltung mit den Merkmalen des Patentanspruchs 12 gelöst.
-
Beide erfindungsgemäßen Lösungen gehen von
einer Grundschaltung aus, wie sie in der nachfolgenden detaillierten
Beschreibung anhand der 1 und 3 beschrieben ist. Beiden
Lösungen
ist gemeinsam, daß an
geeigneter Stelle ein FIFO-Puffer-Speicher in einen Pfad der Übertragung
von digitalen Farbtonwerten eingefügt wird. Bei beiden Lösungen sorgt
der FIFO-Puffer-Speicher in Verbindung mit einer Steuereinrichtung
dafür,
daß eine
Datenübertragung
zu bestimmten Zeitintervallen in den Puffer-Speicher hinein in eine
Datenübertragung
zu anderen, geeigneteren Zeitintervallen aus dem Puffer-Speicher
hinaus derart transformiert wird, daß keine Störung der Ausgabe von digitalen
Farbtonwerten während
der aktiven Abtastperioden entsteht oder diese nur in Ausnahmefällen zugelassen
wird. Beide Ausführungsformen
basieren auf dem Grundgedanken der Ausnutzung der durch horizontale Austastintervalle
zusätzlich
zur Verfügung
stehenden Zeit.
-
Der Gegenstand der Erfindung sowie
vorteilhafte Weiterbildungen sind in den Patentansprüchen gekennzeichnet.
-
Im folgenden wird die Erfindung anhand
von in der Zeichnung schematisch dargestellten Ausführungsbeispielen
näher erläutert. In
der Zeichnung zeigen:
-
1 ein
Funktionsblockdiagramm eines Ausführungsbeispiels der erfindungsgemäßen Schaltung
zur Erzeugung von Pixeldaten für
ein Ausgabedisplay;
-
2 ein
Blockschaltbild der Schaltung zum Schreiben von Daten in die Farb-Nachschlagetabellen
der Ausgabedisplayschaltung;
-
3 ein
Funktionsblockdiagramm einer zusätzlichen
Schaltung zur Erzeugung von Pixeldaten für ein Ausgabedisplay; und 4 ein Blockdiagramm einer
zusätzlichen
Schaltung zum Schreiben von Daten in die Farb-Nachschlagetabellen
einer Ausgabedisplayschaltung.
-
Einige Teile der nachfolgenden Figurenbeschreibung
werden in Form von symbolischen Darstellungen der Operationen an
Datenbits innerhalb eines Computerspeichers angegeben. Diese Beschreibungen
und Darstellungen sind die vom Datenverarbeitungsfachmann verwendeten
Mittel, um die Substanz ihrer Arbeit wirksam an andere Fachleuchte
weiterzugeben. Diese Operationen bedingen physikalische Manipulationen
von physikalischen Größen. Gewöhnlich,
jedoch nicht notwendigerweise, liegen diese Größen in Form von elektrischen
oder magnetischen Signalen vor, die gespeichert, übertragen,
kombiniert, verglichen oder auf andere Weise verarbeitet werden
können.
Es hat sich prinzipiell aus Gründen
des allgemeinen Gebrauchs als zweckmäßig erwiesen, auf diese Signale
als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen
o.dgl. Bezug zu nehmen. Zu beachten ist jedoch, daß allen diesen
und ähnlichen
Ausdrücken
geeignete physikalischen Größen zugeordnet
sind, und sie daher zweckmäßige Bezeichnungen
für diese
Größen sind.
-
Die durchgeführten Manipulationen und Verarbeitungen
werden häufig
als Addition oder Vergleich bezeichnet. Geeignete Maschinen zur
Durchführung
dieser Operationen umfassen digitale Unviversalrechner oder andere
Computer. In allen Fällen sollte
der Unterschied zwischen der Verfahrensoperation beim Betrieb eines
Computers und dem Verfahren der Berechnung selbst berück sichtigt
werden. Die Erfindung bezieht sich auf ein Verfahren und eine Einrichtung
zum Betrieb eines Computers bei der Verarbeitung elektrischer oder
anderer (z.B. mechanischer, chemischer) physikalischer Signale zur
Erzeugung anderer gewünschter
physikalischer Signale.
-
In 1,
auf die im folgenden Bezug genommen wird, ist ein funktionelles
Blockdiagramm der erfindungsgemäß ausgebildeten
Ausgabedisplay-Schaltung 10 gezeigt. Die Schaltung 10 gemäß 1 dient zur Übertragung
von Pixeldaten zum Ausgabedisplay. Die Schaltung 10 weist
eine Adressmoden-Auswahlschaltung 12 auf. Letztere dient
bei der Erfindung zur Steuerung der Übersetzung der verschiedenen
darzustellenden Farbmoden, um das Auflegen von Videosignalen auf
einem Ausgabedisplay und das Gewinnen von Videosignalen aus den
in einem (in der Zeichnung nicht dargestellten) Rahmenpuffer gespeicherten
Daten zur Verwendung durch die Peripherieeinrichtung zu ermöglichen.
-
Die Schaltung 12 nimmt Pixeldaten (P_DATA)
aus einem Rahmenpuffer auf. Diese Daten können in einem von zwei unterschiedlichen
Farbmoden vorliegen. Bei dem bevorzugten Ausführungsbeispiel sind dies ein
24-Bit-Farbmodus und ein 12-Bit-Index-Farbmodus. Bei dem 24-Bit-Farbmodus stellen
die im Rahmenpuffer gespeicherten, jedes Pixel definierenden Daten
die Farbe durch drei einzelne 8-Bit-Werte dar. Jeder dieser Werte
definiert einen roten, grünen
oder blauen Farbton , der mit den anderen der drei Werte zur Erzeugung
einer endgültigen
Pixelfarbe kombiniert wird. Die Rot definierenden acht Bits zeigen
den Anteil von Rot in der endgültigen Farbe
zwischen Null und voll gesättigt
an; die Grün und
Blau darstellenden acht Bits stellen jene Farben in ähnlicher
Weise dar. Der 24-Bit-Farbmodus ermöglicht die Darstellung von
angenähert
16 Mio. einzelnen Farbtönungen
auf dem Ausgabebildschirm. Die Verwendung der 24-Bit-Farbe bedingt jedoch, daß wenigstens
die vollen 24 Bits für
jedes auf dem Ausgabedisplay anzuzeigende Pixel im Farbpuffer gespeichert
wird. Der Rahmenpufferspeicher ist in typischer Aus führung ein
2-Port-Video-Direktzugriffsspeicher, der ziemlich kostspielig ist.
-
Der Index-Farbmodus bietet andererseits eine
wesentlich geringere Anzahl von Farben, die aus dem Gesamtspektrum
von angenähert
16 Mio. Farben bzw. Tönungen
auswählbar
sind. Nur 12 Datenbits dienen bei dem bevorzugten Ausführungsbeispiel
zur Definition einer Farbe, so daß nur 4.096 Einzelfarben zu
irgendeinem Zeitpunkt ausgewählt
werden können.
Tatsächlich
ist der Index ein Code, der zur Auswahl einer speziellen Farbe aus
einer Gesamtzahl von im 24-Bit-Farbsystem verfügbaren Farben verwendet wird.
Der durch die 12 Bits codierte Wert muß jedoch decodiert werden,
um die auf dem Ausgabedisplay wiederzugebende richtige 24-Bit-Farbe
zur Verfügung
zu stellen. Die Verwendung eines Index-Farbmodus ermöglicht eine
geringere Anzahl von zu speichernden Datenbits und beansprucht daher
weniger Raum bzw. Kapazität
im Rahmenpuffer. Daher wird in weniger kostspieligen Systemen üblicherweise
das Farbindexieren verwendet. Viele Programme sind für dieses
Farbformat geschrieben.
-
Damit ein 24-Bit-Farbsystem Programme
unter Verwendung von indexierter Farbe abarbeiten kann, muß es in
der Lage sein, die Farbindexwerte zu decodieren. Zum Decodieren
der durch die Farbindexwerte dargestellten Farben überträgt das hier
beschriebene System den vom Rahmenpuffer für jedes Pixel gelieferten Farbindexwert
auf jede der drei Farb-Nachschlagetabellen-Schaltungen 14, 15 und 16.
Wenn der Betriebsmodus anzeigt, daß die Daten Farbindexdaten
sind, sieht jede der drei Farbtabellen-Schaltungen 14, 15 und 16 an
der durch den codierten Index angegebenen Position nach, liest den dort
gespeicherten Wert und liefert ein Ausgangssignal von acht Bits.
Jedes 8-Bit-Ausgangssignal
definiert eine der drei Farbtondarstellungen (Rot/Grün/Blau)
einer 24-Bit-Farbe. Beispielsweise erhält die Farb-Tabellen-Schaltung 14 den
Indexwert und weist auf diesen Wert hin, um ein den Wert des Rot-Farbtons
in der endgültigen
24-Bit-Farbe anzeigendes 8-Bit-Ausgangssignal zu erzeugen. Die Schaltungen 15 und 16 arbeiten
jeweils in ähnlicher Weise
und entwickeln Ausgangsdaten, welche die Farbtöne von Grün und Blau in der endgültigen Farbe für jedes
Pixel erzeugen, für
das ein Indexwert geliefert wird.
-
Um feststellen zu können, daß die im
Rahmenpuffer gespeicherten und an die Schaltung 12 gelieferten
Indexwerte Farbindexwerte und nicht 24-Bit-Farbwerte sind, wird
mit jedem Pixelwert ein Pixel-Modus-Signal P_MODE an die Schaltung 12 geliefert.
Das Pixel-Modus-Signal kann ein Einzelbit sein, dessen einer Zustand
das eine Farbformat und dessen anderer Zustand das andere Farbformat
anzeigt. Auf diese Weise können
sowohl im 24-Bit-Farbformat als auch im 12-Bit-Farbindexformat codierte
Pixelwerte gleichzeitig im Rahmenpuffer gespeichert werden. Da verschiedene
Anwendungsprogramme in jedem dieser unterschiedlichen Farbmoden
funktionieren können,
ergibt dies einen beträchtlichen
Vorteil gegenüber
anderen Systemen.
-
Bei dem bevorzugten Ausführungsbeispiel der
Erfindung bewirkt das an die Schaltung 12 angelegte Farbmodussignal,
daß die
Schaltung 12 die unteren 12 Bits, das sind die Farbindexwerte,
an jede der Schaltungen 14, 15 und 16 anlegt,
um von den Farbtabellen zusammen mit einem einzelnen Farbmodusbit
in der höchstwertigen
Bitposition übersetzt zu
werden. Durch Berücksichtigen
des Modusbits erkennen die Schaltungen 14, 15 und 16 diese
Werte als Farbindexwerte. Bei dem bevorzugten Ausführungsbeispiel
der Erfindung weist jede der Farbindex-Nachschlagetabellen-Schaltungen 14, 15 und 16 vier
Kilobytes an Speicher auf, so daß sie etwas über 4.000
individuelle Farbtöne
zu speichern vermag.
-
Wenn andererseits die Information
aus 24-Bit-Farbdaten besteht, werden die Farbtonwerte zu denselben
Schaltungen übertragen;
eine Übersetzung
der Werte ist unnötig
und wird auch nicht durchgeführt.
Die drei Gruppen von acht Bits, welche die Farbtöne von Rot, Grün und Blau
anzeigen, werden jeweils von der Schaltung 12 mit fünf Bits
höherer Ordnung
verknüpft.
Das höchstwertige
dieser Bits ist ein Modusbit, welches angibt, daß die Daten 24-Bit-Farbdaten
sind. Die vier anderen Bits höherer Ordnung
füllen
einfach die zum Adressieren der Farbindextabellen verwendeten 12
Bits auf und können von
den Schaltungen 14, 15 und 16 bei Bedarf
fallengelassen werden, wenn das Modusbit anzeigt, daß die übertragenen
Daten nicht Farbindexdaten sind und nicht von den Farbtabellen übersetzt
zu werden brauchen. Dementsprechend werden die acht Bits niedrigerer
Ordnung, welche jede Farbtönung
des 24-Bit-Farbpixels definieren, einfach direkt und ohne Änderung über die
Schaltungen 14, 15 und 16 übertragen.
Diese Anordnung ermöglicht
es, daß die
beiden unterschiedlichen Farbformate von den Farbindextabellen verarbeitet
werden können,
um dadurch die Schaltung zu vereinfachen und die Operationszeit
zu verkürzen.
Dadurch wird der Betrieb des Ausgabedisplay-Systems wesentlich erleichtert
und eine sehr kompakte Anordnung ohne redundante Schaltungskomponenten
ermöglicht.
-
Von den Schaltungen 14, 15 und 16 werden die
acht Datenbits für
jeden Farbton (ob durch die Farbindextabellen erzeugt oder direkt
aus dem Rahmenpuffer übertragen)
von einem der drei Multiplexer 20–22 zu einem von drei
Gamma-Korrektur-Nachschlagetabellen 24–26 übertragen. Jedes dieser Tabellen
liefert eine Farbkorrektur derart, daß die auf dem Ausgabedisplay
erscheinende Farbe eine relativ genaue Darstellung der gewünschten
Farbe ist. Eine Gamma-Farbkorrektur ist wegen des unterschiedlichen
Verhaltens der bei verschiedenen Ausgabedisplays verwendeten Leuchtstoffe
notwendig. Obwohl es eine direkte Beziehung zwischen dem Wiedergabesignal
und der am Display-Monitor angelegten Spannung gibt, gilt dies nicht
für die
Ausgangsleistung der Bildschirmleuchtstoffe. Demgemäß müssen die
linearen 8-Bit-Farbwerte,
die innerhalb des Computersystems verwendet worden sind, in 8-Bit-Werte übersetzt
werden, welche dafür
sorgen, daß die
Bildschirmleuchtstoffe sich der gewünschten Farbe enger annähern. Eine
Detailerörterung
der Gamma-Farbkorrektur findet sich im "Raster Graphics Handbook", beginnend auf Seite
215, 2. Ausgabe, Copyright 1985 von Conrac Corporation, publiziert von
Van Nostrand Reinhold.
-
Die 8-Bit-Binärausgangswerte, die von den Gamma-Korrekturtabellen 24–26 geliefert
werden, werden an drei einzelne Digital/Analog-Umsetzerschaltungen 28–30 übertragen.
Diese Schaltungen 28–30 liefern
die drei analogen Signale, die zum Treiben eines analogen Farbdisplays
verwendet werden. Die Einzelheiten dieser Schaltungen sind dem Fachmann
bekannt und werden daher im Rahmen der vorliegenden Beschreibung
nicht näher
erörtert.
-
Um das Darüberlegen von bereits im 24-Bit-Farbformat
verschlüsselten
Videoinformationen über
ein auf einem Ausgabedisplay dargestellten Bild zu ermöglichen,
ist eine externe Quelle von Videoeingabedaten so angeschlossen gezeigt,
daß sie drei
8-Bit-Farbtöne an die
Multiplexer 20–22 liefert. Ein
Video-Eingangssignal VI_KEY zur Schaltung 12 kann dann
zu einer Auswahl verwendet werden, ob die Multiplexer 20–22 die
Videoinformationen oder die Daten aus dem Rahmenpuffer zum Ausgabedisplay übertragen. Üblicherweise
wird, sofern ein Video ansteht, das Video über die im Rahmenpuffer gehaltenen
Graphikdaten gelegt. Das Video-Eingangssignal aus der Videoquelle
sagt, ob das Video vorhanden ist. Ein Pixel-Schlüsselsignal P_KEY wird vom Rahmenpuffer
geliefert, um mitzuteilen, ob die Graphikinformationen oder die
Videoinformationen die Steuerung übernommen haben, sofern Videosignale vorhanden
sind. Typischerweise ist die Information, aus der das P_KEY-Signal
abgeleitet wird, in den im Rahmenpuffer gespeicherten Pixeldaten
enthalten.
-
Zusätzlich können acht Bit Rot-, Grün- und Blau-Daten
zur Übertragung
vom Ausgang jeder der Farbtabellen 14–16 zur Verwendung durch
andere Schaltungen, beispielsweise einer Videoaufzeichnungsschaltung
ausgewählt
werden. In einem solchen Falle werden die die Datenverwendung angebenden
Signale VO_KEY von der Schaltung 12 zu derjenigen Schaltung übertragen,
welche der Empfänger
als für
Video zu verwendenden Daten ist. Diese Daten können von einem Videorecorder
beispielsweise zur Aufzeichnung der im Rahmenpuffer gespeicherten
graphischen Daten verwendet werden.
-
Ein wesentliches Problem bei eine
Farbindexierung verwendenden Computersystemen besteht darin, daß gewisse
Anwendungsprogramme, beispielsweise Animationsprogramme häufig das
Datenfeld der vorgesehenen Farben ändern. Jede solche Änderung
bedingt, daß andere
Farbtonwerte so in den Farbindextabellen gespeichert werden, daß sie von
den Farbindexwerten decodiert werden können. Andere Situationen bedingen
ebenfalls den raschen Wechsel der für die Anzeige benutzten Farbe. Wenn
beispielsweise eine Anzahl individueller Anwendungsprogramme unter
Multi-Tasking laufen und ihre Ausgaben in mehreren Fenstern auf
dem Schirm eines Ausgabedisplays wiedergegeben werden, so kann jede
der Anwendungen die Auswahl eines Datenfelds unterschiedlicher Farben
ermöglichen. Wenn
jedes Programm ein anderes Farbenfeld benutzt, müssen unterschiedliche Werte
für jede
Farbe in den Farbtabellen verwendet werden. Wenn die Farbindextabellen
sämtlicher
Fenster nicht in den von den Farbtabellen vorgesehenen Speicherraum passen,
müssen
große
Abschnitte der Farbtabellen häufig
umgeladen werden, wenn andere Anwendungsfenster aktiviert werden.
-
Demgemäß können sich die in den Farbtabellen
verwendeten Werte während
einer Anzeige rasch ändern.
Um dies zu bewirken, ist es für
einige Steuerschaltungen, wie beispielsweise eine CPU notwendig,
die in den Farbtabellen gespeicherten Werte zu ändern, um die von den Anwendungsprogrammen
gewünschten
Farben anzupassen.
-
In einem typischen Computersystem schreibt
die Steuerschaltung (z.B. die CPU) einfach in die Farbtabellen,
um bei jeder gewünschten Änderung
die gespeicherten Werte zu ändern.
Da die Farbtabellen das Nachschlagen verschiedener Farbwerte bei
der Farbindexierung handhaben, während Daten
zum Display übertragen
werden, ist es erwünscht,
die Änderung
der in den Farbtabellen gespeicherten Werte ohne Beeinträchtigung
der angezeigten Daten durchzuführen.
Dies kann geschehen, indem ein Zwei-Port-Speicher für die Farbtabellen verwendet
wird. Durch Verwendung eines solchen Zwei-Port-Speichers können die Änderungen
in die Farbtabellen geschrieben werden, während Daten an das Display
geliefert werden. Zwei-Port-Speicher sind jedoch ziemlich kostspielig
und es ist viel ökonomischer,
konventionelle Ein-Port-Speicher
für die Farbtabellen
zu benutzen. Die Verwendung von Ein-Port-Speichern bedeutet, daß die Tabellen
nicht zur Lieferung von Daten an das Display benutzt werden können, während die
Farben in den Farbtabellen geändert
werden. In konventionellen Systemen leidet die Anzeige. Es ist jedoch
möglich,
die Farbtabellen im Vorbeilauf zu ändern, wobei die auftretende
Störung
als tolerierbarer Nebeneffekt zugelassen wird.
-
Ein anderer Weg zur Behandlung dieses Problems
ist die Modifizierung der Farbtabellen, während sich der Display-Rastervorgang
im vertikalen Rücklauf
befindet und keine Daten auf das Display gelenkt werden. Dies funktioniert
gut, wenn die gespeicherten Werte in den Tabellen nur selten geändert werden.
Das kann beispielsweise der Fall sein, wenn nur ein einziges Anwendungsprogramm
abläuft,
das keine häufigen
Farbwertänderungen
vornimmt, und das System auf ein neues Programm wechselt, welches
andere Farbwerte benutzt. Das o.g. System ist jedoch nicht in der
Lage, Änderungen in
den Farbtabellen innerhalb derjenigen Periode korrekt zu verarbeiten,
in der ein Einzelbild auf dem Display angezeigt wird.
-
Die Erfindung stellt eine Lösung des
Problems zur Verfügung,
bei der Farbwerte sehr häufig und
sehr rasch geändert
werden müssen.
Die Erfindung verwendet die nach der Wiedergabe jeder Zeile auf
dem Bildschirm zur Verfügung
stehenden horizontalen Rücklaufperioden,
um jede notwendige Änderung
der Farbtabellen durchzuführen.
Bei bekannten Schaltungen war diese Zeit zu kurz, um Schreiboperationen
auszuführen,
welche typischerweise 500 ns für
jede Adresse benötigen,
bei der ein Farbton zu ändern
ist. Um jedoch die gesamte während
jeder Periode verfügbare
Zeit soweit als möglich
auszunutzen, sieht das System eine FIFO-Pufferschaltung zur Zwischenspeicherung
der für
die Änderung
der Farbindextabellen zu schreibenden Daten vor. Wenn dann die horizontale
Rücklaufperiode
auftritt, und die Datenausgabe aus den Farbindextabellen für diesen Moment
unterbrochen ist, können
die Daten des FIFO in die Farbindextabellen geschrieben werden, um
die entsprechenden Änderungen
durchzuführen.
-
Um diese Operation auszuführen, findet
die im Blockschaltbild gemäß 2 gezeigte Schaltung 31 Verwendung.
Die Schaltung 31 weist eine Steuerschaltung 32 auf,
welche Steuersignale zur Steuerung der die Farbtabellen ändernden
Operation empfängt.
Die Schaltung 32 steuert einen Schreib-FIFO 33,
in welchem die in die Farbtabellen zu schreibenden Daten und Adressinformationen
für diese
Daten von einem Leitrechner, z.B. einer CPU (in der Zeichnung nicht
gezeigt), gespeichert sind. Die Steuerschaltung 32 nimmt
Lese- oder Schreibbefehle auf und steuert dementsprechend das FIFO,
um die geforderte spezielle Operation auszuführen. Typischerweise werden
die Farbindextabellen außer
bei Testoperationen nicht gelesen.
-
Demgemäß muß die Leseoperation normalerweise
nicht an das Abtasten von Daten zum Display angepaßt sein.
Es ist jedoch möglich,
Leseoperationen im FIFO zu speichern und diese Operationen während einer
Rücklaufperiode
auszuführen,
sobald die Schreiboperationen beendet sind und der FIFO gelöscht ist.
-
Im üblichen Falle ist die auszuführende Operation
das Schreiben eines Werts in eine der Farbindextabellen 14–16.
In einem solchen Falle beginnt die typische Operation bei nichtvollem
FIFO damit, daß der
Leitrechner Daten und eine Adresse in den FIFO 33 schreibt.
Diese Information wird in einer Warteschlange im FIFO 33 so
lange gespeichert, bis ein Signal (Rücklauf) von der Abtaststeuerschaltung (nicht
in der Figur gezeigt) empfangen wird, das den Beginn einer horizontalen
oder vertikalen Austastperiode signalisiert. Zu diesem Zeitpunkt
liest die Schaltung 35 den ersten Datenteil in der FIFO-Schlange und schreibt
diesen ersten Datenteil in eine der Farbtabellen an die mit den
Daten gespeicherte Adresse. Das Lesen wird über das dem horizontalen (oder
vertikalen) Rücklauf
zugeordneten Intervall nach Maßgabe
des Empfangs des Rücklaufsignals
von der Abtaststeuerschaltung fortgesetzt. Bei dem bevorzugten Ausführungsbeispiel
der Erfindung beträgt
die zum Schreiben jedes Datenteils aus dem FIFO erforderliche Zeit
ungefähr
9 Nanosekunden. Daher kann eine sehr große Anzahl von Datenteilen während der horizontalen
Austastperiode (typischerweise 4 μs) geschrieben
werden. Normalerweise ist die Größe des FIFO
durch die von dem Leitrechner zum Schreiben in den FIFO benötigte Zeit
beschränkt.
Ein Leitrechnerzugriff erfordert bei dem beschriebenen Ausführungsbeispiel
etwa 500 ns, so daß angenähert 22 einzelne
Datenteile während
der 11 μs
einer aktiven Horizontalabtastung in den FIFO geschrieben werden
können.
-
Durch Verwendung der horizontalen
Austastperiode zur Durchführung
von Änderungen
der Werte in den Farbindextabellen gelingt es bei der Erfindung, Farbänderungen
während
derjenigen Periode durchzuführen,
in der ein Einzelbild zum Display getastet wird. Dies steht im Kontrast
zu bekannten, Einzel-Port-Speicher
für Farbindextabellen
verwendenden Anordnungen, bei denen Änderungen nur während der
vertikalen Austastperioden durchgeführt werden konnten, oder Dual-Port-Speicher
verwendenden Anordnungen.
-
Der in der Zeichnung dargestellte
FIFO bietet bei dem beschriebenen Ausführungsbeispiel Speicherraum
für 64
einzelne Teile oder Abschnitte von jeweils acht Bit Daten zusammen
mit 16-Bit-Adressen. Demgemäß ist es
unwahrscheinlich, daß der FIFO
gefüllt
wird. Sollte der FIFO jedoch gefüllt
sein, so sorgt die Steuerschaltung 32 für ein Schreiben in die Farbtabellen
und eine Änderung
des Displays derart, daß keine
Daten aufgrund der mangelnden Verfügbarkeit ausreichenden Speicherraums
verlorengehen. Um dies zu erreichen, kann ein Multiplexer (siehe 5a) in der Anordnung vorgesehen sein, um
die Speicheradresse entweder aus dem eingegebenen Pixel oder aus
der Schreib-FIFO-Schaltung
je nach Zustand des FIFOs zu beschaffen.
-
Wie in 2 zu
sehen ist, ist eine Adreßbank-Decodierschaltung 35 vorgesehen,
um die Adressierung der verschiedenen Farbtabellen vorzunehmen.
Wie außerdem
zu sehen ist, sind drei Gamma-Korrekturtabellen 24–26 ebenfalls
so angeschlossen, daß auf
sie durch den Leitrechner zugegriffen werden kann, und daß die Werte
in diesen Gamma-Korrekturfarbtabellen, falls erwünscht, unter Verwendung der
FIFO-Schaltung 33 korrigiert werden können.
-
Das Schalten des Farbtabellenspeichers zwischen
dem Wiedergabemodus, bei dem Daten für die Wiedergabe auf dem Ausgabedisplay
durch die Farbtabellen übertragen
werden, und dem Leitrechner-Zugriffsmodus, bei dem die in den Farbtabellen gespeicherten
Werte geändert
werden können,
geschieht unter Verwendung einer Reihe von 2:1-Multiplexern (siehe 5b) am Adresseingang zu jeder Farbtabelle.
Im Anzeigemodus wählen
die Multiplexer die Farbtabellenadresse aus dem Adressmodus-Selektor 12 für die Farbtabellenspeicher 14, 15 und 16 aus,
aus dem Multiplexer 20 für Tabelle 24, aus dem Multiplexer 21 für Tabelle
25 und aus dem Multiplexer 22 für Tabelle 26 aus. Im Leitrechner-Zugriffsmodus
kommen die Farbtabellenadressen aus dem Schreib-FIFO-Adressausgang.
-
Eine zweite Anordnung, durch die
ein Leitrechner auf die Farbtabellen eines Ausgabe-Display-Systems
zur Änderung
der für
die Farbindexierung gespeicherten Daten zugreifen kann, ist in den 3 und 4 gezeigt. In der Anordnung 40 gemäß 3 ist der Eingangsschreib-FIFO 33 gemäß 2 fortgelassen, so daß die Leitrechnerdaten
und Adressen direkt an die spezielle Farbtabelle geliefert werden,
deren Inhalt geändert
werden soll. Eine Steuerschaltung 41 ist zur Steuerung
dieser Operation vor gesehen. Um eine Störung der normalen Funktion des
Nachschlageverfahrens der Farbtabellen auszuschließen, ist
die Anordnung 50 gemäß 4 vorgesehen. Bei dieser
Anordnung sind die FIFOs 51, 52 und 53 am
Ausgang der Farbindextabellen (in dieser Figur durch dieselben Ziff. 14–16 wie
in 1 bezeichnet) angeordnet.
Jeder der FIFOs 51-53 dient zur Speicherung der roten,
grünen
oder blauen Pixel-Farbtondaten, die von den zugehörigen Farbtabellen 14–16 geliefert
werden, so daß eine
Periode zur Verfügung
steht, in der auf die Farbtabellen 14–16 durch den Leitrechner
ohne Störung
des Pixeldatenflusses zum Farbdisplay zugegriffen werden kann.
-
Wenn daher während der horizontalen Rücklaufperiode
Pixelwerte für
die nächste
wiederzugebende Abtastzeile an die Farbtabellen gesandt und in die
FIFOs 51–53 eingetaktet
werden, so daß die FIFOs
mit Pixeldaten voll sind, wenn die nächste horizontale Abtastzeile
beginnt, stehen Pixeldaten für das
Display über
die Gamma-Tabellen aus den FIFOs 51–53 zur Verfügung. Pixeldaten
aus der anfänglich
in den FIFOs befindlichen Zeile werden weiter aus den Farbtabellen 14–16 in
die FIFOs geschrieben, und die Ausgabepixeldaten werden von den
FIFOs an die Gamma-Korrekturtabellen geliefert, sofern der Leitrechner
nicht in die Farbtabellen 14–16 zu schreiben wünscht, um
deren Werte zu ändern.
In einem solchen Fall wird das Pixelfreigabesignal (P_ENAB) unterbrochen,
wodurch dem Leitrechner gestattet wird, in die Farbtabellen zu schreiben.
Während
dieses Intervalls stehen weiterhin Pixeldaten in den FIFOs 51–53 zur
Wiedergabe zur Verfügung.
Wenn der Leitrechner seine Änderungen in
den Farbtabellen abgeschlossen hat, wird das P_ENAB-Signal wieder
angelegt, so daß die
Pixeldaten vom Rahmenpuffer zu den Farbtabellen und in die FIFOs 51–53 fließen.
-
Es ist natürlich notwendig, daß die FIFOs 51–53 genügend Speicherraum
haben, um während der
Periode, in der der Leitrechner in die Farbtabellen 14–16 schreibt,
Pixel zu liefern. Generell ist die Länge der dem Leitrechner zum
Schreiben ohne Kollision mit den Pixeldaten zur Verfügung stehenden
Zeit gleich der Dauer der horizontalen Rücklaufperiode. Daher müssen die
FIFOs groß genug
sein, um eine Anzahl von Pixeln zu halten, die gleich ist dem Quotienten
derjenigen Zeit, während
welcher die Farbtabellen durch Leitrechnerzugriffe besetzt sind,
geteilt durch die Pixeldauer. Wenn beispielsweise die Abtastung
einer Zeile auf dem Display 16 μs dauert, der Leitrechner alle
500 ns einen Speicherzyklus anfordert, die Pixeldauer 9 ns
beträgt
und wenn ein Leitrechnerzyklus die Farbtabellen für 18 ns
belegt, so müssen
die FIFOs (16.000/500) multipliziert mit (18/9) Pixel speichern.
Dementsprechend sollten die FIFOs 51–53 bei dem beschriebenen
Ausführungsbeispiel
ein Speichervolumen für
64 Einzelpixel haben.
-
Wenn auch die Erfindung vorstehend
anhand eines bevorzugten Ausführungsbeispiels
beschrieben worden ist, dürfte
klar sein, daß zahlreiche Abwandlungen
im Rahmen des Erfindungsgedankens für den Fachmann möglich sind.
Wie oben gesagt, kann die zum Modifizieren der Werte in den Farbindextabellen
vorgesehene Anordnung verwendet werden, um die Werte in den Gamma-Korrekturtabellen
ggf. zu ändern.