DE3935574A1 - Verfahren zur minimierung der visuellen beeintraechtigung eines schriftbilds - Google Patents

Verfahren zur minimierung der visuellen beeintraechtigung eines schriftbilds

Info

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
Application number
DE3935574A
Other languages
English (en)
Other versions
DE3935574C2 (de
Inventor
Eduardo Martinez
May Kao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE3935574A1 publication Critical patent/DE3935574A1/de
Application granted granted Critical
Publication of DE3935574C2 publication Critical patent/DE3935574C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control 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/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control 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/06Control 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/14Control 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se
    • G06K2215/0034Outline coding
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/948Alteration of stored fonts to maintain feature consistency throughout scaled font

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.
Allgemeine Systemkonfiguration
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.
Prozeßüberblick
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.
Analyse der Schriftzeichen
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.
Schriftbild-Einstellprozesse
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 rn, 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 rn, 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.
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.
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.
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.
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.
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.
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.
DE3935574A 1988-10-26 1989-10-25 Verfahren zum Minimieren der beim Skalieren eines digitalen Schriftbildes auftretenden visuellen Beeinträchtigung Expired - Fee Related DE3935574C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US7236174B2 (en) * 2004-01-26 2007-06-26 Microsoft Corporation Adaptively filtering outlines of typographic characters to simplify representative control data
US7292247B2 (en) * 2004-01-26 2007-11-06 Microsoft Corporation Dynamically determining directions of freedom for control points used to represent graphical objects
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
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
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
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
US20230315216A1 (en) * 2022-03-31 2023-10-05 Rensselaer Polytechnic Institute Digital penmanship

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
BIGELOW, W. DAY, D.: Digital Typography Scientific American, August 1983, S. 94-104 *

Cited By (1)

* Cited by examiner, † Cited by third party
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
US5304989A (en) 1994-04-19
US5281959A (en) 1994-01-25
CA1336107C (en) 1995-06-27
FR2638264B1 (fr) 1994-07-01
KR900006886A (ko) 1990-05-09
US5319358A (en) 1994-06-07
FR2638264A1 (fr) 1990-04-27
DE3935574C2 (de) 1999-06-17
AU629210B2 (en) 1992-10-01
HK53194A (en) 1994-06-03
GB2224420A (en) 1990-05-02
AU3458489A (en) 1990-07-05
KR0159498B1 (ko) 1998-12-15
GB2224420B (en) 1993-08-18
JP2920387B2 (ja) 1999-07-19
GB8911702D0 (en) 1989-07-05
US5291186A (en) 1994-03-01
JPH02127689A (ja) 1990-05-16

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
DE69434405T2 (de) Verfahren zur Erzeugung eines visuellen Entwurfs
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
DE60121388T2 (de) Graphische Anzeigevorrichtung, Vorrichtung zur Anzeige von Zeichen, Anzeigeverfahren, Aufzeichnungsmedium und Programm
DE4091841C2 (de) Verfahren zum Erzeugen einer Formulardarstellung und Bildschirm-Formularerzeugungssystem
DE69133362T2 (de) Dokumentenverarbeitungs-verfahren und -gerät, entsprechende Program und Speichereinheit
DE3315148C2 (de)
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
EP0764310A1 (de) Verfahren zur generierung einer contone-map
DE69629173T2 (de) Automatisches Plazieren eines graphischen Musters
DE19713654B4 (de) Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben
DE3801364A1 (de) Anzeigesystem
DE2928865A1 (de) Verfahren und anordnung zur vergroesserung von zeichensignalen
EP0026378A1 (de) Verfahren zur Hervorhebung eines Bildbereiches innerhalb eines Bildes, das auf einem Bildschirm dargestellt wird
DE3932024C2 (de) Datenverarbeitungsanlage zur Umwandlung einer Gruppe von Umrißdaten
DE3342947A1 (de) Verfahren zur behandlung der daten eines binaeren grafischen musters und system dafuer
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE19512185A1 (de) Verfahren und Vorrichtung zum Erzeugen von Graphikdaten
DE3914905C2 (de)
DE3935558C2 (de) Datenkonvertierungsvorrichtung
DE4105089A1 (de) Stickereidatenverarbeitungseinrichtung
DE4124554A1 (de) Datenumwandlungseinrichtung

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