-
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 vorgesehner
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 x 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 vorliegende Erfindung ist in
den beigefügten
Patentansprüchen
definiert.
-
Die europäische Patentanmeldung
EP 473 340 beschreibt ein
Desktop-Veröffentlichungssystem (DTP),
welches Graphikbilder von Bildern erzeugen kann, die in komprimierter
Form im DRAM gespeichert sind. Das DTP-System besitzt Prozessoren,
die parallel ar beiten. Ein Bildaufbereitungsprozessor erzeugt ein
Bild unter Verwendung eines unmittelbaren Speicherzugriffs, um Daten
und Bilddaten-Erzeugungsbefehle vom Speicher zu lesen und um die
Daten zum Speicher zu übertragen.
-
Die europäische Patentanmeldung
EP 0 243 051 offenbart ein
Videoverarbeitungs-Anzeigegerät, welches
eine Zentralprozessoreinheit (CPU), eine Direktspeicher-Zugriffschaltung
(DMA) aufweist, die bei einem Graphikmikroprozessor verwendet wird,
um ein Bitmap-Bild zu erzeugen, wobei Daten von einem Systemspeicher
gelesen werden. Unter der Steuerung der CPU überträgt die DMA-Schaltung Instruktionen
und Daten vom Systemspeicher zum Graphikmikroprozessor.
-
Die vorliegende Erfindung ist in
den beigefügten
Patentansprüchen 1 und 5 definiert.
Details weiterer Ausführungsformen
sind in den angehängten
abhängigen
Ansprüchen
2 – 4
und 6 – 11
definiert.
-
Weitere Ausführungsformen der vorliegenden
Erfindung können
zusätzlich
ein Verfahren bereitstellen, um Bilddaten von komprimierten Daten
zu erzeugen, die in einem Speicher gespeichert sind. Der Speicher
ist 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 führen,
und Erzeugen der Bilddaten auf der Basis der dekomprimierten Daten.
-
Weitere Ausführungsformen der vorliegenden
Erfindung können
zusätzlich
außerdem
ein Verfahren bereitstellen, um Bilddaten mittels eines Systems
zu erzeugen, welches einen Datenprozessor, 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
umfaßt
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.
-
Weitere Ausführungsformen der vorliegenden
Erfindung können
zusätzlich
außerdem
ein Bilddaten-Erzeugungsgerät
bereitstellen, welches aufweist: einen Systembus, ein Datenverarbeitungsgerät, welches
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 führen,
wobei der Speicher die dekomprimierten Bilderzeugungsdaten 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.
-
Weitere Ausführungsformen der vorliegenden
Erfindung können
zusätzlich
außerdem
ein Bilddaten-Erzeugungsgerät
bereitstellen, welches aufweist: 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 der Freigabezeitintervalle überträgt, ohne die Bilddaten-Erzeugungsbefehl-Zeichenfolge über das
Datenverarbeitungsgerät
zu führen.
-
Weitere Ausführungsformen der vorliegenden
Erfindung können
zusätzlich
außerdem
ein Spielwiedergabegerät
bereitstellen, welches aufweist: 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 kann eine Schaltung zur Verwendung bei
einem Bilderzeugungsgerät
außerdem zusätzlich aufweisen:
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 fuhren.
-
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 fuhren, 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 bezüglich Befehlen
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 dazustellen
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. Zu sä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 x 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 Faxbnachschlagetabelle
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 Anzeigepuffer 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 führt
die Übertragung
der Bilddaten und der Darstellungsbefehl-Zeichenfolgen durch, ohne
entweder die Daten oder die Befehle über die CPU 42 zu
fuhren. 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 dazustellen 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 Zeitfolge 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 CPU42
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 Verwendung
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 Adreßwerte in
den Befehlskennungen der Darstellungsbefehl-Zeichenfolge, die im
Einstellpaketpuffer des Hauptspeichers 43 gespeichert ist,
auf die neuen Adreßwerte
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 Rahrmen 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 Sy stembus 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 FIF-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 Adreßwert 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 x 16 Pixel
angeordnet sind, und expandiert die Bilddaten in Einheiten von Makroblöcken. Wenn
beispielsweise ein beispielsweiser 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 muß 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 Adreßwert
des nächsten
Plotterbefehls im Hauptspeicher. Somit wird, wenn es notwendig ist, die
Reihenfolge zu ändern,
mit welcher die Plotterbefehle ausgeführt werden, lediglich erforderlich,
die Adreßwerte
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
Adreßwerte 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 Mo difikationen 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.