DE3688546T2 - Digitale bildumdrehung. - Google Patents
Digitale bildumdrehung.Info
- Publication number
- DE3688546T2 DE3688546T2 DE8686306430T DE3688546T DE3688546T2 DE 3688546 T2 DE3688546 T2 DE 3688546T2 DE 8686306430 T DE8686306430 T DE 8686306430T DE 3688546 T DE3688546 T DE 3688546T DE 3688546 T2 DE3688546 T2 DE 3688546T2
- Authority
- DE
- Germany
- Prior art keywords
- image
- data
- buffer
- memory
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 142
- 230000015654 memory Effects 0.000 claims description 115
- 238000000034 method Methods 0.000 claims description 16
- 238000004519 manufacturing process Methods 0.000 claims 1
- 230000003139 buffering effect Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008521 reorganization Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 235000021190 leftovers Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
- Dot-Matrix Printers And Others (AREA)
- Image Processing (AREA)
Description
- Die Erfindung bezieht sich auf das Behandeln und das Drucken von Bildern, welche durch codierte und nichtcodierte digitale Information in Form von Rasterbitlinien dargestellt sind, die in einem gegebenen Abtastformat angeordnet sind, und insbesondere auf die Drehung derartiger Bilder.
- Techniken zur Bildumdrehung sind im Stand der Technik bekannt. So sind beispielsweise in den IBM Technical Disclosure Bulletins Vol. 17, Nr. 10, März 1975 und Vol. 18, Nr. 8, Januar 1976, Schieberegister zur Bildorientierung offenbart. Andere Systems, wie in der US-A-4,000,486, beschreiben eine seitenweise Speicherzugangssteuerung mit einer Vielzahl von Registern, welche mit Reihen auf einer Seite verbunden sind, die gedruckt werden soll. In der US-A-4,271,476 ist ein Verfahren zur Bildumdrehung von einem horizontalen Abtastformat in ein vertikales Abtastformat beschrieben. Das digitale Bild wird in eine Vielzahl von Abschnitten unterteilt, die Abtastrichtung jedes Abschnitts wird in Folge gedreht, und dann werden die gedrehte Abschnitte kombiniert. Hierzu wird auch auf die US-A-3,976,982 und die US-A-4,300,206 verwiesen.
- Ein weiteres Verfahren zur Drehung ist in einem Artikel in IEEE Transactions on Computers, Juli 1972, mit dem Titel "A Fast Computer Method for Matrix Transposing" beschrieben. Der Artikel lehrt insbesondere eine mathematische Theorie zur Drehung von Matrizen. Bei anderen Verfahren, wie beispielsweise in der US-Anmeldung 547,199, eingereicht am 31. Oktober 1983, wird ein Verfahren zur Drehung digitaler Bilder beschrieben, wobei das Bild in horizontale Bereiche von gleicher Größe aufgeteilt wird, was in einem Computerspeicher ausgeführt werden kann. Jeder Bereich wird separat gedreht, und eine Arbeitsdatei wird erzeugt, welche die gedrehte Bereiche in Folge enthält. In einer Reihe von Schritten werden die gedrehten Bereiche fortschreitend in der Größe verdoppelt, bis ein Bereich das gesamte gedrehte Bild enthält.
- Rasterdrucksysteme speichern gewöhnlich Buchstabendarstellungen als eine Matrix aus Bits. Die Matrix oder Bitkarte wird in den Datenstrom gemischt, welcher zu dem Ausgabegerät übertragen wird. Falls der Drucker sowohl im Querformat als auch im Hochformat druckt, dann werden separate Bitkarten für jede Drehung des Bildes oder der Schrift verwendet, wie in der US-A-4,000,486 und der US-A-3,898,627 offenbart ist.
- Anstatt einen Puffer einzusetzen, welcher groß genug ist, um das gesamte Rasterbild zu speichern, dient eine häufig benutzte Puffertechnik in Rasterdrucksystemen zur Erzeugung des Bildzuwachses in kleinen Gruppen von Abtastlinien, Bänder genannt, wie in der US-A-4,203,154 offenbart ist. Die Bänder haben eine festgelegte Länge und Breite, so daß jedes Bilddatenbank an einem festen Platz innerhalb des Bildes auftritt. Eine doppelte Puffereinstellung gestattet es, ein Band zu erzeugen und es in einem kleinen Bandpuffer zu speichern, während das vorausgehende zu dem Drucker übertragen wird.
- Es gibt fünf Hauptkomponenten bei einem System, welche diese Bandpuffereinstellung für das Buchstabendrucken verwendet: der Bandpuffer, ein Bild/Schriftspeicher, welcher abgetastete Bilder und Buchstabenbitkarten für jede Schrift festhält, einen Videoregler, welcher Daten von dem Bild/Schriftspeicher holt und die Bandpuffer mit Videodaten lädt, einen Druckregler, welcher Buchstabenerfordernisse berücksichtigt und Kommandos für den Videoregler erzeugt, und einen Ausgaberegler, welcher Videodaten von den Bandpuffern holt, nachdem sie von dem Videoregler eingegeben wurden, und die Videodaten dem Bildausgabegerät in Abtastlinienform übergibt.
- Noch ein weiteres System zur Drehung ist in der US-A-4,052,699 beschrieben. Bei diesem System werden parallele horizontale Wörter von nicht seriellen Videodaten in einer Reihenfolge in einen Pufferspeicher geladen. Parallele, horizontale Wörter werden von dem Pufferspeicher durch Spalten in eine Übersetzerschieberegisteranordnung entladen, was, falls ein Schiebezyklus beginnt, senkrechte Wörter ergibt, wobei jedes der Wörter aus allen Bits in einer gegebenen Position in jedem der Register besteht.
- Hochformatdrucken wird festgelegt als ein Rasterabtasten einer Seite, wenn die Rasterabtastung mit den Linien der Seite nach unten geht. Z.B. ist eine Schreibmaschine ein Hochformatrasterabtastgerät. Der Vorschub tastet horizontal ab, und der Text wird horizontal gelesen. Andererseits wird beim Querformatdrucken die Seite horizontal abgetastet, aber der Text wird durch Drehen der Seite um 90º gelesen. Zwei zusätzliche Orientierungen werden manchmal auch verwendet:
- Das umgekehrte Hochformat, bei welchem das ursprüngliche Hochformatbild um 180º gedreht wird, und das umgekehrte Querformat, bei welchem das ursprüngliche Querformatbild um 180º gedreht wird.
- Eine Schwierigkeit beim Stand der Technik ist es, eine dieser vier Orientierungen während der Druckzeit zu erzeugen. Mit anderen Worten, wenn das Bild im Stand der Technik im Hochformat gespeichert wird, dann muß das Bild gedreht und wieder gespeichert werden, bevor es im Querformat gedruckt wird. Dies erfordert mehr Raum und mehr Zeit.
- Die Aufgabe der Erfindung wird somit darin gesehen, in einem gegebenen Formatmode zu drucken und zwar ohne die Erfordernis der Wiederorientierung des Bildes im Speicher.
- Zur Lösung dieser Aufgabe wird erfindungsgemäß eine Anordnung zur Herstellung eines Bildes vorgeschlagen, welches in digitaler Form in verschiedenen Orientierungen gespeichert ist, mit einem Speicher zum Speichern eines digitalen Bildes in einem querliegenden Format und Mittel zum Übertragen der Bilddaten aus diesem Speicher zu einem Pufferspeicher und zum Entladen der Daten aus diesem Pufferspeicher, wobei
- die Übertragung der Daten aus diesem Pufferspeicher einen ersten Schritt in dem erforderlichen Orientierungsprozeß bildet und die Entladung der Daten aus diesem Pufferspeicher einen zweiten Schritt bildet, wobei die Mittel zur Übertragung der Daten zu dem Pufferspeicher einen Videoregler enthalten, welcher in einem oder dem anderen von zwei Moden betreibbar ist, um die Bilder in Teilen aus dem Speicher zur Speicherung in den Pufferspeicher in einer Standardkonfiguration oder einer gefalteten Konfiguration zu bewegen, und wobei
- die Mittel zum Entladen der Daten aus dem Pufferspeicher einen Ausgaberegler aufweisen, welcher in einem Operationsmode betreibbar ist, der von einer Gruppe von Datenübertragungsmoden ausgebildet wird, um jedes digitale Bildteil aus dem Pufferspeicher zu einem Rasterausgabeabtastgerät zu bewegen, wobei der Operationsmode des Ausgabereglers in Übereinstimmung mit der gewünschten Bildorientierung gewählt wird, um das Bild entweder in einer Hochformat-, umgekehrten Hochformat-, Querformat- oder umgekehrten Querformatorientierung herzustellen, wobei
- das querliegende Format derart ausgestaltet ist, daß jedes W-Bitspeicherwort ein Bit von jeder der W zueinander naheliegenden Abtastlinien enthält und äquivalente Bits in zueinander naheliegenden Wörter zueinander naheliegenden Pixeln entlang der Abtastlinien entsprechen, wobei
- die Standardkonfiguration eines Puffers eine wortbreite Scheibe des Bildes im querliegenden Format ist und
- die gefaltete Konfiguration eines Puffers derart ausgestaltet ist, daß nahe beieinander naheliegende Bits Pixel auf der gleichen Abtastlinie darstellen mit all den Bits, welche Pixel auf einer Abtastlinie darstellen, die in angrenzenden Wörtern ist.
- Weiterhin wird erfindungsgemäß ein Verfahren zur Herstellung eines Bildes vorgeschlagen, welches in digitaler Form in verschiedenen Orientierungen gespeichert ist, mit den Schritten:
- Übertragung der Bilddaten aus einem Speicher, in welchem die Daten in einem querliegenden Format gespeichert sind, zu einem Pufferspeicher und Entladen der Daten aus diesem Pufferspeicher, wobei die Übertragung der Daten aus diesem Pufferspeicher einen ersten Schritt in dem erforderlichen Orientierungsprozeß bildet und die Entladung der Daten aus dem Pufferspeicher einen zweiten Schritt bildet, wobei
- die Übertragung der Daten zu dem Pufferspeicher die Bewegung des Bildes in Teilen in einem entsprechenden Mode aus dem Speicher zum Speichern in den Pufferspeicher in Standard- oder gefaltetern Konfiguration enthält, und
- das Entladen der Daten aus dem Pufferspeicher die Bewegung jedes digitalen Bildteils aus diesem Pufferspeicher zu einem Rasterausgabeabtastgerät in einem Operationsmode enthält, welcher in Übereinstimmung mit der gewünschten Bildorientierung ausgewählt ist, um das Bild entweder in einer Hochformat-, umgekehrten Hochformat-, Querformat- oder umgekehrten Querformatorientierung herzustellen, wobei
- das querliegende Format derart ausgestaltet ist, daß jedes W-Bitspeicherwort ein Bit von jedem der W-angrenzenden Abtastlinien enthält, und äquivalente Bits in angrenzenden Wörtern angrenzenden Pixeln entlang der Abtastlinien entsprechen, und wobei
- die Standardkonfiguration eines Puffers eine wortweite Scheibe des Bildes im querliegenden Format ist und die gefaltete Konfiguration eines Puffers derart ausgestaltet ist, daß angrenzende Bits Pixel auf der gleichen Abtastlinie darstellten mit all den Bits, welche Pixels auf einer Abtastlinie darstellen, welche in angrenzenden Wörtern ist.
- Die vorliegende Erfindung schafft eine Anordnung, welche in der Lage ist, Bilder während der Realzeiterzeugung der Videodaten zum Drucken zu drehen, ohne zuerst das gedrehte Bild vor dem Drucken zu reorientieren und zu speichern. Durch Vergrößern des wortadressierbaren Bandpuffers können Zeichenbitkarten in einer einzigen Drehung verwendet werden, um eine Bilderzeugung für Hochformat, Querformat, umgekehrtes Hochformat und umgekehrtes Querformat auszuführen. Weitere Ausgestaltungen und Vorteile der vorliegenden Erfindung ergeben sich aus den Ansprüchen und der nachfolgenden Beschreibung.
- Die Erfindung wird nachstehend anhand der Zeichnung näher erläutert, wobei gleiche Bezugsziffern für gleiche Teile verwendet wurden. Die Zeichnung zeigt ein Ausführungsbeispiel der Erfindung. Hierbei stellen dar:
- Fig. 1 die Grundkomponenten einer Bandpufferdruckanordnung;
- Fig. 2 eine abgetastete, bebilderte Bildspeicherung, welche ein querliegendes Format verwendet;
- Fig. 3 ein querliegendes Schriftformat;
- Fig. 4 eine Abtastlinienpufferanordnung, welche entlang der Länge des Speichers läuft;
- Fig. 5 eine Abtastlinienpufferanordnung mit Abtastlinien, welche quer über die Breite des Bandpuffers laufen;
- Fig. 6 ein Schaltkreis zum Kombinieren der Bandpufferanordnungen nach Fig. 4 und 5;
- Fig. 7 eine Anordnung für Mehrfachschriftzeichen und Bilderzeugung;
- Fig. 8 eine Abtastlinienpufferadressenberechnung für die Anordnung nach Fig. 5 und
- Fig. 9 und 10 zusätzliche Schaltkreise, um den Speicher in die Bandpuffer zu schreiben und das Bild während der Videoerzeugung zu drehen.
- Gemäß Fig. 1 wird ein wortadressierbarer Bild/Schriftspeicher 2 im querliegenden (Cross Strike) Speicherformat verwendet, um abgetastete Bilder und Zeichenbitkarten zu speichern. Wortadressierbare Bandpuffer 4a und 4b werden verwendet, um für eine Videopufferung zu sorgen, welche ein Format verwendet, das demjenigen des querliegenden Formats entspricht. Die Bandpuffer 4a und 4b sind ausgedehnt, um die Videodaten in einer gefalteten (Folded) Konfiguration zu halten. Die Videosteuerung 6 ist vergrößert, um Daten von dem Bild/Schriftspeicher 2 zu den Bandpuffern 4a und 4b zu übertragen, welche beide Blockübertragungen und Streuschreiben verwenden, so daß die Videosteuerung 6 in der Lage ist, Videodaten in den Bandpuffern sowohl in der Standard querliegenden Konfiguration als auch in der gefalteten Konfiguration herzustellen. Die Ausgabesteuerung 8 ist vergrößert, um die verbleibende Videodatenreorientierung zu vervollständigen, welche erforderlich ist, um die Drehung auszuführen.
- Eine grundsätzliche Voraussetzung für diese Erfindung ist, daß der Bild/Schriftspeicher wortadressierbar ist. Die aktuelle Wortgröße ist nicht kritisch. Eine Wortgröße von 8 wird für dieses Ausführungsbeispiel angenommen. Ausgehend von dieser Voraussetzung ist ein querliegendes Bildformat in Fig. 2 gezeigt. Bei einem querverlaufenden Bild ist die Bitkartenmatrix in Scheiben organisiert, dessen Breite der Speicherwortbreite entspricht. Für den N · 8-Speicher dieses Ausführungsbeispiels ist die Breite jeder Scheibe 8 Abtastlinien. Die Daten für jede Scheibe sind in Oktetts oder Datenbytes gespeichert. Jedes Oktett enthält ein einziges Bit von acht Abtastlinien mit N-Bytes, welche verwendet werden, um acht Abtastlinien der Länge N zu speichern. Der Speicher ist sequentiell für jedes Oktett zugeteilt, die Oktetts für die erste Scheibe, gefolgt von den Oktets für die zweite Scheibe usw..
- Das Schriftformat wird von diesem Bildformat abgeleitet. In einer querverlaufenden (Cross Strike) Schrift werden individuelle Raster in alphabetischer Ordnung in ein einziges großes Raster, Strike genannt, zusammengefaßt. Die Randschachtel (bounding box) jedes Zeichens, d. h. der weiße Raum um jedes Zeichen, ist explizit in dem Bild/Schriftspeicher gespeichert. Die Grundlinien der Zeichen sind durch Ausrichten der Randschachteln ausgerichtet und der Ursprung jedes Zeichens ist in Übereinstimmung mit dem Breitenvektor des vorhergehenden Zeichens.
- Der Speicher für eine querverlaufende Schrift ist ebenfalls in Oktetts oder Datenbytes organisiert (siehe Fig. 3). Der Speicher ist für jedes Zeichen sequentiell verteilt, und die Zeichen werden sequentiell gespeichert, die Oktetts für die erste Scheibe gefolgt von den Oktetts für die zweite Scheibe usw., gefolgt von den Daten für das nächste Zeichen. Die Schrift enthält auch eine Tabelle, welche durch Zeichencode indiziert ist, die die Startposition jedes Zeichens in dem Strike und seine Breite in Pixeln enthalten.
- Die nächste wichtige Voraussetzung ist, daß die Bandpuffer auch wortadressierbare (N · W)-Speicher mit derselben Wortgröße W wie der Bild/Schriftspeicher sind. Zusätzlich ist die Länge des Speichers N die gleiche wie die Abtastlinienlänge des Ausgabegeräts in Bits. Beim Rest dieser Beschreibung sind die Bandpuffer N · 8-Speicher.
- Abtastlinien von Videodaten können auf zwei Wegen in diesen Speicher eingebracht werden: der Standardkonfiguration und der gefalteten Konfiguration. Das erste Verfahren, die Standardkonfiguration, welche identisch einer Scheibe der Bild/Schriftdaten in dem querverlaufenden Format ist, ist in Fig. 4 dargestellt. Abtastlinien laufen entlang der Länge des Speichers. Folglich enthält jedes Byte des Speichers ein einziges Bit von acht verschiedenen Abtastlinien. Um zu einer einzigen Abtastlinie zur Darstellung an dem Bildausgabeterminal Zugriff zu haben, ist es erforderlich, daß zu allen N-Bytes des Speichers zugegriffen werden kann. Da jedes Byte des Speichers einmal für jedes Bit eine Abtastlinie gelesen wird, muß die Speicherzykluszeit des Bandpuffers achtmal schneller sein als die Videodatenrate des Bildausgabegeräts.
- Um Videodaten von dem Bandpuffer auszugeben, führt der Ausgaberegler folgenden Algorithmus durch:
- FOR i IN (1..8) DO
- FOR j IN (1..n) DO
- Lese Byte an der Stelle j
- Wähle i-tes Bit aus diesem Byte
- ENDLOOP
- ENDLOOP
- Bei dem zweiten Verfahren, der gefalteten Konfiguration, wie in Fig. 5 dargestellt, werden Abtastlinien in den Speicher "gefaltet" und laufen quer über den Bandpuffer. Jedes Byte des Bandpuffers enthält acht Bits einer einzigen Abtastlinie. Um eine einzige Abtastlinie auszugeben, werden N-8-Bytes des Bandpuffers gelesen. In dem N · 8-Speicher enthält das erste N-8-Byte die erste Abtastlinie, das zweite N-8-Byte enthält die zweite Abtastlinie usw.. Um Videodaten in dieser Konfiguration auszugeben, führt der Ausgaberegler den folgenden Algorithmus durch:
- FOR i IN (1..n) DO
- Lese Byte an der Stelle i
- FOR j IN (1..8) DO
- Schiebe Byte, um j-tes Datenbit zu erhalten
- ENDLOOP
- ENDLOOP
- In der Praxis wird nur eine Bandpufferkonfiguration ausgeführt, und Bilder und Schriften müssen in einem Format gespeichert werden, welches mit der Konfiguration zusammenpaßt. Bilder, welche nicht mit diesem Format zusammenpassen, müssen vor dem Drucken reorientiert und gespeichert werden. Bitkarten für Zeichen in jeder Orientierung werden erzeugt, in ein Format konvertiert, das mit dem Bandpuffer kompatibel ist, und in dem Bild/Schriftspeicher gespeichert. Mehrfache Bitkarten werden verwendet, so daß der Videoregler eine Blockbewegung von Bild- oder Schriftdaten aus dem Bild/Schriftspeicher in die Bandpuffer ausführen kann. Bei einer Blockbewegung wird die Adresse von aufeinanderfolgenden, zu übertragende Wörter durch Inkrementieren der Position des Wortes, welches gegenwärtig übertragen wird, erzeugt. Die Ausgabesteuerung führt nur eine der beiden obenbeschriebenen Verfahren durch mit der Wahl entsprechend der Konfiguration der Bandpuffer.
- Bei der vorliegenden Erfindung ist der Videoregler vergrößert worden, um sowohl die Standardkonfiguration und die gefaltete Konfiguration der Bandpuffer durchzuführen und die entsprechende Konfiguration für jede Seite, die gedruckt werden soll, auszuwählen. Zusätzlich ist der Ausgaberegler auch vergrößert, um beide Konfigurationen zu tragen. Die Ausgabereglerlogik zur Unterstützung beider Bandpufferkonfigurationen ist in einem einzigen Schaltkreis enthalten (siehe Fig. 6) mit der Konfiguration für den Bandpufferspeicher als eine für jede Seite ausgewählte Eingabe. Die Videodaten werden von den Bytes extrahiert, welche von dem Bandpuffer 12 mit einem Demultiplexor 14 gelesen werden, welcher die Daten für die Standardkonfiguration zu einem 8:1-Multiplexor 16 überträgt, welcher das entsprechende Datenbit auswählt, und für die gefaltete Konfiguration zu einem Schieberegister 18 überträgt, welches seriell alle acht Datenbits ausgibt.
- Ein separates Schieberegister ist nicht erforderlich. Der Ausgabe-Kontrollalgorithmus kann von der gefalteten Konfiguration, welche früher gezeigt wurde, leicht abgeändert werden, um den 8:1-Multiplexor zu verwenden, um den gleichen Effekt zu erreichen, als wenn das Schieberegister hinzuaddiert wäre:
- FOR i IN (i..n) Do
- Lese Byte an der Position i
- FOR j IN (1..8) Do
- wähle j-tes Bit aus diesem Byte unter Verwendung 8:1-Multiplexor
- ENDLOOP
- ENDLOOP
- Um ein Bild oder eine Schrift, welche ursprünglich in einem Hochformatmode aufgezeichnet wurde, in einem Querformatmode auszudrucken, ist eine Drehung erforderlich, welche eine wesentliche Reorganisation der Bilddaten beinhaltet. Bei der hier vorliegenden Erfindung wird ein Teil dieser Reorganisation durch den Videoregler ausgeführt, da er Videodaten in die Bandpuffer 4a und 4b gibt. Der Rest wird durch den Ausgaberegler 8 ausgeführt, da er Daten von dem Bandpuffer zu dem Bildausgabeterminal ausgibt. Von dem Videoregler werden Blockübertragungen verwendet, um Bild oder Schriftdaten in die Bandpuffer zu übertragen. Diese Erfindung vergrößert den Videoregler wie folgt. Bild- oder Schriftdaten werden aus dem Bild/Schriftspeicher 12 gelesen, wobei Blocklesen verwendet wird. Jedoch aufgrund der Datenreorientierung, welche erforderlich ist, um die spezifische Druckorientierung zu unterstützen, wird entweder "Streu"schreiben oder Blockschreiben verwendet, wenn die Daten in die Bandpuffer 4a und 4b übertragen werden. Beim Streuschreiben ist die Adresse der laufenden Wörter, welche übertragen werden, eine Funktion, welche von der laufenden Bild/Schriftspeicherposition, der Konfiguration der Bandpuffer und der Größe des Bildes oder der Zeichenbitkarte, welche übertragen wird, abhängt.
- Wenn Blockübertragungen in den Bandpuffer verwendet werden, dann werden als Ergebnis die Videodaten in der Standardkonfiguration gespeichert. Wenn Streuschreiben verwendet wird, dann werden die Daten, welche von dem Bild/Schriftspeicher 2 stammen, in die gefaltete Konfiguration reorientiert. Der Rest der Reorganisation, welcher für die Drehung erforderlich ist, wird ausgeführt, indem der gefaltete Ausgabe-Algorithmus in dem Ausgaberegler 8 verwendet wird.
- Die genaue Durchführung des Videoregler-Algorithmus für diese Übertragungen ist nachstehend mit den folgenden vereinfachenden Einschränkungen angegeben. Die Schriften werden auf den Größenbereich von 8-12 Punkten eingeschränkt. Alle Schriften in diesem Bereich sind zugeordnete Bitkarten mit der gleichen Höhe. Bei einer angenommenen Auflösung von 300 spi werden Zeichen in sechs Oktettscheiben eingeteilt. Dies ermöglicht es, den Zähler, welche bei der Durchführung verwendet werden, einen festgelegten Bereich zu haben (die Höhe kann als Parameter in dem Schriftindex gespeichert werden, wodurch diese Einschränkung eliminiert wird).
- Mehrere Ausführungen sind möglich. Die Ausführung kann verdrahtet sein, wobei Schaltlogik oder programmierte Logik in Firmware für ein Gerät durchgeführt werden kann, wie beispielsweise der INTEL 8089-Prozessor oder der AMD 29116-programmierbare Regler. In Fig. 7 ist der Einsatz der folgenden Erfindung an einem Drucker dargestellt.
- Der Videoregler 20 enthält die folgenden Register, auf welche auch durch den Druckregler 22 zugegriffen werden kann (ein short-edge-feed-Drucker wird angenommen):
- numBytes: ein Zähler, welcher die Nummer der Datenübertragungen kontrolliert
- mode: ein Zwei-Bitregister, welches Hochformat, Querformat, umgekehrtes Hochformat- oder umgekehrtes Breitformatmode anzeigt
- x-Position: horizontale Zeichenposition in Bits
- y-Position: vertikale Zeichenposition in Abtastlinien
- Breite: Zeichenbreite in Pixels
- start-addr: Startposition im Bild/Schriftspeicher für laufende Übertragung
- data-reg: temporäres Datenregister
- locn-reg: temporäres Adressenregister
- shiftCnt: Verschiebung für Datenpositionierung im Bandpuffer
- MSB: obere 8 Bits von verschobenen Daten
- LSB: untere 8 Bits von verschobenen Daten
- Zusätzlich wird für jeden der Bild/Schriftspeicher 23 und der Bandpufferspeicher 24 und 26 angenommen, daß sie ein einziges Speicheradressenregister und ein einziges Speicherdatenregister haben.
- BildschriftspeicherAddr: Bild/Schriftspeicheradressenregister
- BildschriftspeicherData: Bild/Schriftspeicherdatenregister
- BandpufferspeicherAddr: Bandpufferspeicheradressenregister
- BandpufferspeicherData: Bandpufferspeicherdatenregister
- Der Druckregler setzt das Moderegister 28, um dem Hochformat-, Querformat-, umgekehrten Hochformat- oder umgekehrten Querformatmode zu spezifizieren. Für den Hochformatmode wird die Standardkonfiguration verwendet, und jedes Zeichen wird durch den Videoregler 20 von dem Bild/Schriftspeicher 23 zu dem Bandpuffer mit Blockübertragungen übertragen. Der Druckregler 22 hält Statusinformationen hinsichtlich der Zahl der Scheiben, welche für jedes Zeichen übertragen worden sind, aufrecht. Der Druckregler extrahiert die Startadressen und die Breite von dem Schriftindex. Für die erste Zeichenscheibe werden diese Werte direkt in die start-addr und Breitenregister gespeichert. Für die nachfolgenden Scheiben wird der in dem start-addr-Register gespeicherte Wert von der Startadresse, der Breite und der Nummer der Scheiben, welche bereits übertragen sind, berechnet.
- Die x- und y-Position des Zeichens bildet sich direkt in Positionen in dem Bandpuffer ab. Die y-Position eines Zeichens bestimmt welches Bilddatenband, in welchem es zuerst erscheinen wird, und seine Abtastlinienposition innerhalb des Bandes (die y-Position modulus die Bandpufferbreite von 8-Abtastlinien). Die x-Position ist das Startbyte innerhalb des Bandpuffers für die Blockübertragung. Der Druckregler hält auch Informationen für den Teil des Zeichens aufrecht, falls es welche gibt, welches die Bandgrenze als eine Folge der Schiebeoperation überquert.
- Der Videoregler führt dann die Übertragung mittels Durchführung des folgenden Algorithmus für jedes abgetastete Bild oder Zeichenscheibe aus:
- locn-reg startaddr
- /*postion von ersten Bild/Schriftdaten zu übertragen*/
- FOR i IN (1..numBytes) DO
- /*numBytes ist entweder die Bild- oder Zeichenbreite*/
- SchriftspeicherAddrReg locn-reg
- data-reg SchriftspeicherDatareg
- BandpufferspeicherAddrReg x-Position
- shiftCnt y-Position MOD 8
- data-reg data-reg RECHTSVERSCHIEBUNG shiftCnt
- BandpufferspeicherDataReg data-reg ODER BandpufferspeicherDataReg
- locn-reg locn-reg + 1
- x-Position x-Position + 1
- ENDLOOP
- Für den Querformatsmode unter Verwendung der gefalteten Konfiguration ist die Berechnung der Bandpufferadressen weitaus komplexer. Auch ist die Aufrechterhaltung der Information hinsichtlich der Anzahl der Bytes, welche während einer Videoreglerübertragung bewegt werden, viel komplizierter. Für den Hochformatmode entspricht die Breite jeder querverlaufenden Scheibe der Anzahl der Bits innerhalb einer Abtastlinie in dem Bild oder dem Zeichen. Bei dem Breitformatmode jedoch ist das Bild oder das Zeichen zu drehen, so daß die Abtastlänge die Zahl der Abtastlinie wird. In gleicher Weise wird die Nummer der ursprünglichen Abtastlinie die Nummer der Bits innerhalb einer Abtastlinie.
- Naheliegende Bytes im Bild/Schriftspeicher werden auf verschiedenen Abtastlinien erscheinen, wenn sie gedruckt sind. Ein Streuschreiben wird verwendet, um die Bytes sequentiell von dem Bild/Schriftspeicher auszulesen und sie zu separaten Abtastlinien in dem Bandpuffer auszustreuen. Der Videoregler verwendet die Abtastlinienlänge und Nummer der Abtastlinie, um die Speicheradressen in dem Bandpuffer zu berechnen. Die x-Position eines Zeichens ist seine Position innerhalb einer Abtastlinie. Die y-Position ist die Abtastlinie, in welcher es zuerst erscheint. In der gefalteten Konfiguration ist die erste Abtastlinie in die ersten N/8-Bytes des Bandpuffers gepackt usw.. Die Adresse eines Bytes in dem Bandpuffer setzt sich aus zwei Komponenten, wie in Fig. 8 gezeigt, zusammen. Die Abtastlinie innerhalb des Puffers bestimmt einen Basiswert, und die x-Position bestimmt eine Verschiebung bezüglich dieser Basis. Eines Zeichens x-Position wählt auch eine Bit-Position innerhalb der Position innerhalb des Bytes aus.
- Die Drucksteuerung hält Information hinsichtlich des Teils von jedem Zeichen, welches in ein Band übertragen wird, aufrecht. Diese Information wird verwendet, um neue Parameter für die Datenübertragung in die nachfolgenden Bänder zu berechnen.
- Die Videoreglerdurchführung ist wie folgt:
- Blocklesen vom Bild/Schriftspeicher und Streuschreiben in Bandpuffer: LedeDate von jeder Scheibe für alle Abtastlinien
- FÜR j = 1 bis numBytes DO
- /*numBytes spezifiziert die Nummer der Scheiben*/
- save start-locn
- FÜR i = (y-Position MOD 8) bis 8 DO
- /* extrahiere ein Byte pro Abtastlinie*/
- BildschriftspeicherAddr start-locn
- DataReg Bildschriftspeicherdaten
- shiftCnt x-Position MOD 8
- (MSB,LSB) DataReg RECHTSVERSCHIEBUNG shiftCnt
- BandpufferspeicherAddrReg ((i-1) * (n/8)) + (x-Position/8)
- /* Basiswert ist Abtastlinie # * n/8 */
- /* Verschiebung ist x-Position/8 */
- /* Bedürfnis, ganzzeilige Division zu verwenden */
- BandpufferspeicherDataReg MSB OR
- Bandpufferspeicherdaten
- BandpufferAddrReg BandpufferAddrReg + 1
- BandpufferspeicherDataReg - LSB OR
- Bandpufferspeicherdaten
- /* gehe zu nächstem Oktett im Bild/Schriftspeicher */
- start-locn start-locn + 1
- ENDLOOP
- start-locn save + Breite
- ENDLOOP
- Eine durchschnittliche Erhöhung in der Komplexität des Ausgabeschaltkreises hat es einer einzigen Schrift ermöglicht, sowohl in dem Querformat- als auch in dem Hochformatmode zum Drucken verwendet zu werden. Tabelle 1 faßt zusammen, wie der Schaltkreis programmiert ist, um Drucken in Hochformat, Querformat, umgekehrtem Hochformat und umgekehrter Querformatorientierung auszuführen. Fig. 9 und Fig. 10 zeigen, wie der Schaltkreis verwendet wird, um das notwendige Speicherschreiben in die Bandpuffer auszuführen und das Bild während der Videoerzeugung für den Hochformat- und Querformatmode zu drehen. Das Drucken in umgekehrtem Hochformat und umkehrtem Querformat wird in gleicher Weise ausgeführt. Die erforderlichen Operationen werden auf den Daten ausgeführt, welche auf und von dem Bandpuffer gelesen werden. Deshalb sind ein separates Vordrehungsbild und Schriftbildkarte nicht erforderlich.
- Das aktuelle Aufzeichnen von Abtastlinien durch den Videoregler für Bilder oder Schriften, welche in dem querverlaufenden Format gespeichert sind, hängt von der Orientierung des Druckers und der Orientierung der zu druckenden Seite ab. In der Beschreibung wird ein short-edge feed-Drucker angenommen, bei welchem die Standardkonfiguration dem Hochformatmode entspricht. Es sei darauf hingewiesen, daß diese Erfindung auch hinsichtlich eines long-edge-Druckers möglich ist. Für den short-edge-Fall wird die y-Koordinate als die vertikale Koordinate definiert und nimmt nach unten hin zu. Für den short-edge feed-Drucker spezifiziert die y-Koordinate eine Abtastlinienummer. Die x-Koordinate nimmt von links nach rechts zu und definiert eine Bit-Position innerhalb einer Abtastlinie.
- Wie in Fig. 9 für Hochformatdrucken dargestellt, ist die Standardkonfiguration ausgewählt: Die Abtastrichtung ist horizontal, und die Quer-Abtastrichtung ist vertikal. Deshalb enthält jedes Oktett ein einziges Bit von acht Abtastlinien. Blockbewegung wird verwendet, um eine ganze Oktettscheibe von dem Bild/Schriftspeicher in den Bandpuffer zu übertragen. Der Videoregler gibt eine Startadresse für die Übertragung in den Bild/Schriftspeicher, die Nummer der Bytes, die zu übertragen sind und die Startadresse, um die Daten in den Bandpuffer zu speichern. Da jedes aufeinanderfolgende Byte der Schrift von dem Bild/Schriftspeicher extrahiert wird, wird es in aufeinanderfolgender Position in dem Bandpuffer gespeichert. Um eine Textlinie auszudrucken, werden Blockbewegungen für jede Scheibe jedes Zeichens wiederholt.
- Angenommen, M Bänder sind erforderlich, um die ganze Seite auszudrucken, dann wird das Drucken eines Hochformatbildes durchgeführt durch Spezifizieren des Videoreglers, die Blockübertragungen zu verwenden, und des Ausgabereglers, den Standard-Ausgabealgorithmus zu verwenden. Die folgenden Schritte führen das Drucken aus:
- Schritt 1 Erzeugen von Videoreglerkommandos für die Seite durch den Druckregler.
- Schritt 2 Druckregler lädt die erste Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher zurück und speichert sie als Band # 1 in einem Bandpuffer unter Verwendung von Blockübertragungen.
- Schritt 3 Unter Verwendung einer doppelten Pufferung lädt der Druckregler die zweite Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 2 in den alternierenden Bandpuffer unter Verwendung von Blockübertragungen, während der Ausgaberegler Band # 1 zu dem Bildausgabeterminal unter Verwendung des Standard-Ausgabealgorithmus ausgibt.
- Schritt 4 Unter Verwendung einer doppelten Pufferung lädt der Druckregler die dritte Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher zurück und speichert sie als Band # 3 in dem alternierenden Bandpuffer unter Benutzung von Blockübertragung, während der Ausgaberegler das Band # 2 zu dem Bildausgabeterminal unter Verwendung des Standard-Ausgabealgorithmus ausgibt.
- Schritt M + 1 Unter Verwendung der doppelten Pufferung lädt der Druckregler die letzte Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # M in dem alternierenden Bandpuffer unter Benutzung von Blockübertragung, während der Ausgaberegler das Band # M - 1 zu dem Bildausgabeterminal unter Verwendung des Standardausgabealgorithmus ausgibt.
- Schritt M + 2 Der Ausgaberegler gibt das Band # M zu dem Bildausgabeterminal unter Verwendung des Standard-Ausgabealgorithmus aus.
- Das Drucken eines umgekehrten Hochformatmodes erfordert eine 180º-Drehung eines Hochformatbildes. Um diese Drehung auszuführen, wird der gedrehte Standard-Ausgabealgorithmus definiert, welcher die Ordnung umkehrt, in welcher die Bits von jedem Byte ausgewählt werden und ebenso die Ordnung, in welcher Adressen zum Lesen der Datenbytes von dem Bandpuffer erzeugt werden. Die Wirkung dieses Algorithmus ist es, die Daten innerhalb des Bandpuffers um 180º zu drehen. Dieser Ausgaberegler wird die Daten an der 8. Bitstelle innerhalb des Bandpuffers als die erste Abtastlinie dem Bildausgabeterminal anbieten und benutzt das Byte an der Position N in dem Bandpuffer um das erste Bit von jeder Abtastlinie dem Bildausgabeterminal anzubieten, das Bit an der Position N - 1 in dem Bandpuffer um das zweite Bite in jeder Abtastlinie anzubieten, usw.. Um die 180º-Drehung der ganzen Seite durchzuführen, wird das Bild von dem Speicher in umgekehrter Ordnung extrahiert, d. h., die letzte Scheibe wird als das erste Band ausgegeben usw..
- FOR i IN (8..1) DO
- FOR j IN (n..1) DO
- Lese Byte an Position j
- Wähle i-tes Bit von diesem Byte
- ENDLOOP
- ENDLOOP
- Zusätzlich muß der Videoregler die Scheiben der Bilder in umgekehrter Ordnung behandeln:
- Schritt 1 Erzeugung von Videoreglerkommandos für die Seite durch den Druckregler
- Schritt 2 Druckregler lädt die letzten Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 1 in einem Bandpuffer unter Benutzung von Blockübertragungen.
- Schritt 3 Unter Verwendung von doppelter Pufferung lädt der Druckregler die nächste zu der letzten Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 2 in dem alternierenden Bandpuffer unter Verwendung von Blockübertragungen, während der Ausgaberegler das Band # 1 zu dem Bildausgabeterminal unter Verwendung des umgekehrten Standard-Ausgabealgorithmus ausgibt.
- Schritt 4 Unter Verwendung der doppelten Pufferung lädt der Druckregler die Scheibe M-2 der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 3 in dem alternierenden Bandpuffer unter Verwendung von Blockübertragung, während der Ausgaberegler das Band # 2 zu dem Bildausgabeterminal unter Verwendung des umgekehrten Standard-Ausgabealgorithmus ausgibt.
- Schritt M + 1 Unter Verwendung der doppelten Pufferung lädt der Druckregler die erste Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als band # M in dem alternierenden Bandpuffer unter Verwendung von Blockübertragungen, während der Ausgaberegler das Band # M-1 zu dem Bildausgabeterminal unter Verwendung des umgekehrten Standard-Ausgabealgorithmus ausgibt.
- Schritt M + 2 Der Ausgaberegler gibt das Band # M zu dem Bildausgabeterminal unter Verwendung des Standard-Ausgabealgorithmus aus.
- Wie in Fig. 10 dargestellt, wird das Querformat-Modedrucken unter Verwendung der gefalteten Konfiguration für die Bandpuffer und den gefalteten Ausgabealgorithmus für den Videoregler durchgeführt. Im Speicher ist die Abtastrichtung für das querverlaufende Format horizontal. Diese Erfindung konvertiert diese Orientierung in Realzeit, so daß die Abtastrichtung für das Eingabebild oder die Zeichenbitkarte vertikal wird und die Quer-Abtastrichtung horizontal wird, wenn die Videodaten dem Bildausgabeterminal angeboten werden. Deshalb wird jedes ursprüngliche Oktett, welches ein einziges Bit von acht Abtastlinien enthält, in acht Bits einer einzigen Abtastlinie konvertiert, wie es dem Bildausgabeterminal dargeboten wird. Der Videoregler gibt eine Startadresse zu dem Bild/Schriftspeicher, die Nummer der Bytes, welche zu übertragen sind, und Parameter zur Berechnung der Startadresse in dem Bandpuffer. Die Bitkartendaten können unter Verwendung eines Sammellesens aus dem Bild/Schriftspeicher oder einem Streuschreiben in den Bandpuffer übertragen werden. Für ein Sammellesen überträgt der Videoregler eine Abtastlinie aus dem Bild/Schriftspeicher unter Verwendung der Startadresse für das erste Byte der Abtastlinie. Dann wird die Breite zu dieser Startadresse addiert, um das zweite Byte in der Abtastlinie zu lesen. Diese Addition wird für jedes Byte in der Abtastlinie wiederholt. Alternativ führt der Videoregler eine Streuschreibung durch. Aufeinanderfolgende Bytes werden aus dem Bild/Schriftspeicher übertragen, aber die Speicherposition in dem Bandpuffer wird bestimmt durch wiederholtes Addieren von n/8 zu der Startbandpufferposition (n/8 ist die Nummer der Bytes, welche die Daten von der gleichen Bitposition in zueinander naheliegenden Abtastlinien trennt).
- Um das Drucken einer Seite auszuführen, wird der Videoregler auf Streu/Sammelmode gesetzt und der Ausgaberegler wird programmiert, um den gefalteten Ausgabealgorithmus zu verwenden. Die Druckschritte werden nun:
- Schritt 1 Erzeugen eines Videoreglerkommandos für die Seite durch den Druckregler.
- Schritt 2 Druckregler lädt die letzten Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 1 in einem Bandpuffer unter Verwendung von Streuschreiben.
- Schritt 3 Unter Verwendung von doppelter Pufferung lädt der Druckregler die nächste zu der letzten Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 2 in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # 1 zu dem Bildausgabeterminal unter Verwendung des gefalteten Ausgabealgorithmus ausgibt.
- Schritt 4 Unter Verwendung von doppelter Pufferung lädt der Druckregler die Scheibe M-2 der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 3 in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # 2 zu dem Bildausgabeterminal unter Verwendung des gefalteten Ausgabealgorithmus ausgibt.
- Schritt M + 1 Unter Verwendung von doppelter Pufferung lädt der Druckregler die ersten Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # M in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # M-1 an das Bildausgabeterminal unter Verwendung des gefalteten Ausgabealgorithmus ausgibt.
- Schritt M - 2 Der Ausgaberegler gibt das Band # M zu dem Bildausgabeterminal unter Verwendung des gefalteten Ausgabealgorithmus aus.
- Zur Durchführung des umgekehrten Querformatdruckens können die gleichen Änderungen, welche früher bei dem Standard-Ausgabealgorithmus angewendet wurden, um den umgekehrten Standardalgorithmus zu erzeugen, angewendet werden, um den umgekehrten Ausgabealgorithmus für das Querformatdrucken zu erhalten.
- Das umgekehrte Querformatdrucken wird nun mittels der folgenden Schritte durchgeführt:
- Schritt 1 Erzeugung eines Videoreglerkommandos für die Seite durch den Druckregler.
- Schritt 2 Der Druckregler lädt die erste Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 1 in einem Bandpuffer unter Verwendung von Streuschreiben.
- Schritt 3 Unter Verwendung von doppelter Pufferung lädt der Druckregler die zweite Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 2 in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # 1 zu dem Bildausgabeterminal unter Verwendung des umgekehrten gefalteten Ausgabealgorithmus ausgibt.
- Schritt 4 Unter Verwendung von doppelter Pufferung lädt der Druckregler die dritte Scheibe der Bild- oder Schriftdaten aus dem Bild/Schriftspeicher und speichert sie als Band # 3 in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # 2 zu dem Bildausgabeterminal unter Verwendung des umgekehrten gefalteten Ausgabealgorithmus ausgibt.
- Schritt M + 1 Unter Verwendung von doppelter Pufferung lädt der Druckregler die ersten Bild- oder Ausgabedaten aus dem Bild/Schriftspeicher und speichert sie als Band # M in dem alternierenden Bandpuffer unter Verwendung von Streuschreiben, während der Ausgaberegler das Band # M-1 zu dem Bildausgabeterminal unter Verwendung des umgekehrten gefalteten Ausgabealgorithmus ausgibt.
- Schritt M + 2 Der Ausgaberegler gibt das Band # M zu dem Bildausgabeterminal unter Verwendung des umgekehrten gefalteten Ausgabealgorithmus aus.
- Zusammenfassend kann festgestellt werden, daß die Erfindung die Bandpufferdrucktechnologie erweitert, indem sie die Wiederbildung des Bandpufferspeichers und die Auswahl des Videoreglers und der Ausgaberegleralgorithmen als eine Funktion der gewünschten Seitendrehung ermöglicht. Wie in Tabelle 1 gezeigt, ergibt dies die Fähigkeit, im Hochformat, Querformat, umgekehrtem Hochformat und umgekehrtem Querformat zu drucken, wobei eine einzige Bitkartenschrift verwendet wird. Zusätzlich wird bei diesen Druckmoden eine Realzeitdrehung der Bilder ermöglicht ohne die Notwendigkeit, die Bilder vor dem Drucken zu reorientieren und zu speichern.
- Ein häufig verwendetes doppelseitiges Druckformat ist Kopf-zu-Fuß-Drucken, bei welchem der Hochformatmode für die Vorderseite von jedem Blatt und der umgekehrte Hochformatmode für die Rückseite von jedem Blatt verwendet wird. Diese Erfindung unterstützt diese Art des Druckens mit einer einzigen Schrifts in direkter Weise.
- Die obenerwähnten Techniken können erweitert werden, um automatisch Fettschrift und Kursivschrift zu erzeugen. Bitkarten für Fettschrift können aus den Bitkarten für einen regulären Wert (regular weight) hergestellt werden und zwar durch Übertragen der Zeichenkontur und Addieren eines einzigen Bits entlang dieser, um das Zeichen zu verdicken. Dann werden die zu des Zeichens Höhe addierten Bits entfernt, was eine Bitkarte für eine Fettschriftversion des Zeichens mit der gleichen Höhe ergibt. Für ein Zeichen, welches im querliegenden Format gespeichert ist, wird eine Annäherung an die Fettschriftbitkarte mittels OR'ing jedes Oktetts mit seinen Nachbarn zur Rechten und zur Linken hergestellt. Diese Operation kann einmal ausgeführt werden, um eine neue Bitkarte für die Fettschrift herzustellen oder sie kann während der Übertragung der Schriftdaten in die Bandpuffer ausgeführt werden. Zusätzliche Register können in dem Videoregler in Reihe verwendet werden, um diese Berechnung auszuführen:
- Bandpufferdateni Schriftspeicherdateni-1 OR Schriftspeicherdateni OR
- Schriftspeicherdateni+1
- Da jedoch die vollständige Ausgabe eines Zeichens als mehrfache Übertragung mittels des Videoreglers stattfindet, wie können die Stücke des Zeichens von separaten Übertragungen aneinandergeheftet werden? Da sie bereits übertragen worden sind, ist es möglich, die Daten schon in dem Bandpuffer für Schriftspeicherdateni-1, zu verwenden, anstatt den Druckreg- 1er auf Kontrollinformationen für diese Zusammenheftoperation zu halten. Das bedeutet, die OR-ing-Operation wird direkt durch "Zittern" der x-Position ausgeführt. Anstelle die Positionen i-1, i und i + 1 zu verwenden, ist der "Zitterwert" einfach um 1 erhöht und verwendet die Positionen i, i + 1 und i + 2. Dies löst die Zusammenheftprobleme und beseitigt Überreste, da die Daten, die in die Berechnung einbezogen sind, bereits in dem Bandpuffer sind. Dies funktioniert, da die Begrenzungsschachtel (bounding box) des Zeichens in dem Schriftspeicher gespeichert ist.
- Dieselbe Näherung ist für Kursivschrift durchführbar. Kursivschriftbitkarten können von einer regulären Wertbitkarte erzeugt werden, indem die Oktetts von der Schrift entfernt werden und sie nach links oder rechts bewegt werden, davon abhängig, ob das entsprechende Oktett Teil der oberen oder unteren Hälfte des Zeichens ist. Die gleiche Schrägstellungsoperation kann ausgeführt werden, indem der x-Positionswert jeder Scheibe des Zeichens modifiziert wird. Deshalb werden die Adressen, welche zum Schreiben der Schriftdaten in dem Bandpuffer verwendet werden, zittern, um diese Schrägstelloperation während des Druckens auszuführen. Tabelle 1 Endgültige Drehung/Orientierung VS. Bandpufferkonfiguration mit Regleralgorithmen Eingabe abgetastetes Bild & Schriftformat Ausgabe Bildorientierung am Bildausgabeterminal Bandpufferkonfiguration Videoregleralgorithmus zum Speichern im Bandpuffer Ausgaberegleralgorithmus Querverlaufendes Hochhformat Standard Blockübertragung Querformat Gefaltet Streuschreiben Umgekehrtes Hochformat Umgekehrter Standard Umgekehrtes Querformat Umgekehrt gefaltet
Claims (2)
1. Eine Anordnung zur Herstellung eines Bildes, welches in
digitaler Form in verschiedenen Orientierungen
gespeichert ist, mit einem Speicher (2) zum Speichern eines
digitalen Bildes in einem querliegenden Format und
Mittel zum Übertragen der Bilddaten aus diesem Speicher zu
einem Pufferspeicher (4A, 4B) und zum Entladen der Daten
aus diesem Pufferspeicher, wobei
die Übertragung der Daten aus diesem Pufferspeicher
einen ersten Schritt in dem erforderlichen
Orientierungsprozeß bildet und die Entladung der Daten aus
diesem Pufferspeicher einen zweiten Schritt bildet, wobei
die Mittel zur Übertragung der Daten zu dem
Pufferspeicher einen Videoregler (6) enthalten, welcher in einem
oder dem anderen von zwei Moden betreibbar ist, um die
Bilder in Teilen aus dem Speicher zur Speicherung in den
Pufferspeicher (4A, 4B) in einer Standardkonfiguration
oder einer gefalteten Konfiguration zu bewegen, und
wobei
die Mittel zum Entladen der Daten aus dem Pufferspeicher
(4A, 4B) einen Ausgaberegler (8) aufweisen, welcher in
einem Operationsmode betreibbar ist, der von einer
Gruppe von Datenübertragungsmoden ausgebildet wird, um jedes
digitale Bildteil aus dem Pufferspeicher zu einem
Rasterausgabeabtastgerät zu bewegen, wobei der
Operationsmode des Ausgabereglers in Übereinstimmung mit der
gewünschten Bildorientierung gewählt wird, um das Bild
entweder in einer Hochformat-, umgekehrten Hochformat-,
Querformat- oder umgekehrten Querformatorientierung
herzustellen,
wobei
das querliegende Format derart ausgestaltet ist, daß
jedes W-Bitspeicherwort ein Bit von jeder der W zueinander
naheliegenden Abtastlinien enthält und äquivalente Bits
in zueinander naheliegenden Wörter zueinander
naheliegenden Pixeln entlang der Abtastlinien entsprechen,
wobei
die Standardkonfiguration eines Puffers eine wortbreite
Scheibe des Bildes im querliegenden Format ist und
die gefaltete Konfiguration eines Puffers derart
ausgestaltet ist, daß nahe beieinander naheliegende Bits Pixel
auf der gleichen Abtastlinie darstellen mit all den
Bits, welche Pixel auf einer Abtastlinie darstellen, die
in angrenzenden Wörtern ist.
2. Verfahren zur Herstellung eines Bildes, welches in
digitaler Form in verschiedenen Orientierungen gespeichert
ist, mit den Schritten:
Übertragung der Bilddaten aus einem Speicher (2), in
welchem die Daten in einem querliegenden Format
gespeichert sind, zu einem Pufferspeicher (4A, 4B) und
Entladen der Daten aus diesem Pufferspeicher, wobei die
Übertragung der Daten aus diesem Pufferspeicher einen ersten
Schritt in dem erforderlichen Orientierungsprozeß bildet
und die Entladung der Daten aus dem Pufferspeicher einen
zweiten Schritt bildet, wobei
die Übertragung der Daten zu dem Pufferspeicher die
Bewegung des Bildes in Teilen in einem entsprechenden Mode
aus dem Speicher zum Speichern in den Pufferspeicher (4A,
4B) in Standard- oder gefaltetern Konfiguration enthält,
und
das Entladen der Daten aus dem Pufferspeicher (4A, 4B)
die Bewegung jedes digitalen Bildteils aus diesem
Pufferspeicher zu einem Rasterausgabeabtastgerät in einem
Operationsmode enthält, welcher in Übereinstimmung mit
der gewünschten Bildorientierung ausgewählt ist, um das
Bild entweder in einer Hochformat-, umgekehrten
Hochformat-, Querformat- oder umgekehrten
Querformatorientierung herzustellen, wobei
das querliegende Format derart ausgestaltet ist, daß
jedes W-Bitspeicherwort ein Bit von jedem der
W-angrenzenden Abtastlinien enthält, und äquivalente
Bits in angrenzenden Wörtern angrenzenden Pixeln entlang
der Abtastlinien entsprechen, und wobei
die Standardkonfiguration eines Puffers eine wortweite
Scheibe des Bildes im querliegenden Format ist und die
gefaltete Konfiguration eines Puffers derart
ausgestaltet ist, daß angrenzende Bits Pixel auf der gleichen
Abtastlinie darstellten mit all den Bits, welche Pixels
auf einer Abtastlinie darstellen, welche in angrenzenden
Wörtern ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/769,525 US4703515A (en) | 1985-08-26 | 1985-08-26 | Image rotation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3688546D1 DE3688546D1 (de) | 1993-07-15 |
DE3688546T2 true DE3688546T2 (de) | 1993-09-23 |
Family
ID=25085714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8686306430T Expired - Fee Related DE3688546T2 (de) | 1985-08-26 | 1986-08-20 | Digitale bildumdrehung. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4703515A (de) |
EP (1) | EP0216501B1 (de) |
JP (1) | JPS6250968A (de) |
DE (1) | DE3688546T2 (de) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0597556B1 (de) * | 1985-12-13 | 2001-10-17 | Canon Kabushiki Kaisha | Bildverarbeitungsgerät |
JPS62135257U (de) * | 1986-02-19 | 1987-08-26 | ||
US4806920A (en) * | 1986-03-28 | 1989-02-21 | Nec Corporation | Device for producing an output image while giving an original image a rotation of 90, 180, or 270 |
JPH0827604B2 (ja) * | 1986-06-18 | 1996-03-21 | 株式会社日立製作所 | 画像表示システム |
US5189404A (en) * | 1986-06-18 | 1993-02-23 | Hitachi, Ltd. | Display apparatus with rotatable display screen |
JPS6329791A (ja) * | 1986-07-23 | 1988-02-08 | ミノルタ株式会社 | 文字画像発生装置のフオント変換方式 |
JPH0751367B2 (ja) * | 1986-08-29 | 1995-06-05 | エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド | ドツト・マトリクス・プリンタ |
US4929085A (en) * | 1986-09-30 | 1990-05-29 | Kabushiki Kaisha Toshiba | Image data rotation processing method and apparatus therefor |
JPH074952B2 (ja) * | 1987-01-12 | 1995-01-25 | キヤノン株式会社 | プリンタ制御装置 |
US5063526A (en) * | 1987-06-03 | 1991-11-05 | Advanced Micro Devices, Inc. | Bit map rotation processor |
JPS63306054A (ja) * | 1987-06-08 | 1988-12-14 | Sharp Corp | 印字方式 |
US5081700A (en) * | 1989-02-15 | 1992-01-14 | Unisys Corporation | Apparatus for high speed image rotation |
US5012434A (en) * | 1989-02-21 | 1991-04-30 | Siemens Aktiengesellschaft | Apparatus and method for selective rotation of data printed by a matrix printer |
US4995089A (en) * | 1990-01-08 | 1991-02-19 | Eastman Kodak Company | Method and apparatus for providing font rotation |
EP0470782B1 (de) * | 1990-08-08 | 1996-02-14 | The Peerless Group | Verfahren und Vorrichtung zur Bildwiedergabe |
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 |
US5239388A (en) * | 1990-12-14 | 1993-08-24 | Fuji Xerox Co., Ltd. | Image processing system |
US5204916A (en) * | 1991-08-06 | 1993-04-20 | Eastman Kodak Company | Tile-oriented technique for collectively performing image rotation, scaling and digital halftone screening |
US5177617A (en) * | 1991-10-18 | 1993-01-05 | Xerox Corporation | Book edge copier inversion sorting |
US5365601A (en) * | 1991-12-23 | 1994-11-15 | Xerox Corporation | N-bit wide parallel rotation algorithm |
US5463720A (en) * | 1992-09-28 | 1995-10-31 | Granger; Edward M. | Blue noise based technique for use in a halftone tile oriented screener for masking screener induced image artifacts |
JP2951572B2 (ja) * | 1994-09-12 | 1999-09-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 画像データ変換方法及びシステム |
US5670982A (en) * | 1995-02-08 | 1997-09-23 | International Business Machines Corporation | System for fast 90-degree rotation of bi-level images |
JPH10501901A (ja) * | 1995-04-07 | 1998-02-17 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 画像の回転のための方法および装置 |
US5920688A (en) * | 1995-11-13 | 1999-07-06 | International Business Machines Corporation | Method and operating system for manipulating the orientation of an output image of a data processing system |
JP3563891B2 (ja) * | 1996-10-24 | 2004-09-08 | キヤノン株式会社 | 文字生成方法及び装置 |
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 |
US5986672A (en) * | 1997-10-14 | 1999-11-16 | Minnesota, Mining And Manufacturing 3M Center | Method and system for forming a rotated image on an imaging element using limited system resources |
US6208429B1 (en) * | 1998-05-29 | 2001-03-27 | Flashpoint Technology, Inc. | Method and system for band printing of rotated digital image data |
US6208767B1 (en) * | 1998-09-01 | 2001-03-27 | Xerox Corporation | Hardware rotation of images with line sorting in L*A*B* color space |
WO2000030036A1 (en) * | 1998-11-13 | 2000-05-25 | Microsoft Corporation | Rotating image data |
US6310986B2 (en) | 1998-12-03 | 2001-10-30 | Oak Technology, Inc. | Image rotation assist circuitry and method |
US6400851B1 (en) | 1999-01-28 | 2002-06-04 | Microsoft Corporation | Rotating image data |
US6760035B2 (en) * | 2001-11-19 | 2004-07-06 | Nvidia Corporation | Back-end image transformation |
JP4695815B2 (ja) * | 2002-02-22 | 2011-06-08 | キヤノン株式会社 | 描画処理装置および描画処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
JP4136701B2 (ja) * | 2002-03-12 | 2008-08-20 | 株式会社リコー | 画像形成装置、画像処理プログラム |
US7715031B2 (en) * | 2002-06-14 | 2010-05-11 | Kyocera Mita Corporation | Method and apparatus for generating an image for output to a raster device |
US7127080B2 (en) * | 2002-09-30 | 2006-10-24 | Ncr Corporation | Method of processing image data to reorient an image represented by the image data in an image-based item processing system and an apparatus therefor |
KR100722628B1 (ko) * | 2004-11-16 | 2007-05-28 | 삼성전기주식회사 | 데이터 트랜스포즈 장치 및 방법 |
JP2007293606A (ja) * | 2006-04-25 | 2007-11-08 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
JP5079341B2 (ja) * | 2006-06-01 | 2012-11-21 | 株式会社リコー | 印刷データ処理装置 |
CN103416002B (zh) | 2011-03-10 | 2015-04-01 | 维德约股份有限公司 | 视频位流中的渲染定向信息 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2447464C3 (de) * | 1973-10-23 | 1978-06-01 | International Business Machines Corp., Armonk, N.Y. (V.St.A.) | Zeichengenerator-Steuerschaltung für einen optischen Drucker |
US3898627A (en) * | 1974-03-22 | 1975-08-05 | Ibm | Optical printer having serializing buffer for use with variable length binary words |
US3976982A (en) * | 1975-05-12 | 1976-08-24 | International Business Machines Corporation | Apparatus for image manipulation |
US4052699A (en) * | 1976-06-30 | 1977-10-04 | International Business Machines Corporation | High speed real time image transformation |
US4300206A (en) * | 1977-06-30 | 1981-11-10 | International Business Machines Corporation | Flexible text and image generator for a raster printer |
GB1547119A (en) * | 1977-12-09 | 1979-06-06 | Ibm | Image rotation apparatus |
US4203154A (en) * | 1978-04-24 | 1980-05-13 | Xerox Corporation | Electronic image processing system |
US4271476A (en) * | 1979-07-17 | 1981-06-02 | International Business Machines Corporation | Method and apparatus for rotating the scan format of digital images |
JPS58159184A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | 画像回転装置 |
JPS59204360A (ja) * | 1983-05-04 | 1984-11-19 | Fuji Xerox Co Ltd | 画像デ−タの縦横変換装置 |
JPS6073671A (ja) * | 1983-09-30 | 1985-04-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | パタ−ン処理装置 |
US4545069A (en) * | 1983-10-31 | 1985-10-01 | Xerox Corporation | Rotation of digital images |
JPS61240282A (ja) * | 1985-04-12 | 1986-10-25 | 富士通株式会社 | イメ−ジデ−タ変換装置 |
-
1985
- 1985-08-26 US US06/769,525 patent/US4703515A/en not_active Expired - Lifetime
-
1986
- 1986-08-19 JP JP61193878A patent/JPS6250968A/ja active Pending
- 1986-08-20 EP EP86306430A patent/EP0216501B1/de not_active Expired - Lifetime
- 1986-08-20 DE DE8686306430T patent/DE3688546T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US4703515A (en) | 1987-10-27 |
EP0216501B1 (de) | 1993-06-09 |
EP0216501A2 (de) | 1987-04-01 |
DE3688546D1 (de) | 1993-07-15 |
JPS6250968A (ja) | 1987-03-05 |
EP0216501A3 (en) | 1988-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3688546T2 (de) | Digitale bildumdrehung. | |
DE3788257T2 (de) | Bilddrehungsverfahren. | |
DE3686307T2 (de) | Verfahren zur rotierung eines binaeren bildes. | |
DE69103408T2 (de) | Technik zur durchführung einer digitalen bildskalierung durch logisches zusammensetzen oder vervielfältigen von pixeln in blöcken von unterschiedlichen gruppengrössen. | |
DE3650764T2 (de) | Bildverarbeitungsgerät | |
DE3485765T2 (de) | Anzeigesystem fuer zusammengesetzte bilder. | |
DE3750211T2 (de) | Bildanzeigeverarbeitungseinheit für ein graphisches Endgerät. | |
DE2701891C2 (de) | ||
DE3851484T2 (de) | Datenverringerung für die Bildanzeige von Ganzseiten-Graphiken. | |
DE69221414T2 (de) | Intelligenter Schriftartdarstellungskoprozessor | |
DE68915006T2 (de) | System zum Generieren von Musterdaten. | |
DE3687668T2 (de) | Verfahren und einrichtung zur verbesserung der bildqualitaet in einem nach dem rasterverfahren arbeitenden anzeigegeraet. | |
DE69131370T2 (de) | Pipelinestrukturen für vollfarbfähigen Rechnergraphik | |
DE69721184T2 (de) | Hardware zum rotieren eines bildes | |
DE3419063C2 (de) | ||
DE68923227T2 (de) | Vektor-zu-Raster-Umwandlungsverfahren. | |
DE68907383T2 (de) | Verfahren und Anordnung zur Umsetzung von Umrissdaten in Rasterdaten. | |
DE69718566T2 (de) | Verfahren zum Komprimieren von Zwei-Pegeldaten | |
DE3518416A1 (de) | Speicher- und prozessorsystem mit schnellem zugriff zur rasteranzeige | |
DE3787073T2 (de) | Mehrrichtungs-Abtast- und -Druckfähigkeit. | |
DE2525155A1 (de) | Verfahren und anordnung zur rasterpunktdarstellung von codierter - liniensegmente darstellende - information in computergesteuerten datensichtgeraeten, insbesondere in kathodenstrahlbildschirmstationen | |
DE3689277T2 (de) | Verfahren und vorrichtung zum adaptieren der auflösung von vorlagen. | |
DE69633716T2 (de) | Hochgeschwindigkeitssystem zur Skalierung von Bildern | |
DE3889557T2 (de) | Vektorgenerator für Raster-Bildschirmanzeige. | |
DE3716752C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |