1. Beginn zweier neuer Schriftzeichenumrisse, und
2. Ende zweier Schriftzeichenumrisse
19. Setzgerät nach Anspruch 1, gekennzeichnet durch Mittel zum Modifizieren eines gespeicherten Vektors
durch eine das Schriftzeichen darstellende Digitalzahl, die einen Steuerkode definiert, der den Vektor
durch Addition eines vorgegebenen Werts zu einer der ersten oder der zweiten Digitalzanl ohne Addition
zur anderer, der ersten oder zweiten Digitalzah! modifiziert
20. Setzgerät nach Anspruch 1, gekennzeichnet durch Mittel zur Verschiebung des Anfangs eines Vektors
mit einer das Schriftzeichen darstellenden Digitalzahl, die einen Steuerkode definiert, welcher spezifiziert,
daß der Anfang des Vektors vom Ende des vorausgehenden Vektors entlang einer der ersten und zweiten
Koordinaten um einen gegebenen Wert verschoben ist
21. Setzgerät nach Anspruch 1, gekennzeichnet durch Mittel zur Angabe des Quadranten, in dem ein
Vektor auftritt, mit einer das Schriftzeichen darstellenden Digitalzahl, die einen Steuerkode definiert, weleher
spezifiziert, daß mindestens ein folgender Vektor in einem anderen Quadranten auftritt.
22. Setzgerät nach Anspruch 1, gekennzeichnet durch Mittel zum Aneinanderreihen der Digitalzahlen in
vorgeschriebener Ordnung, so daß die Digitalzahlen auf Grund ihrer Ordnung mit ihren entsprechenden
Umrissen assoziiert werden.
23. Setzgerät nach Anspruch 22, gekennzeichnet durch Mittel zur Anordnung der die erste und zweite
Koordinate eines Ausgangspunktes definierenden Digitalzahlen vor den Digitalzahlen, die die sich von
diesem Ausgangspunkt erstreckenden Vektoren definieren.
24. Setzgerät nach Anspruch 22, gekennzeichnet durch Mittel zur Anordnung der die erste und zweite
Koordinate des Ausgangspunkts definierenden Digitalzahlen in der Reihenfolge von niedrigen nach hohen
Werten der ersten und der zweiten Koordinate.
25. Setzgerät nach Anspruch 22, gekennzeichnet durch Mittel zur Anordnung der die Vielzahl von Vektoren
definierenden Digitalzahlen in der Reihenfolge der Zunahme einer der ersten oder zweiten Koordinate
des Endes eines jeden Vektors.
26. Setzgerät nach Anspruch 22, gekennzeichnet durch Mittel zu derartiger Anordnung der die Vielzahl
von Vektoren definierenden Digitalzahlen, daß die Vektoren einer gesamten Zeichenfolge aufeinanderfolgend
definiert werden, bevor die Vektoren einer anderen Zeichenfolge definiert werden.
27. Setzgerät nach Anspruch 1, gekennzeichnet durch eine in Sektoren unterteilte Magnetscheibe als
Speichermed'um, auf der ein die Anfangsspur und die Sektoradresse einer oder mehrerer Schriften spezifizierender
Schriftindex (Schriftverzeichnis) auf einer spezifizierten Spur und einem Sek' „r ausgezeichnet ist
und auf der die mindestens einen Schriftzeichensatz definierenden Daten in einer verbundenen Zeichenfolge
mit Kettungsadresse am Ende eines jeden die Adresse der nächstenfolgenden Spur u.id des Sektors, in der
die Schriftdaten weitergehen, definierenden Sektors angeordnet sind.
Die Erfindung bezieht sich auf ein Setzgerät zur automatischen Generierung von Schriftzeichen nach dem
Oberbegriff des Anspruchs 1.
In einem bekannten Setzgerät, welches unter anderen die gattungsgemäßen Merkmale aufweist, ist ein
Zeichengenerator zur Darstellung codierter Schriftzeichen vorgesehen, mit dem die Schriftzeichen auf der Basis
eines normierten Quadrates (Normalraster) entsprechend den Koordinaten eines Ausgangspunktes der Außenlinien
des ^eichcns als Digitalzahlen codiert werden und weiter gemäß veränderlichen Parametern dieser
Außenlinier', wi<; Steigungen und Krümmungen als Digitalzahlen definiert sind (DE-AS 24 22 464). Hierzu
werden BeK'hie für eine Krümmungsänderung verwendet. Dk Erzeugung einer geraden ansteigenden oder
abfallenden Linic, die auf einem Steigungsänderungsbefehl basierenden Berechnungen beruht, erfordert aber
eine hohe Speicherkapazität für eine große Anzahl Steigungsinformationen, insbesondere wenn gerade, geneigte
Strecken als ^diriftzeichenumrißlinienabschnitte ohne Stufen in einer hohen typographischen Qualität zu
generieren >>ind. ötrswegen kann zur Bildung einer Außenlinie mit gerader Steigung ein spezieller Befehl
vorgesehen werden, der inkremental Änderungen von V-Koordinatenwerten beinhaltet. Dieser spezielle Befehl
gibt an, wie. ausgehend von einem Ausgangspunkt, der Y-Koordinatenwert für jedes konstante X-Koordinateninkrement
zu verändern ist. Zu jedem speziellen Befehl gehört deswegen die Angabe einer Anzahl von
-Y-Inkrcmenten und damit von Berechnungszyklen, für die eine Veränderung der V-Koordinate oder der
Steigung oder der Krümmung auszurechnen ist. Dieser Zeichengenerator bedingt somit eine hohe Speicherkapazität
zur Speicherung von Steigungsinformationen für typographisch hochwertige Schriftzeichengenerierung
sowie zur Speicherung der Anzahl von Berechnungsschritten, für welche die speziellen Befehle gelten sollen.
Außerdem sind verhältnismäßig aufwendige Berechnungen für die Einheitsinkremente (X-Inkremente) durchzuführen.
ίο Mit einem zum Stand der Technik gehörenden Vektordarstellungsgerät sollen keine Umrißlinien von Schriftzeichen
angenähert, sondern nur die Vektoren auf einer Kathodenstrahlröhre ausgehend von je einem durch
Zahlenwerte definierten Ausgangspunkt durch ΔΧ- und JK-Ablenkdate für den Elektronenstrahl ausgebildet
werden, die Binärzahlen sind (G B-PS 13 93 653). Es sollen analoge Ablenkspannungen für den Kathodenstrahl so
ansteigen, daß auf der Kathodenstrahlröhre ein Vektor annähernd konstanter Helligkeit unabhängig von der
is Vekioriänge erscheint.
Eine Rechner- und Steuereinrichtung eines bekannten Setzgerätes ist zur Verarbeitung digitaler Zahlenwerte
eingerichtet, welche den Ort der Kreuzung einer Umrißlinie eines Schriftzeichens mit einem Rasterstreifen
darstellen (DE-OS 14 99 405). Zur Definition dieser Kreuzungsorte ist jedoch ein großer Datenvorrat zu speichern
und zu verarbeiten.
Zur Herabsetzung der zur Speicherung und Reproduktion von Schriftzeichen benötigten Daten sind verschiedenartige
Maßnahmen bekannt:
So ist ein Kathodenstrahlrohr-Setzgerät bekannt, bei dem die zur Darstellung eines Schriftzeichens erforderliche
Anzahl von Bits komprimiert wird durch identifizierung der Ausgangs- und Endpunkte der Liniensegmente
(dunkle Teile) eines Schriftzeichens in jeder Reihe oder Spalte des Rasters mit Hilfe eines Digitalkodes (US-PS
33 05 841).
Bei einem verbesserten System (US-PS 34 71 848) werden die Ausgangs- und Endpunkte eines Liniensegments
innerhalb einer Reihe oder einer Spalte des Rasters als inkrementale Zunahme oder Abnahme vom
Ausgangs- bzw. Endpunkt auf einem Liniensegment in der vorausgehenden Reihe oder Spalte kodiert. Die
Datenreduzierung wird dadurch erreicht, daß die zur Definition der zusätzlichen Adressen eines Liniensegments
erforderlichen Zahlen kleiner sind als die zur Definition der absoluten Adressen erforderlichen Zahlen.
Zum Stand der Technik gehören eine Anzahl weiterer Verfahren zur Datenherabsetzung digital kodierter
Schriftzeichen (US-PS 33 05 841 und 34 71 848):
1. Die Einführung eines Kode, der die Anzahl der freien Reihen oder Spalten auf der einen oder der anderen
(oder beiden) Seiten des Schriftzeichens anzeigt
2. Die Einführung eines Linienwiederholungs-Kode, welcher Anzeigt, daß das Liniensegment oder die Segmente
in einer Reihe oder einer Spalte auf der gleichen Position sind wie das Segment der vorausgehenden
Reihe oder Spalte.
3. Die Einführung eines Kode, welcher anzeigt daß ein Anfang oder ein Ende einer Liniensegmentadresse mit
einer vorgeschriebenen Anzahl zu wiederholen ist.
Trotz dieser verschiedenen bekannten Techniken zur Datenverringerung waren digitale Schriftzeichenspeicher
aufwendiger als die in Kathodenstrahlrohr-Setzgeräten verwendeten Fotovorlagen. Dies beruht u. a. darauf,
daß Digitalmaschinen zwar die Größe der reproduzierten Schriftzeichen durch Verändern des Abstands der
Striche auf der Ausgaberöhre bestimmen, es aber Grenzen gibt, wie weit auf diese Weise vergrößert werden
kann. Es sind daher mehrere verschiedene Schriftzeichenvorlagen erforderlich.
Es ist eine Schriftzeichen-Kodier- und Dekodiereinrichtung für ein Kathodenstrahlrohr-Setzgerät bekannt,
die den oben erwähnten Nachteil besitzt (US-PS 40 29 947). Erreicht wird dies durch Kodierung des normalisierten
Schriftzeichenumrisses mit einer Reihe aufeinanderfolgender Neigungen und Krümmungen von einem
ursprünglichen Anfangspunkt oder -punkten für das Schriftzeichen. Zu diesem Zweck steht eine große Anzahl
von Neigungen und Krümmungen zur Auswahl durch den Kodierer zur Verfügung, wobei jede dieser Neigungen
und Krümmungen durch ihre eigene binäre Kondenummer identifiziert wird.
Eine weitere bekannte Anordnung zur Darstellung von Schriftzeichen, die die Schriftzeichen als normalisierte
Schriftzeichenumrisse behandelt, speichert die absoluten Koordinaten einer Anzahl von Punkten auf dem Umriß
des Schriftzeichens (Seybold Report, Band 1, Nr. 12 und 13 [14. und 28. Februar 1972]). Dabei werden Zwischenpunkte
auf dem Umriß zwischen gespeicherten Punkten als gerade Linien angenommen.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Setzgerät der eingangs genannten Gattung so
weiterzubilden, daß die für die Speicherung typographisch hochwertiger Schriftzeichen mit Digitalzahlen erforderliche
Speicherkapazität möglichst gering ist Nach Maßgabe der gespeicherten Digitalzahlen soll eine Kathodenstrahlröhre
oder ein Lichtpunktabtaster wenig aufwendig steuerbar sein, um diese Schriftzeichen zu reproduzieren.
Diese Aufgabe wird für ein Setzgerät mit den in dem kennzeichnenden Teil des Anspruchs 1 angegebenen
Merkmalen gelöst
Das erfindungsgemäße Setzgerät ist zur Speicherung und Verarbeitung von Daten eingerichtet, in denen der
Vektor mit für den Schriftzeichenumrißlinienabschnitt signifikanter Erstreckung in ΛΓ-Richtung und V-Richtung
enthalten ist Durch diese Daten werden alle Informationen kompakt zusammengefaßt, die zwischen den
Vektorendpunkten zur Reproduktion der Umrißlinie benötigt werden, und zwar auch für gekrümmte Umrißlinien.
Eine sonst erforderliche Anzahl von X-Inkrementen, über die sich eine konstante Steigung erstrecken soll.
ist also hier in den beiden Digitalzahlen, welche die Vektordaten darstellen, enthalten. Es entfallen die Angabe
der Anzahl von Linien oder zusätzliche Berechnungsschritte. Erfindungsgemäß werden die Lagen der Vektoren
in der Umrißlinie aus der abspeicherbaren Folge der Digitalzahien, die die Vektoren einschließlich deren
Gesamtlänge bestimmen, abgeleitet. Zusätzliche, die Lage der Vektoren markierende Daten brauchen also nicht
abgespeichert zu werden.
In dem erfindungsgemäßen Setzgerät können die gespeicherten Daten in der Steuereinrichtung leicht in
Schriftzeichen-Umschaltwerte eines bewegten Lichtpunktes umgesetzt werden, um durch den bewegten Lichtpunkt
Schriftzeichen hoher typographischer Qualität zu setzen.
Die Daten zur Kodierung der Schriftzeichen können automatisch von einer groben Punktmatrix-Information
oder einem beliebigen anderen digitalisierten Kode auf relativ einfache Art erhalten werden. Dabei werden die
geradlinigen Vektoren so gewählt, daß zunächst aufeinanderfolgende Koordinatenpunkte auf jedem Umriß
bestimmt werden, für die der Umriß 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 Koordinate 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-Digitalzahlen gespeichert, die jeden
Vektor definieren.
Weitere vorteilhafte Merkmale ergeben sich aus den Unteransprüchen.
Im einzelnen beinhaltet Anspruch 2 Merkmale der Einrichtung zur Verarbeitung der gespeicherten Daten, die
wirkungsmäßig zwischen dem Schriftspeicher und den Mitteln zur Umwandlung einer Datenfolge in Schnitzelchenumschaltwerte
angeordnet sind.
Anspruch 3 beinhaltet im wesentlichen die weitere zweckmäßige Gestaltung der Mittel zur Umwandlung der
Datenfolge in Schriftzeichenumschaltwerte.
Anspruch 4 betrifft im wesentlichen die Mittel zur Berechnung der Interceptwerte, d. h. ebenfalls Schriftzeichenumschaltwerte
aus den erfindungsgemäß gebildeten und gespeicherten Vektoren.
Die in dem kennzeichnenden Teil des Anspruchs 4 angegebenen Umwandlungsmittel der Punktgröße sind im
Zusammenhang mit den Mitteln zur Umwandlung der Folge von Daten aufeinanderfolgender Vektoren in
Schriftzeichenumschaltwerte vorgesehen und sind somit eine Weiterbildung der erfindungsgemäßen Verarbeitung
der Folge der Daten, die aufeinanderfolgenden Vektoren entsprechen.
In vorteilhafter Weise kann erfindungsgemäß ein einziger Datensatz normalisierter Schriftzeichen zur Generierung
von Schriftzeichen-Abbildungen in unterschiedlichen Punktgrößen verwendet werden. Erforderlich ist
lediglich, die Schnittpunkte zwischen jedem horizontalen oder vertikalen Strich und den Schriftzeichenumrissen
zu errechnen, um zu bestimmen, wann die Kathodenstrahlröhre oder der Laserstrahl an- oder ausgeschaltet
werden muß. Die durch die kodierten Daten definierten geradlinigen Vektoren ermöglichen es, diesen Steuervorgang
mit einem Mindestaufwand und bei hoher Geschwindigkeit durchzuführen.
Anspruch 6 beinhaltet eine Weiterbildung der erfindungsgemäßen Mittel zur Umwandlung der Folge von
Daten, die aufeinanderfolgenden Vektoren entsprechen, in Schriftzeichenumschaltwerte.
Die Weiterbildung nach Anspruch 7 betrifft die erfindungsgemäßen Umwandlungsmittel, mit denen die
Datenfolge entsprechend aufeinanderfolgenden Vektoren verarbeitet wird.
Anspruch 8 betrifft die Weiterbildung des erfindungsgemäßen Schriftspeichers zur Speicherung einer weiteren
Digitalzahl, welche bei der Verarbeitung dieser Zahl eine typographisch erwünschte Variation der Digitalzahl
und der daraus gebildeten Schriftzeichenumschaltwerte ergibt
Die in Anspruch 9 angegebene Magnetscheibe hat sich als Speichermedium zur Realisierung des erfindungsgemäßen
Schriftspeichers als besonders geeignet erwiesen.
Insbesondere sind nach bevorzugten Merkmalen der Erfindung gemäß Ansprüchen 10 bis 14 die erste und die
zweite Digitalzahl, die jeden Vektor definieren, in der Größe begrenzt. Bei einer mäßigen Auflösung von
beispielsweise 432 Einheiten im Geviert können es 4-Bit-Ziffern sein, so daß ein Vektor durch ein Byte (acht Bits)
dargestellt ist. Eine Analyse hat 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 inkrementalen Abstände
können mit geringerer Information definiert werden als die absoluten Koordinaten einer Vektorspitze. Zusätzlich
werden der Ausgangspunkt und die Vektordaten in einer vorgeschriebenen Folge dargestellt, die von sich
aus die Daten mit spezifischen Schriftzeichen-Umrissen zuordnet. Als Ergebnis dieser drei Faktoren ist das
vorliegende 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, vergleichsweise günstig.
Anspruch 27 beinhaltet die Verkettung der Daten, die zu jedem einzelnen Schriftzeichen eines Schriftzeichensatzes
erfindungsgemäß gespeichert sind, außerdem die Organisation der Magnetscheibe als Speichermedium,
um diese Folge der Daten zu speichern.
Die Erfindung wird im folgenden an Hand einer Zeichnung näher beschrieben:
F i g. 1 zeigt ein normalisiertes X— V-Raster, bei dem geradlinige Vektoren zwischen einzelnen Schnittpunkten
eingesetzt wurden.
F i g. 2 stellt eine Versuchsmatrix dar, die bei der automatischen Auswahl der Vektoren zur erfindungsgemäßen
Darstellung eines Buchstabenumrisses verwendet wird.
F i g. 3 ist ein Flußdiagramm, das die bei der automatischen Auswahl von Vektoren zur Darstellung eines
Buchstabenumrisses durchzuführenden Schritte aufzeigt '.
F i g. 4A—4E zeigen ein bevorzugtes Format digitaler Daten für das erfindungsgemäße Schriftzeichen-Kodie-
rungsschema.
F i g. 5 ist ein normalisiertes X— V-Raster eines dargestellten Schriftzeichens, das durch Ausgangspunkte und
Vektoren nach der auf der linken Seite von F i g. 3 gezeigten Anordnung definiert wird.
F i g. 6 zeigt die tatsächliche Kodierung für das in F i g. 5 dargestellte Schriftzeichen unter Verwe...iung des in
F i g. 4 veranschaulichten Datenformats.
Fig. 7A—7D zeigen ein weiteres bevorzugtes Digitaldatenformat für das erfindungsgemäße Schriftzeichen-Kodierschema.
F i g. 8 zeigt ein repräsentatives Schriftzeichen auf einem normalisierten X— V-Raster, wobei die Schriftzeichenumrisse
durch Ausgangspunkte und Vektoren nach der auf der rechten Seite von F i g. 1 gezeigten Anordnung
definiert werden.
F i g. 9 zeigt die tatsächliche Kodierung für das in F i g. 8 dargestellte Schriftzeichen unter Verwendung des in
F i g. 5 veranschaulichten Datenformats.
Fig. 10 ist eine Draufsicht auf eine in Sektoren eingeteilte Floppy-disk-Scheib·^ :i; angedeuteten Sektoren
und Spuren.
Fi g. 11 ist ein Diagramm, welches die Anordnung der Daten für Schrift und Schriftzeichen auf der Floppydisk-Scheibe
darstellt.
Fig. 12 ist ein Diagramm, das die Schriftzeichen-Nachschlag- und Dicktendatei von Fig. 11 ausführlicher
darstellt.
F i g. 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, desen Umgrenzung durch geradlinige Vektoren gcL:iaet ivi. 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.
F i g. 16 zeigt, wie Strichendpunkte durch Interpolation aus kodierten Schriftzeichendaten bestimmt werden.
Fig. 17 zeigt, wie Strichendpunkte (Umschaltwerte) durch Mittelwertbestimmung aus kodierten Schriftzeichendaten
bestimmt werden.
F i g. 18 ist ein Blockdiagramm eines Kathodenstrahlrohr-Setzgerätes.
F i g. 19A und 19B sind Block- bzw. Signaldiagramme, die die Struktur und die Wirkungsweise des Schriftzeichengeneratorelements
von F i g. 18 darstellen.
F i g. 20 zeigt das Kodeumwandlerelement von F i g. 19 mit seinen verschiedenen Ein- und Ausgängen.
F i g. 21 ist ein Blockdiagramm der Elemente des in den F i g. 19 und 20 dargestellten Kodeumwandlers.
F i g. 22 ist ein Blockdiagramm des Hauptsteuerelements des in F i g. 21 gezeigten Kodeumwandlers.
F i g. 23 ist ein geometrisches Diagramm, das den durch den Kodeumwandler durchgeführten Vektorberechnungsprozeß
veranschaulicht.
Fig.24 ist ein Flußdiagramm, das die Wirkungsweise des Maßstabselements (Festwertmultiplizierers) des
Kodeumwandlers veranschaulicht.
F i g. 25 ist ein geometrisches Diagramm, das den durch den Kodeumwandier durchgeführten interpolationsprozeß
veranschaulicht.
F i g. 26 ist ein Blockdiagramm des Adressierteils des Direktzugriffspeichers (RAM) des Kodeumwandlers.
F i g. 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.
F i g. 29 ist ein geometrisches Diagramm, das den durch den Kodeumwandler durchgeführten Prozeß zur
M ittelwertbestimmung veranschaulicht
F i g. 1 veranschaulicht das erfindungsgemäße Kodierschema. Nach diesem Schema wird die Anzahl der
so erfaßten Koordinatenpunkte entlang den Umrissen des Schriftzeichens weit herabgesetzt. Es wird angenommen,
daß diese Punkte durch gerade Linien verbünden werden. Statt die absoluter. Koordinaten, dieser gewählten
Punkte weiden, 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 F i g. 1 gezeigt ist, verlaufen die Vektoren beispielsweise von links nach rechts
unter der Annahme, daß, wenn zwei Vektoren von derselben X-Koordinate 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 F i g. 1 werden die Ausgangspunkte Xj, Y\ und Xi, Yi 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:
Tabelle I
Vektor-Zahl X-Abstand K-Abstand
\S 12-7
; 22 6
y,
3 4 -6
4 4 7
Wenn die Vektoren 3 und 4 abgelaufen sind, müssen zwei neue Ausgangspunkte X3, Yi und ΛΓ4, V4 definiert
\ werden, bevor mit neuen Vektoren fortgefahren werden kann. Da die Schriftzeichendaten von links nach rechts
y- 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 Λ^, Vj und X*, V4 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
t 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,
1 so daß der Vektor 9 von dem Koordinatenpunkt Xs, Y5 und der Vektor 10 vom Punkt Xe, Ys ausgeht.
[.: Die rechte Seite der Fig. 1 veranschaulicht das gleiche Kodierschema unter einer anderen Annahme. In
jT diesem Fall werden die Vektoren eines Schriftzeichens in der gesamten Folge ausgehend von den ursprüngh-
j'i ehe absoluten Koordinaten des obersten Punktes einer Vektorfolge von oben nach unten aufgeführt. Bei zwei
ί; > Ausgangspunkten mit dem gleichen V-Koordinatenwert ist es gleichgültig, welcher Punkt zuerst aufgeführt
P wird.
& Bei dem auf der rechten Seite der F i g. 1 gezeigten Umriß ist die Reihenfolge der Daten wie folgt: Ausgangs-
Iv punkt Χη, Yi und seine Vektoren 11,12,13 und so weiter bis zum Ende der Folge; Ausgangspunkt X8, V8 und so
'■;'· weiter bis zum Ende der Folge; Ausgangspunkt X9, Y9; Vektoren 17 und 18; Ausgangspunkt Xi0, Y)0; Vektor 19
und so weiter.
r Schließlich wird, wie im Falle des Ausgangspunktes X5, V5 und X6, Yt ein einzelner Punkt als ein »Paar« von
t Ausgangspunkten Xn, Vn und X!2, Y\2 definiert. Zunächst wird der Punkt Xu, Vu mit seinem Vektor 20
■V; aufgeführt; sodann wird der Ausgangspunkt Xn, Y,3 aufgeführt, dem Vektor 21 und die weiteren Vektoren der
f; 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
mit geradlinigen Algorithmen erfolgen.
i Fig.2 und 3 veranschaulichen eine typische Bildung eines solchen Algorithmus, der zur Bestimmung der
f - Länge eines Vektors verwendet werden kann.
F i g. 2 zeigt eine 15x15-Probematrix im oberen rechten Quadranten von einem Punkt (0,0), der ein Ursprung-
!icher Ausgangspunkt oder die Spitze eines vorausgehenden Vektors sein kann. Bei dem Quadrant der Probematrix
wird angenommen, daß ein Links-Rechts-Vektor definiert werden soll, der sich aufwärts erstreckt (positive
Werte von Y).
;; Die Größe der Probemairix 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
§:· klei tiere Maximallänge aufweisen, dann wird die Matrix entsprechend angepaßt.
\, I" 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. ^definieren den augenblicklichen Probepunkt für die Spitze des Vektors 32.
Die Koordinaten aller Punkte 30 des Umrisses werden mit x0, yo\ xu yw -·· *i5. y\s, entsprechend ihrer
Reihenfolge entlang der X-Achse der Matrix bezeichnet
Wie in F i g. 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 F i g. 2 ist der
erste Probepunkt Xr, Υτ(15$)- Dervierte Probepunkt, wo Xt, YtKoordinaten (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 Xt, Krgezogen ist eine vorbestimmte Paßkonstante K
überschreitet Zunächst werden die Koordinaten x, y des Punktes 30 unmittelbar vor dem Probepunkt X7-, Yt
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 Obertrifft der
Abstand δ die Konstante K, dann wird der Testpunkt Xt, Yt aufgegeben, und der nächstniedrige Wert von Xt
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 Xt des Probepunktes auf eins herabgesetzt dann werden die Koordinaten
Xt, Ytzur 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 Xt. Wdargestellt. Das heißt, dx, dy wird gleich AV, Wgesetzl.
Der senkrechte Pr^beabstand δ wird für jeden Punkt durch einfache Geometrie unter Verwendung von X1,
YT bestimmt. Da eine 15 χ 15-Matrix eine begrenzte Anzahl von XT. >V 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.
y
Ist -^- > 1, dann ist K = 0,5; und ist
-^- < 1, dann ist*:= 1,0.
Xt
Der in F i g. 3 gezeigte Algorithmus ist extrem einfach ur-J kann mit einem Rechner ausgeführt werden, in dem
die vertikalen oder horizontalen Umrißpunkte des Schriftzeichens gespeichert sind.
F i g. 2 zeigt eine Probematrix, in der die maximal zulässigen Werte von X und Y15 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) verw endet 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 Schriftzeichen
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 Datenred
Vtion 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-Vektoren
(F i g. 1, linke Seite). Diese Vektoren sind in einem Quadranten durch die X— Y-Koordinaten des Vektorendes
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 V-Werte definiert, weil die X-Lage durch das Kodieren mit einbezogen ist.
Ein Datenblock, der das Schriftzeichen definiert, beginnt mit einem Yorsaizwort A (bestehend aus 8-Bit-Bytes),
das die X-Koordinate der linken Begrenzung des Schriftzeichens angibt. Darauf folgt ein Ausgangspunkt-Wort
B, das die V-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-Rasterünie, und ein Vektorbyte Fdefiniert
einen Vektor von diesem Ausgangspunkt. Gibt es irgendwelche Ausgangspunkte innerhalb von fünfzehn X-Einheiten
von der ersten Rasterlinie, so können diese in ihrer entsprechenden V-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 F i g. 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:
ΧχΧι XnXiX^X-iXiXx Xo
— Linksseitiger Begrenzungsabstand
T — Testbit, kann zur Feststellung von Fehlern verwendet werden.
C — Kcttungsbit, 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).
— Die Anzahl der Ausgangswörter auf der ersten Rasterlinie des Schriftzeichens.
Ausgangspunkt-Wort:
V9 V8 V7 V6 V5 Y4 V3V2 V, Vu
— 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.
— Die Anzahl von Rasterlinien zwischen dem Auftreten der Steuercode »Beginn einer neuen Linie«
und den tatsächlichen Ausgangspunkten selbst.
Vektorbyte:
V3V2ViV0
— Dieser Wert definiert die vertikale Versetzung zwischen dem Beginn und dem Ende eines Vektors.
XX
— Dies ist die horizontale Versetzung zwischen dem Beginn und dem Ende eines Vektors.
Steuerbyte: ·
— Diese Bits definieren auf Null gesetzt ein Steuerbyte.
Af3M2M1M0
— 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 Bits 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 — Andere 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 F i g. 5 ist ein einfaches Schriftzeichen gezeichnet, das eine Anzahl von Ausgangspunkten,
Endpunkten und dazwischenliegenden Vektoren enthält. Die tatsächliche Kodierung für dieses Schriftzeichen
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.
F i g. 7 veranschaulicht ein bevorzugtes Format zur Definition eines Schriftzeichens mit von oben nach unten
gehenden Vektoren (F i g. 1, rechte Seite). Diese Vektoren sind in einem Quadranten durch die X, V-Koordinaten
des Endes des Vektors bezüglich des Ursprungs des Quadranten spezifiziert. Da die Umrisse des Schriftzeichens
von oben nach unten gezeichnet werden, werden nur die zwei unteren Quadranten benutzt. Wie bei dem
Format von F i g. 4 gestatten Steuerkodes eine Quadrantenauswahl und Krümmungsbeginn und -Vervollständigung.
Bei diesem Format ist die Rasterlinie V = 0 am oberen Teil des Schriftzeichens; die folgenden horizontalen
Rasterlinien erhalten rasterabwärts die folgenden V-Zahlen.
Ein das Schriftzeichen definierender Datenblock beginnt mit einem V-Datenwort, das die höchste V-Ausgangskoordinate
des Schriftzeichens angibt. Dann folgt ein X-Datenwort, das die Ä"-Ausgangskoordinate eines βο
Umrisses definiert, die Vektoren und die Steuerung für diesen Umriß.
Alle folge iden Umrisse werden in einer solchen Folge angeordnet, daß die Werte des Ausgangspunkts i'in
der Ordnung zunehmender Werte liegen, d. h. der V-Wert für den nächsten Umriß ist gleich oder größer als der
V-Wert für den vorausgehenden Umriß. Es werden also ganze Folgen oder Vektorsequenzen definiert und pf
vervollständigt, bevor die nächste Folge definiert wird. Haben zwei Ausgangspunkte den gleichen V-Wert, so 65 ψ
kann jeder Punkt zuerst mit seiner gesamten Vektorfolge aufgeführt werden. I»
Die F i g. 7B, 7C und 7D zeigen die Formate für das V-Datenwort, das A"-Datenwort bzw. das Vektor- oder (Ά
Steuerwort. Diese Formale sind mit dem niedrigstwertigen Bit auf der rechten Seite gezeichnet. Die Wertigkeit §
der Symbole innerhalb dieser Wörter und Bytes ist wie folgt:
V-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-Bk oder »Flare Bit« definiert, welche Vektorneigung durch den Dekodierer bei der Extrapolation
des Umrisses eines Schriftzeichens im Rasterbereich unmittelbar über der Linie VW
verwendet wird.
E — Das f-Bit oder Extrapolationsbit definiert, ob Extrapolation in dem Bereich über der Rasterlinie
YN verwendet wird oder nicht.
B — Das ß-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 Schriftzeichenumrisses
vom Ausgangspunkt (YN, XN) oder vom letzten Vektorendpunkt Alle Vektoren
werden serienmäßig in der gleichen Reihenfolge angeordnet wie sie auf dem Umriß des Schriftzeichens
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 N ullen aufgefüllt werden.
1 — Umkehrung der Λ-Richtung für den nächsten Vektor.
2 — Bestimmt, daß für den durch die vorausgegangenen V- und X-Datenwörter definierten Ausgangspunkt
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 vertikalen
Vektor) und eine vertikale Verschiebung von mehr als 30 Einheiten. Das nächste Datenbyte
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 Einheil 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 horizontalen
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 horizontalen
Verschiebung von mehr als 15 Einheiten. Das nächste Datenbyte definiert den Binärwert
der horizontalen Verschiebung.
Die F i g. 8 und 9 verpnschaulichen, wie ein Schriftzeichen mit dem erfindungsgemäßen Kodierverfahren unter
Verwendung des in F i g. 7 gezeigten Formats kodiert werden kann. In F i g. 8 enthält das Schriftzeichen »A« eine
Anzahl von Ausgangspunkten, Endpunkten und dazwischenliegenden Vektoren. Die tatsächliche Kodierung für
b0 dieses Schriftzeichen ist in Fig.9, linke Spalte, dargestellt. Die rechte Spalte von Fig.9 erklärt die kodierten
Daten.
Die in F i g. 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 Miue
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.
Fi g. 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 Schrifiindex (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 Datenblocks,
welche alle in der Schriftan vorhandenen Schriftzeichen definieren. Die Schriftzeichendatenblocks
können das in F i g. 4A oder 7 A gezeigte Format haben.
Eine Nachschlag- und Dicktendatei ist in F i g. 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 odef ein hochgesetztes Schriftzeichen (Hochzahl).
Die Schriftzeichen-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
!if Fig. 13 zeigt die Art von Daten, um ein gemäß Fig. 1 — 12 kodiertes Schriftzeichen mittels eines Schriftzei-
I? chengenerators mit einer Kathodenstrahlröhre, einem Laserstrahl oder einem anderen Lichtpunktabtaster mit
|i 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
jgj Y-Werte der EJn'Ays-Umschalt-Punkte auf jeder Abtastlinie. Die Werte werden auf die Schriftzeichengrundli-
Il nie bezogen, wobei die positiver, Werte von Yüber die negativen Werte unter der Grundlinie angeordnet sind.
Ii 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. 1 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 YO von der Grundlinie erreicht hat. An diesem Punkt wird der Strahl eingeschaltet und bleibt an, bis er
!■; eine Entfernung Y1 von der Grundlinie erreicht i-at. Die Abtastung kann dann mit abgeschaltetem Strahl
j!. fortgeführt werden, bis sie den oberen Teil der Rastermatrix erreicht. Vorzugsweise wird der Strahl jedoch
j:? sofort unter Y2 oder zur Grundlinie zurückgeführt und beginnt mit der zweiten Abtastlinie 42. Diese Rückfüh-
i·. rung wird durch Zuordnung und »Zeilenende«-Kennzeichnung zu den Daten Y1 ausgelöst.
j Die vom Schriftzeichengenerator geforderte Datenfolge ist also YO, YX, Y2,Y3, YA,Y5, Κ6,_Κ7, YS, Y9,
[y Y10, YU, V12, K13, Y14, YXS 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ß-Fcrmat zugeführt werden, erfordert das Setzgerät einen Kodeumwandler, um dieses Vektorfor-
■ mat in das in F i g. 13 gezeigte Umschaltformat umzuwandeln. Bei der im folgenden beschriebenen Ausführungsform kann der Kodeumwandler das in den F i g. 6 bis 8 gezeigte Format in ein vertikal abgetastetes Einzelschrift-
;, zeichen-Umschaltformat übersetzen.
hl 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 F i g. 14 bis 17 dargestellt.
f; 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-
\γ chcns erforderlichen Abtastlinien angepaßt wird. Die F i g. 14 und 15 veranschaulichen dieses Prinzip, wobei die
R' Dickte des Schriftzeichens durch gleichmäßiges Verteilen der erforderlichen Anzahl von Abtastlinien über das
k, Schriftzeichen variiert wird.
K Vertikale Normalisierung kann durch einen Vertikalablenkverstärker oder durch Vervielfachung der Um-
[f schaltwerte KO, Vl, K2... 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-
p sierten Auflösung verwendet.
f? Der Kodeumwandler führt weitere gleichmäßig beabstandete vertikale Linien zwischen jedes Paar Digitali-
S; 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-
'■;i dierung erhaltenen Digitalisierungspunkt, ein »X« bedeutet einen interpolierten Punkt. Wären alle zusätzlichen
Fl 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
Schriftzeichen periodisch auszulassen, damit jede gewünschte Schriftzeichendickte unter dieser Größe erzeugt
werden kann.
Unter einem bestimmten Schriftgrad kann eine Mittelwertbildung zur Herabsetzung der Daten verwendet
werden. Hierzu kann der Kodeumwandler Umschaltwerte erzeugen, die den arithmetischen Durchschnitt der
Digitalisierungswerte zwischen Ausgangsabtastlinien, wie in F i g. 17 gezeigt, darstellen.
Das Setzgerät gemäß Fig. 18 wird durch eine Zentralprozessoreinheit 50 direkt über eine Datensammelleitung
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 Datensammelleitung
52 geschaltet ebenso wie die Magnetscheiben-Lese/Schreibeinheit 64, die die digitalisierten Schriften
liefert.
Eine Hilfssammelleitungsschnittstelle und ein Hilfssammelleitungspuffer 66 steuern die der Hilfssammelleitung
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
verantwortlich. Der Kodeumwandler 70 entnimmt zusammengefaßte Schriftsatzdaten von einem RAM- oder
PROM-Schriftspeicher 72 und wandelt sie in ein ausgedehntes Umschaltwertformat um. Ein Schriftzeichengenerator
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 Lochstreifenleser
58 gelesen und im Hauptspeicher 56 gespeichert. Hie kodierten Daten, die die einzelnen Schriftzeichen der
gewählten Schriftart definieren, werden sodann durch die Lese/Schreibeinheit 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 Schriftzeichen
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 Berechnung
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 Schriftzeichenzeilen
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ächstfolgenden
Zeilen definieren, abgerufen. Während sich die Vektoren in der Ä"-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 Vektoren) 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 Fi g. 19A dargestellt
werden die V-Umschaltstellungen in einem Registerstapel 91 gespeichert. Die V-Umschaltwerte für jede Abtastzeile
werden sodann in aufeinanderfolgende V-Register im Stapel eingegeben. Der höchste Y-Wert in der
Abtastlinie wird mit einem ENDSC-Bh gekennzeichnet damit angedeutet ist, daß die Abtastung zurückgesetzt
werden kann. Der Ausgang des niedrigsten K-Registers im Stapel wird durch einen Digital-Analog-Umwandler
92 im Schriftzeichengenerator 74 in einen Analogwert umgewandelt. Der Schriftzeichengenerator weist außerdem
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 Stape!
91, den nächst höheren V-Abfangwert abzurufen. Ist das ENDSC-Bn vorhanden, wenn eine Strahlumschaltung
eintritt, so daß ein Signal auf der Leitung 96 liegt, dann wird der Sägezahngenerator 93 zurückgesetzt, so daß ei
so eine Y-Ablenkspannung erzeugt die etwas geringer ist als die des nächstfolgenden V-Abfangwerts. Das vermeidet
ü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 dei
Ausgang des Sägezahngenerators unter den niedrigsten V-Umschaltwert für die nächste Abtastzeile gefallen ist
Das Rücklaufsignal wird durch eine logische Schaltung mit einer UND-Torschaltung 97, einem Umwandler 9i
und einem Flip-Flop 99 erzeugt die einen Eingang vom Vergleicher 94 und dem £WD5C-Signal auf der Leitung
96 erhalten.
Der Betrieb der Rücklauf-Logikschaltung ist in Fig. 19B veranschaulicht Diese Figur zeigt die Y-Ablenkspannung
der Kathodenstrahlröhre, die durch den Sägezahngenerator 93 für mehrere Striche des in Fig. Ij
gezeigten »Q« erzeugt wird. Zu Beginn des ersten Strichs 43 werden die V-Abfangwerte V6 und Yl in da!
niedrigste bzw. nächstniedrigste ^-Register im FIFO-Stapel 91 eingeführt. Da der Ausgang des Sägezahngene
rators an einem Punkt etwas unterhalb der Y6 äquivalenten Analogspannung beginnt erzeugt der Vergleiche!
94 keinen Ausgang. Erreicht jedoch die y-Ablenkspannung die K6-Werte, dann erzeugt der Vergleicher 94 eir
Signal, das den Kippschalter 95 von ein in aus schaltet und den nächsten Y-Wert, Y7, im FIFO-Stapel 91 abruft
Die y-Ablenkspannung steigt kontinuierlich an, bis sie eine Spannung äquivalent Yl erreicht
Da der nächste V-Wert YS erheblich niedriger ist als die y-Ablenkspannung, erzeugt der Vergleicher 9A
weiterhin ein Signal, bis der Sägezahngeneratorausgang herabgesetzt ist Da ein ENDSC-Bh mit Yl verbunder
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 V-Ablenkspannung erreicht daraufhin sofort den
V8-Wert, wodurch der Vergleicher 94 wiederum ein Ausgangssignal erzeugt, das den Strahl von aus in ein
schaltet. Der Strahl wird wiederum ausgeschaltet, wenn die K-Ablenkspannung Y9 erreicht, wird eingeschaltet,
wenn sie Y10 erreicht und wiederum ausgeschaltet, wenn sie YH erreicht. Da ein ENDSC-ßh mit VIl
verbunden ist, wird der Rücklaufprozeß wiederholt, damit der Strich 45 begonnen werden kann.
F i g. 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:
— 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 (Codeumwandler.
— Ein Signalsteuereingang, der vom Computer 50 ausgeht, wird verwendet, um den !Codeumwandler unabhängig
von den Zuständen der anderen Signale zurückzusetzen.
CYCREQ/CYCACK
— Dateneingang geschieht nach Empfang eines A"M5S-Signals. Der !Codeumwandler übernimmt dann die
Steuerung des Austausches von Synchronisationsimpulsen und liefert ein Singal auf CYCREQ, sobald es ein
Datenwort benötigt. Das Wort wird festgehalten, wenn das Datenwort einem Signal auf CYCACK entspricht,
und das CYCREQ-S\gna\ wird fallengelassen.
— Hat der !Codeumwandler die Verarbeitung eines Schriftzeichens abgeschlossen, dann nimmt er einen
Leerlaufzustand an, bis der Schriftzeichengenerator ein FM/TV-Signal aussendet. Der !Codeumwandler
liefert dann das Signal auf EOC, bis das -YSA/S-Signal, das den Dateneingang anzeigt, entfernt ist.
SDATA
— 11-Bit-Datenwörter, die Umschaltwerte darstellen, werden dem Schriftzeichengenerator in serieller Form
zugeleitet
— Der !Codeumwandler erzeugt ein 5-MHz-Taktsignal, das dem Schriftzeichengenerator zur Synchronisierung
der Bits im Ausgangsdatenwort (SDATA) zu%e\e\ie\ wird.
— 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 DA TRQ abgibt. Der Kodeumwandler
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 DATA V wird
fallengelassen.
STEPDN/STEPUP
— Der leere Raum an der Vorderkante eines Schriftzeichens wird durch den !Codeumwandler 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 vorausgehenden
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 Seitenbegrenzung
und STEFDN für ein Schriftzeichen mit Vorsprüngen. Die impulse treten zu Beginn der Verarbeitung
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 !Codeumwandler 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 F i g. 22 getrennt dargestellt. Die Hauptsteuerungseinrichtung
100 erhält 16 Eingänge von einem Steuerdekodierer 302 und vier ABMS(Signale 0.1,2) und AÄSrentsprechende
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 Betriebs
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 Zustands-PROM wird durch 4 Signale von
einem Multiplexer 108 und 5 Signale von einer Verriegelung 110 adressiert. Der Ausgang des Zustands-PROM
wird der Verriegelung 110 zugeführt, die wiederum mit einem Zustandsdecodierer 112 und einem Pseudo-Zustands-PROM
114 verbunden ist.
Der Pseudo-Zustands-PROM 114 kann seinen Ausgangszustand während eines Verarbeitungszykius modifizieren,
wenn der augenblickliche Zustand und seine Steuereingänge dies fordern. Zusätzlich zu dem Zustandsausgang
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-Zustandsdekodierer
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 V-Wert
aufeinanderfolgender Vektorenden um einen Umriß. Das heißt:
V0 = //VAusgangspunkt(^XN,^VNistderA/-te Vektor)
Κ, = V0 ± ΔΥ0
Y2 = V, ± ΔΥ>
Yn = Yn-x ± 4Yn-\
2. X-Werte (4-Bits): Der dX-Wtn, der im ^X-Speicher 122 gespeichert ist, ist der horizontale Abstand vr ■■
rechten Ende des laufenden Vektors. Für aufeinanderfolgende Berechnungen der Rasterzeilen gilt also:
ΔΧ — JX/v(neuer Vektor beginnt hier)
ΔΧ = AX-\ } Posten vermindert
ΔΧ = 1 (Ende des Vektors).
3. JV-Wert (5 Bits): Der Δ Y-Wert, der im JV-Speichei 124 gespeichert ist, ist der annähernde vertikale
Abstand vom rechten Ende des laufenden Sektors. Die vier wichtigsten Bits werden als Eingangs-J WWert
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 (beispielsweise 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 Umschaltwert,
der ein neuer Ausgangspunkt- V-Wert ohne eine Vektormodifizierung ist, und eins für einen modifizierten
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- V-Wert in den Abfangspeicher 120 eingebracht ist und der
So JX-Speicher 122 die Verschiebung am Beginn des ersten Vektors hält und das gültige Bit auf Null gesetzt ist.
Während jede Rasteriinie verarbeitet wird, wird der λ'-Speicher vermindert: wenn er »i« erreicht, signalisiert ei
nach einem Vektorbyte. Der Abfangspeicher 120 wird mit dem V-Wert aktualisiert, und ΔΧ und ΔΥ 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 ^iX-Speicher vermindert
und ΔΥwird um den Ausgang eines Vektorneigung-PROMs 129 verringert. Der PROM wird durch ΔΧ
undΔΥadressiert und gibt einen normalisierten ΔΥ-Wert, Oy, ab. Oy wird durch einen Interpolations-PROM 132
invertiert der in dieser Betriebsart nur als Komplementpuffer wirkt Dieser Ausgang wird dann durch einen
Addierer 134 Λ V addiert und wieder in den Δ V-Speicher 124 eingegeben.
Alle Kodeumwandlerspeicher sind aus 16 Direktzugriffspeichern zusammengesetzt Die Direktzugriffspeieher
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 taktweise
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 Steuerbitspeicher 126 gespeichert
ist, ist O 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ßtnd-Codes vorausge-
; hen, da nicht mehr als 16 Umrisse gleichzeitig durch den !Codeumwandler verarbeitet werden können. Bei
Eingang eines solchen Code «Umrißanfang« adressiert die Hauptsteuerung sequentiell die Stellen im Direktzugriffspeicher,
indem der neue Adressenzähler vermindert wird, bis eine Adresse gefunden ist, bei der das Nichtfrei-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 Direktzugriffspeicherr. in der richtigen Reihenfolge eingegeben werden, daß
zunehmende Umschaltwerte am Ausgang erzeugt werden.
Dieses Direktzugriffspeicher-Adressiersystem bidet ein rasches und flexibles Verfahren zur zyklischen Verar-
! beitting einer variablen Anzahl von Umrissen, wobei eine korrekte Reihenfolge ohne zusätzliche Information
aufrechterhalten wird.
20 Maßstabänderung (Normalisierung)
r'■■■. 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 Schriftzeichens
durch Bestimmung des Punktes, an dem V-Werte dem Ausgangspuffer 138 zur seriellen Übertragung
, zum Schriftzeichengenerator transportiert werden müssen. Der Normierer 136 informiert die Hauptsteuerung
100, ob die nächsten Rasterzeilen zu berechnen sind oder die laufenden V-Werte ausgegeben werden sollen.
• Sollen V-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 Erzeugung
eines Schriftzeichens bei einer bestimmten Ausgangsgröße mit einer fixierten Ausgangsstrichauflösung
kann IV Linien/Geviert erfordern. So approximiert der Normierer den Bruch \SX/W, der der Anzahl der
Normierer-Linien zwischen jeder erforderlichen Ausgangszeile entspricht. Dies wird durch wiederholtes abwechselndes
Selektieren der ganzen Zahl unterhalb 16X/Wund der ganzen Zahl oberhalb \f>X/W für verschiedene
Zeiten erreicht. Ein Vier-Phasenzyklus wird bei jeder zweimal auftretenden ganzen Zahl und bei unterschiedlicher
Anzahl von Wiederholungen in jeder Phase verwendet. Werden die Anzahlen der Wiederholungen
durdi die Zahlen N0. N,, N2 und N3 und die ganze Zahl unter \6X/W durch M dargestellt, dann kann die
Annäherung wie folgt dargestellt werden:
16Λ"
(N0XM)+ (Ni x(M+\) + (N2
χ
M) + (N3 χ (M+]))
W
N1 + N2 + N3 + Na
Ein besonderer Fall tritt ein, wenn \6X/Wselbst eine ganze Zahl ist; dann wird nur eine einzige Zahl benutzt,
und die Anzahl der Wiederholungen ist belanglos.
Der Normierer ist in F i g. 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, 'Jm 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.
f: 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
b> 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 Tabeüe gespeicherte Wert ist also eins weniger als die Anzahl der
|- erforderlichen Wiederholungen.
Us Der Betrieb des Normierers ist durch das Flußdiagramm in F i g. 28 dargestellt Der Normierer wird zu Beginn
[5 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.
U Die Verwendung des Normierers innerhalb der Kodeumwandlungs-Verarbeitungsvorgänge ist durch das
J^ Flußdiagramm von F i g. 24 dargestellt Der Normierer wird am Ende der Verarbeitung einer jeden Rasterlinie
j| des Schriftzeichens und nach Absendung der Werte für jede Ausgangsabtastung zyklisch wiederholt Der
t.f abgetastete Zustand des Ausgabe-Linie-Signals bestimmt, welche Linie gebildet wird. Es folgt, daß jeder Zyklus
I* 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 Rasteriinien zwischen den Ausgabelinien auftreten. Bei großen
Punktgrößen jedoch wird die »Ja«-Schleife häufiger verwendet, da mehrere Ausgabelinien zwischen den Rasteriinien
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 rfy-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 oy 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 Oy 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 Interpolation zwischen den Rasteriinien errechnet sind. Dieser Interpolationsprozeß ist in Fig.25
dargestellt.
Der Interceptspeicher 120 hält den absoluten V-Wert des Endes des laufenden Vektors. Ein <4V-Speicher 124
hält die Differenz zwischen dem Abfangwert und dem V-Wert bei der letzten Rasterlinie. Der Normierer 136
liefert eine Interpolationsadresse an den Interpolations-PROM 132, di" mit oy auch vom Vektorsteigungs-PROM
129 geliefert wird. Der Ausgang des Interpolations-PROM 132, dyu ist ein Teil des für die Interpolationsstelle
erforderlichen oy. Dies wird durch den Addierer 134 von ΔΥsubtrahiert und erscheint auf der D-Leitung.
Es wird dem Akkumulator 128 über die Λ-Leitung zugeleitet, und die ß-Leitung trägt den Ausgang des
Abfangspeichers 120. Die 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 beginhen.
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
Dürchschnittsalgorithmus verwendet werden, um die Ausgabe- V-Werte zu erreichen. Für diesen Zweck wird
der Korrekturspeicher 130 verwendet Dieser Speicher hält einen Korrekturwert, der für den Wert im Interceptspeicher
120 angewandt wird, um den Ausgabewert zu erzeugen. Das Mittelwertverfahren ignoriert Interpolationslinienadressen
und liefert Ausgaben nur auf Integralrasterlinienwert.
Γ" Berechnung basiert auf der Gleichung für das arithmetische Mittel der Werte Vobis V„_i;esgilt
Σ ym = Γ—
m-0 L "
J1T1O.
L- " " "
/i
Der Ausdruck in den eckigen Klammern ist der Korrekturausdruck. Der Durchschnitt wird herausgearbeitet,
indem die V-Werte auf jeder Rasterlinie berücksichtigt werden und deren Durchschnitt zwischen den Ausgabelinien
errechnet wird, n— 1 wird also die Anzahl der Rasteriinien zwischen den Ausgabelinien, und die unterschiedlichen
Ausdrücke sind dann die <Jy-Ausgänge aus dem Vektorneigungs-PROM 129.
so Die Anwendung der Gleichung ist in F i g. 29 veranschaulicht, in der die Ausgabelinie bei d zu berechnen ist.
Der Umschaltspeicher enthält den Wert Vfür das Vektorende auf G; den ganzen Vorgang hindurch.
Es gilt also:
Vn = V— Δ V(Umschaltspeicher minus V-Speicher)
Vo-Vi = rfyo (Vektorneigungs-PROM-Ausgang auf Gi)
Vi-V2 = dy\ (Vektorneigungs-PROM-Ausgang auf G2)
V2-V3 = ^(Vektomeigungs-PROM-Ausgangauf O3)
η =3
Durchschnitt Vfür die Zeilen
G0, G1, G2 = y Oy0 + y £>
>, + Oy2) + (Y-Δ Y)
Der Korrektur-PROM 140 nimmt den «ty-Ausgang des Vektorneigung' 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 Ausgabclinicn (dem Teiler) und der laufenden Linienzah! (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 Korrekturspeicher 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 ß-Leitung is
wird stets dem Korrekturspeicherausgang auf der Λ-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 dies·; Art hat er effektiv neun Bits, und er
hat einen Oberlauf, 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 Δ Kjustiert, so daß Diskrepanzen auftreten können.
Der Ausgabewert wird schließlich im Akkumulator 128 errechnet, indem der Ausgabespeicherausgang auf der
/4-Leitung und der Interceptausgang auf der ß-Leitung verwendet werden. Die C-Leitung überträgt den korrekten 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 EΛ/DSC-Steuerleitung.
Hierzu 23 Blatt Zeichnungen