-
Die vorliegende Erfindung bezieht
sich auf ein neues und verbessertes Verfahren und Gerät zum Lesen
und zum Bildaufbereiten von Texturdaten zur Verwendung bei einem
Texturabbildungsverfahren, welches den Ausdruck in einem dreidimensionalen
Computergrafiksystem wesentlich verbessert. Insbesondere kann die
vorliegende Erfindung bei verschiedenen Gebieten angewendet, beispielsweise
bei CAD-Systemen (computer-unterstützte Konstruktion) und Spielmaschinen
angewandt werden.
-
Textur-Abbilden wird dazu verwendet,
um Texturdaten, beispielsweise Muster oder natürliche Bilder auf einem Objekt
bei Computergrafik anzuordnen. Dieses Objekt wird üblicherweise
unter Verwendung mehrerer Polygone gebildet, beispielsweise eines
dreiecksförmigen
Polygons oder eines quadratischen Polygons. Daher kann unter Verwendung
der Texturabbildung ein realistisches Bild erzeugt werden. Beispielsweise
sei der Zustand betrachtet, wo ein Objekt in Quadratform-Texturdaten
sich dreht. Da wie oben erwähnt üblicherweise
ein Objekt aus mehreren Polygonen, beispielsweise Dreiecken gebildet
wird, werden die Texturdaten als Polygoneinheit abgebildet. In bezug
auf diese Texturdatenabbildung werden die Texturdaten vorher in
einem Speicher gespeichert, und die Texturabbildung wird durch Lesen
der Texturdaten von dem Speicher gemäß der berechneten Speicheradressierung
durchgeführt.
-
Ein Beispiel einer vor kurzem vorgeschlagenen
Texturabbildungsoperation ist folgendes:
- 1)
Texturkoordinaten (S1, T1, Q1), S2, T2, Q2) und (S3, T3, Q3) werden
zu Scheitelpunkten eines Dreiecks bestimmt.
- 2) durch lineare Interpolation der Texturkoordinaten der Scheitel
des Dreiecks werden Texturkoordinaten (S, T, Q) eines Innenpunkts
des Dreiecks erhalten.
- 3) durch Durchführen
von Teilungsoperationen von U = S/Q und V = T/Q wird einer Speicheradresse
(U, V) erhalten.
- 4) Texturdaten werden dann vom Speicher mit der Speicheradresse,
die im Schritt 3 erhalten wurde, gelesen und auf dem Dreieck angeordnet.
-
Bei einem herkömmlichen Computergrafiksystem
werden die Texturdaten in einer Weise abgebildet, dass ein Texturdateniesegerät Texturdaten
von einem herkömmlichen
Speicher liest. Da jedoch die Lesegeschwindigkeit von Texturdaten
vom Speicher nicht zufriedenstellend hoch ist, wird die Leistung
des Texturabbildungsgeräts
eingeschränkt.
Um dieses Problem zu lösen,
kann eine Cache-Einheit, welche vorübergehend Texturdaten speichert,
zwischen dem Texturdaten-Lesegerät
und dem Speicher angeordnet werden. In diesem Fall kann das Datenlesegerät Texturdaten
von der Cache-Einheit mit hoher Geschwindigkeit lesen.
-
Bei diesem Aufbau können, wenn
die Größe von Texturdaten
kleiner ist als die Speicherkapazität der Cache-Einheit die Texturdaten
mit hoher Geschwindigkeit gelesen werden. Wenn jedoch die Größe der Texturdaten
größer ist
als die Speicherkapazität
der Cache-Einheit,
sollten, um die Texturdaten in der Cache-Einheit zu ändern, die
Texturdaten vom Speicher gelesen werden und dann in die Cache-Einheit
geschrieben werden. Somit arbeitet die Cache-Einheit nicht effektiv
als Einrichtung zum Liefern von Erfassungsdaten mit hoher Geschwindigkeit.
-
Da außerdem der Schaltungsaufwand
der Cache-Einheit groß ist,
wenn diese verwendet wird, kann eine kleine Texturabbildungseinheit
nicht erreicht werden.
-
Entsprechende Merkmale der vorliegenden
Erfindung sind in den Patentansprüchen 1 und 8 herausgestellt.
-
Ausführungsformen der vorliegenden
Erfindung erfüllen
eine lang existierende Notwendigkeit nach verbesserten Verfahren
und einem Gerät
zum Texturdatenlesen und zur Bildaufbereitung, wobei die oben beschriebenen
Schwierigkeiten in Verbindung mit Systemen, die bisher verfügbar waren,
vermieden werden.
-
Kurz und allgemein ausgedrückt liefern
Ausführungsformen
der Erfindung ein neues und verbessertes Texturlese- und Bildaufbereitungssystem
für eine
nicht aufwendige Hochgeschwindigkeitstextur-Abbildungseinheit, ohne
die Notwendigkeit, einen großen
Schaltungsaufwand wie eine Cache-Einheit zu verwenden.
-
Insbesondere werden bei einem Merkmal
der vorliegenden Erfindung, wenn eine Speicheradresse eines Pixels,
für welche
Texturdaten von einem Speicher gelesen werden, die gleiche ist wie
die Speicheradresse eines Pixels, welches dazu benachbart ist, Texturdaten
nicht vom Speicher gelesen, und, wenn die Speicheradresse des Pixels,
für welche
Texturdaten vom Speicher gelesen werden, von der Speicheradresse
des Pixels, welches dazu benachbart ist, verschieden ist, werden
Texturdaten, die gelesen wurden, wieder verwendet, um so die Häufigkeit
der Speicherzugriffsoperation zu reduzieren.
-
Beispielhaft und nicht notwendigerweise
einschränkend
liefert eine Ausführungsform
der Erfindung ein Texturdaten-Lesegerät zum Lesen von Texturdaten,
die von einem Speicher abgebildet werden, wobei das Texturdaten-Lesegerät eine Speicheradresse
eines Pixels, für
welche Texturdaten vom Speicher gelesen werden, und eine Speicheradresse
eines Pixels, welches dazu benachbart ist, vergleicht, auf den Speicher
mit der Adresse des Pixels zugreift, die neuen Texturdaten nur dann
liest, wenn die Speicheradresse des Pixels von der Speicheradresse
des Pixels, welches dazu benachbart ist, verschieden ist, und die
gespeicherten Texturdaten bevorzugt als das Lesen neuer Texturdaten
vom Speicher wieder verwendet, wenn die Speicheradresse des Pixels
die gleiche ist wie die Speicheradresse des Pixels, welches dazu
benachbart ist, solange Pixel mit der gleichen Adresse sich fortsetzen.
-
Eine andere Ausführungsform der Erfindung liefert
ein Texturdaten-Lesegerät
zum Lesen von Texturdaten, die abzubilden sind, von einem Speicher,
welches eine Speicheradress-Vergleichseinrichtung
aufweist, um eine Speicheradresse eines Pixels, für welches
Texturdaten vom Speicher gelesen werden, mit einer Speicheradresse
eines Pixels, welches dazu benachbart ist, zu vergleichen und um
zu bestimmen, ob Texturdaten vom Speicher zu lesen sind oder nicht,
eine Vergleichsergebnis-Speichereinrichtung, um Information, die
zeigt, ob Texturdaten, die neu aus dem Speicher gelesen werden,
verwendet werden, oder Texturdaten, die aus dem Speicher gelesen
werden, wieder verwendet werden, entsprechend dem Vergleichsergebnis
der Speicheradress-Vergleichseinrichtung, eine Speicherzugriffseinrichtung,
um auf den Speicher entsprechend dem Vergleichsergebnis der Speicheradress-Vergleichseinrichtung
zuzugreifen und um Texturdaten vom Speicher zu lesen, eine Texturdaten-Speichereinrichtung,
um die Texturdaten, die vom Speicher gelesen werden, durch die Speicherzugriffseinrichtung,
zu speichern, und eine Texturdaten-Restrukturiereinrichtung, um
gewünschte Texturdaten
von der Texturdaten-Speichereinrichtung zu lesen, die der Information
entsprechen, welche in der Vergleichsergebnis-Speichereinrichtung
gespeichert sind, wobei, wenn eine Speicheradresse eines Pixels,
für welche
Texturdaten vom Speicher gelesen werden, die gleiche ist wie eine
Speicheradresse des Pixels, welches benachbart dazu ist, Texturdaten
nicht vom Speicher gelesen werden, sondern Texturdaten von Pixel
mit der gleichen Adresse wieder verwendet werden.
-
Eine weitere Ausführungsform der Erfindung stellt
ein Bildaufbereitungsgerät
bereit, welches mehrere Speicher aufweist, und mehrere Texturdaten-Leseeinheiten,
um Textur- daten
von Speichern zu lesen, wobei die Texturdaten-Leseeinheiten mit
den Speichern parallel verbunden sind, Texturdaten von mehreren
Pixel von den Speichern gelesen werden, wobei alle Texturdaten-Leseeinheiten
eine Speicheradresse eines Pixels, für welche Texturdaten vom Speicher
gelesen werden, mit einer Speicheradresse eines Pixels, welches
dazu benachbart ist, vergleicht, auf den Speicher mit der Speicheradresse
des Pixels zugreift, neue Texturdaten lediglich dann liest, wenn
die Speicheradresse des Pixels von der Speicheradresse des Pixels,
welches dazu benachbart ist, verschieden ist, und die gespeicherten
Texturdaten bevorzugt als das Lesen neuer Texturdaten vom Speicher
wieder verwendet, wenn die Speicheradresse des Pixels die gleiche
ist, wie die Speicheradresse des Pixels, welches dazu benachbart
ist, solange wie Pixel mit der gleichen Speicheradresse sich fortsetzen.
-
Bei Ausführungsformen der vorliegenden
Erfindung werden, wenn eine Speicheradresse eines Pixels, für welches
Texturdaten von einem Speicher gelesen werden, die gleiche ist wie
eine Speicheradresse eines Pixels, welches dazu benachbart ist,
Texturdaten nicht vom Speicher gelesen. Wenn die Speicheradresse
des Pixels, für
welche Texturdaten vom Speicher gelesen werden, von der Speicheradresse
des Pixels, welches dazu benachbart ist, verschieden ist, werden
Texturdaten, die gelesen wurden, wieder verwendet. Damit wird die
Häufigkeit
der Speicherzugriffsoperation reduziert.
-
Folglich erfüllen Ausführungsformen der Erfindung
eine lang existierende Notwendigkeit nach neuen und verbesserten
einfachen und wirksamen Verfahren und ein Gerät, um Texturdaten zu lesen
und aufzubereiten.
-
Ausführungsformen der Erfindung
werden anschließend
beispielhaft mit Hilfe der beiliegenden Zeichnungen beschrieben,
in denen:
-
1 ein
Blockdiagramm einer Ausführungsform
der vorliegenden Erfindung ist;
-
2A und 2B schematische Diagramme
sind, um ein Beispiel der Operation der Ausführungsform der vorliegenden
Erfindung zu erläutern;
-
3A und 3B schematische Diagramme
sind, um die Operation eines Vier-Punkt-Interpolationsprozesses gemäß einer
Ausführungsform
der vorliegenden Erfindung zu erläutern;
-
4 ein
Blockdiagramm ist, welches ein Bildaufbereitungsgerät mit einem
Texturdaten-Lesegerät zeigt,
die alle eine Ausführungsform
der vorliegenden Erfindung bilden;
-
5 ein
Blockdiagramm ist, welches ein Bildaufbereitungsgerät mit mehreren
Texturdaten-Lesegeräten
gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung zeigt;
-
6 schematische
Diagramme zeigt, um das allgemeine Konzept der Texturabbildung zu
erläutern; und
-
7A und 7B Blockdiagramm sind, die
den Aufbau eines vor kurzem vorgeschlagenen Texturdaten-Lesegeräts zeigen.
-
Gemäß den beiliegenden Zeichnungen
bezeichnen gleiche Bezugszeichen gleiche oder entsprechende Teile
durchwegs in den Figuren.
-
Der Aufbau und die Wirkungsweise
eines vor kurzem vorgeschlagenen Texturdatenabbildungs-/Lese- und
Bildaufbereitungssystems sind in 6, 7A und 7B gezeigt. Textur-Abbilden wird dazu
verwendet, um Texturdaten, beispielsweise Muster oder natürliche Bilder
auf einem Objekt bei Computergrafik anzuordnen. Dieses Objekt wird üblicherweise
unter Verwendung mehrerer Polygone gebildet, beispielsweise eines
dreiecksförmigen
Polygons oder eines quadratischen Polygons. Daher kann unter Verwendung
der Texturabbildung ein realistisches Bild erzeugt werden. Beispielsweise
sei der Zustand betrachtet, wo ein Objekt in Quadratform-Texturdaten
sich dreht. Da wie oben erwähnt üblicherweise
ein Objekt aus mehreren Polygonen, beispielsweise Dreiecken gebildet
wird, werden die Texturdaten als Polygoneinheit abgebildet. In Bezug
auf diese Texturdatenabbildung werden die Texturdaten vorher in
einem Speicher gespeichert, und die Texturabbildung wird durch Lesen
der Texturdaten von dem Speicher gemäß der berechneten Speicheradressierung
durchgeführt.
-
Ein Beispiel einer Texturabbildungsoperation
ist folgendes:
- 1) Texturkoordinaten (S1, T1,
Q1), S2, T2, Q2) und (S3, T3, Q3) werden zu Scheitelpunkten eines
Dreiecks bestimmt.
- 2) durch lineare Interpolation der Texturkoordinaten der Scheitel
des Dreiecks werden Texturkoordinaten (S, T,Q) eines Innenpunkts
des Dreiecks erhalten.
- 3) durch Durchführen
von Teilungsoperationen von U = S/Q und V = T/Q wird einer Speicheradresse
(U, V) erhalten.
- 4) Texturdaten werden dann vom Speicher mit der Speicheradresse,
die im Schritt 3 erhalten wurde, gelesen und auf dem Dreieck angeordnet.
-
Bei einem herkömmlichen Computergrafiksystem
werden die Texturdaten in einer Weise abgebildet, dass ein Texturdatenlesegerät 51 Texturdaten
von einem herkömmlichen
Speicher 52 liest. Da jedoch die Lesegeschwindigkeit von
Texturdaten vom Speicher 52 nicht zufriedenstellend hoch
ist, wird die Leistung des Texturabbildungsgeräts eingeschränkt.
-
Um dieses Problem zu lösen, kann
eine Cache-Einheit 53, welche vorübergehend Texturdaten speichert,
zwischen dem Texturdaten-Lesegerät 51 und
dem Speicher 52 angeordnet werden. In diesem Fall kann das
Datenlesegerät 51 Texturdaten
von der Cache-Einheit 53 mit hoher Geschwindigkeit lesen.
-
Bei diesem Aufbau können, wenn
die Größe von Texturdaten
kleiner ist als die Speicherkapazität der Cache-Einheit, die Texturdaten
mit hoher Geschwindigkeit gelesen werden. Wenn jedoch die Größe der Texturdaten
größer ist
als die Speicherkapazität
der Cache-Einheit, sollten, um die Texturdaten in der Cache-Einheit
zu ändern,
die Texturdaten vom Speicher gelesen werden und dann in die Cache-Einheit
geschrieben werden. Somit arbeitet die Cache-Einheit nicht effektiv
als Einrichtung zum Liefern von Erfassungsdaten mit hoher Geschwindigkeit.
-
Da außerdem der Schaltungsaufwand
der Cache-Einheit groß ist,
wenn diese verwendet wird, kann eine kleine Texturabbildungseinheit
nicht erreicht werden.
-
Bei Computergrafik wird, wenn ein
Bild gezeichnet wird, dieses in Abtastzeilen unterteilt und in der
Reihenfolge der Abtastzeilen gezeichnet. Somit wird das typische
Dreieckspolygon in aufeinanderfolgende Abtastzeilen zur Anzeige
unterteilt. Anschließend
wird bei einer Ausführungsform
der Erfindung der Fall, wo Texturdaten einer Abtastzeile von einem
Speicher gelesen werden, beschrieben.
-
Wie man am besten in 1 sieht, liest das Gerät Texturdaten
von einem Speicher. Das in 1 gezeigt
Gerät besteht
aus einem Texturdaten-Lesegerät
und einem Speicher 14. Das Texturdaten-Lesegerät 12 besteht
aus einer Speicheradress-Vergleichseinheit 15, einer Vergleichsergebnis-Speichereinheit 16,
einer Speicherzugriffseinheit 17, einer Texturdaten-Speichereinheit 18 und
einer Texturdaten-Restrukturierungseinheit 19. Eine Speicheradresse
(U, V) wird zur Speicheradress-Vergleichseinheit 15 über einen
Eingangsanschluss 11 geliefert.
-
Die Speicheradress-Vergleichseinheit 15 ist
ein Speicheradresskomparator, der die vorhandene Speicheradresse
eines Pixels, die zu betrachten ist, und für welche Texturdaten vom Speicher 14 gelesen
sind, und die vorherige Speicheradresse eines Pixels benachbart
dazu vergleicht und bestimmt, ob Texturdaten vom Speicher zu lesen
sind oder nicht. Das Vergleichsergebnis wird durch die Vergleichergebnis-Speichereinheit 16 bereitgestellt.
Außerdem
wählt die
Speicheradress-Vergleichseinheit 15 lediglich die Speicheradresse
(U, V) der Texturdaten aus, die vom Speicher 14 gelesen
werden sollten, gemäß dem Vergleichsergebnis,
und beliefert dann die Speicherzugriffseinheit 17 mit der
ausgewählten
Adresse (U, V). Das heißt,
wenn die vorhandene Speicheradresse des vorhandenen Pixels, welches
zu lesen ist, sich gegenüber
der vorherigen Speicheradresse des dazu benachbarten Pixels unterscheidet,
wird die vorhandene Speicheradresse des vorhandenen Pixels, welches
zu lesen ist, zur Speicherzugriffseinheit 17 geliefert,
und die Information, welche das Ergebnis darstellt, wird simultan
der Vergleichergebnis-Speichereinheit 16 bereitgestellt.
Wenn dagegen die vorhandene Speicheradresse des vorhandenen Pixels,
welches zu lesen ist, die gleiche ist wie die vorherige Speicheradresse
des dazu benachbarten Pixels, wird die vorhandene Speicheradresse
des vorhandenen Pixels, die zu lesen ist, nicht der Speicherzugriffseinheit 17 bereitgestellt.
Anstelle davon wird lediglich die Information, die das Ergebnis
darstellt, der Vergleichsergebnis-Speichereinheit 16 bereitgestellt.
-
Die Vergleichsergebnis-Speichereinheit 16 ist
ein Vergleichsergebnisspeicher, der die Information speichert, die
das Ergebnis zeigt, welches von der Speicheradress-Vergleichseinheit 15 geliefert
wird. Diese Information zeigt das Ergebnis im Hinblick darauf, ob
die Texturdaten zu verwenden sind, die neu vom Speicher gelesen
werden, oder die Texturdaten, die vorher vom Speicher gelesen wurden.
-
Die Speicherzugriffseinheit 17 ist
eine Speicherzugriffseinrichtung, welche auf den Speicher 14 zugreift
und die Texturdaten C (U, V) vom Speicher 14 gemäß der gelieferten
Speicheradresse von der Speicheradress-Vergleichseinheit 15 liest.
-
Die Texturdaten-Speichereinrichtung 18 ist
ein Texturdatenspeicher, der die Texturdaten C (U, V) speichert,
die vom Speicher 17 durch die Speicherzugriffseinheit 17 gelesen
werden.
-
Die Texturdaten-Umstrukturierungseinheit 19 ist
eine Texturdaten-Restrukturierungseinheit, die gewünschte Texturdaten
C (U, V) von der Texturdaten-Speichereinheit 18 gemäß der Vergleichsergebnisinformation
liest, die in der Vergleichsergebnis-Speichereinheit 16 gespeichert
ist. Das heißt,
wenn die Information von der Vergleichsergebnis-Speichereinheit 16 zeigt,
dass die vorhandene Speicheradresse des vorhandenen Pixels, welches
zu lesen ist, die gleiche ist wie die vorherige Speicheradresse
des dazu benachbarten Pixels, werden die Texturdaten, die der vorherigen
Speicheradresse des dazu benachbarten Pixel entsprechen, rekursiv
in der Texturdaten-Umstrukturierungseinheit 19 verwendet.
Diese Operation wird anschließend
weiter ausführlich
beschrieben.
-
Somit werden im Texturlesegerät 12,
wenn die vorhandene Speicheradresse eines vorhandenen Pixels, für welches
Texturdaten vom Speicher 14 gelesen werden, die gleiche
ist wie die vorherige Speicheradresse eines dazu benachbarten Pixels,
Texturdaten nicht vom Speicher 14 gelesen. Bevorzugt werden
die Texturdaten, die der vorherigen Speicheradresse des benachbarten
Pixels entsprechen, die gelesen wurden, wieder verwendet. Wenn jedoch
die vorhandene Speicheradresse eines vorhandenen Pixels, für welches
Texturdaten von einem Speicher 14 gelesen werden, sich
von der vorherigen Speicheradresse des dazu benachbarten Pixels
unterscheidet, werden Texturdaten, die der vorhandenen Speicheradresse
des vorhandenen Pixels entsprechen, vom Speicher 14 gelesen,
und die neu gelesenen Texturdaten werden verwendet. Folglich wird
bei der vorliegenden Ausführungsform
die Häufigkeit,
mit der auf den Speicher zugegriffen wird, wesentlich reduziert.
-
Anschließend wird mit Hilfe von 2 ein Beispiel der Verarbeitung,
die durch die Struktur, die in 1 gezeigt
ist, erzielt wird, beschrieben. Die Speicheradress-Vergleichseinheit 15,
die in 1 gezeigt ist, vergleicht
eine vorhandene Speicheradresse eines vorhandenen Pixels, für welche
Texturdaten vom Speicher gelesen werden, mit einer Speicheradresse
eines Pixels benachbart dazu und bestimmt, ob Texturdaten vom Speicher
zu lesen sind oder nicht.
-
Wie in 2 gezeigt
ist, vorausgesetzt, dass es fünf
Pixel auf einer Abtastzeile gibt, und dass Speicheradressen (U,
V) (einschließlich
des Dezimalteils) zum Lesen von Texturdaten vom Speicher 14 wie
folgt sind:
(1,4, 1,2), (1,9, 1,7), (2,4, 2,2), (2,9, 207),
(3,4, 3,2)
-
Die Speicheradresswerte können in
ganze Zahlen wie folgt abgerundet werden:
(1, 1), (2, 2), (2,
2), (3, 3 ), (3, 3)
-
Um somit die Texturdaten für fünf Pixel
zu erhalten, sollte die Leseoperation für den Speicher 14 fünfmal durchgeführt werden.
-
Wenn eine Speicheradresse eines jeden
Pixels und eine Speicheradresse eines vorhergehenden Pixels, welches
dazu benachbart ist, verglichen werden, ist die Speicheradresse
des dritten Pixels die gleiche wie die Speicheradresse des zweiten
Pixels. Die Speicheradresse des fünften Pixels ist außerdem die
gleiche wie die Speicheradresse des vierten Pixels. Somit bestimmt
die Speicheradress-Vergleichseinheit 15 die Wiederverwendungs-Texturdaten
des zweiten Pixels für
das dritte Pixel und die Texturdaten des vierten Pixels für das fünfte Pixel
und sendet dadurch lediglich die folgenden drei Speicheradressen
zur Speicherzugriffseinheit 17, wie in 1 gezeigt ist.
(1, 1), (2, 2),
(3, 3)
-
Außerdem sendet die Speicheradress-Vergleicheinheit 15 Information
Info, die zeigt, dass die Texturdaten, die neu vom Speicher 14 gelesen
werden, verwendet werden, oder dass Texturdaten, die vom Speicher 14 gelesen
wurden, für
jedes Pixel verwendet werden, zur Vergleichsergebnis-Speichereinheit 16.
-
Als Ergebnis der Information Info,
die zu liefern ist, als Beispiel der Information Info, die zu liefern
ist, vorausgesetzt, dass ein Pixel, für welches Texturdaten, die
neu vom Speicher gelesen werden, verwendet werden, mit "1" bezeichnet ist, und dass ein Pixel,
für welches
Texturdaten, die vom Speicher gelesen wurden, wieder verwendet wird,
mit "0" bezeichnet wird,
kann die Information Info mit einem Bit dargestellt werden. Die Information
Info besteht aus Daten eines Bits für jede Datenabtastung, beispielsweise
ein Bit, d. h., Info1 als Vergleichsergebnis des ersten Pixels,
Info2 als Vergleichsergebnis des zweiten Pixels, Info3 als Vergleichsergebnis
des dritten Pixels, Ino4 als Vergleichsergebnis des vierten Pixels,
und Infos als Vergleichsergebnis des fünften Pixels. Im Beispiel der
Pixel auf der Abtastzeile, die in 2 gezeigt
ist, ist die Information Info gleich "1, 1, 0, 1, 0".
-
Die Vergleichsergebnis-Speichereinheit 16,
die in 1 gezeigt ist,
ist ein FIFO-Pufferspeicher
(first in – first
out) der die Information Info speichert, die zeigt, dass die Texturdaten
neu vom Speicher gelesen werden, verwendet werden, oder die Texturdaten
des unmittelbar vorhergehenden Pixels wiederverwendet werden, welches
von der Speicheradress-Vergleicheinheit 15 empfangen
werden. Die Vergleichsergebnis-Speichereinheit 16 liest
nacheinander die Information Info, die einer Anfrage entspricht,
die von der Texturdaten-Restrukturierungseinheit 19 empfangen
wird, die in 1 gezeigt
ist.
-
Die Speicherzugriffseinheit 17,
die in 1 gezeigt ist,
greift auf den Speicher 14 entsprechend der bereitgestellt
Speicheradresse der Speicheradress-Vergleichseinheit 15 zu
und liest die Texturdaten vom Speicher 14.
-
In dem Beispiel der fünf Pixel
auf der Abtastzeile, die in 2 gezeigt
ist, werden Texturdaten vom Speicher 14 gemäß den drei
Speicheradressen (1, 1), (2, 2), (3, 3) gelesen, die von der Speicheradress-Vergleichseinheit 15 empfangen
werden.
-
Wenn angenommen wird, dass die Texturdaten,
die gelesen wurden, mit C (U, V) bezeichnet sind, werden drei Texturdaten
C (1, 1), C (2, 2) und C (3, 3) zur Texturdaten-Speichereinheit 18 geliefert,
die in 1 gezeigt ist.
-
Die Texturdaten-Speichereinheit 18,
die in 1 gezeigt ist,
ist ein FIFO-Pufferspeicher, der Texturdaten speichert, die vom
Speicher 14 durch die Speicherzugriffseinheit 17 gelesen
werden. Die Texturdaten, die in der Texturdaten-Speichereinheit 18 gespeichert
sind, werden nacheinander gemäß einer
Anfrage gelesen, die von Texturdaten-Restrukturierungseinheit 19 empfangen
wird.
-
Die Texturdaten-Restrukturierungseinheit 19,
die in 1 gezeigt ist,
liest gewünschte
Texturdaten von der Texturdaten-Speichereinheit 18 entsprechend
der Information, die in der Vergleichsergebnis-Speichereinheit 16 gespeichert
ist.
-
In dem Beispiel der fünf Pixel
auf der Abtastzeile, die in 2 gezeigt
ist, speichern die Vergleichsergebnis-Speichereinheit 16 und
die Texturdaten-Speichereinheit 18 die folgenden Daten.
-
Vergleichergebnis-Speichereinheit:
1, 1, 0, 1, 0
-
Texturdaten-Speichereinheit: C (1,
1), C (2, 2), C (3, 3)
-
Anschließend wird in der Texturdaten-Umstrukturierungseinheit 19 ein
Verfahren zum Umstrukturieren von Texturdaten für fünf Pixel mit der Information,
die in der Vergleichsergebnis-Speichereinheit 16 und in
der Texturdaten-Speichereinheit 18 gespeichert ist, beschrieben.
-
Erstes Pixel: die Information für das erste
Pixel (Ino1) wird von der Vergleichsergebnis-Speichereinheit 16 gelesen.
Da diese Information die "1" zeigt, werden erste
Texturdaten C (1, 1) von der Texturdaten-Speichereinheit 18 gelesen
und die gelesenen Texturdaten C (1, 1) werden verwendet.
-
Zweites Pixel: anschließend wird
die Information für
das zweite Pixel (Ino2) von der Vergleichsergebnis-Speichereinheit 16 gelesen.
Da diese Information ebenfalls die "1" zeigt,
werden neue Texturdaten C (2, 2) von den Texturdaten-Speichereinheiten 18 gelesen,
und die gelesenen Texturdaten C (2, 2) werden verwendet.
-
Drittes Pixel: anschließend wird
die Information für
das dritte Pixel (Ino3) von der Vergleichsergebnis-Speichereinheit 16 gelesen.
Da diese Information ebenfalls die "0" zeigt,
werden neue Texturdaten nicht von der Texturdaten-Speichereinheit 18 gelesen,
sondern, anstelle der neuen Texturdaten werden die Texturdaten C
(2, 2), die gelesen wurden, wieder verwendet.
-
Viertes Pixel: danach wird die Information
für das
vierte Pixel (Ino4) von der Vergleichsergebnis-Speichereinheit 16 gelesen.
Da diese Information ebenfalls die "1" zeigt,
werden neue Texturdaten C (3, 3) von den Texturdaten-Speichereinheiten 18 gelesen,
und die gelesenen Texturdaten C (3, 3) werden verwendet.
-
Fünftes
Pixel: anschließend
wird die Information für
das fünfte
Pixel (Ino5) von der Vergleichsergebnis-Speichereinheit 16 gelesen.
Da diese Information ebenfalls die "0" zeigt,
werden neue Texturdaten nicht von der Texturdaten-Speichereinheit 18 gelesen,
son dern, anstelle der neuen Texturdaten werden die Texturdaten C
(3, 3), die gelesen wurden, wieder verwendet.
-
Auf diese Art und Weise werden die
folgenden Texturdaten für
fünf Pixel
mit der Speicherzugriffsoperation, die lediglich dreimal vorkommt,
umstrukturiert.
C (1, 1), C (2, 2), C (2, 2), C (3, 3), C
(3, 3)
-
Gemäß der vorliegenden Ausführungsform
werden, wenn die vorhandene Speicheradresse eines Pixels, die zu
lesen ist, für
welche Texturdaten vom Speicher gelesen werden, die gleiche ist
wie die vorherige Speicheradresse eines Pixels, welches dazu benachbart
ist, Texturdaten nicht vom Speicher gelesen. Anstelle davon werden
die Texturdaten, die für
ein Pixel mit der gleichen Speicheradresse gelesen wurden, wieder
verwendet. Da somit die Anzahl der Zyklen der Speicherzugriffsoperationen
reduziert wird, wird, sogar wenn ein Speicher mit niedriger Geschwindigkeit
verwendet wird, ein Texturdaten-Lesegerät, welches mit hoher Geschwindigkeit
arbeitet, bereitgestellt.
-
Zusätzlich können Ausführungsformen der Erfindung
für den
Fall angewandt werden, wo die Texturdaten, die der Speicheradresse
eines Pixels, welches zu lesen ist, entsprechen, interpoliert werden,
wobei die vier Sätze
von Texturdaten benachbart zu der Speicheradresse verwendet werden,
wie in 3 gezeigt ist, um
somit Texturdaten hoher Qualität
zu erzeugen.
-
Anschließend wird ein Beispiel, bei
dem die Texturdaten, die der bereitgestellten Speicheradresse eines
Pixels, welches zu lesen ist, entsprechen, von den vier Sätzen der
Texturdaten mit der Struktur, die in 1 gezeigt
ist, interpoliert werden, beschrieben.
-
Wenn vier benachbarte Pixel interpoliert
werden, werden vier Sätze
an Texturdaten von den vier entsprechenden Speicheradressen gelesen,
die am engsten benachbart zu einer Speicheradresse jedes laufenden
Pixels sind. Wenn angenommen wird, dass der Dezimalteil einer bestimmten
Speicheradresse als (U0, V0) abgerundet wird, werden Texturdaten
von den vier Speicheradressen (U0, V0), (U0+1, V0), (U0, V0+1) und
(U0+1, V0+1) gelesen.
-
Im Beispiel, welches in 3 gezeigt ist, sollten Texturdaten
mit den folgenden zwanzig Speicheradressen gelesen werden.
-
-
-
Die Speicheradress-Vergleichseinheit 15,
die in 1 gezeigt ist,
empfängt
die vorhandene Speicheradresse des Pixels, welches zu lesen ist,
und berechnet die vier Speicheradressen, die der vorhandenen Speicheradresse
benachbart sind. Die Speicheradress-Vergleichseinheit 15 vergleicht
die vier Speicheradressen, die der vorhandenen Speicheradresse des
Pixels, welches zu lesen ist, benachbart sind und die vier Speicheradressen,
die der vorherigen Speicheradresse des Pixels, welches benachbart
dazu ist, benachbart ist, und eliminiert redundante Speicheradressen
als die gleiche Speicheradresse. Lediglich unterschiedliche Speicheradressen,
die nicht beseitigt sind, werden der Speicherzugriffseinheit 17 bereitgestellt.
-
In dem Beispiel, welches in 3 gezeigt ist, sendet die
Speicheradress-Vergleichseinheit 15 die folgenden 10 Speicheradressen
zur Speicherzugriffseinheit 17.
-
-
Zusätzlich beliefert die Speicheradress-Vergleichseinheit 15 die
Vergleichsergebnis-Speichereinheit 16 mit
der Information 1 und der Information 2 als die Information, die
das Vergleichsergebnis zeigt. Die Information 1 und die Information
2 ist für
die Texturdaten-Restrukturierungseinheit 19 notwendig,
die in 1 gezeigt ist,
um die Texturdaten zu restrukturieren.
-
Die Information 1 als erste Information
ist eine Vier-Bit-Information, die zeigt, dass Texturdaten, die
neu vom Speicher gelesen werden, verwendet werden, oder Texturdaten,
die gelesen werden, nochmals für
jedes Pixel gelesen werden.
-
Die Information 2 als zweite Information
ist eine Zwei-Bit-Information von niedrigwertigeren Bits von U, V
der Speicheradresse (U, V) jedes Pixels.
-
Im Beispiel, welches in 3 gezeigt ist, wird die
folgende Information eines jeden Pixels zur Vergleichsergebnis-Speichereinheit 16 geliefert.
Die Relation zwischen jeder Information (Information 1 und Information
2) der Tabelle und der vier Speicheradressen wird in der Reihenfolge
angegeben von (U0, V0), (U0+1, V0), (U0, V0+1), (U0+1, V0+1).
-
-
Anschließend werden, um die Erläuterung
zu vereinfachen, (0, 0), (1, 0), (0, 1) und (1, 1) der Information
2 mit A, B, C bzw. D bezeichnet. Somit wird die obige Tabelle umgeschrieben
wie folgt:
-
-
In den oben beschriebenen Beispiel
wird ein Pixel, für
welches Texturdaten, die neu vom Speicher gelesen werden, verwendet
werden, mit "1" bezeichnet, und
ein Pixel, für
welches die Texturdaten, die vorher vom Speicher gelesen wurden,
wieder verwendet werden, mit "0" bezeichnet.
-
In der Tabelle zeigt an der Speicheradresse
(U0, V0) des dritten Pixels die Information 1, dass auf den Speicher
nicht zugegriffen wird und dass die Texturdaten wieder verwendet
werden. Außerdem
zeigt die Information, dass die Texturdaten an der Speicheradresse
(U0, V0) die gleiche ist wie die Speicheradresse (U0+1, V0+1) des
zweiten Pixels (erstes Pixel).
-
Die Speicherzugriffseinheit 17,
die in 1 gezeigt ist,
liest Texturdaten vom Speicher gemäß der Speicheradresse (U, V),
die von der Speicheradress-Vergleichseinheit 15 empfangen
wird und sendet die Texturdaten C (U, V), die der bereitgestellten
Speicheradresse entsprechen, zu der Texturdaten-Speichereinheit 18,
die in 1 gezeigt ist.
-
Im Beispiel, welches in 3 gezeigt ist, liest die
Speicherzugriffseinheit 17 Texturdaten C (U, V) vom Speicher 14,
die den folgenden Speicheradressen entsprechen, die von der Speicheradress-Vergleichseinheit 15 empfangen
werden, und sendet die Texturdaten C zur Texturdaten-Speichereinheit 18.
-
-
-
Die Texturdaten-Speichereinheit 18,
die in 1 gezeigt ist,
ist ein FIFO-Pufferspeicher, welcher die Texturdaten C (U, V) speichert,
die von der Speicherzugriffseinheit 17 empfangen werden.
-
Wenn vier benachbarte Punkte interpoliert
werden, werden Texturdaten, die den vier Speicheradressen eines
jeden Pixels entsprechen, gespeichert. Entsprechend den niedrigwertigsten
Bits der Texturadresse werden (U, V), (C (0, 0), C (1, 0), C (0,
1) und C (1, 1) in A, B, C bzw. D gespeichert, die vier FIFO-Texturdaten-Speichereinheiten 18 sind.
-
In dem Beispiel, welches in 3 gezeigt ist, werden die
folgenden Texturdaten C (U, V) in A, B, C und D gespeichert:
-
-
Die Texturdaten-Umstrukturierungseinheit 19,
die in 1 gezeigt ist,
liest gewünschte
Texturdaten, die in der Texturdaten-Speichereinheit 18 gespeichert
sind, entsprechend der Information, die in der Vergleichergebnis-Speichereinheit 16 gespeichert
ist.
-
Bei dem Verfahren zum Umstrukturieren
von Texturdaten wird bestimmt, ob neue Texturdaten von der Texturdaten-Speichereinheit 18 gelesen
werden oder ob Texturdaten gemäß der Information 1 der
Vergleichsergebnis-Speichereinheit 16 wieder verwendet
werden. Zusätzlich
wird von welchen der A, B, C oder D der FIFO-Texturdaten-Speichereinheiten 18 Texturdaten
gelesen werden, gemäß der Information 2 der
Vergleichsergebnis-Speichereinheit 16.
-
Bei dem in 3 gezeigten Beispiel werden die Information
und die Texturdaten (U, V) von der Vergleichsergebnis-Speichereinheit 16 und
der Texturdaten-Speichereinheit 18 der Reihe nach gelesen.
Damit werden vier Texturdaten pro Pixel (eine Gesamtzahl von 20
Texturdaten) umstrukturiert.
-
Erstes Pixel:
-
Von der Vergleichsergebnis-Speichereinheit:
Information 1 (1111) und Information 2 (DCBA)
Von der Texturdaten-Speichereinheit:
Neue
Texturdaten C (1, 1) werden von D gelesen.
Neue Texturdaten
C (2, 1) werden von C gelesen.
Neue Texturdaten C (1, 2) werden
von B gelesen.
Neue Texturdaten C (2, 2) werden von A gelesen.
-
Zweites Pixel:
-
Von der Vergleichsergebnis-Speichereinheit:
Information 1 (0000) und Information 2 (DCBA)
Von der Texturdaten-Speichereinheit:
Texturdaten
C (1, 1), die von D gelesen werden, werden wieder verwendet.
Texturdaten
C (2, 1), die von C gelesen werden, werden wieder verwendet.
Texturdaten
C (1, 2), die von B gelesen werden, werden wieder verwendet.
Texturdaten
C (2, 2), die von A gelesen werden, werden wieder verwendet.
-
Drittes Pixel:
-
Von der Vergleichsergebnis-Speichereinheit:
Information 1 (0111) und Information 2 (ABCD)
Von der Texturdaten-Speichereinheit:
Texturdaten
C (2, 2), die von A gelesen werden, werden wieder verwendet.
Neue
Texturdaten C (3, 2) werden von B gelesen.
Neue Texturdaten
C (2, 3) werden von C gelesen
Neue Texturdaten C (3, 3) werden
von D gelesen
-
Viertes Pixel:
-
Von der Vergleichsergebnis-Speichereinheit:
Information 1 (0000) und Information 2 (ABCD)
Von der Texturdaten-Speichereinheit:
Texturdaten
C (2, 2), die von A gelesen werden, werden wieder verwendet
Texturdaten
C (3, 2), die von B gelesen werden, werden wieder verwendet
Texturdaten
C (2, 3), die von C gelesen werden, werden wieder verwendet
Texturdaten
C (3, 3), die von D gelesen werden, werden wieder verwendet
-
Fünftes Pixel:
-
Von der Vergleichsergebnis-Speichereinheit:
Information 1 (0111) und Information 2 (DCBA)
Von der Texturdaten-Speichereinheit:
Texturdaten
C (3, 3), die von D gelesen werden, werden wieder verwendet
Neue
Texturdaten C (4, 3) werden von C gelesen
Neue Texturdaten
C (3, 4) werden von B gelesen
Neue Texturdaten C (4, 4) werden
von A gelesen.
-
Wie oben beschrieben kann gemäß der vorliegenden
Ausführungsform,
da 20 Texturdaten mit einem 10-maligen Speicherzugriff
umstrukturiert werden können,
sogar, wenn vier benachbarte Punkte interpoliert werden, die Häufigkeit
der Speicherzugriffsoperation vermindert werden. Damit kann ein
Texturdaten-Lesegerät,
welches mit hoher Geschwindigkeit arbeitet, erhalten werden.
-
4 ist
ein Blockdiagramm, welches den Aufbau eines Bildaufbereitungsgeräts 40 zeigt,
welches das oben beschriebene Texturdaten-Lesegerät gemäß einer
Ausführungsform
der vorliegenden Erfindung hat. Das Bildaufbereitungsgerät 24 besteht
aus einer XY-Verarbeitungseinheit 31,
die XY-Koordinaten (X, Y) verarbeitet, einer Farbverarbeitungseinheit 32,
welche Farbwerte (R, G, B) verarbeitet, einer Texturverarbeitungseinheit 33,
welche Texturkoordinaten (S, T, Q) verarbeitet, und einer Mischeinheit 24,
welche Ausgangsdaten der Farbverarbeitungseinheit 32 und
der Texturverarbeitungseinheit 33 berechnet und eine Farbe erzeugt.
Das Bildaufbereitungsgerät 24 ist
mit einem Texturspeicher 25 verbunden, welcher Texturdaten
speichert, und einem Rahmenspeicher 24, welcher Zeichendaten
speichert.
-
Die XY-Verarbeitungseinheit 31 erzeugt
XY-Koordinaten (x, y) in einem Dreieckpolygon mit XY-Koordinaten
(X, Y) von drei Scheitelpunkten des Dreiecks, die von einem Eingangsanschluss 21 empfangen
werden. Die Farbverarbeitungseinheit 32 interpoliert die
Farbwerte (R, G, B) der drei Scheitel des Dreieckpolygons, welches
von dem Eingangsanschluss 22 empfangen wird, linear, erhält einen
Farbwert Cf eines jeden Pixels im Dreieck und gibt den Farbwert
Cf an die Mischeinheit 34 aus.
-
Die Texturverarbeitungseinheit 33 besteht
aus einer Texturadress-Erzeugungseinheit 35 und einem Texturdaten-Lesegerät 36 gemäß der Ausführungsform
der vorliegenden Erfindung (1 gezeigt).
Die Texturadress-Erzeugungseinheit 35 erzeugt ein Texturadresse
(U, V) in einem Dreieckpolygon mit Texturkoordinaten (S, T, Q) von
drei Scheitelpunkten des Dreiecks, die vom Eingangsanschluss 23 empfangen
werden, und sendet diese Texturadresse (U, V) zum Texturdaten-Lesegerät 36.
somit leist das Texturdaten-Lesegerät 36 Texturdaten Ct
vom Texturspeicher 25 und sendet die Texturdaten Ct zur
Mischeinheit 34.
-
Die Mischeinheit 34 führt einen
Additionsbetrieb oder einen Subtraktionsbetrieb für die Ausgangsdaten Cf
der Farbverarbeitungseinheit 32 und die Ausgangsdaten Ct
der Texturverarbeitungseinheit 33 durch und erzeugt eine
neue Farbe C.
-
Die neue Farbe C, die durch die oben
beschriebenen Verarbeitungseinheiten erzeugt wird, wird in den Rahmenpuffer 26 entsprechend
den XY-Koordinaten (x, y) geschrieben, die durch die XY-Verarbeitungseinheit 31 erzeugt
werden. Somit wird ein Bildaufbereitungsgerät gebildet.
-
Das Bildaufbereitungsgerät 24 kann
Texturdaten mit einer hohen Geschwindigkeit mit einem Speicher mit
niedriger Geschwindigkeit bevorzugt zu einer groß-volumigen Schaltung, beispielsweise
einem Texturcache lesen. Damit können
Texturdaten mit hoher Geschwindigkeit mit einer kleinen Schaltung
abgebildet werden.
-
Außerdem können bei Ausführungsformen
der Erfindung Texturdaten unabhängig
für jede
Abtastzeile gelesen werden. 5 ein
Blockdiagramm, welches den Aufbau eines Bildaufbereitungsgeräts mit mehreren Bildaufbereitungsgeräten 24 zeigt,
die in 4 gezeigt sind.
-
XY-Koordinaten (X, Y) von drei Scheitelpunkten
eines Dreiecks, Farbwerte (R, G, B) von drei Scheitelpunkten des
Dreiecks, und Texturkoordinaten (S, T, Q) der drei Scheitel des
Dreiecks werden von einem Eingangsanschluss 41 zu einem
Hochgeschwindigkeits-Bild aufbereitungsgerät 42 geliefert. Das
Hochgeschwindigkeits-Bildaufbereitungsgerät hat mehrere Bildaufbereitungsgeräte 24,
um so verschiedene Abtastzeilen parallel zu verarbeiten. Die Eingangssignale
werden zu den Bildaufbereitungsgeräten 241 bis 24n geliefert. Alle Bildaufbereitungsgeräte 241 bis 24n führen die
oben beschriebene Verarbeitung durch. Die Texturspeicher 251 bis 25n erzeugen
neue Farben C1 bis Cn und schreiben diese Farben in einen Rahmenpuffer 26 entsprechend den
XY-Koordinaten (x1, y1) bis (xn, yn). Damit kann ein Hochgeschwindigkeits-Bildaufbereitungsgerät, welches
Signale mehrmals höher
als das Bildaufbereitungsgerät 24 verarbeitet,
erhalten werden.
-
Gemäß der obigen Beschreibung von
Ausführungsformen
der Erfindung werden, wenn eine Speicheradresse eines Pixels, für welches
Texturdaten von einem Speicher gelesen werden, die gleiche ist wie
die Speicheradresse eines Pixels, welches benachbart dazu ist, Texturdaten
nicht vom Speicher gelesen. Wenn die Speicheradresse des Pixels,
für welches
Texturdaten vom Speicher gelesen wird, von der Speicheradresse des
Pixels, welches benachbart dazu ist, verschieden ist, werden Texturdaten,
die gelesen wurden, wieder verwendet, um so die Häufigkeit
der Speicherzugriffsoperation zu reduzieren. Damit wird eine klein-volumige Hochgeschwindigkeits-Texturabbildungsoperation
erreicht, ohne die Notwendigkeit, einen groß-volumigen Schaltungsaufbau,
beispielsweise eine Cache-Einheit zu verwenden.
-
Folglich erfüllen Ausführungsformen der Erfindung
einen langbestehenden Wunsch nach einer verbesserten Bilddatenverarbeitung,
die effizienter Texturdaten abbilden, lesen und aufbereiten kann.
-
Aus der obigen Beschreibung wird
deutlich, dass, obwohl eine bestimmte Ausführungsform der Erfindung gezeigt
und beschrieben wurde, verschiedene Modifikationen durchgeführt werden
können,
ohne den Rahmen der Erfindung zu verlassen.