DE3935574A1 - Verfahren zur minimierung der visuellen beeintraechtigung eines schriftbilds - Google Patents
Verfahren zur minimierung der visuellen beeintraechtigung eines schriftbildsInfo
- Publication number
- DE3935574A1 DE3935574A1 DE3935574A DE3935574A DE3935574A1 DE 3935574 A1 DE3935574 A1 DE 3935574A1 DE 3935574 A DE3935574 A DE 3935574A DE 3935574 A DE3935574 A DE 3935574A DE 3935574 A1 DE3935574 A1 DE 3935574A1
- Authority
- DE
- Germany
- Prior art keywords
- segment
- segments
- character
- frame
- coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
- G09G5/28—Generation of individual character patterns for enhancement of character form, e.g. smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G1/00—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
- G09G1/06—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
- G09G1/14—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/002—Generic data access
- G06K2215/0028—Generic data access characterised by the format per se
- G06K2215/0034—Outline coding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S345/00—Computer graphics processing and selective visual display systems
- Y10S345/948—Alteration of stored fonts to maintain feature consistency throughout scaled font
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
Description
Mit der Zunahme der Anzahl und Verfügbarkeit von Computern
erhöht sich auch die Anzahl von verfügbaren Computerprogrammen.
Verfügbare Computerprogramme sind unterschiedlich und
umfassen eine große Vielfalt von Anwendungsmöglichkeiten.
Zusätzlich erweiterte sich der Bereich der Anwender von Programmierern
in der 10 Jahre zurückliegenden Zeit auf die Verwendung
von Computern im Geschäftsleben für eine Vielzahl von
Aufgaben, einschließlich der Textverarbeitung und Buchhaltung.
Es ergibt sich aus der Natur von digitalen Darstellungen kontinuierlicher
analoger Formen, daß eine Beeinträchtigung auftritt,
wenn man eine kontinuierliche Darstellung (wie beispielsweise
ein durch einen Schönschreiber manuell hergestelltes
Schriftbild) in eine diskrete Digitaldarstellung umsetzt.
Programmierer und Ingenieure, die ursprünglichen Benutzer von
Computern, und die Betrachter von computererzeugten digitalen
Schriftbildern (typischerweise auf Bildschirmen und Computerdruckern)
interessierte das Aussehen des Schriftbildes so
lange nicht, wie die Zeichen in irgendeiner Weise lesbar waren.
Inzwischen haben sich sowohl die Betrachter digitaler
Schriftbilder als auch die Ansprüche bezüglich Lesbarkeit und
Schriftbildbeeinträchtigung gewandelt.
Im Ergebnis hat sich die Fähigkeit zur Herstellung lesbarer
digitaler Schriftbilder als extrem wichtig für die Automation
in der Druck- und Schriftsetzindustrie sowie für Benutzer von
Textverarbeitungssystemen erwiesen, bei denen eine lesbare
Briefqualität gefordert wird. Weitere Informationen über digitale
Schriftbilder ergeben sich aus: Bigelow & Day, "Digital
Typography", Scientific American, Seiten 106-119, August
1983; und Karow, Digital Formats For Typefaces, URW Verlag
1987.
Typischerweise wird ein digitales Schriftbild bei seiner Herstellung
manuell entwickelt, digitalisiert und in ein digitales
Schriftbildformat, beispielsweise IKARUS-Format, eingegeben.
Probleme entstehen dadurch, daß Zeichen-Steuerpunkte,
welche die Außenlinie des Zeichens definieren, nicht immer mit
den diskreten Gitterpunkten entsprechend der Auflösung der
Digitalanzeige oder des Druckers koinzidieren. Als Folge davon
werden die Steuerpunkte auf die nächste Gitterposition abgerundet,
und Teile der Buchstaben, die ursprünglich die gleiche
Dimension bzw. Abmessung hatten (beispielsweise die Breiten
der Vertikalabschnitte eines Großbuchstabens "I" und "J")
haben jetzt unterschiedliche Abmessungen. Dies führt zu einer
visuellen Beeinträchtigung des Schriftbildes, da der Leser die
Buchstaben nicht leicht sehen und erkennen kann, wenn sich die
Höhen- und Breitenbeziehungen unter den Buchstaben ändern.
Eine weitere Beeinträchtigung des Schriftbildes tritt dann
auf, wenn die Größe der Buchstaben durch Multiplikation der
Dimensionen mit einem Faktor global erhöht wurde, da dabei
auch die Unstimmigkeiten im Schriftbild mit diesem Faktor
multipliziert werden.
Ein anderes Problem entsteht aufgrund der Tatsache, daß die
Dicken oder Höhen von Zeichen oder Zeichenabschnitten angenähert,
jedoch nicht genau die gleiche Höhe oder Breite haben
können. Wenn der Maßstab des Schriftbildes abnimmt, wächst die
Wahrscheinlichkeit von Verzerrungen aufgrund kleiner Unterschiede
in den Höhen- oder Breitenabmessungen. Wenn beispielsweise
die Zeichenhöhen genau gleich sind, so wäre die skalierte
Version jedes der Zeichen ebenfalls die gleiche. Wenn sich
jedoch die Höhen nur um einen kleinen Betrag unterscheiden und
das Display ein Gerät geringer Auflösung ist, so kann die Höhe
eines Zeichens um ein Pixel aufgerundet und die Höhe eines
anderen Zeichens auf ein anderes Pixel abgerundet werden,
obwohl sich hier die Höhen im Original um weniger als 0,25
eines Pixel unterscheiden. In Fällen eines kleinen Maßstabs
(niedrige Auflösung) ist es ähnlich dem obigen Beispiel erwünscht,
die Höhen der Zeichen auf dasselbe Pixel zu runden,
um die ursprünglichen Symmetrien und Abmessungen zu erhalten.
Daher verliert das Schriftbild die ursprünglichen Symmetrien
und Proportion unter den Zeichen und Zeichenteilen im Schriftbild,
was zu einer visuellen Beeinträchtigung des Schriftbildes
führt.
Um diese Probleme auszuräumen, sind erfahrene Techniker damit
beschäftigt, Fehler im Schriftbild dadurch manuell zu korrigieren,
daß sie jedes Zeichen betrachten und Teile des Zeichens
modifizieren, um dessen Lesbarkeit zu verbessern. Dieses
Verfahren ist jedoch zeitaufwendig und kostspielig. Es gibt
zwei primäre Variable, die beim Skalieren eines digitalen
Schriftbilds für das Display berücksichtigt werden müssen: (1)
die unterschiedlichen Schriftgrößen, z. B. 9-Punkt, 10-Punkt
oder 12-Punkt; und (2) die unterschiedlichen Auflösungen des
Displays oder des Ausgabegeräts. Für jedes Schriftbild muß der
manuelle Prozeß für jeden möglichen Maßstab durchgeführt werden,
der gleich dem Produkt der Auflösung und Schriftgröße
ist. Außerdem ist die Qualität der Arbeit von der Erfahrung
des Technikers abhängig. Computergestützte Verfahren wurden
als Hilfe bei dem manuellen Prozeß eingeführt. Es gibt beispielsweise
Systeme, die das Zeichen anzeigen und einem erfahrenen
Techniker die Mittel zur Hand geben, um das Zeichen
auf dem Display zu betrachten und zu modifizieren. Jedoch
müssen der Einstellvorgang, die Auswahl der einzustellenden
Größen und das jeweilige Einstellmaß noch durch einen erfahrenen
Techniker durchgeführt werden. In der US-PS 46 75 830
ist ein Verfahren zur Erzeugung von skalierenden Schriftbildern
beschrieben, bei dem die relativen Abmessungen der Zeichen
konserviert werden. Jedoch bedingt dieser bekannte Prozeß
nicht nur die Eingabe von das Schriftbild beschreibenden Daten,
sondern auch von Steuerinformationen, wie Schlüsselpunkte
des Schriftbildes, die mit den Raster- oder Gitterpunkten
ausgerichtet sind, und Abmessungen, die zwischen den Gitter-
oder Rasterpunkten existieren. Diese zusätzlichen Eingaben
müssen von einem erfahrenen Techniker von Hand vorgenommen
werden, der die Steuerinformation durch visuelle Inspektion
des Schriftbildes entwickelt.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur
Verfügung zu stellen, mit dessen Hilfe eine visuelle Beeinträchtigung
von digitalen Schriftbildern ohne beachtliche
manuelle Eingaben erfahrener Techniker minimiert bzw. zumindest
wesentlich verringert wird. Im einzelnen gelingt es mit
der Erfindung bzw. deren Weiterbildungen, die Lesbarkeit eines
digitalen Schriftbildes in einem automatischen Prozeß zu verbessern,
die visuelle Symmetrie und Proportionen unter den
Zeichen des Schriftbildes aufrechtzuerhalten, eine frei programmierbare
Skalierung (intelligent scaling) und ein Verfahren
zum Errichten einer Klassifizierung von visuellen Komponenten
zu schaffen, welche die Schriftbildzeichen enthalten,
und ein Verfahren zur Verfügung zu stellen, um die Priorität
visueller Komponenten des Schriftbildes zu bestimmen, wobei
die Komponenten höherer Priorität mit den Gitter- bzw. Rasterpositionen
ausgerichtet sind und die Ausrichtung der Komponenten
geringerer Priorität von der Ausrichtung der Komponenten
höherer Priorität abhängig ist.
Die Erfindung wird vorzugsweise in Verbindung mit einem Digitalcomputer
zum Minimieren der visuellen Beeinträchtigung
verwendet, die auftritt, wenn digitale Schriftbilder hergestellt
und skaliert (maßstabsverändert) werden. Bei der Erfindung
werden die zur Beschreibung jedes Zeichens verwendeten
Rahmen nach einem vorgegebenen Satz von Regeln modifiziert,
wobei die jedes Zeichen ausmachenden sichtbaren Komponenten
und die Priorität, mit der die Komponenten auf Gitterpunkten
und bezüglich vorher ausgerichteter Komponenten ausgerichtet
werden, analysiert und entwickelt werden.
Die Steuerpunkte, die zur Definition des Zeichens in einem
ditigalen Schriftformat dienen, werden zur Bestimmung des
Rahmens eines Zeichens bestimmt. Der Rahmen ist eine vereinfachte
Form des Zeichens und enthält die zu erhaltenden wesentlichen
visuellen Eigenschaften oder Komponenten des Zeichens.
Der Rahmen wird in Horizontalrichtung und in Vertikalrichtung
analysiert, um die Priorität oder die Bedeutung der
die Außenlinie des Rahmens bestimmenden Koordinaten festzustellen.
Die wichtigen Koordinaten, die als Hauptkoordinaten
bezeichnet werden, werden danach weiter analysiert, um die
entsprechenden Hauptsegmente zu bestimmen. Diese Segmente
werden danach zur Bestimmung der Segmentpaare analysiert,
welche Striche (strokes) bilden. Die Striche werden klassifiziert
und mit Prioritäten versehen.
Unter Verwendung der bei der Zeichenanalyse bestimmten visuellen
Komponenten werden die Rahmenkoordinaten, beginnend mit
der Komponente höchster Priorität, dem höchsten Prioritätsstrich,
entsprechend bestimmten Regeln eingestellt, welche
davon abhängig sind, ob die gebildeten Striche in horizontaler
oder vertikaler Richtung orientiert sind. Komponenten mit
niedrigerer Priorität, beispielsweise Striche mit niedrigerer
Priorität, Hauptkoordinaten, die nicht Bestandteil eines Striches
sind, und Rahmenkoordinaten, die nicht als Hauptkoordinaten
definiert sind, werden danach modifiziert oder ausgerichtet
in einer von den zuvor ausgerichteten Komponenten abhängigen
Weise. Als Ergebnis der Priorität und Einstellregeln werden
die wichtigsten visuellen Komponenten jedes Zeichens und die
Beziehung der visuellen Komponenten jedes Zeichens zu anderen
Zeichen des Schriftbildes aufrechterhalten, wodurch die visuelle
Verschlechterung bzw. Beeinträchtigung des Schriftbildes
minimiert wird.
Im folgenden wird die Erfindung anhand eines Beispiels unter
Bezugnahme auf die Zeichnung näher erläutert. In der Zeichnung
zeigt
Fig. 1 einen Computer, mit welchem die Erfindung verwirklicht
wird;
Fig. 2a die zur digitalen Beschreibung von Buchstaben
verwendeten Steuerpunkte;
Fig. 2b die bei der Beschreibung des erfindungsgemäßen
Verfahrens und der erfindungsgemäßen Einrichtung
verwendete Konturkonvention;
Fig. 3 ein das erfindungsgemäße Verfahren in allgemeiner
Form beschreibendes Ablaufdiagramm;
Fig. 4a die Darstellung eines Buchstabens und des entsprechenden
Rahmens;
Fig. 4b ein Ablaufdiagramm, das ein Verfahren zur Bestimmung
des Zeichenrahmens darstellt;
Fig. 5 den Buchstaben "e" und seine Steuerpunkte;
Fig. 6 den aus dem in Fig. 5 dargestellten Buchstaben "e"
gebildeten Rahmen;
Fig. 7a, 7b und 7c die geometrischen Verhältnisse zwischen
Steuerpunkten und Rahmenpunkten;
Fig. 8 ein Ablaufdiagramm zur Beschreibung des bei der
Erfindung verwendeten Analyseprozesses;
Fig. 9a ein Ablaufdiagramm zur Beschreibung des Prozesses
zur Bestimmung der visuellen Komponenten in bezug
auf X-Koordinaten bis zur visuellen Komponente mit
der höchsten Priorität, der X-Hauptstraße; und
Fig. 9b ein Ablaufdiagramm, das den Prozeß der Bestimmung
der visuellen Komponenten mit Bezug auf die
Y-Koordinaten bis zur visuellen Komponente mit der
höchsten Priorität beschreibt;
Fig. 10a die X-Hauptsegmente und X-Striche; und
Fig. 10b die Y-Hauptsegmente und Y-Striche;
Fig. 11a und 11b Ablaufdiagramme zur Beschreibung des
begrenzten Divergenzprozesses nach der Erfindung;
Fig. 12 ein Ablaufdiagramm zur Beschreibung der Horizontaleinstellung
nach der Erfindung;
Fig. 13a den Relativeinstellprozeß nach der Erfindung;
und
Fig. 13b das Verfahren zur Einstellung von Hilfskoordinaten;
Fig. 14 eine Darstellung einer örtlichen Extremstelle;
Fig. 15 ein Ablaufdiagramm, das den Prozeß der Clusterbestimmung
mit Bezug auf den Y-Ausrichtprozeß von
Y-Koordinaten darstellt;
Fig. 16 ein Ablaufdiagramm, das die Y-Ausrichteinstellung
nach der Erfindung beschreibt;
Fig. 17a und 17b Ablaufdiagramme, die den vertikalen
Einstellprozeß nach der Erfindung beschreiben;
Fig. 18 den Ort der Cluster und Striche zur Beschreibung
der Vertikaleinstellung bei dem erfindungsgemäßen
Verfahren;
Fig. 19 ein Ablaufdiagramm zur Beschreibung des diagonalen
Einstellprozesses nach der Erfindung;
Fig. 20 die Einstellung eines Diagonalstriches im Buchstaben
"n"; und
Fig. 21a und 21b die Einstellung der Rahmenpunkte von
diagonalen Strichen bei dem erfindungsgemäßen
Verfahren.
Die folgende Beschreibung ist in mehrere Abschnitte unterteilt.
Der erste dieser Abschnitte befaßt sich mit einer generellen
Systemanordnung zur Durchführung des Verfahrens zur
Minimierung der visuellen Beeinträchtigung von digitalen
Schriftbildern. Nachfolgende Abschnitte behandeln weitere
Aspekte der Erfindung, wie die Analyse der Schriftbilddaten
zur Bestimmung der wesentlichen visuellen Komponenten jedes
Zeichens im Schriftbild, die Priorität der Einstellung der
visuellen Komponenten und die Zeicheneinstellung in horizontalen,
vertikalen und diagonalen Richtungen.
In der folgenden Beschreibung werden zahlreiche spezielle
Einzelheiten angegeben; hierzu gehören Algorithmuskonventionen,
Zeichendefinitionskonventionen, spezielle Anzahlen von
Bits usw. Dies dient der Erleichterung des Verständnisses für
die vorliegende Erfindung. Es ist jedoch für den Fachmann
klar, daß die Erfindung auch ohne diese speziellen Details
realisiert werden kann. In anderen Fällen sind bekannte Schaltungen
und Strukturen nicht im einzelnen angegeben, um die
Erfindung nicht mit unnötigen Details zu belasten.
Fig. 1 zeigt ein typisches computergestütztes System zur
Steigerung der Lesbarkeit von digitalen Schriftbildern, in
welchem die Erfindung verwirklicht ist. Gezeigt ist ein Computer
1 mit drei Hauptkomponenten: Die erste ist die Eingabe/Ausgabe(I/O)-Schaltung
2, die zur Informationsübertragung
in geeignet strukturierter Form zu und von den anderen Teilen
des Computers 1 dient. Ebenfalls als Teil des Computers 1 ist
die Zentraleinheit (CPU) 3 und der Speicher 4 gezeigt. Die
beiden zuletztgenannten Komponenten sind solche, wie sie in
den meisten Universalrechenanlagen und in beinahe sämtlichen
Spezialcomputern verwendet werden. Tatsächlich sind die verschiedenen,
im Computer 1 dargestellten Komponenten repräsentativ
für diese breite Kategorie von Datenverarbeitungsanlagen.
Besondere Beispiele für geeignete Datenverarbeitungsanlagen,
die die Rolle des Computers 1 erfüllen können, umfassen die
von Sun Microsystems, Inc., der Anmelderin, hergestellten
Maschinen. Andere Computer mit vergleichbaren Eigenschaften
können selbstverständlich in entsprechender Weise so ausgestattet
werden, daß sie die weiter unten beschriebenen Funktionen
erfüllen können.
Ebenfalls in Fig. 1 ist eine Eingabevorrichtung 5 gezeigt, die
in typischer Ausführungsform als Tastatur dargestellt ist. Es
ist jedoch klar, daß die Eingabeeinrichtung auch durch einen
Kartenleser, Magnet- oder Papierbandleser oder eine andere
Ausführungsform eines herkömmlichen Eingabegeräts sowie
selbstverständlich auch durch einen anderen Computer gebildet
sein kann. Ein Massespeicher 6 ist mit der I/O-Schaltung 2
gekoppelt und liefert zusätzliche Speicherkapazität für den
Computer 1. Der Massespeicher kann andere Programme und dergleichen
enthalten und auch in Form eines Magnetband- oder
Lochstreifenlasers oder eines anderen bekannten Speichergeräts
vorliegen. Es ist klar, daß die im Massespeicher 6 enthaltenen
Daten in geeigneten Fällen auf übliche Weise als Teil des
Speichers 4 in den Computer einbezogen werden können.
Zusätzlich gibt es einen Display-Monitor 7, der zur Anzeige
von Nachrichten oder anderen Mitteilungen für den Benutzer
dient. Ein solcher Display-Monitor kann als üblicher CRT-Bildschirm
ausgebildet sein. Vorzugsweise kann der Display-Monitor
7 auch die graphischen Bilder, d. h. die Zeichen zur Anzeige
bringen, die aus den erfindungsgemäß modifizierten digitalen
Schriftbilddaten gewonnen werden. Eine Cursor-Steuerung 8
dient zur Auswahl von Befehlsmoden und zum Editieren der Eingabedaten,
beispielsweise des Maßstabs des Schriftbilds, und
bildet ein geeignetes Mittel zur Informationseingabe in das
System.
Im folgenden wird auf Fig. 2a Bezug genommen, in der einige
Groß- und Kleinbuchstaben gezeigt sind. In Fig. 2a sind die
Kleinbuchstaben "o" und "f" und die Großbuchstaben "N" und "G"
dargestellt. Jedem Buchstaben zugeordnet ist eine Gruppe von
Punkten, beispielsweise die Punkte 10, 15, 20 und 25, welche
Steuerpunkte des zugehörigen Zeichens sind. Die Steuerpunkte
hängen von dem zur Beschreibung des Zeichens benutzten Digitalformat
ab. Bei dem beschriebenen Beispiel werden die Zeichen
und Steuerpunkte unter Berücksichtigung eines Konturformats
mit geradlinigen Segmenten und konischen und Bezier-Kurven
und -Bögen definiert. Geradlinige Segmente werden durch
zwei Steuerpunkte, konische Bögen durch drei Steuerpunkte und
Bezier-Bögen durch vier Steuerpunkte beschrieben. So beschreiben
beispielsweise in Fig. 2a die Steuerpunkte 10, 15 und 25
einen konischen Bogen zwischen den Punkten 15 und 25, wobei
der Steuerpunkt 10 den Krümmungsradius des Bogens vorgibt. Es
gibt viele andere Formate, beispielsweise das IKARUS-Format, das
DI-Format, das VC-Format und das VS-Format, die ebenfalls zur
Definition digitaler Schriftbilder verwendet werden. Die nachfolgende
Beschreibung bezieht sich jedoch auf das oben angegebene
Format.
Bei der Beschreibung des Prozesses werden die Zeichen nach
einer einzigen Konventionsdarstellung beschrieben. Das Verfahren
ist jedoch nicht auf die Verwendung in Verbindung mit der
einzigen Konvention beschränkt und kann ohne Schwierigkeiten
auf andere Konventionen Anwendung finden. In der nachfolgenden
Konvention besteht das Zeichen aus einer oder mehreren Konturen,
von denen jede eine Grenze zwischen "schwarz" und "weiß"
definiert. Jede Kontur besteht aus einem Anfangspunkt, gefolgt
von einer Folge von Bögen. Jeder Bogen ist durch einen Kurventyp
und zwei oder mehr Steuerpunkte definiert. Aufgrund der
Kontinuität der Kontur ist der erste Punkt jedes Bogens implizite
der letzte Punkt des vorhergehenden Bogens. Der letzte
Punkt des letzten Bogens muß mit dem Anfangspunkt zusammenfallen.
Die Konturen sind in bezug auf ein Koordinatensystem
derart definiert, daß: (1) bei Betrachtung des Zeichens in der
normalen Leseposition die X-Achse in Richtung der nachfolgenden
Zeichenverschiebung, d. h. nach rechts im römischen Alphabet,
nach unten in einer chinesischen Schrift, weist; (2) die
Y-Achse im Gegenuhrzeigersinn um 90° von der X-Achse gedreht
ist; und (3) die Richtung der Kontur im Uhrzeigersinn verläuft,
wenn die eingeschlossene Zone schwarz ist, während
anderenfalls die Konturrichtung im Gegenuhrzeigersinn verläuft.
Es gibt keine Wendepunkte oder Extremstellen außerhalb
der Endpunkte des Bogens. Dabei ist zu beachten, daß ein Bogen
mit einem Wendepunkt oder einem Extrempunkt, der sich nicht an
einem Endpunkt befindet, in zwei Bögen am Wende- oder Extrempunkt
unterteilt werden kann, so daß der Wende- oder Extrempunkt
an den Endpunkten der neu gebildeten Bögen auftritt.
Um diese Konvention besser verständlich zu machen, wird der
Buchstabe "e" betrachtet. Hierzu wird auf Fig. 2b Bezug genommen.
Die äußere Kontur des Buchstabens ist in Uhrzeigerrichtung
orientiert, da die äußere Kontur eine Schwarzzone umgibt.
Die innere Kontur umgibt eine weiße Zone und wird daher im
Gegenzeigersinn umfahren.
Die Beschreibung der Kurventypen (d. h. geradliniges Segment,
konische oder Bezier-Bögen) bleiben während des Einstellvorgangs
unverändert; nur die Steuerpunkte ändern sich. Das eingestellte
Zeichen ist sodann dasjenige, das von der gleichen
Kurventypenbeschreibung definiert und von den eingestellten
Steuerpunkten gesteuert ist.
In der Beschreibung wird auf die Auflösung, Schriftgröße und
den Maßstab des Anzeigegeräts Bezug genommen. Die Auflösung
des Display-Geräts wird in Pixeln angegeben, das ist eine
bekannte Computergraphik-Displaygröße. Die Auflösung kann auch
als Pixelgesamtzahl in horizontaler und vertikaler Richtung
z. B. 1024 Pixel×1024 Pixel) des Displays oder als Anzahl
von Pixeln pro Maßeinheit angegeben werden. Die Schriftgröße
wird in als Punkte bezeichneten Einheiten ausgedrückt, also in
einer auf dem Gebiet der Typographie bekannten Einheit. Wenn
eine Schriftgröße zehn Punkte beträgt, so ist der Abstand zur
Oberseite (Kopf) des höchsten Zeichens der Schrift (z. B. des
Buchstabens "A"), Oberlängenabstand genannt, plus dem Abstand
zum Boden des tiefsten Zeichens der Schrift (z. B. des Buchstabens
"g"), Unterlänge genannt, 10 Punkte. Ein Punkt ist
gleich 1/72 Zoll. Der Maßstab ist gleich dem Produkt der Auflösung
und der Schriftgröße; wenn beispielsweise die Schriftgröße
sechs Punkte und die Auflösung 144 Pixel/Zoll beträgt,
so ist der Maßstab:
Im folgenden wird anhand der Fig. 3 das erfindungsgemäße Verfahren
kurz beschrieben. Im Block 50 werden die Eingabedaten,
bestehend aus den Steuerpunkten für jedes der Zeichen des
Schriftbilds, in das System eingegeben. Im Block 55 analysiert
das System diese Informationen und bestimmt aus den
eingegebenen Steuerpunkten den Rahmen des Zeichens. Im Block
60 werden die den Rahmen definierenden Koordinaten weiter
analysiert, um die wichtigen visuellen Komponenten jedes der
Schriftbildzeichen und die Priorität der Reihenfolge der Bedeutung
dieser eingestellten Komponenten für die Minimierung
der sichtbaren Beeinträchtigung des Schriftbildes zu bestimmen.
Im Block 65 werden die Schriftbildzeichen unter Verwendung
der Zeichenrahmen und der Analyse der wichtigen visuellen
Komponenten eingestellt, wobei eine frei programmierbare (intelligent)
Skalierungsmethode zur Erzeugung der eingestellten
Rahmen entsprechend dem gewünschten Maßstab Verwendung findet.
Das Verfahren hält die wichtigen visuellen Merkmale des
Schriftbilds, insbesondere die Konsistenz der Strichstärken,
die horizontale Ausrichtung der Buchstaben (d. h. die Ausrichtung
der Y-Koordinaten der Zeichen), das Verhältnis des
weißen Raumes innerhalb eines Zeichens sowie die Gesamtbreite
des Zeichens aufrecht. Im Block 70 werden dann die ursprünglichen
Steuerpunkte jedes der Zeichen derart eingestellt, daß
sie zu den eingestellten Rahmen korrespondieren. Die eingestellten
Steuerpunkte dienen zur Steuerung der Kurventypbeschreibung
für die Zeichenerzeugung, bei der die visuelle
Beeinträchtigung des Schriftbildes minimiert ist.
Der erste Schritt des Verfahrens besteht in der Bestimmung des
Rahmens jedes Zeichens. Zweck der Bestimmung des Rahmens ist
die Vereinfachung jedes der Zeichen auf eine Folge diskreter
Punkte, die zur Einstellung des Zeichens analysiert und modifiziert
werden können. Ein Rahmen ist eine Kombination von
Polygonen, eine für jede der Zeichenkonturen. Diese Polygone
sind einfacher als das ursprüngliche Zeichen und erhalten
trotzdem die grundsätzlichen visuellen Eigenschaften des Zeichens.
Der Rahmen enthält eine Folge von geradlinigen Segmenten,
welche der Form des Zeichens derart folgen, daß es ein
geradliniges Segment für jede horizontale Tangente, vertikale
Tangente, geradliniges Segment, Tangente eines Wendepunkts und
für Tangenten an die Neigung einer Unstetigkeitsstelle gibt.
Auf der Basis des in Fig. 4a gezeigten Zeichens wird der Rahmen
durch Verbinden der horizontalen Tangenten 71, vertikalen
Tangenten 72, Wendepunkttangenten 73, geradlinigen Segmenten
des Zeichens 74 und Tangenten an Unstetigkeitsstellen 75 gebildet.
Vorzugsweise dient das in Fig. 4b veranschaulichte Verfahren
der Konstruktion des Rahmens eines Zeichens. Im Block 76 wird
ein Polygon durch Verbinden der Steuerpunkte des Zeichens
entsprechend ihrer Reihenfolge (entsprechend der Richtung des
Rahmens) konstruiert. Im Block 80 wird dann jedem Steuerpunkt
die Eigenschaft "erhalten" ("r") oder "nicht-erhalten" ("n")
zugeordnet. Anfänglich werden die den Endpunkten des Bogens
entsprechenden Steuerpunkte erhalten und an den restlichen
Punkten als nicht-erhalten identifiziert. Die erhaltenen Punkte
sind diejenigen Punkte, welche nachfolgend als Rahmenpunkte
identifiziert werden.
Das Polygon wird danach in ein Polygon niedrigerer Ordnung
dadurch vereinfacht, daß die für die Erhaltung der fundamentalen
visuellen Eigenschaften des Zeichens überflüssigen Steuerpunkte
eliminiert werden. In einer Folge von Polygonplätzen
(r-n-n-r) (typisch für einen Bezier-Bogen) wird der zentrale
Bereich, das ist der Bereich zwischen den beiden nicht-erhaltenen
Punkten, entfernt, und die umgebenden Plätze werden bis
zur gegenseitigen Schnittstelle verlängert. Der neue Punkt,
der an der Schnittstelle der beiden Plätze auftritt, wird als
nicht-erhalten bezeichnet. Im Block 87 werden in einer Reihe
von ausgerichteten Punkten alle Punkte bis auf die beiden
Extrempunkte eliminiert. Wenn die Folge zwei oder mehr erhaltene
Punkte enthielt oder wenn einer ihrer Punkte ein Wendepunkt
ist, werden die restlichen Punkte, die beiden Extrempunkte,
als erhalten bezeichnet. Im Block 90 werden bei der
Punktfolge ⟨n-r-n . . . n-r⟩ alle zwischen den aufeinanderfolgenden
⟨n⟩ Punkten vorhandenen Plätze eliminiert, und die
Plätze an den Enden der von ⟨r-n⟩ und ⟨n-r⟩ Punkten begrenzten
Folge werden in Richtung aufeinander so weit verlängert, bis
sie zum Schnitt kommen. Der Schnittpunkt wird als erhalten
bezeichnet.
Die nach Beendigung dieses Verfahrens verbleibenden Punkte
sind die Rahmenpunkte, welche den Rahmen des Zeichens bilden.
Fig. 5 zeigt den Buchstaben "E", identifiziert durch seine
Steuerpunkte. Fig. 6 zeigt den Rahmen des Buchstabens. Es ist
deutlich, daß trotz gewisser Vereinfachung des Buchstabens,
z. B. die Ränder sind eckig und das Zeichen ist aus geradlinigen
Segmenten zusammengesetzt, die wesentlichen visuellen
Charakteristiken aufrechterhalten bleiben. Insbesondere sind
die relative Dicke gewisser Punkte des Zeichens in bezug auf
andere Abschnitte des Zeichens, die Höhe und Breite des Zeichens
sowie die relativen Winkel verschiedener Abschnitte des
Zeichens wesentliche sichtbare Merkmale, die erhalten bleiben.
Der Rahmen liefert eine vereinfachte Darstellung des Zeichens
zur Durchführung der nachfolgenden Analyse und Einstelloperationen.
Sobald der Rahmen eingestellt worden ist, können die
eingestellten Werte der Steuerpunkte des Zeichens, die bei der
Bildung des Rahmens eliminiert wurden, aus bekannten geometrischen
Beziehungen zwischen den ursprünglichen Werten des Rahmens
und den Steuerpunkten berechnet werden.
Beispielsweise zeigt Fig. 7 die drei Situationen während des
oben beschriebenen Verfahrens zur Bildung des Rahmens, bei
denen Steuerpunkte eliminiert werden. Fig. 7a stellt eine
Polygondarstellung eines Bezier-Bogens dar. Der Drei-Segment-Bogen
ist durch die Punkte U-M-N-V definiert. Der Steuerpunkt
U und der Steuerpunkt V bilden die Endpunkte des Bogens.
Während der Bildung des Rahmens werden Steuerpunkte M und N
eliminiert, und die von den Steuerpunkten U-M und V-N dargestellten
Liniensegmente werden so weit verlängert, bis sie
einander am Punkt O schneiden, wodurch das Polygon auf zwei
Segmente U-O und O-V vereinfacht wird. Unter Verwendung linearer
Transformationen kann der eingestellte Wert des Steuerpunkts
M mit der folgenden Gleichung berechnet werden:
wobei ′ der eingestellte Wert von , ′ der eingestellte Wert
von und ′ der eingestellte Wert von ist.
N wird in ähnlicher Weise unter Verwendung der folgenden
Gleichung eingestellt:
wobei ′ der eingestellte Wert von , ′ der eingestellte Wert
von und ′ der eingestellte Wert von ist.
In ähnlicher Weise zeigt Fig. 7b eine Folge von ausgerichteten
Steuerpunkten U-M-V, wobei der Steuerpunkt M während des Prozesses
der Bildung des Rahmens eliminiert wurde. Der eingestellte
Wert von M kann nach der folgenden Gleichung berechnet
werden:
wobei ′ der eingestellte Wert des Steuerpunkts , ′ der
eingestellte Wert von und ′ der eingestellte Wert von
ist.
Fig. 7c stellt eine Folge von Punkten ⟨r-n-n . . . n-r⟩ dar,
wobei die Steuerpunkte M, N, P und Q zwischen den Endpunkten U
und V eliminiert und durch einen einzigen Steuerpunkt, identifiziert
durch O, ersetzt wurden. Letzterer wurde durch Verlängerung
der Segmente U-M und V-Q gebildet. Die eingestellten
Werte der eliminierten Steuerpunkte können unter Verwendung
linearer Transformationen berechnet werden. So läßt sich beispielsweise
der eingestellte Wert des Steuerpunkts M nach der
folgenden Gleichung berechnen:
wobei M u und M v den Ort des Steuerpunkts relativ zu den
Steuerpunkten U und V, V′ x und V′ y jeweils die eingestellten
X- und Y-Koordinatenwerte von V, U′ x und U′ y jeweils
die eingestellten X- und Y-Koordinatenwerte von U und O′ X
und O′ Y jeweils die eingestellten X- und Y-Koordinatenwerte
von O sind.
Steuerpunkte N, P und Q können in ähnlicher Weise durch Ersetzen
der Steuerpunkt-Koordinatenwerte für die Werte von M in
der obigen Gleichung berechnet werden.
Der neue Einstellprozeß wird dann auf die Rahmenpunkte zur
Einstellung der Zeichen angewendet, wobei auch gewährleistet
wird, daß die relativen Höhen und Breiten der Zeichen und die
visuellen Beziehungen, die der Benutzer wahrnimmt, bei einem
vorgegebenen Maßstab erhalten bleiben.
Die Analyse wird an jedem Rahmen zur weiteren Zeichenvereinfachung
durchgeführt, wobei die zu erhaltenden wesentlichen
sichtbaren Merkmale bestimmt und der Rahmen in eine Vielzahl
sichtbarer und mit Prioritäten versehener Komponenten aufgebrochen
wird. Die festgestellten visuellen Komponenten werden
nachfolgend nach der Priorität eingestellt, um die visuelle
Beeinträchtigung des Schriftbildes zu minimieren.
Das Verfahren der Bestimmung der wesentlichen visuellen Merkmale
jedes Zeichens wird kurz anhand des Ablaufdiagramms der
Fig. 8 beschrieben. Die Rahmen der Zeichen werden separat in
horizontalen und vertikalen Richtungen analysiert, um die
wesentlichen visuellen Komponenten und die Bedeutungspriorität
während des nachfolgenden Einstellprozesses zu bestimmen.
Im Block 100 werden zunächst die Rahmenpunkte zur Feststellung
der X-Hauptkoordinaten untersucht. Eine X-Hauptkoordinate wird
an denjenigen Rahmenpunkten definiert, die für die visuelle
Darstellung des Zeichens wichtig sind.
Sobald die X-Hauptkoordinaten bestimmt sind, Block 105, werden
die X-Hauptsegmente gebildet. Diese Segmente werden in der
Vertikalrichtung unter Verwendung der X-Hauptkoordinaten gebildet.
Im Block 110 werden X-Striche durch Paarbildung von
X-Hauptsegmenten gebildet. Im Block 115 wird die X-Hauptstraße
bestimmt, welche die wichtigsten visuellen Elemente des Zeichens
in bezug auf die X-Koordinaten enthält.
Die Y-Koordinaten werden in ähnlicher Weise analysiert. Im
Block 120 werden die Y-Hauptkoordinaten bestimmt. Unter Verwendung
der Y-Hauptkoordinate werden im Block 125 die Y-Hauptsegmente
gebildet. Im Block 130 werden die Y-Striche und in
Block 135 die Y-Hauptstraße bestimmt. Sobald die Analyse abgeschlossen
ist, sind die wichtigsten visuellen Komponenten der
Zeichen - die Hauptpunkte, die Hauptsegmente, die Striche und
die Hauptstraße - bestimmt. Die Priorität der Komponenten
entspricht der Reihenfolge, mit der die Komponenten bestimmt
wurden, die Hauptstraße hat die höchste Priorität, und die
Hilfspunkte, d. h. Rahmenpunkte, die nicht Hauptpunkte sind,
haben die niedrigste Priorität.
Die Analyse des Rahmens zur Bestimmung der wichtigen visuellen
Komponenten wird im folgenden genauer beschrieben. Wie oben
gesagt, werden zunächst die X-Hauptkoordinaten bestimmt. Im
Block 300 in Fig. 9a wird eine X-Hauptkoordinate an jeder
X-Koordinate eines Rahmenpunktes bezeichnet, der eine X-Extremstelle
oder örtliche Extremstelle ist. So existieren beispielsweise
im Buchstaben "F" X-Extrema an den äußersten rechten
und linken Stellen der oberen Horizontallinie, und ein
örtliches X-Extremum existiert an der äußersten rechten Stelle
der unteren Horizontallinie. Das rechte Ende der unteren Horizontallinie
ist ein örtliches Extremum, da sich die Linie
nicht so weit nach rechts wie die obere Linie erstreckt, jedoch
im örtlichen Bereich des Zeichens am weitesten nach
rechts reicht. Die Extrema bilden die Grenzen oder Ecken des
Zeichens, die ein wichtiges visuelles Merkmal darstellen, da
sie die Höhe oder Breite eines Zeichens oder eines Abschnitts
eines Zeichens bestimmen.
Im Block 310 wird eine X-Hauptkoordinate auch als eine X-Koordinate
eines Rahmenpunkts bezeichnet, wenn dieser Rahmenpunkt
ein Endpunkt einer vertikalen oder beinahe vertikalen Linie
des Rahmens darstellt. Eine beinahe vertikale Linie ist eine
Linie, die visuell als Vertikale erscheint. Vorzugsweise hat
eine fast vertikale Linie eine Minimalneigung im Bereich von
1 : 5 zu 1 : 20.
Diejenigen Koordinaten, die keine X-Hauptkoordinaten sind,
werden als X-Hilfskoordinaten bezeichnet und sind die visuellen
Komponenten des Zeichens mit der niedrigsten Priorität.
Im Block 315 werden dann X-Hauptsegmente unter Verwendung von
X-Hauptkoordinaten gebildet. Ein X-Hauptsegment wird gebildet,
indem von einer X-Hauptkoordinate ausgegangen und vertikal
aufwärts oder abwärts verlängert wird. Jedes Ende des Segments
liegt weg von dem dem X-Hauptkoordinatenpunkt entsprechenden
Rahmenpunkt, bis jedes Ende des Segments um eine vorgegebene
Horizontalstrecke von dem Ort des Rahmens entfernt ist, der
sich in Uhrzeigerrichtung weg vom Hauptkoordinatenpunkt erstreckt,
wenn der Endpunkt des Hauptsegments in Aufwärtsrichtung
verläuft, oder der Seite des Rahmens, die sich von dem
X-Hauptpunkt im Gegenuhrzeigersinn erstreckt, wenn der Endpunkt
des Hauptsegments in Abwärtsrichtung liegt. Diese vorgegebene
Distanz ist angenähert die Hälfte der maximalen X-Größe,
die zur Erzeugung des Schriftbilds verwendet wird. In der
Praxis ist die Mindestanzahl von Pixeln pro Einheit, definiert
als Summe der Ober- und Unterlängen eines Schriftbildes, angenähert
10. Vorzugsweise liegt daher der Abstand bzw. die
Strecke in der Größenordnung von 0,01 bis 0,02 der durch die
Summe der Ober- und Unterlängen definierten Strecke. Diese
Segmente stellen eine weitere Vereinfachung der wichtigen
visuellen Merkmale des Zeichens dar.
Wie in Block 320 angegeben ist, werden zur Bildung von Strichen
X-Hauptsegmente nach vorgegebenen Regeln gepaart. In der
Typographie ist ein Strich oder Balken die Art von Form, wie
sie von einem Bleistift oder einem sonstigen Schreibgerät bei
Bewegung entlang einer geradlinigen oder leicht gekrümmten
Bahn erzeugt wird. In dem erfindungsgemäßen System stellen die
Striche die primären visuellen Elemente des Zeichens dar und
sind Elemente, welche für den Einstellprozeß die höchste Bedeutung
haben. Ein X-Strich befindet sich dort, wo zwei Segmente
einander vertikal über eine solche Strecke überlappen,
die zur visuellen Definition eines Strichs ausreichend ist.
Die Richtung des Segments dient zur Beschreibung der Farbe des
Segments und entspricht der benutzten Konvention. Einen Abschnitt
der Kurve eines Zeichens darstellende Segmente übernehmen
die Eigenschaften der Kurve; daher erben die einen
Abschnitt der Kurve darstellenden Segmente die Innen/Außeneigenschaft
dieses Kurvenabschnitts. Entsprechend der oben angegebenen
Konturenkonvention hat ein X-Segment eine "Innen"-Farbe,
wenn es in der positiven oder Aufwärtsrichtung orientiert
ist, und es hat eine "Außen"-Farbe, wenn es in der negativen
oder Abwärtsrichtung orientiert ist. Zusätzlich werden die
X-Hauptsegmente in der Reihenfolge zunehmender Koordinaten
geprüft, d. h., die Segmente werden von links, wo die niedrigeren
Koordinatenwerte liegen, nach rechts zu den höheren Koordinatenwerten
geprüft. Daher wären zwei Segmente gegenüberliegend,
wenn der erste geprüfte Strich eine "Innen"-Farbe und
der zweite Strich eine "Außen"-Farbe hat.
Die Innen/Außensegmente müssen einander über ein solches Stück
vertikal überlappen, daß die Kombination der beiden Segmente
einen visuell erkennbaren Strich bildet. Vorzugsweise wird das
Vorhandensein eines Strichs nach dem Verhältnis der vertikalen
Überlappungslänge zum Abstand zwischen den Segmenten bestimmt.
Wenn ein Strichverhältnis größer als 1 : 1 ist, wird es als
Strich angesehen, und wenn es kleiner oder gleich 1 : 1 ist,
bilden die beiden Segmente keinen Strich. Die Segmente überlappen
einander vertikal, wenn der Y-Minimalkoordinatenwert
jedes Segments kleiner als der Y-Maximalkoordinatenwert des
anderen Segments ist. Die Größe der Überlappung ist gleich dem
kleinsten Y-Maximalwert der beiden Segmente minus dem größten
Y-Minimalwert der beiden Segmente.
Die Paarbildung der beiden X-Hauptsegmente für die Bildung der
X-Hauptstriche läßt sich am besten in der Darstellung erläutern.
Hierzu wird auf Fig. 10a Bezug genommen, in der sechs
Segmente an den X-Koordinaten X₁-X₆ angeordnet sind. Um
zu bestimmen, welche X-Hauptsegmente Striche bilden, werden
die X-Hauptsegmente von links nach rechts geprüft, und es wird
der Versuch unternommen, gegenüberliegende Segmente paarweise
zusammenzustellen. Daher wird das Hauptsegment X₁ in Verbindung
mit dem Hauptsegment an X₂ untersucht. Das Hauptsegment
bei X₁ hat eine "Innen"-Farbe, und das Hauptsegment bei X₂
hat eine "Außen"-Farbe. Die Segmente sind daher zueinander
entgegengesetzt. Die Segmente werden weiter untersucht, um
festzustellen, ob sich die Segmente vertikal überlappen. Die
Segmente überlappen sich vertikal, da der minimale Y-Koordinatenwert
des X₁-Segments, das ist Y₃ kleiner, als der maximale
Y-Koordinatenwert (Y₆) des gegenüberliegenden Segments
(X₂) ist und der minimale Y-Koordinatenwert Y₃ des X₂-Segments
kleiner als der maximale Y-Koordinatenwert Y₇ des
gegenüberliegenden X₁-Segments ist. Die Größe der vertikalen
Überlappung beträgt:
MIN (Y₇, Y₆) - MAX (Y₃, Y₃) = (Y₆ - Y₃)
wobei MAX und MIN Funktionen sind, welche jeweils die Maximal-
und Minimalwerte bestimmen. Es läßt sich visuell erkennen, daß
das Verhältnis der Größe der vertikalen Überlappung zum Abstand
zwischen den Segmenten größer als 1 : 1 ist; daher bilden
die Segmente bei X₁ und X₂ einen Strich bzw. Balken.
Die Segmente bei X₃ und X₄ bilden keinen Strich, da sie
die Bedingung entgegengesetzter Segmente nicht erfüllen, wonach
das zuerst geprüfte Segment, das linke Segment, eine
"Innen"-Farbe und das zweite oder rechte Segment eine "Außen"-Farbe
hat. In ähnlicher Weise fehlt es auch den Segmenten bei
X₄ und X₅ an den Voraussetzungen zur Bildung eines Strichs
oder Balkens, da die Segmente keine gegensätzliche Farbe haben
und sich dementsprechend nicht gegenüberliegen können. Das
zuletzt analysierte Segmentenpaar, X₅ und X₆, bildet keinen
Strich, da die Länge der vertikalen Überlappung klein und
das Strichverhältnis kleiner als 1 : 1 ist.
Im Block 330 der Fig. 9a wird die X-Hauptstraße konstruiert.
Die X-Hauptstraße enthält nicht-horizontal überlappende, kräftige
X-Striche. Jeder Strich wird als kräftiger oder schwacher
Strich klassifiziert. Ein kräftiger Strich wird im Einstellprozeß
vor und mit Priorität zu einem schwachen Strich ausgewertet,
da er einen stärkeren visuellen Eindruck auf den Betrachter
ausübt und für den Betrachter deutlicher zu erkennen
ist. Vorzugsweise ist ein Strich dann ein kräftiger Strich,
wenn das Strichverhältnis größer oder gleich 1,5 : 1 ist. Wenn
das Strichverhältnis kleiner als 1,5 : 1 ist, wird der Strich
als schwacher Strich klassifiziert.
Die Striche werden in der Reihenfolge der Längen derart ausgewertet,
daß bei einer horizontalen Überlappung von zwei Strichen
der längere Strich auf einer X-Hauptstraße liegt. Die
X-Hauptstraße berücksichtigt die wichtigsten visuellen Elemente
des Zeichens in bezug auf die X-Koordinaten. Daher sind die
Striche auf einer Hauptstraße die ersten in der Horizontalrichtung
einzustellenden Elemente, damit die visuelle Beeinträchtigung
des Schriftbildes minimiert wird. Unter Bezugnahme
auf die Fig. 10a ist der durch die Segmente an den Stellen
X₁ und X₂ gebildete Strich Teil der X-Hauptstraße, da der
Strich ein kräftiger Strich ist und keinen längeren kräftigeren
Strich horizontal überlappt.
Die Y-Koordinaten der Rahmenpunkte werden in ähnlicher Weise
wie die X-Koordinaten der Rahmenpunkte analysiert. Im folgenden
wird auf Fig. 9b Bezug genommen: Im Block 340 wird eine
Y-Hauptkoordinate an einer Y-Koordinate eines Rahmenpunktes
definiert, der eine Y-Extremstelle oder eine örtliche Y-Extremstelle
ist. Im Block 345 wird ebenfalls eine Y-Hauptkoordinate
an einer Y-Koordinate eines Rahmenpunktes definiert,
wenn dieser Rahmenpunkt ein Endpunkt einer horizontalen oder
beinahe horizontalen Linie des Rahmens ist. Vorzugsweise hat
eine fast horizontale Linie eine minimale Steigung im Bereich
von 5 : 1 bis 20 : 1.
Am Block 350 werden Y-Hauptsegmente aus Y-Hauptkoordinaten
durch Verlängerung weg von dem der Y-Hauptkoordinate entsprechenden
Rahmenpunkt in einer Richtung nach rechts und nach
links von diesem Rahmenpunkt gebildet. Die Endpunkte des Segments
reichen soweit, bis jedes Ende des Segments einen vorgegebenen
Vertikalabstand von der Seite des Rahmens hat, die
sich in Uhrzeigerrichtung weg von der Hauptkoordinate erstreckt,
wenn das Segmentende auf der rechten Seite liegt,
und der Seite des Rahmens, die sich weg von der Y-Hauptkoordinate
in Gegenuhrzeigerrichtung erstreckt, wenn der Endpunkt
des Y-Hauptsegments links liegt.
Im Block 355 werden Y-Striche oder -balken aus zwei gegenüberliegenden
Y-Hauptsegmenten gebildet, die einander horizontal
um eine solche Strecke überlappen, die zur visuellen Definition
eines Strichs ausreicht. Die Segmente werden in der Reihen
zunehmender Y-Koordinaten (d. h. vom Boden nach oben) und
entsprechend der oben beschriebenen Konturenkonvention untersucht,
nach der ein Y-Segment eine "Innen"-Farbe hat, wenn
seine Richtung nach links geht, und eine "Außen"-Farbe hat,
wenn seine Richtung nach rechts geht. Die beiden Segmente sind
einander gegenüberliegend, wenn das Bodensegment eine "Innen"-Farbe
und das Kopfsegment eine "Außen"-Farbe hat. Die Segmente
überlappen einander horizontal, wenn der minimale X-Koordinatenwert
jedes Segments kleiner als der maximale X-Koordinatenwert
des gegenüberliegenden Segments ist. Die Größe der
Überlappung ist gleich dem kleinsten maximalen Y-Wert der
beiden Segmente minus dem größten minimalen Y-Wert der beiden
Segmente.
Fig. 10b stellt den Vorgang der Bildung von Y-Strichen dar.
Fünf Y-Hauptsegmente liegen auf den Y-Koordinatenpositionen
Y₁-Y₅. Um festzustellen, welche Y-Hauptsegmentstriche bzw.
Balken bilden, werden die Segmente, beginnend mit dem bodenseitigen
Y-Hauptsegment Y₁, bis zum deckseitigen Y-Hauptsegment
Y₅ untersucht. Die Segmente an den Orten Y₁ und Y₂
werden zuerst daraufhin geprüft, ob die beiden Segmente einander
gegenüberliegen. Das erste Segment am Ort Y₁ ist ein
"Innen"-Segment; das zweite Segment bei Y₂ ist aber ebenfalls
ein "Innen"-Segment und kein "Außen"-Segment, wie es zur
Bildung von gegenüberliegenden Segmenten bei einem Strich
notwendig ist. Daher wird die nächstmögliche Paarung von Y-Hauptsegmenten
an den Stellen Y₂ und Y₃ untersucht. Die
Segmente liegen einander gegenüber, da das Y-Hauptsegment an
der Stelle Y₂ ein "Innen"-Segment und das Y-Hauptsegment bei
Y₃ ein "Außen"-Segment ist. Die Segmente werden jetzt analysiert,
um festzustellen, ob die Segmente einander horizontal
überlappen und wie groß die Überlappung ist. Die Segmente
überlappen einander horizontal, da das X-Minimum X₃ des
Y-Hauptsegments am Ort Y₂ kleiner als das X-Maximum X₇ des
Y-Hauptsegments am Ort Y₃ ist und das X-Minimum X₁ des
Segments bei Y₃ kleiner als das X-Maximum X₉ des Y₂-Segments
bei Y₃ ist. Die Größe der horizontalen Überlappung ist
gleich:
MIN (X₉, X₇) - MAX (X₃, X₁) = (X₇ - X₃)
Da der Abstand (X₇-X₃) viel größer als der Y-Abstand
(Y₃-Y₂) zwischen den Segmenten ist, ist auch das Strichverhältnis
größer als 1 : 1, und die Y-Hauptsegmente an den
Stellen Y₂ und Y₃ bilden einen Strich.
Die Y-Hauptsegmente an den Stellen Y₄ und Y₅ werden danach
analysiert, um festzustellen, ob die beiden Segmente einen
Strich bilden. Die Segmente bilden einen Strich, da das Segment
Y₄ eine "Innen"-Farbe und das Segment bei Y₅ eine
"Außen"-Farbe hat, die Segmente einander horizontal überlappen
und die Länge der Überlappung (X₄-X₂) größer als der Abstand
(Y₅-Y₄) zwischen den Segmenten ist, so daß das
Strichverhältnis größer als 1 : 1 ist.
Nach der Bestimmung der Y-Striche im Block 360, Fig. 9b, werden
die Y-Striche untersucht, um festzustellen, welche Striche
die Y-Hauptstraße bilden. Die Y-Hauptstraße enthält nicht-vertikal
überlappende, starke Y-Striche. Jeder Y-Strich wird als starker
oder schwacher Strich klassifiziert, wobei der starke
Strich einen stärkeren visuellen Eindruck auf den Betrachter
hervorruft als ein schwacher Strich. Die Striche werden in der
Reihenfolge zunehmender Längen ausgewertet, so daß bei einer
vertikalen Überlappung von zwei kräftigen Strichen der längere
Strich Bestandteil der Y-Hauptstraße wird. Die Y-Hauptstraße
berücksichtigt die wichtigsten visuellen Elemente bezüglich
Y-Koordinaten; diese Elemente werden die zuerst eingestellten
Elemente. In dem Beispiel gemäß Fig. 10b ist der von den bei
Y₄ und Y₅ gelegenen Segmenten gebildete Strich ein kräftiger
Strich, der jedoch mit dem kräftigen Strich aus den Segmenten
an den Stellen Y₂ und Y₃ überlappend ist. Daher
wird nur der längere Strich, der zwischen den Segmenten Y₄
und Y₅ gebildete Strich, Bestandteil der Y-Hauptstraße.
Sobald die Zeichen des Schriftbildes zur Bestimmung der das
Zeichen ausmachenden visuellen Komponenten und zur Bewertung
der Bedeutung der Komponenten analysiert worden sind, wird das
Schriftbild zur Minimierung der visuellen Beeinträchtigung
eingestellt. Die Rahmenkoordinaten werden nach ihrer Bedeutung
entsprechend der während des Analyseprozesses des Zeichens
bestimmten Priorität der visuellen Komponenten definiert und
durch drei Prozesse eingestellt, die als horizontale, vertikale
und diagonale Einstell- oder Justierprozesse bezeichnet
werden. Bei dem horizontalen Einstellprozeß werden die X-Koordinaten
der jedes Zeichen beschreibenden Rahmenpunkte und beim
vertikalen Einstellprozeß die Y-Koordinaten der Rahmenpunkte
eingestellt. Bei dem diagonalen Einstellprozeß werden diejenigen
Rahmenpunkte eingestellt, welche die diagonalen Striche
oder Balken im Zeichen bilden.
Wie aus der nachfolgenden Beschreibung klar wird, ist die
Einstellung der Zeichen des Schriftbildes optimiert, wenn alle
drei Prozesse an demselben Satz von Rahmenpunkten zusammen
verwendet werden; jedoch können diese Prozesse auch einzeln
oder in Verbindung mit anderen Einstellverfahren verwendet
werden, wobei sie immer noch die visuellen Charakteristiken
der Zeichen des Schriftbildes verbessern.
Zunächst wird der horizontale Einstellprozeß beschrieben. Bei
dem horizontalen Einstellprozeß sind die Gesamtbreite des
Zeichens, die Dicke der Striche innerhalb eines Zeichens und
die Strichdicken in bezug auf die Strichdicken anderer Zeichen
des Schriftbildes wichtige visuelle Merkmale, deren Erhaltung
erwünscht ist.
Häufig ist während des Einstellprozesses notwendig, eine gitterferne
Koordinate auf die nächste Gitter-, d. h. Pixel-Position
einzustellen. Dies kann einfach durch Runden des Koordinatenwertes
auf die nächste Gitterposition geschehen. Ein
einfaches Runden ergibt Divergenz- und Konvergenzprobleme. Die
Divergenzprobleme treten auf, wenn zwei verschiedene Koordinatenwerte,
unabhängig von ihrer Nähe, auf verschiedene Gitterpositionen
bei bestimmten Maßstäben gerundet werden. Inkonsistente
Konvergenz tritt auf, wenn zwei unterschiedliche Koordinatenwerte
bei einem vorgegebenen Maßstab auf dieselbe Gitterposition
und bei einem kleineren Maßstab auf eine unterschiedliche
Gitterposition gerundet werden. Dies ist störend,
da die visuellen Differenzen mit abnehmendem Maßstab kleiner
werden sollten. Um diese Probleme zu vermeiden, wird ein neuartiges
Verfahren, im folgenden als begrenztes Divergenzverfahren
bezeichnet, zum Einstellen der gitterverschobenen Koordinatenwerte
und der gitterverschobenen Abstände verwendet.
Der begrenzte Divergenzprozeß stellt die Werte in der Reihenfolge
abnehmender Priorität derart ein, daß die Einstellung
der Werte höherer Priorität die Einstellung der niedrigeren
Prioritätswerte beeinflußt.
Im folgenden wird auf die Fig. 11a und 11b Bezug genommen,
anhand deren der begrenzte Divergenzprozeß beschrieben wird.
Im Block 500 wird ein Feld V aus n Elementen gebildet, das die
einzustellenden Werte enthält. Die Anzahl n der Segmente im
Feld ist gleich der Anzahl der einzustellenden Werte. Die
Werte sind im Feld in der Reihenfolge zunehmender Werte organisiert.
Im Block 505 wird ein zweites Feld P entsprechend
dem Feld V gebildet, das die Prioritätsreihenfolge der in V
gespeicherten Werte derart enthält, daß P(i) die Prioritätsreihenfolge
des Werts in V(i) enthält. Die Priorität des Werts
ist abhängig von der Häufigkeit, mit der der Wert in der Gruppe
von Werten auftritt. Daher erhalten in einer Gruppe von
Werten diejenigen Werte die höheren Prioritäten, die häufiger
auftreten. Im Block 515 wird ein drittes Feld B von n Elementen
gebildet. Anfänglich sind die Bitwerte im dritten Feld B
auf Null gesetzt. Sobald ein Wert V(i) eingestellt ist, wird
das entsprechende Feldelement B(i) auf Eins gesetzt. Im Block
520 wird ein viertes Feld A mit n Elementen gebildet, das dem
Feld V entspricht und die eingestellten Werte enthält.
Im Block 525 wird ein fünftes Feld I gebildet, das dem ersten
Feld V entspricht und den Index desjenigen Werts enthält,
dessen Priorität unmittelbar kleiner als die Priorität des
gerade eingestellten Werts ist. Das Element des Feldes I, das
dem niedrigsten Prioritätswert entspricht, enthält einen Wert
gleich -1, um anzugeben, daß es keine niedrigeren Prioritätswerte
gibt.
Um das Verfahren genau arbeiten zu lassen, muß der kleinste
Wert zuerst eingestellt werden; daher wird im Block 530 die
Priorität des kleinsten Werts auf die höchste Priorität gesetzt.
Im Block 535 wird der kleinste Wert entsprechend der
folgenden Gleichung eingesetzt:
A (0) = R(V( 0) · S).
Hierbei ist R eine Rundungsfunktion, die einfach den Wert auf
die nächste Gitterposition rundet, und S ist der Maßstab des
Schriftbildes. B (0) wird auf Eins gesetzt, um anzugeben, daß
das erste Element, welches der kleinste Wert aller Werte im
Feld V ist, eingestellt worden ist. Der Index k für das Feld
wird auf I (0) gesetzt. I (0) enthält den Index, der auf den
nächst niedrigsten Prioritätswert (V(k)) hinweist.
Der eingestellte Wert von V(k) wird danach berechnet. Im Block
545 wird m gleich k-1 gesetzt. Danach wird eine Suche eingeleitet,
beginnend mit dem Feldelement B(m) und fortfahrend
unter Verminderung des Index m des Feldes B so lange, bis ein
Element B(m) gleich eins ist. Daher ist der Feldwert V(m) der
größte eingestellte Wert, der kleiner als V(k) ist. In Block
550 wird r gleich k+1 gesetzt. Eine Suche wird eingeleitet,
beginnend beim Feldelement B(r) und fortfahrend unter Zunahme
des Index des Feldes B, bis B(r)=1 oder r=n. Wenn r=n (d. h.
ein Wert B(r)=1 wurde gefunden), so ist V(r) der kleinste
eingestellte Wert, der noch größer als V(k) ist. Wenn r≠n, so
wurden alle Elemente des Feldes B mit einem Indexwert größer
als k gesucht und keine Werte im Feld V eingestellt, die
größer als V(k) sind.
Wenn r=n, so ist der eingestellte Wert von r(k):
A(k) = A(m) + R((V(k) - (V)m) · S)
wobei R eine Funktion ist, die den Klammerwert
(V(k)-V(m)) · S) auf die nächste Gitterposition rundet und S
der Maßstab ist. Wenn r≠n, B(r)=1 und der eingestellte Wert
von V(k) ist gleich:
A(k) = A(m) + R((A(r) - A(m)) · (V(k) - V(m))/(V(r) - V(m)))
Sobald der eingestellte Wert A(k) im Block 565 berechnet worden
ist, wird der entsprechende Bitwert B(k), der anzeigt, daß
der Wert eingestellt worden ist, auf 1 gesetzt, und im Block
570 k wird gleich dem Wert I(k) gesetzt, wodurch der Index k
auf den Index desjenigen Werts in V gebracht wird, dem die
nächst niedrigste Priorität zukommt. Wenn I(k) gleich -1 ist,
so ist der Einstellprozeß abgeschlossen, da es keinen Wert V
gibt, der eine niedrigere Priorität hat. Wenn I(k) nicht
gleich -1 ist, wird der Prozeß wiederum im Startblock 545
fortgesetzt und läuft als Schleife von Block 545 zu Block 575,
bis I k=-1. Bei Beendigung des begrenzten Divergenzprozesses
enthält das Feld A die eingestellten Werte der in V gespeicherten
Werte.
Die Horizontaleinstellung wird im folgenden unter Bezugnahme
auf das Ablaufdiagramm in Fig. 12 beschrieben. Im horizontalen
Einstellprozeß ist die Dicke der X-Striche ein wesentliches
visuelles Element. Daher werden im Block 400 die Stärken aller
X-Striche im Schriftbild global eingestellt (eingestellt relativ
zu allen X-Strichen im Schriftbild), so daß die Größenbeziehungen
unter den Strichstärken aufrechterhalten bleiben,
wodurch die Striche vergleichmäßigt werden. Der örtliche
Divergenzprozeß wird zur globalen Einstellung der X-Strichstärken
verwendet, wobei die X-Strichstärken in das Feld V
eingegeben werden, um die Stärke zu vergrößern, und die Priorität
wird entsprechend der Häufigkeit jeder in dem Schriftbild
auftretenden Strichstärke eingestellt.
Sobald die X-Strichstärken global eingestellt sind, wird die
visuelle Komponente mit der höchsten Priorität, die X-Hauptstraße,
eingestellt. Die Stärken der Striche auf der X-Hauptstraße
wurden eingestellt; daher werden im Block 420 die
weißen Räume zwischen den X-Hauptstraßenstrichen eingestellt,
welche die relative Lage der X-Hauptstraßenstriche innerhalb
jedes Zeichens bestimmen.
Die weißen Abstände werden bezüglich der Gesamtbreite des
Zeichens lokal eingestellt, die globale Einstellung der
Y-Hauptstraßenstrichstärke kann dazu führen, daß das Zeichen
in seiner Gesamtbreite zunimmt oder abnimmt. Da die Breite
eines Zeichens ein wichtiges visuelles Merkmal ist, ist es
erwünscht, die ursprüngliche Breite des Zeichens aufrechtzuerhalten.
Die Breite des Zeichens umfaßt die Strichstärken der
X-Weißräume. Um die ursprüngliche Breite des Zeichens zu erhalten,
wird eine Verzerrung der Gesamtbreite, bedingt durch
die Einstellung der Striche, durch Einstellung des X-Weißraumes
absorbiert. Wenn beispielsweise die Strichstärke nach
Einstellung die Gesamtbreite des Zeichens erhöht, wird die
X-Abmessung des weißen Raums vermindert, um die Breitenzunahme
zu kompensieren. Der weiße Raum in X-Richtung wird zunächst
durch einen den weißen Raum betreffenden Skalenfaktor skaliert.
Der Weißraum-Skalenfaktor wird nach der folgenden Beziehung
berechnet:
wobei "Breite" die gesamte ursprüngliche Zeichenbreite
"Strich", die gesamten eingestellten Strichstärken auf der
X-Hauptstraße und "weiß" der ursprüngliche weiße Gesamtraum in
X-Richtung sind.
Der skalierte X-Weißraum wird danach unter Verwendung der
begrenzten Divergenzmethode entsprechend der obigen Beschreibung
eingestellt, um die Symmetrie der Größe des X-Weißraums
innerhalb jedes Zeichens zu erhalten.
Obwohl die Strichstärken global bestimmt werden, wird die
Einstellung des Ortes dieser Striche innerhalb des Zeichens
lokal bestimmt. Im Block 415 wird die Lage der Striche, d. h.
die Rahmenpunkte der Striche, innerhalb jedes Zeichens einfach
entsprechend dem eingestellten X-Weißraum bestimmt. Wenn beispielsweise
ein Zeichen aus 3 X-Hauptstraßenstrichen X₁,
X₂ und X₃ bestand und Striche X₁ und X₂ durch X-Weißraum
W₁ und Striche X₂ und X₃ durch X-Weißraum W₂
getrennt sind, so wäre der relative Ort von Strich X₁ an der
äußeren linken Seite des Zeichens, und der relative Ort von
Strich X₂ wäre gleich der eingestellten Stärke von Strich
X₁ plus dem eingestellten X-Weißraum W₁. In ähnlicher
Weise wäre der relative Ort von Strich X 3 gleich der Summe der
eingestellten Stärke von Strich X 1, dem eingestellten X-Weißraum
W₁, der eingestellten Stärke von X 2 und dem eingestellten
X-Weißraum W 2.
Nach der Berechnung des X-Weißraums und der Einstellung der
Rahmenpunkte der X-Hauptstraßenstriche werden unter Bezugnahme
auf Fig. 12, Block 415, die Rahmenpunkte, welche die nicht auf
der X-Hauptstraße liegenden Striche bilden, eingestellt. Die
schwachen Striche und die überlappenden Striche, die nicht auf
der Hauptstraße liegen, werden mit der nächsten Hauptstraßenseite
ausgerichtet, und die andere Seite wird bei gegebener
global eingestellter Dicke des Striches berechnet. Die Striche
werden nach dem nachfolgend beschriebenen Prozeß, bezeichnet
als "relativer Einstellprozeß", eingestellt. Im folgenden wird
auf Fig. 13a Bezug genommen. Die Orte X₄-X₅, X₁-X₃ und
X₉-X₁₀ identifizieren Striche auf der X-Hauptstraße,
X₀-X₂ und X₇-X₈ identifizieren die Striche, die nicht
die X-Hauptstraße erreichen, und X₆ identifiziert den Ort einer
Koordinate, die nicht zur Bildung eines Strichs benutzt wurde.
Der relative Einstellprozeß wird unter Verwendung des Strichs
X₇-X₈ als Beispiel beschrieben. Zuerst wird bestimmt,
welche Seite oder welches den Strich X₇-X₈ bildende Segment
am nächsten zur Seite oder zum Segment eines Strichs auf
der X-Hauptstraße liegt. Daher werden bei dem gegebenen Beispiel
die Abstände zwischen den Segmenten an den Orten X₇
und X₅ und zwischen den Segmenten an den Orten X₈ und X₉
verglichen. Wie aus Fig. 13a zu sehen ist, ist der Abstand
zwischen X₈ und X₉ wesentlich kürzer als der Abstand zwischen
X₅ und X₇. Daher ist die Seite X₈ das der nächsten
Hauptstraßenseite am nächsten gelegene Segment und wird relativ
zum Segment am Ort X₉ des Hauptstraßenstrichs X₉-X₁₀
eingestellt. X₈ wird nach der folgenden Gleichung berechnet:
X₈′ = X₉′ - R ((| X₉ - X₈ |) · S₅₉)
wobei R die Rundungsfunktionen für den Wert zum nächsten Gitterpunkt,
X₉′ der eingestellte Wert von X₉ und S₅₉ der
Skalenfaktor zwischen den Segmenten an den durch X₅ und X₉
identifizierten Stellen ist. Zum proportionalen Einstellen der
Abstände zwischen eingestellten Hauptstraßenstrichen halten
die Skalenfaktorfunktionen die relativen Abstände zwischen den
Hauptstraßenstrichen und den Nicht-Hauptstraßenstrichen und
Hauptkoordinaten und Hauptstraßenstrichen aufrecht. Daher ist
der Skalenfaktor für die vorliegende Einstellrechnung gleich:
wobei X₅ und X₅′ jeweils der Wert und der eingestellte
Wert des Ortes der nächsten X-Hauptstraßenstrichseite auf der
einen Seite des einzustellenden Segments, X₉ und X₉′ jeweils
der Wert und der eingestellte Wert des Orts des V die
nächst der X-Hauptstraßenstrichseite auf der anderen Seite des
einzustellenden Segments sind und S der Maßstab der Schrift
bzw. des Schriftbildes ist.
Sobald die Koordinaten des ersten Segments des Strichs, im
vorliegenden Beispiel X₈, eingestellt sind, werden die Koordinaten
des anderen Segments X₇ des Strichs einfach nach der
global eingestellten Strichstärke eingestellt. Daher ist bei
dem Beispiel X₇ gleich dem eingestellten Wert von X₈ minus
der eingestellten Strichstärke.
Im folgenden wird erneut auf Fig. 12 Bezug genommen, und zwar
auf den Block 430. Nachdem die Nicht-X-Hauptstraßenstriche
eingestellt sind, werden die Hauptkoordinaten der Hauptsegmente,
welche keine Striche bilden, und die Hauptkoordinaten, die
keine Hauptsegmente bilden, eingestellt. Jede X-Hauptkoordinate
wird mit dem nächsten Segment eines X-Hauptstraßenstrichs
ausgerichtet und der Abstand auf die nächste Gitterposition
gerundet. Das Segment eines X-Hauptstraßenstrichs, der der
Hauptkoordinate am nächsten liegt, wird zuerst bestimmt. Unter
Bezugnahme auf Fig. 13a ist die Hauptkoordinate X₆ die dem
Segment am Ort X₅ des Hauptstraßenstrichs X₄-X₅ am nächsten
gelegene. Daher ist der eingestellte Wert von X₆
gleich:
X₆′ = X₅′ + R((X₆ - X₅)S₅₉)
wobei X₅′ der eingestellte Wert von X₅ ist. Der Skalenfaktor
S₅₉ wird wiederum verwendet, da X₆ zwischen den Segmenten
an den Orten X₅ und X₉ der Striche X₄-X₅ und
X₉-X₁₀ liegt.
Im Block 435, Fig. 12, werden die Hilfskoordinaten (d. h. diejenigen
Rahmenkoordinaten, die nicht X-Hauptkoordinaten sind)
eingestellt, nachdem alle Hauptkoordinaten eingestellt worden
sind. Die Hilfskoordinaten werden proportional zu den beiden
benachbarten Hauptkoordinaten im Rahmen eingestellt. So wird
beispielsweise in Fig. 13 die Hilfskoordinate X₁ relativ zu
den Hauptkoordinaten X₀ und X₂ eingestellt, die der Hilfskoordinate
X₁ in Uhrzeiger- oder Gegenuhrzeigerrichtung
entlang des Rahmens am nächsten oder benachbart liegen. Der
eingestellte Wert der Hilfskoordinaten X₁ ist gleich:
wobei X₀′, X₂′ die eingestellten Werte der Hauptkoordinaten
X₀ und X₂ sind.
Der vertikale Einstellprozeß wird an dem Rahmen des Zeichens
zum Einstellen der Y-Koordinatenwerte der Rahmenpunkte durchgeführt.
Bei dem vertikalen Einstellprozeß werden die oberen
und unteren vertikalen Extremstellen jedes Zeichens (das sind
die Kopf- und Fußenden der Zeichen) in bezug auf das gesamte
Schriftbild als ein wichtiges visuelles Merkmal angesehen. Es
ist daher erwünscht, die Höhe jedes Zeichens und die vertikale
Beziehung der Zeichen untereinander im Schriftbild aufrechtzuerhalten.
Es wurde gefunden, daß generell die Kopf- und Bodenseiten
der Buchstaben mit den Kopf- und Bodenseiten anderer
Buchstaben des Schriftbildes visuell in Ausrichtung sind. So
liegen beispielsweise an den Kopfenden die meisten Großbuchstaben
in derselben Zone. In ähnlicher Weise liegen die Kopfenden
der meisten Kleinbuchstaben in derselben Zone. Es wurde
auch gefunden, daß in vielen Fällen die örtlichen Extremstellen
der Zeichen typischerweise mit den Extremstellen anderer
Zeichen des Schriftbildes ausgerichtet sind. Dies ist in Fig. 14
dargestellt. Die Oberseite des Bogenabschnitts 600 des
Kleinbuchstabens "b" ist eine örtliche Extremstelle für diesen
Abschnitt des Zeichens. Die obere Extremseite des Buchstabens
"b" ist am Kopfende des langen vertikalen Abschnitts 605. Es
ist außerdem zu sehen, daß die obere örtliche Extremstelle 600
im Buchstaben "b" in gewisser Vertikalausrichtung mit der
kopfseitigen Extremstelle 615 des Kleinbuchstabens "o" ist.
Der erfindungsgemäß vorgesehene vertikale Einstellprozeß nutzt
die obigen Beobachtungen hinsichtlich der vertikalen Ausrichtung
der Buchstaben im Schriftbild aus. Die oberen und unteren
Extremstellen der Zeichen werden separat ausgewertet. Daher
werden alle durchgeführten Einstellungen auch relativ zu
"gleichen" Daten durchgeführt; z. B. wird ein Kopfsegment eines
Buchstabens nur relativ zu den oberen Extremstellen von anderen
Buchstaben im Schriftbild und ein Fußsegment eines Buchstabens
nur relativ zu den bodenseitigen Extremstellen von
anderen Buchstaben in dem Schriftbild eingestellt. Soweit
möglich, wird ein Y-Segment unter Verwendung des X-Ausrichtprozesses
eingestellt, wobei, wie weiter unten beschrieben,
das Segment mit den X-Zonen, definiert durch die Extremstellen
der Zeichen des Schriftbildes, ausgerichtet wird.
Im folgenden wird auf Fig. 15 Bezug genommen. In Block 650
werden die Zeichen im Schriftbild ausgewertet, um die Y-Koordinatenzonen
oder "Kluster" zu bestimmen, wo die oberen vertikalen
Extremstellen (Kopfextrema) der Zeichen im Schriftbild
liegen. Die Kopfkluster werden dadurch bestimmt, daß die Y-Koordinatenwerte
auf die Kopfextrema der Zeichen untersucht und
die Abstände zwischen den Y-Koordinatenwerten berechnet werden.
Ein Kluster ist eine Gruppe von aufeinanderfolgenden
Y-Koordinatenwerten, die jeweils um nicht mehr als eine vorgegebene
Strecke voneinander entfernt liegen. Wenn daher ein
Y-Koordinatenwert einer Kopfextremstelle um mehr als die vorgegebene
Strecke von einer anderen Kopfextremstelle entfernt
ist, so wird ein Kluster mit einer Kopfextremstelle an dem
Y-Koordinatenwert gebildet. Die einen Kluster anzeigende vorgebende
Strecke sollte groß genug sein, um die Mehrzahl von
Kopfextremstellen in einer gewissen Zone unter Berücksichtigung
beispielsweise des Kopfs der Großbuchstaben zu einem Teil
des einzigen Klusters zu machen. Vorzugsweise liegt die vorgegebene
Strecke innerhalb des Bereichs von 0,005 bis 0,01 der
Summe der Oberlängenhöhe und der Unterlängenhöhe des Schriftbilds.
Die meisten Kopfextremstellen der Zeichen darstellenden
Koordinaten liegen innerhalb einer kleinen Menge von
Klustern.
Im Block 652 werden danach einige Kopfkluster als wichtige
Kopfkluster identifiziert. Die wichtigen Kluster werden nachfolgend
als Bezugspunkte zum Einstellen der Vertikalkoordinaten
der Zeichen benutzt. Ein Kopfkluster ist ein wichtiger
Kopfkluster, wenn: (1) er der extreme Kopfkluster aller Kluster
ist oder (2) die Zahl von Kopfextremstellen, die der
Kluster enthält, größer oder gleich einem vorgegebenen Prozentsatz
der Gesamtzahl von Kopfextremstellen ist, welche die
Köpfe oder oberen Enden der Zeichen identifizieren und einen
vorgegebenen Minimalprozentsatz der Anzahl von Kopfextremstellen
im größten oder wichtigsten Kopfkluster enthalten. Vorzugsweise
muß ein wichtiger Kluster 10 bis 20% der Geamtzahl
von Kopfextremstellen und wenigstens 20 bis 30% der Anzahl
von Kopfextremstellen des größten Kopfklusters enthalten.
In den Blöcken 655 und 657 werden die unteren Vertikalextremstellen
(Bodenextrema) der Zeichen des Schriftbildes ausgewertet,
um die Bodenkluster und die wichtigen Bodenkluster zu
bestimmen. Die Kluster werden unter Verwendung des gleichen
Prozesses wie bei der Bestimmung der Kopfkluster ermittelt.
Ein Bodenkluster ist eine Gruppe von aufeinanderfolgenden
Y-Koordinatenwerten der Bodenextremstellen, bei denen die
aufeinanderfolgenden Y-Koordinatenwerte nicht weiter als eine
vorgegebene Distanz voneinander entfernt sind. Die vorgegebene
Distanz, die zur Bestimmung der Zugehörigkeit von zwei Bodenextremstellen
zu demselben Kluster verwendet wird, ist vorzugsweise
ein Wert innerhalb des Bereichs von 0,005 bis 0,01
der Summe der Oberlängenhöhe und der Unterlängenhöhe. Bei
Benutzung der obigen Lehre zur Bildung von Klustern liegen die
meisten Y-Koordinatenwerte entsprechend den Fußextremstellen
der Zeichen innerhalb einer kleinen Anzahl von Klustern.
In Block werden die wichtigsten Bodenkluster bestimmt. Wichtig
ist ein Bodenkluster, wenn (1) er der extreme Bodenkluster
aller Kluster ist oder (2) die Anzahl von Bodenextremstellen,
die der Kluster enthält, größer oder gleich einem v 29189 00070 552 001000280000000200012000285912907800040 0002003935574 00004 29070orgegebenen
Prozentsatz der Gesamtzahl von Bodenextremstellen ist und der
Kluster einen vorgegebenen Minimumprozentsatz der Anzahl von
Bodenextremstellen enthält, die im größten oder wichtigsten
Bodenkluster enthalten sind. Vorzugsweise enthält ein wichtiger
Kluster 10 bis 20% der Gesamtzahl von Bodenextremstellen
und wenigstens 20 bis 30% der Anzahl von Bodenextremstellen
im größten Bodenkluster.
Nach der Bildung der wichtigsten Kopf- und Bodenkluster können
die Y-Hauptsegmente analysiert werden, um festzustellen, ob
die Y-Koordinaten der Hauptsegmente unter Verwendung des
Y-Ausrichtungseinstellprozesses justiert oder eingestellt
werden können. Um ein Y-Hauptsegment unter Verwendung des
Y-Ausrichtprozesses einstellen zu können, muß das Segment: (1)
schwarz-konvex sein und innerhalb eines wichtigen Klusters des
gleichen Typs liegen oder (2) das extreme Kopfsegment oder
extreme Bodensegment des Zeichens sein.
Ein Segment ist schwarz-konvex, wenn es ein Kopfextremum oder
ein örtliches Kopfextremum ist und eine "Außen"-Farbrichtung
hat oder wenn das Segment ein Bodenextremum oder örtliches
Bodenextremum ist und eine "Innen"-Farbe hat. Ein Beispiel für
ein schwarz-konvexes Segment ist die Kopfextremstelle des
Buchstabens "O". Die Ausrichtung der schwarz-konvexen Segmente
ist ein unterscheidendes sichtbares Merkmal der Buchstaben,
dessen Erhaltung erwünscht ist.
Das schwarz-konvexe Segment muß auch innerhalb eines Klusters
des gleichen Typs liegen. Daher muß das Bodensegment innerhalb
eines wichtigen Bodenklusters und ein Kopfsegment innerhalb
eines wichtigen Kopfklusters liegen. Ein Segment ist ein Kopfsegment,
wenn es eine "Außen"-Farbe hat. In ähnlicher Weise
ist ein Segment ein Bodensegment, wenn es eine "Innen"-Farbe
hat.
Die Y-Ausrichteinstellmethode führt eine relative Einstellung
der Y-Koordinaten zum Aufrechterhalten der visuellen Höhen-
und Längenunterschiede unter den Zeichen im Schriftbild durch,
wenn ein solcher Unterschied unter Berücksichtigung der Auflösung
des Displays genau ausgedrückt werden kann. Außerdem
werden durch die Methode Unterschiede eliminiert, wenn die
Auflösung zu grob wird. Der Prozeß berücksichtigt die Tatsache,
daß die meisten Extremstellen und örtlichen Extremstellen
des gleichen Typs vertikal in die gleichen Zonen ausgerichtet
sind.
Im folgenden wird auf Fig. 16 Bezug genommen, anhand der die
Y-Ausrichtmethode beschrieben wird. Im Block 700 wird der
wichtige Y-Koordinatenwert YIMPT des wichtigen Klusters bestimmt,
in welchem das Segment liegt. YIMPT ist gleich dem
extremen Kopfkoordinatenwert, wenn der Kluster ein Kopfkluster
ist, oder er ist ein extremer Bodenkoordinatenwert des
Klusters, wenn der Kluster ein Bodenkluster ist. Im Block 705
wird YIMPT auf die niedrigste Gitter- oder Rasterposition
gerundet, um YIMPT′ zu erzeugen. Im Block 710 wird der Abstand
"d" zwischen dem Segment im wichtigen Kluster und YIMPT′ bestimmt.
Im Block 715 wird der begrenzte Divergenzprozeß zur
Einstellung des Abstandes "d" benutzt. Die Werte aller Abstände
"d" zwischen den Y-auszurichtenden Segmenten und den entsprechenden
YIMPT′-Werten werden in den begrenzten Divergenzprozeß
eingegeben, damit die visuellen Beziehungen unter den
Y-Segmenten nach der Einstellung erhalten bleiben. Im Block
720 wird der eingestellte Y-Koordinatenwert des Segments berechnet.
Wenn das Segment ein Kopfsegment ist, so ist der
eingestellte Y-Koordinatenwert gleich YIMPT′-d′. Wenn das
Segment ein Bodensegment ist, so ist der eingestellte Y-Koordinatenwert
gleich YIMPT′+d′.
Fig. 18 und das Ablaufdiagramm gemäß Fig. 17 werden im folgenden
zur Darstellung des vertikalen Einstellprozesses herangezogen.
Kluster Y₀-Y₁ und Y₃-Y₅ sind wichtige Bodenkluster,
und Kluster Y₈-Y₉, Y₁₂-Y₁₅ und Y₁₇-Y₁₈
sind wichtige Kopfkluster. Zu Erläuterungszwecken sei angenommen,
daß das Kopfsegment jedes Strichs eine "Außen"-Farbe und
das Bodensegment jedes Strichs eine "Innen"-Farbe hat. Striche
Y₂-Y₄, Y₆-Y₇, Y₁₁-Y₁₃ und Y₁₅-Y₁₆ enthalten
schwarz-konvexe Segmente, und Y₂-Y₄, Y₆-Y₇,
Y₁₁-Y₁₃ und Y₁₅-Y₁₆ sind Striche auf der Y-Hauptachse.
Im Block 665 werden die Dicken der Y-Striche unter Verwendung
der begrenzten Divergenzmethode global eingestellt. Im Block
667 werden die Werte von "d", dem Abstand zwischen einem unter
Verwendung des Y-Ausrichtprozesses einzustellenden Segment,
und dem YIMPT′ des Klusters, in welchem das Segment liegt,
nach dem begrenzten Divergenzprozeß global eingestellt. Die
Kopf- und Bodenextremstellen sind wichtige visuelle Elemente
jedes Zeichens, und daher werden im Block 669 die die Kopf-
und Bodenextremstellen des Zeichens bildenden Segmente mit dem
Y-Ausrichtprozeß eingestellt. Wenn die Y-Segmente Teil eines
Strichs sind, wird das andere Segment des Strichs nach der
eingestellten Dicke des Strichs eingestellt. Bezug genommen
wird auf das Beispiel gemäß Fig. 18. Das extreme Bodensegment
Y₂ wird auf Kluster Y₀-Y₁ mit dem Y-Ausrichtprozeß eingestellt.
Das andere Segment Y₄ des Strichs wird nach der
eingestellten Dicke des Strichs eingestellt. In ähnlicher
Weise wird das extreme Kopfsegment Y₁₆ des Strichs
Y₁₅-Y₁₆ auf Kluster Y₁₇-Y₁₈ unter Verwendung des
Y-Ausrichtprozesses eingestellt, und das Segment Y₁₅ wird
nach der eingestellten Dicke des Strichs justiert. Sobald die
Y-Koordinaten der Kopf- und Bodenextremstellen eingestellt
sind, wird die Y-Hauptstraße eingestellt.
Im Block 670 werden die Segmente der Y-Hauptstraßenstriche,
die schwarz-konvex sind und innerhalb eines wichtigen Klusters
des gleichen Typs liegen, unter Verwendung des Y-Ausrichtprozesses
eingestellt.
Wenn ein Segment eines Striches durch Y-Ausrichtung eingestellt
wurde, wird im Block 675 das den Strich bildende andere
Segment nach der eingestellten Stärke des Strichs eingestellt.
Wenn daher die eingestellte Seite unter der anderen Seite des
Strichs liegt, wird die andere Seite des Strichs durch Addieren
der eingestellten Strichstärke zu dem eingestellten Y-Koordinatenwert
des Y-ausgerichteten Strichs eingestellt. In
ähnlicher Weise wird der Strich dann, wenn die eingestellte
Seite über der anderen Seite des Strichs liegt, durch Subtrahieren
der eingestellten Strichstärke von dem eingestellten
Koordinatenwert des ausgerichteten Strichs eingestellt.
Bei dem Beispiel gemäß Fig. 18 ist das Segment Y₁₃ aus dem
Y-Hauptstraßenstrich Y₁₁-Y₁₃ schwarz-konvex und innerhalb
eines wesentlichen Klusters des gleichen Typs Y₁₂-Y₁₄.
Daher wird die Y-Rahmenkoordinate des Segments Y₁₃ unter
Verwendung des Y-Ausrichteinstellprozesses eingestellt. Das
andere, den Strich bildende Segment Y₁₁ wird nach der eingestellten
Strichstärke eingestellt.
Die restlichen Y-Hauptstraßenstriche werden unter Verwendung
des Y-Weißraums eingestellt. Daher muß der Y-Weißraum eingestellt
werden. Im Block 680 werden die Räume zwischen den
eingestellten Y-Hauptstraßenstrichen und den nicht-eingestellten
Hauptstraßenstrichen eingestellt. Der Y-Weißraum
wird zuerst durch Multiplikation des Weißraums mit dem Weißskalenfaktor
skaliert. Der Weißskalenfaktor ist:
wobei Y d die ursprüngliche Y-Gesamtdistanz vom Boden zum
Kopf des Zeichens ist. Strich′ ist die Gesamtstärke der eingestellten
Striche, und weiß ist der ursprüngliche Y-Weißgesamtraum.
Der skalierte Y-Weißraum wird dann örtlich eingestellt, und
zwar unter Verwendung der weiter oben beschriebenen begrenzten
Divergenzmethode. Es ist jedoch notwendig, nur den zu verwendenden
Y-Weißraum zu skalieren, um die Striche einzustellen.
Wenn ein Zeichen eine Anzahl N von Strichen enthält, so begrenzt
typischerweise N+1 Weißraum die Seiten der Striche, und
nur Y-Weißraum wird zur Einstellung der Striche benötigt.
Vorzugsweise werden daher nur die Y-Weißräume eingestellt,
welche zur Einstellung der Y-Striche notwendig sind. Vorzugsweise
werden alle Y-Weißräume bis auf den größten Y-Weißraum
eingestellt, da der größte Y-Weißraum visuell am wenigsten
Dimensionsänderungen erkennen läßt. Der größte Weißraum ist
dann gleich der Differenz der Y-Gesamtdistanz und der Summe
aus eingestellten Strichstärken und Y-Weißraum.
Im Block 685 werden diejenigen Striche auf der Y-Hauptachse,
die mit Y-Ausrichtung nicht eingestellt werden konnten, relativ
zu den eingestellten Strichen und dem Y-Weißraum mit dem
relativen Einstellprozeß eingestellt. Auf diese Weise wird in
dem in Fig. 18 gezeigten Beispiel der Y-Hauptstraßenstrich
Y₆-Y₇ eingestellt. Zunächst wird dasjenige, den Strich
bildende Segment Y₆ oder Y₇ bestimmt, welches einem eingestellten
Hauptstraßenstrich am nächsten liegt. In diesem
Beispiel wird der Abstand zwischen Y₁₁ und Y₇ mit dem
Abstand zwischen Y₆ und Y₄ verglichen. Da der Abstand
zwischen Y₆ und Y₄ kleiner als derjenige zwischen Y₇ und
Y₁₁ ist, wird die Strichseite Y₆ relativ zur Strichseite
Y₄ unter Verwendung der folgenden Gleichung ausgerichtet:
Y₆′ = Y₄′ + R((Y₆ - Y₄) · S₄₁₁))
wobei Y₄′ der eingestellte Wert des Segments Y₄ und S₄₁₁
der Maßstab zwischen den Hauptstraßensegmenten Y₄ und Y₁₁
ist. Die andere Seite des Strichs Y₇ wird durch Addition der
eingestellten Strichstärke zum eingestellten Wert von Y₆
eingestellt.
Sobald alle Striche auf der Y-Hauptstraße eingestellt sind,
werden alle Segmente der Striche, die nicht auf der Y-Hauptstraße
liegen, eingestellt. Hierzu wird auf Fig. 17 Bezug
genommen. Im Block 690 werden die nicht auf der Y-Hauptstraße
liegenden Strichsegmente, die schwarz-konvex und innerhalb
eines wichtigen Klusters des gleichen Typs sind, unter Verwendung
des Y-Ausrichteinstellprozesses eingestellt. In ähnlicher
Weise werden im Block 691 die die anderen Seiten der
Striche bildenden Segmente nach der eingestellten Stärke jedes
Striches eingestellt.
Im Block 693 werden die restlichen Nicht-Y-Hauptstraßenstriche
relativ zu den eingestellten Y-Hauptstraßenstrichen
nach der relativen Einstellmethode eingestellt.
Sobald die Striche berechnet sind, werden im Block 695 die
Y-Hauptkoordinaten der Y-Hauptsegmente eingestellt, welche
keine Striche bilden. Wenn das Y-Hauptsegment schwarz-konvex
ist und innerhalb eines wichtigen Klusters des gleichen Typs
liegt, wird das Segment unter Verwendung des Y-Ausrichteinstellprozesses
eingestellt. Anderenfalls wird die Y-Hauptkoordinate
des Segments relativ zu den eingestellten Y-Hauptstraßenstrichen
unter Verwendung des relativen Einstellprozesses
eingestellt. So würde beispielsweise die Hauptkoordinate
Y₁₀ in Fig. 18 relativ zu Y₁₁, der nächsten Y-Hauptstraßenseite,
unter Verwendung der folgenden Gleichung eingestellt:
Y₁₀′ = Y₁₁′ - R((Y₁₁-Y₁₀) · S₇₁₁)
wobei Y₁₁′ der eingestellte Wert von Y₁₁, R die Rundungsfunktion
zur Rundung des Werts auf die nächste Gitterposition
und S₇₁₁ die Skalierung (scale) zwischen den Y-Hauptstraßenstrichseiten
7 und 1, den beiden nächsten Segmenten zu
Y₁₁ ist.
Im Block 697 werden restliche Y-Hauptkoordinaten unter Verwendung
der relativen Einstellmethode relativ zu den eingestellten
Y-Hauptstraßenstrichen eingestellt.
Im Block 669 werden die Y-Hilfskoordinaten eingestellt. Die
Y-Hilfskoordinaten werden relativ zu denjenigen beiden Hauptkoordinaten
eingestellt, die mit Bezug auf den Rahmen der
Hilfskoordinaten benachbart liegen. Y-Hilfskoordinaten werden
in der gleichen Weise wie die X-Hilfskoordinaten unter Verwendung
des mit Bezug auf Fig. 13b beschriebenen Verfahrens eingestellt.
Bisher wurde die Einstellung der Rahmenkoordinaten in der
horizontalen und vertikalen Richtung beschrieben. Es gibt
jedoch wichtige visuelle Merkmale, die sich nicht nach der
vertikalen oder horizontalen Richtung orientieren und die
erhalten bleiben müssen, um die Beeinträchtigung des Zeichens
zu minimieren. So ist es beispielsweise erwünscht, die relativen
Stärken von Diagonalstrichen, beispielsweise den Diagonalstrichen
in den Buchstaben "N" und "W", aufrechtzuerhalten. Um
dieses wichtige visuelle Merkmal zu erhalten, werden auch die
die diagonalen Striche bildenden Rahmenkoordinaten der Zeichen
eingestellt.
Hierzu wird auf Fig. 19 Bezug genommen. Im Block 750 werden
die diagonalen Linien nach ihrer Neigung geordnet. Eine Diagonallinie
ist jede Linie, die keine horizontale oder quasi
horizontale Linie und keine vertikale oder quasi vertikale
Linie ist. Im Block 755 werden solche Diagonalen gruppenweise
geordnet, welche relativ ähnliche Neigungswinkel haben. Die
Größe des Bereichs jeder Gruppe sollte nicht zu groß sein,
damit eine Gruppe nicht eine große Anzahl von Diagonalsegmenten
beinhaltet; vielmehr sollte der Bereich ausreichend eng
gehalten werden, damit die Gruppen jeweils nur im wesentlichen
parallel verlaufende Segmente enthalten. Vorzugsweise sind die
Diagonallinien in Bereichen gruppiert, die von 10 bis 20°
variieren. Vorzugsweise werden die Linien in 10°-Bereichen
gruppiert.
Im Block 760 werden die Diagonallinien so weit gedreht, daß
sie als Vertikallinien erscheinen. Um die Linien zu drehen,
werden die Winkel in jeder Gruppe gemittelt, und jede Diagonallinie
in der Gruppe wird um den Komplementärwert des mittleren
Winkels der Gruppe gedreht. Die Drehung der Diagonalsegmente
ergibt vertikale oder beinahe vertikale Segmente, aus
denen sich die Diagonalstriche leicht bestimmen lassen.
Im Block 775 werden die gedrehten Diagonalsegmente analysiert,
um festzustellen, ob die Segmente Diagonalstriche bilden.
Die Voraussetzungen zur Bildung der Striche sind die
gleichen wie diejenigen, die weiter oben in Verbindung mit der
Bildung von X-Strichen beschrieben wurden. Daher findet sich
ein Strich dort, wo zwei gegenüberliegende Segmente existieren,
von denen das erste Segment eine "Innen"-Farbe und das
zweite Segment eine "Außen"-Farbe hat, wobei sich die Segmente
vertikal über eine Strecke überlappen, die zur sichtbaren
Definition des Strichs ausreicht.
Sobald die diagonalen Striche bestimmt worden sind, werden im
Block 780 die Dicken der diagonalen Striche eingestellt. Dies
geschieht unter Verwendung eines Verfahrens, das nachfolgend
als "Abstimmungseinstellung" bezeichnet wird. Bei der Abstimmungseinstellung
wird die Stärke des diagonalen Striches mit
den Strichstärken der X- und Y-Striche verglichen, um eine
vertikale oder horizontale Strichstärke zu ermitteln, die der
diagonalen Strichstärke gleich- oder nahekommt. Wenn eine
vertikale oder horizontale Strichstärke gleich der diagonalen
Strichstärke ist, ist die eingestellte Stärke des diagonalen
Strichs gleich der eingestellten Stärke des horizontalen oder
vertikalen Strichs. Wenn die diagonale Strichstärke ungleich
einer horizontalen und vertikalen Strichstärke ist, werden die
beiden nächstliegenden Strichstärkenwerte, nämlich der nächste
größere Strichstärkenwert und der nächst kleinere Strichstärkenwert,
zur Berechnung der eingestellten Diagonalstrichstärke
entsprechend der folgenden Gleichung verwendet:
wobei TD die Diagonalstrichstärke, TL die gegenüber TD nächst
niedrigere Strichstärke und TR die gegenüber nächst größere
Strichstärke ist und wobei TD′, TL′, TR′ jeweils die eingestellten
Stärken von TD, TL und TR sind.
Die Rahmenpunkte werden eingestellt, indem jedes Segment des
Diagonalstrichs um die Hälfte der Stricheinstellgröße 1/2
(TD′-TD) verschoben wird. Der Diagonalstrich kann jedoch durch
einfache Verschiebung der Segmente um 1/2 (TD′-TD) nicht modifiziert
werden. Die Endpunkte des Diagonalstrichs müssen in
solcher Weise eingestellt werden, daß die Stärken der eingestellten
benachbarten Striche beibehalten werden. Um die Stärken
der benachbarten Striche beizubehalten, werden die Rahmenpunkte
an der Schnittstelle des benachbarten Strichs und des
Diagonalstrichs entlang eines Segments des benachbarten
Strichs verschoben. Dies ist in Fig. 20 dargestellt. Zur Veranschaulichung
ist der Buchstabe N in 3 Striche zergliedert,
die X-Striche 810, 812 und den Diagonalstrich 814. Unter Verwendung
der Abstimmeinstellmethode wird die Stärke des Diagonalstrichs
812 um einen Wert W vergrößert. Daher werden Segmente
816 und 818 jeweils um eine Größe W/2 an die Stellen 820
und 822 verschoben. Um die Stärke der Striche 810 aufrechtzuerhalten,
wird der Rahmenpunkt 824 auf den Punkt 826 und der
Rahmenpunkt 830 auf den Punkt 832 eingestellt. Um auch die
Stärke des Strichs 812 beizubehalten, wird der Rahmenpunkt 834
auf den Punkt 836 und der Rahmen 838 auf den Punkt 840 eingestellt.
Jeder Rahmenpunkt wird individuell eingestellt. Der Typ von
durchgeführten Rahmenpunkteinstellungen kann in 4 Fälle zerlegt
werden. Fall 1 ist die Einstellung eines Rahmenpunkts,
dem ein einzustellendes Segment vorausgeht und der von einem
nicht einzustellenden Segment gefolgt wird. Mit anderen Worten,
der Rahmenpunkt verbindet ein einzustellendes erstes
Segment mit einem nicht einzustellenden zweiten Segment. Fall
2 ist die Einstellung eines Punktes, dem ein nicht einzustellendes
Segment vorausgeht und der gefolgt wird von einem
einzustellenden Segment. Fall 3 ist die Einstellung eines
Punktes zwischen zwei einzustellenden Segmenten, die jedoch
unterschiedlich stark verstellt werden. Fall 4 ist die Einstellung
eines Punktes zwischen Segmenten, die beide um denselben
Betrag zu verstellen sind.
Die Geometrie im ersten Fall ist in Fig. 21a dargestellt.
Linie 850 stellt die Segmente eines einzustellenden Diagonalstrichs
dar. Das Liniensegment 855 ist das nicht einzustellende
benachbarte Segment. Der Rahmenpunkt des der Einstellung
bedürfenden Strichs ist bei 860 gezeigt. In dem beschriebenen
Beispiel wird die Linie 850 um eine Strecke d bewegt, um den
Diagonalstrich einzustellen. Daher muß der Rahmenpunkt 860
entlang des Segments 855 zum Punkt 870 verschoben werden.
Durch Einstellung des Rahmenpunkts 860 auf 870 wird die Stärke
und Orientierung des durch das Segment 855 gebildeten Strichs
erhalten.
Der eingestellte Steuerpunkt 870 wird entsprechend dem folgenden
Prozeß bestimmt. Aus den Rahmenpunkten lassen sich die
Winkel α1 und α2 bestimmen. Unter Verwendung der bekannten
Werte α1, α2 und der Strecke d kann der neue Punkt 870 mit
Hilfe trigonometrischer Funktionen berechnet werden. Die Länge
der Hypotenuse 875 des durch die Eckpunkte 86, die neuen
Rahmenpunkte 870 und den Punkt 880 gebildeten Dreiecks wird
nach der folgenden Gleichung berechnet:
Sobald Δ H 875 berechnet ist, werden die Δ X und Δ Y, die zu
den Koordinaten des Rahmenpunktes 860 bei der Bestimmung der
einzustellenden Koordinaten 870 zu addieren sind, nach den
folgenden Gleichungen berechnet:
Δ X = Δ H · cos (α2)
Δ Y = Δ H · sin (α2)
Fall 2 ist in Fig. 21b dargestellt. Es handelt sich um eine
Einstellung eines Punktes, dem ein nicht einzustellendes Segment
vorausgeht und dem ein einzustellendes Segment folgt.
Segment 900 identifiziert das Diagonalsegment, das um eine
Strecke d einzustellen ist. Das benachbarte Segment 905 soll
nicht eingestellt werden. In dem beschriebenen Beispiel kennen
wir wiederum aus den Rahmenpunkten die Winkel α1 und α2.
Unter Verwendung dieser Information läßt sich Δ H wie folgt
berechnen:
Δ X und Δ Y, die zum Koordinatenpunkt 910 zu addieren sind,
um den eingestellten Punkt 915 zu erhalten, werden unter Verwendung
der folgenden Gleichungen berechnet:
Δ X = -Δ H · cos (α1)
Δ Y = -Δ H · sin (α1)
Fig. 21c stellt den Fall 3 dar, bei dem ein Punkt zwischen
zwei um verschiedene Beträge einzustellenden Segmenten eingestellt
wird. Hierzu wird auf Fig. 21c Bezug genommen. Rahmenpunkt
925 ist auf den Punkt 930 einzustellen, um das Segment
935 um eine Strecke d 0 und das Segment 940 um eine Strecke d 1
zu verschieben. Um die eingestellte Koordinate 930 zu berechnen,
werden zwei Rechensätze durchgeführt. Δ X₁ und Δ Y₁
werden zunächst berechnet, um den theoretischen eingestellten
Punkt 945 zu bestimmen, wenn der Rahmenpunkt 925 ein Fall-1-Segment
ist, d. h. einem Rahmenpunkt eine um eine Strecke d 1
zu verstellende Linie 940 vorausgeht und eine nicht einzustellende
Linie 935 folgt. Δ X₂ und Δ Y₂ werden berechnet,
um einen zweiten theoretischen Einstellpunkt 950 zu bestimmen,
bei dem der Rahmenpunkt 925 eine Fall-2-Berechnung bedingt,
d. h. einem Rahmenpunkt eine nicht einzustellende Linie 940
vorausgeht und eine um die Distanz d 0 zu verstellende Linie
935 folgt. Die Punkte 925, 950, 945 und 930 bilden ein Parallelogramm;
daher bestimmt sich der eingestellte Punkt 930 nach
dem folgenden Gleichungssystem:
X′ = X + Δ X₁ + Δ X₂
Y′ = Y + Δ Y₁ + Δ Y₂
Fall 4 ist ein Punkt, dem um den gleichen Betrag verstellte
Linien vorausgehen und folgen. In Fig. 21d geht dem Steuerpunkt
970 die Linie 975 voraus, und ihm folgt die Linie 980.
Beide Linien 975 und 980 sind um eine Strecke d zu verschieben.
Daher muß der Steuerpunkt 970 um einen Betrag Δ X und Δ Y
verstellt werden, der zu dem eingestellten Punkt 985 führt.
Dies läßt sich unter Verwendung der folgenden Gleichung
erreichen:
wobei TD die Dicke des Diagonalstrichs und TD′ die eingestellte
Dicke des Diagonalstrichs ist und α1 und α2 aus dem
Rahmen des Zeichens bestimmt werden.
Y wird in ähnlicher Weise durch die folgende Gleichung
bestimmt:
Sobald der diagonale Einstellprozeß abgeschlossen ist, werden
die jedes der Zeichen darstellenden Rahmenpunkte eingestellt,
und die Steuerpunkte für jeden Rahmen werden entsprechend den
eingestellten Rahmenpunkten unter Verwendung der weiter oben
beschriebenen Lineartransformationen eingestellt.
Im Rahmen des Erfindungsgedankens sind zahlreiche Modifikationen
und Abwandlungen möglich und für den Fachmann erkennbar.
Beispielsweise können die horizontalen, vertikalen und diagonalen
Einstellverfahren unabhängig voneinander oder in Verbindung
mit dem einen oder anderen Einstellprozeß verwendet werden.
In ähnlicher Weise kann das Verfahren zum Analysieren des
Zeichens und zum Bestimmen der wichtigen visuellen Komponenten
zusammen mit anderen Einstellprozessen verwendet werden, die
im Rahmen der vorliegenden Anmeldung nicht beschrieben sind.
Außerdem können Prozesse oder Verfahrensabschnitte, die keiner
Maßstabseingabe bedingen, unabhängig von denjenigen Verfahren
oder Verfahrensabschnitten ausgeführt werden, welche die Eingabe
einer Skala oder eines Maßstabes bedingen. So kann beispielsweise
das Verfahren zum Analysieren der Schriftbildzeichen
zur Bestimmung der wichtigen visuellen Komponenten
separat ausgeführt werden, und zwar einmal für jedes Schriftbild.
Die erzeugten Ausgabedaten können in einem Zwischendatenformat
gespeichert und zu beliebigem Zeitpunkt unter Erzeugung
des Schriftbildes wiedergewonnen werden. Dadurch wird die
benötigte Rechenzeit verringert, da der Analyseprozeß für ein
vorgegebenes Schriftbild nur einmal ausgeführt wird. Die Ausgabe
des Analyseprozesses kann dann in Verbindung mit den
horizontalen, vertikalen und diagonalen Einstellprozessen zur
Erzeugung des eingestellten Schriftbildes für einen vorgegebenen
Maßstab verwendet werden. Wenn das Schriftbild auf einen
anderen Maßstab eingestellt werden soll, kann die gleiche
Ausgabe aus dem Analyseprozeß gewonnen und wiederum mit den
horizontalen, vertikalen und diagonalen Einstellprozessen zur
Erzeugung eines eingestellten Schriftbildes für diesen Maßstab
benutzt werden.
Claims (9)
1. Verfahren zum Minimieren der visuellen Beeinträchtigung
von digitalen Schriftbildern, wobei jedes Zeichen des Schriftbildes
in einem Format unter Verwendung von X-Y-Koordinatenpaaren
zugeordneten Steuerpunkten beschrieben wird,
dadurch gekennzeichnet,
daß für jedes Zeichen ein Rahmen aus den Steuerpunkten gebildet und durch eine Mehrzahl von X-Y-Koordinatenpaare enthaltenden Rahmenpunkten dargestellt wird;
daß solche in jedem Zeichen enthaltene Striche bestimmt werden, die in den horizontalen und vertikalen Richtungen orientiert sind, wobei die Striche aus einer Vielzahl von Rahmenpunkten gebildet werden;
daß diejenigen X-Koordinaten der Rahmenpunkte für jedes Zeichen des Schriftbildes eingestellt werden, die für X-Striche repräsentativ sind, wobei die Striche in der Vertikalrichtung orientiert sind, eine Prioritätszuweisung in der Reihenfolge ihrer visuellen Bedeutung für das Zeichen erhalten und nach ihrer Priorität eingestellt werden, wobei ferner der Betrag der Einstellung der Striche mit niedrigerer Priorität von den Strichen mit höherer Priorität abhängig gemacht wird und wobei die Einstellung die Stärken der X-Striche bestimmt werden und die Breite jedes Buchstabens erhalten wird;
daß die X-Koordinaten derjenigen Rahmenpunkte eingestellt werden, die keinen Strich bilden, wobei diese Einstellung vom Erhalt der Breite des Zeichens und der Stärke von eingestellten X-Strichen abhängig gemacht wird;
daß die Y-Koordinaten der für Y-Striche repräsentativen Rahmenpunkte für jedes Zeichen des Schriftbildes eingestellt werden, wobei die Y-Striche in Horizontalrichtung orientiert sind und eine Prioritätszuweisung in der Reihenfolge ihrer visuellen Bedeutung für das Zeichen erhalten, wobei ferner die Striche nach der Priorität eingestellt werden und das Ausmaß der Einstellung der Striche mit niedrigerer Priorität von der Stärke der Striche mit höherer Priorität abhängig gemacht wird, wobei die Zeichenhöhe des Schriftbildes und die horizontale Ausrichtung der Y-Streifen aufrechterhalten werden; und
daß die Y-Koordinaten derjenigen Rahmenpunkte, die keinen Strich bilden, in Abhängigkeit von dem Erhalt der Höhe des Zeichens und der Stärke und der horizontalen Ausrichtung der eingestellten Striche eingestellt werden,
wodurch die wichtigen visuellen Merkmale der Zeichen des Schriftbildes aufrechterhalten werden.
daß für jedes Zeichen ein Rahmen aus den Steuerpunkten gebildet und durch eine Mehrzahl von X-Y-Koordinatenpaare enthaltenden Rahmenpunkten dargestellt wird;
daß solche in jedem Zeichen enthaltene Striche bestimmt werden, die in den horizontalen und vertikalen Richtungen orientiert sind, wobei die Striche aus einer Vielzahl von Rahmenpunkten gebildet werden;
daß diejenigen X-Koordinaten der Rahmenpunkte für jedes Zeichen des Schriftbildes eingestellt werden, die für X-Striche repräsentativ sind, wobei die Striche in der Vertikalrichtung orientiert sind, eine Prioritätszuweisung in der Reihenfolge ihrer visuellen Bedeutung für das Zeichen erhalten und nach ihrer Priorität eingestellt werden, wobei ferner der Betrag der Einstellung der Striche mit niedrigerer Priorität von den Strichen mit höherer Priorität abhängig gemacht wird und wobei die Einstellung die Stärken der X-Striche bestimmt werden und die Breite jedes Buchstabens erhalten wird;
daß die X-Koordinaten derjenigen Rahmenpunkte eingestellt werden, die keinen Strich bilden, wobei diese Einstellung vom Erhalt der Breite des Zeichens und der Stärke von eingestellten X-Strichen abhängig gemacht wird;
daß die Y-Koordinaten der für Y-Striche repräsentativen Rahmenpunkte für jedes Zeichen des Schriftbildes eingestellt werden, wobei die Y-Striche in Horizontalrichtung orientiert sind und eine Prioritätszuweisung in der Reihenfolge ihrer visuellen Bedeutung für das Zeichen erhalten, wobei ferner die Striche nach der Priorität eingestellt werden und das Ausmaß der Einstellung der Striche mit niedrigerer Priorität von der Stärke der Striche mit höherer Priorität abhängig gemacht wird, wobei die Zeichenhöhe des Schriftbildes und die horizontale Ausrichtung der Y-Streifen aufrechterhalten werden; und
daß die Y-Koordinaten derjenigen Rahmenpunkte, die keinen Strich bilden, in Abhängigkeit von dem Erhalt der Höhe des Zeichens und der Stärke und der horizontalen Ausrichtung der eingestellten Striche eingestellt werden,
wodurch die wichtigen visuellen Merkmale der Zeichen des Schriftbildes aufrechterhalten werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß in
jedem Zeichen diagonale Striche bestimmt werden, die in einer
Diagonalrichtung orientiert sind und von mehreren Rahmenpunkten
gebildet werden und daß die für die diagonalen Striche
repräsentativen Rahmenpunkte jedes Zeichens des Schriftbildes
in Abhängigkeit vom Erhalt der eingestellten Dicken und von
den Lagen der eingestellten X- und Y-Striche aufrechterhalten
werden.
3. Verfahren zum Analysieren der Zeichen eines Schriftbildes
und zur Bestimmung der wesentlichen visuellen Komponenten,
wobei die Kontur jedes Zeichens in einem Format unter Verwendung
von X-Y-Koordinatenpaaren zugeordneten Steuerpunkten
beschrieben und eine durch eine Konturkonvention definierte
Richtung hat,
dadurch gekennzeichnet,
daß aus den Steuerpunkten für jedes Zeichen ein eine vereinfachte visuelle Darstellung eines entsprechenden Zeichens bildender Rahmen erzeugt wird, wobei die Rahmen durch mehrere Rahmenpunkte in Zuordnung zu deren X-Y-Koordinatenpaaren dargestellt werden,
daß gewisse X-Koordinaten der Rahmenpunkte als X-Hauptkoordinaten identifiziert werden, wenn der Rahmenpunkt eine Extremstelle in Horizontalrichtung oder einen Endpunkt eines Liniensegments bildet, das eine vertikale oder quasi vertikale Seite des Rahmens ist;
daß X-Hauptsegmente als Approximation eines Abschnitts des Zeichenrahmens gebildet und als von der X-Hauptkoordinate um eine solche Strecke auf- und abwärts verlaufendes vertikales Liniensegment definiert werden, daß jeder Endpunkt des Liniensegments in einem vorgegebenen horizontalen Abstand vom Rahmen liegt;
daß die Richtung jedes der X-Hauptsegmente identifiziert wird, wobei die Richtung der Hauptsegmente der Richtung des Rahmens an der Segmentapproximation entspricht und die Richtung des Rahmens von der angewandten Konturkonvention bestimmt wird;
daß die X-Hauptsegmente als "Innen"-Farbe identifiziert werden, wenn das Segment zuvor als in Aufwärtsrichtung verlaufend identifiziert wurde;
daß die X-Hauptsegmente als eine "Außen"-Farbe identifiziert werden, wenn das identifizierte Segment in Abwärtsrichtung orientiert ist;
daß gewisse Paare von X-Hauptsegmenten als X-Striche identifiziert werden, wenn sich die beiden benachbarten Segmente vertikal überlappen und das linke Segment eine "Innen"-Farbe und das rechte Segment eine "Außen"-Farbe hat und die vertikale Überlappung so groß ist, daß das Verhältnis der vertikalen Überlappungslänge und des Abstandes zwischen den Segmenten größer als ein für die visuelle Erkennung eines Strichs repräsentatives vorgegebenes Maß ist;
daß gewisse Y-Koordinaten der Rahmenpunkte als Y-Hauptkoordinaten identifiziert werden, wenn der Rahmenpunkt eine Extremstelle in Vertikalrichtung oder ein Endpunkt eines Liniensegments ist, das eine horizontale oder beinahe horizontale Seite des Rahmens ist;
daß Y-Hauptsegmente gebildet werden, die einem Abschnitt des Zeichenrahmens angenähert sind und als horizontales Liniensegment definiert werden, das sich von der Y-Hauptkoordinate so weit nach rechts und links erstreckt, bis jeder Endpunkt des Liniensegments von dem Rahmen um eine vorgegebene Vertikalstrecke entfernt ist;
daß die Richtung der Y-Hauptsegmente entsprechend der Richtung der Rahmenapproximation durch das Segment identifiziert wird, wobei die Richtung des Rahmens durch die angewandte Konturkonvention bestimmt wird;
daß die Y-Hauptsegmente mit einer "Innen"-Farbe festgestellt werden, wenn das Segment als in die linke Richtung verlaufend identifiziert wird;
daß die Y-Hauptsegmente als eine "Außen"-Farbe festgestellt werden, wenn das Segment als nach rechts weisend identifiziert wird; und
daß gewisse Paare von Y-Hauptsegmenten als Y-Striche identifiziert werden, wenn sich zwei benachbarte Segmente horizontal überlappen, das obere Segment eine "Innen"-Farbe und das untere Segment eine "Außen"-Farbe hat und die horizontale Überlappung der Segmente eine solche Länge hat, daß das Verhältnis der Überlappungslänge zum Abstand zwischen den Segmenten größer als ein für die visuelle Erkennung eines Strichs repräsentatives Maß ist.
daß aus den Steuerpunkten für jedes Zeichen ein eine vereinfachte visuelle Darstellung eines entsprechenden Zeichens bildender Rahmen erzeugt wird, wobei die Rahmen durch mehrere Rahmenpunkte in Zuordnung zu deren X-Y-Koordinatenpaaren dargestellt werden,
daß gewisse X-Koordinaten der Rahmenpunkte als X-Hauptkoordinaten identifiziert werden, wenn der Rahmenpunkt eine Extremstelle in Horizontalrichtung oder einen Endpunkt eines Liniensegments bildet, das eine vertikale oder quasi vertikale Seite des Rahmens ist;
daß X-Hauptsegmente als Approximation eines Abschnitts des Zeichenrahmens gebildet und als von der X-Hauptkoordinate um eine solche Strecke auf- und abwärts verlaufendes vertikales Liniensegment definiert werden, daß jeder Endpunkt des Liniensegments in einem vorgegebenen horizontalen Abstand vom Rahmen liegt;
daß die Richtung jedes der X-Hauptsegmente identifiziert wird, wobei die Richtung der Hauptsegmente der Richtung des Rahmens an der Segmentapproximation entspricht und die Richtung des Rahmens von der angewandten Konturkonvention bestimmt wird;
daß die X-Hauptsegmente als "Innen"-Farbe identifiziert werden, wenn das Segment zuvor als in Aufwärtsrichtung verlaufend identifiziert wurde;
daß die X-Hauptsegmente als eine "Außen"-Farbe identifiziert werden, wenn das identifizierte Segment in Abwärtsrichtung orientiert ist;
daß gewisse Paare von X-Hauptsegmenten als X-Striche identifiziert werden, wenn sich die beiden benachbarten Segmente vertikal überlappen und das linke Segment eine "Innen"-Farbe und das rechte Segment eine "Außen"-Farbe hat und die vertikale Überlappung so groß ist, daß das Verhältnis der vertikalen Überlappungslänge und des Abstandes zwischen den Segmenten größer als ein für die visuelle Erkennung eines Strichs repräsentatives vorgegebenes Maß ist;
daß gewisse Y-Koordinaten der Rahmenpunkte als Y-Hauptkoordinaten identifiziert werden, wenn der Rahmenpunkt eine Extremstelle in Vertikalrichtung oder ein Endpunkt eines Liniensegments ist, das eine horizontale oder beinahe horizontale Seite des Rahmens ist;
daß Y-Hauptsegmente gebildet werden, die einem Abschnitt des Zeichenrahmens angenähert sind und als horizontales Liniensegment definiert werden, das sich von der Y-Hauptkoordinate so weit nach rechts und links erstreckt, bis jeder Endpunkt des Liniensegments von dem Rahmen um eine vorgegebene Vertikalstrecke entfernt ist;
daß die Richtung der Y-Hauptsegmente entsprechend der Richtung der Rahmenapproximation durch das Segment identifiziert wird, wobei die Richtung des Rahmens durch die angewandte Konturkonvention bestimmt wird;
daß die Y-Hauptsegmente mit einer "Innen"-Farbe festgestellt werden, wenn das Segment als in die linke Richtung verlaufend identifiziert wird;
daß die Y-Hauptsegmente als eine "Außen"-Farbe festgestellt werden, wenn das Segment als nach rechts weisend identifiziert wird; und
daß gewisse Paare von Y-Hauptsegmenten als Y-Striche identifiziert werden, wenn sich zwei benachbarte Segmente horizontal überlappen, das obere Segment eine "Innen"-Farbe und das untere Segment eine "Außen"-Farbe hat und die horizontale Überlappung der Segmente eine solche Länge hat, daß das Verhältnis der Überlappungslänge zum Abstand zwischen den Segmenten größer als ein für die visuelle Erkennung eines Strichs repräsentatives Maß ist.
4. Verfahren zum Einstellen wenigstens eines Zeichens eines
digitalen Schriftbilds in horizontaler Richtung, wobei jedes
Zeichen durch mehrere einen Rahmen des Zeichens bildende Rahmenpunkte
definiert wird, das Zeichen ferner durch mehrere,
für wichtige visuelle Elemente repräsentative X-Striche in
bezug auf die X-Koordinaten des Rahmens beschrieben wird und
die Streifen durch Rahmenpunkte des Zeichens definiert werden,
dadurch gekennzeichnet,
daß die X-Striche als kräftige X-Striche identifiziert werden, wenn das Verhältnis der Strichlänge zur Strichstärke größer als ein einen kräftigen Strich anzeigender vorgegebener Wert ist;
daß eine nicht-horizontal überlappende kräftige X-Striche enthaltende X-Hauptstraße konstruiert wird, deren X-Strichen eine Priorität nach der Länge zugewiesen wird, wobei die X-Hauptstraße für visuelle Komponenten eines Zeichens mit hoher Priorität kennzeichnend ist;
daß die X-Koordinaten der Rahmenpunkte der X-Striche in der X-Hauptachse eingestellt werden, wobei die Einstellung die Symmetrien und räumlichen Beziehungen unter den die Zeichen des Schriftbildes bildenden Strichen aufrechterhält;
daß der zwischen X-Strichen in der Horizontalrichtung X auftretende Weißraum proportional skaliert und derart eingestellt wird, daß die gesamte Breite des Zeichens erhalten bleibt; und
daß die X-Koordinaten der Rahmenpunkte der X-Striche, die nicht auf der X-Hauptstraße liegen, in Abhängigkeit von den mit höherer Priorität eingestellten X-Strichen und dem X-Weißraum zwischen den X-Hauptstraßenstrichen eingestellt werden.
daß die X-Striche als kräftige X-Striche identifiziert werden, wenn das Verhältnis der Strichlänge zur Strichstärke größer als ein einen kräftigen Strich anzeigender vorgegebener Wert ist;
daß eine nicht-horizontal überlappende kräftige X-Striche enthaltende X-Hauptstraße konstruiert wird, deren X-Strichen eine Priorität nach der Länge zugewiesen wird, wobei die X-Hauptstraße für visuelle Komponenten eines Zeichens mit hoher Priorität kennzeichnend ist;
daß die X-Koordinaten der Rahmenpunkte der X-Striche in der X-Hauptachse eingestellt werden, wobei die Einstellung die Symmetrien und räumlichen Beziehungen unter den die Zeichen des Schriftbildes bildenden Strichen aufrechterhält;
daß der zwischen X-Strichen in der Horizontalrichtung X auftretende Weißraum proportional skaliert und derart eingestellt wird, daß die gesamte Breite des Zeichens erhalten bleibt; und
daß die X-Koordinaten der Rahmenpunkte der X-Striche, die nicht auf der X-Hauptstraße liegen, in Abhängigkeit von den mit höherer Priorität eingestellten X-Strichen und dem X-Weißraum zwischen den X-Hauptstraßenstrichen eingestellt werden.
5. Verfahren zum Einstellen der Vertikalrichtung wenigstens
eines Zeichens eines digitalen Schriftbildes, wobei jedes
Zeichen durch mehrere, einen Rahmen des Zeichens bildende
Rahmenpunkte definiert wird und das Zeichen außerdem durch
mehrere Y-Striche beschrieben wird, die für kräftige visuelle
Elemente mit Bezug auf die Y-Koordinaten des Rahmens repräsentativ
sind, jeweils durch zwei Y-Segmente gebildet werden und
von den Rahmenpunkten des Zeichens definiert werden, dadurch
gekennzeichnet,
daß die X-Streifen als kräftige X-Streifen identifiziert werden, wenn das Verhältnis der Strichlänge und der Strichstärke größer ist als ein für einen kräftigen Strich kennzeichnender Wert;
daß eine Y-Hauptstraße mit einander nicht-vertikal überlappenden kräftigen Y-Strichen, die eine Priorität in der Reihenfolge ihrer Längen erhalten, konstruiert wird und indikativ für visuelle Zeichenkomponenten mit hoher Priorität ist;
daß wenigstens ein Kopfextremkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten von Kopfextremstellen des Zeichens des Schriftbildes gebildet wird, wobei kein Paar von aufeinanderfolgenden Y-Koordinatenwerten mehr als eine vorgegebene Strecke entfernt voneinander ist;
daß wenigstens ein Bodenextremkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten der Bodenextremstellen der Zeichen gebildet wird, in welchem nirgends zwei aufeinanderfolgende Y-Koordinatenwerte mehr als eine vorgegebene Strecke entfernt voneinander angeordnet sind;
daß festgestellt wird, welche Kopfkluster wichtige Kopfkluster und welche Bodenkluster wichtige Bodenkluster sind, wobei die Bedeutung der Kluster von der Zahl der in jedem Kluster enthaltenen Extremstellen abhängig gemacht wird;
daß diejenigen Y-Hauptstraßenstriche identifiziert werden, die wenigstens ein schwarz-konvexes und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegendes Segment enthalten;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs gelegenen Segments durch einen Ausrichtprozeß eingestellt wird, bei dem die Y-Koordinate des Segments mit den angenäherten Y-Koordinaten anderer Segmente des Zeichens des Schriftbildes horizontal ausgerichtet wird;
daß dann, wenn das eine Segment eines Y-Hauptstraßenstrichs nach einem Y-Ausrichtprozeß eingestellt wurde, die Y-Koordinate des anderen Segments nach der Stärke des Strichs eingestellt wird;
daß der Y-Weißraum zwischen den Y-Hauptstraßenstrichen in Abhängigkeit vom Erhalt der Höhe des Zeichens eingestellt wird;
daß die Y-Koordinaten der Y-Hauptstraßenstriche, die nicht nach einem Y-Ausrichtprozeß eingestellt werden, relativ zu den eingestellten Y-Hauptstraßenstrichen eingestellt werden;
daß diejenigen Y-Striche, die nicht auf einer Y-Hauptstraße liegen, wenigstens ein schwarz-konvexes Segment enthalten und in den Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegen, identifiziert werden;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments durch einen Y-Ausrichtprozeß eingestellt wird, wobei die Y-Koordinate des Segments zu mit den angenäherten Y-Koordinaten anderer Segmente der Zeichen des Schriftbildes horizontal ausgerichtet wird;
daß bei Einstellung eines Segments eines nicht auf der Hauptstraße gelegenen Y-Strichs mit Hilfe des Y-Ausrichtprozesses die Y-Koordinate des anderen Segments nach der Strichstärke eingestellt wird;
daß die Y-Koordinaten der restlichen nicht-eingestellten Striche relativ zu den eingestellten Y-Hauptstraßenstrichen eingestellt werden;
daß diejenigen Y-Segmente, die keinen Strich bilden und wenigstens ein schwarz-konvexes und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegendes Segment enthalten, identifiziert werden;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments durch einen Y-Ausrichtprozeß eingestellt wird, bei dem die Y-Koordinate des Segments mit den angenäherten Y-Koordinaten anderer Segmente der Zeichen des Schriftbildes ausgerichtet wird; und
daß die Y-Koordinaten der restlichen nicht-eingestellten Segmente relativ zu den eingestellten Y-Hauptstraßenstrichen justiert werden.
daß die X-Streifen als kräftige X-Streifen identifiziert werden, wenn das Verhältnis der Strichlänge und der Strichstärke größer ist als ein für einen kräftigen Strich kennzeichnender Wert;
daß eine Y-Hauptstraße mit einander nicht-vertikal überlappenden kräftigen Y-Strichen, die eine Priorität in der Reihenfolge ihrer Längen erhalten, konstruiert wird und indikativ für visuelle Zeichenkomponenten mit hoher Priorität ist;
daß wenigstens ein Kopfextremkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten von Kopfextremstellen des Zeichens des Schriftbildes gebildet wird, wobei kein Paar von aufeinanderfolgenden Y-Koordinatenwerten mehr als eine vorgegebene Strecke entfernt voneinander ist;
daß wenigstens ein Bodenextremkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten der Bodenextremstellen der Zeichen gebildet wird, in welchem nirgends zwei aufeinanderfolgende Y-Koordinatenwerte mehr als eine vorgegebene Strecke entfernt voneinander angeordnet sind;
daß festgestellt wird, welche Kopfkluster wichtige Kopfkluster und welche Bodenkluster wichtige Bodenkluster sind, wobei die Bedeutung der Kluster von der Zahl der in jedem Kluster enthaltenen Extremstellen abhängig gemacht wird;
daß diejenigen Y-Hauptstraßenstriche identifiziert werden, die wenigstens ein schwarz-konvexes und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegendes Segment enthalten;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs gelegenen Segments durch einen Ausrichtprozeß eingestellt wird, bei dem die Y-Koordinate des Segments mit den angenäherten Y-Koordinaten anderer Segmente des Zeichens des Schriftbildes horizontal ausgerichtet wird;
daß dann, wenn das eine Segment eines Y-Hauptstraßenstrichs nach einem Y-Ausrichtprozeß eingestellt wurde, die Y-Koordinate des anderen Segments nach der Stärke des Strichs eingestellt wird;
daß der Y-Weißraum zwischen den Y-Hauptstraßenstrichen in Abhängigkeit vom Erhalt der Höhe des Zeichens eingestellt wird;
daß die Y-Koordinaten der Y-Hauptstraßenstriche, die nicht nach einem Y-Ausrichtprozeß eingestellt werden, relativ zu den eingestellten Y-Hauptstraßenstrichen eingestellt werden;
daß diejenigen Y-Striche, die nicht auf einer Y-Hauptstraße liegen, wenigstens ein schwarz-konvexes Segment enthalten und in den Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegen, identifiziert werden;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments durch einen Y-Ausrichtprozeß eingestellt wird, wobei die Y-Koordinate des Segments zu mit den angenäherten Y-Koordinaten anderer Segmente der Zeichen des Schriftbildes horizontal ausgerichtet wird;
daß bei Einstellung eines Segments eines nicht auf der Hauptstraße gelegenen Y-Strichs mit Hilfe des Y-Ausrichtprozesses die Y-Koordinate des anderen Segments nach der Strichstärke eingestellt wird;
daß die Y-Koordinaten der restlichen nicht-eingestellten Striche relativ zu den eingestellten Y-Hauptstraßenstrichen eingestellt werden;
daß diejenigen Y-Segmente, die keinen Strich bilden und wenigstens ein schwarz-konvexes und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegendes Segment enthalten, identifiziert werden;
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments durch einen Y-Ausrichtprozeß eingestellt wird, bei dem die Y-Koordinate des Segments mit den angenäherten Y-Koordinaten anderer Segmente der Zeichen des Schriftbildes ausgerichtet wird; und
daß die Y-Koordinaten der restlichen nicht-eingestellten Segmente relativ zu den eingestellten Y-Hauptstraßenstrichen justiert werden.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß
die Einstellung von Y-Segmenten unter Verwendung eines Y-Ausrichtprozesses
dadurch erfolgt, daß eine wichtige Y-Koordinate
YIMPT des wichtigen Klusters, in dem sich das Segment befindet,
bestimmt wird, wobei YIMPT die äußerste Y-Kopfkoordinate
des Klusters ist, wenn der Kluster Kopfextremstellen enthält,
und die extreme Y-Bodenkoordinate des Klusters ist, wenn der
Kluster Bodenextremstellen enthält; daß YIMPT auf die nächste
Gitterposition eingestellt wird; daß der Abstand zwischen
YIMPT und dem einzustellenden Segment so gewählt wird, daß er
gleich einem inkrementellen Wert des Gitters ist; und daß der
Y-Koordinatenwert des Segments gleich der Summe der eingestellten
Werte von Y und dem Abstand eingestellt wird,
wenn der Y-Koordinatenwert des Segments größer oder gleich
YIMPT ist und der Y-Koordinatenwert des Segments gleich der
Differenz der eingestellten Werte von YIMPT und dem Abstand
gemacht wird, wenn der Y-Koordinatenwert des Segments kleiner
ist als YIMPT.
7. Verfahren zum Einstellen von Zeichen in einem digitalen
Schriftbild mit Hilfe einer Y-Ausrichtmethode, wobei jedes
Zeichen durch mehrere, den Zeichenrahmen bildende Rahmenpunkte
definiert wird, die Rahmenpunkte als Y-Segmente bezeichnete
Horizontalsegmente an den Y-Koordinatenwerten der Rahmenpunkte
bilden, die Y-Segmente für visuelle Komponenten des Zeichens
kennzeichnend und Abschnitten des Rahmens angenähert sind, und
wobei die Segmente eine Richtung entsprechend derjenigen Rahmenrichtung
haben, der das Segment angenähert ist,
dadurch gekennzeichnet,
daß wenigstens ein extremer Kopfkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten von Kopfextremstellen der Zeichen des Schriftbildes gebildet wird, wobei keine zwei aufeinanderfolgenden Y-Koordinatenwerte im Kopfextremstellenkluster um mehr als eine vorgegebene Strecke entfernt voneinander sind;
daß wenigstens ein Bodenextremstellenkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten der Bodenextremstellen der Schriftbildzeichen gebildet werden, wobei keine zwei aufeinanderfolgenden Y-Koordinatenwerte im Bodenextremstellenkluster um mehr als eine vorgegebene Strecke entfernt voneinander sind;
daß die wichtigen Kopf- und Bodenkluster in Abhängigkeit von der in jedem Kluster enthaltenen Anzahl von Extremstellen bestimmt werden;
daß diejenigen Y-Segmente identifiziert werden, die schwarz-konvex sind und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegen, wobei der Segmententyp von der Richtung des Segments abhängig ist; und
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments dadurch eingestellt wird, daß die wichtige Y-Koordinate YIMPT des das Segment aufnehmenden wichtigen Klusters bestimmt wird, wobei YIMPT die Kopfextremstellen-Y-Koordinate eines Kopfextremstellen enthaltenden Klusters bzw. die Bodenextremstellen-Y-Koordinate eines Bodenextremstellen enthaltenden Klusters ist, daß YIMPT auf die nächste Gitterposition eingestellt wird, daß der Abstand zwischen YIMPT und dem einzustellenden Segment gleich einem inkrementellen Wert des Gitters gewählt wird und daß der Y-Koordinatenwert des Segments gleich der Summe der eingestellten Werte von YIMPT und dem Abstand eingestellt wird, wenn der Y-Koordinatenwert des Segments größer als oder gleich YIMPT ist, und der Y-Koordinatenwert des Segments gleich der Differenz von eingestellten Werten von YIMPT und dem Abstand gemacht wird, wenn der Y-Koordinatenwert des Segments kleiner als YIMPT ist.
daß wenigstens ein extremer Kopfkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten von Kopfextremstellen der Zeichen des Schriftbildes gebildet wird, wobei keine zwei aufeinanderfolgenden Y-Koordinatenwerte im Kopfextremstellenkluster um mehr als eine vorgegebene Strecke entfernt voneinander sind;
daß wenigstens ein Bodenextremstellenkluster aus einer Gruppe von aufeinanderfolgenden Y-Koordinatenwerten der Bodenextremstellen der Schriftbildzeichen gebildet werden, wobei keine zwei aufeinanderfolgenden Y-Koordinatenwerte im Bodenextremstellenkluster um mehr als eine vorgegebene Strecke entfernt voneinander sind;
daß die wichtigen Kopf- und Bodenkluster in Abhängigkeit von der in jedem Kluster enthaltenen Anzahl von Extremstellen bestimmt werden;
daß diejenigen Y-Segmente identifiziert werden, die schwarz-konvex sind und innerhalb der Y-Koordinatengrenzen eines wichtigen Klusters des gleichen Typs liegen, wobei der Segmententyp von der Richtung des Segments abhängig ist; und
daß die Y-Koordinate des schwarz-konvexen und innerhalb eines wichtigen Klusters des gleichen Typs liegenden Segments dadurch eingestellt wird, daß die wichtige Y-Koordinate YIMPT des das Segment aufnehmenden wichtigen Klusters bestimmt wird, wobei YIMPT die Kopfextremstellen-Y-Koordinate eines Kopfextremstellen enthaltenden Klusters bzw. die Bodenextremstellen-Y-Koordinate eines Bodenextremstellen enthaltenden Klusters ist, daß YIMPT auf die nächste Gitterposition eingestellt wird, daß der Abstand zwischen YIMPT und dem einzustellenden Segment gleich einem inkrementellen Wert des Gitters gewählt wird und daß der Y-Koordinatenwert des Segments gleich der Summe der eingestellten Werte von YIMPT und dem Abstand eingestellt wird, wenn der Y-Koordinatenwert des Segments größer als oder gleich YIMPT ist, und der Y-Koordinatenwert des Segments gleich der Differenz von eingestellten Werten von YIMPT und dem Abstand gemacht wird, wenn der Y-Koordinatenwert des Segments kleiner als YIMPT ist.
8. Verfahren zur Verbesserung der Lesbarkeit digitaler
Schriftbilder, wobei die die Endpunkte von diagonalen Segmenten
eines Zeichenrahmens bildenden Rahmenpunkte modifiziert
werden,
dadurch gekennzeichnet,
daß alle diagonalen Segmente nach ihrer Neigung geordnet werden;
daß unter relativ eng benachbarten Winkeln geneigte diagonale Segmente zu Gruppen zusammengefaßt werden;
daß jede Gruppe von diagonalen Segmenten um den Komplementärwert der mittleren Neigung der Gruppe gedreht wird, so daß die diagonalen Segmente eine angenähert vertikale Lage erhalten;
daß gewisse Paare von diagonalen Hauptsegmenten als diagonale Striche identifiziert werden, wenn die beiden Segmente einander vertikal überlappen und das Verhältnis der Länge der vertikalen Überlappung und des Abstandes zwischen den Segmenten größer als ein für die visuelle Erkennbarkeit eines Strichs kennzeichnender Wert ist;
daß die Stärken der diagonalen Striche nach den zuvor eingestellten Stärken horizontaler oder vertikaler Striche eingestellt werden, die vor ihrer Einstellung die gleiche oder angenähert die gleiche Stärke hatten; und
daß die Rahmenpunkte der diagonalen Striche entsprechend der eingestellten Dicke des diagonalen Strichs justiert werden, wobei die Stärken benachbarter Striche durch Verschiebung der Rahmenpunkte entlang der Segmente der benachbarten Striche erhalten bleiben.
daß alle diagonalen Segmente nach ihrer Neigung geordnet werden;
daß unter relativ eng benachbarten Winkeln geneigte diagonale Segmente zu Gruppen zusammengefaßt werden;
daß jede Gruppe von diagonalen Segmenten um den Komplementärwert der mittleren Neigung der Gruppe gedreht wird, so daß die diagonalen Segmente eine angenähert vertikale Lage erhalten;
daß gewisse Paare von diagonalen Hauptsegmenten als diagonale Striche identifiziert werden, wenn die beiden Segmente einander vertikal überlappen und das Verhältnis der Länge der vertikalen Überlappung und des Abstandes zwischen den Segmenten größer als ein für die visuelle Erkennbarkeit eines Strichs kennzeichnender Wert ist;
daß die Stärken der diagonalen Striche nach den zuvor eingestellten Stärken horizontaler oder vertikaler Striche eingestellt werden, die vor ihrer Einstellung die gleiche oder angenähert die gleiche Stärke hatten; und
daß die Rahmenpunkte der diagonalen Striche entsprechend der eingestellten Dicke des diagonalen Strichs justiert werden, wobei die Stärken benachbarter Striche durch Verschiebung der Rahmenpunkte entlang der Segmente der benachbarten Striche erhalten bleiben.
9. Verfahren zur Abstandsskalierung in einem digitalen
Schriftbild bei einem vorgegebenen Maßstab,
dadurch gekennzeichnet,
daß eine Anzahl "n" von zu skalierenden Werten in einem ersten Indexfeld in der Reihenfolge zunehmender Werte gespeichert wird;
daß in einem dem ersten Indexfeld entsprechenden zweiten Indexfeld eine Priorität der im ersten Feld gespeicherten Werte gespeichert wird, wodurch die Reihenfolge der Skalierung der Werte definiert wird;
daß die Priorität des kleinsten Werts auf die höchste Priorität gesetzt wird;
daß in einem dritten, dem ersten Feld entsprechenden Indexfeld der Index des ersten Feldelements gespeichert wird, der eine Priorität unmittelbar unter derjenigen des aktuellen Indexfeldelements hat;
daß der kleinste Wert skaliert wird, wobei der Wert mit dem Skalenfaktor multipliziert und auf die nächste Gitterposition gerundet wird;
daß der als nächster zu skalierende Wert aus dem im dritten Feld gespeicherten Index bestimmt wird;
daß die restlichen Werte in der Reihenfolge der Priorität des Skalierungsprozesses skaliert werden, wobei der skalierte größte Prozeß, der kleiner als der zu skalierende aktuelle Wert und der bereits skalierte kleinste Wert, der größer ist als der zu skalierende aktuelle Wert, bestimmt werden und wobei dann, wenn kein Wert größer als der zu skalierende aktuelle Wert ist, der skalierte aktuelle Wert nach der folgenden Gleichung berechnet wird: A(m) + R((V(k) - V(m) · S)wobei A(m) der eingestellte Wert des bereits skalierten größten Werts ist, der kleiner als der zu skalierende aktuelle Wert ist, R eine die Zahl auf die nächste Gitterposition rundende Funktion ist, V(k) der einzustellende Wert, V(m) der ursprüngliche Wert des bereits skalierten größten Werts, der kleiner ist als der aktuelle zu skalierende Wert, und S der Maßstab ist; und wobei der zu skalierende aktuelle Wert, dann, wenn ein Wert größer ist als der zu skalierende aktuelle Wert, nach der folgenden Gleichung berechnet wird:A(m) + R((A(r) - A(m)) · (V(k) - V(m))/(V(r) - V(m)))wobei A(m) der eingestellte Wert des größten Wertes ist, der skaliert wurde und kleiner als der zu skalierende aktuelle Wert ist, R eine die Zahl auf die nächste Gitterposition rundende Funktion ist, A(r) der kleinste Wert ist, der skaliert wurde und größer als der zu skalierende aktuelle Wert ist, V(k) der einzustellende Wert, V(m) der Ursprungswert des größten Wertes ist, der skaliert wurde und kleiner als der zu skalierende aktuelle Wert ist, V(r) der ursprüngliche Wert des kleinsten Werts ist, der skaliert wurde und größer ist als der zu skalierende aktuelle Wert, und S der Maßstab ist.
daß eine Anzahl "n" von zu skalierenden Werten in einem ersten Indexfeld in der Reihenfolge zunehmender Werte gespeichert wird;
daß in einem dem ersten Indexfeld entsprechenden zweiten Indexfeld eine Priorität der im ersten Feld gespeicherten Werte gespeichert wird, wodurch die Reihenfolge der Skalierung der Werte definiert wird;
daß die Priorität des kleinsten Werts auf die höchste Priorität gesetzt wird;
daß in einem dritten, dem ersten Feld entsprechenden Indexfeld der Index des ersten Feldelements gespeichert wird, der eine Priorität unmittelbar unter derjenigen des aktuellen Indexfeldelements hat;
daß der kleinste Wert skaliert wird, wobei der Wert mit dem Skalenfaktor multipliziert und auf die nächste Gitterposition gerundet wird;
daß der als nächster zu skalierende Wert aus dem im dritten Feld gespeicherten Index bestimmt wird;
daß die restlichen Werte in der Reihenfolge der Priorität des Skalierungsprozesses skaliert werden, wobei der skalierte größte Prozeß, der kleiner als der zu skalierende aktuelle Wert und der bereits skalierte kleinste Wert, der größer ist als der zu skalierende aktuelle Wert, bestimmt werden und wobei dann, wenn kein Wert größer als der zu skalierende aktuelle Wert ist, der skalierte aktuelle Wert nach der folgenden Gleichung berechnet wird: A(m) + R((V(k) - V(m) · S)wobei A(m) der eingestellte Wert des bereits skalierten größten Werts ist, der kleiner als der zu skalierende aktuelle Wert ist, R eine die Zahl auf die nächste Gitterposition rundende Funktion ist, V(k) der einzustellende Wert, V(m) der ursprüngliche Wert des bereits skalierten größten Werts, der kleiner ist als der aktuelle zu skalierende Wert, und S der Maßstab ist; und wobei der zu skalierende aktuelle Wert, dann, wenn ein Wert größer ist als der zu skalierende aktuelle Wert, nach der folgenden Gleichung berechnet wird:A(m) + R((A(r) - A(m)) · (V(k) - V(m))/(V(r) - V(m)))wobei A(m) der eingestellte Wert des größten Wertes ist, der skaliert wurde und kleiner als der zu skalierende aktuelle Wert ist, R eine die Zahl auf die nächste Gitterposition rundende Funktion ist, A(r) der kleinste Wert ist, der skaliert wurde und größer als der zu skalierende aktuelle Wert ist, V(k) der einzustellende Wert, V(m) der Ursprungswert des größten Wertes ist, der skaliert wurde und kleiner als der zu skalierende aktuelle Wert ist, V(r) der ursprüngliche Wert des kleinsten Werts ist, der skaliert wurde und größer ist als der zu skalierende aktuelle Wert, und S der Maßstab ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26304388A | 1988-10-26 | 1988-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3935574A1 true DE3935574A1 (de) | 1990-05-03 |
DE3935574C2 DE3935574C2 (de) | 1999-06-17 |
Family
ID=23000139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3935574A Expired - Fee Related DE3935574C2 (de) | 1988-10-26 | 1989-10-25 | Verfahren zum Minimieren der beim Skalieren eines digitalen Schriftbildes auftretenden visuellen Beeinträchtigung |
Country Status (9)
Country | Link |
---|---|
US (4) | US5281959A (de) |
JP (1) | JP2920387B2 (de) |
KR (1) | KR0159498B1 (de) |
AU (1) | AU629210B2 (de) |
CA (1) | CA1336107C (de) |
DE (1) | DE3935574C2 (de) |
FR (1) | FR2638264B1 (de) |
GB (1) | GB2224420B (de) |
HK (1) | HK53194A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19713654B4 (de) * | 1996-04-02 | 2008-02-28 | Hyundai Electronics Industries Co., Ltd., Ichon | Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0396996A (ja) * | 1989-09-08 | 1991-04-22 | Tokyo Electric Co Ltd | 文字出力装置 |
US5068803A (en) * | 1989-09-15 | 1991-11-26 | Sun Microsystems, Inc. | Method and apparatus for filling contours in digital typefaces |
JP2809314B2 (ja) * | 1989-10-23 | 1998-10-08 | キヤノン株式会社 | 印刷装置 |
JP2918632B2 (ja) * | 1990-06-11 | 1999-07-12 | キヤノン株式会社 | 文字処理方法及び装置 |
JP2755789B2 (ja) * | 1990-06-11 | 1998-05-25 | キヤノン株式会社 | 文字フオントメモリと、該文字フオントメモリを用いた文字パターン発生装置 |
JPH0493894A (ja) * | 1990-08-03 | 1992-03-26 | Canon Inc | 文字処理方法および装置 |
JPH0723997B2 (ja) * | 1990-08-24 | 1995-03-15 | 富士ゼロックス株式会社 | 文字・図形描画装置 |
US5280576A (en) * | 1991-12-24 | 1994-01-18 | Xerox Corporation | Method of adjusting the weight of a character of an outline font |
US5526476A (en) * | 1992-12-07 | 1996-06-11 | Fujitsu Limited | Method and apparatus for generating character patterns expressed by coordinates of a coordinate system |
CA2125608A1 (en) * | 1993-06-30 | 1994-12-31 | George M. Moore | Method and system for providing substitute computer fonts |
JP2964841B2 (ja) * | 1993-07-15 | 1999-10-18 | ブラザー工業株式会社 | データ変換装置 |
JPH07230451A (ja) * | 1994-02-18 | 1995-08-29 | Casio Comput Co Ltd | 文字入力装置 |
JP3641283B2 (ja) * | 1994-04-08 | 2005-04-20 | 富士通株式会社 | グラフィックデータ生成装置 |
EP0701242A3 (de) * | 1994-08-16 | 1996-12-27 | Adobe Systems Inc | Verbessertes Verfahren zum Generieren von Mehrmaster-Schrifttypen |
US5598520A (en) * | 1994-09-26 | 1997-01-28 | Microsoft Corporation | Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary |
JPH08194459A (ja) * | 1995-01-19 | 1996-07-30 | Fujitsu Ltd | アウトライン文字描画装置 |
US5937420A (en) * | 1996-07-23 | 1999-08-10 | Adobe Systems Incorporated | Pointsize-variable character spacing |
US6952210B1 (en) | 1997-12-05 | 2005-10-04 | Adobe Systems Incorporated | Method of generating multiple master typefaces containing kanji characters |
US6563502B1 (en) * | 1999-08-19 | 2003-05-13 | Adobe Systems Incorporated | Device dependent rendering |
US7598955B1 (en) | 2000-12-15 | 2009-10-06 | Adobe Systems Incorporated | Hinted stem placement on high-resolution pixel grid |
US7624277B1 (en) * | 2003-02-25 | 2009-11-24 | Microsoft Corporation | Content alteration for prevention of unauthorized scripts |
US7292247B2 (en) * | 2004-01-26 | 2007-11-06 | Microsoft Corporation | Dynamically determining directions of freedom for control points used to represent graphical objects |
US7236174B2 (en) * | 2004-01-26 | 2007-06-26 | Microsoft Corporation | Adaptively filtering outlines of typographic characters to simplify representative control data |
US7187382B2 (en) | 2004-01-26 | 2007-03-06 | Microsoft Corporation | Iteratively solving constraints in a font-hinting language |
US7136067B2 (en) | 2004-01-26 | 2006-11-14 | Microsoft Corporation | Using externally parameterizeable constraints in a font-hinting language to synthesize font variants |
US7602390B2 (en) * | 2004-03-31 | 2009-10-13 | Adobe Systems Incorporated | Edge detection based stroke adjustment |
US7719536B2 (en) * | 2004-03-31 | 2010-05-18 | Adobe Systems Incorporated | Glyph adjustment in high resolution raster while rendering |
US7580039B2 (en) * | 2004-03-31 | 2009-08-25 | Adobe Systems Incorporated | Glyph outline adjustment while rendering |
US7639258B1 (en) | 2004-03-31 | 2009-12-29 | Adobe Systems Incorporated | Winding order test for digital fonts |
US7256786B2 (en) * | 2004-05-28 | 2007-08-14 | Microsoft Corporation | Appropriately rendering a graphical object when a corresponding outline has exact or inexact control points |
US8253742B2 (en) * | 2004-05-28 | 2012-08-28 | Microsoft Corporation | Rendering stroke pairs for graphical objects |
US20080068383A1 (en) * | 2006-09-20 | 2008-03-20 | Adobe Systems Incorporated | Rendering and encoding glyphs |
US8316310B2 (en) | 2008-08-05 | 2012-11-20 | International Business Machines Corporation | System and method for human identification proof for use in virtual environments |
US8243077B2 (en) * | 2008-08-29 | 2012-08-14 | Dynacomware Taiwan Inc. | Method for generating stroke-based font characters for a low-resolution display |
US8102397B2 (en) | 2009-01-26 | 2012-01-24 | Mitsubishi Electric Research Laboratories Inc. | Method for improving uniform width character strokes using multiple alignment zones |
WO2014205632A1 (en) * | 2013-06-24 | 2014-12-31 | Adobe Systems Incorporated | Gravity point drawing method |
WO2022212652A1 (en) * | 2021-03-31 | 2022-10-06 | Cerini Arielle Nicole | Digital penmanship |
US12056289B2 (en) * | 2022-03-31 | 2024-08-06 | Rensselaer Polytechnic Institute | Digital penmanship |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0199587A2 (de) * | 1985-04-25 | 1986-10-29 | Canon Kabushiki Kaisha | Bildverarbeitungssystem |
US4675830A (en) * | 1984-07-06 | 1987-06-23 | Compugraphic Corporation | Method for producing a scaleable typeface data |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4298945A (en) * | 1978-05-12 | 1981-11-03 | Eltra Corporation | Character generating method and apparatus |
US4231096A (en) * | 1978-10-10 | 1980-10-28 | Eltra Corporation | Digital typesetter |
US4338673A (en) * | 1978-12-05 | 1982-07-06 | Compugraphic Corporation | Phototypesetting system and method |
US4345245A (en) * | 1979-11-26 | 1982-08-17 | Eltra Corporation | Method and apparatus for arranging segmented character groups in a digital typesetter |
JPS5949655A (ja) * | 1982-09-14 | 1984-03-22 | Dainippon Screen Mfg Co Ltd | 2値図形パターンの輪郭データ作成方法 |
US4620287A (en) * | 1983-01-20 | 1986-10-28 | Dicomed Corporation | Method and apparatus for representation of a curve of uniform width |
DE3317842A1 (de) * | 1983-05-17 | 1984-12-06 | Mergenthaler Linotype Gmbh, 6236 Eschborn | Graphisches reproduktions- und seztverfahren von schriftzeichen |
DE3479254D1 (en) * | 1983-07-04 | 1989-09-07 | Karow Rubow Weber Gmbh | Method for automatically digitizing the contours of line graphics, e.g. characters |
JPS6165290A (ja) * | 1984-09-07 | 1986-04-03 | 株式会社日立製作所 | ベクトル文字フオントの作成装置 |
US4674059A (en) * | 1984-09-10 | 1987-06-16 | Allied Corporation | Method and apparatus for generating a set of signals representing a curve |
US4785391A (en) * | 1986-02-07 | 1988-11-15 | Bitstream Inc. | Automated bitmap character generation from outlines |
US4833627A (en) * | 1986-08-29 | 1989-05-23 | The Toles Group | Computerized typesetting correction system |
US4897638A (en) * | 1987-02-27 | 1990-01-30 | Hitachi, Ltd. | Method for generating character patterns with controlled size and thickness |
-
1989
- 1989-05-09 AU AU34584/89A patent/AU629210B2/en not_active Ceased
- 1989-05-10 CA CA000599351A patent/CA1336107C/en not_active Expired - Fee Related
- 1989-05-22 GB GB8911702A patent/GB2224420B/en not_active Expired - Fee Related
- 1989-06-28 FR FR898908614A patent/FR2638264B1/fr not_active Expired - Fee Related
- 1989-07-21 JP JP1187596A patent/JP2920387B2/ja not_active Expired - Fee Related
- 1989-10-25 DE DE3935574A patent/DE3935574C2/de not_active Expired - Fee Related
- 1989-10-26 KR KR1019890015436A patent/KR0159498B1/ko not_active IP Right Cessation
-
1992
- 1992-03-04 US US07/846,781 patent/US5281959A/en not_active Expired - Lifetime
- 1992-03-05 US US07/846,584 patent/US5291186A/en not_active Expired - Lifetime
- 1992-03-05 US US07/846,586 patent/US5304989A/en not_active Expired - Lifetime
- 1992-03-11 US US07/850,245 patent/US5319358A/en not_active Expired - Lifetime
-
1994
- 1994-05-24 HK HK53194A patent/HK53194A/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4675830A (en) * | 1984-07-06 | 1987-06-23 | Compugraphic Corporation | Method for producing a scaleable typeface data |
EP0199587A2 (de) * | 1985-04-25 | 1986-10-29 | Canon Kabushiki Kaisha | Bildverarbeitungssystem |
Non-Patent Citations (1)
Title |
---|
BIGELOW, W. DAY, D.: Digital Typography Scientific American, August 1983, S. 94-104 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19713654B4 (de) * | 1996-04-02 | 2008-02-28 | Hyundai Electronics Industries Co., Ltd., Ichon | Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben |
Also Published As
Publication number | Publication date |
---|---|
JPH02127689A (ja) | 1990-05-16 |
US5304989A (en) | 1994-04-19 |
HK53194A (en) | 1994-06-03 |
DE3935574C2 (de) | 1999-06-17 |
US5281959A (en) | 1994-01-25 |
JP2920387B2 (ja) | 1999-07-19 |
FR2638264A1 (fr) | 1990-04-27 |
KR900006886A (ko) | 1990-05-09 |
AU3458489A (en) | 1990-07-05 |
KR0159498B1 (ko) | 1998-12-15 |
GB2224420B (en) | 1993-08-18 |
US5319358A (en) | 1994-06-07 |
AU629210B2 (en) | 1992-10-01 |
GB2224420A (en) | 1990-05-02 |
US5291186A (en) | 1994-03-01 |
CA1336107C (en) | 1995-06-27 |
FR2638264B1 (fr) | 1994-07-01 |
GB8911702D0 (en) | 1989-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3935574C2 (de) | Verfahren zum Minimieren der beim Skalieren eines digitalen Schriftbildes auftretenden visuellen Beeinträchtigung | |
DE3806223C2 (de) | Verfahren zur Erzeugung von Zeichenmustern | |
DE69130382T2 (de) | Zeichenverarbeitungsverfahren | |
DE3587690T2 (de) | Verfahren um Schrifttypen mit Skalaänderungen herzustellen. | |
DE69434405T2 (de) | Verfahren zur Erzeugung eines visuellen Entwurfs | |
DE69323983T2 (de) | Methode zur Modifizierung des Fettdruckes von Buchstaben | |
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE69221414T2 (de) | Intelligenter Schriftartdarstellungskoprozessor | |
DE69131927T2 (de) | Verfahren und gerät um verfälschte polygone darzustellen | |
DE3716787C2 (de) | ||
DE4014231A1 (de) | Verfahren zum bearbeiten der steuerpunkte eines symbolbildes | |
DE60122835T2 (de) | Anzeigeeinrichtung und -Verfahren, und Datenträger der ein Computerprogramm zur Ansteuerung einer Anzeige mit unterteilten Bildelementen beinhaltet | |
DE4091841C2 (de) | Verfahren zum Erzeugen einer Formulardarstellung und Bildschirm-Formularerzeugungssystem | |
DE3342947C2 (de) | System zur Verarbeitung eines grafischen Musters | |
DE69133362T2 (de) | Dokumentenverarbeitungs-verfahren und -gerät, entsprechende Program und Speichereinheit | |
DE3315148C2 (de) | ||
DE69423129T2 (de) | System und Verfahren zur Kurvendarstellung | |
DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
EP0764310A1 (de) | Verfahren zur generierung einer contone-map | |
DE19713654B4 (de) | Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben | |
DE69330900T2 (de) | Verfahren zum Ausfüllen der Bildpunkte innerhalb eines Polygons | |
DE3932024C2 (de) | Datenverarbeitungsanlage zur Umwandlung einer Gruppe von Umrißdaten | |
DE69013378T2 (de) | Anordnung zur Umsetzung von Bildumrissdaten in Bildpunkte darstellende Punktdaten. | |
DE69222255T2 (de) | Verarbeitungsverfahren für Zeichen oder graphische Daten | |
DE68926263T2 (de) | Abschneidungsverfahren und -verarbeitungsgerät |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06T 1/00 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |