DE3851680T2 - Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind. - Google Patents

Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind.

Info

Publication number
DE3851680T2
DE3851680T2 DE3851680T DE3851680T DE3851680T2 DE 3851680 T2 DE3851680 T2 DE 3851680T2 DE 3851680 T DE3851680 T DE 3851680T DE 3851680 T DE3851680 T DE 3851680T DE 3851680 T2 DE3851680 T2 DE 3851680T2
Authority
DE
Germany
Prior art keywords
ram
depth
color
pixel
input
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 - Fee Related
Application number
DE3851680T
Other languages
English (en)
Other versions
DE3851680D1 (de
Inventor
Paul Anthony Winser
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Application granted granted Critical
Publication of DE3851680D1 publication Critical patent/DE3851680D1/de
Publication of DE3851680T2 publication Critical patent/DE3851680T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Color Image Communication Systems (AREA)

Description

  • Die Erfindung bezieht sich auf eine Vorrichtung zur Veränderung von in einem Speicher mit wahlfreiem Zugriff (RAM) gespeicherten Daten, wobei die Daten einer oder mehreren Zeilen aus Pixeln eines gespeicherten Bildes entsprechen, der Speicher ein Farb-RAM zur Speicherung eines Farbwertes für jedes Pixel und ein Tiefen-RAM zur Speicherung eines Tiefenwertes für jedes Pixel umfaßt und die Vorrichtung folgendes umfaßt:
  • - Mittel zum Empfang von Eingangsdaten, die Adressen, Farbwerte und Tiefenwerte für eine Folge von Pixeln definieren;
  • - Mittel zur abwechselnden Selektion jedes Pixels in der Folge und zur synchronen Erzeugung von aufeinanderfolgenden Adressen, Eingangsfarbwerten und Eingangstiefenwerten;
  • - Mittel zur Zuführung der Adresse jedes selektierten Pixels zu Adreßeingängen des Tiefen-RAMs und des Farb-RAMs;
  • - Mittel zum Auslesen des gegenwartigen Tiefenwertes für jedes selektierte Pixel aus dem Tiefen-RAM;
  • - Mittel zum Vergleich des gegenwartigen Tiefenwertes mit dem Tiefenwert für jedes selektierte Pixel;
  • - Mittel zum Schreiben der Eingangstiefenwerte für jedes selektierte Pixel in den adressierten Speicherplatz des Tiefen-RAMs und zum Schreiben der Eingangsfarbwerte in den adressierten Speicherplatz des Farb-RAMs, wobei die genannten Mittel auf ein Ausgangssignal der Vergleichsmittel ansprechen, um das Schreiben des Eingangsfarbwertes in das Farb-RAM und des Eingangstiefenwertes in das Tiefen-RAM zu ermöglichen, um einen neuen Farbwert und einen neuen Tiefenwert für ein gegebenes selektiertes Pixel zu definieren, wenn der Eingangstiefenwert eine geringere Tiefe aufweist als der gegenwärtige Tiefenwert für dieses Pixel.
  • Die Erfindung bezieht sich weiterhin auf ein elektronisches Grafiksystem, das eine solche Vorrichtung enthält.
  • Eine Vorrichtung der eingangs genannten Art ist aus der elektronischen Grafikerzeugung bekannt und wird zur Durchführung von Entfernung verdeckter Oberflächen ("hidden surface removal", HSR) für die zweidimensionale Wiedergabe von dreidimensionalen Objekte repräsentierenden Daten verwendet. Die Vorrichtung verwendet einen "Tiefen-Puffer"- oder "z-Puffer"-Algorithmus, wie er beispielsweise in "Principles of Interactive Computer Graphics" von W. M. Newman und R. F. Sproul auf den Seiten 369 bis 371 und in der EP-A-180385 beschrieben ist.
  • Dreidimensionale Modelle werden erstellt und gespeichert, beispielsweise in einem Computer, und dann in zweidimensionale Farbinformationen zur Speicherung in einem RAM oder Einzelbildpuffer scan-konvertiert. Nachdem alle wiederzugebenden Objekte konvertiert worden sind, wird der Einzelbildpuffer (Farb-RAM) entsprechend einem Rasterscan-Muster ausgelesen, um eine Wiedergabevorrichtung wie eine Kathodenstrahlröhre (CRT) anzusteuern. Wenn die dreidimensionalen Objekte nicht konvertiert und streng nach abnehmender Tiefe geordnet in die wiederzugebende Szene gespeichert sind, ist Entfernung verdeckter Oberflächen (HSR) erforderlich, um dafür zu sorgen, daß Objekte im Vordergrund im Farb-RAM nicht von Objekten überschrieben werden, die im Hintergrund sein sollen, aber später konvertiert werden.
  • Im z-Puffer HSR ist ein zusätzlicher Speicher (z-RAM) vorgesehen, um momentane Tiefenwerte für jedes im Farb-RAM gespeicherte Pixel zu speichern, so daß eintreffende Objektdaten verglichen werden können, um festzustellen, ob sie sich vor (sichtbar) oder hinter (unsichtbar) irgendwelchen bereits an dieser Pixel-Stelle aufgetragenen Objekten befinden. Nur wenn das eintreffende Objekt sichtbar ist, werden die alten Farbdaten überschrieben, und selbstverständlich wird der Eingangstiefenwert zum neuen momentanen Tiefenwert.
  • Ein solcher Algorithmus kann natürlich in Computer-Software implementiert werden, für Hochgeschwindigkeitsbetrieb ist es im allgemeinen jedoch notwendig, die HSR zum Zeitpunkt der Scan-Konvertierung hardwaremäßig durchzuführen.
  • Abgesehen von dem zusätzlich benötigten Speicher für den z-Puffer (was mit neuen preiswerten Halbleiterspeicherchips mit hoher Packungsdichte allerdings ein kleiner werdendes Problem ist), hat der z-Puffer den Nachteil, daß die Geschwindigkeit, mit der Pixel-Daten geschrieben werden können, verlangsamt wird. Dies liegt daran, daß anstatt jeden Pixel-Farbwert einfach so zu schreiben, wie er zugeführt wird, die HSR-Hardware (i) den momentanen z-Wert lesen muß, (ii) die z-Werte vergleichen muß und erst dann (iii) eventuell den neuen z-Wert und den neuen Farbwert schreibt. Jeder Speicherzyklus (i) und (iii) nimmt ebenso wie das Vergleichen (ii) eine endliche Zeit in Anspruch.
  • Es ist eine Aufgabe der Erfindung, die Verschaffung einer Vorrichtung zur Implementierung von Entfernung verdeckter Oberflächen zu ermöglichen, wodurch das Erreichen einer schnelleren Pixel-Schreibrate möglich wird.
  • Eine Art, diese Aufgabe zu lösen, wäre die Verwendung schnellerer Speicher, schnellere Speicher sind jedoch selbstverständlich teurer, und die Typen schneller Speicher, wie sie beispielsweise in militärischen und großen industrieelektronischen grafischen Anwendungen verwendet werden, sind für die Verwendung in vielen Anwendungsfeldern zu teuer.
  • Es ist eine weitere Aufgabe der Erfindung, die Verschaffung einer Vorrichtung der obengenannten Art zu Preisen, die mit Verbraucheranwendungen und Anwendungen für kleinere Unternehmen vereinbar sind, zu ermöglichen.
  • Die Erfindung verschafft eine Vorrichtung der eingangs genannten Art, die dadurch gekennzeichnet ist, daß das Tiefen-RAM ein Haupt-Array mit wahlfreiem Zugriff und einen Speicher mit seriellem Zugriff umfaßt, und daß die Vorrichtung außerdem auf die Eingangsdaten reagierende Mittel zur Übertragung der Tiefenwerte für alle Pixel in der Folge aus dem Haupt-Array des Tiefen-RAMs in den Speicher mit seriellem Zugriff des Tiefen-RAMs umfaßt, so daß es beim Betrieb, während die Eingangswerte für die gegebenen Pixel in das Farb-RAM und das Tiefen-RAM geschrieben werden, den Mitteln zum Lesen des momentanen Tiefenwertes ermöglicht wird, den momentanen Tiefenwert eines nachfolgenden Pixels in der Folge aus einem Ausgang des Speichers mit seriellem Zugriff zu lesen.
  • Durch Überlappung der Durchführung der Lesevoperation mit der der Schreiboperation für ein vorangegangenes Pixel kann die zur Durchführung des Verfahrens benötigte Zeit im Durchschnitt kürzer gemacht werden als die Gesamtheit der Zeiten, die zur Durchführung der einzelnen Schritte des Verfahrens für jedes Pixel in der Folge benötigt wird. Dem liegt die Einsicht zugrunde, daß für die große Mehrheit der Eingangs-Pixel vorausgesagt werden kann, welches die Adresse für das nächste oder die nächsten Pixel sein wird. Folglich kann der momentane z-Wert für jedes Eingangs- Pixel gelesen und mit dem Eingangs-z-Wert für jenes Pixel im voraus, während des Schreibzyklus eines vorhergehenden Eingangs-Pixels, verglichen werden. Die Adresse ist im voraus bekannt, da es bei der Scan-Konvertierung üblich ist, jedes Objekt in Rasterscan-Format umzusetzen, indem die Oberfläche des Objekts in Streifen aufgeteilt wird, die Folgen von aufeinanderfolgenden Pixeln in Reihen des Speichers (wobei die Reihen üblicherweise den Zeilen aus Pixeln auf dem wiedergebenen Bild entsprechen) entsprechen. Natürlich ist solch eine Ersparnis für das erste Pixel in jeder Folge nicht möglich, da aber die Folgen typischerweise einige zehn oder hundert Pixel enthalten, kann die Verwendung des "Pipelining" den Zykluszeitaufwand für HSR wesentlich reduzieren.
  • Speicherchips mit einem Haupt-Array mit wahlfreiem Zugriff und einem eingebauten Speicher mit seriellem Zugriff (SAM) sind als Video-RAM- oder VRAM- Chips bekannt, und für eine ausführlichere Erklärung ihres Aufbaus und ihrer Funktionsweise sei der Leser auf die Datenblätter der Hersteller solcher Anordnungen verwiesen. Beispiele sind das Hitachi HM53461P VRAM und das Fujitsu MB81461 VRAM. Diese bekannten VRAM-Chips sind zur Verwendung als Einzelbildpuffer (wie das Farb-RAM) entworfen und machen es möglich, die Farbinformationen in einem Haupt-Array mit wahlfreiem Zugriff gleichzeitig mit dem Abtasten des Speichers für die Ausgabe an die Wiedergabevorrichtung zu aktualisieren. In jener Anwendung werden ganze Reihen mit Pixeldaten, die allen Wiedergabewillen oder Teilen davon entsprechen, parallel zum SAM übertragen, das ein Schieberegister umfaßt. Die Datenbytes werden dann abwechselnd mit der Wiedergabe-Pixelrate zu einem Port mit seriellem Zugriff übertragen, während normaler Lese/Schreib-Zugriff auf das Haupt-Array unabhängig über einen Hauptdatenport erfolgen kann. VRAM-Chips und ihre Verwendungen sind in Elektronic Design, Band 31, Nr. 17, August 1983, S. 161-172 beschrieben.
  • Der Erfindung liegt die Erkenntnis zugrunde, daß es möglich ist, die bekannten VRAM-Chips zu verwenden, um einen "pipelined" Tiefenpuffer für HSR zu implementieren, wenn das Port mit seriellem Zugriff synchron zu den Schreiboperationen in das Haupt-Array verwendet wird, um die momentanen z-Werte aus dem Haupt-z- RAM-Array zu extrahieren, anstatt sie für wiederkehrende Bildauffrischungszwecke zu verwenden. Dadurch wird die Notwendigkeit teurer, vollständig zweitoriger Speicher vermieden, so daß eine solche Vorrichtung zu Preisen, die mit Verbraucheranwendungen und Anwendungen für kleinere Unternehmen besser vereinbar sind, ein Leistungsniveau bietet, das bis jetzt nur hochwertigen professionellen und militärischen Anwendungen vorbehalten war.
  • Die Erfindung ist auch mit dem als "Verschachtelung" (Interleaving) bekannten Verfahren vereinbar, bei dem geradzahlige und ungeradzahlige Pixel in der Reihe zwei getrennte, parallel arbeitenden Speichern zugeordnet werden. Dies macht es möglich, eine weitere Verdopplung der Pixel-Schreibrate zu erreichen. Der Prozeß könnte im Prinzip zur Verwendung von drei oder mehr verschachtelten ("interleaved") Speichern erweitert werden, in der Praxis wird die Synchronisation dann jedoch in zunehmendem Maße schwieriger.
  • Das nachfolgende Pixel kann das nächste Pixel in der Folge sein. Wenn die kombinierte Zeit für die Lese- und Vergleichsoperationen für jedes Pixel jedoch länger ist als die für eine Schreiboperation, kann es vorteilhaft sein, wenn das nachfolgende Pixel beispielsweise das zweitnächste Pixel ist. In gleicher Weise wird, wenn zwei (oder drei oder mehr) parallele Speicher zur Verschachtelung verwendet werden, das nachfolgende Pixel im allgemeinen das zweitnächste (oder drittnächste etc.) sein, wie dem Fachmann leicht einleuchten dürfte.
  • Die Mittel zur Zuführung der Adresse jedes selektierten Pixels können Mittel zur Zuführung von Taktsignalen zum Speicher mit seriellem Zugriff enthalten, um den momentanen z-Wert für jedes folgende Pixel nacheinander am Ausgang des Speichers mit seriellem Zugriff zur Verfügung zu stellen.
  • Die Vergleichsmittel können einen digitalen Komparator umfassen, der einen ersten mit den Mitteln zur Erzeugung der aufeinanderfolgenden Tiefenwerte verbundenen Eingang und einen zweiten Eingang zur Verbindung mit dem Ausgang des Speichers mit seriellem Zugriff des z-RAMs hat. Die Vorrichtung kann Mittel zur Verbindung eines Ausgangs des Komparators mit Schreibfreigabe-Eingängen des z- RAMs und des Farb-RAMs umfassen. Die Verwendung eines digitalen Komparators, der beispielsweise aus TTL- oder FAST-TTL-Komparatorschaltungen wie 7485/74F85 von Signetics aufgebaut ist, verschafft eine einfache und ökonomische Ausführungsform der Vergleichsmittel.
  • Die Vorrichtung kann eine oder mehrere getaktete Letches umfassen zur Synchronisation von dem Farb-RAM und dem z-RAM zugeführten Daten mit den Adreßeingängen des Farb-RAMs beziehungsweise des z-RAMs zugeführten Daten und mit Steuereingängen jener RAMs zugeführten Signalen. Dies ermöglicht den Mitteln zur Erzeugung der Eingangsdaten und Adreßwerte im wesentlichen unabhängig von der jeweiligen Synchronisation der nachfolgenden Operationen der Vorrichtung zu arbeiten. Die Latches können beispielsweise aus problemlos erhältlichen TTL- oder FAST-TTL- Chips aufgebaut werden.
  • Die Vorrichtung kann eine Ablaufsteuerungsschaltung zur Zuführung von Steuersignalen zum Farb-RAM und zum z-RAM synchron mit der Selektion der Pixel der Folge umfassen. Die Ablaufsteuerungsschaltung kann beispielsweise eine integrierte Kunden- oder Semi-Kundenschaltung oder eine feldprogrammierbare integrierte Logikablaufsteuerungsschaltung (FPLS), eventuell mit etwas zusätzlicher Logik, umfassen.
  • Das Farb-RAM kann ein Haupt-Array mit wahlfreiem Zugriff und einen Speicher mit seriellem Zugriff umfassen, wobei die Mittel zum Schreiben der Eingangsfarbwerte in das Farb-RAM zur Verbindung mit dem Haupt-Array des Farb-RAMs angeordnet sind und wobei die Vorrichtung außerdem einen Bildausgang umfaßt, der zur Verbindung mit dem Ausgang des Speichers mit seriellem Zugriff des Farb-RAMs angeordnet ist. Das Farb-RAM und das z-RAM können einen oder mehrere identische Integrierte-Schaltung-Speicher umfassen. Die Verwendung identischer Speicherchips zum Aufbau von sowohl des z-RAMs als auch des Farb-RAMs vermeidet die Notwendigkeit, verschiedenen Schnittstellenanforderungen entsprechende Signale zu erzeugen, da von beiden gemeinsame Signale für einen wesentlichen Teil der erforderlichen Operationen verwendet werden können, während der Port mit seriellem Zugriff des Farb-RAMs für seinen beabsichtigten Zweck als Wiedergabeausgang verwendet werden kann, ohne mit der HSR zu interferieren.
  • Die Erfindung verschafft außerdem noch ein elektronisches Grafiksystem, das eine der vorliegenden Erfindung gemäße elektrische Schaltungsvorrichtung beinhaltet. Solch ein System kann in vielen normalerweise zu elektronischen oder Computergrafiksystemen gehörenden Anwendungen verwendet werden, wie computergestütztes Design, Computersimulationen, Unterhaltung, in denen die Verwendung der vorliegenden Erfindung Möglichkeiten schaffen kann, die vorher nur in teureren Systemen verfügbar waren.
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im folgenden näher beschrieben. Es zeigt
  • Fig. 1 ein schematisches Blockschaltbild eines erfindungsgemaßen elektronischen Grafiksystems;
  • Fig. 2 einen Ablaufplan eines Verfahrens zur Verarbeitung von Modelldaten vor der Wiedergabe;
  • Fig. 3 ein schematisches Blockschaltbild eines Teils des Systems aus Fig. 1;
  • Fig. 4 ein detaillierteres Schaltbild des in Fig. 3 gezeigten Teils und
  • Fig. 5 Signalformen an n verschiedenen Punkten der Schaltung aus Fig. 4.
  • Fig. 1 ist ein Blockschaltbild eines erfindungsgemäßen Grafiksystems. Eine Tastatur 1 und ein grafisches Tablett 2 liefern von einem Benutzer kommende Eingabesignale an eine zentrale Verarbeitungseinheit (CPU) 3. Das grafische Tablett kann in bekannter Weise zum "Zeichnen" von Eingangsbildern verwendet werden, die von dem System manipuliert werden sollen. Andere Eingabegeräte wie ein Joystick, ein Track-Ball oder eine "Maus" können natürlich ebenfalls verwendet werden. Solche Geräte können auch verwendet werden, um erstellte Bilder durch Rotieren, Zoomen etc. zu verändern. Im allgemeinen sind solche Geräte einfacher zu benutzen als eine herkömmliche Tastatur allein.
  • Die CPU 3 ist auch über einen Bus 3A (beispielsweise einen VME-Bus) mit einem Plattenspeicher 4, einem ROM 5 und einem RAM 6 verbunden. Der Plattenspeicher, der magnetische Floppy-Disks, Festplatten und/oder optische Speicherplatten enthalten kann, wird zur Speicherung von Daten (beispielsweise von vollständigen Bildern oder Teilen davon, oder von Bildsequenzen) benutzt, die dann wieder aufgerufen und verändert werden können, um nach Wunsch neue Bilder zu erzeugen. Solche Daten können die Arbeit des Benutzers aus früheren Eingabe-Sitzungen enthalten, sie können jedoch auch kommerziell erzeugte Daten enthalten, beispielsweise Bilder zur Verwendung bei interaktivem computergestützten Design oder Computersimulationen. Um das Modellieren von dreidimensionalen Objekten zu ermöglichen, werden solche Daten im allgemeinen als Polygonmodelldaten gespeichert statt in Form zweidimensionaler Bilder. In jenem Fall entsprechen die Daten einem dreidimensionalen Modell, das Objekte enthält, die typischerweise in Gruppen von polygonen Flächen in einem dreidimensionalen Koordinatenraum (beispielsweise dreieckige oder vierseitige Flächen) aufgeteilt sind. Die Daten für jedes Objekt in dem Modell umfassen eine Liste, die die Position und Art jedes Polygons angibt, das das Objekt bilden wird, einschließlich der relativen Positionen seiner Scheitelpunkte und der Farbe oder "Textur" oder Transparenz der Polygonfläche.
  • Die CPU 3 und die anderen Komponenten des Systems übersetzen diese dreidimensionale Modell-"Welt" dann für den Benutzer in eine zweidimensionale Ansicht aus einem für den Benutzer beliebig wählbarem Blickwinkel.
  • Das ROM 5 und das RAM 6 verschaffen Programmspeicher und Arbeitsspeicher für die CPU 3, die einem Mikroprozessor wie einen Motorola MC68020 umfassen kann. Spezielle Verarbeitungs-Hardware 7 kann vorgesehen werden, um die CPU bei der Durchführung der großen Zahl arithmetischer Operationen zu unterstützen, die notwendig sind, um alle außer den einfachsten Modellen in eine zweidimensionale Szene zu umzusetzen. Die von einem typischen System benötigten Operationen werden im folgenden anhand der Fig. 2 beschrieben. Die Hardware 7 kann über eine VME- Busverbindung mit der CPU 3 verbundene TTL-Rechenschaltungen umfassen, oder sie kann alternativ kundenspezifische oder programmierbare digitale integrierte Signalverarbeitungsschaltungen (DSP) umfassen. Die Art der Hardware 7 (falls überhaupt benötigt) hängt von den Anforderungen des Systems ab, beispielsweise hinsichtlich Geschwindigkeit, Auflösung, Anzahl Polygone pro Szene etc . .
  • Zeichnungs-Hardware 8 ist zwischen Ausgänge der CPU 3 und Eingänge eines Wiedergabe-RAMs 9 geschaltet. Das RAM 9 speichert Pixel-Daten im Rasterscan- Format, und die Daten enthalten drei Farbwerte für jedes Pixel. Die gespeicherten Farbwerte können typischerweise drei 8-Bit-Werte (insgesamt 24 Bits) sein, die den roten (R), grünen (G) und blauen (B)Komponenten des gewünschten Bildes entsprechen, in anderen Ausführungsformen könnten die 24 Bits jedoch die gleiche Farbe als HSV-Werte (Farbton, Sättigung, Luminanz) codiert definieren, was die Berechnung von Beleuchtungseffekten vereinfacht, wie es aus der Technik bekannt ist. Andere Farbcodierungssysteme wie YUV oder YIQ (Luminanz plus zwei Farbunterschiedssignale) könnten falls gewünscht auch verwendet werden. Für einfache monochrome Bilder wäre natürlich nur ein einziger Graustufenwert mit beispielsweise 8 Bits notwendig.
  • Eine Zeitsteuerungsschaltung 10 erzeugt Signale, um die Übertragung von Pixel-Daten im RAM 9 zu einem Wiedergabeschirm 11 zu koordinieren. Als Reaktion auf diese Signale werden die Speicherzellen RAM 9 reihenweise und spaltenweise abgetastet, und die ausgelesenen Farbwerte werden in eine Farbsuchtabelle (CLUT) 12 eingespeist. Die CLUT 12 braucht nicht vorgesehen zu werden, wenn RG-Werte gespeichert werden; wenn jedoch einer der anderen, im vorstehenden beschriebenen Farbcodes verwendet wird, übersetzt die CLUT das 24-Bit-Farbsignal (HSV, YUV etc.) für jedes Pixel in drei äquivalente 8-Bit-RGB-Signale, die dann drei 8-Bit-Digital/- Analog-Umsetzern (DACs) 13R, 13G, 12B zugeführt werden. Die analogen Ausgangssignale der DACs steuern einen Kathodenstrahlröhren-Wiedergabeschirm (CRT) 11 an, der, direkt oder indirekt, Zeitsteuerungssignale (SYNC) aus der Zeitsteuerungsschaltung 10 empfängt, so daß die CRT-Strahlen den Bildschirm zeilenweise und pixelweise im Gleichtakt mit der Abtastung des RAMs 9 abtastet. In anderen Ausführungsformen könnte die CRT-Wiedergabevorrichtung natürlich entsprechend den Wiedergabeanforderungen durch einen anderen Wiedergabevorrichtungstyp ersetzt werden, beispielsweise durch eine Flüssigkeitskristallanzeige (LCD) oder eine Projektionsschirmanzeige.
  • Fig. 2 ist ein Ablaufplan, der die Prozeßschritte zeigt, die nötig sind, um ein Einzelbild mit Pixeln aus einer Dateneingabe in Form von Polygonmodelldaten zu erzeugen. Das heißt, die abzubildende Szene wird als eine Folge von Polygonen beschrieben, wobei jedes als eine Liste mit Koordinaten (x,y,z) für jeden seiner Scheitelpunkte zusammen mit Informationen über die Farbe und andere Attribute der durch die Scheitelpunkte definierten Oberfläche gespeichert wird. In Block 16 werden dreidimensionale Translationen mit allen Koordinaten (x,y,z) des Modells durchgeführt, um ihre Positionen (X,Y) auf dem zweidimensionalen Bildschirm und ihre Tiefe Z "im" Schirm zu bestimmen. Der Einfachheit halber wird für die Zwecke dieser Beschreibung davon ausgegangen, daß im äußersten Vordergrund Z gleich null ist und Z mit wachsender Entfernung zunimmt. Dies entspricht der üblichen Konvention in der Technik, aber natürlich kann die Erfindung auch problemlos für die Verwendung unterschiedlicher Systeme zur Darstellung der Tiefenkoordinate angepaßt werden. Die Transformationen werden typischerweise Translation, Rotation und Perspektive beinhalten.
  • Danach werden in Block 18 Beleuchtungswerte verwendet, um die Schattierung jedes Polygons zu verändern, beispielsweise entsprechend einer vorab bestimmten Beleuchtungsrichtung. In Block 20 werden Polygone, die in Positionen (X,Y) ganz oder teilweise außerhalb der Bildschirmgrenzen transformiert werden, an die Bildschirmgrenzen "geheftet", um zu vermeiden, daß Zeit mit der Berechnung redundanter Informationen verloren geht.
  • In Block 22 werden die Polygone "scan-konvertiert", so daß sie in den Bildspeicher geschrieben (Block 24) werden können. Scan-Konvertierung ist ein Vorgang, bei dem die durch jedes Polygon abgedeckten Pixel reihenweise und pixelweise auf die gleiche Weise geschrieben werden, auf die das gesamte Bild für die Ausgabe an eine Wiedergabevorrichtung abgetastet werden wird. Die Farbwerte können dann reihenweise aus dem Video-RAM mit der Wiedergabe-Pixelrate ausgelesen, in die Digital/Analog-Umsetzer (falls erforderlich über die CLUT 12) eingespeist und in Videosignale zur Wiedergabe auf dem CRT-Bildschirm umgesetzt werden.
  • Einige der Blöcke 16 bis 24 können softwaremäßig in einen Computer implementiert werden, für Hochgeschwindigkeitsbetrieb wird jedoch selbst ein schneller Mikroprozessor Unterstützung durch spezialisierte Hardware benötigen. Die Scan- Konvertierung ist in dieser Ausführungsform beispielsweise in die Zeichnungs-Hardware 8 implementiert, um eine ausreichende Geschwindigkeit für die Wiedergabe von beweglichen Bildern in Echtzeit oder beinahe Echtzeit (das heißt einigen Einzelbildern pro Sekunde) zu erreichen. Dies ist vor allem deshalb notwendig, weil der Scan-Konvertierungsblock 22 auch Verarbeitung einschließt, um die Schattierung von Objekten zur Berücksichtigung komplexer Beleuchtungsinformationen und die Entfernung verdeckter Oberflächen (HSR) durchzuführen.
  • Fig. 3 zeigt schematisch die Verbindungen zwischen der CPU 3, der Zeichnungs-Hardware 8 und dem Wiedergabespeicher 9 im System nach Fig. 1. Die CPU 3 kommuniziert über den Bus 3A mit einer Recheneinheit 42, die einen Adreßausgang 44 (X,Y), einen Farbausgang 46 (RGB) und einen Tiefenausgang 48 (Z) hat. Die Adresse (X,Y) wird bei Anforderung den Adreßeingängen des Wiedergabespeichers 9 zugeführt, der in dieser Ausführungsform zwei getrennte Wiedergabe(farb)speicher DM1 und DM2 umfaßt. Das Farbausgangsignal 46 der ALU 42 wird abwechselnd Dateneingängen der Speicher DM1 und DM2 zugeführt.
  • Die Speicher DM1 und DM2 haben jeweils einen Ausgang 52 beziehungsweise 54, die abwechselnd mit einem Ausgang 56 verbunden werden, um (beispielsweise mittels der Nachschlagetabelle 12 und DACs 13 R,G,B, wie in Fig. 1 gezeigt) ein Videoausgangssignal zu liefern. Die Videoausgangsabtastung wird unter Steuerung der Zeitsteuerungsschaltung 10 aus Fig. 1 weitgehend unabhängig von den Operationen zum Schreiben von Daten in die Speicher DM1 und DM2 durchgeführt, da das Ausgangsvideosignal aus einem der Speicher gewonnen wird, während Daten in den anderen Speicher geschrieben werden.
  • Der Z-Ausgang 48 der ALU 42 liefert einen Tiefen- oder z-Wert für jedes adressierte Pixel und ist mit einem ersten Eingang 61 einer Steuerschaltung für Entfernung verdeckter Oberflächen 60 (HSR) und mit einem Dateneingang 62 eines z- RAMs 64 verbunden. Ein getrennter Datenausgang 66 des z-RAMs 64 ist mit einem zweiten Eingang 68 der HSR-Schaltung 60 verbunden, die einen Ausgang 70 hat, der mit den Schreibfreigabe-Eingängen (WE) sowohl des Wiedergabespeichers (Farb-RAM) 9 (DM1/DM2) als auch des z-RAMs 64 verbunden ist.
  • Bei Betrieb empfängt die ALU 42 XYZ-Koordinaten für die Scheitelpunkte eines Polygons und Farb/Beleuchtungsinformationen für dieses Polygon, das einen Teil eines endgültigen Bildes bilden wird. Die ALU 42 enthält die zur Durchführung der Scan-Konvertierung erforderliche Steuerschaltungsanordnung, die die durch die Projektion des Polygons in die X-Y-Ebene bedeckte Fläche in eine Folge von Pixeladressen X,Y entsprechend einer systematischen zeilenweisen und pixelweisen Abtastung übersetzt. Dies ermöglicht eine schnelle Adressierung der Speicher 2, 64, da es nach Anlegen einer X-Y-Adresse für das erste Pixel in einer Folge nur noch nötig ist, die X-(Spalten)-Adresse zu inkrementieren, um jedes folgende Pixel in der gleichen Reihe (gleiches Y) zu adressieren. Die bekannten VRAM-Chips unterstützen diese sogenannte Adressierung im "Seitenmodus", um ein schnelles Lesen und Schreiben in ihrem Haupt-DRAM-Array zu ermöglichen. Bei dem VRAM Hitachi HM 53461P-10 wird ein beliebiger (X,Y)-Lese- oder Schreibzyklus beispielsweise 190 Nanosekunden (ns) dauern, ein Lese/Schreibzyklus im Seitenmodus für das nächste und nachfolgende Pixel in der Reihe ((X+ 1, Y) etc.) wird nur 70 ns pro Pixel dauern. Natürlich könnte die Scan-Konvertierung falls gewünscht spaltenweise und zeilenweise durchgeführt werden, doch in beiden Fällen wird es normalerweise vorzuziehen sein, in der gleichen Orientierung abzustasten, wie es bei der Ausgabeabtastung bei Wiedergabe durchgeführt wird, vor allem wenn die Aktualisierung des Wiedergabespeichers zur gleichen Zeit durchgeführt werden soll wie die Ausgabeabtastung. Auf diese Weise geraten Eingabeabtastanforderungen so wenig wie möglich in Konflikt mit den Ausgabeabtastanforderungen.
  • Bei der gezeigten Ausführungsform wird durch Verwendung von zwei Speichern DM1 und DM2 das Problem eines Konflikts zwischen der Eingabe in den Speicher und der kontinuierlichen Ausgabeabtastung vermieden, indem eine als Doppelpufferung bekannte Technik angewendet wird. Wie in Fig. 3 anhand der durch durchgezogene Linien dargestellten Verbindungen gezeigt ist, wird die Wiedergabevorrichtung (verbunden mit Ausgang 56) mit einem in Speicher DM2 gespeicherten Bild aufgefrischt, während ein neues Bild in DM1 aufgebaut wird. Für das nächste Einzelbild werden die Verbindungen zu den Speichern ausgetauscht, wie durch gestrichelte Linien angegeben, und die Wiedergabe wird aus dem Speicher DM1 aufgefrischt, während das nächste Einzelbild in Speicher DM2 aufgebaut wird. Somit kann der Vorgang des Schreibens von Pixeldaten in jeden der Speicher DM1 oder DM2 ohne Interferenz mit der Ausgabeabtastung durchgeführt werden.
  • Natürlich sind die im vorstehenden beschriebenen zweitorigen VRAM- Chips speziell dafür entworfen, die Aktualisierung eines in einem einzelnen Wiedergabespeicher gespeicherten Bildes zu ermöglichen, während die Ausgabeabtastung durchgeführt wird, wobei es lediglich notwendig ist, dafür zu sorgen, daß die Zeichnungs-Hardware nicht eine bestimmte Reihe schreibt, während diese Reihe zum Schieberegister (RAM) übertragen wird, um die entsprechende Zeile der Wiedergabe aufzufrischen. Trotzdem wird wegen der Möglichkeit, daß der Aufbau mancher Szenen im VRAM länger dauert als eine Bildschirmauffrischungsperiode, noch Doppelpufferung in der vorliegenden Ausführungsform verwendet. In einem Einzelpuffersystem würde dies zu störenden Effekten bei der Wiedergabe führen, da der Bildschirm zunächst bis auf eine Hintergrundfarbe gelöscht wird und dann bei Aufbau des Bildes verschiedene Objekte auftauchen und verschwinden. Doppelpufferung ermöglicht einen sauberen, sofortigen Wechsel von einer Szene zur nächsten, wodurch eine beträchtliche Kontinuität erreicht werden kann, beispielsweise für Animationen, auch wenn der Bildinhalt sich nur einige Male pro Sekunde verändert. Die Erfindung ist vollständig kompatibel mit sowohl einem (doppeltgepufferten) Doppelspeichersystem als auch mit einem Einzelspeichersystem, und in der folgenden detaillierteren Beschreibung werden die Details der Interaktion mit Bildschirmauffrischungsfunktionen nicht näher beschrieben.
  • Dem Fachmann dürfte einleuchten, daß das z-RAM 64 nicht doppeltgepuffert zu sein braucht, da der gleiche z-Speicherplatz für jedes Einzelbild verwendet werden kann. Dies liegt daran, daß die z-Werte, die er enthält, nicht abgetastet zu werden brauchen, um die zweidimensionale Wiedergabe zu erzeugen; sie werden lediglich dazu verwendet, den endgültigen Inhalt des Farb-RAMs zu bestimmen, bevor jedes Einzelbild wiedergegeben wird.
  • Fig. 4 zeigt die Schaltung der Zeichnungs-Hardware in detaillierterer Darstellung. Die ALU 42 aus Fig. 3 wird durch eine z-ALU 80, eine Farb-ALU 82 und eine Adreß-ALU 84 gebildet, deren Dateneingänge mit dem CPU-Bus 3A verbunden sind. Der Bus 3A liefert auch Signale an zwei Eingänge 312 (CLK) und 314 (START) einer Logiksablaufsteuerung 110. Die Ablaufsteuerung 110 hat drei Ausgänge 316 (XINC), 318 (YINC) und 324 (LOAD), die mit Eingängen der ALUs 80, 82 und 84 verbunden sind, während die Adreß-ALU 84 zwei Ausgänge 320 (XFIN) und 322 (YFIN) hat, die mit Eingängen der Ablaufsteuerung 110 verbunden sind. Die z-ALU 80 hat einem 24-Bit-Ausgang 81, der mit einem Eingang eines ersten getakteten Latch 84 und mit einem ersten Eingang eines 24-Bit-Komparators 88 verbunden ist. Der Komparator 88 hat einen Einzelbitausgang 89, der mit einem Eingang eines zweiten getakteten Latch 90 verbunden ist. Ein 24-Bit-Ausgang 87 des ersten Latch 86 ist mit einem 24-Bit-Dateneingang mit wahlfreiem Zugriff 92 eines zweitorigen Video-RAMs (VRAM) verbunden, das ein z-RAM 94 bildet. Ein einen Teil des z-RAMs 94 bildender Ausgang 95 des SAMs ist mit einem zweiten Eingang des Komparators 88 verbunden, wobei der Ausgang 95 n Bits breit ist und bei Betrieb eine Folge von n-Bit-Wörtern überträgt, die die z-Werte einer Folge von Pixeln repräsentieren, wobei in dieser Ausführungsform n=24 ist. Ein Ausgang 91 des zweiten Latch 90 ist mit einem Schreibfreigabe-Eingang des z-RAMs 94 und einem Schreibfreigabeingang eines zweiten zweitorigen VRAMs und Farb-RAMs verbunden.
  • Die Farb-ALU 82 hat einen digitalen 24-Bit-RGB-Ausgang 83, der mit einem Eingang eines dritten getakteten 24-Bit-Latch 98 verbunden ist, das einen 24-Bit- Ausgang 99 hat, der mit einem 24-Bit-Dateneingang mit wahlfreiem Zugriff 100 des Farb-RAMs 96 verbunden ist. Die Adreß-ALU 84 hat zwei Adreßausgänge 102 und 104 (X beziehungsweise Y), die mit jeweiligen Eingängen 103 und 105 eines Adreßmultiplexers 106 verbunden sind. Der Multiplexer 106 hat einen Adreßausgang 107, der mit Adreßeingängen sowohl des z-RAMs 94 als auch des Farb-RAMs 96 über einen vierten getakteten Latch 108 verbunden ist. Die getakteten Latches können beispielsweise unter Verwendung von TTL- oder FAST-TTL-ICs wie Signetics 74374/74F374 aufgebaut werden.
  • Die Ablaufsteuerung 110 hat logische Ausgänge 120-124 (RAS, CAS, DT, SC und SOE), die mit den Steuereingängen des z-RAMs 94 und/oder des Farb- RAMs 96 wie gezeigt verbunden sind, und einen weiteren logischen Ausgang 125 (MUXS), der mit einem Selektionseingang des Multiplexers 106 verbunden ist. Die Form der an diesen Ausgängen erzeugten Signale soll im folgenden anhand der Fig. 5 beschrieben werden. Die Ablaufsteuerung 110 kann eine kundenspezifische Schaltung sein, bei der beispielsweise TTL-Komponenten verwendet werden; bei dieser Ausführungsform umfaßt die Ablaufsteuerung 110 jedoch eine feldprogrammierbare Logikablaufsteuerung (FPLS) mit zusätzlichen Logikgattern, wie im folgenden beschrieben wird. Der FPLS umfaßt einen oder mehrere FPLS-Chips wie Signetics PLS105, der ein feldprogrammierbares Logikray (FPLA) zusammen mit Rückkopplungsregistern enthält, um eine direkte Implementierung einer Synchronstatusmaschine zu verschaffen. Zusätzliche Logikgatter werden dazu verwendet, Ausgänge 121 (CAS) und 123 (SC) anzusteuern, indem Ausgangssignale des FPLS mit einem freilaufenden Taktsignal (CLK) verknüpft werden.
  • Wie im vorstehenden anhand der Fig. 3 beschrieben, ist das Farb-RAM 96 in Wirklichkeit einer der beiden Speicher (DM1 und DM2), die abwechselnd benutzt werden. Eine Wiedergabezeitsteuerungsschaltung (gestrichelt wiedergegeben) ist zur Schaltung 10 in Fig. 1 äquivalent und bei 128 mit Steuereingängen des Farb-RAMs 96 verbunden. Ein serieller 24-Bit-RGB-Ausgang 129 ist mit einem Datenausgang 127 (SIO) des Farb-RAMs 96 (gestrichelt wiedergegeben wie in Fig. 3) verbunden, um die Wiedergabe in alternierenden Einzelbildperioden aufzufrischen. Diese Konstruktions- und Betriebsmerkmale sind für die Zeichnungs-Hardware transparent. Der Speicher mit seriellem Zugriff (SAM) und der serielle Port (SIO) des Farb-RAMs 96 werden in herkömmlicher Weise verwendet, um eine Datenzeile mit Pixeln aus dem Haupt- DRAM-Array zu übertragen und die Farbwerte pixelweise als Reaktion auf aus der Schaltung 126 kommende Taktsignale herauszuschieben. Diese Operationen werden im Datenblatt des Herstellers des ausgewählten VRAMs, beispielsweise Hitachi HM53461P, vollständig beschrieben. Die Zeitsteuerungsschaltung 126 kann unter Verwendung eines im Handel erhältlichen Video-System-Controller-Chips wie Texas Instruments TMS 34061, der von den Merkmalen des bekannten zweitorigen VRAM- Chips Gebrauch machen kann, implementiert werden.
  • Die in dieser Beschreibungen verwendeten Bezeichnungen für die Eingänge und Ausgänge des RAMs 94 und 96 entsprechen den Bezeichnungen in den obengenannten Datenblättern. Ähnliche von anderen Herstellern erhältliche Anordnungen haben sehr ähnliche Eingänge und Ausgänge, jedoch mit etwas anderen Bezeichnungen. Beispiele sind der Fujitsu MB81461 und Advanced Micro Devices Am90C644. Alle drei Anordnungen haben ein Haupt-DRAM-Array mit 65536 (64K) Speicherplätzen, die jeweils 4 Datenbits halten. Um beispielsweise für jedes von 64K Pixeln einen 24-Bit-z-Wert und einen 24-Bit-Farbwert (doppeltgepuffert) zu halten, werden (24 + (2. 24))/4 oder achtzehn VRAMs des beschriebenen Typs benötigt, sechs für das z- RAM und sechs für jedes Farb-RAM (DM1 und DM2).
  • Jedes 64K-Array ist in 256 Reihen mal 256 Spalten mit 4-Bit-Speicherstellen angeordnet, wobei jede mittels einer 4-Bit-Reihenadresse (RA) und einer 9-Bit- Spaltenadresse (CA) adressiert ist, die nacheinander dem 8-Bit-Adreßeingang (A&sub0;-A&sub7;) des Chips zugeführt werden. Der Speicher mit seriellem Zugriff (SAM) ist ein Schieberegister mit 256 mal 4 Bit, das durch einen unabhängigen seriellen Takteingang SC getaktet wird und eine unabhängige 4-Bit-Ausgabe am seriellen Ausgang SIO liefert. Jede Reihe mit 256 mal 4-Bit-Daten kann aus dem DRAM-Array zum SAM übertragen werden (Lesetransferzyklus - RTC), wobei die zu übertragende Reihe und die Anfangsspalte durch RA beziehungsweise CA festgelegt werden. Die aus dem Anfangsspaltenspeicherplatz übertragenen 4-Bit-Daten sind sofort am seriellen Ausgang SIO verfügbar, und die aus den nächsten darauffolgenden Speicherplätzen sind als Reaktion auf aufeinanderfolgende ansteigende Flanken am seriellen Takteingang SC in Folgen verfügbar. Bei dieser einfachen Ausführung entsprechen die 256 mal 256 Speicherplätze direkt einer quadratischen Wiedergabe von 256 mal 256 Pixeln, wobei Pixeladressen (X,Y) mit den Array-Adressen (CA, RA) äquivalent sind.
  • Um das Zeichnen einer dreiseitigen oder vierseitigen Form durch die Hardware aus Fig. 4 zu beginnen, lädt die CPU 3 (Fig. 1, 3) die ALUs 80, 82, 84 über den Bus 3A mit Parametern, die die Form definieren. In dieser Ausführungsform sind die in die Adreß-ALU 84 geladenen Parameter die Anfangsreihe (Y oben), die Endreihe (Y unten), die Begrenzungen der Form innerhalb der Anfangsreihe (X links, X rechts) und die Neigung der linken und rechten Kante der Form (Inkrement X links und Inkrement X rechts). Die Adreß-ALU 84 enthält die notwendigen Inkrementierer und Zähler, die dann benötigt werden, um die Pixel-Adressen (X,Y) zu erzeugen, die erforderlich sind, um die Fläche der Form unter Steuerung der Ablaufsteuerung 110 abzutasten.
  • In gleicher Weise wird die z-ALU 80 mit einem anfänglichen z-Wert für die Form geladen, und mit Neigungen für Z in der X-Richtung (entlang der Reihen) und in der Y-Richtung (Spalten abwärts). Die Farb-ALU 82 wird mit RGB-Farbwerten für das Pixel oben links geladen, und mit "Neigungen" für die RGB-Werte in den X- und Y-Richtungen, um eine graduelle Veränderung der Schattierung auf der Oberfläche der Form erhalten zu können.
  • Nachdem diese anfänglichen Werte und Neigungsparameter über den Bus 3A den ALUs zugeführt worden sind, sorgt die CPU 3 dafür, daß ein Startsignal ST dem Eingang 314 der Ablaufsteuerung 110 zugeführt wird, und die Schaltung aus Fig. 4 arbeitet dann im wesentlichen selbständig und synchron mit den Zyklen eines Taktsignals CLK an 312, um die gesamte Form ohne weitere Hinzuziehung der CPU 3 wie folgt zu zeichnen.
  • Bei Empfang des Signals ST über den Bus 3A erzeugt die Ablaufsteuerung 110 an ihrem Ausgang 324 ein Signal LOAD, das dazu führt, daß die ALUs 80, 82, 84 die Werte für X, Y, Z und Farbe für das erste Pixel der ersten zu schreibenden Folge zu ihren jeweiligen Zählern und Innkrementierern übertragen.
  • Die Funktionsweise der erfindungsgemäßen Schaltung aus Fig. 4 zum Schreiben einer repräsentativen Folge von Pixeln in das Farb-RAM 96 soll nun auch anhand der Signalformdarstellungen in Fig. 5 beschrieben werden. Bei dem Einzelbeispiel der in Fig. 5 gezeigten Sequenz sollen sechs Pixel in einer Reihe Y entsprechend einem z-Puffer-Algorithmus verändert werden, wobei mit dem Pixel an der Adresse (X0, Y) begonnen und mit dem Pixel an der Adresse (X5, Y) abgeschlossen wird. Als Reaktion auf das Signal LOAD aus der Ablaufsteuerung 110 erzeugt die ALU 84 an ihren Ausgängen 102, 104 die Adresse (X0, Y), und die z-ALU 80 ein Signal Z1 an ihrem Ausgang 81, während die Farb-ALU 82 ein Signal RGB1 an ihrem Ausgang 83 erzeugt. Die Signale Z1 und RGB1 sind zu diesem Zeitpunkt der Eingangs-z-Wert beziehungsweise der Eingangsfarbwert für das Pixel (X0, Y).
  • Die zum Schreiben der Folge notwendige Sequenz umfaßt zwei verschiedene Speicherzyklen. Zuerst überträgt ein Lesetransferzyklus die momentanen z- Werte für die Reihe Y aus dem Haupt-DRAM-Array in das SAM (Schieberegister) des z-RAMs 94. Die Reihe (oder Bildschirmzeile) wird durch einen 8-Bit-Y-Ausgang 104 der Adreß-ALU 84 über den Multiplexer 106 bestimmt. Die Ablaufsteuerung 110 setzt MUXS auf "high", so daß ein mit Y gleiches Signal A1 am Ausgang 107 des Multiplexers dem Eingang des Latch 108 zugeführt wird und einen Taktzyklus später ein Signal A2 aus dem Latch 108 hervorgeht und den Adreßeingängen A&sub0;-A&sub7; sowohl des z- RAMs 94 als auch des Farb-RAMs 96 zugeführt wird. Wenn DT "low" ist, um Datentransfer anzuzeigen, wird der Reihenadreß-Strobe RAS "low", um die Adresse der Reihe Z im z-RAM zu verriegeln. Dann wird MUXS "low" und die Adresse X0 des Anfangspixels der Folge wird dann in ähnlicher Weise zu A1, dann A2 und durch das z-RAM als die Spaltenadresse des Anfangspixels verriegelt, DT wird wieder "high", und die z-Werte für die Reihe Y werden zum SAM übertragen, wobei der für das erste Pixel (X0, Y) als ein paralleles 24-Bit-Signal ZS am SIO des z-RAMs 94 verfügbar ist, sobald das Signal "Freigabe serieller Ausgang" SOE durch die Ablaufsteuerung auf "low" gesetzt wird.
  • Zweitens werden die neuen Daten verarbeitet und die Pixel unter Verwendung eines Schreibzyklus im Seitenmodus (PMW) zusammen mit seriellen Lesezyklen (SRC) zum Lesen der momentanen z-Werte geschrieben. Um dies zu erreichen, setzt die Ablaufsteuerung 110 MUXS wieder auf "high" und RAS wird auf "low" gesetzt (wobei DT dieses Mal "high" ist), um die Reihe Y im DRAM-Array zu adressieren. Als nächstes setzt die Ablaufsteuerung 110 MUXS und danach das Signal XINC auf "low", wodurch die Taktung (synchron mit CLK) der internen Inkrementierer und Zähler in den ALUs 80, 82, 84 freigegeben wird. Die Adreß-ALU 84 erzeugt somit an ihrem Ausgang 102 die aufeinanderfolgenden Adressen X1, X2, X3 etc., während die z-ALU 80 an ihrem Ausgang 81 die entsprechenden Eingangs-z-Werte und die Farb- ALU 84 an ihrem Ausgang 83 die entsprechenden Eingangs-Farbwerte erzeugt. Die von den ALUs erzeugten Signale Z1, RGB1, A1 werden dann durch
  • die Latches 86, 90 108 verzögert und werden jeweils zu Z2, RGB2, A2, die den Eingängen der RAMs 94 und 96 zugeführt werden sollen. Synchron mit dem Eintreffen der X-Adressen (A2) an den Adreßeingängen A&sub0;-A&sub7; des z-RAMs 94 und des Farb- RAMs 96 schaltet die Ablaufsteuerung 110 zwischen dem Spaltenadreß-Strobe-Eingang (CAS) der RAMs 94 und 96 hin und her, um die einzelnen Pixelspeicherplätze X0, X1, X2 etc. in der Reihe Y des DRAM-Arrays zu adressieren. Damit werden die Schreibzyklen im Seitenmodus implementiert, die den Inhalt des DRAM-Arrays in Abhängigkeit des Wertes der Schreibfreigabeeingangs (WE) der RAMs 94 und 64 verändern.
  • Um den z-Puffer-Algorithmus während des PMW-Zyklus zu implementieren, schaltet die Ablaufsteuerung 110 den seriellen Takt zum z-RAM, während S OE im "low"-Zustand gehalten wird, um die momentanen z-Werte gleichzeitig mit der Erzeugung der Eingangs-z-Werte Z1 am Ausgang 81 der z-ALU 80 aus dem seriellen Port (serielle Lesezyklen) herauszuschieben. Der 24-Bit-Komparator 88 kann dann die Eingangs-z-Werte und die momentanen z-Werte für jedes Pixel 0-5 nacheinander vergleichen und ein Schreibfreigabesignal WE1 an seinem Ausgang 89 erzeugen.
  • Das Signal WE1 erfährt dann eine Verzögerung um einen Taktzyklus, wenn es den Latch 90 passiert und zu WE2 wird. Somit werden zur gleichen Zeit, zu der die Adressen X0-X5 dem z-RAM 94 und dem Farb-RAM 96 (Signal A2) zugeführt werden, die Eingangswerte den Z2 und RGB2 den entsprechenden DRAM-Ports 92, 100 zugeführt, und WE2 wird dem Schreibfreigabeeingang WIE jedes RAMs zugeführt, um zu bestimmen, ob die Daten (Z2, RGB2) geschrieben werden oder nicht, das heißt, ob das Eingangspixel im gewünschten zweidimensionalen Bild sichtbar ist oder nicht.
  • Würde das Auslesen der momentanen z-Werte für ein Pixel nicht gleichzeitig mit dem Schreiben der z-Werte für das vorangegangene Pixel erfolgen, so würde die kürzeste Zykluszeit pro Eingangspixel nahezu verdoppelt, selbst wenn die gleiche Hardware verwendet werden würde, wie anhand des folgenden Beispiels gezeigt wird. Unter Verwendung des Hitachi HM53461P-10 VRAMs im Seitenmodus beträgt die Schreibzykluszeit 70 ns und die Zeit für den seriellen Lesezyklus 40 ns. Die zum Vergleich zweier z-Werte benötigte Zeit beträgt 28 ns, wenn beispielsweise FAST-TTL 74F85 Komparator-Chips verwendet werden. Dies erfordert eine Gesamtzykluszeit von 40+28+70 = 138 ns, um die Lese-, Vergleichs und Schreiboperationen für jedes Pixel durchzuführen. Wird jedoch die anhand von Fig. 4 und 5 beschriebene Anordnung verwendet, beträgt die Pixel-Zykluszeit, abgesehen von einer zusätzlichen Setup-Zeit für den Zyklus zu Beginn der Folge, für jedes Pixel nur 70 ns, nämlich die Seitenmodus- Schreibzykluszeit, da die Lese- und Schreiboperationen (die 40+28 + 68 ns benötigen) bereits während des 70 ns langen Schreibzyklus des vorangegangenen Pixels durchgeführt worden sind. Somit verschafft die Verwendung der Erfindung z-gepuffertes Schreiben ohne irgendeinen bedeutenden Geschwindigkeitsverlust, da Folgen von Pixeln im allgemeinen länger als die sechs Pixel des Beispiels sind, vielleicht einige hundert Pixel. Darüberhinaus wird dies auf ökonomische Weise unter Verwendung von Standard-Hardwarekomponenten erreicht.
  • Wenn die für die Lese- und Vergleichsoperationen benötigte Gesamtzeit länger als eine Schreibzykluszeit ist (im obengenannten Beispiel länger als 70 ns), kann die Erfindung trotzdem implementiert werden, indem ein zusätzlicher Satz von getakteten Latches verwendet wird, um die Eingangsdaten um einen zusätzlichen Taktzyklus zu verzögern. Dadurch kann die Zeit für das Lesen und Vergleichen falls erforderlich über zwei Schreibzykluszeiten verteilt werden.
  • Die Ablaufsteuerung 110 hält XINC im "low"-Zustand bis die Adreß- ALU 84 über ihren Ausgang 320 (XFIN) signalisiert, daß die X-Adresse innerhalb der Reihe Y ihren Endwert (X rechts) erreicht hat. Da dies das Ende der Folge anzeigt, kehrt XINC wieder in den "high"-Zustand zurück und taktet die Ablaufsteuerung 110 ihren Ausgang 318 (YI NC) ein, wodurch die Adreß-ALU 84 ihren Reihenzähler Y aktualisiert und die z- und Farb-ALUs 80, 82 ihre Inkrementierer entsprechend der voreingestellten "Neigungs"-Werte für Z und Farbe in Y-Richtung aktualisieren. Dann setzt die Ablaufsteuerung 110 ihren Ausgang 324 (LOAD) auf "low", wodurch diese neuen Werte zu den Ausgangszählern - und Inkrementierern der ALUs 80, 82, 84 übertragen werden, und die soeben anhand der Fig. 5 beschriebene Sequenz wiederholt sich für die Pixel der nächsten Folge. Wenn alle Reihen der Form verarbeitet worden sind, detektiert die Adreß-ALU 84, daß ihre Y-Adresse mit dem voreingestellten Endwert für Y (y unten) übereinstimmt und erzeugt ein Signal an ihrem Ausgang 322 (YFIN), um die Erzeugung von Signalen durch die Ablaufsteuerung 110 zur Verarbeitung jeglicher weiterer Folgen zu beenden. Die ALU 84 oder die Ablaufsteuerung 110 können dann falls gewünscht mit der CPU 3 über den Bus 3A kommunizieren, um ihr mitzuteilen, daß die Form geschrieben worden ist.
  • Wiedergabevorrichtungen mit höheren Auflösungen als 256 mal 256 Pixel können natürlich angesteuert werden, indem mehr Speicherchips und ein auf geeignete Weise vergrößerter Adreßraum verwendet wird. Um beispielsweise 256 Reihen mal 512 Pixel wiederzugeben, können die 4 64K-Chips in ihrer Anzahl verdoppelt und so adressiert werden, daß jede Reihe mit 512 Pixeln (0-511) unter zwei Gruppen von Chips aufgeteilt wird. Eine Gruppe von Chips kann die Pixel 0-255 von jeder Reihe bedienen, während die andere Gruppe die Pixel 256-511 bedient. Um eine größere Geschwindigkeit zu ermöglichen, kann jedoch eine Gruppe die geradzahligen Pixel 0-510 bedienen, während die andere die ungeradzahligen Pixel 1-511 bedient. Dies ermöglicht Verschachtelung der Schreiboperationen, so daß, auch wenn jede Gruppe nur mit 14 MHz (70 ns Zykluszeit) arbeitet, durch abwechselndes Schreiben zu den zwei Gruppen mit versetztem Timing eine effektive Pixelrate von 28 Mhz erreicht werden kann. Die Ausgangsabtastung kann ebenfalls verschachtelt werden, um eine Wiedergabe-Pixelrate von bis zu 50 MHz (Zeit für seriellen Lesezyklus 40 ns) zu erreichen. Erweiterung der Anzahl Reihen mit oder ohne Verschachtelung der Reihenadressen ist natürlich ebenfalls problemlos möglich.

Claims (10)

1. Vorrichtung zur Veränderung von in einem Speicher mit wahlfreiem Zugriff (RAM) gespeicherten Daten, wobei die Daten einer oder mehreren Zeilen aus Pixeln eines gespeicherten Bildes entsprechen, der Speicher ein Farb-RAM zur Speicherung eines Farbwertes für jedes Pixel und ein Tiefen-RAM zur Speicherung eines Tiefenwertes für jedes Pixel umfaßt und die Vorrichtung folgendes umfaßt:
- Mittel zum Empfang von Eingangsdaten, die Adressen, Farbwerte und Tiefenwerte für eine Folge von Pixeln definieren;
- Mittel zur abwechselnden Selektion jedes Pixels in der Folge und zur synchronen Erzeugung von aufeinanderfolgenden Adressen, Eingangsfarbwerten und Eingangstiefenwerten;
- Mittel zur Zuführung der Adresse jedes selektierten Pixels zu Adreßeingängen des Tiefen-RAMs und des Farb-RAMs;
- Mittel zum Auslesen des gegenwärtigen z-Wertes für jedes selektierte Pixel aus dem Tiefen-RAM;
- Mittel zum Vergleich des gegenwärtigen Tiefenwertes mit dem Tiefenwert für jedes selektierte Pixel;
- Mittel zum Schreiben der Eingangstiefenwerte für jedes selektierte Pixel in den adressierten Speicherplatz des Tiefen-RAMs und zum Schreiben der Eingangsfarbwerte in dem adressierten Speicherplatz des Farb-RAMs, wobei die genannten Mittel auf ein Ausgangssignal der Vergleichsmittel ansprechen, um das Schreiben des Eingangsfarbwertes in das Farb-RAM und des Eingangstiefenwertes in das Tiefen-RAM zu ermöglichen, um einen neuen Farbwert und einen neuen Tiefenwert für ein gegebenes selektiertes Pixel zu definieren, wenn der Eingangstiefenwert eine geringere Tiefe aufweist als der gegenwärtige Tiefenwert für dieses Pixel, dadurch gekennzeichnet, daß das Tiefen-RAM ein Haupt-Array mit wahlfreiem Zugriff und einen Speicher mit seriellem Zugriff umfaßt, und daß die Vorrichtung außerdem auf die Eingangsdaten reagierende Mittel zur Übertragung der Tiefenwerte für alle Pixel in der Folge aus dem Haupt-Array des Tiefen-RAMs in den Speicher mit seriellem Zugriff des Tiefen-RAMs umfaßt, so daß es beim Betrieb, während die Eingangswerte für die gegebenen Pixel in das Farb-RAM und das Tiefen-RAM geschrieben werden, den Mitteln zum Lesen des momentanen Tiefenwertes ermöglicht wird, den momentanen Tiefenwert eines nachfolgenden Pixels in der Folge aus einem Ausgang des Speichers mit seriellem Zugriff zu lesen.
2. Vorrichtung nach Anspruch 1, in der das nachfolgende Pixel das nächste Pixel in der Folge ist.
3. Vorrichtung nach Anspruch 1 oder 2, in der das Mittel zur Zuführung der Adresse jedes selektierten Pixels Mittel zur Zuführung von Taktsignalen zum Speicher mit seriellem Zugriff beinhaltet, um den momentanen Tiefenwert für jedes aufeinanderfolgende Pixel nacheinander am Ausgang des Speichers mit seriellem Zugriff zur Verfügung zu stellen.
4. Vorrichtung nach Anspruch 1 bis 3, in der die Vergleichsmittel einen digitalen Komparator umfassen, der einen ersten mit den Mitteln zur Erzeugung der aufeinanderfolgenden Tiefenwerte verbundenen Eingang und einen zweiten Eingang zur Verbindung mit dem Ausgang des Speichers mit seriellem Zugriff des Tiefen-RAMs hat.
5. Vorrichtung nach Anspruch 4 mit Mitteln zur Verbindung eines Ausgangs des Komparators mit Schreibfreigabe-Eingängen des Tiefen-RAMs und des Fab-RAMs.
6. Vorrichtung nach einem der Ansprüche 1 bis 5 mit einem oder mehreren getakteten Latches zur Synchronisation von dem Farb-RAM und dem Tiefen-RAM zugeführten Daten mit den Adreßeingängen des Farb-RAMs beziehungsweise des Tiefen-RAMs zugeführten Signalen und mit Steuereingängen dieser RAMs zugeführten Signalen.
7. Vorrichtung nach einem der Ansprüche 1 bis 6 mit einer Ablaufsteuerungsschaltung zur Zuführung von Steuersignalen zum Farb-RAM und zum Tiefen- RAM synchron mit der Selektion der Pixel der Folge.
8. Vorrichtung nach einem der Ansprüche 1 bis 7, in der das Farb-RAM einen Haupt-Array mit wahlfreiem Zugriff und einen Speicher mit seriellem Zugriff umfaßt, wobei die Mittel zum Schreiben der Eingangsfarbwerte in das Farb-RAM zur Verbindung mit dem Haupt-Array des Farb-RAMs angeordnet sind, und wobei die Vorrichtung außerdem einen Bildausgang umfaßt, der zur Verbindung mit dem Ausgang des Speichers mit seriellem Zugriff des Farb-RAMs angeordnet ist.
9. Vorrichtung nach einem der Ansprüche 1 bis 8, wobei das Farb-RAM und das Tiefen-RAM einen oder mehrere identische Integrierte-Schaltung-Speicher umfassen.
10. Elektronisches Grafiksystem, das eine Vorrichtung nach einem der Ansprüche 1 bis 9 enthält.
DE3851680T 1987-08-07 1988-07-26 Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind. Expired - Fee Related DE3851680T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB8718807A GB2207840B (en) 1987-08-07 1987-08-07 Method of and apparatus for modifying data stored in a random access memory

Publications (2)

Publication Number Publication Date
DE3851680D1 DE3851680D1 (de) 1994-11-03
DE3851680T2 true DE3851680T2 (de) 1995-04-27

Family

ID=10622006

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3851680T Expired - Fee Related DE3851680T2 (de) 1987-08-07 1988-07-26 Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind.

Country Status (6)

Country Link
US (1) US4924415A (de)
EP (1) EP0307019B1 (de)
JP (1) JPS6465671A (de)
KR (1) KR970006034B1 (de)
DE (1) DE3851680T2 (de)
GB (1) GB2207840B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
US5038297A (en) * 1988-09-13 1991-08-06 Silicon Graphics, Inc. Method and apparatus for clearing a region of Z-buffer
US5249264A (en) * 1988-11-14 1993-09-28 International Business Machines Corporation Image display method and apparatus
US5161221A (en) * 1988-12-12 1992-11-03 Eastman Kodak Company Multi-memory bank system for receiving continuous serial data stream and monitoring same to control bank switching without interrupting continuous data flow rate
JP2762502B2 (ja) * 1988-12-29 1998-06-04 ダイキン工業株式会社 立体表示方法およびその装置
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing
IE63461B1 (en) * 1989-09-11 1995-04-19 Jeremy Owen Jones Improvements in and relating to stable memory circuits
CA2038412C (en) * 1990-04-26 2001-10-16 Glenn M. Courtright Polygon sort engine
EP0467394B1 (de) * 1990-07-20 1999-10-20 Kabushiki Kaisha Toshiba Graphisches Verarbeitungsgerät
EP0492938B1 (de) * 1990-12-21 1995-11-22 Sun Microsystems, Inc. Verfahren und Einrichtung zur Erhöhung der Verarbeitungsgeschwindigkeit eines Anzeigesystems mit Doppel-Pufferspeicher
US5375196A (en) * 1990-12-27 1994-12-20 Calcomp Inc. Rapid line drawing in computer graphics employing floating-point arithmetic
US5404448A (en) * 1992-08-12 1995-04-04 International Business Machines Corporation Multi-pixel access memory system
US5321809A (en) * 1992-09-11 1994-06-14 International Business Machines Corporation Categorized pixel variable buffering and processing for a graphics system
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
JP3807754B2 (ja) * 1993-12-30 2006-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ビデオramにおける自己タイミング式リアルタイム・データ転送
JPH0822556A (ja) * 1994-07-08 1996-01-23 Ricoh Co Ltd テクスチャマッピング装置
US5561750A (en) * 1994-09-22 1996-10-01 Seiko Epson Corporation Z-buffer tag memory organization
DE19516090C2 (de) * 1995-05-03 1997-03-06 Vdo Luftfahrtgeraete Werk Gmbh Verfahren zur Darstellung von Objekten mit Hilfe einer Bildwiedergabeeinrichtung
JPH09212412A (ja) * 1996-02-06 1997-08-15 Sony Computer Entertainment:Kk メモリアクセス方法及びデータ処理装置
KR19990029027A (ko) * 1996-05-17 1999-04-15 엠. 제이. 엠. 반캄 표시장치
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
US8081182B2 (en) * 2004-03-03 2011-12-20 Qualcomm Incorporated Depth buffer for rasterization pipeline
US8194016B2 (en) * 2007-09-26 2012-06-05 Chimei Innolux Corporation Liquid crystal display with peep-preventing function
JP4995969B2 (ja) * 2007-10-03 2012-08-08 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 行傾きコードワード及び列傾きコードワードを使用する画素ブロック値の可逆圧縮のための方法、圧縮器、伸張器及び信号表現
US9665951B2 (en) * 2007-12-20 2017-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Unified compression/decompression graphics architecture
US8643644B2 (en) * 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439760A (en) * 1981-05-19 1984-03-27 Bell Telephone Laboratories, Incorporated Method and apparatus for compiling three-dimensional digital image information
JPS5952380A (ja) * 1982-09-17 1984-03-26 Victor Co Of Japan Ltd 補間装置
US4475104A (en) * 1983-01-17 1984-10-02 Lexidata Corporation Three-dimensional display system
GB2166316B (en) * 1984-10-31 1987-10-28 Sony Corp Video signal processing circuits
US4748572A (en) * 1984-12-05 1988-05-31 The Singer Company Video processor architecture with distance sorting capability
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
US4679041A (en) * 1985-06-13 1987-07-07 Sun Microsystems, Inc. High speed Z-buffer with dynamic random access memory

Also Published As

Publication number Publication date
EP0307019A3 (en) 1990-02-07
DE3851680D1 (de) 1994-11-03
US4924415A (en) 1990-05-08
JPS6465671A (en) 1989-03-10
GB8718807D0 (en) 1987-09-16
EP0307019B1 (de) 1994-09-28
GB2207840B (en) 1991-09-25
KR890004235A (ko) 1989-04-20
EP0307019A2 (de) 1989-03-15
GB2207840A (en) 1989-02-08
KR970006034B1 (ko) 1997-04-23

Similar Documents

Publication Publication Date Title
DE3851680T2 (de) Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind.
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE3853393T2 (de) Verfahren und Vorrichtung zur zweidimensionalen Bilderstellung.
DE69431329T2 (de) Verfahren zur Erzeugung von Bilddaten
US4967392A (en) Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
DE69122557T2 (de) Bilderzeugung
US4225861A (en) Method and means for texture display in raster scanned color graphic
US5481275A (en) Resolution enhancement for video display using multi-line interpolation
DE69427574T2 (de) NTSC-Anzeige der Animation bewegter Bilder
US4127849A (en) System for converting coded data into display data
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE69130132T2 (de) Verfahren zur Erzeugung von Adressen zu texturierten, in RIP Maps gespeicherten graphischen Primitiven
DE69132041T2 (de) Dreieckinterpolator
DE69333508T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
DE3750211T2 (de) Bildanzeigeverarbeitungseinheit für ein graphisches Endgerät.
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE69119630T2 (de) Verfahren und Einrichtung zur Maximierung von Spaltenadressenkohärenz für den Zugriff von seriellen und Direktzugriffstoren in einem graphischen System mit einem Rasterpufferspeicher
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
JPS6295666A (ja) 画像発生装置
DE3718501A1 (de) Videoanzeigegeraet
DE69029987T2 (de) Verfahren und Gerät zur parallelen Wiedergabe von Polygonen und Pixeln
JPH08278779A (ja) グラフィックス用フレームメモリ装置
DE3889557T2 (de) Vektorgenerator für Raster-Bildschirmanzeige.
DE69229033T2 (de) Bildverarbeitungssystem

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8339 Ceased/non-payment of the annual fee