[go: up one dir, main page]

DE69117112T2 - Verfahren und Vorrichtung zur Bildwiedergabe - Google Patents

Verfahren und Vorrichtung zur Bildwiedergabe

Info

Publication number
DE69117112T2
DE69117112T2 DE69117112T DE69117112T DE69117112T2 DE 69117112 T2 DE69117112 T2 DE 69117112T2 DE 69117112 T DE69117112 T DE 69117112T DE 69117112 T DE69117112 T DE 69117112T DE 69117112 T2 DE69117112 T2 DE 69117112T2
Authority
DE
Germany
Prior art keywords
output
graphics
page
image
bands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69117112T
Other languages
English (en)
Other versions
DE69117112D1 (de
Inventor
Stephen R Butterfield
Robert F Hossley
Steven K Nelson
Donald E Phillips
Barbara B Renshaw
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PEERLESS GROUP
Original Assignee
PEERLESS GROUP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PEERLESS GROUP filed Critical PEERLESS GROUP
Publication of DE69117112D1 publication Critical patent/DE69117112D1/de
Application granted granted Critical
Publication of DE69117112T2 publication Critical patent/DE69117112T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • G06K15/1851Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives parted in a plurality of segments per page
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0014Transforming the printer input data into internal codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Digital Computer Display Output (AREA)

Description

    ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung betrifft eine Vorrichtung und ein Verfahren, die dazu verwendet werden, Bilderzeugung auf eine solche Weise auszuführen, daß komplizierte, seitenfüllende Bilder mit hoher Auflösung hinsichtlich einer kontinuierlich und synchron arbeitenden Rasterbild-Ausgabevorrichtung wie eines Laserdruckers unter Verwendung eines Minimalumfangs an Direktzugriffsspeicher erzeugt werden können.
  • Eine kontinuierliche synchron arbeitende Rasterbild-Ausgabevorrichtung erfordert es, daß die Ausgabedaten innerhalb einer festgelegten Zeitspanne zugeführt werden. Wenn die Daten nicht innerhalb der festgelegten Zeitspanne zugeführt werden, wird die Ausgabebildseite verworfen. Das Verfahren und die Vorrichtung gemäß der Erfindung zerlegen grundlegende Graphikfunktionen in eine platzsparende Reihe von Anweisungen oder Befehlen, die für Echtzeitverarbeitung geeignet sind, und dann erzeugen sie die Ausgabebildseite in ständigem Ablauf. Im Gegensatz hierzu erfordern es bekannte Techniken für kontinuierlich und synchron arbeitende Rasterbild- Ausgabevorrichtungen, mit Ausnahme von Druckmaschinen mit begrenzter oder keiner Graphikfunktion, daß eine gesamte Seite im Speicher errichtet wird, bevor die Ausgabebildseite an die Ausgabevorrichtung geliefert wird.
  • Die Technik gemäß der Erfindung definiert den Graphikinhalt einer Seite in viel weniger Speicher, als es für das erzeugte Bild andernfalls erforderlich wäre, jedoch in einer Form, die mit der für eine Ausgabevorrichtung erforderlichen Geschwindigkeit verarbeitet und an diese geliefert werden kann. Um dies zu erzielen, werden Graphikfunktionen als Grundelemente auf niedrigem Niveau, hier als Anweisungen bezeichnet, repräsentiert, um zugewährleisten, daß sie in Echtzeit in bitkartierte Bilder umgesetzt werden können. Zusätzlich wird die Menge von Anweisungen oder Befehlen dadurch verringert, daß redundante oder überlappende Graphikfunktionen eliminiert werden, um den durch die Anweisungen benutzten Speicher zu minimieren.
  • Die Erfindung verwendet einen Prozessor mit Echtzeitausgabe, der gleichzeitig für einen kleinen Abschnitt einer Bildseite arbeitet. Ein derartiger Abschnitt wird als Band bezeichnet. Ein Band besteht aus einer vorgegebenen Anzahl von Abrasterlinien, wobei jede Abrasterlinie eine Reihe von Pixeln ist, wie sie an die Ausgabevorrichtung mit der für diese erforderlichen Geschwindigkeit geliefert werden.
  • Nach dem Aufbauen eines ersten Bands wird ein zweites Band erzeugt, während das erste Band ausgedruckt wird. Bei der derzeitigen Geschwindigkeit von Prozessoren, wie sie zum Erzeugen von Bitkarten eines auszudruckenden Bilds, das an eine Ausgabevorrichtung geliefert wird, verwendet werden, wäre es bei Verwendung bekannter Techniken nicht möglich, die Bitkarte für ein zweites Band zu erzeugen, bevor der Drucker den Druck des ersten Bands abgeschlossen hat. Das heißt, daß bekannte Techniken es erfordern, ein Bitkartenbild für eine gesamte auszudruckende Seite zu erzeugen, bevor irgendein Teil des Bilds an einen Drucker gegeben wird, da kontinuierlich und synchron arbeitende Rasterbilddrucker mit einer vorgegebenen Geschwindigkeit drucken, um zu gewährleisten, daß eine Seite korrekt gedruckt wird.
  • Unter Verwenudng einer Technik zum Erzeugen von Bitkartenbildern, die weniger als eine komplette Seite ausmachen, wobei nur dieser Teil an den Drucker geliefert wird, während das Bitkartenbild für einen anderen Teil des Bilds erzeugt wird, führt die Erfindung zu großer Kosteneinsparung unter Verwendung von weniger Speicher. Außerdem kann selbst dann, wenn ausreichend Speicher zum Aufbauen einer vollständigen Seite vorhanden ist, unter Verwendung der Bandbildungstechnik gemäß der Erfindung eine zweite Seite in einem Band aufgebaut werden, während eine erste Seite in einem anderen Band gedruckt wird, wodurch der Durchsatz des Druckers erhöht wird.
  • Die Erfindung erreicht ihr Ziel durch das Zurückstellen der Ausführung anwendungserzeugter Befehle, die Pixel in einer Bildseite zeichnen. Diese Befehle werden in Graphikanweisungen statt direkt in Bitkarten umgesetzt. Die Graphikanweisungen benötigen viel weniger Speicher als entsprechende Bitkarten, können jedoch in Bitkarten umgesetzt werden, um mit einer Geschwindigkeit an einen Drucker geliefert zu werden, die ausreichend schnell dafür ist, mit dem Drucker Schritt zu halten.
  • Da ein einzelner Graphikbefehl mehr als ein Band beeinflussen kann, kann eine Anweisung mehrfach ausgeführt werden. In diesem Zusammenhang beinhalten Anweisungsbefehlsblöcke, die im Speicher als Tabellenstrukturen repräsentiert sind, Information, die die Auswahl derjenigen Graphikbefehle ermöglicht, die für ein vorgegebenes Band erforderlich sind. Genauer gesagt, verwendet die erfindungsgemäße Bilderzeugung einen Anweisungsaufbauschritt und zwei Bildzeichenschritte. Der Anweisungsaufbauschritt wird dazu verwendet, Anweisungen für eine zurückgestellte Ausführung zu erstellen. Anwendungsbefehle für Pixelzeichnungsvorgänge in einem anderen Speicher als dem Seitenbild führen zu in einem Benutzerspeicher abgespeicherten Bitkarten, aber führen nicht zu abgespeicherten Anweisungen, da diese Anweisungen sofort verarbeitet werden. Die durch sofort verarbeitende Blits erzeugten Bitkarten können später von einem PDL-Interpretierer als Quellenbitkarten für Blits in das Seitenbild verwendet werden.
  • Eingaben in den Anweisungsaufbauschritt werden durch eine Graphik-Untersystemschnittstelle in solcher Weise repräsentiert, daß jeder Graphikaufruf Argumente liefert, die der Anweisungsaufbauschritt in einen kompakten Befehlsblock verringert, der eine "Band"-Nummer enthalten kann, die von den Bildzeichnungsschritten dazu verwendet wird, einen Untersatz von Befehlen für jedes Band der zu zeichnenden Seite auszuwählen.
  • Der Anordnungsaufbauschritt versucht, redundante Anweisungen dadurch zu beseitigen, daß mehrere Eingaben zu einzelnen Befehlsblöcken kombiniert werden, wodurch die Anzahl von Befehlsblöcken und von Speichern, die sie enthalten müssen, verringert werden.
  • Der erste (sofortige) Bildzeichnungsschritt läuft parallel mit der Erzeugung von Anweisungen ab, die Objekte in der Bildseite zeichnen. Die bei diesem Schritt gezeichneten Objekte werden im obengenannten Benutzerspeicher zur Verwendung als Quellendaten für den zweiten Zeichnungsschritt abgespeichert, jedoch werden die Anweisungsbefehlsblöcke für sie für Wiederverwendung freigegeben.
  • Der zweite (zurückgestellte) Bildzeichnungsschritt beginnt dann, wenn alle Anweisungen für die Bildseite erzeugt wurden. Dieser Schritt kann Anweisungsbefehle mehrfach verarbeiten, einmal für jedes beeinflußte Bildband. Anweisungen, die das aktuelle Band nicht beeinflussen, werden übergangen.
  • Das erste von einem Anweisungsbefehl beeinflußte Band ist durch die im Befehl enthaltene Bandnummer gekennzeichnet. Wenn ein Anweisungsbefehl verarbeitet wird, wird die Bandnummer auf die nächste Bandnummer aktualisiert, wenn der Anweisungsbefehl mehrere Bänder beeinflußt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Figur 1 ist ein Übersichts-Blockdiagramm für einen Prozeß zum Erzeugen eines gedruckten Bilds auf Grundlage einer Anwendung, die zu druckende Graphikbilder erzeugt.
  • Figur 2 ist ein Übersichts-Funktionsblockdiagramm für eine Ausgabesteuerung 15 und einen Bitkartenbild-Generator 17.
  • Figur 3 ist ein Funktionsdiagramm einer Realisierung der Ausgangssteuerung 15 und des Bitkartenbild-Generators 17 gemäß dem Stand der Technik.
  • Figur 4 ist ein Funktionsdiagramm einer Realisierung einer Ausgabesteuerung 15 und eines Bitkartenbild-Generators 17 gemäß der Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung handhabt die Erzeugung einer Bildseite und die Ausgabe des Bilds an die Druckmaschine einer kontinuierlich und synchron arbeitenden Rasterbild-Ausgabevorrichtung. Gemäß Figur 1 erzeugt eine Anwendung 11 entsprechend Anweisungen von einem Benutzer über eine Anwendungsdienste-Schnittstelle eine Wiedergabe eines zu druckenden Bilds in einer Bildbeschreibungssprache (PDL) 13 wie der von Adobe Corporation verfügbaren Sprache Postscript. Eine PDL definiert Befehle, die die vollständige und genaue Einstellung einer Bitkarte und von Halbtonbildern wie auch aller Attribute von Zeichenfonts, einschließlich der Punktgröße, der Ausrichtung, der Graustufung und der Schrägstellung, erlauben. Die Anwendungsdienste-Schnittstelle, die ein Bild repräsentierende PDL-Anweisungen erzeugt, ist unabhängig von der zugrunde liegenden Unterstützung durch Hardware und/oder Software dieselbe. Als Beispiel sei angenommen, daß ein Benutzer ein Anwendungsprogramm dazu anweist, eine Linie von einem Punkt A entsprechend einer Bitkartenbild-Koordinate x1,y1 zu einem Punkt B entsprechend einer Bitkartenbild-Koordinate x2,y2 zu ziehen. Eine derartige Anweisung erzeugt eine Reihe von Postscript-Anweisungen (ausschließlich einer Seiten- und Linieneinstellanweisung) auffolgende Weise:
  • newpath x1 y1 moveto x2 y2 lineto stroke
  • Im einfachsten Fall, bei dem keine spezielle Hardware und keine Banderzeugung gemäß der Erfindung vorliegt, sind die PDL-Anweisungen tatsächlich Anweisungen an einen PDL-Interpretierer in einer Ausgabesteuerung 15, die die Bildseite erzeugt. Der PDL-Interpretierer interpretiert die PDL-Anweisungen, wobei er Graphikobjekte und Zeichenbitkarten gemäß Anweisung erstellt. Nur einige wenige PDL-Anweisungen führen zu einem Zeichnungsvorgang. Die restlichen Anweisungen steuern die Verwendung und Positionierung von Objekten auf der Bildseite.
  • Zum Beispiel veranlaßt bei den obenangegebenen Postscriptanweisungen der Operator newpath, daß der PDL-Interpretierer interne Information initialisiert, um anschließende Vorgänge zu steuern. Der Operator moveto errichtet eine Anfangsposition innerhalb des Koordinatensystems. Der Operator lineto errichtet eine neue Position mit einer nicht ausgedrückten oder "nicht mit Farbe gezogenen" Linie zwischen der Anfangsposition und der neuen Position. Wenn der Interpretierer den Operator stroke verarbeitet, erzeugt er einen oder mehrere Graphikbefehle an zugrundeliegende Pixelzeichnungsroutinen, die die Linie im Bildseitenspeicher zeichnen.
  • In diesem Fall werden die Graphikaufrufe synchron durch die Ausgabesteuerung gehandhabt. Das heißt, daß ein spezieller Graphikaufruf einen Teil eines Bilds erzeugt, der zu drucken ist und der in einem Seitenpuffer abgespeichert ist, wonach die Steuerung an den PDL-Interpretierer zurückgegeben wird. Die Interpretierungs- und Zeichnungsschritte arbeiten für dieselbe Bildseite weiter, bis ein Seitenbeendigungsoperator aufgefunden wird. Dann wird der Bildseitenspeicher durch die Hardware in die Ausgabevorrichtung kopiert. Der Ausgabekopierschritt kann asynchron zu den Interpretierungs- und Graphikfunktionen arbeiten, wenn ausreichend Speicher dafür vorhanden ist, daß der Interpretierer das Bild für eine nächste Seite erzeugen kann, während die Hardware das Ausgangssignal für die vorige Seite über DMA oder andere Maßnahmen liefert.
  • Die Ausgabesteuerung 15 verwendet eine Graphikschnittstelle, die Graphikunterstützungsroutinen enthält, die im Koordinatensystem der Ausgabevorrichtung 19 arbeiten, wobei der Ursprung des Bildkoordinatensystems der Ausgabevorrichtung dem ersten in die Ausgabevorrichtung geschriebenen Pixel entspricht. Die x-Achse des Bildkoordinatensystems liegt parallel zu den Abraster(Raster)-Linien der Ausgabevorrichtung. Demgemäß werden Pixel beim Drucken von links nach rechts in der Reihenfolge zunehmender x-Koordinatenwerte ausgegeben, jedoch werden beim Druck von oben nach unten Abrasterlinien in der Reihenfolge zunehmender y-Koordinatenwerte ausgedruckt.
  • Der PDL-Interpretiererteil der Ausgabesteuerung spezifiziert die Größe einer Bildseite durch Angeben von deren Breite und Länge. Der PDL-Interpretiererteil der Ausgabesteuerung spezifiziert auch die Lage des Bilds innerhalb der körperlichen Seite durch Zuführen von Parametern für den oberen und linken Rand. Diese Parameter werden in Pixeln ausgedrückt.
  • Die Graphikschnittstelle der Ausgabesteuerung 15 erzeugt die zwei folgenden Arten von Aufrufen:
  • 1) Aufrufe betreffend Seiten und
  • 2) Aufrufe, die Bitbilder zeichnen.
  • Aufrufe betreffend Seiten sind die folgenden:
  • 1) Neue Seite - führt die Initialisierung für eine neue Bildseite aus.
  • 2) Seite beenden - startet den Echtzeit-Druckprozeß, wenn die Ausgabevorrichtung frei ist, oder nimmt eine Einreihung nach der Bildreihenfolge vor, wenn die Ausgabevorrichtung belegt ist.
  • 3) Seite abbrechen - wenn die Druckphase nicht begonnen hat, werden die Befehle für die Seite verworfen.
  • 4) Alles abbrechen - alle auf den Druck wartenden Seiten verwerfen.
  • Es existieren die sechs folgenden Klassen von Bitbild-Zeichnungsaufrufen:
  • 1) Blit mit zwei Operanden - führt eine zweidimensionale Bitblockübertragung zwischen zwei Bitkarten, einer Quelle und einem Ziel aus.
  • 2) Blit mit drei Operanden - führt eine zweidimensionale Bitblockübertragung unter Verwendung von drei Bitkarten, einer Quelle, einer Halbtonkarte und einem Ziel aus.
  • 3) Abrasterlinie zeichnen - schreibt Pixelgruppen in einen zusammenhängenden Block von Abrasterlinien innerhalb der Ziel-Bitkarte. Die Eingabe enthält eine Tabelle, die die zu schreibenden Pixelgruppen definiert.
  • 4) Halbton-Abrasterlinie zeichnen - schreibt Pixelgruppen abhängig vom Inhalt einer Halbton-Quellenbitkarte und einer zu schreibende Pixelgruppe definierende Tabelle in die Ziel-Bitkarte.
  • 5) Pixel zeichnen - zeichnet einzelne Pixel in der Ziel-Bitkarte entsprechend einer Pixeltabelle.
  • 6) Halbtonpixel zeichnen - zeichnet einzelne Pixel in der Ziel-Bitkarte entsprechend den Inhalten einer Halbton- Quellenbitkarte und einer Pixeltabelle.
  • Im allgemeinen verfügt jeder der sechs Klassen über mindestens zwei Aufrufe, einen zum Einschreiben der Bildseite- Bitkarte, der die Graphikuntersystem-Schnittstelle verwaltet; und einen anderen für ein vom PDL-Interpretierer verwaltetes Ziel, typischerweise einen RAM-Benutzerspeicher.
  • Schnittstelle zu Bitbild-Zeichnungsaufrufen
  • Im allgemeinen erwarten Bitkartebild-Zeichnungsaufrufe die Eingabe von Benutzer- und Halbtonbitkarte-Deskriptoren. Ein Benutzerbitkarte-Deskriptor enthält eine Bitkartenursprung- Byteadresse, d. h. die Speicheradresse der oberen, linken Ecke der Bitkarte, die Bitkartenbreite in Pixeln, d. h. die Anzahl von Pixeln pro Abrasterlinie, und die Bitkartenhöhe in Pixeln, d. h. die Anzahl von Abrasterlinien. Die Bitkartenbreite und -höhe können beliebige Pixelwerte sein. Für Ziel-Bitkarten erfolgt ein Beschneiden entsprechend der spezifizierten Bitkartenbreite und -höhe; bei Quellen-Bitkarten wird kein Beschneiden ausgeführt.
  • Während die Abmessungen von Benutzerbitkarten keine Grenzeinschränkungen aufweisen, ist die Breite einer Halbton-Bitkarte auf 0 mod 32 Pixel (Mehrfaches eines 32-Bit-Worts) beschränkt. Zusätzlich zum Ursprung, zur Breite und zur Höhe einer Bitkarte weist ein Halbtonbitkarten-Beschreiber drei zusätzliche Felder auf. Zwei der zusätzlichen Felder sind Parameter zum x-y-Ursprung, die denjenigen Punkt in der Halbton-Bitkarte spezifizieren, der dem Ursprung in der Ziel-Bitkarte entspricht. Das dritte Zusatzfeld liefert die Halbtonbitkarten-Größe in Bytes. Beim Gebrauch einer Halbton-Bitkarte wird ein Bildumlauf anstelle eines Beschneidevorgangs ausgeführt. Dies bewirkt, daß die Halbton-Bitkarte scheinbar in der Ziel-Bitkarte sowohl in der x- als auch der y-Abmessung wiederholt wird.
  • Normalerweise ändert sich der Inhalt einer Quellen-Bitkarte nicht, außer über anschließende Aufrufe hinsichtlich der Graphikunterstützungsroutinen, wie von der Ausgabesteuerung 15 ausgeführt. Jedoch muß der PDL-Interpretierer gelegentlich den Inhalt einer Quellen-Bitkarte direkt ändern, nachdem er sie in einem Graphikdienstleistungsaufruf verwendet hat. Da Graphikdienste nicht notwendigerweise synchron mit den Anforderungen ausgeführt werden (d. h., daß sie abgeschlossen werden, bevor Dienstanforderungen wiederkehren), kann eine direkte Änderung den Bitkarteninhalt vor seinem Gebrauch durch die Ausgabesteuerung verändern. In einem solchen Fall muß die Bitkarte als "flüchtig" erklärt werden, z. B. dadurch, daß der PDL-Interpretierer ein "Flüchtig"- Flag als Argument an die Graphikschnittstelle der Ausgabesteuerung 15 weitergibt.
  • Diese Maßnahme muß sparsam verwendet werden und nur dann, wenn es tatsächlich erforderlich ist, und zwar wegen der Belastung des Speichers und der Prozessorzeit. Es ist nicht als Ersatz für die Verwaltung des erforderlichen Speichers durch den PDL-Interpretierer gedacht. Wenn der PDL-Interpretierer und die anderen Teile der Ausgabesteuerung 15 synchron arbeiten, tritt kein Problem auf. Wenn die zwei Prozesse asynchron laufen, wie es der Fall ist, wenn die Steuerung Hardwareunterstützung enthält oder wenn eine doppelte Pufferung arbeitet, muß die Ausgabesteuerung eine Kopie einer "flüchtigen" Bitkarte erstellen, damit sich die Bitkarte nicht ändert, bevor sie verwendet werden kann. Die aufrufende Einrichtung, d. h. der PDL-Interpretierer, kann eine Bitkarte in ihrem Deskriptor mittels eines Flags als flüchtig markieren.
  • Figur 2 zeigt Funktionen gemäß der Erfindung, wie sie von der Ausgabesteuerung 15 ausgeführt werden, die PDL-Befehle aufnimmt, diese PDL-Befehle interpretiert und Graphikbefehle oder -anweisungen erzeugt, und wie vom Bitkartenbild-Generator 17 ausgeführt, der eine Bitkarte des zu druckenden Bilds aus den Graphikanweisungen erzeugt und das Bild an den Drukker ausgibt.
  • Unter Bezugnahme auf Figur 3 werden nun ein Funktionsblockdiagramm der Ausgabesteuerung 15 und des Bitkartenbild-Generators 17, wie beim Stand der Technik realisiert, beschrieben. Speziell gilt, daß die Ausgabesteuerung 15 und der Bitkartenbild-Generator 17 ein Graphikschnittstelle-Untersystem 23 aufweisen, das die Graphikaufrufe erhält, wie sie vom PDL-Interpretierer 21 auf Grundlage der durch die Anweisung 11 erzeugten PDL-Anweisungen 13 erzeugt werden. Das Graphikschnittstelle-Untersystem gibt die Graphikaufrufe an den Prozessor 29 für sofort verarbeitende Blits. Ein Benutzerspeicher 24 ist ein Direktzugriffsspeicher, der vom PDL-Interpretierer 21 als Zwischenspeicher für Quellen-Bitkarten verwendet wird, die an das Graphikschnittstelle-Untersystem 23 als Quellenargumente für Graphikaufrufe weitergegeben werden. Eine Speicherverwaltung 43 nimmt eine Zuordnung sowie eine Aufhebung von Zuordnungen für RAM-Speicherblöcke vor, wie vom Graphikschnittstelle-Untersystem 23 angefordert. Wenn vom PDL-Interpretierer eine Seitenbeendigungsanweisung aufgerufen wird, werden die aktuell zu druckenden Bitkartenbilder vom Seitenpuffer 42 an DMA-Hardware oder einen FIFO-Puffer 53 zur Übertragung an einen Drucker übertragen, was mittels der Funktion einer Ausgabeschnittstelle 47, einer Ausgabeinterrupt-Handhabungseinrichtung 49 und des Graphikschnittstelle-Untersystems 23 erfolgt.
  • Die spezielle Weise, auf die die in Figur 3 dargestellten Elemente arbeiten, um ein Rasterausgangssignal zu erzeugen, das für die Lieferung an einen Drucker geeignet ist, ist die folgende.
  • Der PDL-Interpretierer 21 verarbeitet die eintreffenden PDL- Quellenanweisungen, die das Graphikschnittstelle-Untersystem 23 als erforderlich aufrufen, wobei Aufrufe betreffend Seiten und Bitbild-Zeichnungsvorgänge verwendet werden.
  • Wenn der PDL-Interpretierer das Graphikschnittstelle-Untersystem 23 aufruft, um eine neue Seite zu starten, ruft dieses Graphikschnittstelle-Untersystem die Speicherverwaltung 43 auf, damit diese der Bildseite Speicher zuordnet.
  • Anschließend ruft das Graphikschnittstelle-Untersystem 23 den Prozessor 29 für sofort verarbeitende Blits für jeden Blitbefehl vom PDL-Interpretierer 21 nach dem Überprüfen des Befehls auf Fehler und dem Einstellen der Parameter, falls erforderlich, zum Ausführen einer Beschneidung des Ziels auf, d. h. zum Gewährleisten, daß sich ein Blit nicht über die Grenzen des Ziels erstrecken kann, wie durch die Blitbefehlsargumente oder die Erstreckung der Bildseite definiert.
  • Der PDL-Interpretierer 21 ruft das Graphikschnittstelle-Untersystem 23 auf, wenn es die Verarbeitung für die Seite abgeschlossen hat. Das Graphikschnittstelle-Untersystem ruft dann die Ausgabeschnittstelle 47 auf, um das auszugebende Bild zu liefern.
  • Die Ausgabeschnittstelle nimmt eine Überprüfung dahingehend vor, ob eine Ausgabe abläuft, und falls nicht, startet sie die Druckerhardware und liefert den ersten Datenwert an die DMA-Steuerung oder die FIFO-Vorrichtung 53.
  • Wenn eine Ausgabe abläuft, setzt die Ausgabeschnittstelle 47 das neue Ausgabebild in ihre interne Schlange, damit es gestartet werden kann, wenn die aktuelle Aktivität abgeschlossen ist.
  • Die Interrupt-Handhabungseinrichtung 49 arbeitet so, daß sie mit der Ausgabe von Daten an die DMA-Steuerung oder die FIFO-Vorrichtung 53 fortfährt und ein in die Schlange eingereihtes Bild, falls ein solches vorhanden ist, startet, wenn die Ausgabe für das aktuelle Bild abgeschlossen ist. Wenn die Ausgabe des aktuellen Bilds abgeschlossen ist, ruft die Interrupt-Handhabungseinrichtung 49 eine Abschlußroutine im Graphikschnittstelle-Untersystem 23 auf, um diesen Abschluß zu melden. Zu diesem Zeitpunkt kann das Graphikschnittstelle-Untersystem 23 den Bildseitenpuffer 42 an die Speicherverwaltung 43 zurückgeben oder ihn für ein anderes Bild wiederverwenden.
  • Figur 4 ist ein Funktionsblockdiagramm, das die Funktionen der Ausgabesteuerung 15 und des Bitkartenbild-Generators 17 zeigt, wenn sie gemäß den Lehren der Erfindung realisiert sind. Bevor die Elemente von Figur 4 im einzelnen beschrieben werden, ist es hilfreich, die Hauptunterschiede zwischen der Technik zum Erzeugen des Ausgabebilds in schmalen Bändern gemäß der Erfindung und zum Erzeugen desselben in einem Vollbildseitenpuffer gemäß dem Stand der Technik zu erläutern. Diese Unterschiede sind wie folgt:
  • 1. Wenn ein Vollseitenspeicher verwendet wird, verwendet das Graphikschnittstelle-Untersystem 23 den Prozessor für ein sofort verarbeitendes Blit für jeden Pixelzeichnungsaufruf, den der PDL-Interpretierer erzeugt. Das heißt, daß beim Stand der Technik der Anweisungsaufbau 31, die Anweisungsverdichtung 33, der Echtzeit-Blitprozessor 37 und die abgespeicherten Graphikanweisungen 35, wie in Figur 4 dargestellt, nicht verwendet werden.
  • 2. Zusätzlich benötigen die Ausgabeschnittstelle 47 und die Ausgabeinterrupt-Handhabungseinrichtung 49 beim Stand der Technik keine Koordinatenverarbeitung mit einem Echtzeit- Blitprozessor, der bei Verwendung bekannter Techniken nicht vorliegt, was das Erfordernis für das beseitigt, was als "erweiterter Interruptverarbeitungs-Teilprozeß" bezeichnet werden kann.
  • Die Banderzeugungstechnik gemäß der Erfindung umfaßt die folgenden Erfordernisse:
  • 1. Die Fähigkeit, zwischen Graphikanforderungen, die sofort vom Prozessor 29 für sofort verarbeitende Blits ausgeführt werden können, und solchen, die in abgespeicherte Anweisungen umgesetzt werden müssen, um anschließend vom Echtzeit- Blitprozessor 37 verarbeitet werden zu können, unterscheiden zu können.
  • 2. Design der Formate der abgespeicherten Anweisungen.
  • 3. Anweisungsverdichtungsfunktion.
  • 4. Fähigkeit, die abgespeicherten Anweisungen mittels des Echtzeit-Blitprozessors zu aktualisieren, um diejenigen zu beseitigen, die er abgeschlossen hat, oder diejenigen zu markieren, die er wiederverarbeiten muß, und zwar auf solche Weise, daß er wirkungsvoll eine Anweisung wiederverarbeiten kann, die mehrere Bänder überspannt.
  • Während die erfindungsgemäße Technik durch Software realisiert werden kann, ersetzt eine Hardware, wenn eine Realisierung unter Verwendung von Koprozessorhardware erfolgt, sowohl den sofort verarbeitenden Blitprozessor als auch den Echtzeit-Blitprozessor. Außerdem enthält eine Hardwarerealisierung beim bevorzugten Ausführungsbeispiel die Ausgabe-FIFO- oder die DMA-Vorrichtung 53. Eine Hardwarerealisierung des Echtzeit-Blitprozessors führt dieselbe Art von Anweisungsaktualisierung aus, wie sie durch Softwarerealisierung ausgeführt wird. Da jedoch eine Hardwarerealisierung viel schneller als eine Softwarerealisierung läuft, kann die Hardwarerealisierung eine Bandbildung für viel kompliziertere Seiten erstellen und mit viel schnelleren Ausgabevorrichtungen Schritt halten. Sie kann auch einen gesonderten Hardwarebus für Zugriff auf die Bandpuffer 41a, 41b und 41c aufweisen.
  • Jedoch wird bei Hardwarerealisierung Software normalerweise immer noch dazu verwendet, die abgespeicherten Anweisungen aufzubauen, da die Anweisungsinformation auf eine Weise repräsentiert sein muß, die zur Verarbeitung durch eine übliche Maschine, die auf kostenwirksame Weise realisiert werden kann, geeignet ist.
  • Das Folgende ist eine kurze Beschreibung jedes der Funktionselemente, die die Erfindung umfaßt, wie in Figur 4 dargestellt.
  • Graphikschnittstelle-Untersystem 23
  • Der PDL-Interpretierer 21 ruft das Graphikschnittstelle-Untersystem 23 auf, das ein Satz von Standard-Schnittstellenroutinen für Graphikdienste ist. Die Graphikschnittstelle bestimmt abhängig davon, ob das Ziel der Benutzerspeicher 24 ist oder ob es die Bandpuffer 41 sind, ob sie eine sofortige Blitverarbeitung ausführen kann. Wenn sie keine sofortige Blitverarbeitung ausführen kann, ruft sie die Anweisungsaufbau-Funktion 31 auf, um abgespeicherte Anweisungen 35 zu erzeugen.
  • Nachdem jede der sofortigen Blitverarbeitungen erfolgt ist oder die Anweisungen aufgebaut wurden, kehrt das Graphikschnittstelle-Untersystem zum PDL-Interpretierer 21 zurück.
  • Sofort verarbeitender Blitprozessor 29
  • Diese Funktion zeichnet nach Bedarf Pixel im Benutzerspeicher 24 auf und kehrt dann zurück. Diese Funktion ist im Stand der Technik bekannt und wird immer dann ausgeführt, wenn sich Pixelzeichnungsbefehle auf ein Benutzerspeicherziel auswirken.
  • Anweisungsaufbau 31
  • Die Anweisungsaufbau-Verarbeitung 31 erzeugt Anweisungen 35, die in einen Speicher zur anschließenden Benutzung während einer vom Echtzeit-Blitprozessor 37 ausgeführten Echtzeit- Blitverarbeitung eingespeichert werden. Für bestimmte Arten von Anweisungen, bei denen es möglich ist, folgende Anweisungen mit bereits bekannten zu kombinieren, ruft sie die Anweisungsverdichtungsfunktion 33 auf, um über die Anweisungen auf dem laufenden zu sein. Beim bevorzugten Ausführungsbeispiel werden zumindest alle Abrasterlinie-Blitanweisungen einem Verdichtungsvorgang unterzogen. Andere Arten von Anweisungen können gemäß den erf indungsgemäßen Lehren verdichtet werden.
  • Anweisungsverdichtung 33
  • Diese Funktion hält sich über diejenigen Anweisungen auf dem laufenden, die verdichtet werden können, bis eine Information von der Anweisungsaufbau-Verarbeitungsfunktion erfolgt, daß sie einen Satz Anweisungen abschließen muß. Dann reinitialisiert sie ihre interne Information, um das Sammeln von Information zum nächsten Satz zu starten. Diese Funktion ist in solchen Fällen sehr wichtig, in denen viele kleine Abrasterlinie-Blitanweisungen für einen kleinen Bereich einer Bildseite arbeiten. Eine derartige Verdichtung sorgt für die Hauptverringerung des Speicherumfangs, wie in Fällen mit Blitüberlappung erforderlich.
  • Gespeicherte Anweisungen 35
  • Gespeicherte Anweisungen 35 ist eine interne Wiedergabe von Befehlen zum Erzeugen der Bilder der fraglichen Anwendung.
  • Echtzeit-Blitprozessor 37
  • Wenn der PDL-Interpretierer einen Aufruf ausgibt, um auszusagen, daß er alle Anforderungen für eine Seite abgeschlossen hat, startet das Graphikschnittstelle-Untersystem 23 die Echtzeit-Verarbeitungsphase. Sie durchläuft die abgespeicherten Anweisungen 35 ein Mal für jedes auszugebende Band. Wenn alle Anweisungen, die ein Band erstellen, verarbeitet wurden, ruft sie die Ausgabeschnittstelle 47 auf, um das Band in die Schlange zur Ausgabe einzureihen oder um es direkt zu starten, wenn die DMA- oder FIFO-Puffer-Ausgabehardware 53 verfügbar ist. Wenn ein anderer Bandpuffer 41a, 41b oder 41c verfügbar ist, baut sie das nächste Band auf. Wenn mehrere Puffer verfügbar sind, kehrt sie zum Graphikschnittstelle-Untersystem 23 zurück, das zum PDL-Interpretierer 21 zurückkehrt. Der PDL-Interpretierer kann mit der Interpretierung der Eingabe und der Bearbeitung der nächsten Seite fortfahren. Ab diesem Punkt wird der Echtzeit-Blitprozessor 37 durch Interrupts gesteuert, die durch die Ausgabehardware 53 ausgelöst werden.
  • Der Echtzeit-Blitprozessor 37 setzt die abgespeicherten Anweisungen in einem Band oder einem Abschnitt der auszudrukkenden Seite, wie sie in den Bandpuffern 41a, 41b oder 41c gespeichert sind, in ein Bitkartenbild um.
  • Genau gesagt, wird die Interrupt-Handhabungseinrichtung 49 durch die Ausgabehardware 53 informiert, wenn ein Band an den Drucker geliefert wurde. Der Echtzeit-Blitprozessor 37 wird dann als "erweiterter Interrupt-Teilprozeß" aufgerufen, um seine Verarbeitung fortzusetzen.
  • Bandpuffer 41a, 41b, 41c
  • Die Bandpuffer 41a, 41b und 41c bilden einen Direktzugriffsspeicher, der dazu verwendet wird, die bitkartierte Bildseite zu speichern. Wenn keine Banderstellung erforderlich ist, wird ein einzelner Bandpuffer dazu verwendet, eine vollständige Seite zu speichern. Andernfalls können zwei oder drei Bandpuffer mit einer Größe vorhanden sein, die viel kleiner als die einer vollständigen Seite ist.
  • Speicherverwaltung 43
  • Die Speicherverwaltung 43 nimmt eine Zuordnung und eine Aufhebung von Zuordnungen von Speicherblöcken auf Aufrufe des Graphik-Schnittstellesystems 23, des Anweisungsaufbaus 31, der Anweisungsverdichtung 33 oder des Echtzeit-Blitprozessors 37 vor. Die Speicherverwaltung 43 ist eine Softwarefunktion, die den Speicher verwaltet, der die abgespeicherten Anweisungen und die Bandpuffer enthält, was gemäß wohlbekannten Verwaltungstechniken erfolgt, wie sie verwendet werden müssen, wenn die anderen Softwarekomponenten Speicherblöcke nutzen oder freigeben müssen. Die aktuell zu druckenden Bitkartenbilder werden von den Bandpuffern 41 an die DMA-Hardware oder den FIFO-Puffer 53 zur Übertragung an einen Drucker gegeben, was mittels der Funktion der Ausgabeschnittstelle 47, der Ausgabeinterrupt-Handhabungseinrichtung 49, der Echtzeit-Blitverarbeitung 37 und der Speicherverwaltung 43 erfolgt. In diesem Zusammenhang wird darauf hingewiesen, daß in Figur 4 drei Bandpuffer dargestellt sind, daß in der Praxis jedoch zwei, drei oder mehr Bandpuffer vorhanden sein können, obwohl in den meisten Fällen zwei oder drei Bandpuffer ausreichen.
  • Ausgabeschnittstelle 47
  • Die Ausgabeschnittstelle 47 empfängt vervollständigte Bänder vom Echtzeit-Blitprozessor und gibt sie entweder an die Ausgabehardware 53 weiter oder stellt sie in eine Schlange für die Ausgabeinterrupt-Handhabungseinrichtung 49 ein, um sie an die Ausgabehardware weiterzugeben, wenn diese nicht mehr belegt ist. Unter Zuhilfenahme der Ausgabeinterrupt-Handhabungseinrichtung 49 überwacht die Ausgabeschnittstelle 47 Synchronisiersignale vom Druckgerät, um zu ermitteln, wann sie ein Band zur Ausgabe liefern kann. Druckgeräte senden ein "Rahmensynchronisier"-Signal zum Kennzeichnen des oberen Endes einer Seite. Die Ausgabeschnittstelle kann keine Daten liefern, bevor nicht das "Rahmensynchronisier"-Signal wahr ist.
  • Wenn ein FIFO-Puffer als Ausgabehardware verwendet wird, verlegt die Software für jeweils eine Abrasterlinie auf einmal vom Bandpuffer in den FIFO-Puffer. Ein DMA-Controller kann auf dieselbe Weise verwendet werden. Durch Liefern von Nullen an die Ausgabevorrichtung, wodurch schwarz geschrieben wird, oder durch Ausgeben von Einsen an die Ausgabevorrichtung, wodurch weiß geschrieben wird, werden ein oberer und ein linker Rand erzeugt.
  • Ausgabeinterrupt-Handhabungseinrichtung 49
  • Wenn die Ausgabehardware die Ausgabe eines Bands an eine Videoschnittstelle des Druckgeräts beendet, erzeugt sie einen Interrupt. Die Ausgabeinterrupt-Handhabungseinrichtung entnimmt ihrer Schlange das nächste Band und gibt es an die Ausgabehardware weiter. Dann gibt sie den zuvor abgeschlossenen Bandpuffer zurück, damit der Echtzeit-Blitprozessor ihn wiederverwenden kann.
  • Wenn die Ausgabeinterrupt-Handhabungseinrichtung die Verarbeitung zurückgibt, läuft der Echtzeit-Blitprozessor 37 erneut, bis er ein anderes Band erzeugt hat, bevor das Graphikschnittstellensystem die Verarbeitung an den PDL-Interpretierer zurückgibt. Dieser "erweiterte Interrupt-Teilprozeß" wird auf verschiedenen CPUs abhängig von deren Architekturen verschieden realisiert. Der "erweiterte Interrupt- Teilprozeß" läuft auf einem gesonderten Stack, wobei die CPU-Priorität herabgesetzt ist, so daß sie einen Interrupt erfahren kann.
  • Ausgabehardware 53
  • Wenn Banderzeugung gemäß der Erfindung durch Software realisiert wird, wird ein FIFO- oder DMA-Controller dazu verwendet, ein Videoausgangssignal an die Druckmaschine zu handhaben. Wenn die Banderstellung durch Hardware realisiert ist, kann sie eine FIFO- oder DMA-Controller-Ausgabehardware enthalten.
  • Beim bevorzugten Ausführungsbeispiel sind die in Figur 4 dargestellten funktionellen Elemente in Hardware realisiert, obwohl dann, wenn ein solches Element oder mehrere in Software realisiert sind, die von jedem derartigen Element ausgeführte Funktion tatsächlich durch den Betrieb eines Mikroprozessors ausgeführt wird, der einen Satz von in einem Speicher enthaltenen Anweisungen ausführt, was so erfolgt, daß der Mikroprozessor Steuersignale erzeugt, die für die ausgeführte Funktion zweckentsprechend sind. In diesem Zusammenhang ist zu beachten, daß genauso, wie spezielle Hardwarerealisierungsdetails für den Fachmann auf dem Gebiet der Erfindung nicht erforderlich sind, um diese zu erstellen und zu verwenden, die Einzelheiten eines Mikroprozessors, eines Speichers, eines Daten- und Adreßbusses, eines Takts und dergleichen, wie sie erforderlich sind, um die Erfindung durch Software zu realisieren, dem Fachmann auf Grundlage der hier gegebenen Beschreibung leicht ersichtlich sind.
  • Beim bevorzugten Ausführungsbeispiel sind die verschiedenen Elemente von Figur 4, wie sie bei der Erfindung vorhanden sind, wie folgt realisiert.
  • Graphikschnittstelle-Untersystem 23
  • Alle Dienstanforderungen vom PDL-Interpretierer laufen in ein Graphikschnittstellen-Modul. Diese Dienstanforderungen sind: neue Seite, Seite beenden, alle Blits mit Benutzerzielen, sowie Blits mit Bildseitezielen.
  • Neue Seite
  • Der Aufruf neue Seite führt eine Initialisierung für eine neue Seite aus:
  • - Bestimmen der Erfordernisse für den Bildseitenspeicher aus Eingabeargumenten;
  • - Aufruf der Speicherverwaltung zum Zuordnen von Bandpuffern zur Bildseite
  • -- wenn die Speicherverwaltung den erforderlichen Speicher nicht zur Verfügung stellen kann
  • --- wenn die Anweisung ein Flag NO-PGWAIT lieferte oder keine Ausgabe abläuft
  • ---- Rückkehr mit Fehlerhinweis
  • --- Warten, daß Speicher verfügbar wird
  • - Initialisieren des Speichers und Steuern der Struktur für eine Seite
  • - Rückkehr ohne Fehlerhinweis.
  • Ende einer Seite
  • Der Aufruf Ende einer Seite startet das Ausdrucken eines Bilds, wenn die Seite nicht in Bänder unterteilt ist, oder er startet die Echtzeit-Blitverarbeitung, wenn das Bild in Bänder aufgeteilt ist.
  • - Sichern der Adresse der Anwendungsabschlußfunktion
  • - Einschreiben von Anf angsparametern wie der aktuellen Bandnummer und der Kopienanzahl in die Steuerstruktur für diese Seite
  • - Wenn die Seite nicht in Bänder unterteilt ist
  • -- Aufrufen der Ausgabeschnittstelle zum Bereitstellen des Bildpuffers für die Ausgabe
  • -- Zurück
  • - Andernfalls
  • -- Aufrufen der Echtzeit-Blitroutine, nächste Seite starten,
  • -- Zurück
  • Alle Blits mit Benutzerzielen
  • - Wenn die Seite nicht in Bänder unterteilt ist oder die Anwendung mit dem Flag DO-ONCE aufgerufen wird
  • -- Sofortige Blitverarbeitung aufrufen, um den Pixelzeichnungsdienst auszuführen
  • -- Zurück
  • - Andernfalls
  • -- Anweisungsaufbau aufrufen, um eine abgespeicherte Anweisung für den Blit zu erzeugen
  • -- Zurück
  • Alle Blits mit Bildseitenzielen
  • - Wenn die Seite nicht in Bänder unterteilt ist
  • -- Sofortige Blitverarbeitung aufrufen, um den Pixelzeichnungsdienst auszführen
  • -- Zurück
  • - Andernfalls
  • -- Anordnungsaufbau aufrufen, um abgespeicherte Anweisung für den Blit zu erzeugen
  • -- Zurück
  • Sofort verarbeitender Blitprozessor 29
  • Die sofort verarbeitende Blitfunktion zeichnet Pixel im Speicher. Jeder Blittyp verfügt über einen Satz von Argumenten, die die Größe des zu zeichnenden Bilds, seinen Ort im Speicher und die spezielle Blitfunktion bestimmen.
  • Blit mit zwei Operanden
  • Ein Blit mit zwei Operanden führt einen zweidimensionalen Bitblock-Übertragungsvorgang zwischen zwei Bitkarten aus. Die Quelle- und die Zielbitkarte sind durch die weitergegebenen Bitkartendeskriptoren bestimmt.
  • Blit mit drei Operanden
  • Ein Blit mit drei Operanden führt einen zweidimensionalen Bitblock-Übertragungsvorgang unter Verwendung dreier Bitkarten aus. Das Ziel ist eine vom Benutzer bestimmte Bitkarte. Jedes Quellen-, Halbton- und Zielpixel wird abhängig von einem Parameter pixop kombiniert und dann im selben Pixel in der Ziel-Bitkarte neu geschrieben.
  • Die dritte Bitkarte ist eine Halbton(oder Druck)-Bitkarte, wie sie typischerweise dazu verwendet wird, ein wahlfreies Muster in den Zielrahmen einzuschreiben. Die Halbton-Bitkarte und ihr Ursprung in der Ziel-Bitkarte werden über Halbtonparameter spezifiziert. Die Halbton-Bitkarte wird auf Bildumlaufweise verwendet: eine Pixelbenutzung ab dem Ende einer Abrasterlinie dauert ab dem Beginn derselben Abrasterlinie an; eine Abrasterlinienbenutzung ab dem Ende der Bitkarte dauert bis zur ersten Abrasterlinie in der Bitkarte an.
  • Abrasterlinienblit
  • Der Aufruf Abrasterlinie schreibt Pixelgruppen in einen zusammenhängen Block von Abrasterlinien innerhalb einer Ziel- Bitkarte ein. Der Benutzer gibt eine die Pixelgruppe definierende Tabelle weiter. Eine Pixelgruppe besteht aus einer zusammenhängenden Folge von Pixeln in einer einzelnen Abrasterlinie. Die Tabellenstruktur ermöglicht mehrere Gruppen pro Abrasterlinie.
  • Halbton-Abrasterlinie zeichnen
  • Der Aufruf Halbton-Abrasterlinie zeichnen schreibt Pixelgruppen abhängig vom Inhalt der Halbton-Bitkarte und des Boolschen Operators pixop in die Ziel-Bitkarte ein. Der Benutzer gibt einen Halbtonbitkarten-Deskriptor wie auch einen Zielbitkarten-Deskriptor und eine die Pixelgruppen definierende Tabelle weiter. Eine Pixelgruppe besteht aus einer zusammenhängenden Folge von Pixeln in einer einzelnen Abrasterlinie. Die Tabellenstruktur ermöglicht mehrere Gruppen pro Abrasterlinie sowie das Überspringen von Abrasterlinien.
  • Vertikale Linie zeichnen
  • Der Aufruf Vertikale Linie zeichnen führt einen Dienst ähnlich dem Aufruf Abrasterlinie zeichnen aus, mit der Ausnahme, daß die Pixelgruppen eine vertikale Linie oder Linien repräsentieren. Der Benutzer gibt eine die Pixelgruppen definierende Tabelle weiter. Eine Pixelgruppe besteht aus einer zusammenhängenden Pixelfolge. Die Tabellenstruktur ermöglicht mehrere Pixelgruppen.
  • Pixel zeichnen
  • Der Aufruf Pixel zeichnen verarbeitet die spezifizierte Pixeltabelle, wobei die betroffenen Pixel nur gemäß der Boolschen Operation pixop in das Ziel eingeschrieben werden. Das Ziel ist durch den Zielbitkarten-Deskriptor bestimmt. Die Pixeltabelle besteht aus einer Anzahl von xy-Paaren.
  • Halbtonpixel zeichnen
  • Der Aufruf Halbtonpixel zeichnen verarbeitet die spezifizierte Pixeltabelle, wobei er die beeinflußten Pixel entsprechend der Halbton-Bitkarte und der Boolschen Pixeloperation schreibt. Das Ziel wird durch den Zielbitkarten-Deskriptor bestimmt. Die Pixeltabelle besteht aus der im Zählparameter spezifizierten Anzahl von xy-Paaren.
  • Logische Pixeloperation
  • Der Wert jedes geschriebenen Pixels wird durch eine logische Kombination des Pixels (der Pixel) bestimmt, wie bei einer speziellen Operation beteiligt. Einige Operationen, wie die Operation Abrasterlinie, betreffen nur ein Zielpixel bei jeder Koordinate. Andere, wie die Operation 2Blit, betreffen ein Quellen- und ein Zielpixel an jeder Koordinate, während noch andere, wie 3Blit, Halbton-, Quellen- und Zielpixel betreffen. Es bestehen 256 mögliche Kombinationen aus drei Pixeln und den vier Boolschen Operatoren NICHT, UND, ODER, XOR. Alle derartigen Kombinationen können unter Verwendung bitweiser Logikkombinationen gemäß den folgenden Definitionen ausgedrückt werden:
  • GRS-DST = 10101010 GRS-SRC = 11001100 GRS-WEISS = 00000000 GRS-SCHWARZ = 11111111
  • WEISS und SCHWARZ werden verwendet, wenn die geschriebenen Pixel den entsprechenden Wert unabhängig von den zuvor vorhandenen Pixelwerten aufweisen sollen. Die drei anderen Werte können kombiniert werden, um alle anderen möglichen eindeutigen Boolschen Kombinationen von drei Pixeln mit vier Operatoren zu erzeugen. Es erzeugen nicht notwendigerweise alle Kombinationen nützliche Wirkungen. Zum Beispiel:
  • - Quellenpixel ins Ziel kopieren ... pixop = GRS-SRC 11001100
  • - Komplemtieren der Zielpixel ... pixop = NICHT GRS-DST 01010101
  • - Überlagern einer Quellen-Bitkarte mit der Ziel-Bitkarte ... pixop = GRS-SRC ODER GRS-DST 11101110
  • - Überlagern des Negativs einer Quellen-Bitkarte mit der Zielbitkarte ... pixop = (NICHT GRS-SRC) ODER GRS-DST 10111011
  • - dem Bild in einer Quellen-Bitkarte entsprechende Zielpixel weiß machen ... pixop = (NICHT GRS-SRC) UND GRS-DST 00100010
  • - alle Zielpixel, die in der Quellen-Bitkarte schwarz sind, auf einen Halbton bringen, wobei alle anderen Zielpixel unverändert bleiben ... pixop = (GRS-SRC UND GRS-HT) ODER ((NICHT GRS-SRC) UND GRS-DST) 11100010
  • Alle sofort verarbeiteten Blitvorgänge laufen wie folgt ab:
  • - Benutzerargumente prüfen
  • - Falls ein Argumentfehler vorhanden ist
  • -- Fehlerhinweis zurückliefern
  • - Falls Beschneiden erforderlich ist
  • -- Parameter für einen Blitaufruf auf niedrigem Niveau einstellen
  • - Wenn Blithardware verfügbar ist
  • -- Hardware-Befehl/Anweisung errichten
  • - Wenn die Hardware belegt ist
  • --- Anweisung in der Schlange zum Start durch die Interrupt- Handhabungseinrichtung hinzufügen
  • --- Zurück
  • - Andernfalls
  • -- Zweckentsprechende Blitfunktion mit niedrigem Niveau aufrufen
  • - Zurück
  • Anweisungsaufbau 31
  • Der Aufruf Anweisungsaufbau errichtet abgespeicherte Anweisungen für die Echtzeit-Blitsoftware für Hardware zur Verwendung beim Aufbauen einer Bildseite. Jede abgespeicherte Anweisung enthält die von den sofort verarbeiteten Blitroutinen erforderliche Information und Information, wie sie von den Echtzeit-Blitroutinen verwendet wird, wie das von der Anweisung beeinflußte erste Bildseitenband.
  • - Errichten einer abgespeicherten Anweisung aus den weitergegebenen Blitargumenten
  • - Wenn die Anwendung mit dem Flag FLÜCHTIG für die Quellen- Bitkarte aufgerufen wurde
  • -- Aufrufen der Speicherverwaltung, um Raum zum Kopieren der Bitkarte zu erhalten
  • -- Wenn nicht ausreichend Speicher verfügbar ist
  • --- Mit Fehlerhinweise zurück
  • -- Andernfalls Kopieren der Quellen-Bitkarte
  • - Wenn der angeforderte Blit keiner Verdichtung unterliegt
  • -- Routine zur Anweisungsverdichtung und Datenstrukturbeendigung aufrufen
  • - Andernfalls
  • -- Routine zur Anweisungsverdichtung und zum Hinzufügen einer Anweisung aufrufen
  • - Zurück
  • Fehlerverdichtung 33
  • Der Aufruf Fehlerverdichtung versucht, mehrere Anweisungen zu einer einzelnen Anweisung zu kombinieren, wobei Redundanz für mehrere Anweisungen beseitigt wird, die auf dieselben Zielpixelgruppen einwirken. Die Verdichtungsroutine hält sich durch eine interne Datenstruktur über die Pixelgruppen auf dem laufenden. Sie fährt mit einem Anfügen an die Struktur fort, bis der Aufruf Anweisungsaufbau fordert, den aktuellen Satz abzuschließen. Wenn dies erfolgt, wird die aktuelle Datenstruktur in eine Anweisung umgesetzt und im Anweisungsspeicher untergebracht. Der nächste Aufruf für eine Anweisungsverdichtung beginnt mit einer neuen Datenstruktur. Es kann eine Anzahl üblicherweise verwendeter Datenstrukturen dazu verwendet werden, hinsichtlich der einer Verdichtung unterliegenden Anweisung auf dem laufenden zu bleiben, wozu eine verkettete Liste, ein Array oder ein binärer Baum gehören. Wenn eine nicht erweiterbare Struktur mit festgelegter Länge wie ein Array verwendet wird, begrenzt die Größe des Arrays die Anzahl kombinierbarer Anweisungen. Dies vereitelt das Verdichtungssystem nicht; wenn die Datenstruktur volläuft, kann die Funktion Anweisungen hinzufügen, die Abschlußroutine aufrufen, um den aktuellen Satz abzuschließen und einen neuen zu starten. Dies kann den Verdichtungsgrad etwas verringern.
  • Hinzufügeanweisung
  • - Wenn keine aktuelle Datenstruktur vorliegt
  • -- Speicherverwaltung aufrufen, um Raum für eine Datenstruktur zuzuordnen
  • --- Falls ein Fehler vorliegt
  • ---- Fehlerhinweis zurückliefern
  • -- Neue Datenstruktur initialisieren
  • -- Eingabepixelgruppen in der neuen Datenstruktur anordnen
  • - Zurück
  • - "Aktuelle Eingabegruppe" in die erste Pixelgruppe in der Eingabe einschreiben
  • - "Aktuell vorhandene Gruppe" in die erste Pixelgruppe in der vorhandenen Datenstruktur einschreiben
  • - Während eine "aktuelle Eingabegruppe" zu verarbeiten bleibt ("aktuelle Eingabegruppe", die kleiner ist oder der Anzahl eingegebener Pixelgruppen entspricht)
  • - {
  • -- y-Position der "aktuellen Eingabegruppe" mit der y-Position von "aktuell vorhandene Gruppe" vergleichen
  • -- Falls Gleichheit besteht
  • --- x(Horizontal)-Startposition) von "aktuelle Eingabegruppe" mit x von "aktuell vorhandene Gruppe" vergleichen
  • --- Wenn x-Start für die "Eingabe" gleich groß wird wie oder größer wird als x-Start für "vorhanden" und x-Ende für die "Eingabe" kleiner wird als oder gleich groß wird wie x-Ende für "vorhanden"
  • ---- "vorhandene" Pixelgruppe so ändern, daß sie die "eingegegebene Pixelgruppe enthält
  • ---- "aktuelle Eingabegruppe" inkrementieren
  • -- Inkrementieren von "aktuell vorhandene Gruppe"
  • -- Wenn "aktuell vorhandene Gruppe" größer als die zuletzt vorhandene Gruppe ist (keine weiteren vorhandenen Gruppen mehr)
  • ---- Restliche Eingabegruppen hinzufügen
  • ---- Zurück
  • - }
  • - Zurück
  • Datenstruktur abschließen
  • - Datenstruktur in Anweisung umsetzen
  • - Neue Anweisung zu den Echtzeit-Anweisungen hinzufügen
  • - Speicherverwaltung aufrufen, um die Zuordnung der vorübergehenden Datenstruktur aufzuheben
  • - Zurück
  • Echtzeit-Blitprozessor 37
  • Die Echtzeit-Blitroutine beginnt damit, daß sie so viele Bänder erzeugt, wie sie Bandpuffer zur Verfügung hat. Dann liefert sie diese anfänglichen Bänder der Reihe nach an die Ausgabeschnittstelle 47 und gibt die Abarbeitung an die Abrufeinrichtung zurück. Wenn die Interrupt-Handhabungseinrichtung 49 ermittelt, daß ein Band gedruckt wurde, wird die Echtzeit-Blitverarbeitung über einen "erweiterten Interrupt- Teilprozeß" neu gestartet, um das nächste Band im verfügbaren Bandpuffer zu erzeugen.
  • Nächste Seite beginnen
  • - Wenn diese Seite über einen zuvor zugeordneten Bandpuffer verfügt
  • -- Wenn die Banderzeugung belegt ist
  • --- Seitensteuerungsstruktur in die Schlange einreihen
  • --- Zurück
  • -- Banderzeugung aufrufen, die die Seitensteuerungsstruktur liefert
  • --- Zurück
  • - Andernfalls
  • -- Zurück
  • Banderzeugungs-Eintrittspunkt
  • - Während keine Bilderzeugungs abläuft
  • - {
  • -- Wenn alle Bildbandpuffer belegt sind
  • --- Zurück
  • -- Während eine Anweisung in der Liste abgespeicherter Anweisungen eine Bandnummer aufweist, die der aktuellen Bandnummer entspricht
  • -- {
  • Information aus der Anweisung entnehmen, um den Blit zu bestimmen, der erforderlich ist, um die angegebenen Pixel oder den Teil derselben zu zeichnen, der in das aktuelle Band paßt
  • -- Aufrufen der Blitfunktion mit niedrigem Niveau
  • -- Wenn die Anweisung im aktuellen Band nicht abgeschlossen werden kann
  • --- Aktualisieren der Bandnummer in der Anweisung auf aktuelles Band + 1
  • --- Aktualisieren anderer Parameter nach Bedarf
  • -- Andernfalls
  • --- Markieren der Anweisung als vollständig
  • -- }
  • -- Wenn es das erste Band der Seite ist
  • --- Setzen des Flags für das erste Band zur Weitergabe an die Ausgabeschnittstelle
  • Ebenfalls Abschlußroutineadresse einschreiben
  • -- Wenn es das letzte Band der Seite ist
  • --- Flag für das letzte Band setzen, um es an die Ausgabeschnittstelle weiterzugeben
  • -- Ausgabeinterface aufrufen, das die Ausgabestruktur liefert
  • -- Wenn das letzte Band des Bilds erzeugt wurde
  • --- Wenn eine weitere Bildkopie erforderlich ist
  • ---- Dekrementieren des Kopienzählwerts
  • ---- Bandnummer in der aktuellen Steuerstruktur auf 1 zurücksetzen
  • --- Andernfalls
  • ---- Wenn ein anderes Bild in der Schlange steht
  • ----- Zugehörige Steuerstruktur aus der Schlange entnehmen
  • ---- Andernfalls
  • ----- Erfolgte Banderzeugung einschreiben
  • - }
  • - Zurück
  • Abschlußfunktion: (Von der Interrupt-Handhabungseinrichtung aufgerufen)
  • - Bandpuffer-Leerlauf markieren
  • - Falls im aktuellen Band mehrere Bänder vorhanden sind und die Banderzeugung leerläuft
  • -- Banderzeugung über den "erweiterten Interrupt-Teilprozeß" starten
  • - Andernfalls
  • -- Abschlußfunktion des PDL-Interpretierers aufrufen, falls eine solche vorhanden ist
  • - Zurück
  • Speicherverwaltung 43
  • Die Speicherverwaltung stellt Dienste für eine Zuordnung und eine Aufhebung der Zuordnung für einen RAM zur Verfügung, so daß andere Funktionen Speicherblöcke mit variabler Größe anfordern und freigeben können.
  • Block zuordnen
  • - Interne Datenstrukturen nach einem freien Speicherblock durchsuchen, dessen Größe der angeforderten Größe entspricht oder größer ist
  • -- Wenn ein der angeforderten Größe entsprechender Block gefunden wird
  • --- Block als in Verwendung befindlich markieren
  • --- Zur aufrufenden Einrichtung mit der Blockadresse zurückkehren
  • -- Andernfalls
  • --- Freien Block zweiteilen
  • --- Den neuen Block hinsichtlich der aufrufenden Einrichtung als in Gebrauch befindlich markieren
  • --- Zur aufrufenden Einrichtung mit der Blockadresse zurückkehren
  • Freier Block
  • - Blockadresse verifizieren
  • - Wenn die Adresse ungültig ist
  • -- Mit Fehlerhinweiscodes zurück
  • - Block als frei markieren
  • - Ohne Fehlerhinweis zurück
  • Ausgabeschnittstelle 47
  • Die Ausgabeschnittstelle empfängt Argumente, die die Größe des Bandpuffers festlegen, eine Abschlußfunktionsadresse, Information zum linken und oberen Rand, einen Zählwert dafür, wie häufig das Band zu drucken ist, und Flags, die das erste und letzte Band anzeigen. In einem nicht in Bänder unterteilten Fall ist das Band ein vollständiges Speicherbild der Seite, und es ist sowohl das erste als auch das letzte Bandflag gesetzt.
  • - Wenn die Ausgabevorrichtung belegt ist
  • -- Bandinformation in der internen Schlange anordnen
  • -- Zurück
  • - Andernfalls
  • -- Interne Datenstrukturen initialisieren
  • -- Ausgabevorrichtung starten
  • -- Auf Synchronisierungssignal warten
  • -- Kopieren der ersten Abrasterlinie oder mehrerer Abrasterlinien in den FIFO-Puffer oder Start
  • -- DMA-Einrichtung soll mit der Bildausgabe beginnen
  • -- Zurück
  • Ausgabeschnittstelle-Handhabungseinrichtung 49
  • Die Hardware zeigt einen Interrupt an, wenn mehr Daten an die FIFO- oder DMA-Einrichtung geliefert werden müssen.
  • - Interne Information überprüfen, um zu ermitteln, ob mehr Abrasterlinien im aktuellen Bandpuffer geliefert werden müssen
  • - Wenn sich keine weiteren Abrasterlinien im aktuellen Band befinden
  • -- Echtzeit-Blitabschlußfunktion aufrufen
  • -- Nächstes Band aus der Schlange nehmen
  • -- Wenn keine weiteren Bänder existieren
  • --- Zurück
  • -- Andernfalls
  • --- Interne Information für dieses Band initialisieren
  • - Kopieren in den FIFO-Puffer oder DMA starten
  • - Zurück

Claims (4)

1. Vorrichtung zum Erzeugen einer Bildseite, die komplizierte Graphikinformation enthalten kann, zur Anzeige auf einer kontinuierlich und synchron arbeitenden Rasterausgabevorrichtung unter Erzeugung von Bändern von Graphikinformation, die einen Speicherumfang verwenden, der kleiner als der Umfang ist, der dazu erforderlich wäre, eine vollständige Bildseite zu speichern, mit:
a) einer Einrichtung zum Empfangen und Interpretieren von Befehlen in einer Seitenbeschreibungssprache, die die auszugebende Bildseite definiert;
b) einer Einrichtung zum Erzeugen eines Satzes von Graphikanweisungen aus den Befehlen der interpretierten Seitenbeschreibungssprache in solcher Weise, daß:
i) die Graphikanweisungen zu Bändern von Bitkartenbildern verarbeitet werden, die mit einer Geschwindigkeit an die Ausgabevorrichtung geliefert werden, wie sie von der Ausgabevorrichtung gefordert wird; und
ii) während die Graphikinformation in einem ersten der Bänder durch die Ausgabevorrichtung ausgegeben wird, die Bitkartenbilder für ein zweites der Bänder erzeugt werden;
c) einer Einrichtung zum Erzeugen der Bänder von Bitkartenbildern aus den Graphikanweisungen;
d) einer Einrichtung zum Ausgeben der Bänder von Bitkartenbildern an die Ausgabevorrichtung.
2. Vorrichtung nach Anspruch 1, bei der die Erzeugungseinrichtung für Graphikanweisungen folgendes aufweist:
a) eine Graphikschnittstelle-Untersystemeinrichtung zum Empfangen der interpretierten Befehle in der Seitenbeschreibungssprache und zum Weitergeben dieser empfangenen Befehle an mindestens eine der folgenden Einrichtungen: eine Speicherverwaltungseinrichtung, eine sofort verarbeitende Blitprozessoreinrichtung und eine Anweisungsaufbaueinrichtung;
b) die genannte Speicherverwaltungseinrichtung zum Zuordnen und Aufheben der Zuordnung von Speicherblöcken auf Aufrufe von der Graphikschnittstelle-Untersystemeinrichtung, der Anweisungsaufbaueinrichtung und einer Anweisungsverdichtungseinrichtung hin;
c) die genannte sofort verarbeitende Blitprozessoreinrichtung zum Zeichnen von Pixeln in einem Benutzerspeicher auf Grundlage von Pixelzeichnungsbefehlen, wie sie von der Graphikschnittstelle-Untersystemeinrichtung weitergegeben wurden;
d) die genannte Anweisungsaufbaueinrichtung zum Aufbauen abgespeicherter Anweisungen auf Grundlage von Blitargumenten, wie sie von der Graphikschnittstelle-Untersystemeinrichtung weitergegeben wurden;
e) die genannte Anweisungsverdichtungseinrichtung zum Kombinieren mehrerer Anweisungen, die auf Zielpixelgruppen einwirken, wie sie von der Anweisungsaufbaueinrichtung erstellt wurden.
3. Vorrichtung nach Anspruch 2, bei der die Banderzeugungseinrichtung eine Echtzeit-Blitprozessoreinrichtung aufweist, um die abgespeicherten Anweisungen einmal für jedes auszugebende Band zu durchlaufen und um die abgespeicherten Anweisungen in Bitkartenbilder umzusetzen, die den Abschnitten der auszugebenden Bildseiten entsprechen, und um die Bitkartenbilder für jedes genannte Band in einen entsprechenden Bandpuffer einzuspeichern.
4. Vorrichtung nach Anspruch 1, bei der die Bandausgabeeinrichtung folgendes aufweist:
a) eine Ausgabeschnittstelleneinrichtung zum Empfangen fertiggestellter Bänder von Bitkartenbildern von der Echtzeit- Blitprozessoreinrichtung und zum Weitergeben der Bänder an eine Ausgabepuffereinrichtung auf Grundlage von Signalen, wie sie von der Ausgabepuffereinrichtung und einer Ausgabeinterrupt-Handhabungseinrichtung empfangen werden;
b) die genannte Ausgabeinterrupt-Handhabungseinrichtung zum Abrufen eines die Bitkartenbilder enthaltenden Bands aus einer Schlange und zum Weitergeben des Bands an die Ausgabepuffereinrichtung,
c) die genannte Ausgabepuffereinrichtung zum Liefern der Bitkartenbilder an die Ausgabevorrichtung.
DE69117112T 1990-08-08 1991-08-02 Verfahren und Vorrichtung zur Bildwiedergabe Expired - Lifetime DE69117112T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US56441790A 1990-08-08 1990-08-08

