-
Die
vorliegende Erfindung bezieht sich allgemein auf eine Bildverarbeitung
und insbesondere auf eine Vorrichtung und ein Verfahren zum Kombinieren einer
objektorientierten Graphik- und einer Rastergraphikverarbeitungspipeline.
-
Bilder
können üblicherweise
unter Verwendung eines von zwei Typen von Abbildungsinformationen
dargestellt und angezeigt werden: Rastergraphiken (oder Bittabellendaten)
und Graphikobjekten. Üblicherweise
werden digitale Bilder, die durch einen Computer erzeugt werden,
unter Verwendung einer Farbtriade roter, grüner und blauer (RGB) phosphoreszierender
Punkte auf eine Anzeigevorrichtung (Monitor) angezeigt. Eine Computeranzeige
besteht aus Zeilen und Spalten von Pixeln. Jedes Pixel ist eine
Triade phosphoreszierender Punkte (RGB). Die Intensitäten von
Rot, Grün
und Blau in jedem Pixel werden gesteuert, um verschiedene Farben
auf der Computeranzeigevorrichtung zu simulieren. Ein digitales
Bild wird auf einer Computeranzeigevorrichtung durch ein Adressieren
jeder Triade dreier Punkte, die ein Pixel bilden, und ein Definieren
der RGB-Intensitäten
angezeigt.
-
Die
Pixelbeleuchtungsinformationen werden als Grobrasterdaten von dem
Computer zu der Anzeige gesendet und bestehen aus Intensitäten der RGB-Pixel, üblicherweise
beginnend mit dem oberen linken Pixel auf dem Computerbildschirm,
gefolgt von Intensitätswerten
für die
roten, grünen
und blauen Pixel in jeder der nachfolgenden Pixelgruppen in dieser ersten
Zeile entlang des oberen Endes des Computerbildschirms. Sobald die
obere Zeile abgeschlossen ist, fahren die Grobrasterdaten mit dem
Pixel ganz links in der zweiten Zeile des Computerbildschirms fort,
wobei ähnlich
jede Gruppe von Pixeln, die in dem Computerbildschirm enthalten sind,
mit einem Intensitätswert
für jedes
der Pixel in der Pixelgruppe von den Grobrasterdaten versorgt wird.
Auf diese Weise erzeugt der Computer ein digitales Bild, das auf
dem Computerbildschirm angezeigt wird, der für einen Betrachter wie ein
Bild aussieht. Diese Struktur von Pixelbeleuchtungsinformationen
wird üblicherweise
als eine „Bittabelle" („Bitmap") oder als ein „bitabgebildetes" („bitmapped") Bild bezeichnet, wobei
anders ausgedrückt
jedes Pixel auf dem Bildschirm auf einen Wert abgebildet wird, der
in einem zweidimensionalen Speicherarray gespeichert ist, das dem
Pixelentwurf der Anzeige entspricht, wobei jedes Speicherelement
einen entsprechenden Pixelleuchtdichtenwert von 0 bis 255 speichert.
-
Eingangsvorrichtungen,
wie z. B. Digitalkameras und Camcorder, können ein Bayer-Filter verwenden,
das eine Bayer-Struktur
von vier zusammengruppierten Farbsensoren implementiert, wobei der
obere linke Sensor empfindlich gegenüber Grün ist, wobei der obere rechte
Sensor empfindlich gegenüber
Blau ist, wobei der untere linke Sensor empfindlich gegenüber Rot
ist, und wobei der untere rechte Sensor empfindlich gegenüber Grün ist. Das
Sensorelement wiederholt sich in einer bekannten Struktur. Die beschriebene
Bayer-Struktur ist ein Standardeingangssensorfarbformat für die Ausrichtung
der roten, grünen
und blauen Pixel, wobei es für
Fachleute offensichtlich ist, daß verschiede Permutationen dieser
Struktur möglich
sind und in der Computerindustrie verwendet werden.
-
Der
Computer kann eine Anzahl von Prozessen oder Schritten bezüglich des
Rohbittabellenbildes durchführen,
das von einem Sensor erfaßt
wird, um den ästhetischen
Wert des Gesamtbildes zu erhöhen.
Die Farbe, die aus dem Feld von vier Sensor-Bayer-Gruppen (bestimmt
durch die Intensitäten der
Sensoren selbst) resultiert, kann mit der Farbe umgebender Sensoren
verglichen werden, wobei die abgeleiteten RGB-Triade-Intensitätswerte festgelegt und eingestellt
werden können,
um sicherzustellen, daß eine
allmähliche
Verände rung
der Farben z. B. bei der Farbgebung des Gesichts einer Person auftritt,
wie dieses schließlich
als ein digitales Bild angezeigt wird. Gemeinsam legen diese einzelnen
Schritte beim Einstellen der Farbe, die aus Sensoren oder Pixelgruppen
resultiert, durch ein Einstellen der Intensitäten der Farbelemente eine Bittabellenpipeline oder
eine Grobrasterpipeline fest. Das Bittabellenbild, das das digitale
Bild bildet, ist für
den Computer eine Serie oder Folge von Farbintensitätswerten.
-
Ein
Computer kann typischerweise auch ein Graphikbild unter Verwendung
objektorientierter Graphiken erzeugen, um eines oder mehrere Graphikgrundelemente
zu erzeugen, wie z. B. Punkte, Linien, Vielecke, alphanumerische
Zeichen, Spezialsymbole und Schriftarten, usw., und um diese zugrundeliegenden
Graphikgrundelemente zu kombinieren, um das Gesamtbild darzustellen.
Ein Quadrat z. B., das ein standardmäßiges Graphikgrundelement ist,
würde als
Daten dargestellt werden, die erforderlich sind, um ein derartiges
Quadrat aufzubauen, wie z. B. Größe, Ort,
Linien- und Füllfarbe,
usw., um so ein graphisches Quadratbild zu bilden. Eine Person jedoch,
die in einem Graphikbild enthalten ist, wäre aus einer Anzahl einzelner
Graphikgrundelemente zusammengesetzt, die, wenn sie zusammengesetzt
werden, wie eine Person oder ein anderes komplexes Objekt aussehen,
das aus einer Mehrzahl von Grundelementen besteht. Heute gibt es
Erkennungssoftware, die eine Bittabelle oder ein digitales Rastergraphikbild
in eine objektorientierte Graphikdarstellung des digitalen Bildes
umwandelt. Diese Algorithmen variieren in ihrer Fähigkeit,
wobei die Graphikdarstellung des digitalen Bildes eine direkte Funktion
der Fähigkeit
des Algorithmus ist, der bei der Umwandlung verwendet wird. Wenn
dieser Algorithmus z. B. bezüglich
des digitalen Bildes einer Person verwendet wird, ist die Qualität des Aussehens
des Graphikbildes der Person eine direkte Funktion der Qualität der Algorithmen, die
das digitale Rasterbild der Person in eine objektorientierte Graphikdarstellung
der Person umwandeln.
-
Sobald
ein digitales Bild in eine objektorientierte Graphikdarstellung
umgewandelt ist, kann der Computer die Position und Ausrichtung
der verschiedenen Grundelemente verändern, die das digitale Bild
darstellen, um eine Bewegung der Graphikdarstellung zu simulieren.
Wenn z. B. ein digitales Bild einer Person in eine Graphikdarstellung
umgewandelt wird, kann die Ausrichtung der objektorientierten Graphikgrundelemente,
die verwendet werden, um die Beine der Person darzustellen, variiert
werden, um das Gehen einer Person zu simulieren. Mit einer Verbesserung
der Komplexität
der Graphikbilder und der simulierten Bewegung nähert sich die Qualität des Graphikgesamtbildes
einem echten oder nichtkünstlichen
Bild an.
-
Die
Graphikdaten, die auf einem Computerbildschirm angezeigt werden
sollen, gelangen durch eine Anzahl von Stufen, um das Gesamtaussehen des
Bildes zu verbessern. Anders ausgedrückt kann das Graphikbild durch
eine Graphikpipeline geleitet werden, die das Aussehen des resultierenden
Graphikgesamtbildes verbessert, verschiedene Korrekturen durchführt und
Grundelemente und Bestandteilskomponenten in ein geeinigtes Bild
zusammenführt.
-
Wie
bereits besprochen wurde, resultieren die Bilder, die auf einem
Computerbildschirm angezeigt sind, normalerweise entweder von einem
objektorientierten Graphikbild oder einem Bittabellen-(Rasterabtast-)
Bild. Wenn Bittabellenbilder angezeigt werden, wird eine Bittabellen-
oder Rasterpipeline verwendet, um die Farbintensitäten der
Pixel einzustellen, bevor das Bild auf dem Computerbildschirm angezeigt
wird. Wenn objektorientierte Graphikbilder angezeigt werden, werden
die Graphikbilder durch eine Graphikpipeline geleitet, um die Grundelemente
zur Betrachtung in ein zusammengesetztes Bild zusammenzubauen. Während frühere Systeme
Abschnitte oder Fenster auf dem Bildschirm getrennt haben, in dem
ein Bittabellenbild oder ein objektorientiertes Graphikbild angezeigt
werden kann, ähnlich
wie bei dem „Bild-in-Bild"-Merkmal moderner Fernsehgeräte, ist
das Bild in einem Bereich oder Fenster des Bildschirms noch immer
entweder ein Bittabellenbild oder ein objektorientiertes Graphikbild,
da diese Bilder durch unterschiedliche Graphikleitungen kommen.
-
Es
existieren Probleme, wenn sowohl objektorientierte (d. h. Vektor-)
als auch Bittabellen- (d. h. Raster-) Graphiken und -Bilder austauschbar
effektiv und effizient verarbeitet werden sollen.
-
Die
US-Patentschrift US-5,943,064 bezieht sich auf eine Vorrichtung
zum Verarbeiten mehrerer Typen von Graphikdaten für eine Anzeige.
Eine Controllerkarte ist vorgesehen, die die Verarbeitung und Anzeige
von zwei Typen von Graphikpixeldaten für eine Anzeige in zwei Umgebungen
ermöglicht.
Die Karte enthält
einen ersten Graphik-Controllerchip, der mit dem Videoerfassungsport
eines zweiten Graphik-Controllerchips
gekoppelt ist. In einem ersten Modus kann die erste Chipgraphik
Pixeldaten für
eine Anzeige in einer ersten Umgebung erzeugen. Die Pixeldaten werden
in dem Speicher des zweiten Chips, der für Graphikpixeldaten reserviert
ist, gespeichert und zu einer Anzeigevorrichtung übertragen,
die mit dem zweiten Chip gekoppelt ist. In einem zweiten Modus kann
der Videoerfassungsport mit einer Videoquelle gekoppelt werden,
so dass Daten, die an dem Videoport erfasst werden, in dem Speicher
des Chips gespeichert werden, der für Videopixeldaten reserviert
ist. Der zweite Chip kann dann sowohl Videopixeldaten als auch einen
zweiten Typ von Graphikpixeldaten, die von dem zweiten Chip erzeugt werden
und in dem Speicher des zweiten Chips gespeichert sind, die für Graphikpixeldaten
reserviert sind, verarbeiten und an die Anzeigevorrichtung ausgeben.
-
Wie
nun beispielhaft Bezug nehmend auf 3 der
US-Patentschrift
US-5,943,064 dargestellt ist, kann die Videoanzeigemaschine eine
Horizontal-Filterungseinrichtung (H-Filterung) enthalten, die die Videodaten
filtert, um Rau schen oder Hintergrundinformationen zu entfernen.
Die Videoanzeigemaschine kann ferner eine Horizontal/Vertikal-Skalierungs- und
Farbraumumwandlungseinrichtung (CSC) aufweisen. Der Skalierungsabschnitt
dieser Vorrichtung kann das Videobild sowohl in der horizontalen
als auch vertikalen Richtung nach oben oder nach unten skalieren,
damit dasselbe entweder größer erscheint,
um beispielsweise die Anzeigevorrichtung vollständig zu füllen, oder um kleiner zu erscheinen,
damit dasselbe auf die Anzeigevorrichtung passt. Dieses nach unten
Skalieren, um die Größe des Bildes
zu reduzieren, kann Busbandbreite einsparen, wenn die Videodaten
zu und von dem Speicher übertragen
werden, und dies kann Speicher einsparen, wenn die Videodaten gespeichert
werden. Die Farbraumumwandlungsoperation kann verwendet werden,
um das Videobild von einem Farbraum, wie z. B. dem YUV-Farbraum,
in einen anderen Farbraum, wie z. B. den RGB-Farbraum, umzusetzen. Ein
Videobild kann konvertiert werden, falls sich dasselbe in einem
Farbraum befindet, der sich von dem Farbraum unterscheidet, der
optimalerweise von der Anzeigevorrichtung verwendet wird. Die Videoanzeigemaschine
kann ferner weitere bekannte Funktionen, die für Videodaten spezifisch sind,
durchführen, wie
z. B. De-Interlacing-
und Dithering-Operationen.
-
Die
wissenschaftliche Veröffentlichung (Park,
H.; EO, K.; Kim, D. [u.a.]: „Two
Widely-Different Architectural Approaches to Computer Image Generation", 1991, IEEE Visualization,
S. 42–49,
ISBN: 0-8186-2245-8) bezieht sich auf zwei unterschiedliche Architekturansätze zur
Computerbilderzeugung. Das UWGSP3 und UWGSP4-System (UWGSP = University
of Washington Graphics System Processor) verwenden parallele Architekturen und
Pipeline-Architekturen für
Hochleistungsgraphikoperationen. Das UWGSP3-System verwendet lediglich
handelsüblich
verfügbare
Off-The-Shelf-Chips und besteht aus einem TMS34020-Graphiksystemprozessor
und vier TMS34082-Gleit, Koprozessoren, die in Pipeline- oder SIMD-Betriebsmodi abhängig von
dem Algorithmus konfiguriert werden können. Das UWGSP4-System verwendet
zweckgebundene ASIC-Chips (ASIC = Application Specific IC) für eine höhere Leistungsfähigkeit
und besteht aus zwei Hauptrechenteilen, nämlich einem parallelen Vektorprozessor
mit 16 Vektorverarbeitungseinheiten, die hauptsächlich zur Bildverarbeitung
verwendet werden, und einem Graphikteilsystem, das eine parallele Pipeline-Architektur
zur Bildsynthese verwendet.
-
Es
ist die Aufgabe der vorliegenden Erfindung, einen Bildprozessor
mit verbesserten Charakteristika oder ein verbessertes Verfahren
zum Verarbeiten eines Bildes zu schaffen.
-
Diese
Aufgabe wird durch einen Bildprozessor gemäß Anspruch 1 oder 19 oder ein
Verfahren zum Verarbeiten eines Bildes gemäß Anspruch 10 gelöst.
-
Der
Bedarf nach einer effektiven und effizienten Verarbeitung von sowohl
objektorientierten als auch Bittabellengraphiken und -Bildern wird
durch ein System und ein Verfahren zum Kombinieren einer objektorientierten
(oder „Vektor"-) Graphik- und einer Rasterabtast-
(oder „bitabgebildeten" oder „Bittabellen"-Bild-) Pipeline
erzielt, so daß Bilddaten
durch ausgewählte
Stufen von einer und/oder beiden Pipelines verarbeitet werden können. Dies
bedeutet, daß eine
objektorientierte Graphikpipeline mehrere Verarbeitungsstufen umfassen
kann, die konfiguriert sind, um sequentiell Graphikdaten zu verarbeiten,
wobei die Graphikdaten Daten umfassen können, um eines oder mehrere
Graphikgrundelemente, wie z. B. Punkte, Linien, Vielecke, alphanumerische
Zeichen, Spezialsymbole und Schriftarten, usw., zu erzeugen. Beispiele
möglicher
Graphikverarbeitungsstufen bei der objektorientierten Graphikpipeline
können
eine Kombination oder Unterkombination einer Abtastumwandlung („Scan Conversion"), eines Abschneidens („Clipping"), einer Fensterung
in einen Betrachtungsport („Windowing
to Viewport"), einer Projektion,
eines Sortieren umfassen und/oder können andere oder Ersatzfunktionalitäten oder
anderes umfassen. Ähnlich
kann eine bitabgebildete oder Rasterabtastpipeline mehrere Verarbeitungsstufen
umfassen, die konfiguriert sind, um aufeinanderfolgend bitabgebildete
Daten zu verarbeiten, die ein Bild als eine Mehrzahl von Pixelleuchtdichtenwerten
und/oder anderen Pixelcharakteristika darstellen. Diese bitabgebildeten oder
Rasterabtastpipelineverarbeitungsstufen können eine Kombination oder
Unterkombination von (i) Mosaikrückbildung,
(ii) Farbkorrektur/Weißabgleich, (iii)
Farbpalettenabbildung, (iv) Tonkorrektur, (v) Flimmerkorrektur,
(vi) Farbumwandlung, (vii) Skalierung umfassen und/oder eine andere
oder Ersatzfunktionalitäten
oder anderes umfassen. Vorzugsweise sorgt der Prozessor für eine selektive
Sequenzierung durch jede Pipeline und für ein „Überkreuzen" von Daten zwischen Stufen jeder Pipeline,
was eine notwendige Datenumwandlung umfaßt (z. B. Vieleckerkennung
und Umwandlung bitabgebildeter Bilder, um objektorientierte Graphikdaten
zu bilden, und ähnliche
Umwandlung von objektorientierten Graphikformatdaten in ein Bittabellendatenformat).
-
Gemäß einem
Aspekt der Erfindung kann ein Bildprozessor eine objektorientierte
Graphikpipeline, die eine erste Mehrzahl von Stufen aufweist, die
konfiguriert sind, um ein Graphikobjekt zu verarbeiten, und eine
Bittabellenbildpipeline umfassen, die eine zweite Mehrzahl von Stufen
aufweist, die konfiguriert sind, um ein Bittabellenbild zu verarbeiten.
Eine Verbindung kann selektiv konfigurierbar sein, um einen Ausgang
aus einer der Stufen einer der Pipelines (d. h. entweder der Graphik-
oder der Bittabellenpipeline) zu einem Eingang einer nächsten ausgewählten oder
Vorgabestufe (falls vorhanden) der gleichen Pipeline oder zu einer
ausgewählten
Stufe (oder Stufen) der anderen Pipeline zu liefern. Gemäß einem Merkmal
der Erfindung kann jede der ersten Mehrzahl von Stufen (d. h. Stufen
der Graphikpipeline) eine unterschiedliche Funktion durchführen, wobei die
Funktionen eines oder mehrere Merkmale der Gruppe umfassen (jedoch
nicht auf dieselben beschränkt
sind), die eine Abtastumwandlung, ein Abschneiden, eine Fensterung
in einen Betrachtungsport, eine Projektion und eine Sortierung umfaßt. Ähnlich kann
gemäß einem
weiteren Merkmal der Erfindung jede der zweiten Mehrzahl von Stufen
(d. h. die Stufen der Bittabellenbildpipeline) eine unterschiedliche
Funktion durchführen,
wobei die Funktionen eines oder mehrere Merkmale der Gruppe umfassen
(jedoch nicht auf dieselben beschränkt sind), die folgendes umfaßt: Mosaikrückbildung,
Farbkorrektur/Weißabgleich,
Farbpalettenabbildung, Tonkorrektur, Flimmerkorrektur, Farbumwandlung
und Skalierung.
-
Gemäß einem
weiteren Merkmal der Erfindung kann eine Ausgangsstufe mit einem
Ausgang von jeder der Pipelines (z. B. von einer ausgewählten Stufe
sowohl der Graphik- als auch der Bittabellenbildpipeline) verbunden
sein. Die Verbindung zwischen den Pipelines kann eine Schaltmatrix
umfassen, die konfigurierbar ist, um Ausgänge von einer oder mehreren
der ersten Mehrzahl von (Graphik-) Stufen zu einer bestimmten oder
ausgewählten nächsten der
ersten Mehrzahl von (Graphik-) Stufen und zu einer ausgewählten der
zweiten Mehrzahl von (Bittabellenbild-) Stufen zu leiten. Ähnlich kann
die Schaltmatrix konfiguriert sein, um Ausgänge von einer der zweiten Mehrzahl
von (Bittabellenbild-) Stufen zu einer nächsten der zweiten Mehrzahl
von (Bittabellenbild-) Stufen und zu einer ausgewählten der ersten
Mehrzahl von (Graphik) Stufen zu leiten. Gemäß einem weiteren Merkmal der
Erfindung ist die Graphikpipeline konfiguriert, um Graphikdaten
zu empfangen, die Graphikidentifizierungs- und Lokalisierungsdaten
umfassen, wobei die Bittabellenbildpipeline konfiguriert ist, um
Rasterabtastbilddaten zu empfangen, die Pixelleuchtdichteninformationen
darstellen. Ein Datenformatumwandler kann enthalten und konfiguriert
sein, um zwischen einem objektorientierten Graphikdatenformat und
einem Bittabellenbilddatenformat, d. h. unidirektional von einem
oder bidirektional von einem der beiden Formate zu dem anderen,
umzuwandeln.
-
Gemäß einem
weiteren Merkmal der Erfindung kann eine Bilderkennungsstufe konfiguriert sein,
um objektorientierte Graphikbilder in dem bitabgebildeten Bild zu
identifizieren und codieren. Die Erkennungsstufe kann z. B. Grundelemente
und -Formen, die Vielecke, Polyeder, Linien, Ebenen, Kurven, Bögen, Punkte,
Vektoren, Zeichen, Symbole und andere Grundelemente umfassen, und
zusammengesetzte Graphikstrukturen in einer Bittabellen- oder rasterbasierten
Darstellung erkennen und dieselben in eine geeignete objektorientierte
Graphikdatendarstellung umwandeln. Die Umwandlung kann ein Löschen der
umgewandelten Abschnitte von dem ursprünglichen Bittabellenbild umfassen,
so daß ein verbleibender
Abschnitt desselben geeignet verarbeitet werden kann, während die
umgewandelten Objekte einer Graphikpipelineverarbeitung unterzogen
werden. Ein gemeinsamer Instruktionsdecodierer kann enthalten sein,
der wirksam ist, um die Verbindung (z. B. eine Schaltmatrix) zu
steuern, um zumindest eines der Graphikobjekte und der bitabgebildeten
Bildobjekte zwischen sowohl der Graphik- als auch der Bittabellenbildpipeline
zu leiten.
-
Gemäß einem
weiteren Aspekt der Erfindung kann ein Verfahren zum Verarbeiten
eines Bildes eine selektive Konfiguration einer oder mehrerer Stufen
einer objektorientierten Graphikpipeline und einer oder mehrerer
Stufen einer Bittabellenbildpipeline umfassen. Die resultierende
Konfiguration kann bewirken, daß ein
Ausgang von einer der Stufen einer der Pipelines zu einem Eingang
einer der Stufen der anderen der Pipelines geliefert wird, und kann eine
Verarbeitung eines Bildes durch eine Übertragung des Bildes durch
zumindest eine der Stufen jeder Pipeline bewirken.
-
Gemäß einem
Merkmal der Erfindung kann sich ein Verarbeiten, das durch jede
der Graphikpipelinestufen durchgeführt wird, von einer Verarbeitung unterscheiden,
die durch die anderen Stufen dieser Pipeline durchgeführt wird,
und kann aus der Verarbeitungsgruppe ausgewählt werden (ist jedoch nicht auf
dieselbe beschränkt),
die eine Abtastumwandlung, ein Abschneiden, eine Fensterung in einen
Betrachtungsport, eine Projektion und ein Sortieren umfaßt. Ähnlich kann
sich die Verarbeitung, die durch jede der Stufen der Bittabellenbildpipeline
durchgeführt
wird, von der Verarbeitung unterscheiden, die durch die anderen
Stufen durchgeführt
wird, und kann aus der Verarbeitungsgruppe ausgewählt werden
(ist jedoch nicht auf dieselbe beschränkt), die eine Mosaikrückbildung,
eine Farbkorrektur/Weißabgleich,
eine Farbpalettenabbildung, eine Tonkorrektur, eine Flimmerkorrektur,
eine Farbumwandlung und eine Skalierung umfaßt.
-
Gemäß einem
weiteren Merkmal der Erfindung kann ein Kombinationsschritt einen
zusammengesetzten Ausgang aus Signalen oder Daten bilden, die durch
Ausgänge
beider Pipelines geliefert werden.
-
Gemäß einem
weiteren Merkmal der Erfindung kann der Schritt des selektiven Konfigurierens der
Pipelines ein alternatives Leiten von Ausgängen von einer oder mehreren
Stufen zu einer nächsten der
Stufen oder zu einer ausgewählten
der Stufen der anderen Pipeline umfassen. Objektorientierte Graphikdaten
können
durch die Graphikpipeline in einem Format weitergeleitet werden,
das Graphikidentifizierungs- und Lokalisierungsdaten umfaßt, und/oder Rasterabtast-
(oder Bittabellen-) Bilddaten, die einzelne Pixelcharakteristika
(z. B. Leuchtdichte, Farbe oder andere Pixelanzeigeinformationen,
usw.) darstellen, können
durch die Bittabellenbildpipeline geleitet werden. Ein Umwandlungsschritt
kann enthalten sein, um zwischen einem objektorientierten Graphikdatenformat
und einem Bittabellenbilddatenformat umzuwandeln (d. h. eine Datenumwandlung
in eine oder beide Richtungen durchführen). Ein Bilderkennungsschritt
kann für
eine Identifizierung und Codierung der Graphikbilder in dem Bittabellenbild
sorgen. Gemäß einem
weiteren Merkmal der Erfindung liefert ein Schritt des Steuerns
einer Verbindung ein Leiten des Graphikobjekts oder des Bittabellenbildob jekts
(oder beider) zwischen der Graphik- und der Bittabellenbildpipeline.
-
Gemäß einem
weiteren Aspekt der Erfindung kann ein Prozessor zwei Pipelineeinrichtungen umfassen,
wobei eine erste Pipelineeinrichtung eine Mehrzahl von Graphikbildverarbeitungseinrichtungen
zur Verarbeitung eines objektorientierten Graphikbildes umfassen
kann, und wobei eine zweite Pipelineeinrichtung eine Mehrzahl von
Bittabellenbildverarbeitungseinrichtungen zur Verarbeitung eines
Bittabellenbildes umfassen kann. Eine Verbindungseinrichtung kann
selektiv einen Ausgang von einer Verarbeitungseinrichtung einer
der Pipelineeinrichtungen mit einem Eingang einer der Verarbeitungseinrichtungen
der anderen der Pipelineeinrichtungen verbinden.
-
Das
Vorausgegangene hat relativ allgemein bestimmte Merkmale und technische
Vorteile der vorliegenden Erfindung herausgestellt, so daß die detaillierte
Beschreibung der Erfindung, die nun folgt, besser verständlich ist.
Zusätzliche
Merkmale und Vorteile der Erfindung werden im folgenden beschrieben,
die den Gegenstand der Ansprüche
der Erfindung bilden. Es ist für
Fachleute offensichtlich, daß die
Konzeption und das spezifische offenbarte Ausführungsbeispiel ohne weiteres
als eine Basis zum Modifizieren oder Entwerfen anderer Strukturen
zum Ausführen
der gleichen Zwecke der vorliegenden Erfindung verwendet werden
können.
Es sollte für Fachleute
ebenfalls ersichtlich sein, daß derartige gleichwertige
Aufbauten nicht von dem Bereich und der Wesensart der vorliegenden
Erfindung abweichen, wie diese in den beigefügten Ansprüchen dargelegt ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegende Zeichnung näher
erläutert.
-
Die
Figur zeigt ein Blockdiagramm einer kombinierten Pipeline gemäß einem
Ausführungsbeispiel
der Erfindung, bei dem Stufen einer Bittabellenpipeline mit Stufen
einer Graphikpipeline verbunden sind.
-
Eine
digitale Bildverarbeitung erfordert ein Verarbeiten eines Bittabellenbildes
unter Verwendung einer Bittabellen- oder Rasterpipeline, um ein anzeigbares
Bild zu erhalten, das Rot-, Grün-
und Blaupixelinformationen enthält.
Die Bittabellenpipeline umfaßt
eine Zahl von Schritten, in denen das resultierende Bild korrigiert
oder manipuliert wird, um sicherzustellen, daß ein genaues, repräsentatives und
angenehmes Bild angezeigt wird. Eine digitale Videoanzeige zeigt
z. B. üblicherweise
30 Digitalbildrahmen pro Sekunde an, wobei jedes digitale Bild, wie
unten beschrieben, durch die Rasterpipeline geleitet wird. Der Computer,
der ein digitales Bild oder ein Voll- oder Teilbewegungsdigitalvideo
anzeigt, interpretiert das digitale Bild oder die Bilder als eine Kombination
von Intensitätswerten
für die
Pixel, die das digitale Bild bilden, das auf dem Computeranzeigemonitor
angezeigt werden soll. Ohne eine zusätzliche Verarbeitung erkennt
der Computer keine Objekte, die in dem digitalen Bild oder Video
enthalten sind.
-
Der
Computer kann jedoch eingeschränkte Modifizierungen
von digitalen Bittabellenbildern durchführen. Da der Computer das digitale
Bild als eine Serie von Intensitätswerten
interpretiert, kann der Computer Intensitätswerte erhöhen oder senken, um jeweilige
angezeigte, resultierende Farben zu verdunkeln oder zu reduzieren.
-
Die
Figur zeigt eine kombinierte Pipeline, die die Verarbeitungsstufen
von sowohl der Bittabellenpipeline als auch die Verarbeitungsstufen
der objektorientierten Graphikpipeline gemäß einem Ausführungsbeispiel
der Erfindung umfaßt.
Verbindungen sind in der kombinierten Pipeline enthalten, die es
ermöglichen,
daß der
Ausgang einer Stufe der Pipeline zu einer anderen Stufe der Pipeline
zur weiteren Verarbeitung geleitet wird. Ein Bild in der Form eines Bayer-Struktur-Bittabellenbildes 101 ist
z. B. gezeigt, das bei einer Mosaikrückbildungsstufe 102 eine
herkömmliche
Bittabellenpipeline 100 betritt. Die Mosaikrückbildungsstufe 102 wandelt
die Bayer-Struktur-Eingangselemente von Rot-, Grün- und Blautriadenintensitäten für jedes
Pixel um und gleicht Artefakte (den Einfluß vorher zugeführter Intensitätswerte)
aus. Bei einer herkömmlichen
Bittabellenpipeline würden
die Ausgangsintensitätswerte
der Mosaikrückbildungsstufe 102 in
eine Farbkorrektur-und-Weißabgleich-Stufe 103 geleitet.
In der Farbkorrektur-und-Weißabgleich-Stufe 103 prüft die Verarbeitungssoftware
den Gesamtweißabgleich
der Bittabellen, um sicherzustellen, daß die Farben, die jedes Pixel
bilden und sich kombinieren sollen, um weiß zu erscheinen, die korrekten
Intensitäten
für die Kombination
aufweisen, um tatsächlich
weiß zu
erscheinen. Zusätzlich
werden die Intensitäten
anderer Farben durch ein Einstellen der Intensitäten der roten, grünen und
blauen Komponenten eingestellt, so daß die angezeigten Farben so
weit wie möglich
an die tatsächlichen,
beabsichtigten Farben angepaßt sind.
-
Unterschiedliche
Vorrichtungen erzeugen spezifische Farben unterschiedlich, wobei
eine Farbpalettenabbildungsstufe 104 Farbgebungsunterschiede
zwischen verschiedenen Plattformen korrigiert. Dieser Ausgleich
korrigiert Unterschiede zwischen verschiedenen Vorrichtungen, wie
z. B. Computerbildschirmen, Druckern, Plottern oder einer anderen
Vorrichtung, bei der das Bild angezeigt oder aufgenommen werden
soll. Der Zweck der Farbpalettenabbildung 104 besteht darin,
Unterschiede zu beseitigen, die von einem Farbraum zu einem anderen Farbraum
auftreten können,
so daß die
resultierenden Farben in dem digitalen Bild genau erzeugt werden.
Anders ausgedrückt
sollte ein digitales Bild, das auf einem Computerbildschirm angezeigt
wird, die gleiche Farbgebung wie eine gedruckte Kopie des digitalen
Bildes aufweisen. Die Farbpalettenabbildungsstufe 104 soll
eine getreue Bildwiedergabe verbessern.
-
Eine
Tonkorrekturstufe 105 ist auch in der Videopipeline enthalten,
um Farbabweichungen von Pixel zu Pixel zu besei tigen oder zu reduzieren,
wenn beide Pixel die gleiche Farbe darstellen. Wenn z. B. in der
Mitte eines Diagramms ein quadratischer roter Kasten ist, wobei
die Farbe des Kastens in sich konsistent ist, prüft die Tonkorrektur die Bestandteilspixelfarbkomponenten
des quadratischen roten Kastens und stellt die Intensitäten der
roten, grünen
und blauen Komponenten ein, um identisch zu sein.
-
Eine
Flimmerkorrekturstufe 106 ist auch in der Rohbildpipeline
enthalten, um die Effekte weißen Lichts
bei dem ursprünglichen
Bild zu steuern, sowie, wie das weiße Licht das resultierende
Bild beeinflußt. Wenn
z. B. ein Teil des quadratischen roten Kastens, der oben besprochen
wurde, mit einem weißen Scheinwerfer
beleuchtet wird, während
ein weiterer Abschnitt des quadratischen roten Kastens außerhalb
des Lichts von dem Scheinwerfer war, sollte das Vorliegen des weißen Scheinwerfers
den Schatten der roten Farbe auf dem quadratförmigen roten Kasten nicht beeinflussen,
sondern nur die Beleuchtung dieses Abschnitts des roten Kastens
selbst. Die Flimmerkorrekturstufe 106 stellt die Intensitäten jeder Farbkomponente
ein, so daß resultierende
Farben proportional zwischen Pixeln bei anderen Beleuchtungsbedingungen
korrekt bleiben.
-
Eine
Farbumwandlungsstufe 107 gleicht Veränderungen der Farbe bei einem
einzelnen Objekt aus, wobei eine Skalierungsstufe 108 in
der Videopipeline enthalten ist, um das digitale Bild für die erwünschte Anzeige-
oder Ausgabevorrichtung zu skalieren. Es ist wichtig anzumerken,
daß die
Schritte, die in der Bittabellenpipeline 100 der kombinierten Pipeline
enthalten sind, beispielhaft für
eine mögliche Raster-
oder Bittabellenbildverarbeitung gegeben sind, wobei die Unterteilung
einer derartigen Verarbeitung in diskrete Stufen, wie dies verwendet
werden könnte,
um ein spezifisches digitales Bild zu verarbeiten, unter Umständen nicht
während
der Verarbeitung jedes einzelnen angezeigten Digitalbildes erforderlich
ist. Zusätzlich
ist die Bittabellenpipeline 100, die in der kombinierten
Pipeline ent halten ist, nur eine Sequenz, in der die Verarbeitungsschritte auftreten
können.
Die Tonkorrekturstufe 105 kann z. B. vor der Farbpalettenabbildungsstufe 106 auftreten.
Die Farbpalettenabbildung 106 benötigt Informationen über die
beabsichtigten Ausgangsvorrichtungen. Die Farbpalettenabbildung
kann bei einigen Fällen
der letzte Schritt in der Bittabellenpipeline 100 sein.
Die Sequenz von Stufen, und sogar die Zahl von Stufen, durch die
ein spezifisches digitales Bild in der Bittabellenpipeline verarbeitet
wird, ist flexibel. Gemäß einem
Ausführungsbeispiel
ist jede der erläuterten
Stufen vorzugsweise in der Bittabellenpipeline enthalten, um eine
erwünschte
Korrektur zu liefern.
-
Ebenfalls
in der kombinierten Pipelinestruktur enthalten ist eine objektorientierte
Graphikpipeline 109. Ein anfängliches objektorientiertes
Graphikbild, wie z. B. eine Linie 110, die durch zwei Endpunkte
x1, y1 und z1 und x2, y2 und z2 definiert ist, betritt die Graphikpipeline 109 bei
einer Abtastumwandlungsstufe 111. Für eine Linie würde die
Abtastumwandlungsstufe 111 algorithmisch eine imaginäre Linie
ziehen, die alle Punkt entlang der Linie 110 darstellt.
Sobald die Linie algorithmisch bestimmt ist, werden die Pixel, die
das Bild der Linie aufbauen, identifiziert und wiedergegeben. Wiedergeben
ist der Ausdruck, der verwendet wird, um die Erzeugung des Bildes
unter Verwendung geometrischer Modelle und unter Verwendung einer
Farbe und Schattierung zu beschreiben, um dem Bild ein realistisches
Aussehen zu geben. Die Gesamtfunktion der Abtastumwandlungsstufe 111 kann
auch das Verfahren des Umwandelns einer verbindungslosen geometrischen Beschreibung
einer Form, wie z. B. eines Vielecks, umfassen, um ein Bild eines
Vielecks wiederzugeben.
-
Eine
Abschneidstufe 112 tritt auf, wenn ein Bildfenster definiert
ist und Abschnitte des wiedergegebenen Bildes, die außerhalb
des spezifizierten Bildfensters liegen, aus dem wiedergegebenen
Bild entfernt werden. Die Abschneidstufe umfaßt die Anwendung einer Zahl
möglicher
Algorithmen. Ein Abschneiden kann Fenster mit vom Benutzer definierter Größe und Formen
verwenden, um intelligent Abschnitte des Bildes außerhalb
des definierten Raums zu entfernen.
-
In
der Fensterung-in-einen-Betrachtungsport-Stufe 113 sind
orthogonale Koordinaten definiert, üblicherweise u und v, um einen
Raum zu definieren, der das Graphikbild umfaßt. Sobald der Raum definiert
ist, wird der Raum genormt, indem ein Satz von Algorithmen angewendet
wird, die eine geometrische Umwandlung bezüglich des definierten Raums durchführen. Der
genormte Raum wird verwendet, um die Komplexität der Projektion, die in einer
Projektionsstufe 114 durchgeführt wird, zu minimieren.
-
Die
Projektionsstufe 114 definiert verschiedene Projektionen
oder Standpunkte zum Betrachten eines Graphikobjekts und des Abschnitts
des Graphikobjekts, der von den verschiedenen Standpunkten betrachtet
wird. Bei der Projektionsstufe 114 wird die genormte geometrische
Form mit einer Mitte der Projektion gepaart, von der ein Strahl
projiziert wird, wobei die Abschnitte der geometrischen Form identifiziert
werden, die von dieser Mitte der Projektion sichtbar sind. Eine
hintere Abschneidebene kann z. B. definiert sein, in der eine Projektion
des Bildes erzeugt wird, die die Form des Bildes umfaßt, wie
dieses von der Rückseite
oder hinter dem Bild erscheinen würde. Ähnlich kann eine vordere Abschneidebene
definiert sein, in der eine Projektion des Bildes erfaßt wird,
wie dieses von der Vorderseite erscheinen würde. Diese Projektionen können von
einem zweidimensionalen Standpunkt oder von einem dreidimensionalen
Standpunkt sein. Üblicherweise
wird eine Parallelprojektion verwendet, bei der die Mittelprojektion
definiert ist, um unendlich zu sein. Die Parallelprojektion ermöglicht es,
daß die
Projektion des Objekts so erscheint, als ob der Standpunkt eine
Ebene parallel zu der Oberfläche
des Objekts wäre,
und nicht von einem einzelnen Punkt im Raum. Die Mitte der Projektion
kann vordefiniert oder durch den Benutzer bestimmt sein.
-
Eine
Sortierungsstufe 115 wird üblicherweise plaziert, nachdem
ein Ansichtsreferenzpunkt definiert ist. Der Ansichtsreferenzpunkt
definiert den Punkt, von dem die Projektion des Objekts auf dem
Anzeigebildschirm angezeigt wird. Sobald der Ansichtsreferenzpunkt
definiert ist, werden die Projektionen des Bildes, die durch die
Projektionsstufen 114 erzeugt wurden, sortiert, um die
korrekte Projektion von dem Ansichtsreferenzpunkt zu identifizieren.
Einer der Algorithmen, die bei der Sortierungsstufe 115 verwendet
werden, ist z. B. ein Rückflächenaussortierungsalgorithmus
(„Backface
Culling Algorithm"),
der Oberflächen
eliminiert, die von dem Referenzstandpunkt aus hinter dem Graphikobjekt
liegen würden.
Die Sortierungsstufe 115 stellt die Familie von Algorithmen
dar, die die Abschnitte des Graphikbildes bestimmen, die zu sehen
sein werden. Ein Tiefensortierungsalgorithmus ist üblicherweise
ebenfalls enthalten, um verschiedene Tiefen des Graphikobjekts zu betrachten
und geeignet anzuzeigen. Der Ansichtsreferenzpunkt kann vordefiniert
oder durch den Benutzer bestimmt sein.
-
Die
Ausgänge
der objektorientierten Graphikpipeline 109 und der Rasterpipeline 100 werden kombiniert,
um einen zusammengeführten
Ausgang 116 zu bilden. Der zusammengeführte Ausgang kann entweder
aus der letzten Ausgangsstufe der Graphikpipeline 109 oder
der Rasterpipeline 100 sein. Alternativ kann der zusammengeführte Ausgang
Ausgänge
von beiden Pipelines sein, die durch eine geeignete Einrichtung
miteinander verbunden sind. Der zusammengeführte Ausgang 116 kann
dann auf dem Computerbildschirm oder durch eine andere Vorrichtung
angezeigt werden.
-
Die
kombinierte Pipeline umfaßt
Querverbindungen 117 bis 139, die eine Leitmatrix 140 bilden und
die sich zwischen den Stufen der Rasterpipeline und den Stufen der
Graphikpipeline befinden. Die Leitmatrix 140 wird durch
eine Steuerungslogik 141 gesteuert, die Konfigurationsregister 142 umfaßt, die verwendet
werden, um Verbindungen zwischen und unter Pipelinestufen zu definieren,
wie diese in der Leitmatrix 140 implementiert sind. Die
Steuerungslogik 141 kann eine automatische Steuerung des
Pfades umfassen, dem die spezifischen Bilddaten durch die kombinierte
Pipeline folgen können.
Dieser Pfad kann durch Anwendungssoftwareeinstellungen (vordefiniert
oder vom Benutzer gesteuert), Betriebssystemeinstellungen (vordefiniert
oder vom Benutzer gesteuert) oder basiert auf im vorhinein festgelegten Regeln
abhängig
von den Charakteristika der Bilddaten, der Eingangsvorrichtung und/oder
der Ausgangsvorrichtung gesteuert werden.
-
Diese
Verbindungen ermöglichen
es, daß die Bilddaten
von jeder Pipeline in ein kombiniertes Bild umgewandelt und durch
jede der Stufen verarbeitet werden, die in der kombinierten Pipeline
enthalten sind. Sobald die Mosaikrückbildungsstufe 102 ihre Verarbeitung
z. B. beendet hat, können
die resultierenden Bittabellenbilddaten eine Sequenz von Farbintensitätswerten
sein, die das digitale Bild darstellen. Diese Intensitätswerte
können über den
Pfad 117 zu der Abtastumwandlungsstufe 111 gesandt
werden. Bei der Abtastumwandlungsstufe 111 wird das Bild,
das aus einer Serie von RGB-Werten besteht, verarbeitet, daß die Software
die objektorientierten Graphikobjekte erkennt, die in dem Bittabellenbild enthalten
sind. Diese Objekterkennungssoftware befindet sich in der Stufe 143 und
ist bidirektional mit dem Ausgang der Stufen verbunden, die in der
Bittabellenpipeline 100 enthalten sind. Wenn z. B. das
ursprüngliche
digitale Bild das einer Person ist, werden zahlreiche Pixel 101 durch
die Mosaikrückbildungsstufe 102 verarbeitet.
Diese Folge von Pixeln kann nach der Verarbeitung des digitalen
Bilds zu der Abtastumwandlungsstufe 111 gesandt werden,
wobei das Bild der Person, die in dem digitalen Bild enthalten ist,
in eine Serie von objektorientierten geometrischen Formen (d. h.
Grundelementen) umgewandelt wird, die sich dem ursprünglichen
Bittabellendigitalbild annähern.
Sobald die Umwandlung durchgeführt wurde,
wandelt die Abtastumwandlungsstufe 111 die geometrischen
Objekte in eine dreidimensionale Darstellung der Person um, die
in dem digitalen Bild enthalten ist. Die dreidimensionale Darstellung
kann dann durch eine der verbleibenden Stufen der Graphikpipeline
geeignet verarbeitet werden.
-
Alternativ
kann statt der Leitmatrix 140 ein Leiten von Daten zwischen
und unter den verschiedenen Pipelinestufen erzielt werden, indem
Leitinformationen enthalten sind, die an die zu verarbeitenden Bilddaten
angehängt
oder denselben anderweitig zugeordnet sind, wie z. B. ein Leitetikett,
das einen Pfad durch die kombinierten Pipelines definiert.
-
Umgekehrt
ist, wenn ein Graphikgrundelement in der Form einer Linie 110 durch
die Abtastumwandlungsstufe 111 empfangen wird, eine dreidimensionale
Darstellung dieser Linie üblicherweise das
Endergebnis der Abtastumwandlung. Wenn der Benutzer diese dreidimensionale
Linie zu der Farbkorrektur/Weißabgleich-Stufe 103 senden
möchte, würde die
dreidimensionale Linie in eine Bittabellendarstellung umgewandelt
werden, die die Linie in einem digitalen Format darstellt. Diese
Umwandlung wird durch den Datenformatumwandler 144 durchgeführt, der
bidirektional mit dem Ausgang jeder Stufe der objektorientierten
Graphikpipeline 109 verbunden ist. Diese RGB-Vier-Pixel-Darstellung könnte dann
zur Verbesserung durch jede der verbleibenden Stufen der Bittabellenpipeline 100 gesandt
werden.
-
Alternativ
und vorzugsweise kann ein kombiniertes Format erzeugt werden, das
die bevorzugten Attribute der beiden Verfahren zum Darstellen von Bildern,
die Fähigkeit
für den
Computer, Objekte des objektorientierten Graphikformats zu erkennen
und zu manipulieren, und die Fähigkeit,
das Bild genau auf dem Computerbildschirm durch das Bittabellenbildformat
darzustellen, enthält.
Dieses kombinierte Format würde
die Notwendigkeit beseitigen, das Bild jedesmal von einer Graphikdarstellung
in eine RGB-Pixeldarstellung umzuwandeln, wenn der Benutzer das
Bild zu einer Stufe leitet, die üblicherweise in
der Bittabellenpipeline enthalten ist, und das Bild von einer RGB-Bittabellendarstellung
in eine objektorientierte Graphik-(oder Vieleck-) Darstellung umzuwandeln,
wenn Stufen von der Graphikpipeline verwendet werden. Dieses kombinierte
Format ist vorzugsweise eine Abbildung zwischen dem RGB-Rasterraum
und dem objektorientierten Graphikraum oder kann aus einem Supersatz
der beiden Formate bestehen.