Die Erfindung betrifft ein Verfahren zum Kodieren und
Speichern von Schriftzeichen nach dem Oberbegriff des
Anspruchs 1.
Es sollen alphanumerische Zeichen oder andere Symbole
digital kodiert gespeichert werden, um durch ein Setzgerät
mit einer Kathodenstrahlröhre oder einen Laserstrahl-
Abtaster oder einer sonstigen Schriftzeichenabbildungs
einrichtung reproduziert werden zu können.
Ein bekanntes Verfahren zum Kodieren und Speichern von
Schriftzeichen der eingangs genannten Gattung für den
Lichtsatz geht von einem Normalraster (Kodierquadrat mit
X-Y-Koordinaten und vorgegebenen Y-Koordinatenwerten) aus.
Es wird eine Vielzahl von festen Werten von Parameter
änderungen für mindestens einen Parameter, nämlich eine
Steigung oder eine Krümmung, für Richtungsänderungen einer
Linie innerhalb des Normalrasters ausgewählt, wobei die
festen Werte Y-Koordinateninkremente auf aufeinanderfolgende
X-Koordinatenstellen beziehen (DE-AS 24 22 464). Die Außen
linien eines Schriftzeichens werden bezogen auf das Normal
raster durch Abspeicherung der Y-Anfangskoordinaten eines
jeden Paares von Außenlinien eines Zeichens als ein Befehl
abgespeichert, der den Beginn des Außenlinienpaares an
gibt. Weiterhin wird der Parameterwert einer jeden eine
Richtungsänderung aufweisenden Außenlinie als Parameter
änderungsbefehl gespeichert. Die Anzahl von X-Koordinaten
stellen von jeweils einem Befehl zum nächsten Befehl wird
ebenfalls gespeichert. Schließlich wird ein Befehl zur
Beendigung des Zeichens abgespeichert. - Die Erzeugung einer
geraden ansteigenden oder abfallenden Linie aufgrund eines
Steigungsänderungsbefehls erfordert eine hohe Speicher
kapazität für eine hohe Anzahl Steigungsinformationen,
insbesondere wenn gerade, geneigte Strecken als Schrift
zeichenumrißlinienabschnitte ohne Stufen in hoher typo
graphischer Qualität zu reproduzieren sind. Deswegen kann
zur Bildung einer Außenlinie mit gerader Steigung ein
spezieller Befehl gespeichert werden, der inkrementale
Änderungen von Y-Koordinatenwerten beinhaltet. Dieser
spezielle Befehl gibt an, wie ausgehend von einem Ausgangs
punkt der Y-Koordinatenwert für jedes konstante X-Koordinaten
inkrement zu verändern ist. Zu jedem speziellen Befehl ge
hört die Angabe einer Anzahl von X-Inkrementen, für die
eine Veränderung der Y-Koordinate oder der Steigung oder
der Krümmung auszurechnen ist. Deswegen ist eine hohe
Speicherkapazität zur Speicherung der Steigungsinformationen
für eine typographisch hochwertige Schriftzeichengenerierung
erforderlich.
Zum Stand der Technik gehört ferner ein Verfahren zum
Kodieren von Linien in digitale Daten, nach dem zunächst
der Anfang der Linie in einem Normalraster festgestellt
wird und dann ein Abtaststrahl mit konstanten Delta-X-
oder Delta-Y-Inkrementen entlang der Linie geführt wird
(US-PS30 50 581). Bei diesem bekannten Verfahren können
die die Umrißlinie beschreibenden Vektoren nur den konstanten
Abstand einer Einheit in X-Richtung oder einer Einheit in
Y-Richtung aufweisen. Gespeichert werden die kodierten
Vektoren durch Daten, welche die Vektorenendpunkte definieren.
Wenn Schriftzeichen nach dem bekannten Verfahren wie die fort
laufende Linie kodiert und gespeichert werden sollen, so
können die Schriftzeichen entweder nur für typographische
Zwecke unvollkommen, nämlich grob abgestuft gespeichert
werden, oder eine große Speicherkapazität ist erforderlich.
Weiterhin gehört ein Verfahren zum Erkennen von Bildmustern
zum Stand der Technik, wonach eine Umrißlinie als Funktion
einer Bogenlänge oder eines Abstands entlang der Umrißlinie
beschrieben werden kann (IEEE Transactions on computers
Vol. C-24 No. 8, August 75, Seiten 803-820). Hiernach sind
verschiedene Algorithmen zum Beschreiben der Umrißlinien
bekannt, die jedoch keine Delta-X- und Delta-X-Koordinaten
abstände von einem Ende eines Vektors zu dem jeweils
nächsten Vektor definieren. Vielmehr werden Tangenten oder
Neigungen oder Winkel als verhältnismäßig komplizierte
Funktionen errechnet, für deren Daten verhältnismäßig viel
Speicherraum benötigt wird.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum
Kodieren und Speichern von Schriftzeichen der eingangs ge
nannten Gattung so weiterzubilden, daß die Approximation
der Schriftzeichenumrißlinien bei einem geringen Speicher
bedarf optimiert wird.
Diese Aufgabe wird durch die Ausgestaltung des Verfahrens
mit den in dem kennzeichnenden Teil des Anspruchs 1 ange
gebenen Merkmalen gelöst.
Entsprechend dem erfindungsgemäßen Verfahren werden die
Vektoren der Umrißlinienabschnitte nicht sämtlich unmittel
bar auf die Ausgangspunkte der Umrißlinien bezogen, wodurch
sich große Datenmengen ergeben würden, sondern es wird nur
der erste Vektor insoweit festgelegt. Im übrigen ergeben
sich die Umrißlinien aus der Folge der Vektoren, die als
variable Koordinatenabstände in digitale Signale kodiert
werden. Die variablen Koordinatenabstände werden so einge
stellt, daß vorgegebene Abweichungen zu den zu approxi
mierenden Umrißlinienabständen nicht überschritten werden.
Die nach dem erfindungsgemäßen Verfahren erzeugten Signale
können ohne großen Aufwand für wählbare unterschiedliche
Schriftgrößen umgesetzt werden, die mit einem Setzgerät ge
setzt werden. Hierzu sind lediglich die Schnittpunkte
zwischen jedem horizontalen oder vertikalen Abtaststrich
des Setzgeräts und den Schriftzeichenumrißlinien zu er
rechnen, um zu bestimmen, wann ein Lichtpunkt des Setzgeräts
an- oder abgeschaltet werden muß.
Weitere vorteilhafte Merkmale des Verfahrens zum Kodieren
und Speichern der Schriftzeichen ergeben sich aus den
Ansprüchen 2-9.
Insbesondere sind nach Anspruch 8 oder 9 die ersten und
zweiten digitalen Daten, die jeden Vektor definieren, be
grenzt. Bei einer mäßigen Auflösung von beispielsweise
432 Einheiten im Geviert umfassen die ersten oder zweiten
digitalen Daten jeweils zweckmäßig vier Bit Ziffern, so
daß ein Vektor durch ein Byte (8 Bits) dargestellt ist. Es
hat sich gezeigt, daß bei weitem die meisten Vektoren, die
zur Definition eines Schriftzeichens erforderlich sind,
innerhalb von 15 Einheiten in den Richtungen der ersten
und der zweiten Koordinate auf dem Raster liegen. Das
Vektorkodierschema schließt in sich inkrementale Abstände
in der ersten und in der zweiten Koordinatenrichtung von
der Spitze des vorausgehenden Vektors ein. Diese inkre
mentalen Abstände können mit geringerer Information defi
niert werden als die absoluten Koordinaten einer Vektor
spitze. Zusätzlich werden der Ausgangspunkt und die Vektor
daten in einer vorgeschriebenen Folge dargestellt, die von
sich aus die Daten mit spezifischen Schriftzeichen-Umrissen
zuordnet. Als Ergebnis dieser drei Faktoren ist das vor
liegende Kodierschema gegenüber den früheren Arten zur
Digitalisierung von Schriftzeichen hinsichtlich der Anzahl
der erforderlichen Daten zur Definition eines Schriftzeichens
und der Komplexität und der Schnelligkeit der hardware,
die zur Verarbeitung dieser Daten erforderlich ist, günstig.
Die Daten zur Koordierung der Schriftzeichen können erfindungs
gemäß automatisch mit einem Digitalrechner von einer groben
Punktmatrix-Information oder einem anderen digitalisierten
Kode auf relativ einfache Art erhalten werden. Gemäß einem
Kodierverfahren werden die Vektoren so gewählt, daß zunächst
aufeinanderfolgende Koordinatenpunkte auf jeder Umrißlinie
bestimmt werden, für die die Umrißlinie weniger als eine
vorgeschriebene Entfernung von einer geraden Linie zwischen
diesen Punkten abweicht. Sind diese Umrißpunkte bestimmt,
dann werden die Werte der ersten und zweiten Koordinaten
jedes aufeinanderfolgenden Punktes von den Werten der
ersten und zweiten Koordinate des vorausgehenden Punkts
abgezogen, damit die Koordinatenzunahmen von Punkt zu Punkt
bestimmt werden können. Diese Zunahmen werden dann als die
ersten und zweiten 4-Bit-Daten gespeichert, die jeden
Vektor definieren.
Bei höheren typographischen Qualitätserfordernissen werden
nach Anspruch 9 die ersten und die zweiten digitalen Daten
als 8-Bit Binärzahlen gespeichert, so daß jeder Vektor
durch ein Datenwort mit 16 Bit definiert ist. Auch hierbei
ist der erforderliche Speicherraumbedarf im Blick auf die
gute Approximation der Schriftzeichenumrißlinien noch
günstig.
Ein weiterer Aspekt der Erfindung betrifft einen Schrift
speicher, insbesondere Floppy Disk, der die gemäß dem
erfindungsgemäßen Verfahren kodierten Schriftzeichen als
digitale Daten speichert. Der Speicher kann dazu auch als
Festplattenspeicher oder RAM ausgebildet sein.
Weitere vorteilhafte Ausgestaltungen der Speicher mit den
Schriftzeichendaten ergeben sich aus den Ansprüchen 11-24.
Durch die Anordnung der gespeicherten digitalen Daten
entsprechend Anspruch 11 können die dem Schriftspeicher
entnommenen digitalen Daten mit einer elektronischen
Rechner- und Steuereinrichtung eines Setzgeräts oder einer
anderen Schriftzeichendarstellungseinrichtung unkompliziert
in die Darstellung der Schriftzeichen umgewandelt werden,
ohne daß hierzu eine große Anzahl zusätzlicher Befehle und
Adressen in den Schriftspeicher abzuspeichern sind. Das
Wesen des Speichers nach Anspruch 11 besteht also darin,
daß dieser Speicher digitale Daten über kodierte Vektoren
in einer vorgeschriebenen Folge enthält, die von sich aus
diese Daten den spezifischen Schriftzeichenumrissen zu
ordnet.
Die Schriftspeicher gemäß den Ansprüchen 19-22 beinhalten
eine Struktur der gespeicherten digitalen Daten, die die
einfache Verarbeitung der ausgespeicherten Daten weiter
erleichtert.
In den Ansprüchen 14-18 sind zu diesem Zweck weitere
Befehle bzw. Steuerkode angegeben, die in dem Schrift
speicher zweckmäßig abzuspeichern sind.
Die Ansprüche 23 und 24 beinhalten die vorteilhafte
Organisation einer Magnetscheibe als Schriftspeicher der
kodierten Daten.
Die Erfindung wird im folgenden anhand einer Zeichnung er
läutert:
Fig. 1 zeigt ein normalisiertes X-Y-Raster, bei dem geradlinige Vektoren zwischen einzelnen Schnittpunk
ten eingesetzt wurden.
Fig. 2 stellt eine Versuchsmatrix dar, die bei der automatischen Auswahl der Vektoren zur erfindungsgemä
ßen Darstellung eines Buchstabenumrisses verwendet wird.
Fig. 3 ist ein Flußdiagramm, das die bei der automatischen Auswahl von Vektoren zur Darstellung eines
Buchstabenumrisses durchzuführenden Schritte aufzeigt.
Fig. 4A-4E zeigen ein bevorzugtes Format digitaler Daten für das erfindungsgemäße Schriftzeichen-Kodie
rungsschema.
Fig. 5 ist ein normalisiertes X-Y-Raster eines dargestellten Schriftzeichens, das durch Ausgangspunkte und
Vektoren nach der auf der linken Seite von Fig. 3 gezeigten Anordnung definiert wird.
Fig. 6 zeigt die tatsächliche Kodierung für das in Fig. 5 dargestellte Schriftzeichen unter Verwendung des in
Fig. 4 veranschaulichten Datenformats.
Fig. 7A-7D zeigen ein weiteres bevorzugtes Digitaldatenformat für das erfindungsgemäße Schriftzeichen-
Kodierschema.
Fig. 8 zeigt ein repräsentatives Schriftzeichen auf einem normalisierten X-Y-Raster, wobei die Schriftzei
chenumrisse durch Ausgangspunkte und Vektoren nach der auf der rechten Seite von Fig. 1 gezeigten Anord
nung definiert werden.
Fig. 9 zeigt die tatsächliche Kodierung für das in Fig. 8 dargestellte Schriftzeichen unter Verwendung des in
Fig. 5 veranschaulichten Datenformats.
Fig. 10 ist eine Draufsicht auf eine in Sektoren eingeteilte Floppy-disk-Scheibe mit angedeuteten Sektoren
und Spuren.
Fig. 11 ist ein Diagramm, welches die Anordnung der Daten für Schrift und Schriftzeichen auf der Floppy-
disk-Scheibe darstellt.
Fig. 12 ist ein Diagramm, das die Schriftzeichen-Nachschlag- und Dicktendatei von Fig. 11 ausführlicher
darstellt.
Fig. 13 zeigt ein durch vertikale Striche auf dem Schirm einer Kathodenstrahlröhre erzeugtes großes "Q".
Fig. 14A zeigt ein Schriftzeichen, dessen Umgrenzung durch geradlinige Vektoren gebildet ist, zwischen
denen vertikale Abtastlinien eingeschlossen sind.
Fig. 14B zeigt, wie das Schriftzeichen nach Fig. 14A mit einer bestimmten Schriftbreite abgebildet wird
durch die vertikalen Abtastlinien.
Fig. 15A zeigt ein Schriftzeichen, dessen Umgrenzung durch geradlinige Vektoren gebildet ist, zwischen
denen vertikale Abtastlinien eingeschlossen sind.
Fig. 15B zeigt, wie das Schriftzeichen nach Fig. 15A mit einer bestimmten - anderen - Schriftbreite durch
die vertikalen Abtastlinien abgebildet wird.
Fig. 16 zeigt, wie Strichendpunkte durch Interpolation aus kodierten Schriftzeichendaten bestimmt werden.
Fig. 17 zeigt, wie Strichendpunkte (Umschaltwerte) durch Mittelwertbestimmung aus kodierten Schriftzei
chendaten bestimmt werden.
Fig. 18 ist ein Blockdiagramm eines Kathodenstrahlrohr-Setzgerätes.
Fig. 19A und 19B sind Block- bzw. Signaldiagramme, die die Struktur und die Wirkungsweise des Schriftzei
chengeneratorelemments von Fig. 18 darstellen.
Fig. 20 zeigt das Kodeumwandlerelement von Fig. 19 mit seinen verschiedenen Ein- und Ausgängen.
Fig. 21 ist ein Blockdiagramm der Elemente des in den Fig. 19 und 20 dargestellten Kodeumwandlers.
Fig. 22 ist ein Blockdiagramm des Hauptsteuerelements des in Fig. 21 gezeigten Kodeumwandlers.
Fig. 23 ist ein geometrisches Diagramm, das den durch den Kodeumwandler durchgeführten Vektorberech
nungsprozeß veranschaulicht.
Fig. 24 ist ein Flußdiagramm, das die Wirkungsweise des Maßstabselements (Festwertmultiplizierers) des
Kodeumwandlers veranschaulicht.
Fig. 25 ist ein geometrisches Diagramm, das den durch den Kodeumwandler durchgeführten Interpolations
prozeß veranschaulicht.
Fig. 26 ist ein Blockdiagramm des Adressierteils des Direktzugriffspeicher (RAM) des Kodeumwandlers.
Fig. 27 ist ein Blockdiagramm des Maßstabselements des Kodeumwandlers.
Fig. 28 ist ein weiteres Flußdiagramm, das die Wirkungsweise des Maßstabselements des Kodeumwandlers
veranschaulicht.
Fig. 29 ist ein geometrisches Diagramm, das den durch den Kodeumwandler durchgeführten Prozeß zur
Mittelwertbestimmung veranschaulicht.
Fig. 1 veranschaulicht das erfindungsgemäße Kodierschema. Nach diesem Schema wird die Anzahl der
erfaßten Koordinatenpunkte entlang den Umrissen des Schriftzeichens weit herabgesetzt. Es wird angenom
men, daß diese Punkte durch gerade Linien verbunden werden. Statt die absoluten Koordinaten dieser gewähl
ten Punkte werden, um die Schriftzeichen-Umrisse genau zu definieren, die geraden Linien als Vektoren durch
die Anzahl der Koordinateneinheiten von dem einen Ende des Vektors zum anderen dargestellt. Die Vektoren
werden in einer Reihenfolge der Spitze bis zum Ende angeordnet, so daß ein neuer Vektor beginnt, wenn ein
vorausgehender aufhört. Eine Reihe oder eine Folge solcher Vektoren, die einen Umriß eines Schriftzeichens
bilden, geht von einem ursprünglichen Ausgangspunkt aus, der in absoluten Koordinaten gegeben ist.
Wie in der linken Hälfte von Fig. 1 gezeigt ist, verlaufen die Vektoren beispielsweise von links nach rechts
unter der Annahme, daß wenn zwei Vektoren von derselben X-Koordinaten ausgehen, der untere Vektor zuerst
aufgeführt ist. Ebenso werden, wenn ein oder mehrere Paare von Ausgangspunkten angegeben sind, das untere
Paar und der untere Ausgangspunkt zuerst aufgeführt.
In Fig. 1 werden die Ausgangspunkte X₁, X₁ und X₂, Y₂ zunächst in dieser Reihenfolge gegeben. Sodann
werden die Vektoren, die von diesen Ausgangspunkten hervorgehen, in der Reihenfolge 1, 2, 3, 4 aufgeführt. Die
Zahlen, die diese Vektoren definieren, sind in Tabelle I angegeben:
Wenn die Vektoren 3 und 4 abgelaufen sind, müssen zwei neue Ausgangspunkte X₃, Y₃ und X₄, Y₄ definiert
werden, bevor mit neuen Vektoren fortgefahren werden kann. Da die Schriftzeichendaten von links nach rechts
verlaufen, würde man sonst annehmen, daß keine Vektoren oder Ausgangspunkte mit X-Koordinaten-Werten
im X-Koordinatenbereich der nächsten zwei Vektoren vorhanden sind.
Nachdem die Ausgangspunkte X₃, Y₃ und X₄, Y₄ gegeben sind, werden die Vektoren in der Reihenfolge 5, 6, 7,
8 in der Maßgabe von unten nach oben aufgeführt. Weitere Vektoren werden dann in der Reihenfolge links nach
rechts, von unten nach oben aufgeführt, d. h. in der Reihenfolge, in der sie "ablaufen", während man entlang der
X-Achse nach rechts wandert.
Normalerweise treten die Ausgangspunkte in Paaren auf; es ist jedoch auch möglich, daß zwei Vektoren von
dem gleichen Ausgangspunkt ausgehen, wie dies durch die Vektoren 9 und 10 dargestellt ist. In diesem Fall ist es
zweckmäßig, den gleichen Ausgangspunkt als Paar von Ausgangspunkten mit identischen Werten anzunehmen,
so daß der Vektor 9 von dem Koordinatenpunkt, X₅, Y₅ und der Vektor 10 vom Punkt X₆, Y₆ ausgeht.
Die rechte Seite der Fig. 1 veranschaulicht das gleiche Kodierschema unter einer anderen Annahme. In
diesem Fall werden die Vektoren eines Schriftzeichens in der gesamten Folge ausgehend von den ursprüngli
chen absoluten Koordinaten des obersten Punktes einer Vektorfolge von oben nach unten aufgeführt. Bei zwei
Ausgangspunkten mit dem gleichen Y-Koordinatenwert ist es gleichgültig, welcher Punkt zuerst aufgeführt
wird.
Bei dem auf der rechten Seite der Fig. 1 gezeigten Umriß ist die Reihenfolge der Daten wie folgt: Ausgangs
punkt X₇, Y₇ und seine Vektoren 11, 12, 13 und so weiter bis zum Ende der Folge; Ausgangspunkt X₈, Y₈ und so
weiter bis zum Ende der Folge; Ausgangspunkt X₉, Y₉; Vektoren 17 und 18; Ausgangspunkt X₁₀, Y₁₀; Vektor 19
und so weiter.
Schließlich wird, wie im Falle des Ausgangspunktes X₅, Y₅ und X₆, Y₆ ein einzelner Punkt als ein "Paar" von
Ausgangspunkten X₁₁, X₁₁ und X₁₂ definiert. Zunächst wird der Punkt X₁₁, Y₁₁ mit seinem Vektor 20
aufgeführt; sodann wird der Ausgangspunkt X₁₃, Y₁₃ aufgeführt, dem Vektor 21 und die weiteren Vektoren der
Folge folgen. Der Ektor 20 endet am Endpunkt 22. Die Vektorfolge, die mit dem Vektor 21 beginnt, endet am
Endpunkt 23. Und die Vektorfolge, die mit dem Vektor 11 beginnt, endet am Endpunkt 24.
Die Umsetzung der Schriftzeichen-Umrißdaten in Ausgangspunkt- und Vektordaten kann wenig aufwendig
erfolgen.
Fig. 2 und 3 veranschhaulichen eine typische Bildung Algorithmus, der zur Bestimmung der
Länge eines Vektors verwendet werden kann.
Fig. 2 zeigt eine 15 × 15-Probematrix im oberen rechten Quadranten von einem Punkt (0,0), der ein ursprüng
licher Ausgangspunkt oder die Spitze eines vorausgehenden Vektors sein kann. Bei dem Quadrant der Probema
trix wird angenommen, daß ein Links-Rechts-Vektor definiert werden soll, der sich aufwärts erstreckt (positive
Werte von Y).
Die Größe der Probematrix entspricht auch der maximal zulässigen Länge eines Vektors (in diesem Fall
jeweils 15 Einheiten in der X- bzw. Y-Richtung). Werden die Vektoren so gewählt, daß sie eine größere oder eine
kleinere Maximallänge aufweisen, dann wird die Matrix entsprechend angepaßt.
In diesem Beispiel stellen die Punkte 30 den tatsächlichen digitalisierten Umriß des Schriftzeichens dar. Die
Linie 32 stellt einen vorgeschlagenen Vektor dar, der ausprobiert werden muß, um zu bestimmen, ob er
ausreichend nahe an den entferntesten Punkt des Umrisses heranreicht, um den Umriß darzustellen. Die
Koordinaten X, Y definieren den augenblicklichen Probepunkt für die Spitze des Vektors 32.
Die Koordinaten aller Punkte 30 des Umrisses werden mit x₀, y₀; x₁, y₁; . . . x₁₅, y₁₅, entsprechend ihrer
Reihenfolge entlang der X-Achse der Matrix bezeichnet.
Wie in Fig. 3 gezeigt, ist der erste Punkt auf dem Umriß, der ausprobiert werden soll, der Punkt auf der Matrix
mit der größten Vorwärtskomponente (in diesem Fall X-Komponente) von dem Punkt (0,0). In Fig. 2 ist der
erste Probepunkt X T, Y T (15,9). Der vierte Probepunkt, wo X T, Y T Koordinaten (12,9) sind, wird nach dem Ausfall
des Passens der drei vorausgehenden Probepunkte getestet: (15,9), (14,9) und (13,9). Zweck ist es, den längsten
Vektor herauszufinden, der den Paß-Test besteht. Es wird jeder Punkt 30 des Umrisses von niedrigerem Wert
(mit Koordinaten x, y) ausgehend geprüft, um zu bestimmen, ob ein senkrechter Abstand δ zwischen diesem
Punkt und dem Vektor, der vom Ausgangspunkt (0,0) bis X T, Y T gezogen ist, eine vorbestimmte Paßkonstante K
überschreitet. Zunächst werden die Koordinaten x, y des Punktes 30 unmittelbar vor dem Probepunkt X T, Y T
ausgewählt, und der Versuch wird durchgeführt. Ist der Abstand δ geringer als die Konstante K, dann wird der
Umriß-Punkt 30 mit dem nächstniedrigsten Wert von X gewählt, und der Test wird wiederholt. Übertrifft der
Abstand δ die Konstante K, dann wird der Testpunkt X T, Y T aufgegeben, und der nächstniedrige Wert von X T
wird gewählt.
Wird ein Probepunkt gefunden, für den alle Umrißpunkte 30 mit niedrigeren X-Koordinaten den Test
bestehen, oder ist die X-Koordinate X T des Probepunktes auf eins herabgesetzt, dann werden die Koordinaten
X T, Y T zur Definition des Vektors benutzt. Der Vektor wird dann durch die Differenz zwischen den Koordinaten
der Spitze des letzten vorausgehenden Vektors (Koordinate (0,0) in der Probematrix) und den Koordinaten der
gewählten Probepunkte X T, Y T dargestellt. Das heißt, dx, dy wird gleich X T, Y T gesetzt.
Der senkrechte Probeabstand δ wird für jeden Punkt durch einfache Geometrie unter Verwendung von X T,
Y T bestimmt. Da eine 15 × 15-Matrix eine begrenzte Anzahl von X T, Y T-Punkten enthält, ist es zweckmäßig, alle
möglichen Lösungen für δ in Tabellen einzufügen, so daß sie rasch in den Tabellen aufgefunden und aus dem
Speicher entnommen werden können.
Die voreingestellte Paßkonstante kann beliebig klein gewählt werden, so daß die Vektoren so eng wie
gewünscht an den tatsächlichen Schriftzeichen-Umriß herankommen. In einer bevorzugten Ausführungsform
wird die Konstante K von der Steigung des Probevektors abhängig gemacht, so daß nahezu horizontale
Steigungen mehr vom Umriß abweichen können.
dann ist K = 0,5; und ist
dann ist K = 1,0.
Der in Fig. 3 gezeigte Algorithmus ist extrem einfach und kann mit einem Rechner ausgeführt werden, in dem
die vertikalen oder horizontalen Umrißpunkte des Schriftzeichens gespeichert sind.
Fig. 2 zeigt eine Probematrix, in der die maximal zulässigen Werte von X und Y 15 Einheiten betragen. Ein
Vektor, der irgendwo innerhalb dieser Matrix endet, kann durch zwei 4-Bit-Binärzahlen, dx und dy, definiert
werden. Bei einem Raster mit mäßig hoher Auflösung fällt bei weitem die Mehrzahl der zur Definition eines
Schriftzeichens erforderlichen Vektoren in eine solche 15 × 15-Matrix, so daß es zweckmäßig ist und zu einer
Datenkomprimierung führt, wenn 8 Datenbits (ein Byte) verwendet werden, um jeden Vektor zu definieren.
Erfindungsgemäß wird die Anzahl der Bits, die einen Vektor definieren, zur Minimierung des Gesamtdaten
vorrats in einem Schriftzeichensatz für eine gegebene Auflösung gewählt. Die maximale Vektorlänge wird so
ausgewählt:
- 1. Zunächst wird die maximale Punktgröße der vom Setzgerät zu generierenden Schriftzeichen festgelegt.
- 2. Sodann wird eine Auflösung gewählt, die die Reproduktion der feinen Merkmale in den größten Schriftzei
chen erlaubt.
- 3. Dann wird die voreingestellte Paß-Konstante K gewählt, so daß die Vektoren den gekrümmten Umrissen
des Schriftzeichens mit ausreichender Genauigkeit folgen und daß sie, wenn die Schriftzeichen in der
größten Punktgröße reproduziert werden, keine Folge von flachen Stellen auf den gekrümmten Flächen
aufweisen.
- 4. Sodann ist es möglich, eine statistische Verteilung der Vektoren variierender Länge für alle Schriftzeichen
in einer Schriftart zu erzeugen.
- 5. Aus dieser Vektorlängenverteilung wird eine maximale Vektorlänge gewählt, die die Gesamtdatenmenge
minimiert. Ist die Gesamtvektorlänge zu kurz (d. h. 3 × 3, was mit insgesamt 4 Bits definiert werden kann),
dann erfordert die Definition eines Schriftzeichens eine übermäßige Anzahl von Vektoren und die Datenre
duktion wird minimal. Ebenso ist, wenn die maximale Vektorlänge zu groß (z. B. 255 × 255, was durch 16 Bits
definiert werden kann) ist, die zur Definition kurzer Vektoren erforderliche Datenmenge unnötig groß, was
zu einer minimalen Datenreduzierung führt.
Fig. 4 veranschaulicht ein bevorzugtes Format zur Definition eines Schriftzeichens mit Links-Rechts-
Vekto
ren (Fig. 1, linke Seite). Diese Vektoren sind in einem Quadranten durch die X-Y-Koordinaten des Vektoren
des im Verhältnis zum Ursprung des Quadranten spezifiziert. Da die Umrisse von links nach rechts über das
Schriftzeichen gezogen werden, werden nur die zwei rechten Quadranten verwendet. Steuerkodes gestatten
eine Selektion des Quadranten, den Beginn und den Abschluß einer Krümmung: Ausgangspunkte werden
lediglich durch ihre Y-Werte definiert, weil die X-Lage durch das Kodieren mit einbezogen ist.
Ein Datenblock, der das Schriftzeichen definiert, beginnnt mit einem Vorsatzwort A (bestehend aus 8-Bit-By
tes), das die X-Koordinate der linken Begrenzung des Schriftzeichens angibt. Darauf folgt ein Ausgangspunkt-
Wort B, das die Y-Koordinate des niedrigsten Ausgangspunkts in der ersten X-Rasterlinie des Schriftzeichens
angibt. Auf das Wort B folgt in Vektorbyte, das die Werte dx und dy eines Vektors von diesem Ausgangspunkt
gibt, und dann ein weiteres Ausgangspunkt-Wort D, das den nächsten niedrigsten Punkt definiert. Ein weiteres
Ausgangspunkt-Wort E definiert den höchsten Punkt in der ersten X-Rasterlinie, und ein Vektorbyte F definiert
einen Vektor von diesem Ausgangspunkt. Gibt es irgendweleche Ausgangspunkte innerhalb von fünfzehn X-Ein
heiten von der ersten Rasterlinie, so können diese in ihrer entsprechenden Y-Wert-Folge durchsetzt werden.
Der Schriftzeichendatenblock enthält weiterhin Vektorbytes, Steuerbytes und Ausgangswörter C und endet in
einem Endglockbyte H, das das Ende des Blockes anzeigt.
Die Fig. 4B, 4C, 4D und 4E zeigen die Formate für das Vorsatzwort, das Ausgangspunktwort, das Vektorbyte
bzw. Steuerbyte. Diese Formate werden mit dem unbedeutendsten Bit auf der rechten Seite gezogen. Die
Bedeutung der Symbole innerhalb dieser Wörter und Bytes sind wie folgt:
Vorsatzwörter:
X₈X₇X₆X₅X₄X₃X₂X₁X₀ - Linksseitiger Begrenzungsabstand
T - Testbit, kann zur Feststellung von Fehlern verwendet werden.
C - Kettungsbit, zeigt an, ob dieses Wort dem letzten Schriftzeichenblock vorgesetzt ist.
K - Kernbit, bestimmt die Richtung auf der linken Seite (vom letzten Schriftzeichen weg oder auf
dieses zu).
N₃N₂N₁N₀ - Die Anzahl der Ausgangswörter auf der ersten Rasterlinie des Schriftzeichens.
Ausgangspunkt-Wort:
Y₉Y₈Y₇Y₆Y₅Y₄Y₃Y₂Y₁Y₀ - Der vertikale Abstand zwischen der Schriftzeichengrundlinie und dem Ausgangspunkt (positiv
oder negativ).
S - Undefiniert
D - Tief-Bit (Down bit), bestimmt, in welchem der zwei rechten Quadranten eine folgende Vektorver
schiebung eintreten wird.
X₃X₂X₁X₀ - Die Anzahl von Rasterlinien zwischen dem Auftreten der Steuercode "Beginn einer neuen Linie"
und den tatsächlichen Ausgangspunkten selbst.
Vektorbyte:
Y₃Y₂Y₁Y₀ - Dieser Wert definiert die vertikale Versetzung zwischen dem Beginn und dem Ende eines Vektors.
X₃X₂X₁X₀ - Dies ist die horizontale Versetzung zwischen dem Beginn und dem Ende eines Vektors.
Steuerbyte:
0000 - Diese Bits definieren auf Null gesetzt ein Steuerbyte.
M₃M₂M₁M₀ - Diese vier Bits bilden eine Binärzahl (0 bis 15), die eine Steuerfunktion bezeichnet.
Steuerfunktionen:
Steuerfunktionen sind im gesamten Schriftzeichenblock erforderlich und werden im Steuerbyte mit seinen vier
signifikanten auf Null gesetzten Bits angegeben. Dies gestattet es, daß sechzehn verschiedene Funktionen durch
den numerischen Wert der restlichen vier definiert werden.
0 - Füllwort
1 und 2 - Undefiniert
3 - Beginne zwei Umrisse ohne Zwischenumrisse
4 - Beginne zwei Umrisse unter bereits bestehenden
5 - Beginne vier Umrisse ohne Zwischenumrisse
6 - Beginne vier Umrisse unter bereits bestehenden
7 - Ersetze einen bestehenden Umriß gegen einen neuen Wert, ohne die numerische Ordnung
der Werte oberhalb der Gitterlinie zu verändern (d. h. beende einen und beginne einen
Umriß)
8 - Undefiniert
9 - Endblock
10 und 11 - Undefiniert
12 - Beende zwei Umrisse
13 - Beende vier Umrisse
14 - Ändere die Richtung. Folgende Vektoren treten in anderen Quadranten auf
15 - Verschiebung um 16 Einheiten in vertikaler Richtung ohne horizontale Bewegung.
Fig. 5 und 6 veranschaulichen, wie ein Schriftzeichen unter Verwendung des in Fig. 4 gezeigten Formats
kodiert werden kann. In Fig. 5 ist ein einfaches Schriftzeichen gezeichnet, das eine Anzahl von Ausgangspunk
ten, Endpunkten und dazwischenliegenden Vektoren enthält. Die tatsächliche Kodierung für dieses Schriftzei
chen ist in Fig. 6 linke Spalte, gezeigt. Die Mittelspalte von Fig. 6 erklärt diese Kodierung, und die rechte
Spalte zeigt die Folge, in der die Daten in das Setzgerät eingebracht und durch dieses verwendet werden.
Fig. 7 veranschaulicht ein bevorzugtes Format zur Definition eines Schriftzeichens mit von oben nach unten
gehenden Vektoren (Fig. 1, rechte Seite). Diese Vektoren sind in einem Quadranten durch die X, Y-Koordina
ten des Endes des Vektors bezüglich des Ursprungs des Quadranten spezifiert. Da die Umrisse des Schriftzei
chens von oben nach unten gezeichnet werden, werden nur die zwei unteren Quadranten benutzt. Wie bei dem
Format von Fig. 4 gestatten Steuerkodes eine Quadrantenauswahl und Krümmungsbeginn und -vervollständi
gung. Bei diesem Format ist die Rasterlinie Y = 0 am oberen Teil des Schriftzeichens; die folgenden horizonta
len Rasterlinien erhalten rasterabwärts die folgenden Y-Zahlen.
Ein das Schriftzeichen definierender Datenblock beginnt mit einem Y-Datenwort, das die höchste Y-Aus
gangskoordinate des Schriftzeichens angibt. Dann folgt ein X-Datenwort, das die X-Ausgangskoordinate eines
Umrisses definiert, die Vektoren und die Steuerung für diesen Umriß.
Alle folgenden Umrisse werden in einer solchen Folge angeordnet, daß die Werte des Ausgangspunkts Y in
der Ordnung zunehmender Werte liegen, d. h. der Y-Wert für den nächsten Umriß ist gleich größer als der
Y-Wert für den vorausgehenden Umriß. Es werden also ganze Folgen oder Vektorsequenzen definiert und
vervollständigt, bevor die nächste Folge definiert wird. Haben zwei Ausgangspunkte den gleichen Y-Wert, so
kann jeder Punkt zuerst mit seiner gesamten Vektorfolge aufgeführt werden.
Die Fig. 7B, 7C und 7D zeigen die Formate für das Y-Datenwort, das X-Datenwort bzw. das Vektor- oder
Steuerwort. Diese Formate sind mit dem niedrigstwertigen Bit auf der rechten Seite gezeichnet. Die Wertigkeit
der Symbole innerhalb dieser Wörter und Bytes ist wie folgt:
Y-Datenwort
Y - Diese Angabe definiert die vertikale Lage des Ausgangspunkts.
K - Undefiniert.
X-Datenwort
XN - Diese Angabe definiert die horizontale Lage eines Ausgangspunkts. Der linke Randabstand (LSB)
wird mit 0 definiert.
± - Dieses Vorzeichenbit definiert die Verschiebung von XN relativ zu LSB.
L - Das L-Bit definiert die Richtung des dx des ersten Vektors.
F - Das F-Bit oder "Flare Bit" definiert, welche Vektorneigung durch den Dekodierer bei der Extra
polation des Umrisses eines Schriftzeichens im Rasterbereich unmittelbar über der Linie YN
verwendet wird.
E - Das E-Bit oder Extrapolationsbit definiert, ob Extrapolation in dem Bereich über der Rasterlinie
YN verwendet wird oder nicht.
B - Das B-Bit ist das Begrenzungs-Ein/Aus-Bit und definiert, ob der Umriß die linke (Ein) oder die
rechte (Aus)Begrenzung ist.
Vektor/Steuer-Wort
dydx - Für alle Werte von dy größer als 0 definiert dieses Byte die Neigung des Vektors des Schriftzei
chenumrisses vom Ausgangspunkt (YN, XN) oder vom letzten Vektorendpunkt. Alle Vektoren
werden serienmäßig in der gleichen Reihenfolge angeordnet wie sie auf dem Umriß des Schriftzei
chens auftreten. Der Anfangsvektor liegt in dem MSB, der zweite in den LSB des Wortes.
Steuerfunktionen:
Für alle Werte von dy = 0 definiert dieses Byte einen Steuerkode. Die Steuerung hängt von dem Wert dx, wie im
folgenden angegeben, ab:
0 - Ende des Umrisses. Liegt es in den MSB, dann müssen die LSB mit Nullen aufgefüllt werden.
1 - Umkehrung der dx-Richtung für den nächsten Vektor.
2 - Bestimmt, daß für den durch die vorausgegangenen Y- und X-Datenwörter definierten Aus
gangspunkt keine Verschiebungsvektoren anwendbar sind. Diese Steuerung ist immer in den
MSB angeordnet, wobei die LSB mit Nullen aufgefüllt sind, um einen Steuerkode "Ende des
Umrisses" zu erzeugen.
3 - Bestimmt einen Vektor mit einer horizontalen Verschiebung von 0 Einheiten (einen vertika
len Vektor) und eine vertikale Verschiebung von mehr als 30 Einheiten. Das nächste Datenby
te definiert einen binären Wert der vertikalen Verschiebung. Das Datenbyte weist einen sich
ergebenden Bereich einer vertikalen Verschiebung von 0 bis einschließlich 255 auf, darf
jedoch nicht zwischen 0 und 30 einschließlich verwendet werden.
4 - Definiert einen Vektor mit einer horizontalen Verschiebung von 1 Einheit und einer vertika
len Verschiebung von 30 Einheiten.
5 - Definiert einen Vektor mit einer horizontalen Verschiebung von 1 Einheit und einer vertika
len Verschiebung von 60 Einheiten.
6 - Definiert einen Vektor mit einer horizontalen Verschiebung von 1 Einheit und einer vertika
len Verschiebung von 120 Einheiten.
7 - Definiert eine Reihe von Vektoren, die einem konkaven Umriß folgen.
8 - Das gleiche wie für Funktion 7, jedoch für einen konvexen Umriß.
9 - Das gleiche wie für Funktion 7, jedoch für einen geradlinigen Umriß.
10 - Definiert, ob der Umriß gering oder hochgradig konkav oder konvex ist (dieses Bit wird nur
abgetastet, wenn die Bits 7 oder 8 konkav oder konvex angeben).
11 - Definiert einen Vektor mit einer vertikalen Verschiebung von 1 Einheit oder einer horizonta
len Verschiebung von mehr als 255 Einheiten. Das nächste Datenbyte definiert den Binärwert
einer horizontalen Verschiebung von mehr als 255 Einheiten.
12-14 - Undefiniert.
15 - Definiert einen Vektor mit einer horizontalen Verschiebung von 1 Einheit und einer horizon
talen Verschiebung von mehr als 15 Einheiten. Das nächste Datenbyte definiert den Binärwert
der horizontalen Verschiebung.
Die Fig. 8 und 9 veranschaulichen, wie ein Schriftzeichen mit dem erfindungsgemäßen Kodierverfahren unter
Verwendung des in Fig. 7 gezeigten Formats kodiert werden kann. In Fig. 8 enthält das Schriftzeichen "A" eine
Anzahl von Ausgangspunkten, Endpunkten und dazwischenliegenden Vektoren. Die tatsächliche Kodierung für
dieses Schriftzeichen ist in Fig. 9, linke Spalte, dargestellt. Die rechte Spalte von Fig. 9 erklärt die kodierten
Daten.
Die in Fig. 10 gezeigte Magnetscheibe weist feste Sektoren auf, an denen 32 kleine in regelmäßigem Abstand
um die Mittelöffnung angeordnete fotoelektrisch abtastbare Löcher markiert sind. Ein 33. Loch in der Mitte
zwischen zwei der gleichmäßig angeordneten Löcher bestimmt den Ausgangspunkt. Die Scheibe ist außerdem
konzentrisch in 77 kreisförmige Bahnen unterteilt. Eine Adresse bzw. Stelle auf der Scheibe kann also durch
Bahn und Sektor bestimmt werden.
Fig. 11 zeigt, wie ein oder mehrere Sätze von kodierte Schriftzeichen auf der Magnetscheibe aufgezeichnet
werden können. Zwei spezielle Sektoren auf der Scheibe auf einer besonderen Bahn werden dem Plattenspei
cheretikett und dem Schriftindex (Schriftverzeichnis) zugeordnet. Die kodierte Schriftzeicheninformation kann
gespeichert werden, indem bei jeder beliebigen anderen Adresse auf der Scheibe begonnen werden kann.
Das Plattenspeicheretikett beschreibt den Inhalt der Scheibe in konventionellen arabischen Ziffern, kodiert in
Binärziffern. Der Schriftindex gibt die Anfangsadresse jeder auf der Magnetscheibe aufgezeichneten Schriftart.
Die Schriftartinformation besteht aus einer Schriftzeichen-Nachschlag- und Dicktendatei, gefolgt von Daten
blocks, welche alle in der Schriftart vorhandenen Schriftzeichen definieren. Die Schriftzeichendatenblocks
können das in Fig. 4A oder 7A gezeigte Format haben.
Eine Nachschlag- und Dicktendatei ist in Fig. 12 dargestellt. Die Datei enthält die auf einzelne Schriftzeichen
anwendbaren Daten, die für ein Satzsystem erforderlich sind.
Werden drei Bytes verwendet, um die Daten für jedes Schriftzeichen zu definieren, dann können bis zu 83
Schriftzeichen in einem Sektor beschrieben werden. Jede Schriftzeichen-Dicktengruppe von drei Bytes enthält
eine Schriftzeichen-Nummer bzw. die Schriftzeicheneinheit-Dickte bzw. Kennzeichenbits ("flag bits"). Die
Schriftzeichennummer hängt mit der Form des Schriftzeichens entsprechend einer Eingabe-Tastatur zusammen.
Die Kennzeichenbits B, C, D sind Bits, die besondere Eigenschaften des Schriftzeichens definieren, z. B. ein
Grundakzent, eine auf mittlerer Höhe angeglichener Akzent oder ein hochgesetztes Schriftzeichen (Hochzahl).
Die Schritzeichen-Nachschlag- und Dicktendatei schließt mit einer Kettungsadresse, die die Adresse des
nächsten Sektors der Schriftzeichendicktendatei oder des ersten Sektors der kodierten Schriftzeichendaten
enthält.
Fig. 13 zeigt die Art von Daten, um ein gemäß Fig. 1-12 kodiertes Schriftzeichen mittels eines Schriftzei
chengenerators mit einer Kathodenstrahlröhre, einem Laserstrahl oder einem anderen Lichtpunktabtaster mit
Strichen darzustellen. Insbesondere erfordert der Schriftzeichengenerator Daten in Form von Umschaltwerten
auf jeder Abtastlinie. Im Falle vertikaler Abtastlinien, wie in Fig. 13 dargestellt, sind dies die gezeichneten
Y-Werte der Ein/Aus-Umschalt-Punkte auf jeder Abtastlinie. Die Werte werden auf die Schriftzeichengrundli
nie bezogen, wobei die positiven Werte von Y über die negativen Werte unter der Grundlinie angeordnet sind.
Der oberste Wert des höchsten abgebildeten Segments in einer Abtastlinie wird markiert, so daß der Schriftzei
chengenerator sofort weiterfahren und in die nächste Linie abtasten kann.
In Fig. 13 wird in der ersten (äußerst linken) Abtastlinie 40 der Abtaststrahl vertikal aufwärts geführt und
verläuft mit konstanter Geschwindigkeit von der Grundlinie. Der Strahl bleibt abgeschaltet, bis er eine Entfer
nung Y 0 von der Grundlinie erreicht hat. An diesem Punkt wird der Strahl eingeschaltet und bleibt an, bis er
eine Entfernung Y 1 von der Grundlinie erreicht hat. Die Abtastung kann dann mit abgeschaltetem Strahl
fortgeführt werden, bie sie den oberen Teil der Rastermatrix erreicht. Vorzugsweise wird der Strahl jedoch
sofort unter Y 2 oder zur Grundlinie zurückgeführt und beginnt mit der zweiten Abtastlinie 42. Diese Rückfüh
rung wird durch Zuordnung und "Zeilenende"-Kennzeichnung zu den Daten Y 1 ausgelöst.
Die vom Schriftzeichengenerator geforderte Datenfolge ist also Y 0, Y 1 , Y 2, Y 3 , Y 4, Y 5 , Y 6, Y 7 , Y 8, Y 9,
Y 10, Y 11 , Y 12, Y 13, Y 14, Y 15 usw., wobei die Zeilenende-Kennzeichnung in dieser Folge durch die Kursiv
schrift Unterstreichung gegeben ist. Da die Daten gespeichert sind und dem Setzgerät in Ausgangspunkt- und
Vektorumriß-Format zugeführt werden, erfordert das Setzgerät einen Kodeumwandler, um dieses Vektorfor
mat in das in Fig. 13 gezeigte Umschaltformat umzuwandeln. Bei der im folgenden beschriebenen Ausführungs
form kann der Kodeumwandler das in den Fig. 6 bis 8 gezeigte Format in ein vertikal abgetastetes Einzelschrift
zeichen-Umschaltformat übersetzen.
Bei der Durchführung der Übersetzung vom Vektorformat in das Umschaltformat sollte der Kodeumwandler
vorzugsweise in der Lage sein, Normalisierung, Interpolation und Durchschnittsermittlung durchzuführen.
Diese drei Wirkungsweisen sind in den Fig. 14 bis 17 dargestellt.
Unter der Annahme, daß die Ausgangslösung (Abtastliniendichte) des Schriftzeichengenerators feststeht,
müssen die Schriftzeichen horizontal normalisiert werden, indem die Anzahl der zur Definition eines Schriftzei
chens erforderlichen Abtastlinien angepaßt wird. Die Fig. 14 und 15 veranschaulichen dieses Prinzip, wobei die
Dickte des Schriftzeichens durch gleichmäßiges Verteilen der erforderlichen Anzahl von Abtastlinien über das
Schriftzeichen variiert wird.
Vertikale Normalisierung kann durch einen Vertikalablenkverstärker oder durch Vervielfachung der Um
schaltwerte Y 0, Y 1, Y 2 . . . durch einen digitalen Normierungsfaktor erreicht werden.
Für Schriftzeichen größerer Punktgröße kann es notwendig sein zu interpolieren, um den Umschaltungspunkt
auf bestimmten Abtastlinien zu finden. Bevorzugt wird eine direkte Interpolation zur Heraufsetzung der digitali
sierten Auflösung verwendet.
Der Kodeumwandler führt weitere gleichmäßig beabstandete vertikele Linien zwischen jedes Paar Digitali
sierungslinien ein und verwendet direkte Interpolation, um die Umschaltwerte, wie in Fig. 16 gezeigt, abzu
schätzen.
In dieser Abbildung sind die durchgehenden Linien die ursprüngliche Digitalisierungsauflösung und die
unterbrochenen Linien die zusätzlichen interpolierten Stellungen. Eine "0" steht für einen aus einer Vektordeko
dirung erhaltenen Digitalisierungspunkt, ein "X" bedeutet einen interpolierten Punkt. Wären alle zusätzlichen
Linien Ausgang bei der konstanten Ausgangsauflösung, dann würde das Schriftzeichen viermal größer als die
ursprüngliche Größe erscheinen (beispielsweise 128 gegenüber 32). Es ist daher möglich, Linien über den
Schritzeichen periodisch auszulassen, damit jede gewünschte Schritzeichendickte unter dieser Größe erzeugt
werden kann.
Uner einem bestimmten Schriftgrad kann eine Mittelwertbildung zur Herabsetzung der Daten verwendet
werden. Hierzu kann der Kodeumwandler Umschaltwerte erzeugen, die den arithmetischen Durchschnitt der
Digitalisierungwerte zwischen Ausgangsabtastlinien, wie in Fig. 17 gezeigt, darstellen.
Das Setzgerät gemäß Fig. 18 wird durch eine Zentralprozessoreinheit 50 direkt über eine Datensammellei
tung 54 gesteuert. Der Betrieb wird durch ein Programm bestimmt, das in einem Hauptspeicher 56 an einer
Hauptsammelleitung 52 gespeichert ist.
Die Betriebsanweisungen für die Maschine werden von einem Lochstreifenleser, einer Bedienungseinrichtung
an der Frontplatte 60 oder einer on-line-Schnittstelle 62 erhalten. Alle diese Elemente sind an die Datensammel
leitung 52 geschaltet ebenso wie die Magnetscheiben-Lese/Schreibeinheit 64, die die digitalisierten Schriften
liefert.
Eine Hilfssammelleitungsschnittstelle und ein Hifssammelleitungspuffer 66 steuern die der Hilfssammellei
tung 54 zugeordneten Komponenten. Die Schnittstelle und die Steuereinheit 66 wird wiederum durch die
Zentralprozessoreinheit 50 über die Hauptsammelleitung 52 gesteuert.
Die der Hilfssammelleitung 54 zugeordneten Komponenten sind für die Generierung der Schriftzeichen
vorantwortlich. Der Kodeumwandler 70 entnimmt zusammengefaßte Schriftsatzdaten von einem RAM- oder
PROM-Schriftspeicher 72 und wandelt sie in ein ausgedehntes Umschaltwertformat um. Ein Schriftzeichengene
rator 74 empfängt diese Daten und erzeugt ein Strahlschaltsignal auf der Leitung 84 sowie Analogspannungen,
die X- und Y-Ablenkungen auf einer Kathodenstrahlröhre darstellen. Diese Analogspannungen werden durch
einen Videoablenkverstärker 76 verstärkt. Die Schriftzeichen werden schließlich auf einer Kathodenstrahlröhre
78 mit Ablenkspulen 80 erzeugt. Der Strahl der Kathodenstrahlröhre wird in den entsprechenden Momenten
während des Abtastens durch das auf der Leitung 84 vom Schriftzeichengenerator 74 erhaltene Signal ein- und
ausgeschaltet.
Der Computer 50 steuert die Funktionen der verschiedenen Elemente des Geräts. Zunächst wird die Auswahl
der Schriftart, der Punktgröße, der Schriftzeichen und der Stellungen der Schriftzeichen durch den Lochstreifen
leser 58 gelesen und im Hauptspeicher 56 gespeichert. Die kodierten Daten, die die einzelnen Schriftzeichen der
gewählten Schriftart definieren, werden sodann durch die Lese/Scheibeinheit 64 von einer Magnetscheibe
abgelesen und im Direktzugriffspeicher RAM 72 gespeichert.
Auf Anweisung des Computers 50 empfängt der Kodeumwandler 70 kodierte Daten für ein einzelnes Schrift
zeichen aus dem RAM 72 und errechnet die Strahlschaltpunkte für jede aufeinanderfolgende Rasterzeile. Der
Kodeumwandler verfolgt und aktualisiert auch die X- und Y-Rasterkoordinaten. Zur Unterstützung der Berech
nung der Strahlschaltpunkte dient ein programmierbarer Nur-Lese-Speicher innerhalb des Umwandlers als
Nachschlagtabelle für die Steigung eines jeden definierten Vektors.
Das Schriftzeichenabbildungssystem mit den Elementen 74 bis 90 bildet die aufeinanderfolgenden Schriftzei
chenzeilen auf lichtempfindlichen Film ab. Auf Anweisung des Computers 50 transportiert das System nach
Vervollständigung einer jeden Zeile den Film weiter.
Die Schriftzeichengenerierung geschieht wie folgt: Der Ausgangspunkt und die Vektordaten, die sich auf den
Teil des Schriftzeichens beziehen, der auf einer vertikalen Abtastzeile abgebildet werden soll, werden im RAM
72 adressiert (aufgerufen) und in dem Kodeumwandler-Eingangspuffer festgehalten. Während jede einzelne
Abtastlinie abgebildet wird, werden die folgenden Daten, die Ausgangspunkte und Vektoren für die nächstfol
genden Zeilen definieren, abgerufen. Während sich die Vektoren in der X-Richtung über eine Anzahl vertikaler
Abtastzeilen ausdehnen können und dies normalerweise auch tun, wird ein neuer Vektor nur dann aufgerufen,
wenn der (oder die) zuvor gespeicherten Vektor(en) zur Definition der nächsten Abtastzeile nicht ausreichen.
Die Berechnung der Kathodenstrahlröhren-Strahlschaltpunkte für die nächste Abtastzeile folgt dann unter
Verwendung der in dem Vektorneigungsspeicher PROM gespeicherten Neigungen. Wie in Fig. 19A dargestellt,
werden die Y-Umschaltstellungen in einem Registerstapel 91 gespeichert. Die Y-Umschaltwerte für jede Ab
tastzeile werden sodann in aufeinanderfolgende Y-Register im Stapel eingegeben. Der höchste Y-Wert in der
Abtastlinie wird mit einem ENDSC-Bit gekennzeichnet, damit angedeutet ist, daß die Abtastung zurückgesetzt
werden kann. Der Ausgang des niedrigsten Y-Registers im Stapel wird durch einen Digital-Analog-Umwandler
92 im Schriftzeichengenerator 74 in einen Analogwert umgewandelt. Der Schriftzeichengenerator weist außer
dem einen Sägezahngenerator 93 auf. Ein Vergleicher 94, der so geschaltet ist, daß er den Zustand eines
Flip-Flop-Kippschalters 95 ändert, schaltet den Strahl der Kathodenstrahlröhre ein bzw. aus, wenn der Ausgang
des Sägezahngenerators einen Analogwert erreicht, der gleich dem D-A-Ausgang ist, und veranlaßt den Stapel
91, den nächst höhren Y-Abfangwert abzurufen. Ist das ENDSC-Bit vorhanden, wenn eine Strahlumschaltung
eintritt, so daß ein Signal auf der Leitung 96 liegt, dann wird der Sägezahngenerator 93 zurückgesetzt, so daß er
eine Y-Ablenkspannung erzeugt, die etwas geringer ist als die des nächstfolgenden Y-Abfangwerts. Das vermei
det überschüssigen Rücklauf und erhöht die Setzgeschwindigkeit.
Der Sägezahngenerator 93 verringert seine Ausgangsspannung rasch und mit konstanter Geschwindigkeit,
wenn an seinem Rücklauf-Eingang ein Signal vorhanden ist. Dieses Rücklaufsignal bleibt eingeschaltet, bis der
Ausgang des Sägezahngenerators unter den niedrigsten Y-Umschaltwert für die nächste Abtastzeile gefallen ist.
Das Rücklaufsignal wird durch eine logische Schaltung mit einer UND-Torschaltung 97, einem Umwandler 98
und einem Flip-Flop 99 erzeugt, die einen Eingang vom Vergleicher 94 und dem ENDSC-Signal auf der Leitung
96 erhalten.
Der Betrieb der Rücklauf-Logikschaltung ist in Fig. 19B veranschaulicht. Diese Figur zeigt die Y-Ablenk
spannung der Kathodenstrahlröhre, die durch den Sägezahngenerator 93 für mehrere Striche des in Fig. 13
gezeigten "Q" erzeugt wird. Zu Beginn des ersten Strichs 43 werden die Y-Abfangwerte Y 6 und Y 7 in das
niedrigste bzw. nächstniedrigste Y-Register im FIFO-Stapel 91 eingeführt. Da der Ausgang des Sägezahngene
rators an einem Punkt etwas unterhalb der Y 6 äquivalenten Analogspannung beginnt, erzeugt der Vergleicher
94 keinen Ausgang. Erreicht jedoch die Y-Ablenkspannung die Y 6-Werte, dann erzeugt der Vergleicher 94 ein
Signal, das den Kippschalter 95 von ein in aus schaltet und den nächsten Y-Wert, Y 7, im FIFO-Stapel 91 abruft.
Die Y-Ablenkspannung steigt kontinuierlich an, bis sie eine Spannung äquivalent Y 7 erreicht.
Da der nächste Y-Wert erheblich niedriger ist als die Y-Ablenkspannung, erzeugt der Vergleicher 94
weiterhin ein Signal, bis der Sägezahngeneratorausgang herabgesetzt ist. Da ein ENDSC-Bit mit Y 7 verbunden
ist, ist ein Signal auf der Leitung 96 vorhanden. Der Ausgang des Vergleichers 94 und das Signal auf der Leitung
96 triggern die UND-Torschaltung 97 und setzen das Flip-Flop 99 zur Erzeugung eines Rücklaufsignals. Ist der
Ausgang des Sägezahngenerators 93 unter den Y-Wert gefallen, dann fällt der Ausgang des Vergleichers 94 ab
und setzt das Flip-Flop 99 über den Umwandler 98. Dies schaltet das Rücklaufsignal ab und ermöglicht es dem
Sägezahngenerator, den Strich 44 heraufzufahren. Die Y-Ablenkspannung erreicht daraufhin sofort den
Y 8-Wert, wodurch der Vergleicher 94 wiederum ein Ausgangssignal erzeugt, das den Strahl von aus in ein
schaltet. Der Strahl wird wiederum ausgeschaltet, wenn die Y-Ablenkspannung Y 9 erreicht, wird eingeschaltet,
wenn sie Y 10 erreicht und wiederum ausgeschaltet, wenn sie Y 11erreicht. Da ein ENDSC-Bit mit Y 11
verbunden ist, wird der Rücklaufprozeß wiederholt, damit der Strich 45 begonnen werden kann.
Fig. 20 gibt die verschiedenen Eingänge und Ausgänge des Kodeumwandlers 70. Die Signale zur und von der
Hilfssammelleitung 54 sind links, die Signale zum und vom Schriftzeichengenerator 74 sind rechts dargestellt.
Diese Signale werden wie folgt definiert:
XDB - 16-Bit-Datenwort, das das abzubildende Schriftzeichen definiert, parallel vom RAM 72 empfangen.
XBMS - 3 Steuereingänge, deren Zustände durch den Computer 50 bestimmt werden, veranlassen und steuern die
Abläufe im Kodeumwandler.
XRST - Ein Signalsteuereingang, der vom Computer 50 ausgeht, wird verwendet, um den Kodeumwandler unab
hängig von den Zuständen der anderen Signale zurückzusetzen.
CYCREQ/CYCACK - Dateneingang geschieht nach Empfang eines XMBS-Signals. Der Kodeumwandler übernimmt dann die
Steuerung des Austausches von Synchronisationsimpulsen und liefert ein Signal auf CYCREQ, sobald es ein
Datenwort benötigt. Das Wort wird festgehalten, wenn das Datenwort einem Signal auf CYCACK ent
spricht, und das CYCREQ-Signal wird fallengelassen.
EOC - Hat der Kodeumwandler die Verarbeitung eines Schriftzeichens abgeschlossen, dann nimmt er einen
Leerlaufzustand an, bis der Schriftzeichengenerator ein EMPTY-Signal aussendet. Der Kodeumwandler
liefert dann das Signal auf EOC, bis das XBMS-Signal, das den Dateneingang anzeigt, entfernt ist.
SDATA - 11-Bit-Datenwörter, die Umschaltwerte darstellen, werden dem Schriftzeichengenerator in serieller Form
zugeleitet.
SERCK - Der Kodeumwandler erzeugt ein 5-MHz-Taktsignal, das dem Schriftzeichengenerator zur Synchronisie
rung der Bits im Ausgangsdatenwort (SDATA) zugeleitet wird.
ENDSC - Bezog sich das Ausgangsdatenwort auf die höchste Umrißkurve des Schriftzeichens an diesem Punkt, so
wird dem Schriftzeichengenerator 74 auf dieser Leitung ein Signal zugeleitet, um die Abtastung (Strich) zu
beenden.
DATRQ/DATAV - Der Schriftzeichengenerator fordert Daten an, indem er ein Signal auf DATRQ abgibt. Der Kodeumwand
ler antwortet mit einem Signal auf DATAV, wenn das Ausgangsdatenwort verfügbar ist. Die Datenbits
werden dann auf SDATA über die folgenden 11 Taktzyklen übertragen, und das Signal auf DATAV wird
fallengelassen.
STEPDN/STEPUP - Der leere Raum an der Vorderkante eines Schriftzeichens wird durch den Kodeumwandler normiert. Die
Breite des Raums wird dem Schriftzeichengenerator als eine Reihe von Impulsen übertragen. Jeder Impuls
entspricht einer Bewegung einer Zeilenabtastung (Strich). Die Seitenbegrenzung kann vom vorausgehen
den Schriftzeichen weg oder auf dieses zu bewegt werden. Die Breite des Raums und die Richtung werden
in den Schriftzeichendaten spezifiziert. Impulse erscheinen auf STEPUP zur Vergrößerung der Seitenbe
grenzung und STEPDN für ein Schriftzeichen mit Vorsprüngen. Die Impulse treten zu Beginn der Verarbei
tung des Schriftzeichens auf, bevor dem Schriftzeichengenerator irgendwelche Datenwörter zugeführt
wurden.
EMPTY - Der Schriftzeichengenerator liefert ein EMPTY-Signal, wenn sein Ausgangspuffer leer ist. Dieses wird
durch den Kodeumwandler verwendet, um festzustellen, wenn ein Schriftzeichen vollständig gezeichnet ist.
Fig. 21 ist ein Blockdiagramm, das die Elemente des Kodeumwandlers darstellt. Das Element 100, das als
Hauptsteuerungseinrichtung bezeichnet ist, ist in Fig. 22 getrennt dargestellt. Die Hauptsteuerungseinrichtung
100 erhält 16 Eingänge von einem Steuerdekodierer 102 und vier XBMS (Signale 0, 1, 2) und XRST entsprechen
de Eingänge. Der Dekodierer 102 erzeugt die 7 Steuereingänge von 8 Signalen, die Ausgangswörter und
Steuerbytes darstellen und von einem Eingangspuffer 104 erhalten werden. Die Daten werden von den 16
XDB-Leitungen in den Eingangspuffer geklinkt.
Die in Fig. 22 dargestellte Hauptsteuerungseinrichtung erzeugt 46 Ausgangssignale zur Steuerung des Be
triebs des Kodeumwandlers.
Diese Signale werden den verschiedenen logischen Elementen des Umwandlers so zugeführt, daß die Signale
in einer vorgeschriebenen Folge eingebracht und festgehalten werden. Die Hauptsteuerungseinrichtung besteht
aus einem Zustands-PROM 106, der den nächsten Zustand des Kodeumwandlers aus dem augenblicklichen
Zustand und den Bedingungen auf 16 Steuereingängen bestimmt. Der Zustand-PROM wird durch 4 Signale von
einem Multiplexer 108 und 5 Signale von einer Verriegelung 110 adressiert. Der Augang des Zustands-PROM
wird der Verriegelung 110 zugeführt, die wiederum mit einem Zustandsdecodierer 112 und einem Pseudo-Zu
stands-PROM 114 verbunden ist.
Der Pseudo-Zustands-PROM 114 kann seinen Ausgangszustand während eines Verarbeitungszyklus modifi
zieren, wenn der augenblickliche Zustand und seine Steuereingänge dies fordern. Zusätzlich zu dem Zustands
ausgang von der Verriegelung 110 erhält der Pseudo-Zustands-PROM die 4 Steuersignale grundsätzlich vom
Dekodierer 102. Von den 8 Ausgängen des Pseudo-Zustands-PROMs 114 werden 5 durch einen Pseudo-Zu
standsdekodierer dekodiert um 24 Steuerausgänge zu erzeugen.
Vektorverarbeitung
Für die Vektorverarbeitung sind fünf Parameter gespeichert. Dies sind:
- 1. Interceptwert (11 Bits): Der Interceptwert, der im Interceptspeicher 120 gespeichert ist, ist der Y-Wert
aufeinanderfolgender Vektorenden um einen Umriß. Das heißt:
Y₀ = Δ Y Ausgangspunkt ( Δ X N, Δ Y N ist der N-te Vektor)
Y₁ = Y₀ ± Δ Y₀
Y₂ = Y₁ ± Δ Y₁
·
·
·
Y N = Y N-1 ± Δ Y N-1
- 2. X-Werte (4-Bits): Der Δ X-Wert, der im Δ X-Speicher 122 gespeichert ist, ist der horizontale Abstand vom
rechten Ende des laufenden Vektors. Für aufeinanderfolgende Berechnungen der Rasterzeilen gilt also:
Δ X = Δ X N (neuer Vektor beginnt hier)
- Δ X = 1(Ende des Vektors).
- 3. Δ Y-Wert (5 Bits): Der Δ Y-Wert, der im Δ Y-Speicher 124 gespeichert ist, ist der annähernde vertikale
Abstand vom rechten Ende des laufenden Sektors. Die vier wichtigsten Bits werden als Eingangs-Δ Y N-Wert
und das wichtigste Bit wird durch eine Nachschlagtabelle zur Heraufsetzung der Genauigkeit eingebracht.
- 4. Zeichenbit (1 Bit): Das Zeichenbit, das im Steuerbitspeicher 126 gespeichert ist, ist 0 für einen Vektor in
einem (beispielsweis dem oberen) Quadranten und eins für einen Vektor im anderen (beispielsweise
unteren) Quadranten.
- 5. Gültiges Bit (1 Bit): Das gültige Bit, das im Steuerbitspeicher 126 gespeichert ist, ist 0 für einen Umschalt
wert, der ein neuer Ausgangspunkt-Y-Wert ohne eine Vektormodifizierung ist, und eins für einen modifi
zierten Umschaltwert, der zur Berechnung eines Ausgangswerts verwendet werden kann.
Mit Ausnahme der A-, B- und C-Leitungsschleifen, die den Abfangspeicher 120, einen Akkumulator 128 und
einen Korrekturspeicher umfassen, wird das Zeichen ignoriert, und es werden nur positive Werte berücksichtigt.
Das Zeichenbit wird, wenn erforderlich, am Akkumulator eingebracht.
Die Berechnung beginnt, wenn der Ausgangspunkt-Y-Wert in den Abfangspeicher 120 eingebracht ist und der
Δ X-Speicher 122 die Verschiebung am Beginn des ersten Vektors hält und das gültige Bit auf Null gesetzt ist.
Während jede Rasterlinie verarbeitet wird, wird der X-Speicher vermindert; wenn er "1" erreicht, signalisiert er
nach einem Vektorbyte. Der Abfangspeicher 120 wird mit dem Y-Wert aktualisiert, und Δ X und Δ Y werden
gespeichert. Das gültige Bit wird auf 1 gesetzt, wodurch die Daten für den Ausgang verfügbar werden. Dieser
Berechnungsprozeß ist in Fig. 23 veranschaulicht. Auf den folgenden Rasterlinien wird der Δ X-Speicher ver
mindert und Δ Y wird um den Ausgang eines Vektorneigung-PROMs 129 verringert. Der PROM wird durch Δ X
und Δ Y adressiert und gibt einen normalisierten Δ Y-Wert, δ y, ab. δ y wird durch einen Interpolations-PROM 132
invertiert, der in dieser Betriebsart nur als Komplementpuffer wirkt. Dieser Ausgang wird dann durch einen
Addierer 134 Δ Y addiert und wieder in den Δ Y-Speicher 124 eingegeben.
Alle Kodeumwandlerspeicher sind aus 16 Dierektzugriffspeichern zusammengesetzt. Die Direktzugriffspei
cher werden parallel von einem 4 Bit mal 16 großen FIFO-Register adressiert. Dieses Register enthält die
Direktzugriffspeicher-Adressen für die laufenden Umrisse in der Reihenfolge zunehmender Interceptwerte. Der
FIFO arbeitet normalerweise so, daß seine Ausgänge mit seinen Eingängen verbunden sind, so daß die Adressen
zirkulieren. Für jeden Vektorverarbeitungsschritt wird eine Adresse in das Ausgangsregister des FIFO taktwei
se eingegeben, und die vorausgehende Adresse wird dem FIFO-Eingang zugeführt.
Neue Adressen bei Ausgangspunkten können vom neuen Adressenzähler in die Schleife eingebracht und dem
FIFO-Stapel zugefügt werden. An Endumrißpunkten wird die Adresse nicht in den FIFO zurückgeführt und so
vom Stapel gelöscht.
Ursprünglich wird der neue 4-Bit-Adressenzähler auf eine Maximalzählung von 15 eingestellt und bei jedem
Auftreten eines Ausgangspunkts vermindert. Bei jeder Stelle im Direktzugriffspeicher, die Umrißinformation
enthält, ist das Nicht-frei-Bit auf eins eingestellt. Das Nicht-frei-Bit (1 Bit), das im Steuerbitspeicherr 126 gespei
chert ist, ist 0 für eine leere Stelle im Direktzugriffspeicher und eins für eine besetzte Stelle. Ein Steuercode-
"Umrißende" verursacht, daß das Nicht-frei-Bit auf 0 zurückgesetzt wird.
Treten in einem Schriftzeichen 16 Umrisse auf, dann muß der neue Adressenzähler auf Null vermindert
werden. Jedem weiteren Ausgangspunkt muß mindestens eine gleiche Anzahl von Umrißend-Codes vorausge
hen, da nicht mehr als 16 Umrisse gleichzeitig durch den Kodeumwandler verarbeitet werden können. Bei
Eingang eines solchen Code "Umrißanfang" adressiert die Hauptsteuerung sequentiell die Stellen im Direktzu
griffspeicher, indem der neue Adressenzähler vermindert wird, bis eine Adresse gefunden ist, bei der das Nicht-
frei-Bit auf 0 gesetzt ist. Diese Adresse wird dann in den FIFO-Stapel eingebracht und für den neuen Umriß
verwendet.
Der FIFO kann folglich einen Stapel variabler Länge mit nicht-sequentiellen Werten enthalten, die den
Adressen der laufenden Umrisse im Direktzugriffspeicher entsprechen. Die Reihenfolge, in der Ausgangspunkt
codes und Vektorcodes in den Schriftzeichendaten auftreten, stellt sicher, daß die Adressen in den Stapel
eingebracht werden und so den Direktzugriffspeichern in der richtigen Reihenfolge eingegeben werden, daß
zunehmende Umschaltwerte am Ausgang erzeugt werden.
Dieses Direktzugriffspeicher-Adressiersystem bietet ein rasches und flexibles Verfahren zur zyklischen Verar
beitung einer variablen Anzahl von Umrissen, wobei eine korrekte Reihenfolge ohne zusätzliche Information
aufrechterhalten wird.
Maßstabänderung (Normalisierung)
Ein Wert, der die Zeichenvorratsbreite in Punkten darstellt, wird in einen Normierer 136 gebracht, bevor die
Vektorverarbeitung eingeleitet wird. Aufgabe des Normierers ist die horizontale Maßstabänderung des Schrift
zeichens durch Bestimmung des Punktes, an dem Y-Werte dem Ausgangspuffer 138 zur seriellen Übertragung
zum Schriftzeichengenerator transportiert werden müssen. Der Normierer 136 informiert die Hauptsteuerung
100, ab die nächsten Rasterzeilen zu berechnen sind oder die laufenden Y-Werte ausgegeben werden sollen.
Sollen Y-Werte in den Ausgangspuffer gesetzt werden, dann liefert er entweder die Interpolationsadresse oder
den Durchschnittskalenfaktor.
Der Normierer arbeitet mit wesentlich höherer Auflösung als der Rest des Kodeumwandlers, damit eine hohe
Genauigkeit gerantiert wird.
Ist die Vektorauflösung X Linien/Geviert, dann arbeitet der Normierer mit 16 X Linien/Geviert. Die Erzeu
gung eines Schriftzeichens bei einer bestimmten Ausgangsgröße mit einer fixierten Ausgangsstrichauflösung
kann W Linien/Geviert erfordern. So approximiert der Normierer den Bruch 16X/W, der der Anzahl der
Normierer-Linien zwischen jeder erforderlichen Ausgangszeile entspricht. Dies wird durch wiederholtes ab
wechselndes Selektieren der ganzen Zahl unterhalb 16X/W und der ganzen Zahl oberhalb 16X/W für verschie
dene Zeiten erreicht. Ein Vier-Phasenzyklus wird bei jeder zweimal auftretenden ganzen Zahl und bei unter
schiedlicher Anzahl von Wiederholungen in jeder Phase verwendet. Werden die Anzahlen der Wiederholungen
durch die Zahlen N₀, N₁, N₂ und N₃ und die ganze Zahl unter 16 X/W durch M dargestellt, dann kann die
Annäherung wie folgt dargestellt werden:
Ein besonderer Fall tritt ein, wenn 16 X/W selbst eine ganze Zahl ist; dann wird nur eine einzige Zahl benutzt,
und die Anzahl der Wiederholungen ist belanglos.
Der Normierer ist in Fig. 27 dargestellt. Das Satzbreiteregister enthält den konstanten Wert der durch den
Computer gelieferten Breite. Dieser wird zur Adressierung zweier PROM-Nachschlagtabellen benutzt. Eine
enthält die Anzahl der Linien (M) zwischen jeder Ausgangslinie, die die ganzen Zahlen unterhalb und oberhalb
des erforderlichen Bruchs sind. Das weniger bedeutende der zwei Bits, das die Phasenzahl (P) definiert, wird in
der Adresse verwendet, um zwischen den zwei ganzen Zahlen für jeden Satzbreitenwert zu wählen. Die andere
Tabelle enthält die Anzahl der Wiederholungen (N). Diese wird zusätzlich durch die beiden Bits der Phasenzahl
adressiert, so daß verschiedene Anzahlen von Wiederholungen in allen vier Phasen möglich sind.
Der Ausgang von der Linienzahl-Tabelle wird durch einen Addierer geschickt und getrennt, wobei die 4
unbedeutendsten Bits in der Restverriegelung bleiben und die vier wichtigsten Bits in den Linienzähler einge
bracht werden. Der Wert (L) im Linienzähler entspricht der Linienzahl bei der Vektorauflösung zwischen jedem
aufeinanderfolgenden Ausgang, da das Abstreifen der vier unbedeutendsten Bits effektiv durch 16 teilt. Der
Ausgang von der Tabelle der Zahl der Wiederholungen wird dem Wiederholungs-Zähler zugeführt, wenn seine
Zählung (R) Null erreicht. Der in der Tabelle gespeicherte Wert ist also eins weniger als die Anzahl der
erforderlichen Wiederholungen.
Der Betrieb des Normierers ist durch das Flußdiagramm in Fig. 28 dargestellt. Der Normierer wird zu Beginn
eines jeden Schriftzeichens ausgelöst und dann in einzelne Zyklen getriggert, und zwar auf Anforderung von der
Hauptsteuerungseinrichtung, welche ihrerseits das Steuersignal "Ausgabe-Linie" abtastet.
Die Verwendung des Normierers innerhalb der Kodeumwandlungs-Verarbeitungsvorägnge ist durch das
Flußdiagramm von Fig. 24 dargestellt. Der Normierer wird am Ende der Verarbeitung einer jeden Rasterlinie
des Schriftzeichens und nach Absendung der Werte für jede Ausgangsabtastung zyklisch wiederholt. Der
abgestastete Zustand des Ausgabe-Linie-Signals bestimmt, welche Linie gebildet wird. Es folgt, daß jeder Zyklus
eines Normierers nach einer Rasterlinienberechnung den Linienzähler vermindert und jeder Zyklus eines
Normierers nach einem Ausgabevorgang den Linienzähler auflädt. Bei kleinen Punktgrößen wird die
"Nein"-Schleife häufiger benutzt, da mehrere Rasterlinien zwischen den Ausgabelinien auftreten. Bei großen
Punktgrößen jedoch wird die "Ja"-Schleife häufiger verwendet, da mehrere Ausgabelinien zwischen den Raster
linien auftreten.
Die Interpolationsadresse wird einfach durch die zwei bedeutsamsten Bits der Restverriegelung geliefert. Dies
deutet an, welche der Interpolationsleitungen erforderlich ist.
Der durchschnittliche Maßstabsfaktor bestimmt das den δ y-Werten beim Aufbau des Korrekturausdrucks
gegebene "Gewicht". Das Wichten hängt von der Gesamtzahl der Werte ab, deren Durchschnitt zu ermitteln ist,
und welches spezielle w y innerhalb des Gesamtwerts verarbeitet wird. Bei kleinen Ausgangsgrößen, bei denen
Durchschnittsermittlung verwendet wird, ist eine sehr hohe Genauigkeit unnötig. So werden nur zwei Bits
verwendet, um die Gesamtzahl der Werte zu definieren (wobei der Linienzähler-Eingang das am wenigsten
bedeutsame Bit ignoriert), und der Ausgang des Linienzählers bestimmt, welches spezielle δ y verarbeitet wird.
Eine PROM-Nachschlagtabelle wird durch diese sechs Leitungen adressiert, und 1 von 8 Skalenfaktoren wird
ausgewählt.
Interpolierter Ausgang
Bei Punktgrößen, bei denen Interpolation verwendet wird, gibt der Kodeumwandler Werte aus, die aus
direkter Inerpolation zwischen den Rasterlinien errechnet sind. Dieser Interpolationsprozeß ist in Fig. 25
dargestellt.
Der Interceptspeicher 120 hält den absoluten Y-Wert des Endes des laufenden Vektors. Ein Δ Y-Speicher 124
hält die Differenz zwischen dem Abfangwert und dem Y-Wert bei der letzten Rasterlinie. Der Normierer 136
liefert eine Interpolationsadresse an den Interpolations-PROM 132, die mit δ y auch vom Vektorsteigungs-
PROM 129 geliefert wird. Der Ausgang des Interpolations-PROM 132, w y₁, ist ein Teil des für die Inerpolations
stelle erforderlichen δ y. Dies wird durch den Addierer 134 von Δ Y subtrahiert und erscheint auf der D-Leitung.
Es wird dem Akkumulator 128 über die A-Leitung zugeleitet, und die B-Leitung trägt den Ausgang des
Abfangspeichers 120. Dei C-Leitung überträgt den korrekten Ausgangswert zum Ausgangspuffer 138.
Der Ausgangspuffer hält den errechneten Wert, bis der Schriftzeichengenerator anzeigt, daß er fertig ist, es zu
empfangen. Die Serienübertragung wird dann durchgeführt, und die nächste Ausgangsberechnung kann begin
nen. Ist der übertragene Wert der für den höchsten laufenden Umriß, dann kennzeichnet der Kodeumwandler
den Schriftzeichengenerator nach der Übertragung auf der ENDSC-Steuerleitung.
Durchschnitts-Ausgang
Bei kleinen Punktgrößen, bei denen mehr als drei Rasterlinien zwischen jeder Ausgabelinie liegen, kann ein
Durchschnittsalgorithmus verwendet werden, um die Ausgabe-Y-Werte zu erreichen. Für diesen Zweck wird
der Korrekturspeicher 130 verwendet. Dieser Speicher hält einen Korrekturwert, der für den Wert im Intercept
speicher 120 angewandt wird, um den Ausgabewert zu erzeugen. Das Mittelwertverfahren ignoriert Interpola
tionslinienadressen und liefert Ausgaben nur auf Integralrasterlinienwert.
Die Berechnung basiert auf der Gleichung für das arithmetische Mittel der Werte Y₀ bis Y n-1; es gilt
Der Ausdruck in den eckigen Klammern ist der Korrekturausdruck. Der Durchschnitt wird herausgearbeitet,
indem die Y-Werte auf jeder Rasterlinie berücksichtigt werden und deren Durchschnitt zwischen den Ausgabeli
nien errechnet wird. n-1 wird also die Anzahl der Rasterlinien zwischen den Ausgabelinien, und die unter
schiedlichen Ausdrücke sind dann die δ y-Ausgänge aus dem Vektorneigungs-PROM 129.
Die Anwendung der Gleichung ist in Fig. 29 veranschaulicht, in der die Ausgabelinie bei G₃ zu berechnen ist.
Der Umschaltspeicher enthält den Wert Y für das Vektorende auf G₅ den ganzen Vorgang hindurch.
Es gilt also:
Y n = Y-Δ Y (Umschaltspeicher minus Y-Speicher)
Y₀-Y₁ = δ y₀(Vektorneigungs-PROM-Ausgang auf G₁)
Y₁-Y₂ = δ y₁(Vektorneigungs-PROM-Ausgang auf G₂)
Y₂-Y₃ = δ y₂(Vektorneigungs-PROM-Ausgang auf G₃)
n = 3
Durchschnitt Y für die Zeilen
Der Korrektur-PROM 140 nimmt den δ y-Ausgang des Vektorneigungs-PROMs 129 und multipliziert ihn mit
einem Faktor annähernd gleich dem entsprechenden vorausgehenden Bruch. Dies wird durch einen kleineren
PROM ausgewählt, den Faktorauswähl-PROM, im Normierer 136, der durch die Anzahl von Rasterlinien
zwischen den Ausgabelinien (dem Teiler) und der laufenden Linienzahl (dem Dividend) adressiert wird. Der
Drei-Bit-Kode, der acht Skalenfaktoren ergibt, wird durch den Faktorauswähl-PROM an den Korrektur-PROM
abgegeben.
Der Korrekturausdruck wird aufgebaut, indem der Ausgang eines Korrektur-PROMs 140 in den Korrektur
speicher 130 addiert wird. Dieser Speicher wird jedesmal aufgelöst, wenn eine Ausgabelinie vorhanden ist und
beginnt dann mit dem Aufbau der Korrektur für die nächste Ausgabe. Der PROM-Ausgang auf der B-Leitung
wird stets dem Korrekturspeicherausgang auf der A-Leitung durch den Akkumulator addiert. Der Wert im
Korrekturspeicher ändert sein Vorzeichen, sobald der Umriß eines Quadranten ändert. Der Korrekturspeicher
besteht nur aus acht Bits, er ignoriert jedoch das unbedeutendste Bit der C-Leitung, da bei den kleinen
Punktgrößen, bei denen er arbeitet, diese Genauigkeit unnötig ist. Auf diese Art hat er effektiv neun Bits, und er
hat einen Überlauf, der ihn im Falle sehr großer Verschiebungen begrenzt.
Der im Interceptspeicher 120 gehaltene Wert ist üblicherweise nicht das Yn der obigen Gleichung, sondern
das Ende des laufenden Vektors. Unmittelbar vor dem Ausgang wird also der Korrekturspeicher durch das
laufende Δ Y justiert, so daß Diskrepanzen auftreten können.
Der Ausgabewert wird schließlich im Akkumulator 128 errechnet, indem der Ausgabespeicherausgang auf der
A-Leitung und der Interceptausgang auf der B-Leitung verwendet werden. Die C-Leitung überträgt den korrek
ten Ausgabewert zum Ausgangspuffer 138.
Wie oben erwähnt, hält der Ausgabepuffer den errechneten Wert, bis der Schriftzeichengenerator andeutet,
daß er empfangsbereit ist. Die Serienübertragung wird dann durchgeführt, und die nächste Ausgabeberechnung
kann beginnen. Ist der übertragene Wert der für den höchsten laufenden Umriß, dann kennzeichnet der
Kodeumwandler den Schriftzeichengenerator nach der Übertragung auf der ENDSC-Steuerleitung.