-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und ein Gerät zum Erzeugen
von Bilddaten. Eine Ausführungsform
der Erfindung, die anschließend
offenbart wird, versucht, ein Verfahren und ein Gerät bereitzustellen,
die in der Lage sind, realistische Bilder, die ein Bild darstellen,
zu erzeugen. Ausführungsformen
der Erfindung sind insbesondere (jedoch nicht ausschließlich) für Videospielgeräte und Computergraphikanwendungen
nützlich,
insbesondere, wo Hardware-Resourcen beschränkt sind.
-
Bei
Computergraphikanwendungen werden Bilddaten, um Objekte realistisch
darzustellen, in einem dreidimensionalen oder "3D"-Bildraum
dargestellt, wobei das Objekt in eine Anzahl von Polygonflächen getrennt
wird, beispielsweise dreiecksförmige
oder quadratische Flächen,
wobei jede von diesen als Einheit verarbeitet wird. Bilddaten, die
für jede derartige
Polygonfläche
erzeugt werden, werden dann nacheinander in einem Rahmenspeicher
gespeichert, beispielsweise einem Videospeicher mit wahlfreiem Zugriff
(RAM), dessen Speicherplatz einem Anzeigebildschirm eines Monitors
oder einer anderen Einrichtung entspricht, die dazu verwendet wird,
das Bild des Objekts von den Bilddaten, die im Rahmenspeicher gespeichert
sind, zu produzieren.
-
Bei
derartigen Anwendungen ist ein dafür vorgesehener Darstellungsprozessor
normalerweise zwischen einer Zentralverarbeitungseinheit (CPU) und
einem Rahmenspeicher vorgesehen, um die Verarbeitungsgeschwindigkeit
zu verbessern. Wenn die Bilddaten erzeugt werden, liefert die CPU
einen Darstellungsbefehl zum Darstellungsprozessor, um eine Polygonbildfläche, beispielsweise
ein Dreieck oder ein Quadrat (dieser Befehl wird anschließend als "Plotterbefehl" bezeichnet) zu erzeugen,
so daß die
CPU keine Bilddaten erzeugen und diese unmittelbar zum Rahmenspeicher
liefern muß.
Der Plotter überträgt den Befehl,
der von der CPU empfangen wird, und stellt anschließend die
Polygonbildfläche im
Rahmenspeicher graphisch dar.
-
1A und 1B zeigen
ein Verfahren, um Polygonbildflächen
graphisch darzustellen. Um Bilddaten zu erzeugen, die ein Festkörperobjekt
darstellen, welches rechteckige Flächen hat, mit gezeigten Scheiteln
A bis G, wie in 1A gezeigt ist, wird jeder der
rechteckigen Flächenbereiche
des Objekts separat verarbeitet. Das heißt, bei dem gezeigten Bei spiel
werden, wie in 1B gezeigt ist, separate Plotterbefehle
IPa, IPb und IPc durch die CPU erzeugt, um Polygonbildflächen Pa,
Pb bzw. Pc zu erzeugen. Die Plotterbefehle IPa, IPb und IPc sind schematisch
in 2 gezeigt, wobei jeder entsprechende Scheitelkoordinaten
(Ax, Ay) bis (Dx, Dy), (Cx, Cy) bis (Fx, Fy) und Bx, By) bis (Gx,
Gy) aufweist, und eine Codebereitstellungsinformation, welche die
Farbe und andere Merkmale der Bilddaten betrifft, die in den Polygonflächenbereichen
Pa, Pb und Pc enthalten sein sollen.
-
Die
Plotterbefehle, die durch die CPU erzeugt werden, werden dadurch
zum Plotter übertragen,
der Bilddaten für
jede der Polygonflächenbereiche
als Antwort auf die Plotterbefehle erzeugt und die Daten im Rahmenspeicher
speichert. Die Bilddaten werden anschließend vom Rahmenspeicher gelesen,
in ein Analogsignal umgesetzt und durch einen Monitor angezeigt,
um ein Bild des Objekts zu erzeugen, wie in 1A gezeigt
ist.
-
CD-I-Platten
sind eine Art einer vorher entwickelten CD-ROM-Platte, die das Aufzeichnen
von Audiodaten und verschiedener anderer Datenarten einschließlich Bilddaten,
Textdaten, Computerprogrammen usw. erlaubt. Die Bilddaten werden
in komprimierter Form auf der CD-I-Platte aufgezeichnet.
-
Es
ist schwierig, Bewegtbilder mittels eines 3D-Graphiksystems darzustellen.
Folglich werden Digital-Bewegtbild-Wiedergabesysteme vorgesehen, welche
komprimierte Bilddaten von einer CD-ROM als Sekundärspeicher
empfangen, um ein Hintergrundbild oder dgl. als Komplement zu einem 3D-System
bereitzustellen. Diese digitalen Bewegtbild-Wiedergabesysteme sind
jedoch als 3D-Graphiksysteme hinsichtlich der Interaktivität etwas
geringwertiger.
-
3 zeigt
ein Blockdiagramm eines vor kurzem vorgeschlagenen Zusammensetzungssystems,
welches ein 3D-Graphiksystem und ein Bewegtbild-Wiedergabesystem
aufweist. Das System von 3 besitzt einen Hauptbus 10 wie
auch eine Anzahl von Geräten,
die daran angeschlossen sind, einschließlich einer CPU 11,
einem Hauptspeicher 12, einem CD-ROM-Decoder 13 und
einem Bildexpander 14. Der CD-ROM-Decoder 13 empfängt codierte
Daten von einer CD-I-Platte, die durch einen CD-ROM-Treiber 15 reproduziert
wird und decodiert die empfangenen Daten. Die Daten, welche durch den
CD-ROM-Decoder 13 von der Platte bereitgestellt werden,
umfassen Plotterbefehle für
Computergraphiken und Animationsdaten wie auch Standbilddaten natürlicher
Bilder und Bewegtbild-Abbildungsdaten, welche durch die diskrete
Kosinustransformation (DCT) komprimiert wurden.
-
Die
decodierten Daten, welche durch den CD-ROM-Decoder 13 geliefert
werden, werden zuerst zum Hauptspeicher 12 übertragen,
wo sie gespeichert werden. Die CPU überträgt anschließend die Plotterbefehle vom
Hauptspeicher 12 zu einem Plotter 19 über einen FIFO-Puffer 16,
einen Koordinatenrechner 17 und einen weiteren FIFO-Puffer 18. Der
Koordinatenrechner 17 erzeugt neue Scheitelkoordinaten
für den
Polygon-Bild-Flächenbereich,
der zu erzeugen ist, durch einen vorher festgelegten Plotterbefehl.
Die Plotterbefehle vom Koordinatenrechner werden zum Plotter 19 über den
FIFO 18 übertragen,
und der Plotter 19 führt
die Befehle aus, um die entsprechenden Polygonflächenbereiche graphisch darzustellen,
um Bilddaten zu erzeugen, die im Rahmenspeicher 20 gespeichert
werden.
-
Die
CPU 11 liefert die komprimierten Bilddaten vom Hauptspeicher 12 zum
Bildexpander 14, wo sie über einen exklusiven Internbus
mit einem örtlichen
Rahmenspeicher 21 gekoppelt werden, wobei der Expander 14 die
komprimierten Bilddaten expandiert und die expandierten Bilddaten
speichert. Auch unter Bezugnahme auf 4 empfängt der
Bildexpander 14 die komprimierten Bilddaten an einem Eingangsanschluß 31,
von dem die Daten zu einem Huffman-Decoder 32 geliefert
werden. Nach der Huffman-Decodierung werden die Daten vom Decoder 32 zu
einem Dequantisierer 33 zur Requantisierung geliefert.
Die requantisierten Daten vom Gerät 33 werden zu einer
inversen DCT-Schaltung 34 geliefert, welche die Daten in
ihre ursprüngliche
Form vor der Komprimierung transformiert, um diese auf der CD-ROM
zu speichern. Diese Daten werden in einer 8 × 8-Matrixform ausgegeben und
an einem Ausgangsanschluß 35 des
Bildexpanders 14 ausgegeben.
-
Die
expandierten Bilddaten werden vom lokalen Rahmenspeicher 21 in
einen D/A-Umsetzer gelesen, wo sie in eine Analogform umgesetzt
werden. Die analogen Daten vom Umsetzer 22 werden zu einem
ersten Eingang eines Multiplexers 23 geliefert, der die
3D-Bilddaten vom Rahmenspeicher 20 über einen weiteren D/A-Umsetzer 24 an
einem zweiten Eingangsanschluß des
Multiplexers 23 empfängt. Der
Multiplexer 23 wählt
eines der Analogsignale aus, die an dessen ersten und zweiten Eingangsanschluß empfangen
werden, die an einen Bildmonitor 25 ausgegeben werden,
um ein zusammengesetztes Bild zu erzeugen.
-
Man
sieht, daß das
zusammengesetzte System von 3 relativ
komplex ist, da dieses einen separaten Schaltungsaufbau erfordert,
um die 3D-Bilddaten und die Bewegtbilddaten zu erzeugen. Wenn außerdem die
3D-Bilddaten und die Bewegtbilddaten erzeugt sind, ist ein Multiplexer
erforderlich, um die Daten zu mischen, um ein zusammengesetztes
Bild zu erzeugen.
-
Die
Interpretation von 3D-Graphiken muss sicherstellen, dass absorbierte
Teile nicht sichtbar sind. Die US-A 4 885 703 lehrt eine Abtastzeilen-Annäherung,
um eine visuell korrekte Interpretation sicherzustellen. Die EP-A
0 243 051 lehrt ein Verfahren, um Videoobjekte aufzunehmen, wenn
die Objekte gemäß einer
Anzeigeliste gezeichnet werden.
-
Die
vorliegende Erfindung ist in den beigefügten Patentansprüchen definiert.
-
Gemäß einigen
Ausführungsformen
der vorliegenden Erfindung wird ein Verfahren bereitgestellt, um
Bilddaten von komprimierten Daten zu erzeugen, die in einem Speicher
gespeichert sind, wobei der Speicher mit einem Systembus gekoppelt,
mit dem ein Datenprozessor und ein Datenexpandiergerät ebenfalls
gekoppelt sind. Das Verfahren weist folgende Schritte auf: Übertragen
der komprimierten Daten zum Datenexpandiergerät über den Systembus, ohne die
komprimierten Daten über
den Datenprozessor zu führen,
Dekomprimieren der komprimierten Daten mittels des Datenexpandiergeräts, um dekomprimierte
Daten zu erzeugen, Übertragen
der dekomprimierten Daten vom Datenexpandiergerät zum Speicher, ohne die komprimierten
Daten über
den Datenprozessor zu (ihren, und Erzeugen der Bilddaten auf der
Basis der dekomprimierten Daten.
-
Gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Erzeugen von Bilddaten
mittels eines Systems vorgesehen, das einen Datenprozessor auf,
einen Speicher, der eine Bilddaten-Erzeugungsbefehlszeichenfolge speichert,
eine Bilddaten-Erzeugungseinrichtung und einen Systembus, der mit
dem Datenprozessor, dem Speicher und der Bilddatenerzeugungseinrichtung gekoppelt
ist, aufweist. Das Verfahren umfasst folgende Schritte: Übertragen
der Bilddaten-Erzeugungsbefehlszeichenfolge vom Speicher zur Bilddatenerzeugungseinrichtung über den
Systembus, ohne die Bilddaten-Erzeugungsbefehlszeichenfolge über den
Datenprozessor zu führen,
und Erzeugen von Bilddaten mittels der Bilddaten-Erzeugungseinrichtung,
wobei die Bilddaten-Erzeugungsbefehls-Zeichenfolge verwendet wird.
-
Gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung weist ein Bilddaten-Erzeugungsgerät auf einen
Systembus, ein Datenverarbeitungsgerät, weiches mit dem Systembus
gekoppelt ist und den Zugriff darauf während eingeschränkter Zugriffszeitintervalle
beschränkt
und den Systembus freigibt, um einen Zugriff darauf während Freigabezeitintervalle
zuzulassen, einen Speicher, der mit dem Systembus gekoppelt ist
und einen ersten Speicherbereich aufweist, um komprimierte Bilderzeugungsdaten
zu speichern, einen Datenexpander, der mit dem Systembus gekoppelt
ist und der die komprimierten Bilderzeugungsdaten dekomprimiert, um
dekomprimierte Bilderzeugungsdaten zu erzeugen, ein Datentransfergerät, welches
mit dem Systembus gekoppelt ist, welches die komprimierten Bilderzeugungsdaten
vom Speicher zum Bildexpander überträgt und die
dekomprimierten Bilderzeugungsdaten vom Bildexpander zum Speicher
während
zumindest einiger Zeitintervalle überträgt, ohne die komprimierten
Bilderzeugungsdaten oder die dekomprimierten Bilddaten über das
Datenverarbeitungsgerät
zu (ihren, wobei der Speicher die dekomprimierten Bilder zeugungsdaten
vom Bildexpander in einem zweiten Speicherbereich speichert, und
ein Bilderzeugungsgerät,
welches mit dem Systembus gekoppelt ist, die dekomprimierten Bilderzeugungsdaten vom
Speicher empfängt
und die Bilddaten davon erzeugt.
-
Gemäß einer
noch weiteren Ausführungsform
der vorliegenden Erfindung weist ein Bilddaten-Erzeugungsgerät auf: einen
Systembus, ein Datenverarbeitungsgerät, welches mit dem Systembus gekoppelt
ist und welches den Zugriff darauf während eingeschränkter Zugriffszeitintervalle
einschränkt, wobei
der Systembus freigegeben wird, um einen Zugriff darauf während Freigabezeitintervallen
zuzulassen, einen Speicher, welcher mit dem Systembus gekoppelt
ist und der einen ersten Speicherbereich hat, um eine Bilddaten-Erzeugungsbefehl-Zeichenfolge zu
speichern, einen Bilddatengenerator, welcher mit dem Systembus gekoppelt
ist und welcher Bilddaten erzeugt, wobei die Bilddaten-Erzeugungsbefehl-Zeichenfolge
verwendet wird, und ein Datenübertragungsgerät, welches
mit dem Systembus gekoppelt ist und welches die Bilddaten-Erzeugungsbefehl-Zeichenfolge
vom Speicher zum Bildgenerator während zumindest
einiger der Freigabezeitintervalle überträgt, ohne die Bilddaten-Erzeugungsbefehl-Zeichenfolge über das
Datenverarbeitungsgerät
zu führen.
-
Gemäß einer
noch weiteren Ausführungsform
der vorliegenden Erfindung weist ein Spielwiedergabegerät auf: einen
Systembus, ein Datenverarbeitungsgerät, welches mit dem Systembus
gekoppelt ist und welches den Zugriff darauf während eingeschränkten Zugriffszeitintervallen
beschränkt,
wobei der Systembus freigegeben wird, um einen Zugriff darauf während Freigabezeitintervallen
zuzulassen, einen Hauptspeicher, der mit dem Systembus gekoppelt
ist und der einen ersten Speicherbereich hat, um eine Bilddaten-Erzeugungsbefehl-Zeichenfolge
zu speichern, eine Spielbenutzer-Eingabeeinrichtung mit einer Einrichtung,
um den Hauptbus zu koppeln und betreibbar ist, Spielbetätigungsbefehlsdaten
als Antwort auf Spielbetätigungsbefehle
von einem Benutzer zu empfangen und um die Spielbetätigungsbefehle
zum Hauptbus zu liefern, einen Bilddatengenerator, der mit dem Systembus
gekoppelt ist und der Bilddaten erzeugt, die ein Spielbild zeigen,
wobei die Bilddaten-Erzeugungsbefehl-Zeichenfolge verwendet wird,
wobei das Datenverarbeitungsgerät
die Bilddaten-Erzeugungsbefehl-Zeichenfolge
als Antwort auf die Spieloperations-Befehlsdaten modifiziert, wobei
das Spielwiedergabegerät
außerdem aufweist:
ein Datenübertragungsgerät, welches
mit dem Systembus gekoppelt ist und welches die Bilddaten-Erzeugungsbefehl-Zeichenfolge
vom Hauptspeicher zum Bilddatengenerator während zumindest einiger der
Freigabezeitintervalle überträgt, ohne
die Bilddaten-Erzeugungsbefehl-Zeichenfolge über das Datenverarbeitungsgerät zu führen, eine Rahmenspeichereinrichtung,
um die Bilddaten, die durch den Bilddatengenerator erzeugt werden,
zu speichern, und eine Einrichtung, um die Bilddaten von der Rahmenspeichereinrichtung
zu liefern, um das Spielbild mittels einer Anzeigeeinrichtung zu
erzeugen.
-
Gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung weist eine Schaltung zur Verwendung bei
einem Bilderzeugungsgerät
auf: einen Systembus, einen Datenprozessor, der mit dem Systembus
verbunden ist und der den Zugriff darauf während eingeschränkter Zugriffsintervalle
einschränkt,
wobei der Systembus freigegeben wird, um einen Zugriff darauf während Freigabezeitintervallen zuzulassen,
einen Speicher, welcher mit dem Systembus verbunden ist und der
einen ersten Speicherbereich hat, um eine Bilderzeugungsbefehl-Zeichenfolge
zu speichern, einen Bilddatengenerator, der mit dem Systembus verbunden
ist und der Bilddaten erzeugt, wobei die Bilddaten-Erzeugungsbefehl-Zeichenfolge
verwendet wird, und ein Datenübertragungsgerät, welches
mit dem Systembus verbunden ist und welches die Bilddaten-Erzeugungsbefehl-Zeichenfolge
vom Speicher zum Bilddatengenerator während zumindest einiger Freigabezeitintervalle überträgt, ohne
die Bilddaten-Erzeugungsbefehl-Zeichenfolge über den Datenprozessor zu führen.
-
Gemäß Ausführungsformen
der Erfindung, die anschließend
beschrieben werden, wird durch Übertragen
der komprimierten Daten vom Speicher zu einem Datenexpander und
durch Zurückbringen der
dekomprimierten Daten vom Datenexpander zum Speicher, um gespeichert
zu werden, ohne die komprimierten oder dekomprimierten Daten durch
das Datenverarbeitungsgerät
zu führen,
das Datenverarbeitungsgerät
davon befreit, andere Aufgaben durchzuführen, so daß eine schnellere Verarbeitungsfähigkeit
erzielbar ist. Weiter ermöglicht
durch Zurückbringen
der dekomprimierten Daten zu einem Speicher, von dem auf sie durch
die Datenverarbeitungseinheit zugegriffen werden kann, die Ausführungsform,
daß die
Datenverarbeitungseinheit mehrere zusammengesetzte Bilddaten unter
Verwendung der dekomprimierten Daten erzeugt.
-
Weiter
erlauben es gemäß den Ausführungsformen,
die anschließend
erläutert
werden, durch Übertragen
von Bilddaten-Erzeugungsbefehl-Zeichenfolgen vom Speicher zu einer
Bilddaten-Erzeugungseinrichtung über
einen Systembus, ohne die Bilddaten-Erzeugungsbefehl-Zeichenfolge über einen
Datenprozessor zu führen,
die Ausführungsformen,
daß der
Datenprozessor noch andere Aufgaben ausführt, beispielsweise das Aktualisieren
von Erzeugungsbefehlen als Antwort auf den Befehl eines Benutzers
(beispielsweise in einem Videospielgerät), um eine interaktive Bilderzeugungsfähigkeit bereitzustellen.
Obwohl der Systembus nicht durch den Datenprozessor benutzt wird,
da er andere Verarbeitungsaufgaben ausführt, können die Befehlszeichenfolgen
zur Bilddaten-Erzeugungseinrichtung übertragen werden, so daß die Realzeiterzeugung realistischer
Bilder erhalten werden kann.
-
Durch
Koppeln des Datenexpanders und des Bilderzeugungsgerät mit dem
Systembus und durch Übertragen
der Daten zwischen dem Speicher und diesen Einrichtungen über den
Systembus ist es möglich,
die Notwendigkeit nach einem lokalen Speicher, der als Datenexpander
dient, zu beseitigen.
-
Da
der Datenprozessor von der Aufgabe befreit werden kann, Daten und
Befehle wie oben beschrieben zu übertragen,
ist er in der Lage, Aufgaben auszuführen, um ein zusammengesetztes
Bild zu erzeugen, wie auch Bilddarstellungsbefehle, ohne die Realzeitleistung
zu verschlechtern. Bei bestimmten Ausführungsformen können die
expandierten Bilddaten in ein Datenformat umgesetzt werden, welches dem
der Darstellungsbefehle entspricht, so daß die gemeinsame Verarbeitung
und Speicherung der expandierten Bilddaten und der Darstellungsbefehle
für das
Erzeugen von Bilddaten erleichtert wird, um ein Darstellungsbild
zwischen Bildern zu zeigen, welches mittels der expandierten Bilddaten
erzeugt wird.
-
Durch
Speichern von Darstellungszeichenfolgenbefehlen in einem Speicher,
der auf eine Datenprozessor zugreifen kann, kann der Datenprozessor
in die Lage versetzt werden, eine direkte Steuerung der Darstellungsbefehl-Zeichenfolgen
auszuüben,
um die Fähigkeit
zu verbessern, die Bilddaten als Antwort auf eine externe Eingabe
zu aktualisieren, beispielsweise von einer Spielsteuerung oder dgl.
Es ist daher möglich,
die Ansprechgeschwindigkeit des Systems zu verbessern, um größere Realzeit-Spielfähigkeiten
zu erzielen.
-
Da
es nicht notwendig ist, den Datenexpander mit einem lokalen Speicher
zu versehen, ist es bei bestimmten Ausführungsformen ausreichend, den
Datenexpander mit relativ kleinen FIFO-Puffern zu versehen, die
in der Lage sind, lediglich Daten zu halten, die der Datenexpander
in einer bestimmten Zeit bearbeitet, wie auch expandierte Daten
zur Übertragung
zum Speicher zu halten. Da der Datenprozessor von bestimmten zeitaufwendigen
Aufgaben befreit wurde, ist er in der Lage, bei der Verarbeitung
zum Expandieren der Bilddaten zu helfen, so daß die Hardware, die als Datenexpander
dient, reduziert werden kann.
-
Da
das Bilderzeugungsgerät
auf Befehle arbeitet, die vom Speicher übertragen werden, muß das Gerät lediglich
einen einzigen Darstellungsbefehl puffern. Folglich kann der Schaltungsaufwand
des Datenerzeugungsgeräts
ebenfalls reduziert werden.
-
Gemäß der Erfindung
ist jeder Darstellungsbefehl mit der Adresse des nächsten Darstellungsbefehls
im Speicher ausgestattet. Folglich erfordert jegliche Modifikation,
die eine Änderung
der Reihenfolge erforderlich macht, mit der die Darstellungsbefehle
ausgeführt
werden, lediglich das Ändern
bestimmter Befehle der Adressen in den Darstellungsbefehlen. Folglich
müssen
die Darstellungsbefehle nicht umgeschrieben oder umgeordnet werden
und an einer neuen Adresse gespeichert werden, so daß die Belastung
des Systembusses weiter reduziert wird.
-
Die
Ausführungsformen
der Erfindung, die anschließend
beschrieben werden, liefern:
ein Verfahren und ein Gerät zum Erzeugen
von Bilddaten, die die obigen Nachteile der oben beschriebenen früher vorgeschlagenen
Verfahren mildern oder überwinden;
und
ein Verfahren und ein Gerät zum Erzeugen von Bilddaten,
bei dem wirksame Verwendung von Hardwareresourcen gemacht wird und
das mittels weniger komplexer und weniger teueren Einrichtungen
durchgeführt
werden kann.
-
Die
Erfindung wird nun mittels eines beispielhaften und nichteinschränkenden
Beispiels mit Hilfe der beiliegenden Zeichnungen beschrieben, in
denen:
-
1A und 1B schematische
Diagramme sind, die bei der Darstellung bei einem beispielhaften
Bilddarstellungsverfahren verwendet werden;
-
2 beispielhafte
Darstellungsbefehle für das
Verfahren von 1A und 1B zeigen;
-
3 ein
Blockdiagramm eines zusammengesetzten Systems liefert, welches ein
vorher vorgeschlagenes 3D-Graphiksystem mit einem Bewegtbild-Wiedergabesystem
kombiniert;
-
4 ein
Blockdiagramm eines vorher vorgeschlagenen Bilddatenexpanders ist;
-
5 ein
Blockdiagramm einer Ausführungsform
eines Spielwiedergabegeräts
gemäß der vorliegenden
Erfindung ist;
-
6 ein
schematisches Diagramm ist, um einen Speicherplatz eines Rahmenspeichers
der Ausführungsform
von 5 zu erläutern;
-
7A und 7B beispielhafte
Polygondarstellungsbefehle zeigen, die bei der Ausführungsform
von 5 verwendet werden;
-
8 ein
schematisches Diagramm ist, welches bei der Erläuterung der Reihenfolge verwendet wird,
mit der Polygondarstellungsbefehle bei der Erfindung ausgeführt werden;
-
9 ein
Flußdiagramm
ist, welches bei der Erläuterung
einer Verarbeitungssequenz verwendet wird, um Bilddaten darzustellen
und anzuzeigen, wie dies durch die Ausführungsform von 5 ausgeführt wird;
-
10A und 10B parallele
Operationen zum Erzeugen einer Polygondarstellungs-Befehlszeichenfolge
und die simultane Ausführung
einer vorherig-erzeugten Befehlszeichenfolge bei der Ausführungsform
von 5 zeigen;
-
11 den
zeitlichen Ablauf der Verarbeitungen zeigt, die durch 10A und 10B gezeigt
sind;
-
12A bis 12C eine
Texturabbildungsverarbeitung zeigen;
-
13A bis 13F die
Verwendung eines Systembusses über
der Zeit bei der Ausführungsform
von 5 zeigen;
-
14 eine
schematische Darstellung eines beispielhaften Bilddatenübertragungsbefehls,
der bei der Ausführungsform
von 5 verwendet wird;
-
15 die
Zusammensetzung eines beispielhaften Bildrahmens schematisch zeigt;
-
16 ein
schematisches Diagramm ist, um ein Verfahren zu zeigen, um einen
Rahmen von Bilddaten zu beurteilen, um Bildübertragungen bei der Ausführungsform
von 5 auszuführen;
und
-
17 einen
beispielhaften Datenübertragungsbefehl
zeigt, der bei der Ausführungsform
von 5 verwendet wird.
-
Mit
Hilfe von 5 ist nun ein Bilderzeugungsgerät gemäß einer
Ausführungsform
der vorliegenden Erfindung im Blockformat gezeigt. Die Ausführungsform
von 5 ist zur Verwendung als Spielwiedergabemaschine
bestimmt und führt
sowohl eine 3D-Graphikfunktion als auch eine Bewegtbild-Wiedergabefunktion
aus.
-
Das
Gerät von 5 besitzt
einen Systembus oder einen Hauptbus 41, mit dem eine Zentralverarbeitungseinheit
(CPU) 42, ein Hauptspeicher 43 und eine Sortiersteuerung 45 verbunden
sind. Ein Bildexpander 51 ist ebenfalls mit dem Systembus 41 über einen
Eingabe-FIFO-Pufferspeicher 54 und einem Ausgabe-FIFO-Pufferspeicher 55 verbunden. Zusätzlich ist
ein CD-ROM-Decoder 52 mit dem Systembus 41 über einen
FIFO-Puffer 56 verbunden, und ein Plotter 61 ist
mit dem Systembus 41 über
einen FIFO-Puffer 62 verbunden.
-
Eine
Schnittstelle (I/F) 72 ist mit dem Systembus 41 verbunden
und stellt eine Einrichtung bereit, um eine Benutzerbefehls-Eingabeeinrichtung 71 (beispielsweise
eine Joystick-Steuerung, eine Tastatur oder irgendeine benutzer-betätigbare
Befehlseingabeeinrichtung) mit dem Systembus 41 zu verbinden.
Außerdem
ist ein Boot-ROM 73 mit dem Systembus 41 gekoppelt
und dient dazu, ein Programm bereitzustellen, um den Betrieb des
Spielabspielgeräts
beim Starten zu ermöglichen.
-
Ein
CD-ROM-Treiber 53 ist mit dem CD-ROM-Decoder 52 verbunden
und kann eine CD-ROM-Platte laden und Standbild- und Bewegtbilddaten
(die beispielsweise durch DCT komprimiert wurden) reproduzieren,
als auch Texturbilddaten, die auf polygonalen Bildflächen abgebildet
werden. Ein Anwendungsprogramm, welches ebenfalls auf der CD-ROM 90 aufgezeichnet
ist, enthält
Polygondarstellungsinstruktionen. Die Daten, die von der CD-ROM-Ansteuerung 53 reproduziert
werden, werden durch den CD-ROM-Decoder 52 decodiert, der die
decodierten Daten für
einen FIFO-Puffer 56 bereitstellt, der die Fähigkeit
hat, decodierte Daten, die von einem Sektor der CD-ROM 90 reproduziert
werden, zu speichern.
-
Die
CPU 52 führt
die Überwachungssteuerung
des gesamten Spielwiedergabegeräts
aus, und sie führt
weitere Aufgaben einschließlich
bestimmter Schritte beim Darstellen eines 3D-Objekts als Verbund
von Mehrfachpolygon-Bildflächen
durch. Insbesondere erzeugt, wie später ausführlicher beschrieben wird,
die CPU 52 Darstellungsbefehle, um ein Bild auf einem Anzeigebildschirm
zu erzeugen, und sie speichert die Darstellungsbefehle im Hauptspeicher 43.
-
Die
CPU 42 ist mit einem Cache-Speicher 46 versehen,
so daß die
CPU einen Satz an Instruktionen ausführen kann, ohne jeden vom Systembus 41 zu
holen. Die CPU 42 ist außerdem mit einem Koordinatenrechner 44 als
internen Coprozessor versehen, um eine Koordinatentransformationsfunktion auszuführen, um
die Koordinaten, die innerhalb der Polygondarstellungebefehle enthalten
sind, die der Bewegung von 3D-Objekten innerhalb eines Bilds entsprechen,
beispielsweise Koordinatenänderung aufgrund
der Drehung eines derartigen Objekts zu transformieren. Ein Koordinatenrechner 44 führt die Transformation
der Darstellungsbefehle von den 3D-Polygonbildflächenerzeugungsbefehlen für die zweidimensionalen
Polygondarstellungsbefehle aus, wobei er die transformierten 3D-Befehle
auf die Ebene des Bilds projiziert.
-
Da
die CPU 42 mit dem Instruktionscachespeicher 46 und
dem Koordinatenrechner 44 versehen ist, ist sie in der
Lage, einen Teil ihrer Verarbeitungsaufgaben auszuführen, ohne
den Systembus 41 zu verwenden, so daß der Systembus 41 von
Zeit zu Zeit für
andere Aufgaben freigegeben werden kann.
-
Der
Bildexpander 51 dient dazu, die komprimierten Daten, die
von der CD-ROM 90 reproduziert werden, zu expandieren.
Bei der Ausführungsform von 5 besitzt
der Bildexpander 51 Hardware, welche dem Dequantisierer 33 und
dem inversen diskreten Kosinustransformator 34 von 4 entspricht,
während
die Funktion des Huffman-Decoders 32 von 4 mittels
Software durch die CPU 42 ausgeführt wird. Folglich ist der
Bildexpander 51 nach der Ausführungsform von 5 relativ
weniger komplex als der Bildexpander 14 von 3 und 4.
-
Der
Bildexpander 51 führt
das Decodieren der Daten in Makroblockeinheiten durch, die jeweils aus
16 × 16
Pixeln eines Bilds zusammengesetzt sind. Die expandierten Daten
werden Makroblock um Makroblock zwischen dem Bildexpander 51 und
dem Hauptspeicher 43 übertragen.
Folglich erfordert jeder der FIFO-Puffer 54 und 55 eine
Kapazität
von lediglich einem Makroblock.
-
Ein
Rahmenspeicher 63 ist mit dem Plotter 61 über einen
internen Bus gekoppelt. Der Plotter 61 führt jeden
Darstellungsbefehl aus, der zu ihm zum Hauptspeicher 43 über den
FIFO-Puffer 62 übertragen
wird, und schreibt die Daten, die als Antwort auf den Befehl erzeugt
werden, in den Rahmenspeicher 63. Der FIFO-Puffer 62 ist
folglich mit einer Speicherkapazität eines Darstellungsbefehls
versehen.
-
Der
Rahmenspeicher 63 ist mit einem Bildspeicherbereich versehen,
um ein graphisch dargestelltes Bild zu speichern, wie auch mit einem
Texturspeicherbereich, um Texturbilddaten zu speichern, und einen
Tabellenspeicherbereich, um eine Farbnachschlagetabelle (CLUT) zu
speichern. Wenn man auch 6 dazu betrachtet, so ist der
Speicherbereich des Rahmenspeichers 63 hier schematisch
gezeigt. Wie man aus 6 erkennt, ist der Speicherbereich
zweidimensional durch Spalten- und Reihenadressen angeordnet. Im
Speicherbereich dient ein Bereich AT als Texturspeicherbereich,
und mehrere Texturspeichermuster können darin gespeichert werden.
AC bezeichnet einen Tabellenspeicherbereich, um die Farbnachschlagetabelle
CLUT zu speichern.
-
Die
Daten, welche in der Farbnachschlagetabelle gespeichert sind, werden
von der CD-ROM bereitgestellt und zum Rahmenspeicher 63 über die Sortiersteuerung 45 von
dem CD-ROM-Decoder 52 übertragen.
In gleicher Weise werden die Texturbilddaten von der CD-ROM übertragen,
jedoch zunächst durch
den Bildexpander 51 expandiert und später zum Rahmenspeicher 63 vom
Hauptspeicher 43 übertragen.
-
Der
Speicherbereich AD in 6 dient als Bildspeicherbereich,
der zwei Rahmenspeicherbereiche aufweist, wobei einer davon zu jeder
bestimmten Zeit als ein Bilddarstellungsbereich dient und der andere
davon dann als Bilddaten-Ausgabepuffer dient. Der Rahmenpufferbereich,
der in einem bestimmten Zeitpunkt zum Ausgeben von Bilddaten zur
Anzeige verwendet wird, wird als "Anzeigepuffer" bezeichnet, während der Rahmenpufferbereich,
der zu einem bestimmten Zeitpunkt verwendet wird, um die Bilddaten darzustellen,
als "Darstellungspuffer" bezeichnet wird.
In einem bestimmten Zeitpunkt wird einer der Rahmenpuffer als Darstellungspuffer
verwendet, während
der andere gleichzeitig als Anzeigepuf fer verwendet wird. Bei Abschluß des Darstellungsprozesses
werden die Rollen der beiden Puffer umgeschaltet. Der Umschaltbetrieb
ist synchron mit einer vertikalen Synchronisationsperiode der Bilddaten. Die
Bilddaten, die vom Anzeigepuffer im Rahmenspeicher 63 gelesen
werden, werden über
einen D/A-Umsetzer 64 an einen Bildanzeigemonitor 65 ausgegeben,
um ein Bildschirmbild zu erzeugen.
-
Die
Sortiersteuerung 45 arbeitet in einer Weise ähnlich der
einer DMA-Steuerung und dient dazu, die Bilddaten zwischen dem Hauptspeicher 43 und dem
Bildexpander 51 zu übertragen
wie auch eine Zeichenfolge von Darstellungsbefehlen vom Hauptspeicher 53 zum
Plotter 61 zu übertragen.
Die Sortiersteuerung 45 führt die oben beschriebenen Übertragungen
während
einer Zeit durch, wenn der Systembus 41 von der CPU 42 freigegeben
ist, wie auch andere Komponenten, beispielsweise die Benutzerbefehlseingabe 71,
und sie fuhrt die Übertragung
der Bilddaten und der Darstellungsbefehl-Zeichenfolgen durch, ohne
entweder die Daten oder die Befehle über die CPU 42 zu
führen.
Bei bestimmten Ausführungsformen
informiert die CPU 42 die Sortiersteuerung 45,
daß der
Systembus 41 durch die CPU freigegeben ist. Bei anderen
Ausführungsformen
gibt die Sortiersteuerung 45 den Bus 41 von der
CPU 42 zwangsweise frei.
-
Der
Hauptspeicher 43 besitzt einen Speicherbereich, um komprimierte
Bilddaten (entweder Bewegtbilddaten oder Standbilddaten) zu speichern,
sowie einen Speicherbereich für
expandierte Bilddaten vom Bildexpander 51. Der Hauptspeicher 43 besitzt
außerdem
einen Speicherbereich (anschließend
als "Paketpuffer" bezeichnet), um
Graphikdaten, beispielsweise eine Zeichenfolge von Darstellungsbefehlen
zu speichern. Der Paketpuffer wird anteilig durch die CPU 42 und
den Plotter 61 genutzt, so daß der Paketpuffer durch die
CPU 42 verwendet wird, um Darstellungsbefehle zu erzeugen und
dazu verwendet wird, auch die Darstellungsbefehle an den Plotter 61 zu übertragen.
Bei der vorliegenden Ausführungsform
arbeitet die CPU 42 und der Plotter 61 parallel
miteinander. Folglich sind bei dieser Ausführungsform zwei Paketpuffer
vorgesehen, d. h., ein Darstellungsbefehl-Erzeugungspaketpuffer
(anschließend
als "Einstellpaketpuffer" bezeichnet) und
ein Darstellungsbefehl-Übertragungspaketpuffer
(anschließend
als "Ausführungspaketpuffer" bezeichnet). In
einem bestimmten Zeitpunkt, wenn einer der Puffer als Einstellungspaketpuffer verwendet
wird, wird der andere gleichzeitig als Ausführungspaketpuffer verwendet.
Bei Beendigung der Übertragung
von Befehlen vom Ausführungspaketpuffer
werden die Funktionen der beiden Paketpuffer umgeschaltet.
-
Wenn
im Betrieb das Spielwiedergabegerät von 5 eingeschaltet
wird und eine CD-ROM 90 in das Laufwerk 53 eingeführt wird,
wird das Programm, welches auf der Boot- ROM 73 gespeichert ist, um das
Gerät zu
initialisieren, um ein Spiel auszuführen, durch die CPU 42 ausgeführt, und
danach werden die Daten, welche auf der CD-ROM 90 aufgezeichnet sind,
davon gelesen. In diesem Betriebszustand werden die Daten, die zu
verwenden sind, gemäß der Identifikationsinformation,
die in den Daten enthalten ist, decodiert, in jedem der Sektoren
der CD-ROM 90, und die decodierten Daten werden auf Fehler
und dgl. überprüft. Dann
bewirkt in Abhängigkeit
vom Ergebnis des Prüfprozesses
die CPU 42, daß die
komprimierten Bilddaten, die Darstellungsbefehle und das Programm
durch die CD-ROM 90 ausgeführt werden, die in den Hauptspeicher 43 geladen
ist, und zwar durch die Sortiersteuerung 45. Danach wird
die Information der Farbnachschlagetabelle, die in den geladenen
Daten enthalten ist, zum Speicherbereich CLUT des Rahmenspeichers 63 übertragen.
-
Die
CPU 42 führt
die Huffman-Decodierung der komprimierten Bilddaten durch, die vom
Hauptspeicher 43 gelesen werden, und bringt die decodierten
Daten zurück
zum Hauptspeicher 43, wo sie gespeichert werden. Anschließend überträgt die Sortiersteuerung 45 die
Huffman-decodierten Daten vom Hauptspeicher 43 zum Bildexpander 51 über den FIFO-Puffer 54.
Der Bildexpander 51 führt
dann eine Dequantisierung und eine inverse diskrete Kosinustransformation
durch, um die Bilddaten in die expandierte Form wiederherzustellen.
Die expandierten Bilddaten werden durch die Sortiersteuerung 45 über den
FIFO-Puffer 55 zum Hauptspeicher 43 übertragen.
Wie oben angemerkt verarbeitet der Bildexpander 51 die
Bilddaten in einem Makroblock auf Makroblockbasis. Folglich werden
die komprimierten Daten vom Hauptspeicher 43 in Makroblockeinheiten
durch die Sortiersteuerung 45 zum Eingangs-FIFO-Puffer 54 übertragen.
Wenn die komprimierten Daten expandiert sind, liefert der Bildexpander
die expandierten Bilddaten zum Ausgangs-FIFO-Puffer 55,
während
die komprimierten Daten des nächsten
Makroblocks vom Eingangs-FIFO-Puffer 54 gelesen werden,
um diese zu expandieren.
-
Wenn
der Systembus freigegeben wird und der Ausgangs-FIFO-Puffer 55 des
Bildexpanders 51 nicht leer ist, überträgt die Sortiersteuerung 45 den Inhalt
des FIFO-Puffers 55, d. h., die expandierten Daten eines
Makroblocks zum Hauptspeicher 43, und sie überträgt außerdem die
komprimierten Bilddaten des nächsten
Makroblocks vom Hauptspeicher 43 zum Eingangs-FIFO-Puffer 54 des
Bildexpanders 51.
-
Wenn
eine vorher festgelegte Menge der expandierten Bilddaten im Hauptspeicher 43 gespeichert
ist, überträgt die CPU 42 die
expandierten Daten zum Rahmenspeicher 63 über den
Plotter 61. In diesem Betriebszustand werden, wenn die
expandierten Bilddaten zum Bildspeicherbereich AD des Rahmenspeichers 63 übertragen
werden, die Daten unmittelbar als Hintergrundbewegtbild durch den Bildmonitor 65 angezeigt.
In anderen Fällen
werden die expandierten Bilddaten zum Texturspeicherbereich AT des
Rahmenspeichers 63 übertragen,
um als Texturbilddaten verwendet zu werden, um auf Polygonbildflächen abgebildet
zu werden.
-
Die
Polygonbildflächen,
die zusammen die Fläche
eines 3D-Objekts zeigen, werden sequentiell gemäß den Z-Daten dargestellt (d.
h., die Daten, die den Abstand oder die Tiefe von jeder Polygonalfläche von
der Ebene des Bilds zeigen), so daß die Polygonbildfläche, die
die größte Tiefe
hat, zuerst dargestellt wird, und die verbleibenden nacheinander
von der Tiefe zu dieser Polygonfläche dargestellt werden, die der
Ebene des Bildschirms am nächsten
ist. Auf diese Weise kann ein 3D-Bild unter Verwendung eines zweidimensionalen
Anzeigebildschirms angezeigt werden. Die CPU 42 erzeugt
eine Zeichenfolge von Darstellungsbefehlen im Hauptspeicher 43,
der es dem Plotter 61 ermöglicht, die polygonalen Bildflächen nacheinander
mit Beginn davon darzustellen, welche die größte Tiefe von der Ebene des
Bilds hat.
-
Das
Computergraphikverfahren verwendet ein Z-Puffer-Verfahren, bei dem
zunächst
Z Daten für jedes
Pixel in einem Speicher gespeichert werden und bei dem diese Daten
verwendet werden, eine Anzeigereihenfolge für die Polygonbildflächen zu
bestimmen. Dieses Verfahren erfordert jedoch einen Speicher, der
eine sehr große
Kapazität
hat, um die Z Daten zu speichern. Die vorliegende Ausführungsform
verwendet ein vereinfachtes und vorteilhaftes Verfahren, um die
Darstellungsbefehle zu ordnen, wodurch die Notwendigkeit vermieden
wird, einen derartigen Z-Puffer bereitzustellen.
-
Das
heißt,
bei der vorliegenden Ausführungsform,
wie in 7A und 7B gezeigt
ist, wird eine Kennung TG an jeden Polygondarstellungsbefehl IP
angehängt,
der die Polygondarstellungsdaten PD einschließt. Eine jede Kennung eines bestimmten
Befehls zeigt eine Adresse im Hauptspeicher 43, wo die
nächste
Darstellungsinstruktion gespeichert ist. Zusätzlich enthalten die Polygondarstellungsdaten
PD Identifikationsdaten IDP, die den Inhalt des Darstellungsbefehls
zeigen, sowohl Bereitstellungsscheitelkoordinaten des Polygons,
welches darzustellen ist. Die Identifikationsdaten IDP liefern eine
Indikation der Natur des Polynoms (beispielsweise ein Quadrat),
und ob das Polynom in einer einzelnen Verarbeitung abgebildet werden
soll. 7B liefert ein Beispiel eines
Quadrat-Polygon-Darstellungsbefehls, der durch den Koordinatenrechner 44 übertragen
wurden, um ein Quadrat-Polygon im Rahmenspeicher 63 darzustellen.
Wie man aus 7B erkennt, weist der Darstellungsbefehl
die Koordinaten der vier Scheitel (X0, Y0), (X1, Y1), (X2, Y2) und (X3,
Y3) wie auch die Daten der drei Primärfarben rot, grün und blau
(R, G, B) auf, um die Polygonbildfläche in einer einzelnen Farbe
abzubilden.
-
Als
Antwort auf Befehle, die über
einen Benutzer über
die Benutzerbefehls-Eingabeeinrichtung 71 eingegeben werden,
bestimmt die CPU 72 die Bewegungen von Objekten innerhalb
des Bilds sowie die Änderung
des Standpunkts des Bilds und erzeugt eine Zeichenfolge von Polygondarstellungsbefehlen, um
das nachfolgend-modifizierte Bild darzustellen. Anschließend schreibt
die CPU 42 die Kennungen der Polygondarstellungsbefehle
gemäß der Tiefe
der Polygonalflächenbereiche,
die darzustellen sind, von der Ebene des Bilds um. Das heißt, die
Darstellungsbefehlsadressen im Hauptspeicher 43 werden
nicht geändert,
sondern lediglich ihre Kennungen werden umgeschrieben.
-
Wenn
die CPU 42 das Erzeugen der Folge von Darstellungsbefehlen
beendet hat, überträgt die Sortiersteuerung 45 die
Befehle nacheinander vom Hauptspeicher 43 zum Plotter 61 gemäß der Reihenfolge,
die durch die Kennungen TG der Befehle bestimmt wird. Folglich muß der FIFO-Puffer 62 eine Kapazität von lediglich
einem Darstellungsbefehl haben. Mit Hilfe von 8 wird
dieser Betrieb durch nachfolgende Ausführung der Befehle IP1 bis IPn
in der Reihenfolge gemäß ihrer
jeweiligen Kennungen TG1, TG2, TG3 ... TGn beispielhaft dargestellt,
wobei jeder davon auf die Adresse, den Speicher des nächsten Befehls,
zeigt, der zum Plotter 61 zu übertragen ist und der durch
diesen auszuführen
ist. Da jeder Befehl durch den Plotter 61 ausgeführt wird, werden
die resultierenden Bilddaten im Plotterbereich AD des Rahmenspeichers 63 gespeichert.
-
Eine
Polygon-Bild-Flächendarstellungsprozedur
(oder Polygondarstellungsprozedur), die durch die CPU 42 ausgeführt wird,
wird anschließend
mit Hilfe des Flußdiagramms
von 9 beschrieben. In einem Schritt 101 liefert
die CPU einen Befehl zum Plotter 61, daß ein bezeichneter Bereich
der Rahmenpufferbereiche A als Anzeigepuffer dienen soll, so daß der Inhalt
dieses Bildspeicherbereichs AD an den Bildmonitor 65 ausgegeben
wird. Im Schritt 102 wird ein Benutzereingabebefehl von
der Einrichtung 71 gelesen, und die CPU 42 antwortet
durch Aktualisieren von Koordinatenwerten einer Darstellungsbefehl-Zeichenfolge
A in einem ersten der Paketpuffer (der als Einstellpaketpuffer dient)
des Hauptspeichers 43. Gleichzeitig damit werden die individuellen Befehlskennungen
der Darstellungsbefehl-Zeichenfolge A umgeschrieben.
-
Während die
Schritte 101 bis 103 ausgeführt werden, wird eine Darstellungsbefehls-Zeichenfolge B
in einem zweiten der Paketpuffer (der als Ausführungspaketpuffer dient) im
Hauptspeicher 43 über den
Plotter 61 zum anderen Rahmenpufferbereich B (der als Plotterpuffer
dient) des Bildspeicherbereichs AD des Rahmenspeichers 63 durch
die Sortiersteuerung 45 übertragen. Das graphische Darstellen
wird durch den Plotter 61 in einem Realzeitmodus als Antwort
auf die Darstellungsbefehls-Zeichenfolge B ausgeführt.
-
Wie
durch den Schritt 104 gezeigt ist, wartet die CPU 41 dann
bis zum Abschluß der
Ausführung der
Darstellungsbefehls-Zeichenfolge B. Das heißt, es wird periodisch entschieden,
ob die Darstellungsausführung
nach Übertragung
der Darstellungsbefehlsfolge B im Hauptspeicher 43 beendet
wurde.
-
Wenn
im Schritt 104 bestimmt wird, daß die Darstellungsinstruktions-Befehlsfolge
B völlig
ausgeführt
ist, wird die Rolle des Rahmenspeicherbereichs B des Rahmenspeichers 63 umgeschaltet,
so daß dieser
als Anzeigepuffer dient, und es wird ein Befehl zum Plotter 61 geliefert,
so daß die
dargestellten Bilddaten im Anzeigepuffer daraus gelesen werden und zum
Bildmonitor 65 geliefert werden, wie durch den Schritt 105 angezeigt
wird. Gleichzeitig damit wird die Rolle des Rahmenpufferbereichs
A des Rahmenspeichers 63 umgeschaltet, so daß dieser
anstelle davon als Darstellungspuffer dient.
-
In
einem Schritt 106 liest die CPU 42 wieder Befehle,
die unter Verwendung der Einrichtung 71 geliefert werden,
und die CPU 42 in einem Schritt 107 läuft weiter,
um die Koordinatenwerte in der Darstellungsbefehl-Zeichenfolge B
im Paketpuffer zu aktualisieren, der nun als Einstellungspaketpuffer
im Hauptspeicher 43 dient, als Antwort auf die Eingabebefehle.
Simultan werden im Schritt 107 die individuellen Befehlskennungen
der Darstellungsbefehl-Zeichenfolge B entsprechend umgeschrieben.
-
Während der
Zeit, wo die Schritte 105 bis 107 ausgeführt werden,
wird die Darstellungsbefehls-Zeichenfolge A im Paketpuffer, der
nun als Ausführungspaketpuffer
dient, über
den Plotter 61 zum Rahmenpufferbereich A (der nun als Darstellungspuffer
dient) durch die Sortiersteuerung 45 übertragen. Das graphische Darstellen
wird dann durch den Plotter 61 in einem Realzeitmodus als
Antwort auf die Darstellungsbefehl-Zeichenfolge A ausgeführt. Nach dem
Schritt 107 wartet die CPU 42, bis die Darstellungsbefehls-Zeichenfolge
A völlig
ausgeführt
ist. Das heißt,
daß in
einem Schritt 108 periodisch entschieden wird, ob die Befehls-Zeichenfolge
A völlig ausgeführt wurde,
die sich an die Übertragung
der Darstellungsbefehls-Zeichenfolge A vom Hauptspeicher 43 anschließt.
-
Wenn
im Schritt 108 bestimmt wird, daß die Darstellungsbefehls-Zeichenfolge
A beendet wurde, wird die Rolle des Rahmenpufferbereichs A umgeschaltet,
so daß dieser
dann als Anzeigepuffer dient, und es wird ein Befehl zum Plotter 61 geliefert,
um zu bewirken, daß die
dargestellten Bilddaten vom Anzeigepuffer gelesen werden und zum
Bildmonitor 65 in einem Schritt 109 ausgegeben
werden. Simultan damit wird die Rolle des Rahmenpuffers B umgeschaltet,
so daß dieser
dann als Darstellungspuffer dient. Danach kehrt die Verarbeitungsfolge
zurück
zum Schritt 102, und es wird die oben beschriebene Prozedur
wiederholt. Auf diese Weise können
Bewegtbilder durch die Bilddaten angezeigt werden, die unter Ver wendung
des Geräts
von 5 erzeugt werden, wobei die oben beschriebenen
Operationen wiederholt ausgeführt
werden, üblicherweise
mit einer Rate von 30–60/s.
-
Wenn
man aus den obigen Ausführungen
erkennt, arbeiten die CPU 42 und der Plotter 61 parallel.
Insbesondere liest unter Bezugnahme auf 10A die
Sortiersteuerung 45 die Darstellungsbefehls-Zeichenfolge
vom Darstellungspaketpuffer des Hauptspeichers 43, wobei
dessen Kennungen gefolgt werden, wie durch die Pfeile in 10A gezeigt ist, und überträgt die Darstellungsbefehle
in dieser Reihenfolge zum Plotter 61. Der Plotter 61 führt seinen
Darstellungsbetrieb als Antwort auf die übertragene Befehlszeichenfolge
aus. Simultan damit schreibt die CPU 42 nacheinander Adresswerte
in den Befehlskennungen der Darstellungsbefehl-Zeichenfolge, die
im Einstellpaketpuffer des Hauptspeichers 43 gespeichert
ist, auf die neuen Adresswerte um, um die Bewegung innerhalb des
Bilds oder eine Änderung
im Standpunkt wiederzugeben.
-
Bezugnehmend
auf 11 führt,
wenn die CPU 42 eine laufend dargestellte Befehlszeichenfolge
erzeugt, der Plotter 61 einen Darstellungsbetrieb als Antwort
auf eine Befehlszeichenfolge durch, die vorher durch die CPU 42 erzeugt
wurde. Wenn der Plotter 61 die Ausführung einer ersten Zeichenfolge beendet
hat, führt
er eine nachfolgende Zeichenoperation als Antwort auf eine Befehlszeichenfolge durch,
die vorher durch die CPU 42 erzeugt wurde.
-
Beim
Polygondarstellungsprozeß werden
die dargestellten Daten zu einer Gradientenberechnungseinheit im
Plotter 61 (aus Gründen
der Einfachheit und Klarheit nicht gezeigt) geliefert, um eine Bestimmung
eines Gradienten der Polygonbildfläche auszuführen, die als Antwort auf jede
Instruktion erzeugt wird. Der somit bestimmte Gradientenwert wird beim
Abbilden von Daten auf der Polygonbildfläche gemäß dem Polygondarstellungsprozeß verwendet. Die
Polygonbildfläche
kann entweder mit Texturbilddaten oder mit Luminanzwerten aufgefüllt werden, um
Lichtschattierungen zu zeigen.
-
Um
Texturbilddaten an Polygonbildflächen anzubringen,
welche die Flächen
eines Objekts zeigen, werden Texturbilddaten im Texturbereich AT
in zweidimensionale Abbildungsdaten transformiert. Als Beispiel
und mit Bezugnahme auf 12A bis 12C werden die Texturmuster T1, T2 und T3 wie in 12A gezeigt jeweils transformiert, um mit entsprechenden
Polygonbildflächen
eines Objekts übereinzustimmen,
wie in 12B gezeigt ist. Die Texturmuster
T1, T2 und T3 werden nach einer solchen Transformation an die Ebenen
des Objekts OB1 angehängt,
wie in 12C gezeigt ist, und das verbleibende
Bild wird im Bildspeicherbereich gespeichert und später auf
dem Bildschirm des Bildanzeigemonitors 65 angezeigt.
-
Bei
Standbild-Texturdaten werden Texturmuster im Hauptspeicher 43 über den
Plotter 61 zum Texturbereich AT des Rahmenspeichers 63 übertragen,
um dort gespeichert zu werden. Der Plotter 61 hängt dann
die Texturmuster selektiv an die Polygonbildflächen an, um dadurch Standbild-Texturdaten auf
einem Objekt innerhalb eines Bilds zu bilden. Die Bildtexturdatenmuster
können
vorher auf der CD-ROM 90 aufgezeichnet sein.
-
Es
ist außerdem
möglich,
Bewegtbild-Texturdaten auf Objektflächen abzubilden. In diesem
Fall werden komprimierte Bewegtbilddaten von der CD-ROM 90 in
den Hauptspeicher 43 gelesen, wie oben erläutert wurde.
Dann werden wie oben beschrieben die Bilddaten expandiert, wobei
entsprechende Prozesse mittels der CPU 42 und des Bildexpanders 51 ausgeführt werden.
-
Die
expandierten Bewegtbilddaten werden für den Texturbereich AT des
Rahmenspeichers 63 bereitgestellt, so daß das Texturmuster
selbst für
jeden Rahmen umgeschrieben kann. Folglich kann das Bewegtbild-Texturbild
durch Textur-Abbilden jeder Polygonbildfläche mit Bewegtbilddaten vom
Texturbereich AT erzeugt werden.
-
Wenn
die expandierten Bilddaten vom Bildexpander 51 für den Bildspeicherbereich
AD des Rahmenspeichers 63 bereitgestellt werden, kann ein Hintergrundbewegtbild
auf dem Bildschirm des Bildanzeigemonitors 65 angezeigt
werden. Durch Auffüllen
des Bildspeicherbereichs AD mit lediglich einem dargestellten Bild,
welches durch die CPU 42 erzeugt wird, kann dieses auf
dem Bildschirm des Anzeigebildschirmmonitors 65 dargestellt
werden. Es ist außerdem
möglich,
ein Objekt mittels Befehlen von der CPU auf einem Standbild darzustellen,
welches im Bildspeicherbereich AD gebildet ist, über eine Expansion von Bilddaten,
welche von der CD-ROM 90 erhalten werden.
-
Wie
oben angemerkt überträgt die Sortierungssteuerung 45 Darstellungsbefehle
und Bilddaten, ohne diese über
die CPU 42 während
Zeitperioden zu leiten, wenn der Systembus 41 freigegeben ist.
Ein Beispiel davon, wie dieser Prozeß ausgeführt werden kann, ist in Verbindung
mit 13A bis 13F gezeigt.
-
Bezugnehmend
zunächst
auf 13A zeigt ein sich horizontal-erstreckender
Zeitbalken 89 die Verwendung des Systembusses 41 durch
die CPU 42 über
der Zeit mit einer Zeitweiterschreitung von links nach rechts in 13A. Für
diejenigen Zeitpunkte, wenn der Systembus 41 durch die
CPU 42 verwendet wird, um einen Betrieb auszuführen, wurde
der Balken 89 schraffiert, während dagegen bei den farblosen
Bereichen 81 bis 88 der Systembus 140 von
der CPU 42 freigegeben wurde. 13B und 13D stellen parallele Zeitbalken bereit, um den
Zustand der FIFO-Puffer 54 und 55 des Bildexpanders
darzustellen, wobei die Schattierung die Datenmenge symbolisiert,
die in jedem Puffer gespeichert ist. Beispielsweise wird während der
Zeitperiode 81 der FIFO-Puffer 84 allmählich gefüllt, während der
FIFO-Puffer 55 während
der Zeitdauer 83 allmählich
von seinen Daten geleert wird. 9C zeigt
einen weiteren Zeitbalken, um den zeitlichen Ablauf des Datenexpansionsprozesses
zu zeigen, der durch den Bildexpander 51 ausgeführt wird.
-
13E zeigt einen Zeitbalken, der den Zustand des
FIFO-Puffers 62 und des Plotters 61 zeigt, bei
denen, wie im Fall von 13B und 13D, die Schraffierung die Datenmenge zeigt, die
im FIFO-Puffer 62 gespeichert ist. Schließlich zeigt 13F einen Zeitbalken, der nachfolgende Darstellungsoperationen
zeigt, die durch den Plotter 61 durchgeführt werden.
-
Wenn
alle FIFO-Puffer 54 und 62 leer werden, wird eine Übertragungsanforderung
zum Systembus 41 geliefert. Wenn der FIFO-Puffer 55 voll wird,
liefert dieser in gleicher Weise eine Übertragungsanforderung zum
Systembus 41. Während
der Zeitperiode 81 bis 88 führt, wenn der Systembus 41 von
der CPU 42 freigegeben wird, die Sortiersteuerung 45 Datenübertragungen
von und zu jedem FIFO-Puffer, der eine Übertragungsanforderung bereitgestellt
hat, durch.
-
Wenn
mehrere Übertragungsanforderungen gleichzeitig
geliefert werden, wird gemäß einer
vorher festgelegten Prioritätsreihenfolge
bestimmt, welche der Übertragungsanforderungen
ausgeführt
werden soll. Wenn simultane Übertragungsanforderungen
durch die Puffer, die die gleiche Prioritätsfolge haben, ausgeführt werden,
wird die Ausführungsreihenfolge
durch ein zyklisches Verfahren in einer Weise festgelegt, daß dem Puffer,
dem während
einer Übertragungsanforderung
die höchste
Priorität
in der vorhergehenden Instanz verliehen wurde, die niedrigste Priorität während einer
laufenden Übertragungsoperation
gegeben wird. Im Beispiel von 13A bis 13F ist die Übertragungsanforderung
vom FIFO-Puffer 54 oder vom FIFO-Puffer 55 einer
höheren
Priorität
als die vom FIFO-Puffer 62 zugeteilt.
-
Im
Beispiel von 13A bis 13F überträgt, wenn
eine Übertragungsanforderung
vom leeren FIFO-Puffer 54 während einer der Perioden 81, 85 und 87 überliefert
wird, die Sortierungssteuerung 45 die komprimierten Bilddaten
vom Hauptspeicher 43 zum FIFO-Puffer 54, wie in 13B gezeigt ist. Wenn der FIFO-Puffer 54 voll
ist, wie in 9C gezeigt ist, liefert
der Bildexpander 51 komprimierte Daten vom FIFO-Puffer 54,
wenn er die Expansion vorher empfangener komprimierter Daten beendet
hat, und beginnt dann das Decodieren der laufenden Daten für die Expansion.
Der FIFO-Puffer 54 liefert dann eine weitere Übertragungsanforderung
zum Bus 41.
-
Der
Bildexpander 51 gibt in der Zwischenzeit die expandierten
Daten an den FIFO-Puffer 55 bei Beendigung des Expansionsprozesses
aus. Der FIFO-Puffer 55 liefert anschließend eine Übertragungsanforderung
an den Bus 41, wenn er mit den expandierten Daten aufgefüllt wurde.
Im Beispiel von 13A bis 13F führt die
Sortierungssteuerung 45 Datenübertragungen als Antwort auf
diese Anforderungen während
der Perioden 83 und 86 aus, um die expandierten
Daten zum Hauptspeicher 43 zu übertragen.
-
In
diesem Beispiel wird eine Übertragungsanforderung
vom FIFO-Puffer 62 des Plotters 61 in allen Zeitperioden 82, 84 und 88 ausgeführt, wie
in 13E gezeigt ist, und es wird ein Darstellungsbefehl
durch die Sortierungssteuerung 45 an den Plotter 61 übertragen.
Der übertragene
Darstellungsbefehl wird durch den Plotter 61 ausgeführt, nachdem
er das Ausführen
eines vorherigen Darstellungsbefehls beendet hat, wie in 13F gezeigt ist.
-
Die
expandierten Bilddaten werden vom Hauptspeicher 43 zum
Rahmenspeicher 63 unter Verwendung eines Übertragungsbefehls
wie oben beschrieben übertragen.
Die CPU 42 setzt die expandierten Bilddaten in ein Übertragungsbefehlsformat um,
wie in 14 gezeigt ist. Das Übertragungsbefehlsformat
ist ähnlich
dem eines Darstellungsbefehls, der eine Kennung TG in einem Anfangsbereich des
Befehls und eine Identifikationsinformation IDP unmittelbar danach
enthält.
Wie bei den Darstellungsbefehlen zeigt die Kennung TG einen Adresswert
im Hauptspeicher 43, wo der nächste Darstellungsbefehl oder Übertragungsbefehl
gespeichert ist. Die Identifikationsinformation IDP weist einen
Code auf, der den Befehl als Übertragungsbefehl
identifiziert.
-
Wie
außerdem
in 14 gezeigt ist, bezeichnen die Daten "H" und "W" die
Höhe bzw.
die Breite eines Bereichs der expandierten Bilddaten, die zu übertragen
sind. Die Werte der Höhe
und der Breite des Übertragungsbereichs
entsprechen den Werten der Höhe
und der Breite eines Rahmenbereichs. Die Daten "X" und "Y" des Übertragungsbefehls bezeichnen
die Koordinaten einer Rahmenposition, zu der die Bilddaten zu übertragen
sind. Der Übertragungsbereich
in diesem Beispiel ist rechteckig und diese Koordinaten zeigen eine
obere linke Position eines solchen rechteckigen Bereichs. Wenn die
Position, zu welcher die Daten zu übertragen sind, innerhalb des
Bildspeicherbereichs AD des Rahmenspeichers 63 liegen,
fallen die Koordinaten in den Bereich AD. Wenn jedoch die Position
zur Übertragung
innerhalb des Texturbereichs AT liegt, fallen die Koordinaten in
diesen Bereich.
-
Die
Kennungs-TG-Identifikationsdaten IDP, die Höhe, die Breite und die Koordinatendaten
bilden einen Datenkopf des Übertragungsbefehls.
Der Übertragungsbefehl
weist außerdem
expandierte Bilddaten PIX0, PIX1, PIX2, ... PIXn auf. Die Sortierungssteuerung 45 antwortet
auf den Übertragungsbefehl,
wobei sie die expandierten Bilddaten vom Hauptspeicher 43 zum
Plotter 61 gemäß dem Befehl überträgt.
-
Wie
oben erwähnt
unterteilt der Bildexpander 51 das Bild eines jeden Rahmens
in Makroblöcke,
die als 16 × 16
Pixel angeordnet sind, und expandiert die Bilddaten in Einheiten
von Makroblöcken.
Wenn beispielsweise ein beispielhafter Bildrahmen 320 Pixel
in der horizontalen Richtung und 240 Pixel in der vertikalen Richtung
aufweist, wie in 15 gezeigt ist, ist der Rahmen
in 300 Makroblöcken
unterteilt. Um eine Übertragung
von 300 Makroblöckeeinheiten
auszuführen,
wird eine übermäßige Last
aufgrund der Notwendigkeit erzeugt, die Datenkopfinformation mit
jeder Übertragungsinformation zu
erfassen. Folglich werden, wie in 16 gezeigt ist,
mehrere Makroblöcke
in jeder vertikalen Spalte als eine Einheit gruppiert, die durch
jeden Übertragungsbefehl
geliefert werden. Mit Hilfe von 17 ist ein
beispielsweise erster Übertragungsbefehl
für einen
solchen Rahmen gezeigt, wo den Koordinaten X und Y jeweils Nullwerte
zugeteilt sind. Folglich würden
bei dem nächsten Übertragungsbefehl
der Koordinaten X und Y die Werte 16 bzw. 0 zugeteilt werden.
-
Auf
diese Weise werden die expandierten Bilddaten in ein Übertragungsbefehlsformat
umgesetzt, welches im wesentlichen das gleiche ist wie das Darstellungsformat,
so daß es
möglich
wird, unter Verwendung einer Kennung TG sowohl Polygondarstellungsbefehle
als auch Übertragungsbefehle frei
mittels der Sortiersteuerung 45 zu übertragen, sowie das Darstellen
und die Bilderzeugung im Rahmenspeicher 63 mittels des
Plotters 61 auszuführen.
-
Aus
dem obigen Ausführungen
sieht man, daß der
Systembus 41 effektiv durch Zeitteilung verwendet wird,
da die Darstellungsbefehls-Zeichenfolgen, die komprimierten Bilddaten
und die expandierten Bilddaten vom Hauptspeicher 3 übertragen
werden können,
ohne daß diese über die
CPU 42 während
dieser Zeitperioden geführt
werden, wenn der Systembus 41 von der CPU 42 freigegeben
wird. Da außerdem
die gesamten Darstellungsbefehl-Zeichenfolgen im Speicher 43 gehalten
werden, ist die CPU 42 schnell in der Lage, eine unmittelbare
Steuerung über
solche Befehle auszuführen,
so daß die Bildmodifikation
als Antwort auf eine externe Eingabe im wesentlichen auf sofortiger
Basis realisiert werden kann. Es wird daher möglich, die Antwortgeschwindigkeit
des Geräts
auf Eingabebefehle zu verbessern.
-
Da
in ähnlicher
Weise alle Bewegtbilddaten im Hauptspeicher 43 gespeichert
werden, ist die CPU 42 immer in der Lage, eine unmittelbare
Steuerung der Bewegtbilddaten auszuführen. Somit wird eine im Wesentlichen
unmittelbare Steuerung durch die CPU als Antwort auf eine externe
Eingabe ermöglicht,
wodurch eine weitere Verbesserung der Antwortgeschwindigkeit des
Geräts
verbessert wird.
-
Außerdem muss
der FIFO-Puffer, der durch den Plotter 61 erfordert wird,
nicht nur einen Plotterbefehl speichern, wodurch die Baugröße des Plotters 61 reduziert
wird.
-
Da
der Bildexpander 51 den Hauptspeicher als Puffer verwendet,
wird ein zusätzlicher
interner Speicher nicht benötigt.
Da die FIFO-Puffer, welche durch den Bildexpander 51 verwendet
werden, lediglich einen Makroblock jeweils speichern müssen, wird die
Baugröße des Bildexpanders 51 in
vorteilhafter Weise vermindert.
-
Gemäß der Erfindung
umfaßt
jeder Plotterbefehl den Adresswert des nächsten Plotterbefehls im Hauptspeicher.
Somit wird, wenn es notwendig ist, die Reihenfolge zu ändern, mit
welcher die Plotterbefehle ausgeführt werden, es lediglich erforderlich,
die Adresswerte der Plotterbefehle zu ändern, so daß es nicht
notwendig ist, die Plotterbefehle selbst im Hauptspeicher umzuschreiben
oder umzuordnen. Als Folge kann die Belastung des Systembusses entsprechend
reduziert werden.
-
Bei
der Erzeugung von Bewegtbildern ist es selten, daß große Änderungen
im Inhalt der Darstellungsbefehl-Zeichenfolgen zwischen benachbarten Rahmen
auftreten. Folglich müssen
Adresswerte nicht häufig
geändert
werden, und es ist häufig
ausreichend, lediglich Koordinatenwerte der Darstellungsbefehl-Zeichenfolge
der vorhergehenden Rahmen zu ändern,
so daß die
Verarbeitung vereinfacht wird.
-
Bei
der offenbarten Ausführungsform
werden Bilddaten und Anwendungsprogramme von einer CD-ROM gelesen.
Es sei jedoch angemerkt, daß andere
Formen von Aufzeichnungsträgern,
beispielsweise Magnetplatten und Halbleiterspeicher (beispielsweise
Speicherkarten) verwendet werden können, sowie andere Bilddatenquellen
und Anwendungsprogramme. Obwohl die diskrete Kosinustransformation
zur Kompression von Bilddaten bei der obigen Ausführungsform
angewandt wird, gibt es verschiedene weitere geeignete Alternativen,
die Bilddatenkompression auszuführen.
-
Obwohl
spezielle Ausführungsformen
der Erfindung ausführlich
hier mit Hilfe der beiliegenden Zeichnungen beschrieben wurden,
versteht es sich, daß die
Erfindung nicht auf diese genauen Ausführungsformen beschränkt ist
und daß verschiedene Änderungen
und Modifikationen durch den Fachmann durchgeführt werden können, ohne
den Rahmen der Erfindung, wie er in den beigefügten Ansprüchen definiert ist, zu verlassen.