DE69914814T2 - Bildverarbeitungsgerät - Google Patents

Bildverarbeitungsgerät Download PDF

Info

Publication number
DE69914814T2
DE69914814T2 DE1999614814 DE69914814T DE69914814T2 DE 69914814 T2 DE69914814 T2 DE 69914814T2 DE 1999614814 DE1999614814 DE 1999614814 DE 69914814 T DE69914814 T DE 69914814T DE 69914814 T2 DE69914814 T2 DE 69914814T2
Authority
DE
Germany
Prior art keywords
data
circuit
texture
memory
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1999614814
Other languages
English (en)
Other versions
DE69914814D1 (de
Inventor
Mutsuhiro Shinagawa-ku Ohmori
Toshio Shinagawa-ku Horioka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE69914814D1 publication Critical patent/DE69914814D1/de
Publication of DE69914814T2 publication Critical patent/DE69914814T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Description

  • Die Erfindung betrifft ein Bildverarbeitungsgerät zum Zeichnen von Graphiken und bezieht sich insbesondere auf das technische Gebiet des Speicherns von Texturdaten, die auf ein graphisches Element angewendet werden sollen, das in einem eingebauten Speicher gezeichnet werden soll, wenn ein DRAM oder ein anderer Speicher zusammen mit einer Logikschaltung angeordnet ist.
  • In einer Vielzahl von computergestützten Entwurfssystemen (CAD-Systemen) und Unterhaltungsgeräten werden häufig Computergraphiken benutzt. Insbesondere im Zusammenhang mit den jüngsten Fortschritten bei Bildverarbeitungsverfahren finden Systeme rasch weite Verbreitung, die dreidimensionale Computergraphiken benutzen.
  • Bekannte Beispiele für die Verarbeitung von Graphiken finden sich z. B. in WO 97/35316 A und JP 09/270024 A.
  • Bei dreidimensionalen Computergraphiken wird der Farbwert jedes Pixels berechnet, wenn die Farbe jedes entsprechenden Pixels festgelegt wird. Dann wird ein Rendering durchgeführt, um den berechneten Wert des Pixels an einer dem Pixel entsprechenden Adresse eines Display-Puffers (Vollbildpuffer) einzuschreiben.
  • Eines der Rendering-Verfahren ist das Polygon-Rendering. Bei diesem Verfahren wird ein dreidimensionales Modell als Verbund von Dreieck-Einheitsgraphiken (Polygonen) ausgedrückt. Durch das Zeichnen der Polygone als Einheiten werden die Farben des Anzeigebildschirms festgelegt.
  • Bei dem Polygon-Rendering werden Koordinaten (x, y, z), Farbdaten (R, G, B), homogene Koordinaten (s, t) von Texturdaten, die ein zusammengesetztes Bildmuster bezeichnen, sowie ein Wert des homogenen Terms q für die betreffenden Eckpunkte des Dreiecks in einem physikalischem Koordinatensystem eingegeben, und es findet eine Verarbeitung für die Interpolation dieser Werte innerhalb des Dreiecks statt.
  • Der homogene Term q entspricht hier einfach einer Expansions- oder Reduktionsrate. Die Koordinaten in einem UV-Koordinatensystem eines praktischen Texturpuffers, d. h. die Texturkoordinatendaten (u, v), bestehen aus den homogenen Koordinaten (s, t), geteilt durch den homogenen Term q und ergeben "s/q" und "t/q", die ihrerseits mit Texturgrößen USIZE bzw. VSIZE multipliziert werden.
  • 15 zeigt eine Ansicht der Systemkonfiguration, aus der das Basiskonzept eines dreidimensionalen Computergraphiksystems hervorgeht.
  • In diesem dreidimensionalen Computergraphiksystem werden Daten der Zeichnungsgraphik aus einem Hauptspeicher 2 einem Hauptprozessor 1 oder von einer Eingangs-/Ausgangs-(I/O)-Interfaceschaltung 3, die Graphikdaten von außen empfängt, über einen Hauptbus 4 einer Rendering-Schaltung 5 zugeführt, die einen Rendering-Prozessor 5a und einen Vollbild-Pufferspeicher 5b aufweist.
  • Mit dem Rendering-Prozessor 5a verbunden sind der Vollbild-Pufferspeicher 5b zum Speichern der Daten für die Anzeige sowie ein Texturspeicher 6 zum Speichern von Texturdaten, die auf eine Oberfläche eines zu zeichnenden graphischen Elements (z. B. eines Dreiecks) angewendet werden sollen.
  • Der Rendering-Prozessor 5a führt dann für jedes graphische Element in dem Vollbild-Pufferspeicher 5b eine Verarbeitung durch, um das graphische Element zu zeichnen, auf dessen Fläche die Textur angewendet wird.
  • Der Vollbild-Pufferspeicher 5b und der Texturspeicher 6 sind im allgemeinen als DRAM (dynamic random access memory) konfiguriert.
  • In dem System von 15 sind der Vollbild-Pufferspeicher 5b und der Texturspeicher 6 als physikalisch getrennte Speichersysteme konfiguriert.
  • Es ist zu beachten, daß wegen der Beschränkung sowohl der DRAM-Kapazität als auch der Verarbeitungsgeschwindigkeit selbst dann noch schwierig war, die Texturdaten intern zu speichern, nachdem es möglich wurde, das DRAM und die Logikschaltung zusammen anzuordnen.
  • Wenn in dem sogenannten Einbau-DRAM-System des oben beschriebenen Standes der Technik der Vollbild-Pufferspeicher und der Texturspeicher getrennt in separaten Speichersystemen angeordnet sind, treten folgende Nachteile auf:
    Erstens kann der Vollbild-Pufferspeicher, der aufgrund einer Änderung der Anzeige-Auflösung geleert wird, nicht als Texturspeicher benutzt werden.
  • Dieses wird zu einem großen Nachteil, wenn man versucht, die ganze Verarbeitung in der begrenzten Kapazität eines Einbau-DRAMs durchzuführen.
  • Zweitens wird bei dem simultanen Zugriff auf den Vollbild-Pufferspeicher und den Texturspeicher der Overhead zum Umschalten der Seiten des DRAMs usw. groß, so daß die Leistung beeinträchtigt wird, wenn man den Vollbild-Pufferspeicher und den Texturspeicher physikalisch identisch macht.
  • Diese Nachteile sind nicht speziell auf ein Gerät zum Zeichnen von Graphiken mit Einbau-DRAM beschränkt, sondern gelten auch für Systeme mit einem extern angeordneten DRAM-Typ, wobei sie jedoch nicht so ernsthaft waren wie bei dem Einbau-Typ, bei dem die Kapazität streng begrenzt ist.
  • Es ist ein Ziel der vorliegenden Erfindung, die in den anliegenden Ansprüchen definiert ist, ein Bildverarbeitungsgerät vorzusehen, das in der Lage ist, eine flexible und sehr schnelle Verarbeitung durchzuführen, wobei eine Speicherregion, die aufgrund einer Änderung der Anzeige-Auflösung geleert wird, als Texturspeicher benutzt werden kann, wobei ferner ein Anwachsen des Overheads, wie das Umschalten der Seiten, verhindert werden kann und keine Leistungsminderung auftritt.
  • Zur Erreichung dieses Ziels ist nach einem ersten Aspekt der vorliegenden Erfindung ein Bildverarbeitungsgerät vorgesehen mit einer Speicherschaltung zum Speichern von Anzeigedaten und Texturdaten, die von wenigstens einem graphischen Element benötigt werden, und mit einer Logikschaltung für die Durchführung einer Verarbeitung zum Anwenden der Texturdaten auf die Oberfläche des graphischen Elements der Anzeigedaten auf der Basis der gespeicherten Daten der Speicherschaltung, wobei die Speicherschaltung und die Logikschaltung beide in einem Halbleiterchip untergebracht sind.
  • Nach einem zweiten Aspekt der vorliegenden Erfindung ist ein Bildverarbeitungsgerät vorgesehen für die Durchführung eines Renderings durch das Empfangen von Polygon-Rendering-Daten, einschließlich dreidimensionaler Koordinaten (x, y, z) von R (Rot) G (Grün) und B (Blau), von homogenen Koordinaten (s, t) einer Textur und eines homogenen Terms q bezüglich der Eckpunkte einer Einheitsgraphik, wobei das Gerät zumindest eine Speicherschaltung zum Speichern von Anzeigedaten und Texturdaten aufweist, die von wenigstens einem graphischen Element benötigt werden, ferner eine Interpolationsdaten-Generatorschaltung zum Interpolieren der Polygon-Rendering-Daten der Eckpunkte der Einheitsgraphik, um Interpolationsdaten von innerhalb der Einheitsgraphik liegenden Pixeln zu erzeugen, sowie eine Textur-Verarbeitungsschaltung zum Dividieren der homogenen Koordinaten (s, t) einer in den Interpolationsdaten enthaltenen Textur durch den homogenen Term q, um "s/q" und "t/q" zu erzeugen, wobei eine "s/q" und "t/q" entsprechende Texturadresse benutzt wird, um Texturdaten aus der Speicherschaltung auszulesen und die Texturdaten auf die Oberfläche des graphischen Elements der Anzeigedaten anzuwenden, wobei die Speicherschaltung, die Interpolationsdaten-Generatorschaltung und die Texturverarbeitungsschaltung in einem Halbleiterchip untergebracht sind.
  • Bei der vorliegenden Erfindung ist die Speicherschaltung in mehrere Module mit identischen Funktionen unterteilt, und die Logikschaltung greift parallel auf diese Module zu.
  • Bei der vorliegenden Erfindung sind ferner Anzeigeelemente an benachbarten Adressen in einem Anzeige-Adressenraum so angeordnet, daß sie in unterschiedlichen Speicherblöcken in der Speicherschaltung liegen.
  • Außerdem werden bei der vorliegenden Erfindung in der Speicherschaltung Indizes in Indexfarben und -werten für die Bezugnahme auf Farben in einer Farbtabelle in der Speicherschaltung gespeichert.
  • Darüber hinaus wird in der Speicherschaltung eine Information über die Tiefe eines zu zeichnenden Objekts gespeichert.
  • Indem ein DRAM oder eine andere Speicherschaltung und eine logische Schaltung erfindungsgemäß gemeinsam in einem Halbleiterchip angeordnet werden und Anzeigedaten und Texturdaten, die von wenigstens einem graphischen Element benötigt werden, in einer eingebauten Speicherschaltung gespeichert werden, können die Texturdaten in einem anderen Bereich als der Anzeigeregion gespeichert werden, so daß der eingebaute Speicher effizient genutzt werden kann.
  • Indem man in der Speicherschaltung als einer Mehrzahl von unabhängigen Modulen parallel identische Funktionen zuweist, wird die Effizienz von parallelen Operationen verbessert. Wenn die Bitzahl der Daten einfach groß ist, wird die Effizienz der Datennutzung beeinträchtigt und die Verbesserung der Leistung ist auf Fälle und bestimmte Bedingungen beschränkt. Um die durchschnittliche Leistung zu verbessern können jedoch Bitleitungen effizient genutzt werden, indem man eine Mehrzahl von Modulen vorsieht, die gewisse Funktionsgrade besitzen.
  • Ferner wird die effiziente Nutzung der Bitleitungen möglich, indem man mit der Anordnung der eingebauten Speicherschaltung, d. h. dem von dem unabhängigen Speicher plus den Funktionsmodulen besetzten Adressenraum herumbastelt.
  • Wenn es häufige Zugriffe auf relativ feste Anzeigeregionen gibt, wie dies beim Zeichnen von Graphiken der Fall ist, wächst die Wahrscheinlichkeit, daß die Module die Verarbeitung simultan ausführen können, wenn man die Anzeigeelemente in der Weise an benachbarten Adressen anordnet, daß sie in dem Anzeigeadressenraum verschiedenen Speicherblöcken angehören, und die Zeichenleistung kann verbessert werden. Häufige Zugriffe auf eine feste Anzeigeregion beim Zeichnen innerhalb des geschlossenen Bereichs eines Dreiecks usw. führen dazu, daß auf benachbarte Adressen zugegriffen wird, weil die internen Anzeigeelemente einander benachbart sind.
  • Um mehr Texturdaten zu speichern, können die Texturdaten außerdem durch das Speichern von Indizes von Indexfarben und Werten einer hierfür vorgesehenen Farbtabelle innerhalb der eingebauten Speicherschaltung komprimiert werden. Dies hat zur Folge, daß die eingebaute Speicherschaltung effizient genutzt werden kann.
  • Durch das Speichern einer Tiefeninformation eines zu zeichnenden Objekts in der eingebauten Speicherschaltung kann außerdem erfindungsgemäß parallel zu dem Zeichnen eine Verarbeitung verdeckter Ebenen simultan und durchgeführt werden.
  • Diese und weitere Ziele und Merkmale der vorliegenden Erfindung werden durch die folgende Beschreibung der bevorzugten Ausführungsbeispiele, die auf die anliegenden Zeichnungen Bezug nimmt, weiter verdeutlicht.
  • 1 zeigt ein Blockdiagramm der Konfiguration eines dreidimensionalen Computer-Graphiksystems gemäß der Erfindung,
  • 2A bis 2C zeigen Ansichten für die schematische Erläuterung von Verfahren zum Speichern von Anzeigedaten, Tiefendaten und Texturdaten in einem DRAM gemäß der Erfindung,
  • 3 zeigt ein Blockdiagramm eines spezifischen Beispiels für die Konfiguration der Speicher-I/F-Schaltung für den Zugriff auf ein DRAM, SRAM und DRAM und SRAM in der Rendering-Schaltung gemäß der Erfindung,
  • 4A und 4B zeigen schematische Ansichten eines Beispiels für die Konfiguration eines DRAM-Puffers gemäß der Erfindung,
  • 5 zeigt eine Ansicht zur Erläuterung von in den Texturdaten enthaltenen Pixeldaten, auf die simultan zugegriffen werden kann,
  • 6 zeigt eine Ansicht zur Erläuterung eines Einheitsblocks, der die Texturdaten bildet,
  • 7 zeigt eine Ansicht zur Erläuterung des Adressenraums eines Textur-Puffers,
  • 8 zeigt eine Ansicht zur Erläuterung der Funktion einer DDA-Setup-Schaltung gemäß der Erfindung,
  • 9 zeigt eine Ansicht zur Erläuterung der Funktion einer Dreieck-DDA-Schaltung gemäß der Erfindung,
  • 10 zeigt eine Ansicht zur Erläuterung der Verarbeitung zum Sortieren der Eckpunkte in einer Dreieck-DDA-Schaltung gemäß der Erfindung,
  • 11 zeigt eine Ansicht zur Erläuterung der Berechnung einer Neigung in horizontaler Richtung einer Dreieck-DDA-Schaltung gemäß der Erfindung,
  • 12A und 12B zeigen Ansichten zur Erläuterung einer Prozedur zum Interpolieren der Eckpunktdaten einer Dreieck-DDA-Schaltung gemäß der Erfindung,
  • 13 zeigt ein Flußdiagramm zur Erläuterung der Prozedur zum Interpolieren der Eckpunktdaten einer Dreieck-DDA-Schaltung gemäß der Erfindung,
  • 14 zeigt eine Ansicht zur Erläuterung der Bilddatenverarbeitung eines Verteilers in einer Speicher-I/F-Schaltung gemäß der Erfindung,
  • 15 zeigt eine Ansicht der Systemkonfiguration und zeigt das Grundkonzept eines dreidimensionalen Computer-Graphiksystems.
  • Im folgenden werden anhand der Zeichnungen bevorzugte Ausführungsbeispiele beschrieben.
  • In dem vorliegenden Ausführungsbeispiel wird ein dreidimensionales Computer-Graphiksystem erläutert, mit dem sich ein gewünschtes dreidimensionales Bild eines beliebigen dreidimensionalen Objektmodells mit hoher Geschwindigkeit auf einem Display, z. B. einer Kathodenstrahlröhre (CRT), wie sie in Personalcomputern usw. häufig benutzt wird, anzeigen läßt.
  • 1 zeigt eine Ansicht der Systemkonfiguration eines dreidimensionalen Computer-Graphiksystems 10 als Bildverarbeitungsgerät gemäß der Erfindung.
  • In dem dreidimensionalen Computer-Graphiksystem 10 wird ein dreidimensionales Modell als eine Zusammensetzung von Dreieck-Einheitsgraphiken (Polygonen) dargestellt. Durch das Zeichnen der Polygone werden die Farben der Pixel des Anzeigebildschirms festgelegt, und es wird das Polygon-Rendering für die Anzeige auf dem Display durchgeführt.
  • Zusätzlich zu den Koordinaten (x, y), die die Position in einer Ebene angeben, wird in dem dreidimensionalen Computer-Graphiksystem 10 ein dreidimensionales Objekt durch die Verwendung einer z-Koordinate ausgedrückt, die die Tiefe angibt. Die drei Koordinaten (x, y, z) spezifizieren einen beliebigen Punkt in einem dreidimensionalen Raum.
  • Wie aus 1 hervorgeht, ist das dreidimensionale Computer-Graphiksystem 10 über einen Hauptbus 15 mit einem Hauptprozessor 11, einem Hauptspeicher 12, einer I/O-Interfaceschaltung 13 und einer Rendering-Schaltung 14 verbunden.
  • Im folgenden werden die Funktionen der betreffenden Komponenten erläutert.
  • Der Hauptprozessor 11 liest die benötigten Graphikdaten aus dem Hauptspeicher 12, z. B. nach Maßgabe des Fortschrittszustands einer Applikation, aus und unterzieht die Graphikdaten einer Beschneidungs-, Beleuchtungs- und geometrischen Verarbeitung usw. und erzeugt Polygon-Rendering-Daten. Der Hauptprozessor 11 gibt die Polygon-Rendering-Daten S11 über den Hauptbus 15 an die Rendering-Schaltung 14 aus.
  • Die I/O-Interfaceschaltung 13 empfängt je nach Bedarf als Eingangssignal die Bewegungssteuerinformation oder die Polygon-Rendering-Daten von außen und gibt diese über den Hauptbus 15 an die Rendering-Schaltung 14 aus.
  • Die Polygon-Rendering-Daten umfassen hier die Daten (x, y, z, R, G, B, s, t, q) jedes der drei Eckpunkte des Polygons.
  • Die (x, y, z)-Daten bezeichnen hier die dreidimensionalen Koordinaten eines Eckpunkts des Polygons, und (R, G, B) bezeichnet die Luminanzwerte von Rot, Grün bzw. Blau an den dreidimensionalen Koordinaten.
  • Von den (s, t, q)-Daten bezeichnen (s, t) die homogenen Koordinaten einer entsprechenden Textur, und q bezeichnet einen homogenen Term. Die Texturgrößen USIZE und VSIZE werden hier mit "s/q" bzw. "t/q" multipliziert, um die Textur-Koordinatendaten (u, v) zu gewinnen. Die Textur-Koordinatendaten (u, v) werden benutzt, um auf die in dem Textur-Puffer 147a gespeicherten Texturdaten zuzugreifen.
  • Die Polygon-Rendering-Daten bestehen aus physikalischen Koordinatenwerten der Eckpunkte eines Dreiecks und Farb- und Texturdaten der einzelnen Eckpunkte.
  • Im folgenden wird die Rendering-Schaltung 14 näher erläutert.
  • Wie 1 zeigt, umfaßt die Rendering-Schaltung 14 eine DDA-(digital differential analyzer)-Setup-Schaltung 141, eine Dreieck-DDA-Schaltung 142, eine Texturmaschinen-Schaltung 143, eine Speicher-Interface-(I/F)-Schaltung 144, eine CRT-Steuerschaltung 145, eine RAMDAC-Schaltung 146, ein DRAM 147 und ein statisches RAM (SRAM) 148.
  • Die Rendering-Schaltung 14 der vorliegenden Erfindung ist mit einer Logikschaltung und einem DRAM 147 ausgestattet, um zumindest Anzeigedaten und Texturdaten zusammen in einem Halbleiterchip zu speichern.
  • DRAM 147
  • Das DRAM 147 arbeitet als Textur-Puffer 147a, Display-Puffer 147b, z-Puffer 147c und als Textur-Farbtabellen-(CLUT)-Puffer 147d.
  • Das DRAM 147 ist außerdem, wie weiter unten erläutert wird, in mehrere (im vorliegenden Ausführungsbeispiel 4) Module unterteilt, die identische Funktionen haben.
  • Um mehr Texturdaten zu speichern, sind in dem DRAM 147 auch Indizes in Indexfarben und -werten für die Farbtabelle in dem Textur-CLUT-Puffer 147d gespeichert.
  • Die Indizes und die Werte der Farbtabelle werden für die Texturverarbeitung benutzt. Das heißt, ein Texturelement wird normalerweise durch insgesamt 24 Bit, nämlich jeweils 8 Bit für R, G und B ausgedrückt. Hierdurch schwillt die Datenmenge jedoch an. So wird eine Farbe z. B. aus 256 vorausgewählten Farben ausgewählt, und diese Daten werden für die Texturverarbeitung benutzt. Bei 256 Farben können die Texturelemente deshalb durch 8 Bit ausgedrückt werden. Für die Umwandlung aus den Indizes in eine tatsächliche Farbe ist eine Umwandlungstabelle erforderlich, je höher jedoch die Auflösung der Textur ist, desto kompakter können die Texturdaten werden.
  • Dadurch wird eine Komprimierung der Texturdaten möglich, und das eingebaute DRAM kann effizient genutzt werden.
  • Außerdem ist in dem DRAM 147 eine Tiefeninformation des zu zeichnenden Objekts gespeichert, um simultan und parallel zu dem Zeichnen eine Verarbeitung verdeckter Ebenen durchzuführen.
  • Als Verfahren zum Speichern der Anzeigedaten, der Tiefendaten und der Texturdaten werden z. B. die Anzeigedaten an einer vorbestimmten Position in dem Speicherblock, z. B. kontinuierlich von oben gespeichert, dann werden die Tiefendaten gespeichert, und dann werden in der verbleibenden vakanten Region die Texturdaten in kontinuierlichen Adressenräumen für jeden Texturtyp gespeichert.
  • Dieses Konzept wird anhand der Zeichnungen erläutert, wie sie in 2A bis 2C dargestellt sind. Die Anzeigedaten und die Tiefendaten werden z. B. in einer Breite von 24 Bit in der in der Figur mit FB bezeichneten Region von einer durch einen sogenannten Basiszeiger (BP) angegebenen Position aus gespeichert, während die Texturdaten in der verbleibenden vakanten Region, d. h. in der 8 Bit breiten Region, gespeichert werden, die in der Figur mit TB bezeichnet ist.
  • Dies hat zur Folge, daß die Texturdaten effizient gespeichert werden können.
  • 3 zeigt ein Blockdiagramm eines spezifischen Beispiels für die Konfiguration des DRAMs 147, des SRAMs 148 und der Speicher-I/F-Schaltung 144, die auf das DRAM 147 und das SRAM 148 zugreift.
  • Wie 3 zeigt, sind das DRAM 147 und das SRAM 148 von 1 in vier Speichermodule 200, 210, 220 und 230 unterteilt, wie dies oben erläutert wurde.
  • Das Speichermodul 200 umfaßt Speicher 201 und 202.
  • Der Speicher 201 besteht aus Bänken 201A und 201B, die einen Teil des DRAMs 147 bilden, und Bänke 201C und 201D, die einen Teil des SRAMs 148 bilden.
  • Auch der Speicher 202 besteht aus Bänken 202A und 202B, die einen Teil des DRAMs 147 bilden, und Bänke 202C und 202D, die einen Teil des SRAMs 148 bilden.
  • Es ist zu beachten, daß auf die Bänke 201C, 201D, 202C und 202D, die das SRAM 148 bilden, simultan zugegriffen werden kann.
  • Das Speichermodul umfaßt Speicher 211 und 212.
  • Der Speicher 211 besteht aus Bänken 211A und 211B, die einen Teil des DRAMs 147 bilden, und Bänke 211C und 211D, die einen Teil des SRAMs 148 bilden.
  • Auch der Speicher 212 besteht aus Bänken 212A und 212B, die einen Teil des DRAMs 147 bilden, und Bänke 212C und 212D, die einen Teil des SRAMs 148 bilden.
  • Es ist zu beachten, daß auf die Bänke 211C, 211D, 212C und 212D, die das SRAM 148 bilden, simultan zugegriffen werden kann.
  • Das Speichermodul 220 umfaßt Speicher 221 und 222.
  • Der Speicher 221 besteht aus Bänken 221A und 221B, die einen Teil des DRAMs 147 umfassen, und Bänken 221C und 221D, die einen Teil des SRAMs 148 umfassen.
  • Auch der Speicher 222 besteht aus Bänken 222A und 222B, die einen Teil des DRAMs 147 umfassen, und Bänken 222C und 222D, die einen Teil des SRAMs 148 umfassen.
  • Es ist zu beachten, daß auf die Bänke 221C, 221D, 222C und 222D, die das SRAM 148 bilden, simultan zugegriffen werden kann.
  • Das Speichermodul 230 umfaßt Speicher 231 und 232.
  • Der Speicher 231 besteht aus Bänken 231A und 231B, die einen Teil des DRAMs 147 umfassen, und Bänken 231C und 231D, die einen Teil des SRAMs 148 umfassen.
  • Auch der Speicher 232 besteht aus Bänken 232A und 232B, die einen Teil des DRAMs 147 umfassen, und Bänken 232C und 232D, die einen Teil des SRAMs 148 umfassen.
  • Es ist zu beachten, daß auf die Bänke 231C, 231D, 232C und 232D, die das SRAM 148 umfassen, simultan zugegriffen werden kann.
  • Hier besitzt jedes der Speichermodule 200, 210, 220 und 230 alle Funktionen des Textur-Puffers 147a, des Anzeige-Puffers 147b, des z-Puffers 147c und des Textur-CLUT-Puffers 147d, die in 1 dargestellt sind.
  • Das heißt, jedes der Speichermodule 200, 210, 220 und 230 speichert alle Texturdaten, die Zeichnungsdaten ((R, G, B)-Daten), die z-Daten und die Textur-Farbtabellen-Daten der entsprechenden Pixel.
  • Es ist zu beachten, daß die Speichermodule 200, 210, 220 und 230 Daten von Pixeln speichern, die sich voneinander unterscheiden.
  • Die Texturdaten, die Zeichnungsdaten, die z-Daten und die Textur-Farbtabellen-Daten für 16 Pixel, die hier simultan verarbeitet werden, sind jeweils in verschiedenen Bänken 201A, 201B, 202A, 202B, 211A, 211B, 212A, 212B, 221A, 221B, 222A, 222B, 231A, 231B, 232A und 232B gespeichert.
  • Deshalb kann die Speicher-I/F-Schaltung 144 simultan auf das DRAM 147 für Daten von beispielsweise 2 × 8 Pixeln, d. h. 16 Pixeln, zugreifen.
  • Es ist zu beachten, daß die Speicher-I/F-Schaltung 144, wie dies weiter unten erläutert wird, auf der Basis einer sogenannten vorgegebenen Verschachtelungs-Adressierung auf das DRAM 147 zugreift (in dieses einschreibt).
  • 4A und 4B zeigen schematische Ansichten eines Beispiels für die Konfiguration des als Puffer (z. B. als Textur-Puffer) dienenden DRAMs 147.
  • Wie 4A und 4B zeigen, sind Daten, auf die in einer 2 × 8-Pixel-Region zugegriffen wird, in einer Region gespeichert, die durch eine Seite (Zeile) und einen Block (Spalte) gekennzeichnet ist.
  • Jede der Zeilen ROW0 bis ROWn + 1 ist, wie in 4A dargestellt, jeweils in vier Spalten (Blöcke) M0A, M0B, M1A und M1B unterteilt.
  • Die Zugriffe (Schreiben und Lesen) erfolgen in Regionen mit einer Begrenzung von 8 Pixeln jeweils in x-Richtung und einer geraden Zahl von Grenzen in y-Richtung.
  • Deshalb erfolgt kein Zugriff auf eine Region, die z. B. die Zeile ROW0 und die Zeile ROW1 übergreift, so daß eine sogenannte Seiten-Verletzung nicht stattfindet.
  • Es ist zu beachten, daß die in den Bänken 201A, 201B, 202A, 202B, 211A, 211B, 212A, 212B, 221A, 221B, 222A, 222B, 231A, 231B, 232A und 232B gespeicherten Texturdaten in den Bänken 201C, 201D, 202C, 202D, 211C, 211D, 212C, 212D, 221C, 221D, 222C, 222D, 231C, 231D, 232C und 232D gespeichert werden.
  • Als nächstes werden anhand von 5 bis 7 Speichermuster der Texturdaten in dem Textur-Puffer 147a auf der Basis der Verschachtelungs-Adressierung näher erläutert.
  • 5 zeigt eine Ansicht zur Erläuterung von in den Texturdaten enthaltenen Pixeldaten, auf die simultan zugegriffen werden kann, 6 zeigt eine Ansicht zur Erläuterung von Einheitsblöcken, die Texturdaten umfassen, und 7 zeigt eine Ansicht zur Erläuterung eines Adressenraums des Textur-Puffers.
  • Wie 5 zeigt, wird in dem vorliegenden Ausführungsbeispiel simultan auf in den Texturdaten enthaltene Pixeldaten P0 bis P15 zugegriffen, die in einer 2 × 8-Matrix angeordnet sind und Farbdaten von Pixeln angeben.
  • Die Pixeldaten P0 bis P15 müssen in unterschiedlichen Bänken des SRAMs 148 gespeichert werden, das den Textur-Puffer 147a umfaßt.
  • In dem vorliegenden Ausführungsbeispiel sind die Pixeldaten P0, P1, P8 und P9 in den Bänken 201C bzw. 201D des Speichers 201 und in den Bänken 202C bzw. 202D des Speichers 202 gespeichert, wie dies in 3 dargestellt ist. Auch die Pixeldaten P2, P2, P10 und P11 sind in den Bänken 211C bzw. 211D des Speichers 211 und den Bänken 212C bzw. 212D des Speichers 212 gespeichert, wie dies in 3 dargestellt ist. Die Pixeldaten P4, P5, P12 und P13 werden in den Bänken 221C bzw. 221D des Speichers 221 und den Bänken 222C bzw. 222D des Speichers 222 gespeichert, wie dies in 3 dargestellt ist. Die Pixeldaten P6, P7, P14 und P15 werden in den Bänken 231C bzw. 231D des Speichers 2231 und den Bänken 232C bzw. 232D des Speichers 232 gespeichert, wie dies in 3 dargestellt ist.
  • In dem vorliegenden Ausführungsbeispiel wird der Satz von Idaten P0 bis P15 der innerhalb einer Blockregion liegenden und simultan verarbeiteten Pixel als Einheitsblock Ri bezeichnet. So bestehen z. B. die Texturdaten, die ein Bild bezeichnen, aus Einheitsblöcken R0 bis RBA-1, die in einer B × A-Matrix angeordnet sind, wie dies in 6 dargestellt ist.
  • Die Einheitsblöcke R0 bis RBA-1 sind, wie in 7 dargestellt, in dem den Textur-Puffer 147a umfassenden DRAM 147 so gespeichert, daß sie in einem eindimensionalen Adressenraum kontinuierliche Adressen haben. Die Pixeldaten P0 bis P15 in jedem der Speicherblöcke R0 bis RBA-1 sind ebenfalls in dem SRAM 148 in voneinander verschiedenen Bänken so gespeichert, daß sie in einem eindimensionalen Adressenraum kontinuierliche Adressen haben.
  • Das heißt, ein Einheitsblock, der aus Pixeldaten besteht, auf die simultan zugegriffen wird, ist in dem Textur-Puffer 147a so gespeichert, daß er in einem eindimensionalen Adressenraum kontinuierliche Adressen aufweist.
  • DDA-Setup-Schaltung 141
  • Bevor die nachfolgende Dreieck-DDA-Schaltung 142 eine lineare Interpolation an den Werten der Eckpunkte eines Dreiecks in einem physikalischen Koordinatensystem vornimmt, um Informationen zur Farbe und Tiefe der Pixel innerhalb des Dreiecks zu gewinnen, führt die DDA-Setup-Schaltung 141 eine Setup-Operation durch, um die Differenz einer Seite des Dreiecks gegenüber der horizontalen Richtung usw. für die Daten (z, R, G, B, s, t, q) zu gewinnen, die durch die Polygon-Rendering-Daten S11 angegeben werden.
  • Diese Setup-Operation benutzt speziell Werte eines Startpunkts und eines Endpunkts sowie den Abstand zwischen den beiden Punkten, um die Änderung von Werten zu berechnen, die im Fall einer Bewegung über eine Einheitslänge zu ermitteln sind.
  • Die DDA-Setup-Schaltung 141 gibt die berechneten Änderungsdaten S141 an die Dreieck-DDA-Schaltung 142 aus.
  • Die Funktion der DDA-Setup-Schaltung 141 wird anhand von 8 näher erläutert.
  • Wie oben erwähnt wurde, dient die Hauptverarbeitung der DDA-Setup-Schaltung 141 dazu, die Änderungen innerhalb eines aus drei Eckpunkten bestehenden Dreiecks zu gewinnen, wenn verschiedene Informationen (Farb- und Textur-Koordinaten) an den Eckpunkten gegeben sind, die durch die weitere geometrische Verarbeitung auf physikalische Koordinaten reduziert werden, um Basisdaten für die spätere lineare Interpolation zu berechnen.
  • Es ist zu beachten, daß die Daten jeden Eckpunkts des Dreiecks z. B. aus 16 Bit der x- und y-Koordinaten, 24 Bit der z-Koordinate, 12 Bit (= 8 + 4) der RGB-Farbwerte und 32 Bit von Gleitkommawerten (IEEE-Format) der s-, t-, q-Texturkoordinaten bestehen.
  • Wenn auch das Zeichnen eines Dreiecks auf das Zeichnen einer horizontalen Linie reduziert ist, macht dies es erforderlich, die Startwerte an dem Startpunkt des Zeichnens der horizontalen Linie zu gewinnen.
  • Beim Zeichnen der horizontalen Linie wird die Zeichnungsrichtung in einem Dreieck konstant gemacht. Wenn z. B. von links nach rechts gezeichnet wird, werden zunächst das X in Bezug auf eine Verschiebung in Y-Richtung einer Seite links und die verschiedenen oben beschriebenen Änderungen berechnet. Dann werden diese dazu benutzt, die X-Koordinate des bei einer Bewegung von einem Eckpunkt zu der nächsten horizontalen Linie am weitesten links liegenden Punkts und die Werte der verschiedenen oben beschriebenen Informationen zu ermitteln (Punkte auf einer Seite ändern sich sowohl in X- als auch in Y-Richtung, so daß die Berechnung allein aus der Neigung der Y-Richtung unmöglich ist).
  • Für die Seite rechts ist nur die Position des Endpunkts erforderlich, so daß nur die Änderung von x im Bezug auf die Verschiebung in Y-Richtung ermittelt werden muß.
  • Was das Zeichnen einer horizontalen Linie betrifft, werden die Neigungen der verschiedenen oben beschriebenen Informationen berechnet, da die Neigung in der horizontalen Richtung in dem gleichen Dreieck gleichförmig ist.
  • Das gegebene Dreieck wird in Y-Richtung sortiert, und der oberste Punkt wird als A gesetzt. Als nächstes werden die beiden anderen Eckpunkte bezüglich der Positionen in X-Richtung verglichen, und der Punkt auf der rechten Seite wird als B gesetzt. Wenn man in dieser Weise verfährt, kann die Verarbeitung in nur zwei Schritte oder dgl. unterteilt werden.
  • Dreieck-DDA-Schaltung 142
  • Die Dreieck-DDA-Schaltung 142 benutzt die aus der DDA-Setup-Schaltung 141 zugeführten Änderungsdaten S141, um die linear interpolierten Daten (z, R, G, B, s, t, q) jedes Pixels innerhalb des Dreiecks zu berechnen.
  • Die Dreieck-DDA-Schaltung 142 liefert die Daten (x, y) für jedes Pixel und die Daten (z, R, G, B, s, t, q) an den (x, y)-Koordinaten als DDA-Daten (Interpolationsdaten) S142 an die Texturmaschinen-Schaltung 143.
  • Die Dreieck-DDA-Schaltung 142 gibt z. B. die DDA-Daten S142 der innerhalb eines Blocks liegenden 8 (= 2 × 4) Pixel, die parallel verarbeitet werden, an die Texturmaschinen-Schaltung 143 aus.
  • Anhand von 9 wird die Funktion der Dreieck-DDA-Schaltung 142 näher erläutert.
  • Wie oben erläutert wurde, wird die Neigungsinformation der verschiedenen oben beschriebenen Informationen der Seiten und der horizontalen Richtung eines Dreiecks von der DDA-Setup-Schaltung 141 vorbereitet. Die Grundverarbeitung der Dreieck-DDA-Schaltung 142, die diese Information empfängt, besteht in der Berechnung der Anfangswerte der horizontalen Linie durch Interpolation der verschiedenen Informationen an den Seiten des Dreiecks und Interpolation der verschiedenen Informationen an der horizontalen Linie.
  • Hier ist besonders darauf zu achten, daß die Berechnung der Ergebnisse der Interpolation eine Berechnung der Werte im Zentrum eines Pixels erfordert.
  • Der Grund hierfür ist, daß dann, wenn der Wert außerhalb des Zentrums des Pixels liegt, dies bei einem Standbild zwar nicht zu kümmern braucht, bei einem Bewegtbild jedoch ein deutliches Flackern des Bilds hervortritt.
  • Die verschiedenen Informationen auf der am weitesten links liegenden Seite einer ersten horizontalen Linie können dadurch gewonnen werden, daß die Neigung auf der Seite mit dem Abstand von dem Eckpunkt zu der ersten Linie multipliziert wird.
  • Die verschiedenen Informationen am Startpunkt der nächsten Linie können berechnet werden, indem die Neigung der Seite hinzugefügt wird.
  • Der Wert an dem ersten Pixel der horizontalen Linie kann berechnet werden, indem der Wert, der durch Multiplizieren des Abstands zu dem ersten Pixel mit der Neigung in horizontaler Richtung gewonnen wird, zu dem Wert an dem Startpunkt der Linie addiert wird. Der Wert in dem nächsten Pixel der horizontalen Linie kann berechnet werden, indem sukzessiv zu dem ersten Pixelwert die Neigung in horizontaler Richtung addiert wird.
  • Als nächstes wird anhand von 10 das Sortieren der Eckpunkte erläutert.
  • Durch das im voraus erfolgende Sortieren der Eckpunkte kann das Verzweigen der nachfolgenden Verarbeitung auf ein Minimum reduziert werden, und es kann erreicht werden, daß selbst bei der Interpolation innerhalb eines Dreiecks so wenige Widersprüche wie möglich auftreten.
  • Als Verfahren zum Sortieren werden zunächst alle zugeführten Eckpunkte in Y-Richtung sortiert, und der oberste Punkt und der unterste Punkt werden als Punkt A bzw. Punkt C definiert. Der verbleibende Punkt wird als Punkt B definiert.
  • Indem man so verfährt, wird bei der Verarbeitung diejenige Seite; die sich am längsten in Y-Richtung erstreckt, die Seite AC. Zunächst werden die Seite AC und die Seite AB für die Interpolation der Region zwischen den beiden Seiten benutzt, dann wird die Interpolation für die Region zwischen der Seite BC und der Seite AC durchgeführt, d. h. indem man die Seite AC beläßt, wie sie ist, und von der Seite AB aus ändert. Es ist auch zu beachten, daß es ausreicht, für die Korrektur an dem Pixel-Koordinatengitter in Y-Richtung eine Verarbeitung bezüglich der Seite AC und der Seite BC durchzuführen.
  • Da die Verzweigung der Verarbeitung nach dem Sortieren auf diese Weise unnötig wird, kann der Prozeß einfach durchgeführt werden, indem die Daten zugeführt werden, das Auftreten von Fehlern kann verhindert werden, und die Konfiguration wird einfach.
  • Da die Richtung der Interpolation in einem Dreieck konstant gemacht werden kann, indem ein Startpunkt auf der Seite BC festgelegt wird, wird die Interpolationsrichtung (Spanne) in horizontaler Richtung konstant, und irgendwelche auftretenden Rechenfehler werden von der Seite BC zu anderen Seiten akkumuliert. Da die Akkumulationsrichtung konstant wird, werden Fehler zwischen benachbarten Seiten weniger auffällig.
  • Als nächstes wird anhand von 11 die Berechnung der Neigung in horizontaler Richtung erläutert.
  • Die Neigung (Variable) der Variablen (x, y, z, R, G, B, s, t, q) innerhalb eines Dreiecks relativ zu (x, y) wird aufgrund der linearen Interpolation konstant.
  • Deshalb wird die Neigung in horizontaler Richtung, d. h. die Neigung an jeder der horizontalen Linien (Spanne), für alle Spannen konstant, so daß die Neigung vor der Verarbeitung der Spannen gewonnen wird.
  • Als Ergebnis des Sortierens der gegebenen Eckpunkte des Dreiecks in Y-Richtung wird die Seite AC erneut als die Seite definiert, die sich am längsten erstreckt, so daß es immer einen Schnittpunkt zwischen einer von dem Eckpunkt B in horizontaler Richtung verlaufenden Linie und der Seite AC gibt. Dieser Punkt wird als D definiert.
  • Anschließend kann die Neigung in horizontaler Richtung, d. h. in x-Richtung, gewonnen werden, indem man die Änderung zwischen dem Punkt B und dem Punkt D ermittelt.
  • Die x- und z-Koordinaten in dem Punkt D nehmen die in den Gleichungen (1) angegebenen Werte an. xd = {yd – ya)/(yc – ya)}·(xc – xa) zd = {yd – ya)/(yc – ya)}·(zc – za) (1)
  • Wenn auf dieser Basis die Neigung der Variablen z in der x-Richtung gewonnen wird, erhält man: Δz/Δx = (zd – zb)/(xd – xb) = [{yd – ya)/(yc – ya)}·(zc – za) – zb]/[{yd – ya)/(yc – ya)}·(xc – xa) – xb] = {zb(yc – ya) – (zc – za)(yc – ya)}/{xb(yc – ya) – (zc – za)(yc – ya)}
  • Als nächstes wird anhand von 12A, 12B und 13 ein Beispiel für die Routine zur Interpolation von Eckpunktdaten erläutert.
  • Nach der Verarbeitung für das Sortieren der Eckpunkte zum Berechnung der Neigung in horizontaler Richtung und zum Berechnung der Neigung auf jeder der Seiten, wird eine Interpolation durchgeführt, bei der die Ergebnisse benutzt werden.
  • In Abhängigkeit von der Position des Punkts B verzweigt die Verarbeitung an einer Spanne in zwei Richtungen. Dies ist darauf zurückzuführen, daß die Verarbeitung durchgeführt werden soll, indem als Startpunkt immer diejenige Seite benutzt werden soll, die sich am längsten in Y-Richtung erstreckt, um so zu versuchen, Störungen so weit als möglich zu verhindern, indem die Richtung der Fehlerakkumulierung zwischen entsprechenden Spannen bei der Interpolation innerhalb eines Dreiecks konstant gemacht wird.
  • Wenn der Punkt P auf der gleichen Höhe liegt wie der Punkt A, wird die erste Hälfte der Verarbeitung übersprungen. Deshalb kann die Verarbeitung rationalisiert werden, indem man anstelle einer Verzweigung einen Mechanismus vorsieht, der übersprungen werden kann.
  • Wenn man versucht, die Verarbeitungsleistung durch simultanes Verarbeiten mehrerer Spannen zu verbessern, sollte die Neigung in Y-Richtung ermittelt werden, wobei es jedoch notwendig ist, die Verarbeitung von dem Sortieren der Eckpunkte aus erneut durchzuführen. Es genügt jedoch die Verarbeitung vor der Interpolation, so daß das Verarbeitungssystem als Ganzes einfacher wird.
  • Speziell wenn der Punkt B nicht auf der gleichen Höhe liegt wie der Punkt A, wird eine Korrektur der Y-Richtung von AC und AB (Berechnung von Werten in einem Pixelgitter) durchgeführt (ST1 und ST2), und es werden die Interpolation auf der Seite AC und die Interpolation auf der Seite AB durchgeführt (ST3).
  • Dann werden die Korrektur in horizontaler AC-Richtung und die Interpolation auf der horizontalen Linie von der Seite AC in Richtung der Seite AB durchgeführt (ST4).
  • Die obige Verarbeitung der Schritte ST3 und ST4 werden bis zu dem Ende der Seite AB durchgeführt (ST5).
  • Wenn die Bearbeitung der Schritte ST2 bis ST4 bis zu dem Ende der Seite AB fertiggestellt ist oder wenn in dem Schritt ST1 festgestellt wird, daß der Punkt B auf der gleichen Höhe liegt wie der Punkt A, wird die Korrektur der Y-Richtung von BC (Berechnung von Werten in dem Pixelgitter) durchgeführt (ST6), und es werden die Interpolation auf der Seite AC und die Interpolation auf der Seite BC durchgeführt (ST7).
  • Sodann werden die Korrektur in der horizontalen Richtung AC und die Interpolation auf der horizontalen Linie (Spanne) durchgeführt (ST8).
  • Die Verarbeitung der obigen Schritte ST7 und ST8 wird bis zu dem Ende der Seite BC durchgeführt (ST9).
  • Texturmaschinen-Schaltung 143
  • Die Texturmaschinen-Schaltung 143 dient zur Berechnung von "s/q" und "t/q", zur Berechnung der Textur-Koordinatendaten (u, v) und zum Auslesen der (R, G, B)-Daten aus dem Textur-Puffer 147a in einem Pipeline-Format.
  • Es ist zu beachten, daß die Texturmaschinen-Schaltung 143 die Verarbeitung an den 8 Pixeln, die innerhalb eines vorbestimmten Blocks liegen, simultan parallel ausführt.
  • Die Texturmaschinen-Schaltung 143 führt die Operation zum Dividieren der Daten s durch die Daten q und die Operation zum Dividieren der Daten t durch die Daten q an den (s, t, q)-Daten aus, die durch die DDA-Daten S142 angegeben sind.
  • Die Texturmaschinen-Schaltung 143 ist z. B. mit 8 nicht dargestellten Tellerschaltungen ausgestattet und führt die Division "s/q" und "t/q" simultan an den 8 Pixeln aus.
  • Die Texturmaschinen-Schaltung 143 multipliziert außerdem die Texturgrößen USIZE und VSIZE mit den Divisionsergebnissen "s/q" bzw. "t/q", um die Textur-Koordinatendaten (u, v) zu erzeugen.
  • Die Texturmaschinen-Schaltung 143 gibt über die Speicher-I/F-Schaltung 144 eine Leseanforderung an das SRAM 148 oder an das DRAM 147 aus, das die erzeugten Textur-Koordinatendaten (u, v) enthält. Die Texturmaschinen-Schaltung 143 gewinnt die (R, G, B)-Daten S148, die an der den (s, t)-Daten entsprechenden Texturadresse gespeichert sind, indem sie die in dem SRAM 148 oder in dem Textur-Puffer 147a gespeicherten Texturdaten über die Speicher-I/F-Schaltung 144 ausliest.
  • Die in dem Textur-Puffer 147a gespeicherten Texturdaten werden hier in dem SRAM 148 gespeichert, wie dies oben erläutert wurde.
  • Die Texturmaschinen-Schaltung 143 erzeugt Pixeldaten S143, indem sie die (R, G, B)-Daten in den ausgelesenen (R, G, B)-Daten S148 und die in den DDA-Daten S142 aus der Dreieck-DDA-Schaltung 142 enthaltenen (R, G, B)-Daten usw. kombiniert.
  • Die Texturmaschinen-Schaltung 143 gibt die Pixeldaten S143 an die Speicher-I/F-Schaltung 144 aus.
  • Es ist zu beachten, daß in dem Textur-Puffer 147a MIPMAP-Daten (Textur für mehrere Auflösungen) und andere Texturdaten gespeichert sind, die mehreren Reduktionsraten entsprechen. Welche Reduktionsrate der Texturdaten hier benutzt werden sollen, wird in den oben beschriebenen Dreieck-Einheiten festgelegt, wobei ein vorbestimmter Algorithmus benutzt wird.
  • In dem Fall eines Vollfarbmodus, benutzt die Texturmaschinen-Schaltung 143 direkt die aus dem Textur-Puffer 147a ausgelesenen (R, G, B)-Daten.
  • In dem Fall eines Index-Farbmodus liest die Texturmaschinen-Schaltung 143 eine im voraus vorbereitete Farbtabelle (CLUT) aus dem Textur-CLUT-Puffer 147d aus, überträgt und speichert dieselbe in dem eingebauten SRAM und benutzt die Farbtabelle für die Gewinnung der (R, G, B)-Daten, die dem aus dem Textur-Puffer 147a ausgelesenen Farbindex entsprechen.
  • Speicher-I/F-Schaltung 144
  • Die Speicher-IF/-Schaltung 144 vergleicht die z-Daten, die den von der Texturmaschinen-Schaltung 143 eingegebenen Pixeldaten S143 entsprechen, mit den in dem z-Puffer 147c gespeicherten z-Daten und prüft, ob das von den eingegebenen Pixeldaten S143 gezeichnete Bild dem Betrachtungspunkt näher liegt als das beim vorhergehenden mal in den Display-Puffer eingeschriebene Bild. Wenn festgestellt wird, daß das durch die eingegebenen Pixeldaten S143 gezeichnete Bild näher liegt, aktualisiert die Speicher-I/F-Schaltung 144 die in dem z-Puffer 147c gespeicherten z-Daten durch die den Bilddaten S143 entsprechenden z-Daten.
  • Außerdem schreibt die Speicher-I/F-Schaltung 144 die (R, G, B)-Daten in den Display-Puffer 147b.
  • Wenn die Speicher-I/F-Schaltung 144 eine Leseanforderung empfängt, die die erzeugten Textur-Koordinaten (u, v) enthält, liest sie die in dem SRAM 148 gespeicherten (R, G, B)-Daten S148 aus der Texturmaschinen-Schaltung 143 in das SRAM 148 aus.
  • Auch wenn die Speicher-I/F-Schaltung 144 eine Anforderung zum Auslesen von Anzeigedaten aus der CRT-Steuerschaltung 145 empfängt, liest sie als Reaktion auf die Anforderung aus dem Display-Puffer 147b eine bestimmte Menge der Display-Daten, z. B. in Einheiten von 8 Pixeln oder 16 Pixeln, aus.
  • Die Speicher-I/F-Schaltung 144 greift auf diese Weise (schreibend oder lesend) auf das DRAM 147 und auf das SRAM 148 zu, wobei der Schreib-Pfad und ein Lese-Pfad jedoch als separate Pfade strukturiert sind.
  • Beim Schreiben werden nämlich eine Schreibadresse ADRW und Schreibdaten DTW in dem Schreibsystem verarbeitet und in das DRAM 147 eingeschrieben, während beim Lesen die Verarbeitung in dem Lesesystem durchgeführt wird, um aus dem DRAM 147 oder dem SRAM 148 auszulesen.
  • Die Speicher-I/F-Schaltung 144 greift auf der Basis einer vorgegebenen Verschachtelungs-Adressierung z. B. in 16-Pixel-Einheiten auf das DRAM 147 zu.
  • Im folgenden wird anhand von 3 ein Beispiel für eine spezifische Konfiguration der Speicher-I/F-Schaltung 144 erläutert.
  • Die Speicher-I/F-Schaltung 144 umfaßt, wie in 3 dargestellt, einen Verteiler 300, Adressenwandler 310, 320, 330 und 340, Speichersteuerungen 305, 360, 370 und 380 und eine Lesesteuerung 390.
  • Beim Schreiben empfängt der Verteiler 300 als Eingangssignal ein 16-Pixel-Wort an (R, G, B)-Daten DTW und eine Schreibadresse ADRW, unterteilt sie in vier Bilddaten S301, S302, S303 und S304 und gibt die Bilddaten und die Schreibadresse an die Adressenwandler 310, 320, 330 und 340 aus.
  • Die (R, G, B)-Daten für ein Pixel bestehen hier aus 8 Bits, und die z-Daten bestehen aus 32 Bits.
  • Beim Schreiben wandeln die Adressenwandler 310, 320, 330 und 340 die (R, G, B)-Daten und die z-Daten, die von dem Verteiler 300 eingegeben werden, in Adressen der Speichermodule 200, 210, 220 und 230 um und geben die jeweiligen umgewandelten Adressen S310, S320, S330 und S340 und die unterteilten Bilddaten an die Speichersteuerungen 350, 360, 370 und 380 aus.
  • 14 zeigt eine schematische Ansicht der Bilddatenverarbeitung (Pixelverarbeitung) des Verteilers 300.
  • Diese Figur entspricht den obigen 4 bis 7. Der Verteiler 300 führt eine Bilddatenverarbeitung für das DRAM 147 aus, damit auf diese Daten, z. B. 2 × 8 Pixel, d. h. 16 Pixel, simultan zugegriffen werden kann.
  • Dann führt der Verteiler 300 eine Bilddatenverarbeitung durch, um eine Adressierung für den (schreibenden, lesenden) Zugriff auf eine Region mit einer Begrenzung von 8 Pixeln in x-Richtung und einer geraden Anzahl von Begrenzungen in y-Richtung zu liefern.
  • Als Ergebnis wird in dem DRAM 147 das obere Ende des Zugriffs immer eine Speicherzellennummer MCN "0", nicht "1", "2" oder "3", so daß das Auftreten von Seitenverletzungen usw. verhindert werden kann.
  • Der Verteiler 300 führt außerdem eine Bildverarbeitung für die DRAM-Module 220 bis 230 in der Weise durch, daß benachbarte Abschnitte in einer Anzeigeregion in unterschiedlichen DRAM-Modulen angeordnet werden.
  • Dies hat zur Folge, daß beim Zeichnen einer Ebene, z. B. eines Dreiecks, simultane Verarbeitung in der Ebene möglich ist, so daß die Wahrscheinlichkeit, daß die betreffenden DRAM-Module in Betrieb sind, sehr hoch wird.
  • Die Speichersteuerungen 350, 360, 370 und 380 sind mit den Speichermodulen 200, 210, 220 und 230 über eine Verdrahtungsgruppe des Schreibsystems 401W, 402W, 411W, 412W, 421W, 422W, 431W bzw. 432W und eine Verdrahtungsgruppe des Lesesystems 401R, 402R, 411R, 412R, 421R, 422R, 431R bzw. 432R verbunden und steuern beim Schreiben und Lesen den Zugriff auf die Speichermodule 200, 210, 220 und 230.
  • Speziell beim Schreiben werden die Speichersteuerungen 350, 360, 370 und 380 von dem Verteiler 300 beaufschlagt, und die von den Adressenwandlern 350, 360, 370 und 380 zugeführten (R, G, B)-Daten und z-Daten für 4 Pixel werden über die Verdrahtungsgruppe des Schreibsystems 401W, 402W, 411W, 412W, 421W, 422W, 431W und 432W simultan in die Speichermodule 200, 210, 220 und 230 eingeschrieben.
  • Zu dieser Zeit werden z. B. in dem Speichermodul 200 in jeder der Bänke 201A, 201B, 202A und 202B die (R, G, B)-Daten und die z-Daten für 1 Pixel gespeichert. Das gleiche gilt für die Speichermodule 210, 220 und 230.
  • Die Speichersteuerungen 350, 360, 370 und 380 geben Freisignale S350, S360, S370 bzw. S380 als aktiv aus, wenn ihre eigenen Zustandsmaschinen in einem Freizustand sind. Wenn die Speichersteuerungen 350, 360, 370 und 380 als Reaktion auf die Freisignale S350, S360, S370 und S380 Leseadressen und ein Leseanforderungssignal S391 von der Lesesteuerung 390 empfangen, lesen sie über die Verdrahtungsgruppe des Lesesystems 401R, 402R, 411R, 412R, 421R, 422R, 431R und 432R Daten aus und geben diese über die Verdrahtungsgruppe des Lesesystems 351, 361, 371 und 381 und eine Verdrahtungsgruppe 440 an die Lesesteuerung 390 aus.
  • Es ist zu beachten, daß bei diesem Ausführungsbeispiel die Zahl der Drähte der Verdrahtungsgruppe des Schreibsystems 401W, 402W, 411W, 412W, 421W, 422W, 431W und 432W und der Verdrahtungsgruppe des Lesesystems 401R, 402R, 411R, 412R, 421R, 422R, 431R und 432R gleich 128 ist (128 Bit). Die Zahl der Drähte der Verdrahtungsgruppen 351, 361, 371 und 381 des Lesesystems beträgt 256 (256 Bit). Die Zahl der Drähte der Verdrahtungsgruppe 440 des Lesesystems beträgt 1024 (1024 Bit).
  • Die Lesesteuerung 390 besteht aus einem Adressenwandler 391 und einem Datenverarbeitungsteil 392.
  • Wenn der Adressenwandler 391 eine Leseadresse ADRR empfängt und der Adressenwandler 391 alle Freisignale S350, S360, S370 und S380 aus den Speichersteuerungen 350, 360, 370 und 380 als aktiv empfängt, gibt er Leseadressen und ein Leseanforderungssignal S391 an die Speichersteuerungen 350, 360, 370 und 380 aus, um als Reaktion auf die Freisignale S350, S360, S370 und S380 Daten in Einheiten von 8 Pixeln oder 16 Pixeln auszulesen.
  • Der Datenverarbeitungsteil 392 empfängt als Eingangssignal aus den Speichersteuerungen 350, 360, 370 und 380 über die Verdrahtungsgruppe 440 die Texturdaten, die (R, G, B)-Daten, die z-Daten und die Textur-Farbtabellen-Daten in Einheiten von 8 Pixeln oder 16 Pixeln, führt eine vorbestimmte Verarbeitung durch und gibt das Ergebnis an ein gefordertes Ziel aus, z. B. an die Texturmaschinen-Schaltung 143 oder die CRT-Steuerschaltung 145.
  • Wenn alle Speichersteuerungen 350, 360, 370 und 380 in einem Freizustand sind, gibt die Lesesteuerung 390, wie oben erläutert wurde, die Leseadressen und das Leseanforderungssignal S391 an die Speichersteuerungen 350, 360, 370 und 380 aus und empfängt die Lesedaten, so daß sie die Lesedaten synchronisieren kann.
  • Deshalb benötigt die Lesesteuerung keine FIFO-Schaltung (First-in-first-out-Schaltung) oder eine andere Halteschaltung für das temporäre Halten der Daten, so daß der Umfang der Schaltung reduziert werden kann.
  • CRT-Steuerschaltung 145
  • Die CRT-Steuerschaltung 145 erzeugt synchron mit gegebenen horizontalen und vertikalen Synchronisiersignalen eine Adresse für die Anzeige und gibt eine Anforderung zum Auslesen der Anzeigedaten aus dem Display-Puffer 147b an die Speicher-I/F-Schaltung 144 aus. Als Reaktion auf diese Anforderung liest die Speicher-I/F-Schaltung 144 eine gewisse Menge der Anzeigedaten aus dem Display-Puffer 147b aus. Die CRT-Steuerung 145 besitzt eine eingebaute FIFO-Schaltung zum Speichern der aus dem Display-Puffer 147b ausgelesenen Anzeigedaten und gibt in bestimmten Zeitintervallen den RGB-Indexwert an die RAMDAC-Schaltung 146 aus.
  • RAMDAC-Schaltung 146.
  • Die RAMDAC-Schaltung 146 speichert die den betreffenden Indexwerten entsprechenden R-, G-, B-Daten. Sie überträgt R-, G-, B-Daten, die dem Indexwert des RGB-Eingangssignals entsprechen, in einem digitalen Format aus der CRT-Steuerschaltung 145 zu einem nicht dargestellten Digital-/Analog-(D/A)-Wandler, um R-, G-, B-Daten in einem analogen Format zu erzeugen. Die RAMDAC-Schaltung 146 gibt die erzeugten R-, G-, B-Daten an die CRT aus.
  • Als nächstes wird die der oben beschriebenen Konfiguration entsprechende Funktion erläutert.
  • In dem dreidimensionalen Computer-Graphiksystem 10 werden Daten zum Zeichnen von Graphiken usw. aus dem Hauptspeicher 12 des Hauptprozessors 11 oder von der I/O-Interfaceschaltung 13, die Graphikdaten von außerhalb empfängt, über den Hauptbus 15 der Rendering-Schaltung 14 zugeführt.
  • Es ist zu beachten, daß die Daten zum Zeichnen von Graphiken usw. je nach Bedarf einer Koordinatenumwandlung, Beschneidungs-, Beleuchtungs- und anderen geometrischen Verarbeitungen in dem Hauptprozessor 11 usw. unterzogen werden.
  • Nach der geometrischen Verarbeitung werden die graphischen Daten zu Polygon-Rendering-Daten S11, die aus den Koordinaten x, y, z der betreffenden drei Eckpunkte eines Dreiecks, den Luminanzwerten R, G, B, den Textur-Koordinaten s, t, q, usw. bestehen, die dem zu zeichnenden Pixel entsprechen.
  • Die Polygon-Rendering-Daten S11 werden der DDA-Setup-Schaltung 141 der Rendering-Schaltung 14 zugeführt.
  • In der DDA-Setup-Schaltung 141 werden auf der Basis der Polygon-Rendering-Daten S11 Änderungsdaten S141 erzeugt, die die Differenz einer Seite des Dreiecks gegenüber der horizontalen Richtung usw. angeben. Die Änderung, d. h. die Größe der Änderung der zu gewinnenden Werte bei einer Bewegung um eine Einheitslänge, wird berechnet, wobei der Startpunkt, der Endpunkt und der Abstand zwischen den beiden benutzt wird, und als Änderungsdaten S141 an die Dreieck-DDA-Schaltung 142 ausgegeben.
  • In der Dreieck-DDA-Schaltung 142 werden die Anderungsdaten S141 für die Berechnung der linear interpolierten Daten (z, R, G, B, s, t, q) jedes Pixels innerhalb des Dreiecks benutzt.
  • Die berechneten Daten (z, R, G, B, s, t, q) und die (x, y)-Daten jedes Eckpunkts des Dreiecks werden dann von der Dreieck-DDA-Schaltung 142 als DDA-Daten S142 an die Texturmaschinen-Schaltung 143 ausgegeben.
  • Die Texturmaschinen-Schaltung 143 führt für die durch die DDA-Daten S142 bezeichneten (s, t, q)-Daten die Operationen durch, um die Daten s durch die Daten q und die der Daten t durch die Daten q zu dividieren. Dann werden die Texturgrößen USIZE und VSIZE mit den Divisionsergebnissen "s/q" bzw. "t/q" multipliziert, um die Textur-Koordinatendaten (u, v) zu erzeugen.
  • Als nächstes gibt die Texturmaschinen-Schaltung 143 an die Speicher-I/F-Schaltung 144 eine Leseanforderung aus, die die erzeugten Textur-Koordinatendaten (u, v) enthält. Dann werden die in dem SRAM 148 gespeicherten (R, G, B)-Daten S148 über die Speicher-I/F-Schaltung 144 ausgelesen.
  • Als nächstes kombiniert die Texturmaschinen-Schaltung 143 die (R, G, B)-Daten in den ausgelesenen (R, G, B)-Daten S148 und die in den DDA-Daten S142 aus der Dreieck-DDA-Schaltung 142 in der vorangehenden Stufe enthaltenen (R, G, B)-Daten, um die Pixeldaten S143 zu erzeugen.
  • Diese Pixeldaten S143 werden von der Texturmaschinen-Schaltung 143 an die Hauptspeicher-I/F-Schaltung 144 ausgegeben. Im Falle eines Vollfarbmodus können die aus dem Textur-Puffer 147a ausgelesenen (R, G, B)-Daten direkt benutzt werden, während im Fall eines Index-Farbmodus Daten der vorbereiteten Farbtabelle (CLUT) aus dem Textur-CLUT-Puffer 147d in einen Puffer zur temporären Speicherung übertragen werden, der aus einem SRAM usw. besteht. Durch die Benutzung der CLUT des temporären Speicherpuffers lassen sich aus dem Farbindex die tatsächlichen R-, G-, B-Farben gewinnen.
  • Wenn die CLUT aus einem SRAM besteht, werden die tatsächlichen R-, G-, B-Farben ausgegeben, wenn an einer Adresse des SRAMs ein Farbindex eingegeben wird.
  • In der Speicher-I/F-Schaltung 144 werden die den von der Texturmaschinen-Schaltung 143 zugeführten Pixeldaten S143 entsprechenden z-Daten und die in dem z-Puffer 147c gespeicherten z-Daten miteinander verglichen, um zu prüfen, ob das mit den eingegebenen Pixeldaten S143 gezeichnete Bild dem Betrachtungspunkt näher liegt als das beim vorherigen mal in den Display-Puffer eingeschriebene Bild.
  • Wenn festgestellt wird, daß das durch die eingegebenen Pixeldaten S143 gezeichnete Bild näher liegt, werden die in dem Puffer 147c gespeicherten z-Daten durch die den Bilddaten S143 entsprechenden z-Daten ersetzt.
  • Als nächstes werden in der Speicher-I/F-Schaltung 144 die (R, G, B)-Daten in den Display-Puffer 147b eingeschrieben.
  • Die einzuschreibenden (einschließlich der aktualisierten) Daten werden den Speichersteuerungen 350, 360, 370 und 380 über den Verteiler 300 und die Adressendekodierer (310, 320, 330 und 340 zugeführt, die Schreibsystemschaltungen bilden, und von den Speichersteuerungen 350, 360, 370 und 380 über die Verdrahtungsgruppen des Schreibsystems 401W, 402W, 411W, 412W, 421W, 422W, 431W und 432W parallel in vorbestimmte Speicher eingeschrieben.
  • In der Speicher-I/F-Schaltung 144 wird der Speicherblock, der die der Texturadresse des zu zeichnenden Pixels entsprechende Textur speichert, aus der Texturadresse berechnet, wobei eine Leseanforderung nur für diesen Speicherblock erzeugt wird, und die Texturdaten werden ausgelesen.
  • Da in diesem Fall kein Zugriff zum Auslesen einer Textur in Speicherblöcken vorliegt, in denen die entsprechende Textur nicht gespeichert ist, ist es möglich, mehr Zeit für den Zugriff für das Zeichnen vorzusehen.
  • In der gleichen Weise wird für das Zeichnen auf einen Speicherblock zugegriffen, der Pixeldaten speichert, die einer zu zeichnenden Pixeladresse entsprechen, um die Pixeldaten aus der entsprechenden Adresse zum Modifizieren des Schreibens auszulesen, die Daten werden modifiziert und dann an die gleiche Adresse zurückgeschrieben.
  • Wenn eine Verarbeitung einer verdeckten Ebene durchgeführt wird, wird wiederum in der gleichen Weise auf einen Speicherblock zugegriffen, der Tiefendaten speichert, die einer zu zeichnenden Pixeladresse entsprechen, um die Tiefendaten aus der entsprechenden Adresse zum Modifizieren des Schreibens auszulesen, die Daten werden modifiziert und dann an die gleiche Adresse zurückgeschrieben.
  • Bei einem solchen Datentransfer mit dem DRAM 147 auf der Basis der Speicher-I/F-Schaltung 144 kann die Zeichenleistung verbessert werden, indem die Verarbeitung bis hierher parallel durchgeführt wird.
  • Durch das Mittel einer partiellen Vergrößerung der Betriebsfrequenz kann speziell eine Mehrzahl von Pixeln simultan berechnet werden, indem man die Dreieck-DDA-Schaltung 142 und die Texturmaschinen-Schaltung 143 in der gleichen Schaltung in einem parallelen Ausführungsmodus anordnet (räumlich parallel) oder indem man einige Pipelines einfügt (zeitlich parallel).
  • Außerdem werden unter dem Steuereinfluß der Speicher-I/F-Schaltung 144 die Pixeldaten so angeordnet, daß die benachbarten Abschnitte in der Anzeigeregion in verschiedenen Modulen liegen.
  • Dadurch wird die Verarbeitung simultan in einer Ebene durchgeführt, wenn eine Ebene, wie ein Dreieck, gezeichnet wird. Deshalb ist die Wahrscheinlichkeit, daß die jeweiligen DRAM-Module in Betrieb sind, sehr hoch.
  • Wenn auf einer nicht dargestellten CRT ein Bild angezeigt wird, erzeugt die CRT-Steuerschaltung 145 die Anzeigeadresse synchron mit den gegebenen horizontalen und vertikalen Synchronisierfrequenzen, und es wird eine Anforderung zur Übertragung der Anzeigedaten zu der Speicher-I/F-Schaltung 144 gesendet.
  • In der Speicher-I/F-Schaltung 144 wird nach Maßgabe der Anforderung eine bestimmte Menge der Anzeigedaten zu der CRT-Steuerschaltung 145 übertragen.
  • In der CRT-Steuerschaltung 145 werden die Anzeigedaten in einem nicht dargestellten FIFO für Anzeigezwecke usw. gespeichert, und die RGB-Indexwerte werden in bestimmten Intervallen zu dem RAMDAC 146 übertragen.
  • Wenn an die Speicher-I/F-Schaltung 144 eine Anforderung zum Auslesen von in dem DRAM 147 oder in dem SRAM 148 gespeicherten Daten gerichtet wird, wie dies oben erläutert wurde, wird die Leseadresse ADRR dem Adressenwandler 391 der Lesesteuerung 390 zugeführt.
  • Dabei prüft der Adressenwandler 391, ob die Adressensignale S350, S360, S370 und S380 aus den Speichersteuerungen 350, 360, 370 und 380 als aktiv eingegeben werden. Wenn alle Adressensignale S350, S360, S370 und S380 als aktiv eingegeben werden, werden die Leseadressen und das Leseanforderungssignal S391 an die betreffenden Speichersteuerungen 350, 360, 370 und 380 ausgegeben, um als Reaktion auf die Adressensignale S350, S360, S370 und S380 Daten in Einheiten von 8 Pixeln oder 16 Pixeln auszulesen.
  • Durch den Empfang der Leseadressen und des Leseanforderungssignals S391 werden die Texturdaten, die (R, G, B)-Daten, die z-Daten und die Textur-Farbtabellen-Daten über die Verdrahtungsgruppen 401R, 402R, 411R, 412R, 421R, 422R, 431R und 432R des Lesesystems in den Speichersteuerungen 350, 360, 370 und 380 in Einheiten von 8 Pixeln oder 16 Pixeln parallel ausgelesen und dann über die Verdrahtungsgruppen 351, 361, 371 und 381 des Lesesystems und die Verdrahtungsgruppe 440 dem Datenverarbeitungsteil 392 zugeführt.
  • Dann führt der Datenverarbeitungsteil 392 die vorbestimmte Verarbeitung durch, und das Ergebnis wird an das geforderte Ziel, z. B. die Texturmaschinen-Schaltung 143 oder die CRT-Steuerschaltung 145, ausgegeben.
  • In der RAMDAC-Schaltung 146 sind für RGB-Indizes RGB-Werte in dem RAM gespeichert, und die auf die Indexwerte bezogenen RGB-Werte werden zu einem nicht dargestellten D/A-Wandler übertragen.
  • Das von dem D/A-Wandler in ein analoges Signal umgewandelte RGB-Signal wird dann der CRT zugeführt.
  • Da das eingebaute DRAM 147 in einem Halbleiterchip erfindungsgemäß, wie oben erläutert wurde, so konfiguriert ist, daß es die von wenigstens einem graphischen Element benötigten Anzeigedaten und die Texturdaten speichert, können die Texturdaten in anderen Abschnitten als den Anzeigeregionen gespeichert werden. Deshalb kann das eingebaute DRAM effizient genutzt werden, und es läßt sich ein Bildverarbeitungsgerät herstellen, das sowohl einen sehr schnellen Betrieb als auch einen geringeren Stromverbrauch ermöglicht.
  • Es kann weiterhin ein einziges Speichersystem realisiert werden, innerhalb dessen die gesamte Verarbeitung durchgeführt werden kann. Daraus resultiert auch ein großer Paradigmenwandel bezüglich der Architektur.
  • Da der Speicher effizient genutzt werden kann, kann die Verarbeitung von dem darin enthaltenen DRAM alleinn ausgeführt werden. Deshalb kann die große Bandbreite zwischen dem Speicher und dem Zeichensystem, die sich durch die interne Anordnung ergibt, ausreichend genutzt werden. Außerdem wird es möglich, in dem DRAM eine spezifische Verarbeitung zu installieren.
  • Indem man in der Speicherschaltung identische Funktionen parallel als eine Mehrzahl von unabhängigen Modulen vorsieht, wird die Effizienz von parallelen Operationen verbessert. Wenn die Bitzahl der Daten einfach groß ist, wird die Effizienz der Datennutzung beein trächtigt, und die Leistungsverbesserung ist auf unter gewissen Bedingungen auftretende Fälle beschränkt. Um die mittlere Leistung zu verbessern, können Bitleitungen effizient genutzt werden, indem man mehrere Module vorsieht, die gewisse Funktionsgrade aufweisen.
  • Weiterhin wird eine effiziente Nutzung der Bitleitungen möglich, indem man die Anzeigeelemente an benachbarten Adressen so anordnet, daß sie in dem Anzeigeadressenraum in voneinander verschiedenen Blöcken des DRAMs liegen. Wenn häufige Zugriffe auf relativ feste Anzeigeregionen erfolgen, wie dies beim Zeichnen von Graphiken der Fall ist, wächst die Wahrscheinlichkeit, daß die Module eine simultane Verarbeitung ausführen können, und die Zeichenleistung kann verbessert werden.
  • Da in dem eingebauten DRAM 147 Indizes von Indexfarben und Werte einer Farbtabelle gespeichert sind, um mehr Texturdaten zu speichern, können die Texturdaten komprimiert werden, und das eingebaute DRAM kann effizient genutzt werden.
  • Da in dem eingebauten DRAM die Tiefeninformation eines zu zeichnenden Objekts gespeichert ist, kann simultan und parallel zu dem Zeichnen eine Verarbeitung verdeckter Ebenen durchgeführt werden.
  • Normalerweise sollte das gezeichnete Bild angezeigt werden, da es jedoch möglich ist, die Texturdaten und die Anzeigedaten zusammen als einheitlichen Speicher in dem gleichen Speichersystem zu speichern, können die Zeichnungsdaten als Texturdaten benutzt werden, statt sie für die direkte Anzeige zu benutzen.
  • Dies ist wirksam, wenn die benötigten Texturdaten im Bedarfsfall durch Zeichnen hergestellt werden. Auch dies ist eine wirksame Funktion, um zu verhindern, daß die Menge der Texturdaten anschwillt.
  • Durch das Anordnen des DRAMs innerhalb des Chips wird der Hochgeschwindigkeits-Interfaceteil innerhalb des Chips realisiert, so daß es nicht mehr notwendig ist, einen I/O-Puffer anzusteuern, der eine große zusätzliche Kapazität oder eine Verdrahtungskapazität zwischen den Chips aufweist. Deshalb kann der Stromverbrauch gegenüber dem Nicht-Einbau-Fall reduziert werden.
  • Dementsprechend wird eine Einrichtung, die die verschiedenartigen Techniken benutzt, um alles in einem einzigen Chip unterbringen zu können, ein wesentliches technisches Element für zukünftige digitale Geräte, wie tragbare Datenendgeräte.
  • Die vorliegende Erfindung ist nicht auf die oben beschriebenen Ausführungsbeispiele beschränkt.
  • Mit dem in 1 dargestellten dreidimensionalen Computer-Graphiksystem 10 wurde ein Beispiel für eine Konfiguration vorgestellt, die ein SRAM 148 benutzt, sie kann jedoch ebenso gut auch ohne das SRAM 148 realisiert werden.
  • Weiterhin wurde mit dem in 1 dargestellten dreidimensionalen Computer-Graphiksystem 10 ein Beispiel vorgestellt, bei dem die geometrische Verarbeitung zur Erzeugung der Polygon-Rendering-Daten in dem Hauptprozessor 11 durchgeführt wurde; die Verarbeitung kann jedoch auch in der Rendering-Schaltung 14 ausgeführt werden.
  • Da die zusammen mit der Logikschaltung in einem Halbleiterchip angeordnete Speicherschaltung erfindungsgemäß, wie oben erläutert wurde, so konfiguriert ist, daß sie die Anzeigedaten und die Texturdaten speichert, die von wenigstens einem graphischen Element benötigt werden, können die Texturdaten in anderen Teilen als den Anzeigeregionen gespeichert werden, so daß die eingebaute Speicherschaltung effizient genutzt werden kann und ein Bildverarbeitungsgerät realisiert werden kann, das sowohl einen sehr schnellen Betrieb als auch geringeren Stromverbrauch ermöglicht.
  • Es kann weiterhin ein einziges Speichersystem realisiert werden, innerhalb dessen die gesamte Verarbeitung durchgeführt werden kann. Daraus ergibt sich auch ein großer Paradigmenwandel bezüglich der Architektur.
  • Da der Speicher effizient genutzt werden kann, kann die Verarbeitung von dem darin enthaltenen Speicher allein ausgeführt werden. Deshalb kann die große Bandbreite zwischen dem Speicher und dem Zeichensystem, die sich durch die interne Anordnung ergibt, ausreichend genutzt werden. Außerdem wird es möglich, in dem Speicher eine spezifische Verarbeitung zu installieren.
  • Indem man in der Speicherschaltung identische Funktionen als eine Mehrzahl von unabhängigen Modulen vorsieht, wird die Effizienz von parallelen Operationen verbessert.
  • Da die Anzeigeelemente an benachbarten Adressen so angeordnet sind, daß sie in voneinander verschiedenen Speicherblöcken in dem Anzeige-Adressenraum liegen, wächst die Wahrscheinlichkeit, daß die betreffenden Module die Verarbeitung simultan ausführen können, so daß die Zeichenleistung verbessert werden kann, wenn, wie beim Zeichnen von Graphiken, häufige Zugriffe auf relativ feste Anzeigeregionen stattfinden.
  • Da innerhalb des eingebauten Speichers Indizes von Indexfarben und Werte einer Farbtabelle hierfür gespeichert werden, um mehr Texturdaten zu speichern, können die Texturdaten komprimiert werden, und der eingebaute Speicher kann effizient genutzt werden.
  • Da auch die Tiefeninformation eines zu zeichnenden Objekts in dem eingebauten Speicher gespeichert wird, kann simultan und parallel zu dem Zeichnen die Verarbeitung verdeckter Ebenen durchgeführt werden.
  • Da es möglich ist, die Texturdaten und die Anzeigedaten als einheitlichen Speicher zusammen in dem gleichen Speichersystem zu speichern, können die Zeichnungsdaten als Texturdaten benutzt werden, statt sie für die direkte Anzeige zu benutzen.
  • Durch das Anordnen des Speichers innerhalb des Chips wird der Hochgeschwindigkeits-Interfaceteil allein innerhalb des Chips realisiert, so daß es nicht mehr notwendig ist, einen I/O-Puffer anzusteuern, der eine große zusätzliche Kapazität oder eine Verdrahtungskapazität zwischen den Chips aufweist. Deshalb kann der Stromverbrauch gegenüber dem Nicht-Einbau-Fall reduziert werden.
  • Die Erfindung wurde vorangehend anhand eines spezifischen Ausführungsbeispiels beschrieben, das zum Zwecke der Erläuterung gewählt wurde. Es ist jedoch offensichtlich, daß der einschlägige Fachmann zahlreiche Modifizierungen daran vornehmen kann, ohne daß das Grundkonzept und der Rahmen der Erfindung verlassen wird, der durch die anliegenden Ansprüche definiert ist.

Claims (5)

  1. Bildverarbeitungsgerät mit einer Speicherschaltung (147) zum Speichern von Anzeigedaten und Texturdaten, die von wenigstens einem grafischen Element benötigt werden, wobei die Anzeigeelemente in einem Anzeigeadressenraum an benachbarten Adressen angeordnet sind, damit sie in der Speicherschaltung (147) in verschiedenen Speicherblöcken liegen, um die Wahrscheinlichkeit einer simultanen Verarbeitung zu erhöhen, und mit einer Logikschaltung (141, 142, 143) für die Durchführung einer Verarbeitung zum Anwenden der Texturdaten auf die Oberfläche des grafischen Elements der Anzeigedaten auf der Basis der gespeicherten Daten der Speicherschaltung, wobei die Speicherschaltung und die Logikschaltung beide in einem Halbleiterchip (14) untergebracht sind.
  2. Bildverarbeitungsgerät nach Anspruch 1, bei dem die Logikschaltung aufweist: eine Interpolationsdaten-Generatorschaltung (142) zum Interpolieren von Polygon-Rendering-Daten von Eckpunkten einer Einheitsgrafik, um Interpolationsdaten von innerhalb der Einheitsgrafik liegenden Pixeln zu erzeugen, und eine Textur-Verarbeitungsschaltung (143) zum Dividieren von homogenen Koordinaten (s, t) einer in den Interpolationsdaten enthaltenen Textur durch einen homogenen Term q, um (s/q) und (t/q) zu erzeugen, wobei eine (s/q) und (t/q) entsprechende Texturadresse benutzt wird, um Texturdaten aus der Speicherschaltung auszulesen und die Texturdaten auf die Oberfläche des grafischen Elements der Anzeigedaten anzuwenden.
  3. Bildverarbeitungsgerät nach Anspruch 1 oder 2, bei dem die Speicherschaltung (147) in mehrere Module (200, 210, 220, 230) mit identischen Funktionen unterteilt ist und die Logikschaltung auf die Module (200, 210, 220, 230) parallel zugreift.
  4. Bildverarbeitungsgerät nach Anspruch 1 oder 2, bei dem in der Speicherschaltung (147) für die Bezugnahme auf Farben Indizes in Indexfarben und -werten einer Farbtabelle gespeichert sind.
  5. Bildverarbeitungsgerät nach Anspruch 1 oder 2, bei dem eine Information über die Tiefe eines zu zeichnenden Objekts in der Speicherschaltung (147) gespeichert ist.
DE1999614814 1998-03-04 1999-03-04 Bildverarbeitungsgerät Expired - Lifetime DE69914814T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP5201798 1998-03-04
JP5201798 1998-03-04
JP1652999 1999-01-26
JP01652999A JP4314655B2 (ja) 1998-03-04 1999-01-26 画像処理装置

Publications (2)

Publication Number Publication Date
DE69914814D1 DE69914814D1 (de) 2004-03-25
DE69914814T2 true DE69914814T2 (de) 2005-01-13

Family

ID=26352883

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999614814 Expired - Lifetime DE69914814T2 (de) 1998-03-04 1999-03-04 Bildverarbeitungsgerät

Country Status (5)

Country Link
US (1) US6803918B1 (de)
EP (1) EP0940772B1 (de)
JP (1) JP4314655B2 (de)
CA (1) CA2264400C (de)
DE (1) DE69914814T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055969A1 (fr) * 2000-01-28 2001-08-02 Namco Ltd. Systeme de jeu et procede de creation d'image
US7002591B1 (en) * 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
JP4530314B2 (ja) * 2000-09-20 2010-08-25 株式会社バンダイナムコゲームス ゲームシステム、情報記憶媒体及び圧縮データの生成方法
JP3747859B2 (ja) * 2002-02-06 2006-02-22 ソニー株式会社 画像処理装置およびその方法
JP4976520B2 (ja) 2010-04-09 2012-07-18 株式会社ソニー・コンピュータエンタテインメント 情報処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450342A (en) * 1984-10-05 1995-09-12 Hitachi, Ltd. Memory device
US5230039A (en) 1991-02-19 1993-07-20 Silicon Graphics, Inc. Texture range controls for improved texture mapping
US5548709A (en) * 1994-03-07 1996-08-20 Silicon Graphics, Inc. Apparatus and method for integrating texture memory and interpolation logic in a computer system
US5821919A (en) * 1994-04-29 1998-10-13 Intel Corporation Apparatus for table-driven conversion of pixels from YVU to RGB format
US6359624B1 (en) 1996-02-02 2002-03-19 Kabushiki Kaisha Toshiba Apparatus having graphic processor for high speed performance
JPH09270024A (ja) 1996-02-02 1997-10-14 Toshiba Corp 情報処理装置
JP3645024B2 (ja) 1996-02-06 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 描画装置及び描画方法
KR20000064680A (ko) 1996-03-21 2000-11-06 가나이 쓰도무 Dram내장데이타처리장치
US5877780A (en) * 1996-08-08 1999-03-02 Lu; Hsuehchung Shelton Semiconductor chip having multiple independent memory sections, at least one of which includes simultaneously accessible arrays
US6097403A (en) * 1998-03-02 2000-08-01 Advanced Micro Devices, Inc. Memory including logic for operating upon graphics primitives

Also Published As

Publication number Publication date
EP0940772A3 (de) 1999-12-29
JPH11316856A (ja) 1999-11-16
EP0940772B1 (de) 2004-02-18
EP0940772A2 (de) 1999-09-08
JP4314655B2 (ja) 2009-08-19
CA2264400A1 (en) 1999-09-04
DE69914814D1 (de) 2004-03-25
CA2264400C (en) 2010-01-19
US6803918B1 (en) 2004-10-12

Similar Documents

Publication Publication Date Title
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE69422324T2 (de) Speicherarchitektur mit Fenstern zum Bildkompilieren
DE3852989T2 (de) Software-konfigurierbarer Speicher für ein Datenverarbeitungssystem mit graphischer Tätigkeit.
DE69735975T2 (de) System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern
EP0038411B1 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE3750211T2 (de) Bildanzeigeverarbeitungseinheit für ein graphisches Endgerät.
DE3636394C2 (de) Einrichtung und Verfahren zur Speicherorganisation
DE3751720T2 (de) Schaltung für die bildschirmwiedergabe von computern
DE69122226T2 (de) Verfahren und Einrichtung zur Zugriffsanordnung eines VRAM zum beschleunigten Schreiben von vertikalen Linien auf einer Anzeige
DE3804938C2 (de) Bildverarbeitungseinrichtung
DE69633477T2 (de) Bildspeicher für graphische Daten
DE60310720T2 (de) Verfahren und vorrichtung zur kodierung von texturinformation
DE60105510T2 (de) Bilderzeugungsgerät
DE2525155C2 (de) Anordnung zur computergesteuerten Rasterpunktdarstellung von codierter, Liniensegmente bezeichnender Vektorinformation als eine Folge von X/Y Koordinatenwerten
DE69521357T2 (de) Bildverarbeitungsgerät
DE69029987T2 (de) Verfahren und Gerät zur parallelen Wiedergabe von Polygonen und Pixeln
DE102006022062A1 (de) Verfahren und Vorrichtung zur effizienten Bilddrehung
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE69624866T2 (de) Speicherschaltung für Texturmuster
DE68925854T2 (de) Anzeigesteuergerät zum Konvertieren mittels Hardware von CRT-Auflösung in Plasmaanzeigetafel-Auflösung
DE68925569T2 (de) Dynamischer Video-RAM-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition