-
TECHNISCHER
BEREICH
-
Die
vorliegende Erfindung bezieht sich auf Videographiken und insbesondere
auf Pixel-Nachschlagtabellen.
-
HINTERGRUND
DER ERFINDUNG
-
Wiedergabeanordnungen
werden verwendet zum Wiedergeben von Videodaten in typischen Computer-Video-Graphiksystemen.
Die Wiedergabeanordnung ist typischerweise eine Elektronenstrahlröhre (CRT)
oder ein flacher Flüssigkristallwiedergabe-Monitor
(LCD). Das an der Wiedergabeanordnung sichtbare Bild wird normalerweise
von einem Video-Graphikcontroller (VGC) erzeugt und wird von dem
VGC typischerweise um etwa 75 Mal in der Sekunde erneuert.
-
1 ist
ein Blockschaltbild eines Video-Graphiksystems, verwendet in einem
PC zum betreiben einer Wiedergabeanordnung 16. Das an der
Bildwiedergabeanordnung 16 wiedergegebene Videobild besteht
aus Tausenden einzelnen Pixeln. Jedes Pixel besteht aus einem roten,
grünen
und blauen Element entsprechend den roten, grünen und blauen Phosphoren (oder
LCD-Elementen), die jedes Pixel der Wiedergabeanordnung 16 bilden.
Jedes Pixel hat eine rote, grüne
und blaue Intensität,
die als ein digitaler Wert gespeichert ist. Die digitalen Daten sind
als eine lineare Bitmap in dem Frame-Pufferspeicher 12 gespeichert,
typischerweise in einem dynamischen Speicher mit beliebigem Zugriff
(DRAM). Der Video-Graphikcontroller (VGC) 10 erzeugt das Videobild
durch Verarbeitung der Daten in dem Frame-Pufferspeicher 12,
und der Wiedergabecontroller 20 führt die Wiedergabeerneuerung
durch.
-
Die
digitalen Daten werden durch den Digital-Analog-Wandler (DAC) 14 in
einen analogen Spannungspegel umgewandelt und der Wiedergabeanordnung 16 zugeführt. Die
Wiedergabeanordnung 16 benutzt diesen analogen Pegel zum
gleichzeitigen Betreiben von drei Elektronenstrahlerzeugungssystemen
auf das Pixel, das gezeichnet werden soll. Die verschiedenen roten,
grünen
und blauen Intensitäten erzeugen
die Farben, die an der Anordnung 16 sichtbar sind.
-
Bei
den meisten Systemen werden 8 Bits benutzt zum Darstellen jedes
der roten, grünen
und blauen Farben. Auf diese Weise erfordert jedes Pixel 24 Bits
an Information in einem Frame-Pufferspeicher 12. Für einen
PC-Schirm mit einer typischen Größe von 1024
Pixeln horizontal und 768 Pixeln vertikal ist der erforderliche
Speicherraum zum Speichern des Bildes 1024 × 768 × 24 Bits (insgesamt 2,25 Mbytes),
unter der Voraussetzung von 24 Bits je Pixel (bpp). Größere Schirme
benutzen entsprechend größere Mengen
an Frame-Pufferspeicherraum 12. Auf gleiche Weise erfordern
Systeme, welche die Anzahl bpp steigern, mehr Frame-Pufferspeicherraum 12.
-
Eine
bekannte Art und Weise zum Reduzieren der Anzahl in dem Frame-Pufferspeicher 12 gespeicherter
Bits ist, eine Nachschlagtabelle (LUT) 18 zu benutzen,
typischerweise als statischer Speicher mit beliebigem Zugriff (SRAM)
und vorgesehen in dem VGC 10. Im Wesentlichen ermöglicht die
LUT 18, dass ein in dem Frame-Puffer 12 gespeicherter
8 Bit Wert als ein Index zum Adressieren 256 24-Bitwerte, gespeichert
in der LUT 18, benutzt wird, wobei jeder 24-Bitwert eine
volle 24 pbb-Farbe darstellt. Der VGC 10 benutzt Daten,
die in 8 bpp-Format in dem Frame-Pufferspeicher 12 gespeichert
sind, als ein Eingangssignal zu der LUT 18 und bildet jeden
8 Bit Eingang auf einer 24 Bit Farbe ab.
-
Auf
diese Weise sind, obschon nur 256 (28) mögliche Farben
in der 8 bpp Mode verfügbar
sind, die 256 Farben als 24 bpp Farben sichtbar. Auf diese Weise
kann ein Bild einer Seelandschaft 256 verschiedene volle 24 bpp
Blauschattierungen haben, die an der Wiedergabeanordnung 16 wiedergegeben werden
und erscheinen nahezu ununterscheidbar aus einem in 24 bpp Format
gespeicherten Bild. Ein Vorteil der Verwendung der LUT 18 ist,
dass für
jedes Pixel an dem Monitor nur 8 Bits in dem Frame-Pufferspeicher 12 gespeichert
zu werden brauchen. Auf diese Weise wird der Betrag an Information,
gespeichert in dem Frame-Pufferspeicher 12 um einen Faktor
drei reduziert und der Betrag an Daten, die aus dem Frame-Pufferspeicher 12 heraus
strömen,
wird um einen Faktor drei reduziert.
-
Durch
Raum- und Kostenbegrenzungen enthalten die meisten VGCs eine einzige
8 × 256
LUT zum Erzeugen des Video-Ausgangsbildes. Ein Nachteil der Verwendung
einer einzigen 8 × 156
LUT ist, dass die resultierenden Ausgangsbilder ungenaue und unerwünschte Ergebnisse
liefern, wenn viele Bilder verschiedene Farbindexen erfordern, in
demselben Bild enthalten sind. Es wird nun beispielsweise vorausgesetzt,
dass die meisten der 256 Farben in der LUT 18 Schattierungen
von Blau zugeordnet sind. Dies kann eine genaue Bildqualität verursachen,
wenn die meisten Bilddaten eine Unterwasserlandschaft darstellen.
Es wird nun vorausgesetzt, dass ein Videobild, wie ein gelb-rotes
U-Boot über diese
Seelandschaft gelegt wird. Da das Meiste der LUT 18 Blauschattierungen
zugeordnet sind, wird das U-Boot in weniger genauen Farben wiedergegeben.
-
Zusätzliche
LUTen 18 können
die Genauigkeit des Ausgangsbildes verbessern. Ein Nachteil aber
bei der Verwendung von vielen LUTen ist, dass die Kosten des VGCs 10 riesig
zunehmen. Ein weiterer Nachteil einer derartigen Annäherung ist,
dass Raumbegrenzungen es oft nicht erlauben, dass in dem VGC 10 eine
zweite LUT vorgesehen wird.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
gibt ein Bedürfnis
nach einem Video-Graphiksystem, das genaue Ausgangsbilddaten erzeugt, ohne
dass die Hardware-Anforderungen des Video-Graphikcontrollers zunehmen. Es gibt
ebenfalls ein Bedürfnis
nach einem Video-Graphiksystem,
das genaue Ausgangsbilddaten erzeugt, die eine große Varietät an verfügbarer Farbinformation
umfasst.
-
Diese
und andere Bedürfnisse
werden erfüllt durch
die vorliegende Erfindung, wobei eine Interpolationszeilenpuffer
in der vertikalen Skalierung sowie in der Farbabbildung von Eingangsfarbdaten
zu Ausgangswerten verwendet wird.
-
Nach
einem Aspekt der vorliegenden Erfindung umfasst ein System zum Verarbeiten
von Bilddaten:
- – eine Selektionsanordnung
zum Ausliefern eines ersten Steuersignals und eines zweiten Steuersignals.
Das System umfasst ebenfalls einen Zeilenpufferspeicher, der mit
der Selektionsanordnung gekoppelt ist und vorgesehen zum Speichern
von Pixeldaten, die eine horizontale Pixelzeile darstellen, und
zwar auf Basis des ersten Steuersignals. Das System umfasst weiterhin
- – eine
Skalierungsanordnung, die mit dem Zeilenpufferspeicher gekoppelt
ist und vorgesehen zum Interpolieren der gespeicherten Pixeldatenzeile mit
einer eintreffenden Pixeldatenzeile, und zum Ausliefern interpolierter
Pixeldaten. Zusätzliche umfasst
das System einen Wiedergabecontroller, der mit dem Zeilenpufferspeicher
gekoppelt ist und vorgesehen zum Neuverwenden des Zeilenpufferspeichers
als Farbnachschlagtabellenspeicher, und zwar auf Basis des zweiten
Steuersignals. Diese Konfiguration ermöglicht es, dass das System
den Zeilenpufferspeicher als Zeilenpuffer zur vertikalen Interpolation
von Pixeldaten sowie als LUT zum Abbilden von Eingangspixeldaten zum
Ausliefern von Farbwerten verwendet wird.
-
US 5.469.223 beschreibt
eine Videoverarbeitungsanordnung mit einem Video-Speicherpuffer, einem
Zeilenpuffer und einer Vertikal-Expansionsschaltung. Der Zeilenpuffer
empfängt
Zeilen mit Pixeldaten aus dem Speicherpuffer zur einstweiligen Speicherung,
und liefert die Zeilen mit Pixeldaten zu der Vertikal-Expansionsschaltung.
Die Vertikal-Expansionsschaltung
expandiert die vertikale Höhe
des Pixelbildes durch Einfügung
einer interpolierten Zeile mit Pixeln zwischen zwei ursprüngliche
Zeilen mit Pixeln, die in dem Video-Speicherpuffer gespeichert sind.
US 5.502.462 beschreibt
die Verwendung einer Nachschlagtabelle für Farbcode-Expansion in einem Verfahren
und einer Anordnung zum Wiedergaben raster-basierter Bilder, so
dass sie erschein, als haben sie eine relativ hohe Auflösung und
eine große Varietät an Farben
und/oder Schattierungen je wiedergegebenes Frame, einschließlich Pixelinterpolation.
Die beiden Dokumente beschreiben aber nicht die Verwendung eines
Zeilenpufferspeichers als einen Farbnachschlagtabellenspeicher,
abhängig
von einem Steuersignal einer Selektionsanordnung.
-
Ein
anderer Aspekt der vorliegenden Erfindung schafft ein Verfahren
zum verarbeiten von Bilddaten in einem Bilddatenverarbeitungssystem,
vorgesehen zum Arbeiten in einer Vielzahl von Betriebsarten. Das
Verfahren umfasst das Schreiben von Pixeldaten in einem Zeilenpufferspeicher
in einer ersten Betriebsart, wobei die Pixeldaten eine horizontale Zeile
mit Pixeln darstellen. Das Verfahren umfasst auch das Übertragen
von Pixeldaten von dem Zeilenpufferspeicher zu einer Skalierungsanordnung,
vorgesehen zum Interpolieren der gespeicherten Pixeldaten mit einer
eintreffenden Zeile mit zweiten Pixeldaten, und zum Ausliefern der
interpolierten Pixeldaten. Das Verfahren umfasst weiterhin die Neuverwendung
des Zeilenpufferspeichers in einer zweiten Betriebsart, als Farbnachschlagtabellenspeicher,
wodurch der Zeilenpufferspeicher zweimal verwendet wird, und zwar
als Zeilenpufferspeicher für
vertikale Interpolation von Pixeldaten sowie als LUT zur Abbildung
von Eingangspixeldaten auf Ausgangsfarbwerten.
-
Andere
Aufgaben und Vorteile der vorliegenden Erfindung dürften dem
Fachmann aus der nachfolgenden Beschreibung einleuchten. Die dargestellten
und beschriebenen Ausführungsformen
schaffen eine Illustration der besten Art und Weise zum Durchführen der
vorliegenden Erfindung. Die vorliegende Erfindung ist imstande,
in vielen Hinsichten modifiziert zu werden, dies alles innerhalb
der vorliegenden Erfindung. Auf entsprechende Weise sind die Figuren der
Zeichnung als illustrierend und nicht als begrenzend zu betrachten.
-
KURZE BESCHREIBUNG DER
ZEICHUNG
-
1 zeigt
ein Blockschaltbild eines Computersystems, wobei ein Video-Graphikcontroller
verwendet wird.
-
2 ist
ein Blockschaltbild eines Video-Graphikcontrollers, wobei Zeilenpuffer
verwendet werden.
-
3 ist
ein Blockschaltbild eines Video-Graphikcontrollers nach einer Ausführungsform der
vorliegenden Erfindung.
-
4 ist
ein Flussdiagramm zur Erläuterung einer
Ausführungsform
der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DARGESTELLTER AUSFÜHRUNGSFORMEN
-
Die
beschriebene Ausführungsform
benutzt einen Zeilenpuffer in einem Video-Graphikcontroller zum
Speichern einer horizontalen Zeile mit Pixeldaten zur "Hochskalierung" eines Eingangsbildes.
Die vorliegende Erfindung benutzt den Zeilenpuffer auch als eine
Nachschlagtabelle (LUT) zur Verbesserung der Farbreinheit der Ausgangsbilder.
Es wird zunächst
eine Beschreibung eines Zeilenpuffers gegeben, der für vertikale
Hochskalierung eines Eingangsbildes verwendet wird, wonach eine
Beschreibung des Verfahrens und der Anordnung zur Verwendung eines
Zeilenpuffers als eine Pixel-LUT,
sowie zur vertikalen Hochskalierung eines Eingangsbildes folgt.
-
ZEILENPUFFER
-
Wie
oben bereits beschrieben, ist die Wiedergabe genauer Videobilder
an einer typischen Computer-Wiedergabeanordnung oft schwer. Weiterhin
wird die Verwendung von Computer-Wiedergabeanordnungen zum Wiedergeben
von Echtzeit-Videobildern
immer üblicher,
was die Komplexität,
die mit der Wiedergabe genauer Videobilder einhergeht, noch weiter
steigert. Echtzeit-Videodaten können von
einem Fernsehtuner, einem digitalen Camcorder, einer digitalen Kamera
oder von jeder beliebigen anderen Video-Eingangsquelle herrühren. In
Bezug auf 1 werden Videodaten normalerweise
unmittelbar dem VGC 10 zugeführt, da der VGC 10 die
mit der Wiedergabe der Videodaten assoziierte Verarbeitung durchführt, oder
auf alternative Weise werden Videodaten über den I/O Chipsatz 26 zugeführt.
-
Zum
Wiedergeben des eintreffenden Videostroms in Echtzeit könnten Daten
kontinuierlich in den Frame-Puffer 12 geschrieben werden
und der Wiedergabecontroller 20 könnte die Wiedergabeerneuerung
durchführen.
Dies würde
es ermöglichen, dass
der Video an dem Schirm nicht später
als eine Schirmerfrischung nach dem Einschreiben in den Frame-Pufferspeicher 12 wiedergegeben
werden wird. Ein Problem aber bei dieser Annäherung ist, dass der eintreffende
Videostrom oft nicht die gleiche Wiedergabeerneuerungsrate hat wie
die Wiedergabeanordnung 16. Die Videoeingangsquelle hat
oft eine Erneuerungsrate von etwa 24–30 Frames in der Sekunde,
während
die Erneuerungsrate der Wiedergabeanordnung 75 Frames in
der Sekunde beträgt. Ein
kontinuierliches Einschreiben in den Frame-Puffer 12 und
Durchführung
einer typischen Erneuerung würde
dafür sorgen,
dass das wiedergegebene Videobild die Hälfte des einen Frames und die
Hälfte
eines nachfolgenden Frames enthält,
wodurch ein Fetzeneffekt geschaffen wird.
-
Eine
alternative Annäherung
zum Wiedergeben von Echtzeit-Videodaten ist, den Videoeingang in
einem nicht verwendeten Teil des Frame-Pufferspeichers 12 zu
speichern, bekannt als Off-Screen-Speicher. Die Daten in dem Off-Screen-Speicher
wird danach zu dem Teil des Frame-Pufferspeichers 12 verlagert,
der zum Durchführen
der Wiedergabeerneuerung benutzt wird, und zwar auf eine Art und
Weise, dass Zerfetzung und andere negative sichtbare Effekte minimiert
werden.
-
Da
aber nicht ein unendlicher Betrag an Off-Screen-Speicherraum in
dem Frame-Pufferspeicher 12 verfügbar ist, kann es vorteilhaft
sein, den Betrag an gespeicherter Information zu reduzieren. Zusätzlich ist
das Quellen-Videobild oft kleiner in Auflösung (meistens 320 × 200 Pixel
oder 700 × 480
Pixel) als die Auflösung
des Computerschirms (1024 × 768
Pixel oder 1280 × 1024
Pixel). Deswegen soll, wenn es erwünscht ist, das Videobild unter
Verwendung der ganzen verfügbaren
Fläche
der Wiedergabeanordnung 16 zu zeigen, entweder die Auflösung der
Wiedergabeanordnung 16 reduziert werden oder die Auflösung des
Videobildes soll gesteigert werden.
-
Im
Allgemeinen ist die einzig praktische Lösung für dieses Problem, das Videobild
zu vergrößern, so
dass es in die Schirmgröße passt.
Dies kann unter Anwendung von "Eingangs" Verarbeitung erfolgen,
wobei der VGC 10 das kleine in dem Off-screen Frame-Pufferspeicher 12 gespeicherte
Bild nimmt, dies aufskaliert (die Auflösung zu den gewünschten Proportionen
steigert) und das Bild in den Frame-Pufferspeicher 12 zurück schreibt.
Ein zweites Verfahren benutzt eine Annäherung der "Ausgangs"-Verarbeitung, wobei der Wiedergabecontroller 20 das
Bild im Flug aufskaliert, wenn es wiedergegeben wird. Diese Annäherung hat
den Vorteil, dass die Notwendigkeit des Zugriffs auf den Frame-Pufferspeicher 12 reduziert
wird und dass zum Funktionieren kein zusätzlicher Speicher erforderlich
ist.
-
Auf
diese Weise skaliert der Wiedergabecontroller 20 ein Video-Quellenbild
um den erforderlichen Faktor aufwärts, so dass das Video-Quellenbild
in die ganze Wiedergabeanordnung 16 passt. Da ein typisches
300 × 200
Pixel Video-Eingangsbild nicht alle Pixel hat, die erforderlich
sind um an der ganzen Wiedergabeanordnung 16 wiedergegeben
zu werden, erzeugt die VGC 10 die zusätzlichen Pixel. Eine Annäherung zum
Erzeugen dieser erforderlichen Pixel ist eine einfache Duplikation
der Pixel zum Füllen
der zusätzlichen
Teile des Schirms. Diese Annäherung ist
preisgünstig,
führt aber
zu einem blockartigen und im Allgemeinen unakzeptablen Bild.
-
Eine
andere Annäherung
ist, die Zwischenpixel mit gemischten Pixeln zu füllen. Siehe
beispielsweise das Pixel #0 in der Zeile #0 des Quellenbildes und
das Pixel #0 der Zeile #1 des Quellenbildes. Das Bestimmungsbild
oder das Bild der Wiedergabeanordnung 16 wird diese Pixel
einige Male neu verwenden zum Auffüllen der fehlenden Information
von dem Quellenbild. Bestimmungspixel können dadurch gebildet werden,
dass eine minimale Kombination von zwei Pixeln genommen wird und
dass das Ergebnis zusammen addiert wird, bekannt als Interpolation der
Pixel. Auf diese Weise ist das Bestimmungspixel weder das Pixel
von der Zeile #0 oder der Zeile #1, aber eine bestimmte Kombination
(beispielsweise 30% bzw. 70%) der zwei Pixel. Das Ergebnis der Interpolation
ist ein viel natürlicheres,
glätteres
aufskaliertes Bild.
-
Die
in der Skalierung angewandte Interpolation tritt horizontal sowie
vertikal auf. Deswegen besteht jedes an dem Monitor wiedergegebenes
Bestimmungspixel aus vier Quellenpixeln. Der Wiedergabecontroller 20 arbeitet
an einer einzigen horizontalen Zeile mit Pixeldaten gleichzeitig.
Deswegen ist es nicht schwer, imstande zu sein, auf das vorhergehende
horizontale Pixel zuzugreifen, das notwendig ist zum Durchführen der
horizontalen Interpolation. Zur vertikalen Interpolation aber soll
der Wiedergabecontroller 20 gleichzeitig Pixel von zwei
verschiedenen horizontalen Zeilen mischen. Dies ist problematisch,
da der Wiedergabecontroller 20 an einer einzigen horizontalen
Zeile mit Pixeln gleichzeitig arbeitet. Um dieses Problem zu lindern
speichert eine Speicheranordnung die vorhergehende horizontale Zeile mit
Pixeldaten in dem VGC 10, so dass der Wiedergabecontroller 20 vorhergehende
Zeilen mit Pixeldaten nicht wieder aus dem Frame-Pufferspeicher 12 zu
holen braucht. Die Speicheranordnung ist typischerweise implementiert
worden als ein SRAM und ist als ein Zeilenpuffer bekannt.
-
2 ist
ein Blockschaltbild des VGCs 10, der den Zeilenpuffer 40 umfasst.
Die heutigen VGCs, die Ausgangs-Videoskalierung durchführen, benutzen
wenigstens einen Zeilenpuffer 40 zum Minimieren den Zugriff
auf den Frame-Pufferspeicher 12. Wie in 2 dargestellt,
führt der
vertikale Skaliercontroller 50 die vertikale Skalierung
des Video-Eingangs durch.
-
Der
Zeilenpuffer 40 empfängt
die Video-Eingangsdaten von der Video-Eingangsquelle, über den Frame-Pufferspeicher 12.
Der Wiedergabecontroller 20 schreitet zeilenweise durch
das Quellen-Videobild und bringt kontinuierlich die als letzte hervorgeholte horizontale
Zeile in den Zeilenpuffer 40, wenn er eine neue Zeile aus
dem Frame-Pufferspeicher 12 herausholt. Dies spart Verarbeitungszeit
assoziiert mit dem Herausholen und dem abermaligen Herausholen von
Daten aus dem Frame-Pufferspeicher 12.
-
Der
Vertikal-Skaliercontroller 50 umfasst Logik, die detektiert,
wenn die aktuelle Zeile mit Pixeldaten in den Zeilenpuffer 40 eingeschrieben
werden soll und sendet an dem geeigneten Zeitpunkt ein Schreibadress-Abtastsignal
in den Zeilenpuffer 40. Der Zeilenpuffer 40 ist
mit zwei Porten versehen, so dass die aktuelle Zeile zu derselben
Zeit, wo die vorhergehende Zeile ausgelesen wird, eingeschrieben werden
kann.
-
Der
Vertikal-Skaliercontroller 50 interpoliert vertikal die
aktuelle Zeile mit Pixeldaten mit der vorhergehenden Zeile mit Pixeldaten,
d.h. bestimmt den Prozentsatz jedes Pixels, benutzt in dem Ausgangspixel
und liefert das interpolierte Pixel aus. Das interpolierte vertikale
Pixel wird mit dem horizontal skalierten Pixel kombiniert und danach über LUT 18 in
24 bpp Farbe abgebildet.
-
Bekanntlich
werden Zeilenpuffer nur zur vertikalen Interpolation von Pixeln
benutzt, wenn ein Eingangs-Videobild aufskaliert werden soll. Zum
Unterstützen
des vertikalen Interpolationsprozesses muss ein Zeilenpuffer konfiguriert
werden zum Speichern einer ganzen horizontalen Zeile mit Pixeldaten,
wodurch auf diese Weise ein wesentlicher Betrag an Chipraum in dem
VCG 10 beansprucht wird. Da Chipraum in dem VCG 10 knapp
ist, ist die Verwendung von Chipraum für die Aufskalierungsfunktion
kostspielig.
-
Wie
oben bereits beschrieben, gibt es ein Problem, wenn eine 8 bpp Mode
angewandt wird und LUT 18 benutzt wird zum Expandieren
der Pixel zu 24 bpp Farbe. Die 8 bpp indizierte Mode, wobei die LUT 18 verwendet
wird schafft nur 256 Farben, als wären es 24 bpp Farben.
-
ZEILENPUFFER/PIXEL LUT
-
Die
vorliegende Erfindung richtet sich auf ein Verfahren und eine Anordnung
zur Verwendung in einem Zeilenpuffer zum Steigern der Anzahl Farben, verfügbar für Ausgangsbilder,
wiedergegeben an der Wiedergabeanordnung 16 und zur Verwendung
bei der Hochskalierung eines Eingangsbildes.
-
3 ist
ein Beispiel eines Blockschaltbildes eines Video-Graphiksystems
nach einer Ausführungsform
der vorliegenden Erfindung. Wie oben bereits beschrieben, werden
Video-Eingangsdaten zunächst
in dem Frame-Pufferspeicher 12 gespeichert. VGC 10 ruft
die Video-Pixeldaten ab und liefert sie dem Vertikal-Skalierungscontroller 50.
Der Vertikal-Skalierungscontroller 50 führt eine Steuerung durch, wenn
die aktuelle Zeile mit Pixeldaten in den Zeilenpuffer 40 eingeschrieben
wird, wie oben bereits beschrieben. Bei der in 3 beschriebenen
Ausführungsform
wird der Zeilenpuffer 40 auch zum Speichern einer zweiten
LUT verwendet.
-
So
arbeitet beispielsweise in einer ersten Betriebsart der Zeilenpuffer 40 als
ein typischer Zeilenpuffer 40, verwendet bei der vertikalen
Interpolation von Pixeln. Wie oben beschrieben, umfasst dieser Vorgang
das Speichern der aktuellen Zeile mit Pixeldaten, so dass der vertikale
Skalierungscontroller 50 auf die Daten zur vertikalen Interpolation
zugreifen kann. In einer zweiten Betriebsart aber arbeitet der Zeilenpuffer 40 als
eine LUT. Auf diese Weise umfasst der VGC 10 eine zweite
Tabelle von ganzen 24 bpp Farben zur Wiedergabe an der Wiedergabeanordnung 16.
-
Wie
in 3 dargestellt, umfasst das Video-Graphiksystem
eine Selektionsanordnung 90, die einen Eingang zu den Multiplexern 60, 70 und 80 schafft.
In der ersten Betriebsart ermöglichen
die Multiplexer 60, 70 und 80 es, dass
Zeilenpuffer/LUT 40 als ein typischer Zeilenpuffer funktioniert,
der bei der Interpolation von Pixeldaten verwendet wird. Wenn aber
die Selektionsanordnung 90 einen zweiten Eingang zu den
Multiplexern 60, 70 und 80 schafft, arbeitet
Zeilenpuffer/LUT 40 als eine LUT. In dieser zweite Betriebsart
werden die vollen 24 bpp Farben auf dieselbe Art und Weise in den
Zeilenpuffer 40 eingeschrieben, wie die vollen 24 bpp Farben in
die LUT 18 eingeschrieben werden. In dem Ausführungsbeispiel
arbeitet die CPU 22 als Selektionsanordnung 90 und
signalisiert die Multiplexer 60, 70 und 80 über den
peripheren Elementeverbindungsbus (PCI) 32. Die CPU 22 arbeitet
entsprechend Instruktionen, gespeichert in dem Systemspeicher 28, abgerufen über den Überbrückungschipsatz 21.
Auf alternative Weise könnte
die Selektionsanordnung 90 jede beliebige PCI-Gastgeberanordnung
sein, die mit VGC 10 über
den PCI-Bus 32 kommuniziert. So könnte beispielsweise die Selektionsanordnung 90 der
Netzwerkcontroller 30 sein.
-
In
dem Ausführungsbeispiel
sendet die Selektionsanordnung 90 ein "hohes" Signal zu den Multiplexern 60, 70 und 80 um
Zeilenpuffer/LUT 40 die Möglichkeit zu bieten, als typischer
Zeilenpuffer wirksam zu sein. Die Multiplexer 60, 70 und 80 empfangen
das "hohe" Signal und arbeiten
um in den Zeilenpuffer/LUT 40 Daten einzuschreiben bzw.
aus demselben Daten zu lesen. Herrührend aus dem Frame-Pufferspeicher 12.
Der Vertikal-Skalierungscontroller 50 steuert das Einschreiben/Auslesen
von Daten aus dem Zeilenpuffer 40 zur vertikalen Interpolation
von Pixeln.
-
Wenn
aber die Selektionsanordnung 90 den Multiplexern 60, 70 und 80 ein "niedriges" Signal zusendet,
arbeiten die Multiplexer 60, 70 und 80 zum Übertragen
von Daten zu dem Zeilenpuffer/LUT 40. Die Farbdaten werden
in den Zeilenpuffer 40 eingeschrieben, und zwar auf dieselbe
Art und Weise wie bei der LUT 18. Das heißt, die
CPU 22 oder jede andere beliebige PCI Gastgeberanordnung
schreibt die gewünschten
256, 24 bpp indizierten Farben aus einem Systemspeicher in den Zeilenpuffer/LUT 40 über den
Multiplexer 80. Danach wird, wenn ein Eingangsbild mit
8 bpp von dem Wiedergabecontroller 20 empfangen wird, der
8 Bit Wert über
den Multiplexer 70 dem Zeilenpuffer/LUT 40 zugeführt, der
als eine LUT arbeitet. Der Wiedergabecontroller 20 bildet
den 8-Bitwert auf einem 24 bpp Farbwert ab und überträgt den Ausgangswert zu DAC 14 zur
Umwandlung in einen analogen Wert zur Verwendung in der Wiedergabeanordnung 16.
-
4 ist
ein Flussdiagramm, das ein Szenariobeispiel der Verwendung des Zeilenpuffers/LUT 40 als
Zeilenpuffer sowie als LUT illustriert. Wie oben bereits beschrieben,
kann jede beliebige PCI-Gastgeberanordnung oder jede beliebige Steueranordnung
benutzt werden zur Steuerung des Video-Graphiksystems nach der vorliegenden
Erfindung. Die nachstehend detailliert beschriebene Ausführungsform
setzt voraus, dass die CPU 22 die Steueranordnung ist.
-
In
dem Schritt 200 selektiert die CPU 22 die Betriebsart
des VGCs 10. Die CPU 22 bestimmt die Betriebsart
auf Basis davon, welches Bild aufskaliert werden soll. Für Illustrationszwecke
wird vorausgesetzt, dass CPU 22 in dem Schritt 200 bestimmt, dass
die Bildaufskalierung nicht notwendig ist. Die CPU 22 sendet
in dem Schritt 202 ein Steuersignal zu den Multiplexern 60, 70 und 80,
wodurch der "niedrige" Eingang für die betreffenden
Multiplexer selektiert wird.
-
Daraufhin
schreibt die CPU 22 256, 24 bpp Farbwerte zu dem Zeilenpuffer/LUT 40,
und zwar über
die Multiplexer 80, in dem Schritt 204. Die 24 bpp
Werte werden durch die CPU 22 bestimmt, und zwar auf Basis
einer Vielzahl von Faktoren. So kann beispielsweise die CPU 22 bereits
256, 24 bpp Werte gespeichert haben, die vorwiegend Blauschattierungen
in LUT 18 zugeordnet sind. Deswegen kann die CPU 22 256,
24 bpp Farben, die vorwiegend gelbroten Schattierungen (oder anderen
Farben) zugeordnet sind, in den Zeilenpuffer/LUT 40 einschreiben. Auf
diese Weise erhöht
die CPU 22 die Anzahl Ausgangsfarben, die an der Wiedergabeanordnung 16 verfügbar sind.
-
In
dem Schritt 206 empfängt
der Wiedergabecontroller Video-Pixeldaten, die in 8 bpp Mode gespeichert
sind, aus dem Frame-Pufferspeicher 12. Der Wiedergabecontroller 20 sendet
ein Lese-Adresssignal zu dem Multiplexer 70 zur Abbildung des
8-Bitwertes für
das betreffende Pixel auf einer Ausgangs 24-Bit Farbe. Das Lese-Adresssignal
ist der aktuelle Pixelwert in dem horizontalen Strom von Pixeln.
Der Zeilenpuffer/LUT 40 liefert den nahezu 24 bpp Wert
auf Basis des Eingangs 8 bpp Pixelwertes in dem Schritt 208 zum
Einführen
in DAC 14 und danach zu der Wiedergabeanordnung 16.
-
Die
oben stehende Beschreibung für
die Schritte 200–208 setzt
voraus, dass die CPU 22 bestimmt, dass Videoaufskalierung
nicht erforderlich ist. Es wird nun vorausgesetzt, dass nach dem
Schritt 208 die CPU 22 bestimmt, dass vertikale
Aufskalierung erforderlich ist. Die CPU 22 sendet ein Steuersignal
zu den Multiplexern 60, 70 und 80, wodurch
der "hohe" Eingang für die betreffenden
Multiplexer in dem Schritt 210 selektiert wird.
-
Daraufhin
arbeitet der vertikale Skalierungscontroller 50 zum Empfangen
von Videopixeldaten von dem Frame-Pufferspeicher 12. In
dem Schritt 212 sendet der vertikale Skalierungscontroller 50 ein Schreibadressabtastsignal
zu dem Multiplexer 60 zum Einschreiben der aktuelle horizontale
Zeile mit Pixeldaten in den Zeilenpuffer/LUT 40.
-
Da
der vertikale Skalierungscontroller 50 die Interpolation
zweier Zeilen mit Video-Pixeldaten durchführt, sendet der vertikale Skalierungscontroller 50 ein
Leseadresssignal zu dem Zeilenpuffer/LUT 40, und zwar über den
Multiplexer 70 in dem Schritt 214. Das Leseadresssignal
stellt das aktuelle horizontale Pixel dar, das der vertikale Skalierungscontroller 50 interpoliert
und der vertikale Skalierungscontroller 50 liest das geeignete
horizontale Pixel aus der vorhergehenden Zeile mit Pixeldaten, gespeichert
in dem Zeilenpuffer/LUT 40. Der vertikale Skalierungscontroller 50 liefert
die interpolierten Pixeldaten in dem Schritt 216 zum Schaffen
des aufskalierten Ausgangsbildes. Auf diese Weise benutzt die VGC 10 den
Zeilenpuffer/LUT 40, wenn eine vertikale Aufskalierung
erforderlich ist und benutzt auch den Zeilenpuffer/LUT 40 als
eine LUT, wenn vertikale Aufskalierung nicht erforderlich ist. Diese
Verwendung des Zeilenpuffers/LUT 40 erhöht die Anzahl Farben, die zur
Wiedergabe verfügbar
sind ohne Steigerung der Speicheranforderungen der VGC 10.
-
So
wird beispielsweise, wie oben bereits beschrieben, vorausgesetzt,
dass der größte Teil
eines bestimmten Bildes eine Unterwasserlandschaft ist. In dieser
Situation kann der Hauptteil von LUT 18 mehreren Schattierungen
von Blau zugeordnet sein. Wenn aber ein gelbrotes U-Boot der Seelandschaft überlagert
wird, enthält
LUT 18 nicht die 24 bpp Farben, welche die gelbroten Schattierungen
darstellen. Es wird aber vorausgesetzt, dass die PCI-Gastgeberanordnung,
die das System steuert, die meisten der 256, 24-Bit Farben, die
in dem Zeilenpuffer/LUT 40 gespeichert sind, mehreren Schattierungen
von Gelb und Rot zugeordnet sind. In dem Fall selektiert die PCI-Gastgeberanordnung
den Zeilenpuffer/LUT 40 zur Abbildung der 8 bpp Eingangsfarben
für das U-Boot
auf 24 bpp Ausgangsfarben. Auf alternative Weise kann die Logik
in dem VGC 10 benutzt werden zum Selektieren der geeigneten
LUT zum Ausliefern von 24 bpp Ausgangsfarben. Auf diese Weise kann das
Bild der Seelandschaft mit dem gelbroten U-Boot genauer dargestellt
werden, und zwar unter Verwendung des Zeilenpuffers/LUT 40 als
wenn dass nur die einzige LUT 18 mit hauptsächlich dargestellten
Blauschattierungen verwendet wird.
-
Die
PCI-Gastgeberanordnung (CPU 22 in dem Ausführungsbeispiel),
die zum Speichern der Farbwerte in dem Zeilenpuffer/LUT 40 verwendet wird,
kann aus jeder beliebigen Anzahl gewünschter Farben wählen und
diese Farbwerte in dem Zeilenpuffer/LUT 40 zur Verwendung
durch den VGC 10 speichern. Die aktuellen Farbwerte, die
in dem Zeilenpuffer/LUT 40 gespeichert sind, sind aber
abhängig
von einer Anzahl Faktoren, einschließlich der gewünschten
Gesamtgenauigkeit des Ausgangsbildes.
-
In
dem Ausführungsbeispiel
ist die Größe des Zeilenpuffers/LUT 40 768
tief × 24
Bits breit. Auf diese Weise kann der Zeilenpuffer/LUT 40 in
drei LUTen aufgeteilt werden, wodurch die Anzahl Farben, die zur
Wiedergabe an der Wiedergabeanordnung 16 verfügbar sind,
noch weiter gesteigert werden kann. Die Anzahl zusätzlicher
verfügbarer
LUTen aber ist abhängig
von der Größe des Zeilenpuffers 40.
Weiterhin kann der VGC 10 mit dem Zeilenpuffer/LUT 40 verwendet
werden, nur als LUT(en) wenn Raumprobleme im VGC 10 es
nicht erlauben, dass LUT 18 neben den anderen Elementen
im VGC 10 vorhanden sind.
-
Außerdem kann
die steuernde PCI-Gastgeberanordnung verwendet werden zum Steuern,
welche LUT für
die jeweiligen Teile der empfangenen Bilddaten verwendet wird. Die
Logik innerhalb des VGCs 10 oder von einer außerhalb
vorgesehenen Staueranordnung selektiert, welche LUT der vielen LUTen
verwendet wird zum Abbilden der Eingangspixeldaten auf der vollen
24 bpp Farbe. Weiterhin kann im Rahmen der vorliegenden Erfindung,
obschon das Ausführungsbeispiel
ein System mit 8 bpp voraussetzt, gespeichert in dem Frame-Pufferspeicher 12 und
eine 8 × 256
LUT, jedes andere Video-Verarbeitungssystem angewandt werden, das
ein beliebige Anzahl Bits per Pixel benutzt.
-
Beschrieben
wurde ein Verfahren und eine Anordnung, wobei ein Zeilenpuffer zur
Interpolation von Pixeln verwendet wird zum Aufskalieren eines Bildes
und als eine Nachschlagtabelle zur Steigerung der Anzahl Ausgangsfarben,
verfügbar
zur Wiedergabe an einer Wiedergabeanordnung. Wie oben beschrieben,
kann die Wiedergabeanordnung jeder Typ von Wiedergabeanordnung sein,
wie eine CRT-Wiedergabeanordnung,
LCD-Wiedergabeanordnung oder jede beliebige andere Wiedergabeanordnung. Ein
Vorteil der vorliegenden Erfindung ist, dass das System genauere
Ausgangsdaten schafft ohne dass die Hardware-Anforderungen gesteigert
werden. Ein anderer Vorteil der vorliegenden Erfindung ist, dass die
Anzahl möglicher
Farben, verfügbar
zur Wiedergabe mit einer geringen zusätzlichen Verarbeitung durch
das System zunimmt. Ein weiterer Vorteil der vorliegenden Erfindung
ist, dass sie auf einfache Art und Weise ohne spezielle Hardware
implementiert werden kann.
-
In
dieser Beschreibung sind nur bestimmte bevorzugte Ausführungsformen
der vorliegenden Erfindung beschrieben und dargestellt worden, es
dürfte
aber, wie oben bereits erwähnt,
einleuchten, dass die vorliegende Erfindung imstande ist, in vielen
anderen Kombinationen und Ausführungsformen
abgewandt zu werden und imstande ist Änderungen oder Abwandlungen
im Rahmen der vorliegenden Erfindung, wie in den Patentansprüchen definiert,
anzuwenden.