-
Die
Erfindung betrifft ein Verfahren zum Erzeugen eines digitalen Bildes,
mit Umwandlung einer Folge von Zeichenbefehlen in komprimierte Bilddaten,
wobei jeder Zeichenbefehl die Zuweisung von Pixelwerten zu Pixeln
steuert, die in Übereinstimmung mit
dem Zeichenbefehl in einem Bild aus in Zeilen und Spalten angeordneten
Pixeln positioniert werden, wobei die komprimierten Bilddaten eine
Folge von Lauflängen
und entsprechenden Pixelwerten enthalten und eine Lauflänge eine
Anzahl aufeinanderfolgender Pixel mit untereinander identischen
Pixelwerten repräsentiert.
-
Die
Erfindung bezieht sich auch auf eine Vorrichtung zum Erzeugen eines
digitalen Bildes, mit einer Eingabeeinrichtung zum Empfang von Zeichensignalen
einschließlich
Befehlen zur Erzeugung von, in Übereinstimmung
damit, Pixelwertsignalen von Pixeln eines Bildes aus Pixeln, die
in Spalten und Zeilen angeordnet sind, einer Zeichensignal-Ausführungseinrichtung
zum Zuweisen von Pixelwerten zu Pixeln, die in dem Bild aus Pixeln
positioniert sind, in Übereinstimmung
mit den Zeichensignalen, einer Lauflängen-Erzeugungseinrichtung
zum Erzeugen von Lauflängensignalen,
wobei ein Lauflängensignal eine
Anzahl von aufeinanderfolgenden Pixeln mit untereinander identischen
Pixelwertsignalen repräsentiert,
und einer Speichereinrichtung zum Speichern der Lauflängensignale
und entsprechender Pixelwertsignale, die von der Lauflängen-Erzeugungseinrichtung
erzeugt worden sind.
-
Schließlich bezieht
sich die Erfindung auf ein Bildwiedergabesystem, das die oben genannte
Vorrichtung einschließt.
-
Ein
solches Verfahren und eine solche Vorrichtung sind aus der europäischen Patentanmeldung
EP 0 597 571 A2 bekannt.
Dort wird beschrieben, auf welche Weise Bildinformation, die aus
symbolischen Zeichenbefehlen wie z.B. ASCII-Codes für Schriftzeichen
oder Vektorbefehlen zum Zeichnen einer Linie besteht, verarbeitet
wird, damit sie von einem Drucker wiedergegeben wird.
-
Solche
Zeicheninformation kann z.B. von einem Textprozessor oder einem
graphischen Ediersystem stammen. Das davon gelieferte Bildformat mit
sym bolischen Zeichenbefehlen ist zumeist in Übereinstimmung mit einer standardisierten
Seitenbeschreibungssprache definiert wie z.B. PostScript (Adobe).
Ein Raster-orientierter Drucker erwartet jedoch Bildinformation
in einem gerasterten Format, etwa als Bitmap. Das Bild ist dabei
in Spalten und Zeilen aus Pixeln angeordnet, wobei Druckinformation
für jedes
Pixel gegeben ist. Diese Druckinformation kann aus einem Bit bestehen,
das, abhängig
von seinem Wert, eine maximale oder minimale optische Dichte eines
Pixels angibt.
-
Solche
Bildinformation kann dazu verwendet werden, einen Drucker direkt
anzusteuern. Die Druckinformation kann auch aus mehreren Bits bestehen,
die den Grauwert eines Pixels angeben. Zum Beispiel 8 Bit zum Definieren
von 256 Grauwerten. Im Fall von Farbinformation, die in den drei
Grundfarben Rot, Grün
und Blau ausgedrückt
ist, kann die Druckinformation aus 3 × 8 = 24 Bit bestehen. Eine
Bitmap mit Grauwertinformation für
jedes Pixel wird auch als eine Grauton-Bitmap beschrieben. Obgleich
ein Drucker damit nicht direkt angesteuert werden kann, besteht
der Vorteil einer Grauton-Bitmap darin, daß ein Drucker einen eigenen,
auf die Maschine abgestimmten Halbtonalgorithmus zum Umwandeln der mehrwertigen
Grauwertinformation in zweiwertige oder binäre Information verwenden kann.
-
Die üblichen
Verfahren und Vorrichtungen zum Umwandeln einer Seitenbeschreibungssprache in
eine Bitmap verwenden einen Speicher zum Speichern der von den einzelnen
Zeichenbefehlen erzeugten Pixelinformation. Eine solche Umwandlung, auch
als Rasterung bezeichnet, wird in einer speziellen Vorrichtung ausgeführt, etwa
einem Raster-Bildprozessor.
-
Ein
Zeichenbefehl, z.B. ein Befehl zum Zeichnen eines bestimmten Schriftzeichens
in einer bestimmten Position, wird dabei einem Zeichengenerator
zugeführt.
Dieser Zeichengenerator erzeugt folglich Pixelwerte (bestehend aus
einem oder mehreren Bits) für
die betreffenden Pixel, und diese Werte werden dann in einem sogenannten
Bitmap-Speicher abgelegt. Dies wird für alle Zeichenbefehle wiederholt,
bis die vollständige
Bitmap definiert ist. Es ist dabei wichtig zu erkennen, daß die Erzeugung
von Pixelwerten ein nicht-serieller Prozeß ist. Ein Zeichenbefehl kann
z.B. nachträglich
Pixelwerte von vorherigen Zeichenbefehlen ersetzen. Mit anderen
Worten, alle Pixel einer Bitmap haben ihren endgültigen Wert erst dann, wenn
der letzte Zeichenbefehl verarbeitet worden ist.
-
Ein
Raster-Bildprozessor muß deshalb
im Prinzip in der Lage sein, eine vollständige Bitmap zu speichern.
-
Die
heutigen Drucker oder digitalen Kopiersysteme haben eine Wiedergabeauflösung von
400 DPI (dots per inch; Punkte pro Zoll) was bei 24 Bit für jedes
Pixel zu einem Speicherplatzbedarf von annähernd 48 MB für ein Bild
der Größe A4 führt.
-
48
MB Speicherplatz führen
zu einer beträchtlichen
Zunahme der Kosten für
einen Raster-Bildprozessor. Wenn die in einem Speicher abgelegte
Bitmap anschließend
an einen Drucker oder ein digitales Kopiergerät übermittelt wird, so gelten
entsprechende Anforderungen auch für die Einrichtungen zur Übertragung
der Pixelwerte. Wenn diese Übertragung
mit einem standardmäßigen Datenaustauschprotokoll
wie z.B. einer SCSI Verbindung (Small Computer System Interface)
erfolgt, so erfordert die Übertragung
die nötige
Zeit. Für
eine schnelle Übertragung
ist eine spezielle, teurere Verbindung erforderlich.
-
Das
oben erwähnte
Patent beschreibt, wie die erforderliche Menge an Speicherplatz
auf ein Minimum reduziert werden kann. Die Zeichenbefehle werden
danach zu einer Folge von einfacheren Zeichenbefehlen reduziert,
die vorzugsweise nur auf Pixel innerhalb eines bestimmten Bandes
des Bildes wirken. Aufgrund dessen kann Information bandweise an
einen angeschlossenen Drucker übermittelt werden.
-
Gemäß dem oben
genannten Patent wird die Bild-Rasterinformation gemäß einem
bekannten Kompressionsalgorithmus wie z.B. Lauflängenkompression, LZW Kompression
oder JPEG Kompression, weiter komprimiert. Die endgültige Bitmap
oder ein Teil derselben wird in ein komprimiertes Format umgewandelt.
Bei Lauflängenkompression
führt dies
zu einer Folge von Lauflängen,
die in einer bestimmten Reihenfolge gelesen werden müssen. Diese
Folge von Lauflängen
definiert Pixelwerte von aufeinanderfolgenden Pixeln, die nach aufeinanderfolgenden
Pixelpositionen angeordnet sind. Zum Beispiel Pixel, die in einer
horizontalen Bildzeile von links nach rechts und weiter für jede Bildzeile
von oben nach unten angeordnet sind.
-
Insbesondere
wird nach dem oben genannten Patent ein Kompressionsalgorithmus
gewählt, der
für den
Informationsgehalt des Bildes optimal ist.
-
Trotz
der Aufteilung der Bitmap in Bänder, die
getrennt zu füllen
sind, und trotz der Kompression der Bitmap-Daten wird immer noch
eine beträchtliche Menge
an Speicherplatz benötigt.
Damit die Kompression beginnen kann, sollte zumindest ein Teil der Bitmap
bekannt sein.
-
Natürlich ist
es im Prinzip möglich,
mit einem Speicher auszukommen, der eine Größe von, z.B. einer Bildzeile
hat. Alle Zeichenbefehle sollten dann jedoch für jede Bildzeile wieder und
wieder verarbeitet werden. Es ist klar, daß dies zu einer beträchtlichen Verarbeitungszeit
beim Aufbau der vollständigen Bitmap
führt.
Des weiteren erfordert die Kompression zusätzliche Verarbeitungszeit und
verzögert
dadurch die Verarbeitung eines empfangenen Bildes noch mehr. Mit
einer erwarteten Zunahme der Auflösung eines Bildreproduktionssystems
wird die durch die Kompression verursachte Verzögerung weiter zunehmen.
-
Das
Verfahren gemäß der Erfindung
hat die Aufgabe, die genannten Nachteile zu überwinden und ist zu diesem
Zweck gekennzeichnet durch die Erzeugung von Lauflängen von
Pixelwerten bei der Ausführung
jedes einzelnen Zeichenbefehls und, bei Ausführung eines nachfolgenden Zeichenbefehls, der
Pixelwerte für
Pixel in Positionen erzeugt, die von in einem vorherigen Zeichenbefehl
erzeugten Pixeln belegt sind, das Kombinieren der in den vorherigen und
nachfolgenden Zeichenbefehlen erzeugten Lauflängen, ohne die betreffenden
Lauflängen
zunächst in
einzelne Pixel zu entfalten.
-
Die
Vorrichtung gemäß der Erfindung
ist dadurch gekennzeichnet, daß die
Einrichtung zur Ausführung
der Zeichenbefehle in die Einrichtung zur Erzeugung der Lauflängen integriert
ist, um Lauflängensignale
bei der Ausführung
jedes einzelnen Zeichenbefehls zu erzeugen, und daß die integrierte Einrichtung
zur Ausführung
der Zeichensignale und zur Erzeugung der Lauflängen bei der Ausführung eines
nachfolgenden Zeichenbefehls, der Pixelwerte für Pixel in Positionen erzeugt,
die von in einem vorherigen Zeichenbefehl erzeugten Pixeln belegt
sind, die in den vorherigen und nachfolgenden Zeichenbefehlen erzeugten
Lauflängensignale
kombiniert, ohne die jeweiligen Lauflängensignale zunächst in
einzelne Pixel zu entfalten.
-
Statt
die Pixelwerte zunächst
als Bitmap in einem Speicher zu speichern und dann, nachdem alle
Zeichenbefehle verarbeitet worden sind, diese Pixelwerte zu komprimieren,
werden die Pixelwerte nun sofort nach jedem Zeichenbefehl in einem
komprimierten Lauflängenformat
geschrieben.
-
In
einer ersten Ausführungsform
des Verfahrens gemäß der Erfindung
umfaßt
der Schritt der Kombination der Lauflängen die Bestimmung von Einfügepositionen
für Lauflängen, die
durch den nachfolgenden Zeichenbefehl erzeugt werden, in die Folge
von Lauflängen,
die von den vorherigen Lauflängenbefehlen
erzeugt wurden, auf der Grundlage von Pixelpositionen der erzeugten
Lauflängen,
das Einfügen
dieser von dem nachfolgenden Zeichenbefehl erzeugten Lauflängen an
den Einfügepositionen in
die Folge von Lauflängen,
die von den vorherigen Zeichenbefehlen erzeugt wurden, gemäß einer
Einfügevorschrift,
nach der Lauflängen
der Folge, die Positionen mit den einzufügenden Lauflängen gemeinsam
haben, in Abhängigkeit
von den einzufügenden
Lauflängen
und Pixelwerten modifiziert werden.
-
Pixel
sind normalerweise in einer ersten Anordnung, wie sie durch die
aufeinanderfolgenden Pixelpositionen bestimmt ist, in Bildzeilen
angeordnet, jedoch sind in einer weiteren Ausführungsform der vorliegenden
Erfindung die Lauflängen,
wie sie von den Zeichenbefehlen erzeugt werden, in einer zweiten
anordnung angeordnet, die von der ersten Anordnung verschieden ist.
Zum Beispiel wird ein Zeichen nicht eine vollständige horizontale Zeile von
aufeinanderfolgenden Pixeln definieren, sondern nur eine Anzahl
lokaler Pixel, die über
eine Anzahl von Bildzeilen verteilt sind. Die Reihenfolge beim Lesen
aufeinanderfolgender Pixel einer vollständigen Bildzeile ist von der
Reihenfolge verschieden, in der die Pixel von einem Schriftzeichen-Zeichenbefehl
erzeugt werden.
-
Eine
Lauflänge
wird deshalb in eine Folge von Lauflängen eingefügt, die bereits erzeugt wurden und
in einer ersten Anordnung entsprechend aufeinanderfolgenden Pixelpositionen
angeordnet sind, wodurch die Lauflängen in der Folge erforderlichenfalls
geändert
werden.
-
Durch
direktes Einpassen einer einzufügenden
Lauflänge
in die Folge der Lauflängen
erübrigt sich
eine Zwischenspeicherung von Pixelwerten. Die Wahl der Lauflängenkompression
beruht auf der Erkenntnis, daß die
von einem Zeichenbefehl erzeugten Pixelwerte zumeist mit einer Anzahl
von aufeinanderfolgenden Pixeln in einer Bildzeile korrespondieren.
Zum Beispiel wird ein Schriftzeichen mehrere aufeinanderfolgende
Pixel aus einer Bildzeile überdecken.
-
Indem
die erzeugten identischen Pixelwerte von einer Anzahl von aufeinanderfolgenden
Pixeln direkt in Lauflängen
gemäß einer
bekannten Lauflängen-Kompressionsmethode
ausgedrückt
werden und diese Lauflängen
in die bereits erzeugte Folge von Lauflängen eingepaßt werden,
wird der Bedarf an Speicherplatz auf ein Minimum begrenzt und Verarbeitungszeit
gespart.
-
Eine
weitere Ausführungsform
des Verfahrens ist dadurch gekennzeichnet, daß die Vorschrift zum Einfügen folgendes
umfaßt:
das
Entfernen von Lauflängen
aus der Folge, die von der in Bezug auf die Pixelposition einzufügenden Lauflänge vollständig überdeckt
werden,
das Kürzen
von Lauflängen
aus der Folge, die mit der in Bezug auf die Pixelposition einzufügenden Lauflänge teilweise überlappen
und auf einer Länge,
die gleich dem überlappten
Teil ist, davon verschiedene Pixelwerte ha-ben,
das Verlängern der einzufügenden Lauflänge im Fall von
Lauflängen
aus der Folge, die mit der in Bezug auf die Pixelposition einzufügenden Lauflänge teilweise überlappen
und auf seiner Länge,
die gleich dem nicht überlappenden
Teil ist, einen damit identischen Pixelwert haben, gefolgt von der
Entfernung dieser Lauflänge
aus der Folge,
das Einfügen
der einzufügenden
Lauflänge
in die Folge der Lauflängen.
-
Im
Fall einer Überlappung
der neu einzufügenden
Lauflänge
mit zuvor erzeugten Lauflängen wird
nachgesehen, ob ein oder mehrere bestehende Lauflängen gekürzt, entfernt
oder mit der neu einzufügenden
Lauflänge
kombiniert werden müssen.
-
Eine
vorteilhafte Ausführungsform
des Verfahrens ist dadurch gekennzeichnet, daß das Bild in Unterbereiche
von Pixeln aufgeteilt wird, die Folge von Lauflängen und Pixelwerten in Unterfolgen
aufgeteilt wird, wobei jede Unterfolge einem Unterbereich des Bildes
entspricht, und
des weiteren die Lauflängen und Pixelwerte in die Unterfolgen
eingesetzt werden, die den Unterbereichen dieser Lauflängen entsprechen.
-
Das
Einfügen
einer neuen Lauflänge
in die Unterfolge ist leichter und schneller, weil die Anzahl von
Lauflängen
in einer Unterfolge begrenzt ist. Insbesondere wenn die Adressierung
einer Unterfolge ebenfalls schnell ist. Wie z.B. im Fall einer Unterfolge,
die einer Bildzeile oder einem Teil einer Bildzeile entspricht.
Zwar ist ein gewisser zusätzlicher
Verwaltungsaufwand erforderlich, um festzulegen, in welcher Unterfolge
eine neue Lauflänge
hinzugefügt werden
muß. Da
jedoch die Lauflängen,
die aus einem Zeichenbefehl stammen, in der Praxis in demselben
Unterbereich auftreten, wird ein Gewinn an Verarbeitungszeit erreicht.
-
In
einer Ausführungsform
des Verfahrens, gekennzeichnet durch Speichern der Unterfolgen in einem
adressierbaren Speicher, Zuweisen eines Informationswortes zu jedem
Unterbereich, Hinzufügen
von Adresseninformation zu dem Informationswort betreffend die Adresse
der entsprechenden Unterfolge im Speicher, wird eine flexible Adressierung einer
Unterfolge von Lauflängen
erreicht. Die Speicherung in einem anderen Speicherbereich kann
einfach realisiert werden, indem die Adresseninformation in dem
Informationswort angepaßt
wird.
-
Damit
wird ein effizientes Speichermanagement erreicht, indem im ersten
Zuge eine minimale Menge an Speicherplatz in dem adressierbaren
Speicher für
jede Unterfolge verfügbar
gemacht wird, weiterhin entschieden wird, ob genügend Speicherplatz für jede Lauflänge und
die Pixelwerte verfügbar
ist, die für
die entsprechende Unterfolge einzufügen sind,
der für die Unterfolge
verfügbare
Speicherplatz vergrößert wird,
wenn dies nicht der Fall ist, und die Adresseninformation in dem
entsprechenden Informationswort angepaßt wird.
-
Wenn
ein Unterbereich nur aus einer Farbe besteht, wie z.B. im Fall eines
weißen
Hintergrunds, braucht ein mit einer Lauflänge korrespondierender Pixelwert
nicht aus 24 Bit sondern nur aus einem Bit für den Pixelwert zu bestehen.
Man erhält
dann ein weiteres vorteilhaftes Verfahren, bei dem Typeninformation
zu dem Informationswort hinzugefügt
wird, um den Informationstyp anzugeben, der durch die betreffende
Unterfolge repräsentiert
wird. Die Typeninformation kann dazu benutzt werden, das Vorhandensein
von nur einer Farbe anzugeben.
-
Ein
schnelles Verfahren zum Suchen der Einfügeposition einer Lauflänge ist
dadurch gekennzeichnet, daß eine
Unterfolge so in zwei Teile aufgeteilt wird, daß der im Speicher verfügbare Platz
für eine
Unterfolge zwischen den Plätzen
liegt, die von den beiden Teilen eingenommen werden, und daß die Lauflänge und
der Pixelwert, die zuletzt eingefügt wurden, den an den verfügbaren Platz
angrenzenden Platz einnehmen, daß man beim Suchen nach einer Lauflänge in der
Unterfolge die Lauflängen
von diesem verfügbaren
Platz aus durchgeht und die Lauflängen verschiebt, bis die eingefügte Lauflänge an den
verfügbaren
Platz angrenzt. Da eine einzufügende
Lauflänge
häufig
an eine vorher eingefügte
Lauflänge
angrenzt, ist es vorteilhaft, den verfügbaren Platz an die zuletzt
eingefügte
Lauflänge
angrenzen zu lassen. Das Entfernen von Lauflängen, um Platz für eine neue
Lauflänge
zu schaffen, kann so vermieden werden.
-
EP-A-0
575 134 beschreibt die Erzeugung von digitalen Bildern auf der Grundlage
von Zeichenbefehlen in einem Seitenbeschreibungssprachen-Format
(PDL). Ein PDL Interpreter erzeugt Beschreibungsbefehle für Rahmen,
die graphische Objekte definieren, und Layoutinformation für ein Dokument,
die beschreibt, wie diese Rahmen auf ein Raster einer Bitmap anzuwenden
sind. Graphische Objekte können
Lauflängen
umfassen, doch wird nicht beschrieben, wie überlappende Objekte zu einem einzigen
digitalen Bild kombiniert werden.
-
Das
Verfahren und die Vorrichtung gemäß der Erfindung werden anhand
der nachstehenden Zeichnungen beschrieben, in denen zeigen:
-
1 eine
schematische Darstellung einer Aufteilung eines Bildes in Streifen
mit entsprechenden Informationswörtern;
-
2 ein
Beispiel einer Unterfolge von Lauflängen, die zu einem Streifen
gehören;
-
3 die
Beziehung zwischen einer Folge von Informationswörtern und der entsprechenden Unterfolge
von Lauflängen,
die in Streifenpuffern gespeichert sind,
-
4 ein
Flußdiagramm
des Verfahrens gemäß der Erfindung
zum Einfügen
einer neuen Lauflänge
in einen oder mehrere Streifenpuffer, wobei
-
5–9 das
Einfügen
einer kurzen Lauflänge
illustrieren, die in einen Streifenpuffer paßt, und
-
10–12 das
Einfügen
einer langen Lauflänge
illustrieren, die sich über
mehrere Streifenpuffer erstreckt;
wobei 6 das Verfahren
illustriert, mit dem entschieden wird, ob eine kurze Lauflänge entweder
nur links oder nur rechts oder sowohl rechts als auch links von
dem verfügbaren
Speicherplatz in einem Streifenpuffer liegt;
-
7 das
Verfahren zum Einfügen
einer kurzen Lauflänge
illustriert, wenn sie sich sowohl über das linke als auch über das
rechte Ende des verfügbaren
Speicherplatzes in einem Streifenpuffer erstreckt;
-
8 das
Verfahren zum Einfügen
einer kurzen Lauflänge
illustriert, wenn sie sich nur über
das rechte Ende des verfügbaren
Speicherplatzes in einem Streifenpuffer erstreckt;
-
9 das
Verfahren zum Einfügen
einer kurzen Lauflänge
illustriert, wenn sie sich nur über
das linke Ende des verfügbaren
Speicherplatzes in einem Streifenpuffer erstreckt, und
-
10 das
Verfahren zum Einfügen
des linken Endes einer langen Lauflänge in einen Streifenpuffer
illustriert, der teilweise aufzufüllen ist;
-
11 das
Verfahren zum Einfügen
des rechten Endes einer langen Lauflänge in einen Streifenpuffer
illustriert, der teilweise aufzufüllen ist;
-
12 das
Verfahren zum Einfügen
einer langen Lauflänge
in Streifenpuffer illustriert, die vollständig aufzufüllen sind;
-
13 schematisch
eine Vorrichtung zur Ausführung
des Verfahrens gemäß der Erfindung
illustriert; und
-
14 ein
Drucksystem mit einer Vorrichtung nach 13 illustriert.
-
In
einer Ausführungsform
des Verfahrens gemäß der Erfindung
wird das Bild, das in Spalten und Zeilen von Pixeln angeordnet ist,
in Unterbereiche aufgeteilt, die im folgenden als Streifen bezeichnet werden.
Das Einfügen
von Lauflängen
kann streifenweise erfolgen. Dies hat den Vorteil, daß pro Streifen eine
begrenzte Anzahl von Lauflängen
durchsucht und ggf. bewegt werden muß.
-
In 1 ist
schematisch gezeigt, auf welche Weise ein Bild 1001 in
Streifen 1002 mit je 256 Pixeln 1003 aufgeteilt
wird. Jede waagerechte Bildzeile 1004 wird weiter in 20
Streifen 1002 aufgeteilt. Je Streifen 1002 wird
ein Informationswort 1005 definiert, das die Speicheradressen
für den
Speicherplatz enthält,
der dem Streifen zugewiesen ist. Der einem Streifen zugewiesene
Speicherplatz wird im folgenden als Streifenpuffer bezeichnet. Die
Größe eines
Streifenpuffers kann einfach angepaßt werden, indem diese Speicheradressen
modifiziert werden.
-
Eine
Folge von 32 Bit in einem Adressenzeigerteil 1006 ist für die Startadresse
eines Streifenpuffers reserviert. Dieser Adressenzeigerteil wird
nachstehend als ZEIGER bezeichnet. Eine zweite Folge 1007 von
32 Bit ist für
zusätzliche
Information reserviert, die sich auf den Streifenpuffer bezieht.
Davon geben Bits 0 und 1 (TYPE) an, ob ein Streifenpuffer nur einen
Pixelwert repräsentiert
(MONO-COLOUR) oder mehrere Pixelwerte (FULL-COLOUR). Im Fall von
MONO-COLOUR wird der Pixelwert nicht im Streifenpuffer selbst gespeichert,
sondern in den höchstrangigen
24 Bit (9-31) (COLOUR) des Informatonswortes. In diesem Fall wird
kein Streifenpuffer zum Speichern der Länge benötigt, da die Lauflänge für diesen
Pixelwert nach Definition gleich der maximalen Größe eines
Streifens ist (256 Pixel). Nur in diesem Fall sind die nachstehend
beschriebenen Felder nicht anwendbar.
-
Im
Fall von FULL-COLUR sind die Bits 2-31 anders definiert. Die Bits
2-4 (BLEN) geben dann die Größe des Streifenpuffers
an. Standardgrößen sind Wörter mit
4, 8, 16, 32, 128 oder 256 Bit. Diese Größen sind als 0 bis einschließlich 6
codiert.
-
Die
gespeicherten Lauflängen
liegen so in dem Streifenpuffer, daß die zuletzt eingefügte Lauflänge an den
noch freien Speicherplatz angegrenzt. Dieser freie Speicherplatz
wird als Lücke
bezeichnet und trennt die Lauflängen,
die in einem linken und einem rechten Teil gespeichert sind. Dies
hat den Vorteil, daß das
Einfügen
einer neuen Lauflänge
in den meisten Fällen
schneller erfolgen kann. Eine neue Lauflänge wird häufig an eine zuvor eingefügte Lauflänge angrenzen.
Die zusätzliche
Zeit, die zum Bewegen der Lauflängen
im Speicher notwendig ist, wenn einmal eine Lauflänge nicht
angrenzend an die Lücke
eingefügt
werden kann, wiegt nicht den Zeitvorteil auf, den man im Fall von
direkten Einfügungen in
die Lücke
gewinnt. Die Bits 5-13 (RLEN) repräsentieren die Anzahl von Lauflängen (0-255)
rechts von der Lücke,
und die Bits 14-22 (LLEN) repräsentieren die
Anzahl von Lauflängen
links von der Lücke.
Die Pixelposition (GAP) wird durch die Bits 23-31 repräsentiert
(Pixel 0 bis einschließlich
255). Dies ist somit die Pixelkoordinate des Streifens am Ende der
Lauflänge
links von der Lücke
(und vom Anfang der Lauflänge
rechts von der Lücke).
-
2 zeigt
ein Beispiel eines Streifenpuffers. Eine Lauflänge (LEN1, LEN2, ...) wird
mit 8 Bit codiert (mit möglichen
Längen
von 1 bis einschließlich
256), und der entsprechende Pixelwert mit 24 Bit (8 Bit für Rot (R),
8 Bit für
Grün (G)
und 8 Bit für
Blau (B)). Somit sind für
jede Grundfarbe 256 verschiedene Grauwerte verfügbar.
-
Bekanntlich
kann eine beliebige Farbe durch eine spezielle Kombination von Werten
dieser drei Grundfarben R, G und B definiert werden (oder durch einen
anderen Satz von Grundfarben wie z.B. Cyan, Magenta oder Gelb).
Im Fall dieses Beispiels ist die Anzahl von Lauflängen links
von der Lücke
(LLEN) gleich 2, und die Anzahl von Lauflängen rechts von der Lücke (RLEN)
ist gleich 5. Die mit LEN 2 bezeichnete Lauflänge wird zuletzt eingefügt, während die Pixelposition
dieser Lauflänge
als GAP in den Bits 23-31 in dem in 1 gezeigten
Informationswort gespeichert ist.
-
3 illustrtiert
schließlich
schematisch eine mögliche
Aufteilung eines Speichers in einen Teil 3001 mit Informationswörtern 3002 von
je zweimal 32 Bit und einen Teil 3003 mit Streifenpuffern
von je 32-bit Wörtern.
Dieser Streifenpufferspeicher 3003 wird durch eine Folge
von Streifenpuffern 3004 mit unterschiedlichen Größen gebildet.
Jedes Informationswort 3002 zeigt auf einen Streifenpuffer 3004.
-
4 illustriert
ein Verfahren zum Einfügen neuer
Lauflängen
NRL in einen oder mehrere Streifenpuffer. Die Erzeugung dieser Lauflängen auf
der Grundlage von Zeichenbefehlen einer Seitenbeschreibungssprache
wie z.B. Post-Script
(Adobe) wird nicht näher
beschrieben. Eine solche Erzeugung ist dem Fachmann geläufig.
-
In
der Praxis wird z.B. ein ASCII-Code für ein Schriftzeichen einem
Symbolerzeuger zugeführt,
um einen oder mehrere Pixelwerte von aufeinanderfolgenden Pixeln
zu erzeugen. Eine andere Möglichkeit ist
die Umwandlung von relativ komplexen Zeichenbefehlen in weniger
komplexe Zeichenbefehle, die ebenfalls zur Erzeugung einer Folge
von Pixelwerten benutzt werden können.
Die in dieser Weise erzeugte Folge von Pixeln wird in Schritt 4001 durch
eine einzufügende
neue Lauflänge
NRL repräsentiert.
Es wird hier angemerkt, daß mit
Lauflänge
der Einfachtheit halber nicht nur die Anzahl von aufeinanderfolgenden
Pixeln mit identischen Pixelwerten (welche Werte nachstehend als
Farbe bezeichnet werden), sondern auch der entsprechende Pixelwert
oder die Farbe gemeint ist. Die ZEIGER für den ersten und letzten Streifen,
die möglicherweise
durch die neue Lauflänge
NRL modifiziert werden müssen,
werden in Schritt 4002 bestimmt. Zeiger lassen sich effizienter
adressieren als die einzelnen Pixeladressen, da die Zeiger als eine
schnell adressierbare Matrix angeordnet werden können, die das gesamte Bild
abdeckt. In einem Entscheidungsschritt 4003 wird unterschieden
zwischen dem Fall, daß die
neue Lauflänge
NRL nur einen Streifen abdeckt (Schritt 4004), und dem
Fall, daß die
neue Lauflänge
NRL mehrere Streifen abdeckt (Schritte 4004, 4006 und 4007).
Die Verarbeitung eines Streifens gemäß Schritt 4004 ist in 5 illustriert,
während
die Verarbeitung mehrerer Streifen in 10 (der
Streifen am weitesten links ist teilweise zu füllen oder zu färben), 11 (Streifen
liegen dazwischen und sind vollständig zu füllen oder zu färben) und 12 (der
am weitesten rechts liegende Streifen ist teilweise zu füllen oder
zu färben)
illustriert ist. Das in 4 illustrierte Verfahren wird
wiederholt, bis alle erzeugten Pixelwerte als eine Folge von Lauflängen in
den entsprechenden Streifenpuffern gespeichert sind.
-
5 illustriert
eine weitere Ausführungsform
des Schrittes 4004 in 4, der sich
auf das Einfügen
einer neuen Lauflänge
in nur einen Streifenpuffer bezieht. Zunächst wird in Schritt 5001 entschieden,
ob der Streifenpuffer zum Typ MONO-COLOUR gehört. Wenn dies der Fall ist
und wenn auch in Schritt 5002 festgestellt wird, daß die Farbe
der neuen Lauflänge
mit der Farbe des MONO-COLOUR Streifenpuffers identisch ist, braucht
der Streifenpuffer nicht verändert
zu werden. Die Verarbeitung bezüglich
der neuen Lauflänge
ist dann beendet.
-
Wenn
jedoch in Schritt 5002 festgestellt wird, daß die Farbe
der neuen Lauflänge
NRL von der Farbe MONO-COLOUR verschieden ist, so muß der Streifenpuffer
in einen Streifenpuffer des Typs FULL-COLOUR geändert werden. Dabei muß in Schritt 5003 Speicherplatz
zugewiesen werden, und die zuvor beschriebene Information TYPE muß entsprechend
geändert
werden. In Schritt 5004 wird anschließend die Lauflänge der
neuen Lauflänge
im Streifenpuffer gespeichert, wobei weiterhin in Schritt 5005 dafür gesorgt
wird, daß der
verfügbare
Speicherplatz (oder die Lücke)
rechts von der eingefügten Lauflänge liegt.
-
Wenn
sich jedoch in Schritt 5001 ergibt, daß der Streifenpuffer vom Typ
FULL-COLOUR ist, folgt ein umfassenderes Verfahren 5006,
wie es in 6 beschrieben ist.
-
6 illustriert
das Verfahren zum Einfügen einer
neuen Lauflänge
NRL in einen einzigen Streifenpuffer des Typs "FULL-COLOUR. Zunächst wird in Schritt 6001 dafür gesorgt,
daß genügend Platz
in dem Streifenpuffer verfügbar
ist, so daß die
neue Lauflänge
eingefügt
werden kann. Dies wird erreicht, indem neuer Speicherplatz zugewiesen
wird, die gespeicherten Lauflängen
in diesem neuen Speicherplatz kopiert werden und der alte Speicherplatz
freigegeben wird. Außerdem
wird die Information BLEN in dem Informationswort angepaßt. In Schritt 6002 wird
festgestellt, ob die Pixelkoordinate XBNR (in Richtung der Bildzeile)
am Anfang einer neuen Lauflänge
größer ist
als die Pixelkoordinate XBSPL (in Richtung der Bildzeile) am Ende
der Lücke.
In dem Fall hat somit die neue Lauflänge Pixel rechts vom Anfang
der Lücke,
in Schritt 6003 werden ein oder mehrere Lauflängen im
Streifenpuffer von der rechten Seite zur linken Seite der Lücke bewegt,
so daß die
Lücke rechts
vom Anfang der neuen Lauflänge NRL
liegt. Anschließend
wird in Schritt 6004 die neue Lauflänge eingefügt.
-
Wenn
das Ergebnis der Entscheidung in Schritt 6002 negativ ist,
so wird in Schritt 6005 geprüft, ob die Pixelkoordinate
XENR am Ende der neuen Lauflänge
kleiner ist als die Pixelkoordinate XBSPL am Anfang der Lücke. In
dem Fall hat somit die neue Lauflänge Pixel links vom Anfang
der Lücke, eine
oder mehrere Lauflängen
im Streifenpuffer werden (in Schritt 6006) von der linken
zur rechten Seite der Lücke
bewegt, so daß die
Lücke links
von der neuen Lauflänge
liegt. Anschließend
wird in Schritt 6007 die neue Lauflänge eingefügt.
-
Wenn
auch das Ergebnis der Entscheidung in Schritt 6005 negativ
ist, so hat die neue Lauflänge sowohl
Pixel die links von der Lücke
liegen, als auch Pixel, die rechts von der Lücke liegen. In Schritt 6008 wird
die neue Lauflänge
eingefügt.
-
Der
Schritt 6008 aus 6, zum Einfügen einer
Lauflänge,
die Pixel sowohl rechts als auch links von der Lücke hat, ist in 7 illustriert.
Zunächst wird
in Schritt 7001 die am weitesten links liegende Lauflänge rechts
von der Lücke
gesucht, die noch nicht vollständig
durch die neue Lauflänge
abgedeckt ist. Anschließend
wird in Schritt 7002 entschieden, ob diese Lauflänge die
gleiche Farbe wie die neue Lauflänge
hat. Im Fall identischer Farben wird die Lauflänge in Schritt 7003 entfernt,
und die neue Lauflänge wird
um den Teil verlängert,
der nicht von dieser Lauflänge überdeckt
oder überlappt
wird. Im Fall unterschiedlicher Farben wird in Schritt 7004 die
Lauflänge
der überdeckten
oder überlappten
Lauflänge
um einen Betrag gekürzt,
der von der neuen Lauflänge überdeckt
wird.
-
Anschließend wird
in Schritt 7005 die am weitesten rechts liegende Lauflänge links
von der Lücke
gesucht, die noch nicht vollständig
von der neuen Lauflänge überdeckt
wird. Abhängig
davon, ob diese Lauflänge
die gleiche Farbe wie die neue Lauflänge besitzt, wird wie oben
beschrieben die Lauflänge
entweder substituiert oder gekürzt,
und die neue Lauflänge
wird erforderlichenfalls verlängert
(Schritte 7006, 7007 und 7008). Weiterhin
werden die vollständig überdeckten
Lauflängen
entfernt.
-
Schließlich wird
in Schritt 7009 die neue Lauflänge, die möglicherweise verlängert worden
ist, eingefügt,
und die Information im Informationswort wird modifiziert.
-
In 8 ist
der Schritt 6004 aus 6 illustriert,
mit dem die neue Lauflänge
eingefügt
wird, wenn die Lauflänge
nur Pixel rechts von der Lücke hat.
Es sei angemerkt, daß nach
dem in 6 illustrierten Verfahren die Lücke sich
inzwischen bewegt hat, so daß diese
Lücke nun
rechts vom Anfang der neuen Lauflänge liegt.
-
In
Schritt 8001 wird entschieden, ob die Lauflänge gerade
links von der Lükke
die gleiche Farbe hat wie die neue Lauflänge. Wenn dies der Fall ist, wird
diese Lauflänge
entfernt, und die neue Lauflänge
wird verlängert
(Schritt 8002). Andernfalls wird diese Lauflänge um den
Betrag der Überlappung
mit der neuen Lauflänge
gekürzt
(Schritt 8003).
-
Anschließend wird
das rechte Ende der neuen Lauflänge
verarbeitet. Dazu wird in Schritt 8003 die am weitesten
links liegende Lauflänge
rechts von der Lücke
gesucht, die noch nicht vollständig
von der neuen Lauflänge überdeckt
wird. Diese Lauflänge wird
anschließend
entweder entfernt, und die neue Lauflänge wird verlängert, oder
diese Lauflänge
wird um den Betrag der Überlappung
mit der neuen Lauflänge
gekürzt
(Schritte 8005, 8806 und 8007). Wiederum
werden die vollständig überlappten
Lauflängen
entfernt.
-
Schließlich wird
in Schritt 8008 die neue Lauflänge eingefügt, und die Information in
dem zu dem Streifenpuffer gehörenden
Informationswort wird modifiziert.
-
9 illustriert
ein Verfahren, das zu dem in 8 illustrierten
Verfahren analog ist, nun jedoch für den Fall, daß die neue
Lauflänge
nur Pixel links von der Lücke
hat. Wie bei dem Verfahren nach 6 wird die
Lücke wieder
so bewegt, daß sie
sich gerade links vom Anfang der neuen Lauflänge befindet.
-
In.
Schritt 9001 wird entschieden, ob die Lauflänge gerade
rechts von der Lücke
die gleiche Farbe hat wie die neue Lauflänge. Wenn dies der Fall ist,
so wird in Schritt 9002 die Lauflänge entfernt, und die neue
Lauflänge
wird um den Betrag verlängert, der
dem nicht überlappten
Teil der entfernten Lauflänge
entspricht. Andernfalls wird in Schritt 9003 die Lauflänge um den
Betrag der Überlappung
mit der neuen Lauflänge
gekürzt.
-
Anschließend wird
das linke Ende der neuen Lauflänge
verarbeitet. In Schritt 9004 wird nach der am weitesten
rechts liegenden Lauflänge
links von der Lücke
gesucht, die noch nicht vollständig
von der neuen Lauflänge überlappt
wird. Wenn diese Lauflänge
die gleiche Farbe hat (Schritt 9005), so wird die Lauflänge entfernt,
und die neue Lauflänge
wird verlängert
(Schritt 9006), andernfalls wird die Lauflänge gekürzt (Schritt 9007).
Schließlich
wird in Schritt 9007 die neue Lauflänge eingefügt, und die Information in dem
zu dem Streifenpuffer gehörenden
Informationwort wird modifiziert. Die vollständig überlappten Lauflängen werden
ebenfalls entfernt.
-
Die
bisher beschriebenen Situationen beziehen sich auf den Fall, daß die neue
Lauflänge
maximal einen Streifen überdeckt.
Dies wird in Schritt 4003 in 4 festgestellt.
Es wird dann unterschieden zwischen Situationen, in denen die neue
Lauflänge
Pixel links von der Lücke,
rechts von der Lücke oder
sowohl links als auch rechts von der Lücke hat. Die Verarbeitung dieser
verschiedenen Situationen ist in 7, 8 und 9 beschrieben.
In 10, 11 und 12 wird
die Verarbeitung für
die Situation beschrieben, in der die neue Lauflänge sich über mehr als einen Streifen
erstreckt.
-
10 beschreibt
für den
Fall, daß sich
die neue Lauflänge über mehrere
Streifen erstreckt, die Modifikation des am weitesten links liegenden
Streifens, der teilweise von der neuen Lauflänge überdeckt wird. Wenn dieser
teilweise überdeckte
Streifen vom Typ MONO-COLOUR ist und außerdem die gleiche Farbe hat
(Schritt 10001 und 10002), so ist die Verarbeitung
beendet, und es braucht nichts modifiziert zu werden. Wenn sich
zeigt, daß ein
Streifen in MONO-COLOUR eine andere Farbe hat als die neue Lauflänge (Schritt 10003),
so wird der Streifen in FULL-COLOUR geändert. In Schritten 10004, 10005 und 10006 wird
entschieden, ob die Streifenpuffer erweitert werden müssen. Dies
geschieht, indem nacheinander festgestellt wird, ob genug Platz (die
Lücke)
vorhanden ist (Schritt 10004), ob der Anfang der letzten
Lauflänge
links von den am weitesten links liegenden Pixeln liegt, die gefärbt werden müssen (Schritt 10005)
und ob die Farbe der letzten Lauflänge von der Farbe der neuen
Lauflänge
verschieden ist (Schritt 10006). Wenn dar Resultat die ser
drei Prüfungen
positiv ist, so wird in Schritt 10007 ein neuer Streifenpuffer
mit einer doppelten Größe zugewiesen,
und die Lauflängen
in dem alten Streifenpuffer werden in den neuen Streifenpuffer kopiert. Die
kopierten Lauflängen
liegen dann links von der Lücke.
Danach wird in Schritt 10008 die neue Lauflänge rechts
von der Lücke
eingefügt.
-
Wenn
jedoch in dem Streifenpuffer genügend
Platz verfügbar
ist, so wird in Schritt 10009 festgestellt, ob die Lücke links
von den am weitesten links liegenden Pixeln liegt, die gefärbt werden
müssen.
Wenn dies der Fall ist, werden in Schritt 10010 so viele
Lauflängen
von der linken Seite der Lücke zur
rechten Seite bewegt, bis man eine Lauflänge erreicht, die noch nicht
vollständig
von der neuen Lauflänge überdeckt
ist. Im anderen Fall werden in Schritt 10011 so viele Lauflängen von
der rechten Seite zur linken Seite der Lücke durchsucht, bis eine Lauflänge gefunden
wird, die noch nicht vollständig
von der neuen Lauflänge überdeckt
ist. Anschließend
wird in Schritt 10012 entschieden, ob diese noch nicht
vollständig überdeckte
Lauflänge
die gleiche Farbe hat. Wenn dies der Fall ist, wird in Schritt 10013 die
Lauflänge
entfernt und die neue Lauflänge
verlängert.
Im anderen Fall wird in Schritt 10014 die Lauflänge um den
Betrag der Überlappung
durch die neue Lauflänge
gekürzt.
Schließlich
wird in Schritt 10015 entschieden, ob der Streifen zu einem
Streifen des Typs MONO-COLOUR geworden ist. Entweder wird dann in Schritt 10016 der
Streifen in MONO-COLOUR geändert,
oder in Schritt 10017 wird die neue Lauflänge in den
Streifenpuffer eingefügt
und die Information im entsprechenden Informationswort geändert.
-
11 illustriert
die Modifikation von Streifen, die vollständig von der neuen Lauflänge überdeckt
sind, wenn die neue Lauflänge
sich über
mehrere Streifen erstreckt. Dies geschieht, indem für jeden
vollständig überdeckten
Streifen wiederholt (Schritt 11001 und Schritt 10005)
die folgenden Schritte ausgeführt
werden. In Schritt 10002 wird entschieden, ob der vollständig überdeckte
Streifen vom Typ MONO-COLOUR ist. Wenn dies der Fall ist, wird in
Schritt 10006 die Information in dem entsprechenden Informationswort
ggf. in Übereinstimmung
mit der Farbe der neuen Lauflänge
modifiziert. Wenn dieser Streifen nicht vom Typ MONO-COLOUR ist,
so wird in Schritt 11003 der entsprechende Speicher im Streifenpuffer
freigegeben. Anschließend
wird in Schritt 11004 der Streifen in den Typ MONO-COLOUR
mit der Farbe der neuen Lauflänge
geändert, indem
die entsprechende Information im Informationswort modifiziert wird.
-
12 beschreibt
die Modifikation des am weitesten rechts liegenden Streifens, der
teilweise von der neuen Lauflänge überdeckt
wird, für
den Fall, daß die
neue Lauflänge
sich über
mehrere Streifen erstreckt. Wenn dieser teilweise überdeckte
Streifen vom Typ MONO-COLOUR ist und außerdem die gleiche Farbe hat
(Schritt 12001 und 12002) so ist die Verarbeitung
beendet, und es braucht nichts modifiziert zu werden. Erweist sich,
daß ein
Streifen des Typs MONO-COLOUR eine andere Farbe hat als die neue
Lauflänge
(Schritt 12003), so wird der Streifen in den Typ FULL-COLOUR
geändert.
In Schritten 12004, 12005 und 12006 wird
entschieden, ob die Streifenpuffer erweitert werden müssen. Dies
geschieht, indem nacheinander geprüft wird, ob genügend Speicherplatz
(die Lücke)
verfügbar
ist (Schritt 12004), ob das Ende der ersten Lauflänge rechts
von den am weitesten links liegenden Pixeln liegt, die nicht gefärbt werden
müssen
(Schritt 12005), und ob die Farbe der letzten Lauflänge von
der Farbe der neuen Lauflänge
verschieden ist (Schritt 12006). Wenn das Ergebnis dieser
drei Prüfungen
positiv ist, so wird in Schritt 12007 ein neuer Streifenpuffer
mit einer doppelten Größe zugewiesen,
und die Lauflängen
in dem alten Streifenpuffer werden in den neuen Streifenpuffer kopiert.
Die kopierten Lauflängen
liegen dann rechts von der Lücke.
Anschließend
wird in Schritt 12008 die neue Lauflänge links von der Lücke eingefügt.
-
Wenn
jedoch genügend
Platz im Streifenpuffer verfügbar
ist, so wird in Schritt 12009 geprüft, ob die Lücke links
von den am weitesten links liegenden Pixeln liegt, die nicht gefärbt werden
müssen.
In diesem Fall werden dann in Schritt 12010 so viele Lauflängen von
der linken zur rechten Seite der Lücke bewegt, bis eine Lauflänge erreicht
wird, die noch nicht vollständig
von der neuen Lauflänge überdeckt
wird. Anschließend
wird in Schritt 12012 geprüft, ob diese nicht vollständig überdeckte
Lauflänge
die gleiche Farbe hat. Wenn dies der Fall ist, so wird in Schritt 12013 die
Lauflänge
entfernt und die neue Lauflänge verlängert. Im
anderen Fall wird in Schritt 12014 die Lauflänge um den
Betrag der Überlappung
durch die neue Lauflänge
gekürzt.
Schließlich
wird in Schritt 12015 entschieden, ob der Streifen ein
Streifen des Typs MONO-COLOUR werden muß. Dann wird entweder in Schritt 12016 der
Streifen in MONO-COLOUR geändert
oder in Schritt 12017 die neue Lauf länge in den Streifenpuffer eingefügt und die
Information in dem entsprechenden Informationswort geändert.
-
Das
oben beschriebene Verfahren kann entweder von einem Vielzweckprozessor
ausgeführt werden,
der zu diesem Zweck spezifisch programmiert wird, oder von einer
speziell entwickelten Schaltung. Diese Schaltung kann entweder einen festen
Aufbau haben oder auch programmierbar sein, wie z.B. Logikzellen-Arrays.
Die Auswahl zwischen verfügbaren
Einrichtungen zur Ausführung des
beschriebenen Verfahrens soll in jedem Fall durch den Fachmann vorgenommen
werden und auf Überlegungen
basieren, die sich auf die Verarbeitungsgeschwindigkeit, Flexibilität, Kosten
und dergleichen beziehen.
-
Eine
Vorrichtung zur Ausführung
des beschriebenen Verfahrens gemäß der Erfindung
ist schematisch in 13 gezeigt.
-
In 13 ist
eine Eingabeeinrichtung 13001 zum Empfang der Zeichensignale TS
dargestellt. Diese Zeichensignale TS werden danach einer Einrichtung 13002 zur
Erzeugung von Lauflängen
zugeführt.
Diese Einrichtung 13002 zur Erzeugung von Lauflängen erzeugt
auf der Grundlage eines zugeführten
Zeichensignals TS nacheinander ein oder mehrere Lauflängensignale
NR. Im Anschluß daran werden
in einer Wähleinrichtung 13003 für Adressen Adresseninformationssignale
erzeugt, die diesen Lauflängensignalen
NR entsprechen. Diese Adresseninformationssignale umfassen ein Bildbereichssignal
BB zur Auswahl eines Streifenpuffers, der diesem Bildbereich entspricht,
ein Bildzeichensignal SL und ein Pixelsignal XP für die Pixelpositionen,
die von dem Lauflängensignal
NR überdeckt
werden. Die von der Einrichtung 13003 erzeugte Adresseninformation
wird der ersten Speichereinrichtung 13005 zugeführt. Diese
Speichereinrichtung 13005 reserviert dann einen entsprechenden
Speicherbereich in der zweiten Speichereinrichtung 13006.
Der Speicher in der zweiten Speichereinrichtung 13006 ist
des weiteren in Streifenpuffer aufgeteilt.
-
Das
von der Einrichtung 13002 erzeugte neue Lauflängensignal
NR wird zusammen mit Lauflängensignalen
OR, die in der zweiten Speichereinrichtung gespeichert sind, den
ersten und zweiten Wähleinrichtungen 13007 und 13008 zugeführt.
-
Die
erste Wähleinrichtung 13007 entscheidet,
ob die Pixelpositionen des neuen Lauflängensignals den Pixelpositionen
der relevanten, gespeicherten Lauflängensignale OR entsprechen.
Dazu wird die Adresseninformation der ersten Speichereinrichtung
ebenfalls diesen Wähleinrichtungen
zugeführt. Die
zweite Wähleinrichtung 13008 entscheidet,
ob sich das Pixelwertsignal, das dem neuem Lauflängensignal NR entspricht, sich
von dem Pixelwertsignal unterscheidet, das zu einem überlappenden
Lauflängensignal
gehört.
Die resultierenden Wählsignale S1
und S2 werden zusammen mit den Lauflängensignalen NR und OR einer
Einrichtung 13009 zum Einfügen von Lauflängen zugeführt. Diese
Einrichtung 13009 modifiziert die Lauflängensignale, die in der zweiten
Speichereinrichtung gespeichert sind, und fügt nach dem in den vorherigen
Figuren illustrierten Verfahren das neue Lauflängensignal ein.
-
In 14 ist
schließlich
ein Bildwiedergabesystem zur Wiedergabe eines Bildes auf einem Bildträger dargestellt.
Dieses System umfaßt
einen Drucker 14002, der durch eine Druckersteuerung 14001 angesteuert
wird. Der Drukker umfaßt
eine Wiedergabeeinrichtung 14007, beispielsweise auf der Grundlage
von Laser oder LED mit einem fotoleitenden Element oder auf Tintenstrahlbasis.
Weiterhin umfaßt
der Drucker 14002 einen Seitenspeicher 14006,
der zur Speicherung von wiederzugebenden Bildsignalen geeignet ist.
Im Fall eines offenen digitalen Kopiergerätes empfängt dieser Speicher 14006 Abtastsignale
SS von einem Bildabtaster, der in der Zeichnung nicht dargestellt
ist. Im Fall der Ansteuerung durch die Druckersteuerung 14001 wird
der Speicher 14006 durch Datenübertragungseinrichtungen 14004 und 14005 mit
Bildsignalen gefüllt.
Diese Datenübertragungseinrichtungen
haben vorzugsweise einen standardisierten elektrischen Anschluß, beispielsweise
nach dem SCSI Standard. Die Druckersteuerung 14001 enthält weiterhin
eine Vorrichtung 14003 gemäß 13 zur
Umwandlung der Zeichensignale TS, die der Druckersteuerung 14001 zuzuführen sind,
in Lauflängensignale
NR, die dem Drucker 14002 zuzuführen sind. Wichtig ist jedoch,
daß der
Speicherplatz, der in der Druckersteuerung 14001 benötigt wird,
und die für
die Übermittlung
der Signale an den Drucker 14002 benötigte Kapazität kleiner
sind als in dem Fall, in dem die Lauflängensignale zunächst in
Bitmapsignale konvertiert werden.
-
Die
bisher beschriebenen Ausführungsformen
machen Gebrauch von einer eindimensionalen Lauflängenkompression in einer Richtung,
nämlich
in Rich tung ihrer Bildzeilen. Es ist jedoch ebenso gut auch eine
zweidimensionale Kompression in zwei Richtungen möglich. Durch
Zuweisung eines Referenzcodes je Streifenpuffer ist die Verwaltung
von zwei Bildbereichen oder Streifen möglich, die aus zwei verschiedenen
Bildzeilen resultieren, die die gleiche Farbe haben. Weiterhin kann
anstelle eines Streifens vom Typ FULL-COLOUR ein Streifen vom Typ
BI-COLOUR vorgehalten werden, wo Informationen bezüglich zweier
Farben gespeichert werden kann. In diesem Fall wird in dem Streifenpuffer
nur eine Lauflänge
ohne Pixelwerte gespeichert. Eine erste Lauflänge hat stets die erste Farbe,
während nachfolgende
Lauflängen
stets eine Farbe haben, die zwischen der ersten und der zweiten
und anderen Farbe abwechselt. Anstelle von 4 Byte wird nur ein Byte
pro Lauflänge
benötigt.
Die Pixelwerte der beiden Farben können in dem Informationswort
gespeichert werden, das zu dem Streifenpuffer gehört.