Publications (2)

Publication Number Publication Date
DE69117112D1 DE69117112D1 (de) 1996-03-28
DE69117112T2 true DE69117112T2 (de) 1996-06-27

Family

ID=24254389

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69117112T Expired - Lifetime DE69117112T2 (de) 1990-08-08 1991-08-02 Verfahren und Vorrichtung zur Bildwiedergabe

Country Status (6)

Country Link
US (2) US5502804A (de)
EP (1) EP0470782B1 (de)
JP (1) JP3252329B2 (de)
AT (1) ATE134272T1 (de)
DE (1) DE69117112T2 (de)
HK (1) HK1007014A1 (de)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
DE69132625T2 (de) * 1990-07-31 2001-10-31 Canon K.K., Tokio/Tokyo Gerät zur Bildverarbeitung
US5509115A (en) * 1990-08-08 1996-04-16 Peerless Systems Corporation Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device
ATE134272T1 (de) * 1990-08-08 1996-02-15 Peerless Group Verfahren und vorrichtung zur bildwiedergabe
US6377261B1 (en) * 1991-02-28 2002-04-23 Adobe Systems Incorporated Compiling glyphs into instructions for imaging for execution on a general purpose computer
JPH05183765A (ja) * 1991-12-27 1993-07-23 Canon Inc データ処理システム及び該システムに用いることが可能な装置
EP0568357B1 (de) * 1992-04-29 2002-03-06 Canon Kabushiki Kaisha Graphisches System und Verfahren
US5493634A (en) * 1992-06-12 1996-02-20 Xerox Corporation Apparatus and method for multi-stage/multi-process decomposing
EP0575134B1 (de) * 1992-06-15 2000-02-23 Canon Kabushiki Kaisha Verfahren und Gerät zum Drucken nach einer grafischen Sprache
US5515481A (en) * 1992-07-08 1996-05-07 Canon Kabushiki Kaisha Method and apparatus for printing according to a graphic language
US5577173A (en) * 1992-07-10 1996-11-19 Microsoft Corporation System and method of printer banding
US5471564A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
US5471563A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for automatic resolution reduction
US5467435A (en) * 1992-07-10 1995-11-14 Microsoft Corporation System and method for mode switching
US5337258A (en) * 1992-07-10 1994-08-09 Microsoft Corporation Cost metrics
US5469533A (en) * 1992-07-10 1995-11-21 Microsoft Corporation Resource-oriented printer system and method of operation
JP3360905B2 (ja) * 1993-01-04 2003-01-07 ゼロックス・コーポレーション プリンティングシステム
US5602976A (en) * 1993-02-23 1997-02-11 Adobe Systems Incorporated Method and apparatus for saving printer memory
US5500928A (en) * 1993-03-01 1996-03-19 Xionics Document Technologies, Inc. Digital printing system and process using adaptive compression
DE69429849T2 (de) * 1993-11-08 2002-08-22 Seiko Epson Corp., Tokio/Tokyo Feststellung des Betriebszustands eines Druckers
US6362896B1 (en) 1993-11-08 2002-03-26 Seiko Epson Corporation Printing apparatus with a cash drawer control function, and a control method therefor
US6975423B2 (en) 1993-11-08 2005-12-13 Seiko Epson Corporation Printing apparatus and a control method therefor
US6323958B1 (en) * 1993-11-19 2001-11-27 Canon Kabushiki Kaisha Printing apparatus
US5687303A (en) * 1994-05-18 1997-11-11 Xerox Corporation Printer controller for object optimized printing
US6327043B1 (en) 1994-05-18 2001-12-04 Xerox Corporation Object optimized printing system and method
US5552898A (en) * 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
US5857064A (en) * 1995-04-03 1999-01-05 Object Technology Licensing Corporation System for imaging complex graphical images
DE19513105A1 (de) * 1995-04-07 1996-10-10 Hell Ag Linotype Verfahren zur Generierung einer Contone-Map
JP2887572B2 (ja) * 1995-04-07 1999-04-26 富士ゼロックス株式会社 画像出力装置および画像処理方法
DE19514293A1 (de) * 1995-04-24 1996-10-31 Hell Ag Linotype Verfahren zur Montage von Ganzseitenbögen
US5831637A (en) * 1995-05-01 1998-11-03 Intergraph Corporation Video stream data mixing for 3D graphics systems
US6952801B2 (en) * 1995-06-07 2005-10-04 R.R. Donnelley Book assembly process and apparatus for variable imaging system
DE69632644T2 (de) 1995-07-03 2005-05-25 Electronics for Imaging, Inc., Foster City Bilderzeugung für seitendrucker
US5793937A (en) * 1996-03-29 1998-08-11 Peerless Systems Corporation Fallback processing for page generation using memory reduction techniques
US6538764B2 (en) * 1996-04-12 2003-03-25 Canon Kabushiki Kaisha Printing apparatus, information processing apparatus, data processing method for use in such an apparatus, and storage medium storing computer-readable program
US5630028A (en) * 1996-05-28 1997-05-13 Bowne & Co., Inc. Method of representing graphic data using text
US5848226A (en) * 1996-06-03 1998-12-08 Xerox Corporation Prioritized data transfer through buffer memory in a digital printing system
US6046748A (en) * 1996-06-27 2000-04-04 Peerless Systems Corporation Cooperative filter and raster operation evaluation model
US5828814A (en) * 1996-09-10 1998-10-27 Moore Business Forms, Inc. Reduced cost high resolution real time raster image processing system and method
JPH1093813A (ja) 1996-09-12 1998-04-10 Canon Inc 記録装置
JP3039396B2 (ja) * 1996-10-18 2000-05-08 富士ゼロックス株式会社 印刷制御装置及び方法
US6236463B1 (en) 1997-01-17 2001-05-22 Moore U.S.A., Inc. Generating high speed variable information printed multiple page documents
US5963935A (en) * 1997-02-28 1999-10-05 Oracle Corporation Combining bitmaps within a memory limit
US6067540A (en) * 1997-02-28 2000-05-23 Oracle Corporation Bitmap segmentation
US5930466A (en) * 1997-03-11 1999-07-27 Lexmark International Inc Method and apparatus for data compression of bitmaps using rows and columns of bit-mapped printer data divided into vertical slices
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
US6097496A (en) * 1997-04-21 2000-08-01 Hewlett-Packard Company Integrated display list and building tool for multiple personalities
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6195674B1 (en) 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
US5870535A (en) * 1997-05-12 1999-02-09 Lexmark International, Inc. Method and apparatus for building rasterized lines of bitmap data to be printed using a piecewise-linear direct memory access addressing mode of retrieving bitmap data line segments
US6046818A (en) * 1997-06-03 2000-04-04 Adobe Systems Incorporated Imposition in a raster image processor
US6205452B1 (en) 1997-10-29 2001-03-20 R. R. Donnelley & Sons Company Method of reproducing variable graphics in a variable imaging system
US6313847B1 (en) * 1997-12-22 2001-11-06 Adobe Systems Incorporated Blending graphics objects in a frame buffer
JP3689579B2 (ja) * 1998-02-05 2005-08-31 キヤノン株式会社 情報処理装置及び情報処理方法、記憶媒体
US6891632B2 (en) * 1998-07-17 2005-05-10 Peerless Systems, Inc. Method and apparatus for selecting print strategy for optimal performance
US6774868B1 (en) * 1999-01-15 2004-08-10 Microsoft Corporation Method for tiling multiple displays to generate a large area display of moving data
US7278094B1 (en) 2000-05-03 2007-10-02 R. R. Donnelley & Sons Co. Variable text processing for an electronic press
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6826292B1 (en) * 2000-06-23 2004-11-30 Sarnoff Corporation Method and apparatus for tracking moving objects in a sequence of two-dimensional images using a dynamic layered representation
US7007037B2 (en) * 2000-07-31 2006-02-28 Oracle International Corporation Opaque types
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US7224489B2 (en) * 2001-09-25 2007-05-29 Xerox Corporation Font characteristic driven halftoning
EP1341128A1 (de) * 2002-02-28 2003-09-03 Agfa-Gevaert N.V. Verfahren zur Darstellung mit Strichen
AUPS134202A0 (en) * 2002-03-25 2002-05-09 Canon Kabushiki Kaisha System and method for optimizing halftoning printer performance
US7715031B2 (en) * 2002-06-14 2010-05-11 Kyocera Mita Corporation Method and apparatus for generating an image for output to a raster device
TWI277058B (en) * 2002-08-30 2007-03-21 Seiko Epson Corp Font processing device, terminal, font processing method and font processing program
JP2005244722A (ja) * 2004-02-27 2005-09-08 Canon Inc 記録再生装置
US7782331B2 (en) * 2004-06-24 2010-08-24 Microsoft Corporation Cross-platform runtime code generation for bit block transfer functions
KR100871852B1 (ko) * 2005-12-29 2008-12-03 삼성전자주식회사 고속 인쇄 방법 및 장치
US20070216696A1 (en) * 2006-03-16 2007-09-20 Toshiba (Australia) Pty. Limited System and method for document rendering employing bit-band instructions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679038A (en) * 1983-07-18 1987-07-07 International Business Machines Corporation Band buffer display system
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
US4703515A (en) * 1985-08-26 1987-10-27 Xerox Corporation Image rotation
US4860219A (en) * 1987-02-26 1989-08-22 National Business Systems, Inc. High speed printer
US4942541A (en) * 1988-01-22 1990-07-17 Oms, Inc. Patchification system
JP2677814B2 (ja) * 1988-04-07 1997-11-17 株式会社リコー 記録装置
US4933880A (en) * 1988-06-15 1990-06-12 International Business Machines Corp. Method for dynamically processing non-text components in compound documents
US5125072A (en) * 1989-07-31 1992-06-23 Eastman Kodak Company Efficient data storage system for gray-scale printers
DE69033956D1 (de) * 1989-11-14 2002-05-29 Canon Kk Druckvorrichtung und -verfahren
ATE134272T1 (de) * 1990-08-08 1996-02-15 Peerless Group Verfahren und vorrichtung zur bildwiedergabe

