DE69622961T2 - Verfahren und Vorrichtung zur Darstellung von Zeichen - Google Patents

Verfahren und Vorrichtung zur Darstellung von Zeichen

Info

Publication number
DE69622961T2
DE69622961T2 DE69622961T DE69622961T DE69622961T2 DE 69622961 T2 DE69622961 T2 DE 69622961T2 DE 69622961 T DE69622961 T DE 69622961T DE 69622961 T DE69622961 T DE 69622961T DE 69622961 T2 DE69622961 T2 DE 69622961T2
Authority
DE
Germany
Prior art keywords
leg
character
coarse grid
resolution
grid
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.)
Expired - Lifetime
Application number
DE69622961T
Other languages
English (en)
Other versions
DE69622961D1 (de
Inventor
Terence S. Dowling
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.)
Adobe Inc
Original Assignee
Adobe Systems 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 Adobe Systems Inc filed Critical Adobe Systems Inc
Application granted granted Critical
Publication of DE69622961D1 publication Critical patent/DE69622961D1/de
Publication of DE69622961T2 publication Critical patent/DE69622961T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

    Technisches Gebiet
  • Diese Erfindung bezieht sich allgemein auf Computersysteme und insbesondere auf die Wiedergabe von Zeichen, die auf Computerausgabegeräten darzustellen sind.
  • Technischer Hintergrund
  • Computersysteme weisen üblicherweise irgendeine Form eines visuellen Ausgabegeräts auf. In Fig. 1 beispielsweise beinhaltet ein dem Stand der Technik entsprechendes Computersystem 10 einen Computer 12, eine Tastatur 14, eine Plattenspeichereinheit 16, eine Videoanzeige 18 und einen Drucker 20. Natürlich kann ein Computersystem mehr oder weniger von den im Computersystem 10 dargestellten Komponenten aufweisen, wie Fachleuten auf dem Gebiet des Computer-Designs bekannt ist.
  • Der Computer 12 enthält eine zentrale Verarbeitungseinheit (CPU) 22, Nur-Lese-Speicher (ROM) 24, Arbeitsspeicher (RAM) 26 und Eingabe/Ausgabe (I/O) 28. Die verschiedenen Komponenten 22-28 des Computers 12 sind zur Kommunikation durch ein Bussystem 30 miteinander gekoppelt. Wie Fachleuten klar ist, wurde der Computer 12 für die Zwecke dieser Diskussion stark vereinfacht, weist aber die grundlegenden Komponenten eines Computers und ihre Verbindungen auf.
  • Geräte, wie beispielsweise Tastatur 14, Plattenspeicher 16, Videoanzeige 18 und Drucker 20, werden oft als "periphere" Geräte bezeichnet. Wenn sie mit dem Computer 12 gekoppelt werden, werden sie zum Bestandteil des Computersystems 10. Einige periphere Geräte werden in erster Linie zur Eingabe von Informationen in den Computer 12 verwendet, andere periphere Geräte werden zur Ausgabe von Informationen aus dem Computer 12 verwendet, und einige Computer-Peripheriegeräte werden sowohl für die Eingabe als auch für die Ausgabe von Informationen verwendet.
  • Die Videoanzeige 18 und der Drucker 20 sind übliche Ausgabegeräte für den Computer 12. Solche Ausgabegeräte bilden gewöhnlich temporäre oder permanente Bilder zur Übermittlung von Informationen an den Nutzer des Computersystems 10. Beispielsweise enthält die Videoanzeige 18 einen Bildschirm, der Zeichen, grafische und andere Arten von Bildern darstellen kann. In ähnlicher Weise kann der Drucker 20 Zeichen, Grafiken und andere Arten von Bildern drucken (d. h. eine "Hardcopy" herstellen).
  • Bestimmte Arten von visuellen Ausgabegeräten für Computersysteme 10 sind in der Lage, die Ausgabe in "Graustufen" auszuführen. Dies bedeutet, dass jedes Pixel in der Rastermatrix des Ausgabegerätes in der Lage ist, eine Anzahl von Farbtönen - im typischen Fall von ganz hell bis ganz dunkel - darzustellen. Die meisten modernen monochromen und Farbvideoanzeigen, Videoprojektionseinheiten und Highend-Halbton- Schwarzweiß- und -Farbdrucker sind in der Lage, eine Darstellung in Graustufen auszuführen. Ältere Drucker, Schwarzweiß-Monitore und bestimmte Typen von LCD-Displays sind gewöhnlich nicht in der Lage, eine Darstellung in Graustufen auszuführen.
  • Eine Reihe von Problemen zeigt sich bei der Darstellung von Zeichen auf einem Computerausgabegerät. Es sei angemerkt, dass der Begriff "Zeichen", wie er hier verwendet wird, nicht auf alphanumerische Zeichen beschränkt ist, sondern jede Form eines Zeichens, einer Zahl, eines Symbols oder einer anderen codierten Einheit einschließt, das auf einem Computerausgabegerät dargestellt oder wiedergegeben werden kann. Einige dieser Problem haben mit der Auflösung des Ausgabegeräts zu tun, und andere Probleme haben mit der visuellen Wahrnehmung des Menschen zu tun. "Auflösung", wie hierin verwendet, bezieht sich auf die Größe einzelner Pixel eines Computerausgabegeräts und den Abstand zwischen den Pixeln des Computerausgabegeräts.
  • Die Probleme, die mit der Zeichenabbildung verbunden sind, tendieren zu einer größeren Ausprägung bei kleinen Zeichen als bei größeren Zeichen. Der Grund ist, dass kleine Zeichen aus weniger Pixeln bestehen und daher selbst eine Verzerrung von wenigen Pixeln bei kleineren Zeichen leicht erkennbar ist. Einige der Verzerrungen, die besonders bei diesen kleineren Zeichen auftreten können, sind unausgeglichene "Schenkel"-Gewichtungen, die Unterbrechung dünner Züge, das Schließen von "Counters", ein Über/Unterfüllen und ungenaue Gewichtung. Einer der augenfälligsten dieser Mängel ist die unausgeglichene Schenkelgewichtung, wo vertikale und horizontale Striche von Zeichen aufgrund von Ungenauigkeiten, die durch den Zeichenwiedergabeprozess verursacht werden, von unterschiedlicher Breite sein können. Ein weiterer sehr augenfälliger Mangel ist der ungenaue Gewichtungseffekt von kleineren Zeichen aufgrund eine Quantisierungseffekts. Mit anderen Worten, wird ein Pixel (das "Quantum") einem Zeichenschenkel hinzugefügt, der nur wenige Pixel breit ist, kann dies zur Verzerrung des diesem Zeichen zugeordneten "Gewichts" führen, z. B. kann es "fett" erscheinen, selbst wenn es ein normales Zeichen ist.
  • In Fig. 2A wird das dem gegenwärtigen Stand der Technik zuzuordnende Problem der unausgeglichenen Schenkelgewichtung dargestellt. In diesem Fall wird ein einem Hochauflösungsraster 32 überlagerter Kleinbuchstabe "m", sowohl in Konturenform 34 als auch in "Bitmap"-Form 36 dargestellt. Mit "Bitmap" ist gemeint, dass eine Eins-zu-Eins-Zuordnung zwischen den im Speicher des Computers 12 gespeicherten Daten und einem Bild des darzustellenden Zeichens vorgenommen wird, d. h. jedes Pixel des Ausgabegeräts entspricht einem Bit der im Computer gespeicherten Informationen. Die Kontur 34 wird gewöhnlich von einem zergliederter-Font-Programm bereitgestellt, wie es im Adobe-Type-I-Format, Version 1.1 beschrieben wird, welches erhältlich ist von Adobe Systems, Inc., Mountain View, Kalifornien, oft wegen der Farbe des Einbands bezeichnet als das "Schwarze Buch". Diese Zeichenkontur 34 wird durch ein Wiedergabeprogramm oder einen "Renderer", das/der von einer Vielzahl von Quellen, darunter Adobe Systems Inc., erhältlich ist, in die Bitmap 36 konvertiert oder "wiedergegeben".
  • In Fig. 2A sei angemerkt, dass der Buchstabe "m" bereits durch die Konvertierung aus seiner Font-K 34 in die Bitmap 36 ein paar Verzerrungen aufgesammelt hat. Insbesondere sind die drei vertikalen Beine oder "Schenkel" des Buchstaben "m" von unterschiedlicher Breite. Wie angemerkt, ist der linke Schenkel 38a zwei Pixel breit, der mittlere Schenkel 38b ist ein Pixel breit, und der rechte Schenkel 38c ist zwei Pixel breit.
  • Es sei angemerkt, dass, während Zeichen oft auf einem Hochauflösungsraster, wie in Fig. 2A dargestellt, wiedergegeben werden, sie in eine "Grobraster"-Darstellung konvertiert werden müssen, bevor sie auf dem Ausgabegerät dargestellt werden können. Die Auflösung des Grobrasters entspricht der Auflösung des Ausgabegeräts.
  • In Fig. 2B gestattet die Umwandlung von einem Hochauflösungsraster in ein Grobraster der Wiedergabeeinrichtung, die Schenkel neu auszugleichen. Im Einzelnen verwendet das System "Hinweise", die durch das zergliederter- Font-Programm bereitgestellt werden, zur Dehnung und nachfolgenden Ausrichtung der Schenkel des Zeichens an das Grobraster. Wie angemerkt, haben die Schenkel 40a, 40b und 40c in Fig. 2B alle die gleiche Breite, und daher ist das Problem der unausgeglichenen Schenkel für Schwarzweiß-Ausgabegeräte gelöst worden.
  • Während der Stand der Technik das Problem der unausgeglichenen Schenkelbreiten für die Schwarzweiß-Ausgabegeräte gelöst hat, ist das Problem für Graustufen-Ausgabegeräte erneut aufgetaucht. Der Grund ist, dass Graustufen- Ausgabegeräte ein Verfahren verwenden, das als "Verfahren zur Kantenglättung" ("anit-aliasing") bekannt ist, um die Illusion glatterer Bögen und weniger gezackter Diagonallinien zu erzeugen. Dies wird durch Variieren der Graustufenwerte des Grobrasters erreicht. Aber die Graustufen-Manipulation wirft erneut das Problem der unausgeglichenen Schenkelbreiten für kanterigeglättete (anti-aliased) Zeichen auf.
  • In Fig. 2C wird der Kleinbuchstabe "m" über einem Grobraster 42 und einem entsprechenden Hochauflösungsraster 44 dargestellt. Das Hochauflösungsraster 44 wird in nur einer der Zellen des Grobrasters 42 gezeigt, um die Deutlichkeit der Zeichnungen nicht zu beeinträchtigen, obwohl es klar ist, dass das Hochauflösungsraster 44 allen Zellen des Grobrasters 42 zugeordnet ist. Das Grobraster und das Hochauflösungsraster stehen in folgendem Verhältnis. Wenn das Ausgabegerät 2n+1 Graustufenwerte hat, hat jede "Zelle" 46 des Grobrasters 42 2n Pixel 48. Um ein konkreteres Beispiel zu geben: wenn 17 Graustufenniveaus vom hellsten Weiß bis zum tiefsten Schwarz bereitgestellt werden, dann sind 24 oder 16 Pixel des Hochauflösungsrasters in jeder Zelle des Grobrasters 42. Das bedeutet, dass die Auflösung des Hochauflösungsrasters 44 das Vierfache der Auflösung des Grobrasters 42 beträgt. Wie zuvor wird die Font-Kontur 50 für den Buchstaben "m" gewonnen, und es wird durch den Renderer ein Bitmap 52 mit der Auflösung des Hochauflösungsrasters aus der Schriftartkontur 50 entwickelt.
  • In Fig. 2D ist die Bitmap 52 in Graustufen-"Pixelabbildungs"-Werte konvertiert worden, die an das Ausgabegerät gesendet werden können. Dies wird gewöhnlich in einer einfachen Weise erreicht. Die Anzahl der Pixel für eine bestimmte Zelle wird gezählt, und diese Anzahl wird dem Graustufen-Niveau für diese Zelle zugeordnet. Daher entsprechen Zellen mit mehr Pixeln einem dunkleren Graustufenwert als Zellen mit weniger Pixeln. Diese Technik, die als "Verfahren zur Kantenglättung" ("anti-aliasing") bezeichnet wird, glättet in hohem Maße das Erscheinungsbild von Bögen und reduziert die Zackigkeit von Diagonallinien, wie es Fachleuten bekannt ist.
  • Wie hierin verwendet, ist eine "Pixelabbildung" nahezu dasselbe wie eine "Bitmap" mit der Ausnahme, dass mehrere Werte im Speicher des Computersystems 12 gespeichert werden, um jedem Pixel des Ausgabegeräts zu entsprechen. Beispielsweise werden für jedes Pixel auf einem Graustufen- oder Farbbildschirm mehrere numerische Werte im Computer gespeichert, um den mehreren Graustufen-Niveaus für jedes der Pixel des Bildschirms zu entsprechen.
  • Es sei jedoch angemerkt, dass das Problem der unausgeglichenen Schenkel bei Graustufen-Ausgabegeräten im Ergebnis des Prozesses des "Verfahrens zur Kantenglättung" erneut aufgetaucht ist, das dazu bestimmt war, durch die Anpassung der Graustufenniveaus ausgewählter Pixel auf der Ausgabedarstellung Bögen glatter und Diagonallinien weniger gezackt zu gestalten. Im Einzelnen erscheint Schenkel 54a zwei Pixel breit, während Schenkel 54b und 54c ungefähr ein Pixel breit erscheinen. Erneut ist das Phänomen der unausgeglichenen Schenkel ganz offensichtlich bei kleinen Zeichen und reduziert die Qualität des Ausgabebilds.
  • Es sei angemerkt, dass, während bei dieser Diskussion vertikale Schenkel im Mittelpunkt standen, das Problem bei horizontalen Schenkeln gleichermaßen erkennbar ist. Beispielsweise ist, während das Beispiel des Kleinbuchstaben "m" angegeben wurde, dieses Problem der unausgeglichenen Schenkel auch bei solchen Buchstaben, wie dem Großbuchstaben "E", erkennbar. Darüber hinaus können sowohl vertikale als auch horizontale "Schenkel" oder Segmente in einem einzelnen Buchstaben gefunden werden, wie beispielweise der Buchstabe "o", der zwei vertikale Seitensegmente oder Schenkel und zwei horizontale obere und untere Segmente oder Schenkel aufweist.
  • Fig. 3A, 3B und 3C werden verwendet, um sowohl vertikale "Schenkel" als auch horizontale "Schenkel" an dem gleichen Zeichen "o" darzustellen. In Fig. 3A wird das Grobraster 56 mit der Font-Kontur 58 des Zeichens "o" und mit seiner resultierenden Bitmap 60 dargestellt. Es sei daran erinnert, daß, während die Font-Kontur 58 als eine Hochauflösungs-Bitmap 60 wiedergegeben wurde, das tatsächliche Ausgabegerät nur bei einer Auflösung des Grobrasters 56 darstellen kann, was 1/4 der Auflösung der Hochauflösungs-Bitmap dieses Beispiels ist.
  • Wie in Fig. 3B zu erkennen ist, ist dies nicht so sehr ein Problem im Hinblick auf ein Schwarzweiß-Ausgabegerät. Mit einem solchen Gerät wird die Hochauflösungs-Bitmap 60 aus Fig. 3A in eine Grob-Bitmap 62 konvertiert, welche der Auflösung des Ausgabegeräts entspricht. Die Grob-Bitmap wird mit dem Grobraster in der Weise ausgerichtet, dass die vertikalen Schenkel 62a und 62b die gleiche Breite haben, und dass die horizontalen Schenkel 64a und 64b die gleiche Breite haben. Wie oben angemerkt und in Übereinstimmung mit der Industrie-Konvention kann ein "Schenkel" ein Teil eines gebogenen Buchstabens sein, wie beispielsweise Teile oder Segmente des Buchstabens "o". Es sei ferner angemerkt, dass diese Schenkel symmetrisch ausgeglichen sein sollten und nicht notwendigerweise alle die gleiche Breite haben. Beispielsweise haben in der Schriftart HelveticaTM in Übereinstimmung mit dem Design des Schriftartentwicklers die vertikalen Schenkel 62a und 62b eine größere Breite als die horizontalen Schenkel 64a und 64b. "Helvetica" ist eine Marke von Linotype AG und/oder ihrer Töchter.
  • In Fig. 3C, wo ein Verfahrens zur Kantenglättung angewendet wurde, um das Erscheinungsbild des Buchstaben "o" zu glätten, wird eine Schenkelunausgeglichenheit eingebracht. Insbesondere haben die horizontalen Schenkel 66a und 66b eine ganz unterschiedliche Breite. In diesem speziellen Beispiel sind die horizontalen Schenkel 68a und 68b grob ausgeglichen, obwohl das nicht immer der Fall ist. Es sei auch angemerkt, dass ein Teil der Graustufen-Pixelabbildung 70 sich unterhalb der "Grundlinie" 72 für das Zeichen befindet. Dies hat auch einen Verzerrungseffekt und sollte, wenn möglich, vermieden werden.
  • Es wurden einige Versuche von Herstellern von Ausgabegeräten unternommen, das Bild, das an das Ausgabegerät als eine Bitmap oder eine Pixelabbildung bereitgestellt wird, zu verbessern. Beispielsweise stellen bestimmte Drucker der Hewlett-Packard Company eine "Bildverbesserung" bereit, die versucht, "gezackte" Diagonallinien und Bögen zu glätten. Während solche Mechanismen der Nach-Wiedergabe- Bildverbesserung im Allgemeinen nützlich sind, sind sie nicht völlig erfolgreich, weil die Informationen, die zur Erzeugung der Bitmap oder der Pixelabbildung verwendet wurden (z. B. die Font-Kontur), dem Ausgabegerät nicht zur Verfügung stehen. Daher kann eine Nach-Wiedergabe-Bildverbesserung solche Probleme, wie unausgeglichene Schenkelbreiten etc., nicht lösen.
  • Ein weiteres Beispiel einer dem Stand der Technik entsprechenden Anordnung wird in WO 94/29843 (APPLE COMPUTER) offenbart.
  • Offenbarung der Erfindung
  • Die vorliegende Erfindung stellt ein Verfahren zur Erzeugung eines kantengeglätteten Zeichens auf einem Computerausgabegerät ohne Erzeugung von Verzerrungen der Schenkelbreiten in den Zeichen bereit. Insbesondere gleicht die vorliegende Erfindung die Schenkelbreiten aus, während noch alle Vorteile der Kantenglättung (anti-aliasing) für Bogenglättung und Zackenbeseitigung bereitgestellt werden.
  • Nach der vorliegenden Erfindung wird ein Verfahren zur Wiedergabe eines Zeichens auf einem Ausgabegerät, das eine Zielauflösung hat, bereitgestellt, wobei das Zeichen einen Schenkel mit einer vorgegebenen Breite hat, wobei das Verfahren die folgenden Schritte umfasst:
  • Bestimmen einer Anzahl von durch das Ausgabegerät darzustellenden Graustufen;
  • Bestimmen eines Grobrasters mit einer Zellenmatrix, wobei das Grobraster ungefähr die gleiche Auflösung wie die Zielauflösung hat, wobei jede Zelle des Grobrasters einem Gerätepixel des Ausgabegeräts entspricht;
  • Bestimmen eines Hochauflösungsrasters, das in den entsprechenden Zellen des Grobrasters enthalten sein soll, wobei das Hochauflösungsraster mit dem Grobraster derart ausgerichtet wird, dass eine Zelle des Grobrasters eine ganzzahlige Anzahl von Zellen des Hochauflösungsrasters enthält;
  • Wiedergeben des Zeichens bei der Auflösung des Hochauflösungsrasters durch Erzeugung einer Anfangs-Bitmap des Zeichens; Ausrichten des Zeichenschenkels der Anfangs- Bitmap des Zeichens mit dem Grobraster zur Erzeugung einer Hochauflösungs-Bitmap, wobei das Ausrichtverfahren davon abhängig ist, ob das Zeichen mit einem harten oder weichen Rand wiederzugeben ist, Runden der Schenkelbreite auf das nächste Vielfache des Grobrasters, wenn das Zeichen mit einem harten Rand wiederzugeben ist; und
  • Einstellen der Schenkelbreite durch Runden auf das nächste ganzzahlige Vielfache des Hochauflösungsrasters und Ausrichten des Schenkels mit dem Grobraster, wenn das Zeichen mit einem weichen Rand wiederzugeben ist; und
  • dadurch gekennzeichnet, dass die Anzahl von Hochauflösungspixeln in jeder Zelle des Grobrasters eine Funktion der Anzahl von Graustufen ist, die von dem Ausgabegerät darzustellen sind.
  • Nach der vorliegenden Erfindung wird ferner eine Zeichenwiedergabeeinrichtung zur Wiedergabe eines Zeichens auf einem Ausgabegerät mit einer Zielauflösung bereitgestellt, wobei das Zeichen bei einer Auflösung eines Rasters wiedergegeben wird, das eine höhere Auflösung als die Zielauflösung hat, wobei die Wiedergabeeinrichtung eine vorgegebene Anzahl von Graustufen darstellt, und wobei das Zeichen einen Schenkel mit einer festgelegten Breite hat, wobei die Wiedergabeeinrichtung enthält:
  • einen Grobrastergenerator zur Erzeugung eines Grobrasters mit einer Zellenmatrix, wobei das Grobraster ungefähr die gleiche Auflösung wie die Zielauflösung hat, wobei jede Zelle des Grobrasters einem Gerätepixel des Ausgabegeräts entspricht, wobei das Hochauflösungsraster in den entsprechenden Zellen des Grobrasters enthalten ist und derart zu dem Grobraster ausgerichtet ist, dass eine Zelle des Grobrasters eine ganzzahlige Anzahl von Zellen des Hochauflösungsrasters enthält;
  • einen Zeichenausrichter, der den Zeichenschenkel einer Anfangs-Bitmap des Zeichens zu dem Grobraster ausrichtet, um ein Hochauflösungs-Bitmap zu erzeugen, wobei das Verfahren der Ausrichtung davon abhängig ist, ob das Zeichen mit einem harten oder einem weichen Rand wiederzugeben ist; wobei der Ausrichter die Schenkelbreite auf das nächste Vielfache des Grobrasters runde und den Schenkel auf das Grobraster zentriert, wenn das Zeichen mit einem harten Rand wiederzugeben ist; und
  • wobei der Ausrichter die Schenkelbreite durch Runden auf das nächste ganzzahlige Vielfache des Hochauflösungsrasters einstellt und den Schenkel mit dem Grobraster ausrichtet, wenn das Zeichen mit einem weichen Rand wiederzugeben ist;
  • dadurch gekennzeichnet, dass die Anzahl von Hochauflösungspixeln in jeder Zelle des Grobrasters eine Funktion der Anzahl von Graustufen ist, die von dem Ausgabegerät darzustellen sind.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, dass das Verfahren der Kantenglättung zur Glättung von Bögen und zur Verhinderung von gezackten Diagonallinien verwendet werden kann, ohne bestimmte Verzerrungen in das Bild des dargestellten Zeichens einzubringen. Die Erfindung realisiert diese Aufgabe durch Ausrichtung der Hochauflösungs- Bitmap des Zeichens zu dem Grobraster während des Wiedergabeprozesses, d. h. während noch genügend Zeicheninformationen verfügbar sind, um solche Probleme, wie unausgeglichene Schenkelbreiten und Quantisierungsverzerrungen, zu beachten.
  • Diese und andere Vorteile der vorliegenden Erfindung werden beim Lesen der folgenden detaillierten Beschreibungen und dem Studium der verschiedenen Figuren der Zeichnungen deutlich.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist eine Blockdarstellung eines typischen, dem Stand der Technik entsprechenden Computersystems, das auch ein geeigneter Host für das Verfahren und die Einrichtung der vorliegenden Erfindung ist;
  • Fig. 2A ist eine Ansicht einer dem Stand der Technik entsprechenden Hochauflösungs-Bitmap für den Buchstaben "m";
  • Fig. 2B ist eine Ansicht einer dem Stand der Technik entsprechenden Bitmap des Buchstabens "m", die gedehnt und mit einem Grobraster in der Weise ausgerichtet wurde, dass bei der Darstellung auf einem Schwarzweiß-Ausgabegerät dieser Buchstabe mit ausgeglichenen Schenkelbreiten erscheint;
  • Fig. 2C stellt den Buchstaben "m" dar, der in einer Hochauflösungs-Bitmap wiedergegeben wird;
  • Fig. 2D stellt die unausgeglichenen Schenkelbreiten dar, die sich bei der Bereitstellung einer kantengeglätteten Version der Bitmap aus Fig. 2C ergeben;
  • Fig. 3A zeigt eine Hochauflösungs-Bitmap des Buchstabens "o";
  • Fig. 3B zeigt die Konvertierung der Hochauflösungs-Bitmap aus Fig. 3A in eine gering aufgelöste Bitmap für ein Schwarzweiß-Ausgabegerät;
  • Fig. 3C zeigt eine Pixelabbildung für ein dem Stand der Technik entsprechendes Graustufen-Ausgabegerät, die aus der Bitmap von Fig. 3A abgeleitet wurde;
  • Fig. 4 ist ein Flussdiagramm eines Verfahrens zur Erzeugung kantengeglätteter Zeichen mit ausgeglichenen Schenkelbreiten in Übereinstimmung mit der vorliegenden Erfindung;
  • Fig. 5 ist eine Darstellung des Schritts "EMPFANGEN ANFORDERUNG AUS CLIENT" aus Fig. 4;
  • Fig. 6 ist ein Flussdiagramm des Schritts "AUSRICHTEN SCHENKEL" aus Fig. 4;
  • Fig. 7 zeigt die Schritte "RUNDEN SCHENKELBREITE AUF GROBRASTER" und "ZENTRIEREN SCHENKEL AUF GROBRASTER" aus Fig. 6;
  • Fig. 8 zeigt die Schritte "RUNDEN SCHENKELBREITE AUF HOCHAUFLÖSUNGSRASTER" und "AUSRICHTEN LINKS/UNTEN UND OBEN/RECHTS AUF GROBRASTER" aus Fig. 6;
  • Fig. 9A, 9B, 9C und 9D werden zur Darstellung eines ersten Beispiels des Verfahrens der vorliegenden Erfindung verwendet; und
  • Fig. 10A, 10B, 10C und 10D werden zur Darstellung eines zweiten Beispiels des Verfahrens der vorliegenden Erfindung verwendet.
  • Die besten Ausführungsformen der Erfindung
  • Die vorliegende Erfindung beinhaltet vorzugsweise Prozesse, die auf einem Computersystem, wie beispielsweise dem in Fig. 1 dargestellten Computersystem 10, ausgeführt werden ("laufen"). Wie jedoch Fachleute erkennen werden, können die hierin beschriebenen Verfahren und Einrichtungen auch durch Hardware- oder Firmware-Äquivalente implementiert werden. Beispielsweise sind viele Schriftartwiedergabe- und andere Darstellungsverfahren in anwendungsspezifische integrierte Schaltungen (ASICs) eingebettet, wie es Fachleuten bekannt ist.
  • Fig. 1, 2a-2d und 3a-3c wurden bezüglich des Standes der Technik diskutiert. In Fig. 4 beginnt ein Prozess 74 in Übereinstimmung mit der vorliegenden Erfindung zur Erzeugung eines Hochauflösungs-Bitmaps zur Erzeugung kantengeglätteter Zeichen auf einem Computerausgabegerät bei 76 und empfängt in einem Schritt 78 einer Anforderung von einem Client mit einem Zeichenzeiger, Größe, Anzahl der Graustufen und Verfahrensweise. Gemäß der Verwendung hierin ist ein "Client" ein Anwendungsprogramm, Hilfsprogramm oder anderes Verfahren, das eine Hochauflösungs-Bitmap anfordert, die weiterverarbeitet und auf einem Ausgabegerät dargestellt werden kann. Beispielsweise kann ein Client ein Textverarbeitungsprogramm sein. Alternativ könnte der Client Teil eines größeren "Renderers" sein.
  • Als Nächstes richtet das Verfahren in einem Schritt 80 die Schenkel des Zeichens aus, basierend auf der Verfahrensweise, die durch den Client und durch die Anzahl der durch den Client spezifizierten Graustufen vorgeschrieben wird.
  • Wie später ausführlicher diskutiert werden wird, beinhaltet diese Verfahrensweise, ob das Zeichen einen harten oder weichen Rand haben sollte, was manchmal als "harte" bzw. "weiche" Verfahrensweise bezeichnet werden kann. Diese Verfahrensweise kann durch den Wiedergeber (Renderer), den Client, dynamisch ausgewählt werden, oder kann durch den Erzeuger des Wiedergebers festgelegt werden.
  • Die Anzahl von Graustufen wird im typischen Fall entweder durch den Client oder den Benutzer des Computersystems definiert. Beispielsweise ist es häufig möglich, zu spezifizieren, dass eine Ausgabe in Schwarzweiß (d. h. mit nur zwei Werten), mit vier Graustufennuancen, mit sechzehn Graustufennuancen, mit 256 Graustufennuancen, etc. darzustellen ist.
  • Nachdem die Schenkel des Zeichens ausgerichtet worden sind, werden in Schritt 82 Einstellungen für auflösungsabhängige Eigenschaften basierend auf der Anzahl von Graustufen eingestellt. Beispielsweise können geräteabhängige Eigenschaftseinstellungen, wie zum Beispiel Fleckgröße (Verhältnis von scheinbarer Pixelgröße zu physischer Pixelgröße), in diesem Schritt 82 behandelt werden, wie Fachleuten klar ist. Zum Schluss wird in Schritt 84 eine Hochauflösungs-Bitmap an den Client bereitgestellt. Im typischen Fall achtet der Client auf die Graustufenwiedergabe der Hochauflösungs-Bitmap, obwohl eine solche Graustufenwiedergabe auch im Wiedergabeprozess selbst realisiert werden kann, wie vorher erwähnt. Der Prozess ist dann abgeschlossen, wie bei 86 dargestellt.
  • Fig. 5 wird zur ausführlicheren Darstellung von Schritt 78 aus Fig. 4 verwendet. Im Einzelnen empfängt ein verbesserter Font-Renderer 88 der vorliegenden Erfindung eine Anforderung 89 von einem Client 90, welche einen Zeichenzeiger, eine Zeichengröße, die Anzahl der Graustufen und die Verfahrensweise beinhaltet. Der Renderer 88 erzeugt einen Aufruf 91 an ein zergliederter Font-Programm 92, welches ein Zeichenprogramm (zur Erzeugung einer Font-Kontur des Zeichens), Schriftartwerte und Schriftartfamilienwerte zurücksendet, wie bei 93 dargestellt. Der verbesserte Font-Renderer 88 übermittelt dann eine Hochauflösungs-Bitmap, wie bei 95 dargestellt, an den Client 90, die Graustufenwiedergabe ausführt und der eine gering aufgelöste Pixelabbildung 96 an ein Ausgabebildgerät 94 sendet.
  • Wie oben erläutert, kann der Client 90 irgendein Anwendungsprogramm, Dienstprogramm oder ein anderer computerimplementierter Prozeß sein, der in der Lage ist, die Darstellung eines Zeichens auf dem Ausgabegerät 94 anzufordern. Das zergliederter Font-Programm ist vorzugsweise ein Font-Programm wie Adobe-Type-I-Format, erhältlich von Adobe Systems, Inc., Mountain View, Kalifornien. Eine komplette Beschreibung zu Verwendung und Betrieb eines zergliederter Font-Programms 92 ist in dem "Schwarzen Buch", oben, zu finden.
  • Fachleuten, die den Inhalt des "Schwarzen Buchs" kennen, ist es sofort klar, wie Clients, zum Beispiel Client 90, Aufrufe an Renderer ausführen und von den Renderern Hochauflösungs-Bitmaps zurückbekommen, und ferner, wie Client 90 aus einem Hochauflösungs-Bitmap eine Pixelabbildung für das Ausgabegerät 94 herstellen kann. Die Verwendung eines zergliederter-Font-Programms 92 ist Fachleuten ebenfalls bekannt, zusammen mit dem Empfang von Aufrufen aus einem Renderer, und die Bereitstellung des Zeichenprogramms, der Schriftartwerte und der Schriftartfamilienwerte.
  • In Fig. 6 wird Schritt 80 aus Fig. 4 ausführlicher dargestellt. Im Einzelnen beginnt der Prozeß 80 bei 98, und in einem Schritt 100 werden die aktuelle Font-Matrix und Schenkeleigenschaften aus dem zergliederter Font-Programm 92 empfangen. Details dieser Operation werden ebenfalls in dem "Schwarzen Buch" erläutert. Als Nächstes werden in einem Schritt 102 die Schenkeleigenschaften mit der Matrix transformiert, um Geräterastergitterorte der Schenkelränder und Schenkelbreiten zu erhalten.
  • In einem Schritt 104 wird bestimmt, ob die Verfahrensweise eine "Hartrand"- oder eine "Weichrand"-Verfahrensweise ist. Eine Hartrand- oder "Hart"-Verfahrensweise ist eine solche, bei welcher vertikale und horizontale Schenkel vollkommen schwarz dargestellt werden, d. h. die Graustufe nicht verwendet wird. Bei einer Hartrand-Verfahrensweise unterliegen nur Bögen und Diagonalen dem Graustufen-Kantenglättungs- Verfahren. Im Gegensatz dazu gestatten Weichrand- oder "Weich"-Verfahrensweisen die Kantenglättung von horizontalen und vertikalen Schenkeln.
  • Ob Hartrand- oder Weichrand-Verfahrensweisen angewendet werden, kann durch den Client ausgewählt oder dem Ermessen des Renderers überlassen werden. Hartrand-Verfahrensweisen tendieren zur Ausführung schärferer, dunklerer Schenkel, können aber an einigen der oben genannten Quantisierungseffekten leiden. Weichrand-Verfahrensweisen scheinen glatter zu sein, können aber einigen Betrachtern "unscharf" erscheinen.
  • Wenn eine Hartrand-Verfahrensweise gewählt wird, rundet Schritt 106 die Schenkelbreite auf ein ganzzahliges Grobraster. Mit "ganzzahlig" ist gemeint, dass ein ganzzahliges Vielfaches einer Zellenbreite gewählt wird, d. h. das 0-,1- ,2-,3-fach u. s. w. der Zellenbreite. Als Nächstes wird in einem Schritt 108 der Schenkel auf das Grobraster zentriert, und das Verfahren ist bei 110 abgeschlossen.
  • Wenn eine Weichrand-Verfahrensweise gewählt wird, wie durch Schritt 104 festgestellt, rundet ein Schritt 112 die Schenkelbreite auf ein ganzzahliges Hochauflösungsraster, und dann bestimmt ein Entscheidungsschritt 114, ob der Schenkel ein "Geister"-Schenkel ist. Der Begriff "ganzzahlig" wird hier in einer ähnlichen Weise verwendet, um ganzzahlige Vielfache von Hochauflösungsrasterpixeln zu bezeichnen, d. h. das 0-,1-,2-,3-fache der Hochauflösungsrasterpixel. "Geister"-Schenkel werden in dem vorher erwähnten "Schwarzen Buch" diskutiert, und sind, kurz gesagt, Schenkel mit nur einem einzustellenden Rand.
  • Wenn die Schenkel keine Geisterschenkel sind, bestimmt ein Schritt 116 die Nähe des Schenkels zum Raster, und wenn er näher an dem Links/Unten des Rasters ist, wird er basierend auf dieser Nähe mit dem Links/Unten des Grobrasters ausgerichtet. Wenn Schritt 116 bestimmt, dass er näher an dem Oben/Rechts der Zelle ist, wird er basierend auf seiner Nähe auf das Oben/Rechts der Grobrasterzelle ausgerichtet.
  • Wenn Schritt 114 bestimmt, dass der Schenkel ein Geisterschenkel ist, bestimmt ein Entscheidungsschritt 122 den Typ des Geisterschenkels. Wenn er ein Links/Unten-Geisterschenkel ist, wird er basierend auf dieser Geisterinformation mit einem Links/Unten der Grobrasterzelle ausgerichtet. Wenn er ein Oben/Rechts-Geisterschenkel ist, wird er in einem Schritt 126 basierend auf dieser Geisterinformation auf das Oben/Rechts der Grobrasterzelle ausgerichtet. Beachten Sie, dass diese Einstellung nicht wie in Schritt 116 durch die Nähe bestimmt ist, sondern stattdessen durch den "Geister"-Hinweis selbst. Nach Abschluss der Schritte 118, 120, 124 und 126 ist der Prozess, wie bei 110 dargestellt, abgeschlossen.
  • In Fig. 7 wird eine Darstellung gezeigt, die die Erklärung der Schritte 106 und 108 der Hart-Verfahrensweise aus Fig. 6 unterstützt. In Fig. 7 wird beispielsweise für ein Grobraster 128 angenommen, dass es 130 Zellen aufweist, welche quadratisch sind und vier Pixel an jeder Seite haben. Es wird ein "idealer" Fleck (spot) 132 dargestellt, der sich teilweise in Zelle 130a und auch teilweise in einer angrenzenden Zelle 130b befindet. Der Mittelpunkt dieses idealen Flecks 132 wird bei 134 dargestellt.
  • An dieser Stelle sei angemerkt, dass es einige geräteabhängige und einige designerabhängige Entscheidungen gibt, die getroffen werden können. Beispielsweise hängt die Entscheidung darüber, wie der ideale Fleck 132 mit dem Grobraster 128 auszurichten ist, in hohem Maße vom Typ des verwendeten Ausgabegeräts und von Designer-Entscheidungen ab. Beispielsweise verwenden die meisten Personalcomputerdrucker der ersten Generation die "Canon"-Druckmodule, die von Canon, Inc., Japan hergestellt werden. Bei diesen Druckern der ersten Generation wird ein rundes Pixel gedruckt, das die Zelle des Grobrasters komplett abdeckt, d. h. das runde Pixel hat einen Durchmesser, der ungefähr so groß ist wie eine Diagonale der Zelle des Rasters.
  • In den letzten Jahren wurde eine Reihe neuer Typen von Druckmodulen entwickelt. Beispielsweise erzeugt ein "Xerox"- Modul, hergestellt von Xerox, Inc., USA, ein Pixel, das vier konkave Seiten in der Weise aufweist, dass das Pixel gänzlich in die Zelle des Grobrasters hineinpasst. Im Ergebnis dessen können drei Pixel, die von einem Canon-Modul erzeugt werden, 3,8 Zellen des Grobrasters abdecken, während vier Pixel, die von einem Xerox-Modul erzeugt werden, 3,7 Zellen des Grobrasters abdecken.
  • Mit der vorangegangenen Erklärung im Gedächtnis wird ein Schritt 108 aus Fig. 6 so diskutiert, als ob ein Ausgabegerät ein vollkommen quadratisches Pixel entsprechend der quadratischen Zelle 30 des Grobrasters 128 erzeugen kann, wobei davon ausgegangen wird, dass dies nur eine Annäherung an die Realität ist. Wie in Fig. 7 zu sehen ist, wird der ideale Fleck 132, wenn er kleiner als 6 Pixel ("6-" Pixel) ist, auf vier Pixel in der Breite geschrumpft und mit der Zelle 130a ausgerichtet. Wenn aber der Fleck 132 größer als 6 Pixel ("6+" Pixel) ist, wird er auf 8 Pixel in der Breite vergrößert und veranlasst, sowohl Zellen 130a als auch 130b auszufüllen. Im ersten Fall ist der Mittelpunkt des Flecks 132' bei 134' (d. h. der Mittelpunkt von Zelle 138), und in dem anderen Fall hat der Fleck 132" einen Mittelpunkt 134", der sich an der Schnittstelle zwischen den Zellen 130a und 130b befindet. Auf diese Weise wird der Fleck 132 auf das Grobraster 128 ausgerichtet, so dass die Ausgeglichenheit der Schenkelgewichtungen gewahrt bleibt.
  • In Fig. 8 wird die Weichrand-Verfahrensweise dargestellt. Im Einzelnen stellt Fig. 8 die Schritte 112, 118, 120, 124 und 126 aus Fig. 6 dar. Wie in Fig. 8 zu sehen ist, hat ein idealer Fleck 136 einen Mittelpunkt 138 und ist einem Grobraster 140 und einem Hochauflösungsraster 142 zugeordnet. Wie zuvor wird das Hochauflösungsraster nur in einer der Zellen 144 des Grobrasters 140 dargestellt, um die Deutlichkeit der Zeichnungen nicht zu beeinträchtigen, obwohl klar ist, dass das Hochauflösungsraster 142 allen Zellen des Grobrasters 140 zugeordnet ist.
  • In Übereinstimmung mit der "Weichrand"-Verfahrensweise rundet Schritt 112 zuerst die Schenkelbreite auf ein ganzzahliges Hochauflösungsraster 142. In diesem Fall ist eine Seite eines Hochauflösungsrasterpixels 1/4 einer Seite einer Zelle 144. Daher wird in einem Schritt 112 die Breite des Schenkels 134 auf das nächste 1/4 einer Grobrasterzelle gerundet. Als Nächstes wird bestimmt, mit welchen Zellen des Grobrasters 140 die gerundete Schenkelbreite auszurichten ist. Dies ist der Zweck der Schritte 114, 116 und 122. Wenn die passende Zelle gefunden ist, wird der gerundete Schenkel entsprechend ausgerichtet.
  • In diesem Beispiel ist der Fleck 136 teilweise in einer Zelle 144a und 144b zentriert. Wenn bestimmt wird, dass der gerundete Schenkel auf die linke Zelle auszurichten ist, wird er, wie angegeben, so auf Position 136' verlagert, dass er die Zelle 144a vollständig ausfüllt und teilweise die Zelle 144b überlappt. Wenn er andererseits zu der rechten Zelle auszurichten ist, wird er in der Weise verlagert, dass er die Zelle 144b vollständig ausfüllt und Zelle 144a teilweise überlappt.
  • Analog kann der Schenkel 136, wenn er die Zelle in vertikaler Richtung nur teilweise überlappt, an der Ober- oder Unterseite der Zelle des Grobrasters in ähnlicher Weise ausgerichtet werden. Des weiteren kann er, wenn er eine Zelle sowohl in vertikaler als auch in horizontaler Richtung nur teilweise überlappt, zur Verlagerung veranlasst werden, um die Ausrichtung mit der Zelle des Grobrasters sowohl in die Richtungen Links/Unten als auch Oben/Rechts auszuführen. Daher können sowohl horizontale als auch vertikale Schenkel durch das Verfahren und die Einrichtung der vorliegenden Erfindung behandelt werden.
  • Die vorhergehenden Beschreibungen und Darstellungen beschreiben das grundlegende Verfahren und die grundlegende Einrichtung der vorliegenden Erfindung. Wie vorher erwähnt wurde, wird das Verfahren der vorliegenden Erfindung vorzugsweise auf einem Mehrzweck-Computersystem ausgeführt, um Bilder auf einem Ausgabegerät, wie einem Bildschirm, einem Bildprojektionssystem oder einem Halbton-Drucker, bereitzustellen. Das Verfahren und die Einrichtung der vorliegenden Erfindung werden ferner unter den Bedingungen von zwei erläuternden Beispielen diskutiert.
  • Beispiel 1 - Der Kleinbuchstabe "m"
  • In Fig. 9a wird die Font-Kontur 148 des Buchstaben "m", einem Grobraster 146 überlagert dargestellt. Von dieser Font-Kontur 148 wird eine Hochauflösungs-Bitmap 150 erzeugt. Es sei angemerkt, dass die Hochauflösungs-Bitmap 150 zu dem Hochauflösungsraster 152 ausgerichtet wird.
  • Fig. 9b stellt die Pixelabbildung (pixel map) dar, wie sie in Übereinstimmung mit der "Weichrand"-Verfahrensweise der vorliegenden Erfindung erzeugt wird. Die Hochauflösungs- Bitmap 150 wird zuerst im Hinblick auf das Hochauflösungsraster 152 gerundet und wird dann zu dem Grobraster 146, wie oben beschrieben, ausgerichtet. Dann wird die Pixelabbildung 154 durch diese gerundete und ausgerichtete Bitmap erzeugt, um die geeigneten Graustufendaten für das Ausgabegerät bereitzustellen. Wie zu sehen ist, haben die Schenkel 156a, 156b und 156c alle die gleiche Breite und haben ungefähr die gleiche Pixeldichte. Dies ergibt eine kantengeglättete Ausgabe, während noch die Schenkelbreitenausgeglichenheit erhalten bleibt.
  • Die "Hartrand"-Verfahrensweise wird unter Bezugnahme auf Fig. 9c beschrieben. In diesem Fall werden die Daten, die in Fig. 9a dargestellt sind, so "gedehnt", dass jeder der Schenkel 158a, 158b und 158c die Breite einer Zelle 160 des Grobrasters 146 hat. Dies steht in Übereinstimmung mit den Schritten 106 und 108 aus Fig. 6. Als Nächstes wird die "gedehnte" Bitmap 160 von Fig. 9c in die Graustufen-Pixelabbildung 164 von Fig. 9d konvertiert. Es ist wiederum zu beachten, dass die Schenkel 166a, 166b und 166c der Pixelabbildung 164 die gleiche Breite und im wesentlichen die gleiche Dichte haben. Dies gestattet die Kantenglättung des Buchstaben "m", während die Schenkelgewichtungsausgeglichenheit erhalten bleibt.
  • Beispiel 2 - Der Kleinbuchstabe "o"
  • In Fig. 10a ist ein "o" einem Grobraster 168 und einem Hochauflösungsraster 170 übergelagert. Insbesondere wird eine Font-Kontur 172 verwendet, um eine Bitmap 174 des Buchstabens "o" zu erzeugen. Es sei angemerkt, dass, weil die dargestellte Schriftart aus der "Helvetica"-Familie stammt, die Ober- und Unterseite des "o" dünner sind als die zwei Seiten des "o".
  • Fig. 10b stellt eine Pixelabbildung 176 dar, die in Übereinstimmung mit der Weichrand-Verfahrensweise aus der Bitmap 174 aus Fig. 10a erzeugt wurde. Wie vorher beschrieben, rundet die Weichrand-Verfahrensweise zuerst die Schenkel auf das Hochauflösungsraster 170 und richtet dann die gerundeten Schenkel zu dem Grobraster 168 aus. Wie in Fig. 10b angemerkt, führt dies zu einer Pixelabbildung, die einen linken Schenkel 178a aufweist, der im wesentlichen dem rechten Schenkel 178b gleicht, während sie einen oberen Schenkel 180a aufweist, der im wesentlichen dem unteren Schenkel 180b gleicht. Daher hat diese kantengeglättete Wiedergabe des "o" die Schenkelgewichtungsausgeglichenheit sowohl in horizontaler als auch in vertikaler Richtung in Übereinstimmung mit der vorliegenden Erfindung gewahrt.
  • In Fig. 10c wird eine gedehnte Bitmap 182 aus der Bitmap 174 von Fig. 10a in Übereinstimmung mit der "Hartrand"- Verfahrensweise erzeugt. Wie angemerkt, wurden der linke und rechte Schenkel 184a und 184b so gedehnt, dass sie die vier Zellen des Schenkels vollständig ausfüllen, während der obere Schenkel 186a und der untere Schenkel 186b in gleicher Weise gedehnt wurden, damit die beiden oberen und unteren Zellen des Grobrasters 168 ausgefüllt werden. Dies steht in Übereinstimmung mit den vorher diskutierten Schritten des Rundens auf das ganzzahlige Grobraster und der Grobrasterausrichtung.
  • In Fig. 10d ist die Bitmap 182 gemäß vorheriger Beschreibung in eine Graustufen-Pixelabbildung 188 konvertiert worden. Es sei angemerkt, dass der linke Schenkel 190a und der rechte Schenkel 190b ausgeglichen sind, wie auch der obere Schenkel 192a und der untere Schenkel 192b. Es sei ebenfalls angemerkt, dass der untere Teil 194 des Buchstaben "o" nicht unter die Grundlinie des Grobrasters 168 geht.
  • Während diese Erfindung anhand verschiedener bevorzugter Ausführungsbeispiele beschrieben worden ist, gibt es Änderungen, Umstellungen und Äquivalente, die in den Umfang der vorliegenden Erfindung fallen. Es sei ferner angemerkt, dass es viele alternative Wege gibt, sowohl das Verfahren als auch die Einrichtung der vorliegenden Erfindung zu implementieren, und dass für die Zwecke der Instruktion und Klarheit bestimmte Konzepte eingeführt wurden.
  • Beispielsweise werden, wie vorher beschrieben, Grob- und Hochauflösungsraster vorzugsweise nicht wirklich in dem Verfahren "aufgebaut", sondern werden stattdessen hierin verwendet, um die Konzepte der vorliegenden Erfindung zu erläutern. Wie Fachleuten klar ist, kann auch die Ordnung der Schritte häufig verändert werden, und bestimmte Schritte wurden für Zwecke der Klarheit vereinfacht. Beispielsweise wird der Schritt der "Wiedergabe einer Hochauflösungs-Bitmap" vorzugsweise implementiert, indem zuerst eine Hochauflösungs-"Hinweisabbildung" ["hintmap"] entwickelt wird, Einstellungen an der Hinweisabbildung bereitgestellt werden und dann die tatsächlichen Pixel der Hochauflösungs-Bitmap wiedergegeben werden. Die "Hinweisabbildung" ist einfach eine Hochauflösungsdarstellung der Rastereinpass-Einrichtungszonen des Zeichens, wie Fachleuten klar ist. Alternativ kann der Schritt der Wiedergabe der Hochauflösungs-Bitmap der einzelne oben beschriebene Schritt sein.
  • Es ist daher beabsichtigt, dass die folgenden beigefügten Ansprüche in der Weise interpretiert werden, dass sie alle derartigen Änderungen, Umstellungen und Äquivalente enthalten, die unter den Umfang der vorliegenden Erfindung fallen.

Claims (10)

1. Ein Verfahren zur Wiedergabe eines Zeichens auf einem Ausgabegerät, das eine Zielauflösung hat, wobei das Zeichen einen Schenkel mit einer vorgegebenen Breite hat, das Verfahren enthaltend die Schritte:
Bestimmen einer Anzahl von durch das Ausgabegerät anzuzeigenden Grauskalen;
Bestimmen eines Grobrasters mit einer Zellenmatrix, wobei das Grobraster etwa die gleiche Auflösung wie die Zielauflösung hat, wobei jede Zelle des Grobrasters einem Gerätepixel des Ausgabegeräts entspricht;
Bestimmen eines Hochauflösungsrasters, das in den zugehörigen Zellen des Grobrasters enthalten sein soll, wobei das Hochauflösungsraster mit dem Grobraster derart ausgerichtet wird, daß eine Zelle des Grobrasters eine ganzzahlige Anzahl von Zellen des Hochauflösungsrasters enthält;
Wiedergabe des Zeichens mit der Auflösung des Hochauflösungsrasters durch Erzeugung einer Anfangs-Bitmap des Zeichens;
Ausrichten des Zeichenschenkels der Anfangs-Bitmap des Zeichens mit dem Grobraster zum Erzeugen einer Hochauflösungs-Bitmap, wobei der Ausrichtvorgang davon abhängig ist, ob das Zeichen mit einem harten Rand oder weichen Rand wiedergegeben werden soll;
wenn das Zeichen mit einem harten Rand wiedergegeben werden soll, Runden der Schenkelbreite auf das nächste Vielfache des Grobrasters und Zentrieren des Schenkels auf das Grobraster; und
wenn das Zeichen mit einem weichen Rand wiederzugeben ist, Einstellen der Schenkelbreite durch deren Runden auf das nächste ganzzahlige Vielfache des Hochauflösungsrasters und Ausrichten des Schenkels mit dem Grobraster;
dadurch gekennzeichnet,
daß die Anzahl von Hochauflösungspixeln in jeder Zelle des Grobrasters eine Funktion der Anzahl von Grauskalen ist, die von dem Ausgabegerät wiederzugeben sind.
2. Ein Verfahren zum Wiedergeben eines Zeichens nach Anspruch 1, wobei der Wiedergabeschritt das Wiedergewinnen eines Zeichenprogramms, Fontwerten und Fontfamilienwerten entsprechend dem wiederzugebenden Zeichen enthält; und wobei das Zeichenprogramm ausgeführt wird, um die Orte der Schenkelränder des Zeichens in bezug auf das Grobraster zu bestimmen.
3. Ein Verfahren zur Wiedergabe von Zeichen nach Anspruch 1, wobei der Schritt des Ausrichtens des Schenkels ferner abhängig ist entweder von der Nähe des Schenkels zum Grobraster, Geisterschenkelinformationen oder von beiden, wobei ein Geisterschenkel ein Schenkel mit nur einem zu steuernden Rand ist.
4. Ein Verfahren zum Wiedergeben von Zeichen nach Anspruch 3, wobei der Schritt des Ausrichtens des Schenkels mit dem Grobraster dann, wenn der Schenkel ein Geisterschenkel ist, die folgenden Schritte enthält:
bei einem Links/Unten-Geisterschenkel wird das Links/Unten eines solchen Schenkels mit dem Links/Unten des Grobrasters ausgerichtet; und
bei einem Rechts/Oben-Geisterschenkel wird das Rechts/Oben eines solchen Schenkels mit einem Rechts/Unten- Grobrasterrand ausgerichtet.
5. Ein Verfahren zur Wiedergabe eines Zeichens nach Anspruch 3, wobei bei einem Schenkel, der kein Geisterschenkel ist, der Schritt des Ausrichtens eines Schenkels mit dem Grobraster die folgenden Schritte enthält:
eine Nähe des Schenkels zum Grobraster wird entweder als Nähe zum Links/Unten oder als Nähe zum Rechts/Oben des Grobrasters bestimmt;
bei einer Links/Unten-Nähe wird das Links/Unten eines solchen Schenkels mit einem Links/Unten-Grobrasterrand ausgerichtet; und
bei einer Rechts/Oben-Nähe wird das Rechts/Oben eines solchen Schenkels mit einem Rechts/Unten-Grobrasterrand ausgerichtet.
6. Eine Zeichenwiedergabeeinrichtung zum Wiedergeben eines Zeichens auf einem Ausgabegerät, das eine Zielauflösung hat, wobei das Zeichen bei einer Auflösung eines Rasters mit einer höheren Auflösung als die Zielauflösung wiedergegeben wird, wobei die Wiedergabeeinrichtung eine vorgegebene Anzahl von Grauskalen wiedergibt und das Zeichen einen Schenkel von vorgegebener Breite hat, wobei die Wiedergabeeinrichtung enthält:
einen Grobrastergenerator zum Erzeugen eines Grobrasters mit einer Matrix von Zellen, wobei das Grobraster etwa die gleiche Auflösung wie die Zielauflösung hat, jede Zelle des Grobrasters einem Gerätepixel des Ausgabegeräts entspricht, das Hochauflösungsraster in entsprechenden Zellen des Grobrasters enthalten und mit dem Grobraster derart ausgerichtet ist, daß eine Zelle des Grobrasters eine ganzzahlige Anzahl von Zellen des Hochauflösungsrasters enthält;
einen Zeichenausrichter, der den Zeichenschenkel aus einer Anfangs-Bitmap des Zeichens mit dem Grobraster ausrichtet, um eine Hochauflösungs-Bitmap zu erzeugen, wobei das Ausrichtverfahren davon abhängig ist, ob das Zeichen mit einem harten Rand oder weichen Rand wiedergegeben werden soll;
wobei der Ausrichter die Schenkelbreite auf das nächste Vielfache des Grobrasters rundet und den Schenkel auf das Grobraster zentriert, wenn das Zeichen mit einem harten Rand wiedergegeben werden soll; und
wobei der Ausrichter die Schenkelbreite durch deren Runden auf das nächste ganzzahlige Vielfache des Hochauflösungsrasters einstellt und den Schenkel mit dem Grobraster ausrichtet, wenn das Zeichen mit einem weichen Rand wiedergegeben werden soll;
dadurch gekennzeichnet,
daß die Anzahl von Hochauflösungspixeln in jeder Zelle des Grobrasters eine Funktion der Anzahl von Grauskalen ist, die von dem Ausgabegerät wiederzugeben sind.
7. Eine Zeichenwiedergabeeinrichtung nach Anspruch 6, ferner enthaltend ein Zeichenprogramm zum Wiedergewinnen eines Zeichenprogramms, Fontwerten und Fontfamilienwerten entsprechend dem wiederzugebenden Zeichen, wobei das Zeichenprogramm die Orte der Schenkelränder des Zeichens in bezug auf das Grobraster bestimmt.
8. Eine Zeichenwiedergabeeinrichtung nach Anspruch 6, wobei der Zeichenausrichter ferner in einer Weise arbeitet, die entweder von der Nähe des Schenkels zum Grobraster, Geisterschenkelinformationen oder von beiden abhängig ist, wobei ein Geisterschenkel ein Schenkel mit nur einem zu steuernden Rand ist.
9. Eine Zeichenwiedergabeeinrichtung nach Anspruch 8, wobei der Schenkelausrichter dann, wenn ein Schenkel ein Geisterschenkel ist, das Links/Unten eines solchen Schenkels mit einem Links/Unten-Grobrasterrand für einen Links/Unten- Geisterschenkel ausrichtet und das Rechts/Oben eines solchen Schenkels mit einem Rechts/Unten-Grobrasterrand für einen Rechts/Oben-Geisterschenkel ausrichtet.
10. Eine Zeichenwiedergabeeinrichtung nach Anspruch 8, wobei dann, wenn ein Schenkel kein Geisterschenkel ist, der Schenkelausrichter die Nähe des Schenkels entweder nächst eines Links/Unten eines Grobrasters oder eines Rechts/Oben des Grobrasters feststellt und das Links/Unten eines solchen Schenkels mit einem Links/Unten-Grobrasterrand für eine Links/Unten-Nähe ausrichtet und den Rechts/Oben-Rand eines solchen Schenkels mit dem Rechts/Unten-Grobrasterrand für eine Rechts/Oben-Nähe ausrichtet.
DE69622961T 1995-10-23 1996-10-23 Verfahren und Vorrichtung zur Darstellung von Zeichen Expired - Lifetime DE69622961T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/547,562 US5943063A (en) 1995-10-23 1995-10-23 Method and apparatus for rendering characters

Publications (2)

Publication Number Publication Date
DE69622961D1 DE69622961D1 (de) 2002-09-19
DE69622961T2 true DE69622961T2 (de) 2003-04-10

Family

ID=24185154

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69622961T Expired - Lifetime DE69622961T2 (de) 1995-10-23 1996-10-23 Verfahren und Vorrichtung zur Darstellung von Zeichen

Country Status (5)

Country Link
US (1) US5943063A (de)
EP (1) EP0772144B1 (de)
JP (1) JP3819976B2 (de)
CA (1) CA2188512A1 (de)
DE (1) DE69622961T2 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408555B2 (en) 2004-03-31 2008-08-05 Adobe Systems Incorporated Adjusted Stroke Rendering
US7580039B2 (en) 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
US7602390B2 (en) 2004-03-31 2009-10-13 Adobe Systems Incorporated Edge detection based stroke adjustment
US7719536B2 (en) 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322343A (zh) * 1998-10-07 2001-11-14 微软公司 将图象数据采样映射到条化显示装置上的象素子组元
US6421054B1 (en) * 1998-10-07 2002-07-16 Microsoft Corporation Methods and apparatus for performing grid fitting and hinting operations
US6597360B1 (en) * 1998-10-07 2003-07-22 Microsoft Corporation Automatic optimization of the position of stems of text characters
EP1125271B1 (de) * 1998-10-07 2011-11-23 Microsoft Corporation Abbildung von vordergrund/hintergrund farbbildaten mit pixelteilkomponenten
US6480190B1 (en) * 1999-01-29 2002-11-12 Mitsubishi Electric Research Laboratories, Inc Graphical objects represented as surface elements
EP1026659A3 (de) * 1999-02-01 2002-01-30 Sharp Kabushiki Kaisha Gerät zur Anzeige von Zeichen, Verfahren zur Steuerung der Anzeige und Aufzeichnungsmedium
US6614432B1 (en) * 1999-04-16 2003-09-02 Adobe Systems Incorporated Image rendering technique
WO2001009873A1 (en) 1999-07-30 2001-02-08 Microsoft Corporation Rendering sub-pixel precision characters having widths compatible with pixel precision characters
US6282327B1 (en) * 1999-07-30 2001-08-28 Microsoft Corporation Maintaining advance widths of existing characters that have been resolution enhanced
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US6608932B1 (en) * 1999-11-29 2003-08-19 Xerox Corporation Outline font for analytical assessment of printed text quality
US20020180768A1 (en) * 2000-03-10 2002-12-05 Siu Lam Method and device for enhancing the resolution of color flat panel displays and cathode ray tube displays
US7598955B1 (en) * 2000-12-15 2009-10-06 Adobe Systems Incorporated Hinted stem placement on high-resolution pixel grid
US7152211B1 (en) * 2001-01-30 2006-12-19 Microsoft Corporation Resolution independent theming
US7224489B2 (en) * 2001-09-25 2007-05-29 Xerox Corporation Font characteristic driven halftoning
WO2003064020A2 (en) 2002-01-28 2003-08-07 Federal Process Corporation Alcohol and glycol modified aluminum tri-alkoxide complexes
US7006107B2 (en) * 2003-05-16 2006-02-28 Adobe Systems Incorporated Anisotropic anti-aliasing
US7002597B2 (en) * 2003-05-16 2006-02-21 Adobe Systems Incorporated Dynamic selection of anti-aliasing procedures
EP1503297A1 (de) * 2003-07-30 2005-02-02 Sap Ag Computerimplementierte Methoden zum Abruf von Trefferzahlen aus einem Datenbanksystem, und ensprechendes Programmprodukt
US7639258B1 (en) * 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US20070177215A1 (en) * 2006-02-01 2007-08-02 Microsoft Corporation Text rendering contrast
US7868888B2 (en) * 2006-02-10 2011-01-11 Adobe Systems Incorporated Course grid aligned counters
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
US7872651B2 (en) * 2007-06-26 2011-01-18 Microsoft Corporation Error metrics for characters
CN102063832A (zh) * 2010-11-26 2011-05-18 北京腾瑞万里科技有限公司 移动终端矢量地图的绘制方法和装置
US10497158B2 (en) * 2017-03-03 2019-12-03 Adobe Inc. Aligning objects with text
CN112232023A (zh) * 2020-10-21 2021-01-15 苏州速显微电子科技有限公司 一种在线位图字体生成***及方法

Family Cites Families (8)

* 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
IE852259L (en) * 1985-09-13 1987-03-13 Scottish & Newcastle Breweries A method and apparatus for constructing, storing and¹displaying characters
US5164717A (en) * 1989-09-28 1992-11-17 Sun Microsystems, Inc. Method and apparatus for the dithering of antialiased vectors
US5299308A (en) * 1990-02-28 1994-03-29 Ricoh Company, Ltd. Graphic data processing apparatus for producing a tone for an edge pixel and reducing aliasing effects
JPH06208370A (ja) * 1992-08-28 1994-07-26 Go Corp エイリアシング阻止および格子適合を結合した文字表示ラスタ化方法
US5444552A (en) * 1992-09-28 1995-08-22 Xerox Corporation Method for compressing, processing, and storing grayscale bitmaps
DE69413035T2 (de) * 1993-06-10 1999-05-06 Apple Computer, Inc., Cupertino, Calif. Antialiasing-verfahren und -vorrichtung mit automatischer justierung von horizontalen und vertikalen rändern an einem zielgitter
KR100243174B1 (ko) * 1993-12-28 2000-02-01 윤종용 서브픽셀 마스크 발생방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408555B2 (en) 2004-03-31 2008-08-05 Adobe Systems Incorporated Adjusted Stroke Rendering
US7580039B2 (en) 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
US7602390B2 (en) 2004-03-31 2009-10-13 Adobe Systems Incorporated Edge detection based stroke adjustment
US7719536B2 (en) 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering

Also Published As

Publication number Publication date
EP0772144B1 (de) 2002-08-14
JP3819976B2 (ja) 2006-09-13
US5943063A (en) 1999-08-24
EP0772144A2 (de) 1997-05-07
EP0772144A3 (de) 1998-07-08
CA2188512A1 (en) 1997-04-24
DE69622961D1 (de) 2002-09-19
JPH10268858A (ja) 1998-10-09

Similar Documents

Publication Publication Date Title
DE69622961T2 (de) Verfahren und Vorrichtung zur Darstellung von Zeichen
DE60031337T2 (de) Geräteabhängige Darstellung von Zeichen
DE69822545T2 (de) Bildverbesserung unter Benutzung einer Flächeninterpolation
DE69320746T2 (de) Rasterbildverbesserung unter Verwendung eines reduzierten Schablonenspeichers
DE69826044T2 (de) Vektorkartenplanarisierung und -einfang
DE69507917T2 (de) Verfahren zur Schriftdarstellung mit Anwendung der Grauwertverarbeitung von gitterangepassten Schrifttypen
DE69935120T2 (de) Automatische Verbesserung der Druckqualität basiert auf Grösse, Form, Orientierung und Farbe von Strukturen
DE69324653T2 (de) Verfahren und gerät zur bildreproduktion mittels grautondruck
DE69323180T2 (de) Verfahren und Vorrichtung zum Justieren der Dichtung von numerischen Bildern
DE69127187T2 (de) Verfahren und Gerät zur Verbesserung von Bit-Bildern
DE69133044T2 (de) Punktgrössensteuerverfahren bei digitaler Halbtonrasterung mit mehrzelligen Schwellenmatrix
DE69331871T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung für ein Bildschirmgerät mit reduzierten Pufferspeichersforderungen
DE69706763T2 (de) Verfahren und Vorrichtung zum selektiven Bearbeiten von abgetasteten Bildvorlagen
DE69033484T2 (de) Identifizierung und Segmentierung von feintexturierten und festen binären Bildern
DE69819608T2 (de) Mehrpegelige Halbtonrasterung mit Rändern verringerter Textur und Deckungssteuerung
EP0654778B1 (de) Verfahren zur Textdarstellung auf Bildschirmgeräten
DE69627090T2 (de) Bildverarbeitungsverfahren und -gerät
DE69226574T2 (de) Verfahren und Gerät zur Reduktion des benötgten Speicherumfangs in einem digitalen Halbltonrasterungssystem
DE69516907T2 (de) Verfahren zur bildkontrast- und auflösungsverbesserung
DE69229112T2 (de) Verfahren zur Wiedergabe von Text auf einem Rasterausgangsgerät
DE19623318A1 (de) Teilpixelcodierungs- und Decodierungsverfahren
DE68904356T2 (de) Bildverarbeitung.
DE69517236T2 (de) Verfahren und Gerät zur Erzeugung der digitalen Halbtondarstellung eines Bildes
DE69728918T2 (de) Verfahren und Gerät zur wirkungsvollen Bildinterpolation
DE69321217T2 (de) Auflösungserhöhungssystem für binäre Bilder

Legal Events

Date Code Title Description
8364 No opposition during term of opposition