-
Gebiet der
Erfindung
-
Die Erfindung bezieht sich im Allgemeinen
auf Bildfaltungstechniken und insbesondere auf eine Durchführung von
Faltungen digitaler Bilder oder objektbasierter Grafiken in einer
Abtastzeilenbereitstellungs-Umgebung.
-
Stand der
Technik
-
Derzeitige Bildfaltungssysteme führen Bildfaltungen
unter Verwendung von Halbleiterspeicher-Rahmenzwischenspeichern
durch. Dies kann jedoch möglicherweise
die Bildgröße, auf
die Faltungen angewandt werden können,
auf das beschränken,
was in einem verfügbaren
Speicher gespeichert werden kann, besonders dann, wenn eine Hochgeschwindigkeits-Bereitstellung
eines Bildes benötigt
wird. Ferner erlauben derzeitige Systeme eine Anwendung von Faltungen
nur auf Bilder, die aus bildpunktbasierten Bilddaten gebildet sind, und
nicht im Allgemeinen auf Bilder, die aus objektbasierten grafischen
Bilddaten gebildet sind.
-
Mit Bezug auf
1 kann eine Faltung eines Bildes mit
einer beliebigen mathematischen Funktion wie folgt definiert werden.
Ein Bild
10 kann mittels einer Funktion I(x,y) angegeben
werden, wobei x eine horizontale Position entlang einer Abtastlinie
11 und
y eine vertikale Position am Bild
10 hinunter ist, ausgehend
von der oberen linken Ecke des Bildes
10. Ein Bildpunkt
12 mit
Bildpunkt-Integerkoordinaten p und q hat einen von der Funktion
I(x,y) zurückgegebenen
Wert in dem Bereich p ≤ x ≤ p + 1, q ≤ y + 1. In
der Praxis ist ein Bild üblicherweise
als eine Reihe von Farbkomponenten dargestellt, wie zum Beispiel
rot, grün
und blau, die als RGB-Werte bekannt sind. Daher gibt I(x,y) üblicherweise
mehrere Funktionen an, eine für
jede Farbkomponente: I
R(x,y) , I
G(x,y) und I
B(x,y)
. Die Faltung des Bildes
10 mit einer vorbestimmten Funktion
f(x,y) ist mathematisch definiert als
wobei f theoretisch über einen
unbegrenzten oder begrenzten Definitionsbereich definiert sein kann.
Im praktischen Sinn wird eine Faltung üblicherweise durch Darstellung
von f(x,y) mittels einer (auch als Kern bzw. „Kernel" bekannten) begrenzten Maske
21 k
ij mit i = –m, ..., m, j = –n, ...,
n durchgeführt,
die in
2 gezeigt und
so dargestellt ist, dass das Zentralelement oder der Koeffizient
der Maske das k
00-Element
22 ist.
Die Faltung wird an jedem Bildpunkt (p,q) mit
berechnet, wobei die Verwendung
von I eine Reihe von unabhängigen
Berechnungen auf jeder Farbkomponente, je nach Bedarf, angibt.
-
3 zeigt
eine Berechnung einer Faltung gemäß der begrenzten Maske 21 gemäß 2. Jeder Bildpunkt 31 in
einem Ausgabebild 32 hängt
von einer Nachbarschaft einer Vielzahl von Bildpunkten 33 über eine Vielzahl
von Abtastzeilen eines Eingabebildes 34 hinweg ab. Bei
herkömmlichen
Systemen wird ein Gesamtbild-Halbleiter-Rahmenzwischenspeicher verwendet, um
das Eingabebild 34 in seiner Gesamtheit derart zu speichern,
dass beim Zugreifen auf diesen Nachbarschaftsbereich von Bildpunkten
keine Schwierigkeit besteht.
-
Während
dieser ganzen Beschreibung ist, wenn nicht anders vermerkt, ein
Bezug auf „Speicher" als ein Bezug auf
einen Speicher mit hoher Datenübertragungsrate
und vorzugsweise niedriger Zugriffszeit zu interpretieren, wie es
etwa ein halbleiterbasierter Direktzugriffsspeicher ist, der im
Wesentlichen höhere
Datenübertragungsraten
und niedrigere Zugriffszeiten bereitstellt als zum Beispiel ein
(magnetischer) Festplattenspeicher oder ein optischer Plattenspeicher.
Andere Beispiele für
einen Speicher von hoher Datenübertragungsrate
und niedriger Zugriffszeit umfassen einen Blasenspeicher und einen
Quecksilber-Laufzeitspeicher und
dergleichen.
-
Jedoch wirft die Verwendung eines
Rahmenzwischenspeichers für
Bildfaltungen neben anderen Bildmanipulations-Vorgängen
eine Anzahl von Problemen und Nachteilen auf. Erstens bleibt ein
derartiger Speicher relativ teuer, obwohl die Kosten für einen
derartigen Speicher über
die vergangenen Jahre gefallen sind. Daher ist die typischerweise
in Computersystemen verwendete Kapazität eines derartigen Speichers
oft durch die gleichzeitige Ausführung
eines Betriebssystems und eines von mehreren Anwendungsprogrammen
verbraucht, die alle dazu tendieren, vor der Verwendung eines langsamen
Speichers (z. B. einer Festplatte) schnelle Speicherressourcen zur
Zwischenspeicherung zu verwenden. Des Weiteren fördert die Bereitstellung eines
Rahmenzwischenspeichers das Bereitstellen von grafischen Objekten
in bildpunktbasierter Form, wodurch weitere Speicherressourcen belegt
und die vorstehend erwähnten
Probleme verstärkt
werden.
-
Die US-A-5241372 offenbart eine Bildverarbeitungsvorrichtung
mit einem Operator mit einer begrenzten Maske zur Verarbeitung der
in einem Videobild enthaltenen Bildpunkte. Eine Speichereinrichtung
wie etwa ein Rahmenspeicher, der im Wesentlichen die gleichen Bildpunktlagen
wie die Bildpunkte in dem eingegebenen Videobild aufweist, ist bereitgestellt,
wobei ein zweidimensionales Filter auf die Bildpunkte angewandt wird,
um verarbeitete Ausgabebildpunkte zu erzeugen.
-
Die WO-A-96/35203 offenbart eine
Vorrichtung und ein Verfahren zum Ausgleichen von Hochfrequenzinformationen
in einer verschachtelten computererzeugten Anzeige. Das computererzeugte
RGB-Signal wird in ein YUV-Signal umgewandelt, das dann in seine
Y-, U- und V-Komponenten aufgeteilt wird. Die Y-Komponente wird
mittels einer Mittelwertbildung der aktuellen Abtastzeile mit der
Zeile über
und der Zeile unter der aktuellen Abtastzeile gefaltet, wodurch
ein Flimmern vermieden wird.
-
Es ist daher eine Aufgabe der Erfindung,
sich mit einem oder mehreren Schwierigkeiten zu befassen, die mit
Anordnungen gemäß dem Stand
der Technik in Zusammenhang stehen.
-
Kurzfassung
der Erfindung
-
Die Erfindung berücksichtigt die Verwendung von
Abtastzeilen-Zwischenspeichern (oder Band-Zwischenspeichern) anstelle von herkömmlichen
Rahmen- Zwischenspeichern,
um Bildfaltungsoperationen durchzuführen, und dies wird besonders
vorteilhaft, wenn grafische objektbasierte Bilder behandelt werden.
-
Gemäß einem Aspekt der Erfindung
ist ein Verfahren zum Anwenden eines Faltungsoperators mit einer
begrenzten Maske auf ein Bild bereitgestellt, wobei die begrenzte
Maske eine Vielzahl von in einer vorbestimmten Anzahl von Zeilen
und einer vorbestimmten Anzahl von Spalten angeordneten Koeffizienten
aufweist, wobei das Verfahren gekennzeichnet ist durch die Schritte:
Bereitstellen
von zumindest einer vorbestimmten Anzahl von Abtastzeilen von zumindest
einem Objekt, das aus einer Vielzahl von einzeln manipulierbaren,
das Bild definierenden grafischen Objekten ausgewählt ist,
und Speichern der bereitgestellten Abtastzeilen in einer Zwischenspeichereinrichtung,
die zum Speichern eines Anteils des Bildes angepasst ist, wobei
die vorbestimmte Anzahl von Abtastzeilen gleich der Anzahl von Zeilen oder
der Anzahl von Spalten der Maske ist; und
Anwenden der Maske
auf die bereitgestellte Vielzahl von Abtastzeilen, um eine Abtastzeile
eines Ausgabebildes zu erzeugen.
-
Vorzugsweise werden die Bereitstellen-Schritte
und Anwenden-Schritte zum Erzeugen einer Vielzahl von Abtastzeilen
des Ausgabebildes wiederholt, wobei beim Bereitstellen-Schritt für jede Abtastzeile
des Ausgabebildes eine Abtastzeile verworfen und eine nächste Abtastzeile
bereitgestellt wird.
-
Höchstwünschenswert
ist, dass das Bild in einer objektbasierten Grafikumgebung dargestellt
wird. In einem derartigen Fall wird das Bild mittels einer Ausdrucksbaumdarstellung
mit einer Vielzahl von Knoten dargestellt. Typischerweise sind die
Knoten entweder als ein Operator oder als ein Grundelement gekennzeichnet.
Wahlweise kann das Bild mittels einer Befehlsfolge oder mittels
einer hierarchischen Datendarstellung dargestellt werden. Im Allgemeinen
weisen ein oder mehrere Knoten des Ausdrucksbaumes oder jeder Befehl
der Befehlsfolge eine mit ihnen in Verbindung stehende Bereitstellungsnummer
auf. Typischerweise stellt die Bereitstellungsnummer die Anzahl
von Abtastzeilen dar, die vor einer aktuellen Abtastzeile für den Knoten
oder den Befehl bereitzustellen sind.
-
Gemäß einem zweiten Aspekt der
Erfindung ist eine Vorrichtung zum Anwenden eines Faltungsoperators
mit einer begrenzten Maske mit einer Vielzahl von Koeffizienten
bereitgestellt, wobei die Koeffizienten in einer vorbestimmten Anzahl
von Zeilen und einer vorbestimmten Anzahl von Spalten angeordnet
sind, wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie
aufweist:
eine Zwischenspeichereinrichtung, die zum Speichern
eines Anteils zumindest eines Objektes angepasst ist, dass aus einer
Vielzahl von einzeln manipulierbaren, das Bild definierenden grafischen
Objekten ausgewählt ist;
eine
zweite Einrichtung, die zum Bereitstellen von zumindest einer vorbestimmten
Anzahl von Abtastzeilen des zumindest einen Objektes in dem Bild
für die
Zwischenspeichereinrichtung eingerichtet ist, sowie zum Speichern
der bereitgestellten Abtastzeilen in einer Zwischenspeichereinrichtung,
wobei die vorbestimmte Anzahl von Abtastzeilen gleich der Anzahl
von Zeilen oder der Anzahl von Spalten der begrenzten Maske ist;
und
eine dritte Einrichtung zum Anwenden der begrenzten Maske
auf die Vielzahl von Abtastzeilen, um eine Abtastzeile eines Ausgabebildes
zu erzeugen.
-
Der Aufbau eines Ausgabebildes auf
Abtastzeilen-Basis oder optional auf Band-für-Band-Basis, wobei jedes Band
eine Vielzahl von Abtastzeilen aufweist, ist dort vorteilhaft, wo
eine Reduzierung der Speicherkapazität eines Speichers nötig oder
wünschenswert
ist. Gleichermaßen
ist es häufig
wünschenswert,
nur einen Anteil eines Eingabebildes zu speichern, zum Beispiel
nur eine minimale Anzahl von Abtastzeilen des Eingabebildes, die
zum Durchführen
einer Faltungsoperation benötigt
wird, wie es nachfolgend beschrieben werden.
-
Kurze Beschreibung
der Zeichnungen
-
Einige Aspekte des Standes der Technik
und eine Zahl von Ausführungsbeispielen
der Erfindung werden nun unter Bezugnahme auf die zugehörigen Zeichnungen
beschrieben, wobei die Zeichnungen zeigen:
-
1 ein
digitales Bild mit einer Vielzahl von Bildpunkten, die mittels Integerkoordinaten
(p,q) und räumlichen
Koordinaten (x,y) adressiert sind;
-
2 eine
schematische Darstellung einer Faltungsmaske; und
-
3 eine
Faltung eines Bildes gemäß dem Stand
der Technik unter Verwendung eines Rahmenzwischenspeichers.
-
4 eine
schematische Darstellung von Abtastzeilenfaltungen gemäß einem
Ausführungsbeispiel der
Erfindung, wobei ein Band eines Eingabebildes zu einer Ausgabe einer
einzelnen Abtastzeile gefaltet wird;
-
5 eine
Ausdrucksbaumdarstellung eines einfachen objektbasierten Grafikbildes;
-
6 Beispiele
von auf zwei Anteilen eines Bildes arbeitenden Zusammensetzungsoperationen;
-
7 ein
anderes Beispiel einer Ausdrucksbaumdarstellung für ein Bild;
-
8 eine
Befehlsfolgendarstellung der Ausdrucksbaumdarstellung gemäß 7;
-
9A den
Inhalt eines temporären
Abtastzeilen-Zwischenspeichers
in einer Vielzahl von Stufen der partiellen Auswertung der Befehlsfolge
gemäß 8;
-
9B eine
Abtastzeile eines Ausgabebildes entsprechend den verschiedenen Stufen
gemäß 9A;
-
10 einen
zeitintegrierten Inhalt eines temporären Abtastzeilen-Zwischenspeichers
gemäß 9A;
-
11 ein
bereitgestelltes Bild gemäß dem Ausdrucksbaum
gemäß 7 oder der Befehlsfolge
gemäß 8;
-
12 eine
Ausdrucksbaumdarstellung eines Bildes mit einer Unschärfe-Faltungsoperation;
-
13 eine
entsprechende Befehlsfolgendarstellung der Ausdrucksbaumdarstellung
gemäß 12;
-
14 ein
bereitgestelltes Ausgabebild gemäß der Ausdrucksbaumdarstellung
gemäß 12 oder der Befehlsfolgendarstellung
gemäß 13;
-
15 einen
zeitintegrierten Inhalt der partiellen Auswertung der Befehlsfolge
gemäß 13 oder der Ausdrucksbaumdarstellung
gemäß 12, wobei eine Unschärfe-(Faltungs-)
Operation durchgeführt
wurde;
-
16 eine
Ausdrucksbaumdarstellung des Bildes gemäß 14 unter Verwendung einer Abtastzeilen-Bereitstellung gemäß einem
Ausführungsbeispiel
der Erfindung;
-
17 eine
entsprechende Befehlsfolgendarstellung der Ausdrucksbaumdarstellung
gemäß 16;
-
18A den
Inhalt eines in der Befehlsfolge gemäß 17 beschriebenen Eingabe-Bandzwischenspeichers
gemäß dem Ausführungsbeispiel
der Erfindung;
-
18B einen
temporären
Abtastzeilen-Zwischenspeicher und seinen Inhalt gemäß einer
Unschärfe-(Faltungs-)
Operation gemäß dem Ausführungsbeispiel
der Erfindung;
-
18C bereitgestellte
Abtastzeilen eines Ausgabebildes entsprechend dem temporären Abtastzeilen-Zwischenspeicher
gemäß 18B; und
-
19 eine
schematische Darstellung eines Computersystems, mit dem die Ausführungsbeispiele durchgeführt werden
können.
-
Ausführliche
Beschreibung
-
4 zeigt
ein Beispiel eines aktuellen Bandes 40 eines Eingabebildes 41,
das nach einer Verarbeitung gemäß einem
Ausführungsbeispiel
der Erfindung in einem Aufbau oder einer Bildung einer einzelnen
aktuellen Abtastzeile 42 eines Ausgabebildes 43 resultiert.
Dementsprechend stellen das aktuelle Band 40 des Eingabebildes 41 und
die aktuelle Abtastzeile 42 des Ausgabebildes 43 jeweils
bevorzugte Anteile des Eingabebildes 41 und des Ausgabebildes 43 dar,
die eine Speicherung im Speicher benötigen. Ob das Eingabebild 41 mittels
Software erzeugt ist (d. h. zum Beispiel aus Grafikobjekten bereitgestellt)
oder von einer externen Quelle in den Speicher eingelesen ist (z.
B. bildpunktbasierte Daten von einer Festplatte, einem Scanner,
einer CD-ROM, etc.), benötigt
nur ein Anteil des Eingabebildes 41 eine Speicherung im
Speicher, um eine Faltung durchzuführen. Für eine Faltungsmaske (N × M) mit „N" Zeilen und „M" Spaltenelementen
umfasst der bevorzugte im Speicher gespeicherte Anteil des Eingabebildes
N Abtastzeilen. Jedoch genügt
ein Anteil jeder der N Abtastzeilen, um eine Faltung gemäß dem Ausführungsbeispiel
der Erfindung durchzuführen.
-
Während „N" und „M" abhängig von
der Größe der Faltungsmaske 21 jeden
positiven Integerwert annehmen können,
ist es wünschenswert, „N" und „M" als ungeradzahlige
positive Integers derart auszuwählen, dass
sich das (zum Beispiel in 2 zu
sehende) Zentralelement „k00" 22 am
geometrischen Zentrum der Faltungsmaske befindet.
-
Als ein veranschaulichendes Beispiel
einer Faltungsmaske mit „2n
+ 1" Zeilen und „2m + 1" Spalten, wobei „N" und „M" beliebige positive
Integers darstellen, ist eine Speicherung einer Vielzahl von Abtastzeilen 40 (z.
B. ein Band) des Eingabebildes 41 im Speicher zur Verarbeitung
erforderlich, um eine einzelne Abtastzeile 42 des Ausgabebildes 43 zu
bilden. Für
das vorliegende Beispiel ist eine Speicherung der Abtastzeilen „q – n" bis „q + n" im Speicher erforderlich,
um eine Abtastzeile „q" 42 des Ausgabebildes 43 auszugeben.
Nach einer Verarbeitung des Bandes 40 unter Verwendung
der Faltungsmaske, um die Abtastzeile „q" 42 des Ausgabebildes auszugeben,
wird die Abtastzeile „q – n" des Bandes 40 aus
dem Speicher verworfen und Abtastzeile „q + n + 1" wird in den Speicher eingelesen. Das
Band 40 ist nun um eine Abtastzeile vorgerückt, um
ein neues, die Abtastzeilen „q – n + 1" bis „q + n
+ 1" aufweisendes
Band 44 zu bilden. Das neue Band 44 wird unter
Verwendung der Faltungsmaske verarbeitet, um eine Abtastzeile 45 „q + 1" des Ausgabebildes 43 zu erzeugen.
Wenn eine Ausgabe-Abtastzeile erzeugt ist (z. B. Ausgabe-Abtastzeile „q" 42), wird
die Abtastzeile ausgegeben, zum Beispiel an eine Anzeigeeinrichtung
oder ein Speichermedium gesendet, und der vorstehend beschriebene
Vorgang wird für
alle Ausgabe-Abtastzeilen fortgesetzt, bis ein gewünschtes
Ausgabebild erhalten ist.
-
In einer objektbasierten Grafikumgebung
wird ein Bild mittels einer Reihe von mittels Operatoren verbundener
grafischer Grundelemente beschrieben. Derartige Grundelemente schließen typischerweise
ein: geometrisch definierte Formen, ob einfache wie etwa Kästen und
Kreise oder komplexe wie etwa parametrische Splinekurven; Text;
oder digitale bildpunktbasierte Bilder.
-
In einem einfachen Beispiel von objektbasierten
Grafiken wie gemäß 5 gezeigt, werden Grundelemente 51, 55 und 56 in
einer vorbestimmten Reihenfolge mit einem Hintergrund 53 unter
Verwendung von zum Beispiel „over"-Operatoren 52, 54 und 57 zusammengesetzt,
wodurch eine hierarchische „Ausdrucksbaum"-Darstellung 50 für einen
derartigen Vorgang angegeben ist. Andere Zusammensetzungsoperatoren
als der „over"-Operator sind wahlweise
für den
Aufbau von komplexeren Ausdrucksbaumdarstellungen als der gemäß 5 gezeigten verfügbar. Zu
diesen Operatoren gehören
in Tabelle 1 nachstehend dargestellte Zusammensetzungsoperatoren,
wobei Dc das vormultiplizierte Ziel oder die resultierende Farbe
ist, Do das Ziel oder der resultierende α-Kanalwert, Ac die vormultiplizierte
Bildpunktfarbe eines ersten Anteiles einer ersten Quelle A, Ao der
Wert entsprechend dem Bildpunkt, dessen Farbe Ac ist, Bc der vormultiplizierte
Bildpunktfarbwert eines Anteils eines Bildes einer zweiten Quelle
B, und Bo der α-Kanalwert
des Bildpunktes entsprechend Bc der Quelle B. Im Speziellen zeigt
Tabelle 1 verschiedene Zusammensetzungsverfahren zum Kombinieren zweier
unterschiedlicher Bilder unter Verwendung unterschiedlicher Operatoren.
Zusätzliche
Operatoren sind auch möglich.
Die unterschiedlichen Operatoren können hauptsächlich zur Umsetzung spezieller
Effekte verwendet werden.
-
6 zeigt
unterschiedliche Beispiele des endgültigen Bildes, das erzeugt
wird, wenn verschiedene Operationen, wie in Tabelle 1 dargestellt,
bei der Zusammensetzung von zwei komplett undurchsichtigen Kreisen
A und B eingesetzt werden. Es soll erwähnt werden, dass die Operatoren „rover", „rin", „rout" und „ratop" jeweils äquivalent
zum Umtauschen der Operanden gegenüber dem „r" (umgekehrten) Operator und anwenden
des entsprechenden Operators „over", „in", „out" und „atop" sind.
-
Ein komplexerer Ausdrucksbaum als
der gemäß 5 kann eine Vielfalt von
Knotentypen beinhalten, einschließlich binäre Zusammensetzungsoperatoren,
unäre Operatoren
und Grundelemente. Unäre
Operatoren umfassen typischerweise Fachtransformationen, Bildfaltungen,
affine Transformationen und Bildverwerfungen.
-
Tabelle
1: Zusammensetzungsoperatoren
-
Mit Bezug auf 7 bis 11 ist
eine Ausdrucksbaumdarstellung 70 (7) mit Komponenten 71 bis 77 eines
gemäß 11 gezeigten Bildes 90 dargestellt.
Eine alternative Darstellung von 7 ist
eine Folge von Zeichnungsbefehlen 80 bis 84 wie
in 8 dargestellt. Das
vorliegende Beispiel der alternativen Darstellung gemäß 8 bezieht sich bei Schritten 80 und 81 auf
einen „Puffer
1" genannten Zwischen-Abtastzeilen-Zwischenspeicher,
und der Inhalt von „Puffer
1" bei verschiedenen
Stufen der Bereitstellung des Bildes 90 ist gemäß 9A gezeigt. Schritte 82, 83 und 84 finden
jeweils innerhalb des „Hauptpuffers" statt, wobei dieser
der zum Erzeugen einer Ausgabe-Abtastzeile benötigte Puffer ist.
-
Mit Bezug auf 9A und 9B ist
ein Beispiel einer Abtastzeilen-Bereitstellung des Bildes 90 unter
Verwendung eines Zwischen-Abtastzeilen-Zwischenspeichers 110 gezeigt.
Der Zwischen-(Abtastzeilen-) Zwischenspeicher 110 weist
typischerweise eine Größe auf,
die zum Speichern des Äquivalents
einer einzelnen Abtastzeile eines bereitgestellten Bildes in der
Lage ist, aber optional als ein Band-Zwischenspeicher einer Vielzahl
von aufeinander folgenden Abtastzeilen implementiert werden kann.
Typischerweise weist ein Bild mindestens viele Hundert Abtastzeilen
auf und ein einzelnes Band wird im Allgemeinen aus einer Vielzahl
von Abtastzeilen gebildet, die im Wesentlichen weniger sind als
die das gesamte Bild besetzenden. Entsprechend sind die Anforderungen
eines Zwischen-Abtastzeilen-Zwischenspeichers
im Wesentlichen geringer als die eines Rahmenzwischenspeichers.
Wo es angemessen oder gewünscht
ist kann die Kapazität
und/oder die Lage des Zwischen-Abtastzeilen-Zwischenspeichers
dynamisch rekonfigurierbar sein, um Bildmanipulationen zu optimieren.
Zum Abtastzeilen-Bereitstellen des Bildes 90 durch die
Verwendung von zum Beispiel der Befehlsfolge gemäß 8, wird der Zwischen-Abtastzeilen-Zwischenspeicher 110 bei
der Ausführung
der Befehle verwendet, um eine einzelne Abtastzeile des Ausgabebildes
zusammenzusetzen.
-
Die Befehlsfolge gemäß 8 wird wiederholt ausgeführt und
bei jeder vollständigen
Ausführung
der Folge wird eine Abtastzeile des Ausgabebildes 90 erzeugt.
Der Inhalt des Zwischen-Zwischenspeichers 110 ist gemäß 9A bei drei Stufen 111, 112 und 113 während der
wiederholten Ausführungen
der Befehle gemäß 8 gezeigt.
-
Ein zeitintegrierter Inhalt des Zwischen-Abtastzeilen-Zwischenspeichers 110 („Puffer
1") ist gemäß 10 gezeigt und stellt ein
Bild 104 dar, das erhalten worden wäre, wenn die ersten beiden
Zeichnungsbefehle 80, 81 auf einem Rahmenzwischenspeicher
auszuführen
gewesen wären.
Der Inhalt von „Puffer
1" 110 wird
im Allgemeinen nicht auf einer Anzeigeeinrichtung angezeigt und
wird vorzugsweise mit jeder Wiederholungsausführung der Befehlsfolge gemäß 8 überschrieben. Wie gesehen entspricht
Stufe 111 einem leeren Anteil 101 des Bildes 104,
Stufe 112 einem Anteil 102 an der Spitze des Textzeichens „A" und Stufe 113 entspricht
einem Anteil 103 innerhalb der Beine des Textzeichens „A".
-
9B zeigt
drei bereitgestellte Abtastzeilen 114, 115 und 116 des
Ausgabebildes 90, die jeweils jeder den drei Stufen 111, 112 und 113 gemäß 9A entsprechen. Bei diesen
Darstellungen ist das vorherig bereitgestellte Textzeichen „A" dazu bereitgestellt,
einen schwarzen Kreis wie in 11 gesehen
zu überlagern, wobei
die Anteile 91, 92 und 93 des Ausgabebildes 90 jeweils
den Stufen 114, 115 und 116 entsprechen.
-
12 bis 18 bilden ein Beispiel einer
Abtastzeilen-Bereitstellung
eines mittels eines Ausdrucksbaumes 120 mit Komponenten 121 bis 129 (12) oder mittels einer Befehlsfolge 130 mit
Komponenten 131 bis 136 (13) dargestellten Bildes, mit zumindest
einem Faltungsoperator 121. Bei dem vorliegenden Beispiel ist
der Faltungsoperator ein „blur"- bzw. „Unschärfe"-Operator 121, der eine Unschärfe (oder
Diffusion) eines Bildes oder eines Anteils eines Bildes erzeugt,
auf das/den die Unschärfe
angewandt wird.
-
Der Ausdrucksbaum 120 gemäß 12 ist im Wesentlichen ähnlich zu
dem Ausdrucksbaum 70 gemäß 7, außer dass nun eine „blur"- bzw. „Unschärfe"-Faltungsoperation 121 als
ein Knoten des Baumes 120 eingefügt wurde. Ein mittels der Darstellung
des Ausdrucksbaumes 120 gemäß 12 dargestelltes Bild 140 ist
gemäß 14 gezeigt bei dem vorliegenden
Beispiel ist ein Operand des „blur"-bzw. „Unschärfe"-Operators ein Unterbaum 122 mit
einem „in"-Operator 123 mit
einem ersten 124 und einem zweiten 125 Grundelement
als Operanden.
-
Der Unterbaum 122 wird mit
einer beliebigen Funktion gefaltet, die einen mittels des Unterbaumes 122 dargestellten
Anteil des Bildes 141 in einer gemäß 14 zu sehenden Art und Weise verwischt
bzw. getrübt, bei
der die Kanten des Textzeichens „A" verwischt oder in den schwarzen Kreis, über dem
das Zeichen liegt, vermischt werden. In einer objektbasierten Grafikumgebung
kann ein Faltungsoperator als Teil eines Ausdrucksbaumes oder als
ein Befehl 131 einer Folge von Befehlen 130 (siehe 13) eingefügt und entsprechend
ausgeführt
werden.
-
Um einen Faltungsoperator in einer
objektbasierten Umgebung anzuwenden, werden zusätzlich zu dem Hauptzwischenspeicher
bzw. Hauptpuffer zwei Zwischen-Zwischenspeicher
verwendet. Ein Bandzwischenspeicher („Puffer 2") mit einem darin gespeicherten Anteil
eines Bildes, auf das eine Faltung anzuwenden ist, und ein erster
Zwischen-Abtastzeilen-Zwischenspeicher („Puffer 3"), um eine aus
der Anwendung einer Faltung auf den Inhalt von „Puffer 2" resultierende Ausgabe zu speichern. 15 zeigt einen zeitintegrierten
Inhalt 150 des ersten Zwischen-Zwischenspeichers („Puffer
3") nach der „blur"- bzw. „Unschärfe-Operation" 121 oder
entsprechend nach der Ausführung
eines „blur"- bzw. Unschärfe-Faltungsbefehles 131 aus
der Befehlsfolge.
-
Mit Bezug auf 16 ist eine Ausdrucksbaumdarstellung 160 mit
Komponenten 162 bis 169 dargestellt, die an eine
Abtastzeilen-Bereitstellung angepasst ist. Eine Bereitstellungsnummer 161 ist
in Verbindung mit jedem Operator bei jedem internen Knoten 162 und
für jedes
Grundelement bei jedem Blattknoten 163 gezeigt, die darstellt,
wie viele Abtastzeilen dieser Knoten vor einer aktuellen Abtastzeile
des Ausgabezwischenspeichers bereitgestellt haben muss. Zum Beispiel
werden, nachdem zumindest n Abtastzeilen vor einer aktuellen Abtastzeile
bereitgestellt wurden, weitere n Abtastzeilen vor der aktuellen
Abtastzeile eines mit „grauer Kasten" beschrifteten Grundelementes
und n Abtastzeilen vor der aktuellen Abtastzeile eines mit „Text A" beschrifteten Grundelementes
in einem Zwischen-Zwischenspeicher unter Verwendung eines „in"-Operators 164 bereitgestellt
bevor eine Operation einer Faltungsunschärfe 162 auf den vorherigen
Abtastzeilen, der aktuellen Abtastzeile und n Abtastzeilen vor der
aktuellen durchgeführt
werden kann. Typischerweise wird jede Abtastzeile des Unterbaumes
auf einer Abtastzeile-für-Abtastzeile-Basis
bereit gestellt, um so n Abtastzeilen vor einer aktuellen Zeile
bereitzustellen, wobei jede Abtastzeile von „grauer Kasten" und von „Text A" mittels dem „in"-Operator 164 bearbeitet
wird bis n Abtastzeilen bereitgestellt wurden. Insgesamt ist das
Bereitstellen von „2n
+ 1" Abtastzeilen
des Unterbaumes 165 in den Zwischen-Zwischenspeicher erforderlich
bevor der Faltungsoperator 162 angewandt werden kann, wobei
die gesamten „2n
+ 1" Abtastzeilen
eine minimale Anzahl von Abtastzeilen sind, die eine Bereitstellung
vor einer Anwendung einer Faltungsmaske mit „2n + 1" Zeilen benötigen. Außerdem müssen in einem Abtastzeilen-Bereitstellungssystem
n diese Abtastzeilen vor der aktuellen Abtastzeile des Ausgabezwischenspeichers
bereitgestellt werden.
-
17 ist
eine der Ausdrucksbaumdarstellungen gemäß 16 entsprechende Darstellung einer Befehlsfolge 170.
Jeder Befehl 172 bis 177 in der Folge 170 wird
von einer Zahl 171 gefolgt, die das Befehlsfolgendarstellungs-Äquivalent der Bereitstellungsnummer 161 gemäß 16 ist.
-
Die die Anzahl von Abtastzeilen vor
einer aktuellen Abtastzeile bestimmende Bereitstellungsnummer unterliegt
kumulativen Effekten mehrfacher Faltungsanwendungen. Zum Beispiel,
wenn ein Operant einer ersten Faltung mit einer Maske mit 2n + 1
Zeilen ein Unterbaum ist, der einen zweiten Faltungsoperator mit
einer Maske mit 2m + 1 Zeilen enthält, muss der Operand der zweiten
Faltung n + m Abtastzeilen vor einer aktuellen Abtastzeile bereitstellen.
-
Mit Bezug auf die 18A bis 18C ist
nun ein erster Zwischen-Zwischenspeicher 180 (z. B. Puffer
2) gezeigt, der zum Speichern von 2n + 1 Abtastzeilen in der Lage
ist, und ein zweiter Zwischen-Zwischenspeicher 190 (z.
B. Puffer 3), der zum Speichern einer einzigen Abtastzeile in der
Lage ist, und ein Ausgabe-(Haupt-) Zwischenspeicher bzw.-Puffer 200,
der ebenfalls zum Speichern einer einzigen Abtastzeile in der Lage
ist. 18A bis 18C zeigen verschiedene Stufen
einer Bereitstellung gemäß der Ausdrucksbaumdarstellung 160 gemäß 16 oder der Darstellung
mittels Befehlsfolge 170 gemäß 17.
-
Ein Anteil 181 eines Bildes
wird von dem Unterbaum 165 der Ausdrucksbaumdarstellung 160 bereitgestellt
und eine Faltungsunschärfe 162 wird
auf den Anteil 181 des Bildes angewandt, um eine aktuelle
Abtastzeile 191 der Faltung zu erzeugen, und wird in dem
zweiten Zwischenspeicher 190 plaziert. Der Inhalt des zweiten
Zwischenspeichers 190 wird zusammen mit weiteren Knoten
des Ausdrucksbaumes 160 verarbeitet, um eine aktuelle 201 Abtastzeile
des Bildes 140 auszugeben.
-
Jeder Befehl in einer Folge oder
jeder Operator an Knoten eines Ausdrucksbaumes beeinflusst nicht zwingend
jede Abtastzeile des endgültigen
Bildes. In diesem Fall ist eine „active list" bzw. „Aktivliste" von Befehlen wünschenswert,
die vorzugsweise nur eine aktuelle Abtastzeile beeinflussen. Wenn
jede Abtastzeile erzeugt wird, werden die Abtastzeile beeinflussende
Befehle in die Aktivliste eingefügt,
während
jene, die das nicht tun entfernt werden. Auf diese Art und Weise
wird die zum Erzeugen eines Ausgabebildes benötigte Zeit oft erheblich reduziert.
-
Vorzugsweise wird das Verfahren auf
horizontalen Abtastlinien eines Bildes umgesetzt und das Bild entsprechend
bereitgestellt. Jedoch kann der Vorgang auf vertikalen Abtastzeilen
eines Bildes umgesetzt und entsprechend bereitgestellt werden, ohne
den Schutzbereich der Erfindung zu verlassen.
-
Das Ausführungsbeispiel der Erfindung
kann vorzugsweise unter Verwendung eines herkömmlichen allgemein nützlichen
Computers wie dem gemäß 19 gezeigten praktiziert
werden, wobei der mit Bezug auf 4 bis 18 beschriebene Vorgang
als auf dem Computer ausgeführte
Software umgesetzt wird. Der Computer 500 weist das Computermodul 501,
Eingabeeinrichtungen wie etwa eine Tastatur 502 und eine Maus 503,
sowie eine Anzeigeeinrichtung 504 auf.
-
Das Computermodul 501 weist
zumindest eine Prozessoreinheit 505, eine Speichereinheit 506,
die typischerweise einen Halbleiter-Direktzugriffsspeicher (RAM)
und einen Nur-Lese-Speicher (ROM) enthält, eine Eingabe/Ausgabe-(I/O)
Schnittstelle mit einer Video-Schnittstelle 507 und
einer Tastatur-Schnittstelle 508 auf. Eine Speichereinrichtung 509 ist
bereitgestellt und kann eine oder mehrere der folgenden Einrichtungen
aufweisen: eine Diskette, ein Festplattenlaufwerk, ein CD-ROM-Laufwerk
oder gleichermaßen
eine dem Fachmann bekannte nicht-flüchtige Speichereinrichtung.
Die Komponenten 505 bis 509 des Computermoduls 501 kommunizieren
typischerweise über
einen verbundenen Bus 510 und auf eine Art und Weise, die
in einer üblichen
Betriebsart des Computers 500 resultiert, die dem jeweiligen
Fachmann bekannt ist. Zu Beispielen von Computern, auf denen das
Ausführungsbeispiel
praktiziert werden kann, gehören
IBM-PC/ATs und Kompatible, Sun Sparcstations oder ähnliche
Computersysteme. 19 zeigt
auch Zeilen-/Band-Zwischenspeicher 511, die innerhalb des
Speichers 506 bereitgestellt sind, um die vorstehend offenbarte
Abtastzeilenbereitstellung und Faltungen zu ermöglichen. Die Zwischenspeicher 511 weisen
eine begrenzte Kapazität
auf und belegen daher keinen freien Speicher, der andernfalls von
einem Rahmenzwischenspeicher benutzt werden würde, um ähnliche Funktionen durchzuführen. Die
Zwischenspeicher 511 sind eingerichtet, um Bildpunktdaten von
Abtastzeilen beizubehalten und haben bei dem bevorzugten Ausführungsbeispiel
eine Kapazität,
um Bänder
beizubehalten, die jeweils eine Vielzahl von Abtastzeilen aufweisen.
Es soll erwähnt
werden, dass sich die Zwischenspeicher 511 an festen Positionen
innerhalb des Speichers 506 befinden können oder wahlweise dynamisch
in Lage und/oder Größe rekonfigurierbar
und mittels einem virtuellen Speicheradressierungsverfahren oder
mittels einem Speicheraustausch zugreifbar sind. Zum Beispiel findet
mit einem bildpunktbasierten Bild oder in dem grafischen Beispiel
gemäß 16 nur ein einziger Faltungsprozess
(„blur" bzw. Unschärfe 162)
statt, der in einem einzigen Zwischenspeicher durchgeführt werden
kann. Jedoch können
für grafische Bereitstellungen,
die mehr als eine Faltung beinhalten (zum Beispiel, wenn eine Unschärfeoperation
in den Ausdrucksbaum 160 zwischen den over-Operatoren 166 und 169 eingefügt wird),
eine Anzahl von Zwischen-Zwischenspeichern verwendet werden, um
eine im Wesentlichen gleichzeitige Bereitstellung der grafischen
Objekte, ihrer einzelnen Faltungen und das darauf folgende Kombinieren
unter Verwendung des over-Operators 169 zu
ergänzen.
-
Ausführungsbeispiele der Erfindung
können
in einem einzelnen Computer 500 ausgeführt werden, oder wahlweise
in einem System, das eine Vielzahl von Computern beinhaltet, wie
etwa ein Computernetzwerk (z. B. lokales Netzwerk bzw. „local
area network", Internet).
Im Speziellen können
die Ausführungsbeispiele erlangt
werden, indem ein oder mehrere Programme an den/die Computer direkt über ein
Speichermedium wie etwa eine Diskette oder eine optische Platte,
oder indirekt über
das Computernetzwerk bereitgestellt werden. In jedem Fall kann das
Programm zum Gebrauch in der Speichereinrichtung 509 zum
anschließenden
Lesen durch den Prozessor 505 und Umsetzung in Übereinstimmung
mit dem Speicher 506 und den Zwischenspeichern 511 gespeichert
werden. Weiter kann die begrenzte Faltungsmaske mit den Programmen
bereitgestellt werden, getrennt von den Programmen und/oder in der
Speichereinrichtung 509 bereit für eine anschließende Verwendung
gespeichert werden, woraufhin auf die Maske zugegriffen werden kann
und temporär
in dem Speicher 506 zum Falten mit den Bilddaten beibehalten werden
kann. Wahlweise kann die begrenzte Faltungsmaske dynamisch mit einer
Ausführung
des Programms/der Anwendung erzeugt werden. Gemäß einer Betriebsart des Computersystems 500 werden
derartige Programme typischerweise von der Prozessoreinheit 505 ausgeführt, die
betreibbar ist, bildpunktbasierte Bilddaten zu und von den Zwischenspeichern 511 zu übertragen,
genauso wie bildpunktbasierte Bilddaten von grafischen Objekten
bereitzustellen. Im letzteren Fall kann die Bereitstellung direkt
in die Zwischenspeicher 511 erfolgen.
-
Das Vorhergehende beschreibt nur
ein Ausführungsbeispiel
der Erfindung, jedoch können
Modifikationen und/oder Veränderungen
von einem Fachmann darauf durchgeführt werden ohne den Schutzbereich
der Erfindung zu verlassen. Zum Beispiel kann eine alternative hierarchische
Datendarstellung wie etwa ein direkter azyklischer Graph (DAG) verwendet
werden.