Also Published As

Publication number Publication date
US5502804A (en) 1996-03-26
HK1007014A1 (en) 1999-03-26
EP0470782A3 (en) 1992-10-14
DE69117112D1 (de) 1996-03-28
EP0470782B1 (de) 1996-02-14
JP3252329B2 (ja) 2002-02-04
ATE134272T1 (de) 1996-02-15
JPH06119131A (ja) 1994-04-28
US5748986A (en) 1998-05-05
EP0470782A2 (de) 1992-02-12

Similar Documents

Publication Publication Date Title
DE69117112T2 (de) Verfahren und Vorrichtung zur Bildwiedergabe
DE69323260T2 (de) Aktualisierung der Anzeigeeinrichtung eines entfernten Rechnerarbeitsplatzes
DE69401435T2 (de) Veränderliche Datenfelder in einer Seitenbeschreibungssprache
DE69317698T2 (de) Verfahren zum Übersetzen eines Vielzahl von Drucker-Seiten-beschreibende Sprachen
DE69132300T2 (de) Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
DE69528210T2 (de) Drucker-Steuerungssystem, das Dokumente des Kopierertyps behandelt
DE68907383T2 (de) Verfahren und Anordnung zur Umsetzung von Umrissdaten in Rasterdaten.
DE69321045T2 (de) Verfahren und System für dynamische Drucker "Time out"
DE69430856T2 (de) Steuervorverarbeitungsgerät für drei-dimensionalen graphischen Hoch-Leistungsbeschleuniger
DE69730892T2 (de) Verarbeitung von Rückzugspunkten zur Blatterstellung mit Techniken zur Speicherreduktion
DE69026457T2 (de) Seitendrucker in dem Plottergraphiken in einen Text eingefügt werden
DE68917771T2 (de) Virtueller Anzeigeadapter.
DE69010476T2 (de) Grafikprozessor.
DE19733151B4 (de) Vorrichtung und Verfahren für einen virtuellen Gerätezugriff in einem Computersystem
DE3346816A1 (de) Sichtanzeigeanordnung fuer verschiedenartige zeicheninformationen
DE69026764T2 (de) Verfahren zur Datenübertragung mit hoher Geschwindigkeit
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE4226052A1 (de) Drucksteuerungsverfahren und -geraet, die eine vielzahl von prozessoren verwenden
DE60106301T2 (de) Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE69129339T2 (de) Graphisches ausgangssystem mit begrenzter aktualisierung.
DE69127554T2 (de) Interpretation der bildposition in einem graphischen system.
DE3689277T2 (de) Verfahren und vorrichtung zum adaptieren der auflösung von vorlagen.
DE3885133T2 (de) Anzeigeeinrichtung mit einem Schriftartspeicher für Symbole.
DE69030295T2 (de) Speicherverwaltung für hierarchische graphische Strukturen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition