DE60108093T2 - Formdatenprozessor - Google Patents

Formdatenprozessor Download PDF

Info

Publication number
DE60108093T2
DE60108093T2 DE60108093T DE60108093T DE60108093T2 DE 60108093 T2 DE60108093 T2 DE 60108093T2 DE 60108093 T DE60108093 T DE 60108093T DE 60108093 T DE60108093 T DE 60108093T DE 60108093 T2 DE60108093 T2 DE 60108093T2
Authority
DE
Germany
Prior art keywords
pixel
shape
pixels
display
sub
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
DE60108093T
Other languages
English (en)
Other versions
DE60108093D1 (de
Inventor
Majid Picsel Technologies Limited ANWAR
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.)
Samsung Electronics Co Ltd
Original Assignee
PICSEL (RESEARCH) Ltd PAISLEY
Picsel Research Ltd
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
Priority claimed from GBGB0009129.8A external-priority patent/GB0009129D0/en
Priority claimed from US09/703,502 external-priority patent/US7055095B1/en
Application filed by PICSEL (RESEARCH) Ltd PAISLEY, Picsel Research Ltd filed Critical PICSEL (RESEARCH) Ltd PAISLEY
Application granted granted Critical
Publication of DE60108093D1 publication Critical patent/DE60108093D1/de
Publication of DE60108093T2 publication Critical patent/DE60108093T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Quality & Reliability (AREA)
  • Image Generation (AREA)
  • Saccharide Compounds (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Polarising Elements (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Description

  • Allgemeiner Stand der Technik
  • Das grafische Aufbereiten von abstrakten Formen kann ein wesentliches Verarbeiten von Formbeschreibungsdaten erfordern. Bekannte Verfahren zum Verarbeiten von Formen finden sich zum Beispiel in der Java 2D API, die Software-Tools zum Verarbeiten von zweidimensionalen Vektorgraphiken bereitstellt. Es verbleibt jedoch ein Bedarf an einem Form verarbeitenden Motor, der die Rechen-Komplexität reduziert, um Verarbeitungsressourcen, besonders in eingebetteten Systemen, die Anzeigevorrichtungen umfassen, zu bewahren.
  • Die vorliegende Erfindung bezieht sich auf die glättende Aufbereitung von gefüllten Formen, in denen das Glätten durch ungewichtete Flächenabtastung realisiert wird.
  • J. D. FOLEY ET AL.: „Computer Graphics: Principles and Practice", 1997, ADDISON-WESLEY als nächstliegender Stand der Technik offenbart auf Seiten 132–135 das Prinzip des Glättens durch ungewichtete Flächenabtastung und spezifiziert, dass der Grauwert für jedes Pixel der Form proportional zu einem Mengenbereich eingestellt wird, der durch die Pixel auf einem Unterpixelgatter abgedeckt wird. Des Weiteren bezieht sie sich auf Seite 983 auf A. R. SMITH: „Tint Fill", PROC. SIGGRAPH 79 (ACM), 1979, Seiten 276 bis 283, für das zugehörige weiche Füllen.
  • Eine spezielle Implementierung des Glättens unter Verwendung von Grauwerten für Pixel an Formkanten wird in US 6,034,700 offenbart.
  • Zusammenfassung der Erfindung
  • Der Formprozessor ist ein Aufbereitungsmodul, das verwendet werden kann, um grafische Objekte mit einem vorbestimmten Format in einen Rahmenpufferspeicher oder eine physikalische Anzeige zu strömen. Durch den Formprozessor aufzubereitende Dokumente können in einfache grafische Objekte zerlegt und an den Formprozessor weitergeleitet werden, der die Objekte wiederum zur Anzeige zusammensetzen kann. Der Formprozessor verarbeitet vorteilhafterweise jedes Objekt als Graustufenwerte, bis Pixeldaten für das Objekt an eine Anzeige oder einen Rahmenpufferspeicher ausgegeben werden.
  • Die Erfindung bezieht sich auf ein Verfahren zur Aufbereitung eines Bilds als eine Anzeige, wie durch den beigefügten Anspruch 1 definiert, ein System zur Verarbeitung grafischer Objekte zur Aufbereitung eines Bilds als eine Anzeige, wie durch den beigefügten Anspruch 28 definiert, und ein Computerprogramm zur Verarbeitung von grafischen Objekten zur Aufbereitung eines Bilds als eine Anzeige, wie durch den beigefügten Anspruch 60 definiert.
  • Ein System zur Verarbeitung grafischer Objekte kann einen Eingabemechanismus zum Empfangen eines Stroms von Objekten umfassen, wobei jedes Objekt einen Satz Parameter aufweist, die ein Bild definieren; und einen Objektprozessor, der den Strom von Objekten auf einer Objekt-um-Objekt-Basis verarbeitet, um ein Pixelraster zu erstellen.
  • Einer der Sätze Parameter kann ein Pfad sein, wobei der Objektprozessor den Pfad verarbeitet, um ein Pixelraster, das einen Umriss des Bilds darstellt, zu erstellen. Der Objektprozessor kann die Kanten des Pfads glätten. Der Objektprozessor kann den Umriss des Bilds lauflängencodieren. Einer der Sätze Parameter kann eine grafische Begrenzungslinie sein, wobei die grafische Begrenzungslinie dem Objektprozessor einen Bereich, in dem das Objekt aufbereitet werden soll, zeigt. Der Objektprozessor kann einen Glättefaktor empfangen, wobei der Glättefaktor eine Menge der Überabtastung des Objekts relativ zum Pixelraster spezifiziert. Einer der Sätze Parameter kann eine Transparenz sein, wobei die Transparenz einen Transparenzwert oder einen Zeiger auf ein Pixelmuster von Transparenzwerten für die Form umfasst.
  • Einer der Sätze Parameter kann eine Füllung sein, wobei die Füllung mindestens eines von einer Farbe, einer Textur oder einem Pixelmuster umfasst. Die geglätteten Kanten können als Graustufenwerte dargestellt sein. Eine Farbton-Reaktionskurve kann auf die Graustufenwerte der geglätteten Kanten angewendet werden. Das Pixelraster kann auf mindestens eines von einem Bildschirm, einem Drucker, einem Netzanschluss oder einer Datei übertragen werden. Einer der Parameter kann vorverarbeitete Formdaten sein. Die vorverarbeiteten Formdaten können eine Clip-Maske umfassen. Die vorverarbeiteten Formdaten können eine Transparenz umfassen. Die vorverarbeiteten Formdaten können eine Füllung umfassen. Das Verfahren kann ferner das Speichern von Zwischenverarbeitungsdaten in einem Cachespeicher umfassen, wobei die Zwischenverarbeitungsdaten mindestens eines von einer Clip-Maske, einer Füllung oder einer Transparenz umfassen.
  • Ein hier beschriebenes Verfahren zur Aufbereitung eines Bilds kann das Empfangen eines anzuzeigenden Objekts umfassen, wobei das Objekt eine Form und eine Füllung umfasst; Umwandeln der Form des Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten, die einen von mindestens zwei möglichen Zuständen für Pixel einer Anzeige aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und Mischen jeder der Vielzahl von Zeilen von codierten Abtastdaten und der Füllung in eine Zeile eines Einzelbilds für die Anzeige.
  • Die codierten Abtastdaten können einen dritten möglichen Zustand für ein Pixel einer Anzeige umfassen, der einen Abschnitt eines Pixels innerhalb der Form darstellt. Die Form kann einen Pfad umfassen, der eine Vielzahl von Segmenten umfasst. Das Verfahren kann das Umwandeln einer oder mehrerer der Vielzahl von Segmenten des Pfads, der in eine Vielzahl nicht gekrümmter Segmente gekrümmt sein kann, umfassen. Das Einzelbild kann mindestens entweder einen Videospeicher oder eine Anzeigevorrichtung umfassen. Das Einzelbild kann mindestens einem eines Nicht-Video-Speichers oder eines Ausgabe-Pixelmusterformatpuffers entsprechen. Die Form kann eine Clip-Maske von codierten Abtastdaten umfassen. Ein Wert für den dritten möglichen Zustand kann für ein Pixel durch das Teilen des Pixels in eine Vielzahl von Unterpixelbereichen berechnet werden, wobei ermittelt wird, welche der Vielzahl von Unterpixelbereichen sich innerhalb der Form befinden, und indem ein Verhältnis derjenigen der Vielzahl von Unterpixelbereichen innerhalb der Form zu der Vielzahl von Unterpixelbereichen ermittelt wird. Der Wert kann als ein Graustufenwert dargestellt werden.
  • Das anzuzeigende Objekt kann eine Transparenz umfassen, und das Mischen kann ferner das Mischen jeder der Vielzahl von Zeilen von codierten Abtastdaten und der Transparenz in eine Zeile eines Einzelbilds für die Anzeige umfassen. Das anzuzeigende Objekt kann eine Transparenz umfassen, wobei die Transparenz gemäß mindestens einer Bittiefen-Korrektur, einer Farbton-Korrektur, einer Skalierung, einer Dekompression oder einem Decodieren vorverarbeitet wird. Die Transparenz kann einen Zeiger auf ein Pixelmuster der Transparenzwerte für die Form umfassen. Die Füllung kann mindestens eines von einer Farbe, einer Textur oder einem Pixelmuster umfassen. Das Verfahren kann das Speichern der Vielzahl von Zeilen von codierten Abtastdaten als eine Clip-Maske in einem Cachespeicher umfassen. Das Verfahren kann das Indexieren der Clip-Maske gemäß der Form umfassen.
  • Ein Verfahren für die achromatische Bildglättung der Kanten eines aufbereiteten Farbbilds, wie hier beschrieben, kann das Empfangen eines anzuzeigenden Objekts umfassen, wobei das Objekt eine Form und eine Füllung umfasst, wobei die Füllung eine oder mehrere Farben umfasst; das Darstellen eines Pixels einer Anzeige als eine Unterpixelmatrix, wobei die Unterpixelmatrix einen oder mehrere die Pixel abdeckende Unterpixelbereiche umfasst; das Schneiden der Form mit der Unterpixelmatrix; und das Umwandeln der Unterpixelmatrix in einen Graustufenwert für das Pixel.
  • Das Verfahren kann das Mischen des Graustufenwerts für das Pixel und die Füllung, die dem Pixel mit einem vorhergehenden Wert für das Pixel entspricht, umfassen. Das Verfahren kann das Wiederholen des Empfangens eines Objekts, das Darstellen eines Pixels, das Schneiden der Form, das Umwandeln der Unterpixelmatrix und das Mischen für eine Abtastzeile von Pixeln umfassen. Das Verfahren kann das Lauflängencodieren der Graustufenwerte für die Abtastzeile von Pixeln umfassen. Eine oder mehrere Dimensionen der Unterpixelmatrix können durch einen Glättewert gesteuert werden.
  • Ein Verfahren zum Glätten einer Kante eines grafischen Objekts, wie hier beschrieben, kann das Empfangen eines anzuzeigenden Objekts umfassen, wobei das Objekt einen Pfad umfasst, der das Objekt abgrenzt, wobei der Pfad eine Innenseite und eine Außenseite aufweist; für jedes einer Vielzahl von Pixeln, die den Pfad schneiden, die Überabtastung des einen der Pixel, um einen für einen Teil des einen der Pixel darzustellenden Graustufenwert, der sich innerhalb des Pfads befindet, zu erhalten; und das Mischen der Vielzahl von Pixeln mit in einem Pixelraster gespeicherten Daten.
  • Das Verfahren kann für jedes einzelne der Vielzahl von Pixeln das Bewerten eines Füllungswerts für das Pixel gemäß dem Graustufenwert und das Ent-Bewerten der in dem Videospeicher gemäß dem Graustufenwert gespeicherten Daten umfassen. Das Verfahren kann für jedes der Vielzahl von Pixeln das Bewerten eines Füllungswerts für das Pixel gemäß einem Transparenzwert und das Ent-Bewerten der in dem Pixelraster gemäß dem Transparenzwert gespeicherten Daten umfassen.
  • Ein System zur Verarbeitung von grafischen Objekten, wie hier beschrieben, kann Empfangsmittel zum Empfangen eines anzuzeigenden Objekts umfassen, wobei das Objekt eine Form, eine Füllung und ein Alpha umfasst; Umwandlungsmittel zum Umwandeln der Form des Objekts in codierte Abtastdaten, die einen von mindestens zwei möglichen Zuständen für Pixel aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und Mischmittel zum Mischen der codierten Abtastdaten, der Füllung und des Alphas in eine Zeile eines Einzelbilds.
  • Die codierten Abtastdaten können einen dritten möglichen Zustand aufweisen, wobei der dritte mögliche Zustand einen Graustufenwert umfasst, der ein Pixel darstellt, das sich auf einer Kante der Form befinden kann, wobei der Graustufenwert einem Abschnitt des Pixels entspricht, der sich innerhalb der Form befinden kann. Das Einzelbild kann mindestens eines von einer Anzeige, einem Drucker, einer Datei oder einem Netzanschluss entsprechen. Das Objekt kann mindestens eines von einer Hintergrundfüllung oder einer Ersatzfüllung umfassen, wobei das Mischmittel die mindestens eine Hintergrundfüllung oder die Ersatzfüllung in eine Zeile eines Einzelbilds mischt.
  • Ein Computerprogramm zur Verarbeitung von grafischen Objekten, wie hier beschrieben, kann einen durch den Computer ausführbaren Code zum Empfangen eines anzuzeigenden Objekts umfassen, wobei das Objekt eine Form, eine Füllung und ein Alpha umfasst; einen durch den Computer ausführbaren Code zum Umwandeln der Form des Objekts in codierte Abtastdaten, die einen von mindestens zwei möglichen Zuständen für Pixel eines Pixelrasters aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und einen durch den Computer ausführbaren Code zum Mischen der codierten Abtastdaten, der Füllung und des Alphas in eine Zeile eines Einzelbilds des Pixelrasters.
  • Das Pixelraster kann mindestens einem von einer Anzeige, einem Drucker, einer Datei oder einem Netzanschluss entsprechen. Die codierten Abtastdaten können einen dritten möglichen Zustand aufweisen, wobei der dritte mögliche Zustand einen Graustufenwert umfasst, der ein Pixel darstellt, das sich auf einer Kante der Form befinden kann, wobei der Graustufenwert einem Teil des Pixels entspricht, der sich innerhalb der Form befinden kann.
  • Ein System zum Verarbeiten von grafischen Objekten, wie hier beschrieben, kann einen Prozessor umfassen, wobei der Prozessor konfiguriert ist, um ein grafisches Objekt zu empfangen, das eine Form, eine Füllung und eine Transparenz umfassen kann, um die Form des grafischen Objekts in codierte Abtastdaten umzuwandeln, die Innenpixeln, Außenpixeln und Übergangspixeln für eine Abtastzeile einer Anzeige entsprechen, wobei jedes Übergangspixel einen Graustellenwert umfasst, der einem Teil des Pixels innerhalb der Form entspricht, und um die codierten Abtastdaten, die Füllung und das Alpha mit einer Pixeldatenzeile zu verbinden; und einen Speicher, der die Pixeldatenzeile speichert, wobei der Speicher angepasst ist, um dem Prozessor die Pixeldatenzeile bereitzustellen, und der Speicher angepasst ist, um eine neue Pixeldatenzeile zu speichern, die erzeugt werden kann, wenn die Pixeldatenzeile mit den codierten Abtastdaten, der Füllung und der Transparenz verbunden werden kann.
  • Das System kann eine Anzeige umfassen, die konfiguriert ist, um den Speicher anzuzeigen. Der Prozessor kann eines oder mehrere von einem Mikroprozessor, einem Mikrocontroller, einem eingebetteten Mikrocontroller, einem programmierbaren digitalen Signalprozessor, einem anwendungsspezifischen integrierten Schaltkreis, einer programmierbaren Gate-Array oder programmierbarer Array-Logic sein. Das System kann mindestens eines von einem Drucker, der konfiguriert ist, um die Zeilen der im Speicher gespeicherten Pixeldaten zu drucken, einer Speichervorrichtung, die konfiguriert ist, um die Zeilen der im Speicher gespeicherten Pixeldaten zu speichern, einer Netzvorrichtung, die konfiguriert ist, um die Zeilen von im Speicher gespeicherter Pixeldaten auszugeben, sein. Der Prozessor kann mindestens einer von einem Chip, einem Chip-Satz oder einem Mikroplättchen sein. Der Prozessor und der Speicher können mindestens einer von einem Chip, einem Chip-Satz oder einem Mikroplättchen sein. Die Anzeige kann eine Anzeige von mindestens einem von einem elektronischen Organisator, einem Palmtop-Computer, einer tragbaren Spielvorrichtung, einem Mobiltelefon mit Internet-Zugriffsmöglichkeit, einem persönlichen digitalen Assistenten, einem intelligenten Telefon, einem Kommunikationsteilnehmer in einem Netzwerk oder einer Set-Top-Box sein.
  • Die Anzeige kann mindestens eine von einem Drucker oder einem Plotter sein. Die Anzeige kann in einem Dokumentenverwaltungssystem verwendet werden. Die Anzeige kann in mindestens einem von einem Faksimilegerät, einem Fotokopierer oder einem Drucker eines Dokumentenverwaltungssystems verwendet werden. Die Anzeige kann in einem System in einem Auto verwendet werden. Die Anzeige kann in mindestens einem von einem Audio-Player, einer Mikrowelle, einem Kühlschrank, einer Waschmaschine, einem Wäschetrockner, einem Backofen oder einem Geschirrspüler verwendet werden. Der Prozessor kann eine Vielzahl von grafischen Objekten empfangen und verarbeitet die Vielzahl von grafischen Objekten parallel.
  • Kurze Beschreibung der Zeichnungen
  • Die genannten sowie weitere Ziele und Vorteile der Erfindung werden aus der folgenden weiteren Beschreibung davon mit Bezugnahme auf die beiliegenden Zeichnungen vollauf verständlich, in denen:
  • 1 eine Datenstruktur für ein grafisches Objekt zeigt, die mit einem Formprozessor verwendet werden kann;
  • 2 ein funktionelles Blockschaltbild eines Formprozessors ist;
  • 3 ein Beispiel einer Operation auf Schnittdaten darstellt, die durch einen Schnittvorgang durchgeführt wird;
  • 4 eine Datenstruktur für codierte Abtastdaten zeigt; und
  • 5 ein Flussdiagramm eines Vorgangs zur Formverarbeitung ist.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform(en)
  • Um ein Gesamtverständnis der Erfindung bereitzustellen, werden nun gewisse darstellende Ausführungsformen einschließlich eines zweidimensionalen Formprozessors, der räumliches Filtern und Farbton-Steuerung für die Kanten von aufbereiteten Objekten einsetzt, beschrieben. Es wird jedoch von denjenigen mit durchschnittlichen Kenntnissen des Fachgebiets verstanden werden, dass die hier beschriebenen Verfahren und Systeme auf geeignete Weise auf andere Anwendungen wie beispielsweise dreidimensionale Formverarbeitung angepasst werden können und mit der Bildglättung eines ganzen Bilds kombiniert werden können. Ein grober Bildglättungsschritt eines ganzen Bilds kann zum Beispiel mit dem feinen Bildglätten von Objektkanten verbunden werden.
  • 1 zeigt eine Datenstruktur für ein grafisches Objekt, das mit einem Formprozessor verwendet werden kann. Das grafische Objekt 100, oder einfach das Objekt 100, kann eine grafische Begrenzungslinie 101, eine Form 102, eine Füllung 104 und ein Alpha 106 umfassen. Die Form 102 kann einen Pfad 108 mit Parametern für Strich 110 und Füllung 112 oder eine Clip-Maske 114 umfassen. Die Füllung 104 kann eine Farbe 116 oder ein Pixelmuster 118 umfassen. Das Alpha 106 kann einen Wert 120 oder eine Maske 122 umfassen.
  • Die grafische Begrenzungslinie 101 kann eine Stelle umfassen, an der das Objekt 100 aufbereitet werden soll, und kann einen Bereich definieren, in den das Objekt gezogen werden soll. Dieser Parameter kann zum Beispiel verwendet werden, um das Aufbereiten eines Bogens durch Kombinieren eines kreisförmigen Pfads mit einer grafischen Begrenzungslinie 101, die einen Quadranten des Kreises überlagert, zu vereinfachen.
  • Die Form 102 kann einen Pfad 108 umfassen, der eine Sequenz von Pfadelementen, die unter Verwendung einer PostScript-artigen Pfadbeschreibung verbunden werden, definiert. Weitere Pfaddarstellungen sind bekannt und können ebenfalls verwendet werden. Der Pfad 108 kann zum Beispiel gerade Zeilensegmente, Bézier-Kurven mit einer Richtung und einer Krümmung, die durch zwei Punkte gesteuert wird, oder andere Pfadkonstrukte umfassen. Der Pfad 108 kann offen oder geschlossen sein. Um komplexere Geometrien zu unterstützen, kann der Pfad 108 selbst schneidende oder mehrere getrennte Bereiche umfassen. Der Strich 110 für den Pfad 108 kann Parameter oder Attribute einschließlich zum Beispiel Join-Attribute umfassen, die das Aufbereiten für zusammengefügte Pfadelemente, wie beispielsweise rund, abgeschrägt oder kegelig, spezifizieren, und Cap-Attribute, die das Aufbereiten für ein Ende des Pfads 108, wie beispielsweise rund, aneinandergefügt, viereckig, dreieckig und so weiter spezifizieren. Die Füllung 112 kann eine Windungsregel oder einen anderen Algorithmus oder Parameter zum Unterscheiden einer Innenseite des Pfads 108 von einer Außenseite des Pfads 108 umfassen, so dass geeignete Bereiche gefüllt werden können. Die Clip-Maske 114 kann einen Zeiger zu einer Cachespeicher-Aufbereitung des grafischen Objekts 100 umfassen, um das redundante Verarbeiten von wiederkehrenden Objekten zu reduzieren.
  • Die Füllung 104 kann im Allgemeinen Informationen darüber umfassen, wie eine Form 102 gefüllt werden soll. Dies kann zum Beispiel eine Farbe 116 umfassen, die ein Farbwert sein kann, der auf einer Palette wie beispielsweise einer 8 Bit Palette definiert wird, oder es kann eine auf einer Komponente basierende Farbe wie beispielsweise 24-Bit RGB, 15-Bit RGB oder 32-Bit CMYK sein, oder die Farbe 116 kann ein Graustufenwert sein. Die Füllung 104 kann ein Pixelmuster 118 umfassen, das ein Pixelmuster einer Textur umfasst, die zum Füllen der Form 102 verwendet werden soll. Das Pixelmuster 118 kann stattdessen einen Zeiger auf ein Pixelmuster umfassen, das zum Füllen der Form 102 verwendet werden soll. Ein derartiges Pixelmuster kann in einer beliebigen Art von Farbmodell bereitgestellt werden, wie etwa denen, die für die Füllung 104 verwendet werden.
  • Das Alpha 106 kann im Allgemeinen Informationen umfassen, die sich auf eine Transparenz der Form 102 beziehen, wenn sie gefüllt ist und angezeigt wird. Das Alpha kann einen Wert 120 umfassen, der ein einzelner Wert ist, der Transparenz für eine gesamte Form 102 beschreibt, die typischerweise von null (transparent) bis eins (opak) reicht. Das Alpha 106 kann wahlweise eine Maske 122 umfassen, die eine Alpha-Maske ist, oder einen Zeiger auf eine Alpha-Maske von Werten für jedes Pixel der aufbereiteten Form 102.
  • Geeignete Anpassungen und Verbesserungen an den obigen Datenstrukturen werden dem Fachmann klar sein. Insbesondere kann das grafische Objekt 100 andere in den Aufbereitungsspezifikationen beschriebene Merkmale wie beispielsweise PostScript, Java 2D API oder die zum Beispiel in dem Mac OS X Betriebssystem verwendeten Quartz und QuickDraw Bibliotheken umfassen.
  • 2 ist ein funktionelles Blockschaltbild eines Formprozessors. Im Allgemeinen stellt der Formprozessor 200 einen Eingabemechanismus zum Empfangen eines Stroms grafischer Objekte bereit, und umfasst einen Objektprozessor, der den Strom von Objekten auf einer Objekt-um-Objekt-Basis verarbeitet, um einen Pixelraster zur Anzeige auf einem Bildschirm zu erstellen. Der Formprozessor 200 empfängt ein grafisches Objekt, das durch eine Form beschrieben wird, gezeigt in 2 als Pfad 202, eine grafische Begrenzungslinie 203, eine Füllung 204 und ein Alpha 206, das zum Beispiel den Komponenten des grafischen Objekts 100, die oben unter Bezugnahme auf 1 beschrieben werden, entsprechen kann. Der Formprozessor 200 kann eine Clip-Maske 232 anstelle eines Pfads 202 empfangen, die durch den Formprozessor 200 direkt an einen Abtastzeilenmischer 226 weitergeleitet werden kann, wie unten beschrieben wird.
  • Steuerdaten für den Formprozessor 200 können eine grafische Bildschirmbegrenzungslinie 208, eine Glätte 210, eine Farbton-Reaktionskurve 212, eine Bittiefe 214, einen Farbraum 216 und eine Bildschirmgrundadresse 218. Diese Steuerdaten können physikalische Parameter steuern, die sich auf eine Anzeige, wie beispielsweise die Bildschirmgrundadresse 218 oder die Farbton-Reaktionskurve 212 beziehen. Die Farbton-Reaktionskurve 212 kann die Graustufenwerte der codierten Abtastdaten wie unten beschrieben gemäß Nichtlinearitäten für eine Anzeigevorrichtung einstellen. Ein Intensitätswert von 50% der Originalgröße kann zum Beispiel in einer Pixelintensität von 65% für eine bestimmte Vorrichtung resultieren. Die Farbton-Reaktionskurve 212 kann sich auf derartige Nichtlinearitäten unter Verwendung einer Verweistabelle oder einem anderen algorithmischen oder auf Verweis basierenden Ansatz einstellen. Andere Steuerdaten können Parametern entsprechen, die durch einen Benutzer (oder Programmierer) spezifiziert werden. Die Glätte 210, die zum Beispiel einen Wert für eine Feinheit oder Granularität der Kantenverarbeitung speichert, kann ein Wert (oder Werte) sein, der (die) eine N × N-Matrix von Unterbereichen jedes Anzeigepixels beschreibt (beschreiben), wie unten beschrieben werden wird.
  • Der Pfad 202 wird einem Abtastumwandler 220 bereitgestellt, der unter Verwendung von Daten von einem Schnittpunkt 221 einem Schnittpuffer 222 Schnittdaten bereitstellt. Ein Schnittvorgang 224 verarbeitet die Schnittdaten weiter und stellt eine Ausgabe an einen Abtastzeilenmischer 226 bereit, der die Ausgabe mit anderen grafischen Objektdeskriptoren und Steuerdaten kombiniert, um eine Ausgabe für einen Videospeicher oder eine physikalische Anzeige zu erzeugen. Durch den Formprozessor 200 erzeugte Zwischendaten können eine grafische Pfad-Begrenzungslinie 228, einen abgeflachten Pfad 230 und eine Clip-Maske 232 umfassen. Die Clip-Maske 232 oder der abgeflachte Pfad 230 können unabhängig von dem Formprozessor 200 verwendet werden oder können als gültige Eingabe dargestellt werden, wodurch die Redundanz von wiederholten Aufrufen an den Formprozessor 200 reduziert wird. Weitere Zwischendaten (nicht gezeigt) können durch den Formprozessor 200 zur Ausgabe erzeugt werden, einschließlich von zum Beispiel geschnittenen Eingaben oder anderen Vorverarbeitungseinstellungen wie beispielsweise der Dekompression von Füllungsbildern und Farbraumumwandlungen, Korrekturen, Einstellungen und Skalierung.
  • Vor der Abtastzeilenverarbeitung kann der Abtastumwandler 220 den Pfad 202 vorverarbeiten. Unnötige Abtastumwandlungen können zum Beispiel durch das Schneiden von gewissen Daten und das Ermitteln, ob Verarbeiten erforderlich ist, vermieden werden. Die grafische Begrenzungslinie 203 für den Pfad 202 und die grafische Bildschirmbegrenzungslinie 208 können in dem Schnittpunkt 221 geschnitten werden. Wenn die Ausgabe von dem Schnittpunkt 221 null ist, ist kein weiteres Verarbeiten erforderlich. Obwohl nicht ausdrücklich in 2 gezeigt, können andere Schnittpunkte erhalten werden, wie beispielsweise ein Schnittpunkt mit einer grafischen Begrenzungslinie für die Füllung 204 (die durch den Formprozessor 200 von den Füllungsdaten angeleitet werden kann), oder eine grafische Begrenzungslinie für das Alpha 206 (das wiederum durch den Formprozessor 200 von den Alphadaten angeleitet werden kann). Wenn ein Satz von Schnittpunkten null ist, ist kein Verarbeiten für den Pfad 202 erforderlich, und ein nächster sequentieller Pfad 202 kann sogleich verarbeitet werden. Wenn eine Clip-Maske 232 als eine Form anstelle des Pfads 202 dargestellt wird, kann die Clip-Maske 232, wie oben angemerkt, direkt an den Abtastzeilenmischer 226 weitergeleitet werden, wodurch Abtastkonvertierung und andere Pfadverarbeitungsschritte überbrückt werden. Jegliche Zwischenverarbeitungsdaten können auf diese Weise gespeichert werden, um redundantes Verarbeiten, einschließlich zum Beispiel der Clip-Maske 232, den Füllungsdaten, den Alphadaten, den abgeflachten Pfaddaten und so weiter zu vermeiden oder zu reduzieren.
  • Der Abtastumwandler 220 kann den Pfad 202 in Schnittpunkte mit Abtastzeilen einer Zielanzeigevorrichtung umwandeln. Diese Funktion kann auf einer hoch-angetasteten Basis unter Verwendung der Glätte 210 durchgeführt werden. Das heisst, dass vor dem Anordnen der Schnittpunkte jede Pixelzeile unter Verwendung der Glätte 210 als ein Parameter in Unterpixelbereiche oder Unterpixelmatritzen geteilt werden kann. Also kann zum Beispiel eine Glätte 210 von zwei in einer Abtastzeile von einhundert Pixeln resultieren, die verarbeitet werden, um Schnittdaten als ein zwei auf zweihundert Raster von Unterpixelbereichen zu erzeugen, die den gleichen Bereich einer Bildschirmanzeige abdecken. Eine Glätte 210 von vier kann darin resultieren, dass die gleiche Abtastzeile verarbeitet wird, um Schnittdaten als ein vier aufvierhundert Raster von Unterpixelbereichen zu erzeugen, und so weiter.
  • Der Pfad 202 kann dann auf die Unterpixelbereiche angewendet werden. Die resultierenden Schnittpunkte oder Schnittdaten können auf einer waagerechten zeilenweisen Basis einschließlich einer Abszisse für jeden Schnittpunkt gespeichert werden, zusammen mit einer Richtung (z. B. nach oben oder nach unten), in der der Pfad eine waagerechte Achse schneidet. Andere Darstellungen sind bekannt und können ebenfalls durch den Abtastumwandler 220 verwendet werden. Der Abtastumwandler 220 kann die grafische Begrenzungslinie 228 des Pfads erzeugen. Der Abtastumwandler 230 kann ebenfalls als Zwischenschritt einen abgeflachten Pfad 230 erzeugen, in dem fortlaufende, nicht lineare Segmente, wie beispielsweise Bézier-Kurven, in eine Anzahl von geraden Pfadsegmenten umgewandelt werden. Dies kann die Rechenkomplexität von Operationen reduzieren, die dem Pfad zugehören. Die Schnittdaten können in dem Schnittpuffer 222 gespeichert werden.
  • Im Allgemeinen analysiert der Schnittvorgang 224 Reihen von Unterpixelbereichen und identifiziert Läufe von Pixeln, die außerhalb einer Form sind, Pixel, die innerhalb einer Form sind und Übergangspixel. Die Übergangspixel, diejenigen, die auf den Kanten einer Form sind und die Form schneiden, so dass sie teilweise innerhalb und teilweise außerhalb der Form sind, können geglättet werden, um Unschärfe oder andere der Aufbereitung zugehörige Artefakte zu entfernen oder zu reduzieren. Diese Überabtastungstechnik wird unten unter Bezugnahme auf 3 detaillierter beschrieben. Innenpixel, Außenpixel und Übergangspixel können dann in den Videospeicher gemischt werden, wie unten beschrieben werden wird.
  • 3 stellt ein Beispiel einer Operation auf Schnittdaten dar, die durch den Schnittvorgang 224 durchgeführt wird. In dem Beispiel aus 3 entsprechen die Schnittdaten einer Abtastzeile von einhundert Pixeln, mit einer Glätte 210 mit einem Wert, der einer vier auf vier Unterpixelmatrix für jedes Pixel der Abtastzeile entspricht.
  • Ein Diagramm 301 zeigt Schnittdaten, die von dem Schnittpuffer 222 aus 2 empfangen werden. Wie in dem Diagramm 301 gezeigt, können die Schnittdaten im Allgemeinen Abszissen umfassen, wo der Pfad 202 Unterpixelbereiche schneidet, gekoppelt mit einer Richtung des Pfads 202. Für die erste Reihe, Reihe N, schneidet der Pfad 202 das 40. Unterpixel in einer Richtung nach oben. Auf der gleichen Reihe schneidet der Pfad 202 das 140. Unterpixel in einer Richtung nach unten. Schnittdaten werden ebenfalls in dem Diagramm 301 für die Reihen N + 1 bis N + 3 angegeben. Es versteht sich, dass dies ein spezifisches Beispiel ist, und dass mehr oder weniger Schnittdaten für eine Reihe von Unterpixelbereichen abhängig von der Komplexität des Pfads 202 bereitgestellt werden können.
  • Die Schnittdaten können verarbeitet werden, um Läufe von ,ein' oder ,aus' gemäß einer Windungsregel oder einem ähnlichen Verfahren zu entnehmen. In dem in 3 gezeigten Beispiel können die Schnittdaten des Diagramms 301 auf diese Weise verarbeitet werden, um die codierten Daten eines Diagramms 302 durch Anwendung einer geraden/ungeraden Windungsregel in diesem Beispiel zu erzeugen.
  • Wie in dem Diagramm 302 dargestellt, können Daten für jede Reihe von Unterpixeln als ein Datenpaar einschließlich eines Ein-/Aus-Merkers und eines Laufs angrenzender Unterpixel in der den Ein-/Aus-Merker teilenden Reihe codiert werden. Im Allgemeinen kann das Ende eines Laufs durch einen Übergang von innen nach außen oder umgekehrt identifiziert werden, wie durch das Anwenden einer Windungsregel oder einer ähnlichen Technik zu den Schnittdaten ermittelt. Aus diesen Daten können Läufe von Pixeln entnommen werden, wodurch Pixel der Zielanzeige, die vollständig innerhalb oder außerhalb der Form sind, die durch die Schnittdaten beschrieben wird, reflektiert werden. In dem Beispiel des Diagramms 302 kann ein erster Lauf von fünf ,aus'-Pixeln, die außerhalb der Form sind, entsprechend Reihen N bis N + 3 und waagerechten Unterpixelbereichen 1–20 leicht erkannt werden.
  • Wie in dem Diagramm 304 dargestellt, kann der Übergang von ,aus'-Läufen zu ,ein'-Läufen durch die Anzahl von ,ein'- oder ,aus'-Unterpixelbereichen für jede Reihe von Unterpixeln charakterisiert werden. Im vorliegenden Beispiel können die Daten nach dem ersten Lauf von fünf ,aus'-Pixeln in Sammlungen von vier Unterpixelbereichen, die Pixeln z. B. Unterpixelbereichen 21–24, 25–28 und so weiter entsprechen, gruppiert werden. Die ,ein'-Unterpixelbereiche in jeder Gruppe von Unterpixelbereichen können dann über vier Reihen summiert werden, um eine Gesamtanzahl von ,ein'-Unterpixelbereichen für ein Pixel zu erhalten. Das Diagramm 304 zeigt diese Gesamtanzahl für sechs waagerecht aufeinanderfolgende Pixel. Das erste dieser Pixel, das waagerechten Unterpixelbereichen 21–24 und den Reihen N bis N + 3 entspricht, umfasst keine ,ein'-Unterpixelbereiche der Reihen N bis N + 2, und vier ,ein'-Unterpixelbereiche ab Reihe N + 3. Dies stellt eine gesamte ,ein'-heit für dieses Pixel von vier Unterpixelbereichen bereit. Dies entspricht einem Verhältnis von 4:16 oder fünfundzwanzig Prozent (4/16 der vier auf vier Unterpixelmatrix). Dies wird als ein Graustufenwert von fünfundzwanzig Prozent für dieses Pixel dargestellt. Diese Analyse kann für waagerecht aufeinanderfolgende Unterpixelbereiche wiederholt werden, bis ein vollständiges ,ein'-Pixel erreicht ist. In dem Beispiel aus 3 wird ein ,ein'-Pixel bei Unterpixelbereich 41–44 erreicht, wo sechzehn von sechzehn Unterpixelbereichen ,ein' sind. Das entsprechende Pixel kann bei einem Lauf ,ein'-Pixel bis zum Ende einer Abtastzeile beginnen, oder bis zu einem nächsten Übergang, sollte sich ein derartiger Übergang ereignen.
  • Die resultierenden Daten für jede Abtastzeile werden als Läufe von ,ein'-Pixeln, Läufe von ,aus'-Pixeln und einem oder mehreren Übergangspixeln dargestellt, die Graustufenwerte aufweisen, die anzeigen, wieviel eines jeden Übergangspixels innerhalb (oder alternativ außerhalb) einer Form ist. 4 unten zeigt ein Beispiel einer Datenstruktur, die Abtastzeilen von Lauflängen von Daten enthält, die in dieser Form codiert sind. In einigen Implementierungen können Graustufenwerte den maximalen oder minimalen Graustufenwert (z. B. 100% oder 0%) umfassen, die anderweitig Pixel oder Läufe darstellen, die ,ein' oder ,aus' sind. Dieser Ansatz kann vorteilhafterweise angewendet werden, um zum Beispiel das Codieren von Daten zu optimieren, die kurze Läufe vorweisen, die zwischen ,ein' und ,aus' wechseln.
  • Es versteht sich, dass andere Techniken verwendet werden können, um Graustufenwerte für Übergangspixel zu erlangen. Der Abschnitt eines Pixels, das innerhalb einer Form ist, kann zum Beispiel mathematisch unter Verwendung von Informationen über Punkt und Neigung für den Pfad 306 ermittelt werden. Durch das Glätten von Formkanten in Graustufenwerte kann ein achromatischer Bildglättungsvorgang für ein Vielfarbenbild durchgeführt werden. Farbe kann anschließend in einem Abtastzeilenmischer bereitgestellt werden, wie unten beschrieben werden wird. Diese Technik kann vorteilhafterweise ebenfalls ohne Überabtastung (d. h. mit einem Wert der Glätte 210, der spezifiziert, dass jedes Pixel einem einzelnen Unterpixelbereich entspricht) eingesetzt werden, da es das Verarbeiten von Alpha und Füllungswerten für eine Form verschiebt, bis Abtastzeilen von neuen Pixeldaten mit Abtastzeilen von aktuellen Pixeldaten gemischt sind. Es versteht sich ebenfalls, dass, obwohl sich das obige Beispiel auf eine Form bezieht, die einen einzelnen inneren Bereich aufweist, komplexere Formen, die mehrere innere und äußere Bereiche umfassen, ähnlich charakterisiert werden können.
  • Unter erneuter Bezugnahme auf 2 kann die Ausgabe des Schnittvorgangs 224 als eine Clip-Maske 232 gespeichert werden. Die Clip-Maske 232 kann gemäß einer Referenznummer, die zum Beispiel auf dem Pfadzeiger für den Pfad 202, der verarbeitet worden ist, basiert, sowohl jeglicher Skalierungsinformationen indexiert werden. Wenn auf diese Weise gespeichert, kann jeder neue Pfad 202, der durch den Formprozessor 200 empfangen wird, mit einem Pool von Cachespeicher-Clip-Masken verglichen werden, so dass das redundante Verarbeiten von identischen Formen wie beispielsweise wiederkehrenden Schriftsätzen in Textzeilen, reduziert oder vermieden werden kann.
  • Der Abtastzeilenmischer 226 kann die Ausgabe von dem Schnittvorgang 224 oder der Clip-Maske 232 mit einem Einzelbild von aktuellen Videodaten mischen. Wie sich aus 2 versteht, kann dies zusätzliche Berechnungen umfassen, die unten nicht vermerkt sind, um Parameter wie beispielsweise Anzeigespeicheradressen, Farbenraum, Bittiefe und so weiter abzubilden. Das Vorverarbeiten durch den Abtastzeilenmischer 226 kann die Dekompression eines Alphabilds oder eines Füllungsbilds, Farbraumkonversion, Farbkorrektur, Farbeinstellung und Skalierung umfassen.
  • Der Abtastzeilenmischer 226 kann direkt an einen Bildschirm, an eine andere Anzeigevorrichtung oder einen Rahmenpufferspeicher zur nachfolgenden Pixelmuster-Aufbereitung ausgegeben werden. Dies kann einen Nicht-Video-Speicher oder einen Ausgabe-Pixelmusterformatpuffer umfassen. Der Abtastzeilenmischer 226 kann typischerweise jeweils auf einer Zeile von Videodaten oder einer Reihe von Pixeln funktionieren. In gewissen Ausführungsformen kann eine Anzahl von Abtastzeilenmischern bereitgestellt werden, um auf einer Anzahl von Abtastzeilen parallel zu funktionieren. Der Abtastzeilenmischer 226 kann für jedes Pixel die Füllung 204 (z. B. einen 24-Bit-Farbwert), das Alpha 206 und die Ausgabe des Schnittvorgangs 224 (oder Clip-Maske, wenn verfügbar) entsprechend diesem Pixel kombinieren. Im Allgemeinen wird die Füllung 204 mit Alpha (zur Transparenz (0 <= Alpha <= 1)) und mit der Ausgabe des Schnittvorgangs 224 (0 (= aus) <= Ausgabe <= 1 (= ein)) vervielfacht. Dies stellt den durch den Formprozessor 200 erzeugten Pixelwert dar. In dem Abtastzeilenmischer 226 wird dieser neue Wert mit dem alten Wert für das Pixel, das durch einen ergänzenden Faktor entbewertet wird, kombiniert. Dieser Mischvorgang kann mathematisch wie folgt ausgedrückt werden: Pi = αef + (1 – αe)Pi-1 [Gl. 1] wobei
    f = der Füllwert für ein Pixel (z. B. ein 24-Bit-Farbwert);
    Pi = die Abtastzeilenmischerausgabe;
    Pi-1 = vorhergehender Pixelwert (vom Puffer);
    α = Alphawert der Form bei dem Pixel;
    e = Randwert für das Pixel (Schnittvorgang-Ausgabe)
    = 0, Außenseite
    = 1, Innenseite
    = Graustufenwert, % der Kante innerhalb der Form
  • Die gemischte Ausgabe kann im Videospeicher zur Anzeige gespeichert sein. Es versteht sich, dass Gl. 1 darstellend ist, und dass andere Gleichungen verwendet werden können, um alte und neue Daten auf einer Pixel-um-Pixel-Grundlage zu verbinden, vorausgesetzt die Gleichung bewertet alte und neue Daten auf geeignete Weise, um zum Beispiel die Transparenz und die Kanten der neuen Daten zu reflektieren. Dies kann zum Beispiel ein Vorgang in zwei Schritten sein, während dem das Bewerten der Kanten zuerst durchgeführt wird, gefolgt durch das Bewerten der Transparenz. Zusätzlich gibt es degenerierte Formen aus Gleichung 1, die bei dem Abtastzeilenmischer 226 eingesetzt werden können, um die Komplexität der Verarbeitung zu reduzieren. Wenn es zum Beispiel einen Lauf von Pixeln innerhalb der Form gibt, der vollständig undurchsichtig ist (d. h. e = 1 & Alpha = 1), dann ist die Ausgabe des Abtastzeilenmischers 226 einfach der Füllwert für jedes Pixel. In diesem Fall können Füllwerte, f, für die entsprechenden Pixel direkt an den Videospeicher ohne weiteres Verarbeiten bereitgestellt werden.
  • 4 zeigt eine Datenstruktur für codierte Abtastdaten, wie sie durch den Schnittvorgang 224 ausgegeben werden. Im Allgemeinen können Pixelwerte als ,ein', ,aus' oder ,Graustufe' gespeichert werden. Pixel, die ein sind, entsprechen Pixeln innerhalb einer Form, die als durch die Füllung 204 aus 2 bereitgestellte Farbwerte aufbereitet werden. Pixel, die aus sind, entsprechen Pixeln außerhalb der Form, und werden die existierende Anzeige oder den Rahmenpufferspeicher nicht beeinträchtigen. Wie oben angemerkt, können zusätzliche Parameter mit einem Objekt, wie beispielsweise einer Hintergrundfüllung, die Füllwerte für ,aus'-Pixel oder Pixel außerhalb der Form bereitstellt, bereitgestellt werden. Als ein weiteres Beispiel kann eine Ersatzfüllung bereitgestellt werden, die von einem vorhergehenden Wert in dem Rahmenpufferspeicher vor dem Mischen subtrahiert wird. Graustufenwerte stellen Formkanten dar, und werden als durch die Füllung 204 bereitgestellte Farbwerte aufbereitet, und gemäß dem Graustufenwert skaliert. Das Codieren stellt ein Schema zum Darstellen von Zeilen von Videodaten dar, dass eine bedeutende Reduzierung der Verarbeitungskosten ermöglicht, wenn die Form verarbeitet wird. Das Codieren als Läufe von ,ein' und ,aus' ist zum Beispiel nicht teuer und Graustufenberechnungen sind weniger teuer bezüglich der Speicherbenutzung und der Prozessorzeit, weil sie die Erfordernis eines vollständigen Pixelrasters zur Bildverarbeitung vermeiden. Zusätzlich stellt das Lauflängencodieren einen Nutzen dar, wenn die Videodaten als Clip-Masken gespeichert werden. Es versteht sich jedoch, dass andere Kompressionstechniken auf geeignete Weise mit den hier beschriebenen Systemen verwendet werden können.
  • Die lauflängencodierte Datenstruktur 400 kann einen Anfangsblock 402, eine Länge 404, eine Breite 406, eine Höhe 408, einen oder mehrere Versätze 410 und eines oder mehrere Datensegmente 412 umfassen. Der Anfangsblock 402 kann jegliche Anfangsblockinformationen umfassen, die zur Identifikation oder Verwendung der Datenstruktur 400 nützlich sind. Die Länge 404 kann eine Länge der Datenstruktur 400 anzeigen. Die Breite 406 kann einen Wert anzeigen, der für eine Breite in Pixeln einer Form darstellend ist. Die Höhe 408 kann einen Wert anzeigen, der für eine Anzahl von Abtastzeilen einer Form darstellend ist. Der eine oder die mehreren Versätze 410 zeigen Byteversetzungen an Datensegmente für jede Abtastzeile einer Form an. Das eine oder die mehreren Datensegmente 412 enthalten jeweils codierte Daten für eine Abtastzeile einer Form. Die Datensegmente 412 können als ,innerhalb', gefolgt von einer Lauflänge in Pixeln, ,außerhalb' gefolgt von einer Lauflänge in Pixeln oder ,Kante', gefolgt von einer Anzahl von Pixeln in der Kante und einem Graustufenwert für jedes der Anzahl von Pixeln in der Kante dargestellt werden. Jeder Kantenwert kann zum Beispiel als ein Byte (256 Ebenen) Graustufenwert dargestellt werden.
  • 5 ist ein Flussdiagramm eines Vorgangs der Formverarbeitung. In der folgenden Erörterung soll sich der Ausdruck ,Schnittdaten' auf Daten beziehen, die Schnittpunkte zwischen einem Pfad und Unterpixelbereichen beschreiben. In einem degenerierten Fall kann jeder Unterpixelbereich einem vollständigen Pixel entsprechen, und folglich wird kein Glätten durchgeführt. Der Ausdruck ,codierte Abtastdaten' soll sich auf Daten in unkomprimierter oder komprimierter (z. B. lauflängencodierter) Form, die Bereiche einer Abtastzeile in einem von drei Zuständen, nämlich ein, aus oder Graustufe, beziehen. Die Läufe sind durch einen Übergang von innen nach außen eines Pfads ermittelt, wie durch das Anwenden einer Windungsregel oder einer ähnlichen Technik auf die Schnittdaten definiert.
  • Der Vorgang 500 kann durch das Empfangen eines Objekts, wie in Schritt 504 gezeigt, starten 502. Das Objekt kann zum Beispiel das grafische Objekt 100 sein, das oben unter Bezugnahme auf 1 beschrieben wird. In einem wahlweisen Schritt 506 wird ermittelt, ob sich das Objekt in einem Cachespeicher befindet. Diese Ermittlung kann zum Beispiel unter Verwendung des Formnamens oder jeder anderen beliebigen Information gemacht werden, die die Form des Objekts als eindeutig einer Größe in dem Cachespeicher entsprechend identifizieren kann. Wenn die Form des Objekts in dem Cachespeicher aufgenommen ist, kann der Vorgang 500 zu Schritt 516 fortfahren, wo das Objekt unter Verwendung der in dem Cachespeicher aufgenommenen Form und beliebigen mit dem Objekt gelieferten Füllungs- und Transparenzdaten mit aktuellem Videospeicher gemischt werden kann. Wenn die Form nicht im Cachespeicher aufgenommen ist, kann der Vorgang 500 zu Schritt 508 fortfahren.
  • Wie in Schritt 508 ersichtlich, kann der Vorgang 500 einen abgeflachen Pfad erzeugen, wie oben unter Bezugnahme auf den Abtastumwandler 220 aus 2 beschrieben. Der abgeflachte Pfad kann dann verwendet werden, um Schnittdaten zu erzeugen, die Schnittpunkte zwischen einem Pfad und Unterpixelbereichen darstellen, wie in Schritt 510 gezeigt. Es versteht sich möglicherweise, das diese Schnittpunkte die Kanten einer Form darstellen können. Wie in Schritt 512 gezeigt, können dann codierte Abtastdaten aus den Schnittdaten wie oben beschrieben erzeugt werden, zum Beispiel unter Bezugnahme auf den Schnittvorgang 224 aus 2. Die codierten Abtastdaten, die einen Umriss der Form des Objekts darstellen, können dann in dem Cachespeicher, wie in Schritt 514 gezeigt, gespeichert werden. Die codierten Abtastdaten können dann mit Videospeicher gemischt werden, wie in Schritt 516 gezeigt, und wie detaillierter unter Bezugnahme auf den Abtastzeilenmischer 226 aus 2 beschrieben. Der Vorgang 500 kann dann zu Schritt 504 zurückkehren, wo ein nächstes fortlaufendes Objekt empfangen werden kann.
  • Der Videospeicher kann einer Anzeige Einzelbilder von Videodaten bereitstellen, bei der der Inhalt des Videospeichers in eine visuell wahrnehmbare Form umgewandelt wird. Der Videospeicher kann ebenfalls einen oder mehrere Einzelbilder von vorhergehenden Videodaten zum Mischen mit neuen Zeilen von Videodaten, die durch den Formprozessor erzeugt werden, speichern. Es versteht sich, dass die Anzeige eine Flüssigkristallanzeige, eine Lumineszenzdiodenanzeige oder eine beliebige andere Anzeige sein kann, um Videodaten in visuell wahrnehmbarer Form bereitzustellen. Die Anzeige kann ebenfalls ein Drucker, Plotter oder eine andere Vorrichtung zum Reproduzieren von Videodaten in einem festen, fassbaren Medium wie beispielsweise Papier sein.
  • Es versteht sich, dass der obige Vorgang 500 und der Formprozessor 200 aus 2 mit Hardware, Software oder einer Kombination aus diesen realisiert werden können. Der Vorgang 500 kann in einem oder mehreren Mikroprozessoren, Mikrocontrollern, eingebetteten Mikrocontrollern, programmierbaren digitalen Signalprozessoren oder anderen programmierbaren Vorrichtungen, zusammen mit internem und/oder externem Speicher wie beispielsweise Festwertspeicher, programmierbarem Festwertspeicher, elektronisch löschbarem programmierbarem Festwertspeicher, Direktzugriffsspeicher, dynamischem Direktzugriffsspeicher, Direktzugriffsspeicher mit doppelter Datenrate, direktem Rambus-Direktzugriffsspeicher, Flash-Speicher oder einem beliebigen anderen flüchtigen oder nicht flüchtigem Speicher zum Speichern von Programmanweisungen, Programmdaten und Programmausgabe oder anderen Zwischen- oder Endergebnissen realisiert werden. Der Vorgang 500 und der Formprozessor 200 können ebenfalls, oder stattdessen, einen anwendungsspezifischen integrierten Schaltkreis, einen programmierbaren Gate-Array, eine programmierbare Array-Logic oder eine beliebige andere Vorrichtung, die konfiguriert sein kann, um elektronische Signale zu verarbeiten, umfassen.
  • Jede beliebige Kombination der obigen Schaltkreise und Komponenten, ob für sich alleinstehend als ein Chip, als ein Chip-Satz oder als ein Mikroplättchen verpackt, kann auf geeignete Weise zur Verwendung mit den hier beschriebenen Systemen angepasst sein. Es versteht sich weiterhin, dass der obige Vorgang 500 und der Formprozessor 200 als Computer ausführbarer Code, erstellt unter Verwendung einer strukturierten Programmiersprache wie beispielsweise C, einer Objekt orientierten Programmiersprache wie beispielsweise C++ oder jeder beliebigen anderen höherwertigen oder niederwertigen Programmiersprache, die übersetzt oder interpretiert werden kann, um auf einer der obigen Vorrichtungen zu laufen, sowohl heterogene Kombinationen von Prozessoren, Prozessorarchitekturen oder Kombinationen aus unterschiedlicher Hardware und Software realisiert werden können.
  • Der Formprozessor 200 kann besonders für parallele und/oder überlappende Bildverarbeitungssysteme geeignet sein, in denen unterschiedliche grafische Objekte gleichzeitig verarbeitet werden und dann in ein Videospeicher-Einzelbild gemischt werden können. Der Formprozessor 200 kann folglich als eine Anzahl von physikalisch getrennten Vorgängen realisiert werden, oder als eine Anzahl von logisch getrennten Vorgängen wie beispielsweise multiple Formprozessorfäden, die auf einem Mikroprozessor ausgeführt werden. Dieser Ansatz kann auf ähnliche Weise auf unterschiedliche Abtastzeilen eines grafischen Objekts angewendet werden.
  • Die obigen Systeme stellen effiziente Bildaufbereitung für Anzeigen bereit, die gut für kleine Vorrichtungen mit wenig Leistung geeignet sein können, wie beispielsweise tragbare Vorrichtungen, die Flüssigkristallanzeige (,LCD') Bildschirme aufweisen, einschließlich elektronischen Organisatoren, Palmtop-Computern, tragbaren Spielvorrichtungen, Mobiltelefonen mit Internet-Zugriffsmöglichkeit (oder andere drahtlose Telefone oder Kommunikationsvorrichtungen) und persönlichen digitalen Assistenten (,PDAs'). Das System kann ebenfalls in kostengünstige Endeinrichtungen mit Anzeigeeinheiten inkorporiert werden, wie beispielsweise intelligente Telefone, Kommunikationsteilnehmer in einem Netzwerk und Set-Top-Boxen, genauso wie andere Aufbereitungsvorrichtungen wie beispielsweise Drucker, Plotter und dergleichen. Das System kann nützlich als zum Beispiel ein eingebettetes System in Dokumentenhandhabungsvorrichtungen wie beispielsweise Faksimilegeräten, Druckern, Fotokopierern und so weiter eingesetzt werden, wo eine Anzeige von Arbeitsdokumenten und/oder eine Benutzeroberfläche die Funktionalität verbessern können. Das System kann nützlich in Systemen in einem Auto eingesetzt werden, die Bilder aufbereiten und/oder Automobilbenutzern eine grafische Benutzeroberfläche bereitstellen, wie beispielsweise in einem Armaturenbrett oder einer Mittelkonsole oder einem Automobil. Die hier beschriebenen Systeme können in Verbrauchervorrichtungen einschließlich eines Audio-Players, einer Mikrowelle, eines Kühlschranks, einer Waschmaschine, eines Wäschetrockners, eines Backofens oder eines Geschirrspülers verwendet werden. Die hier beschriebenen Systeme können ebenfalls in einem beliebigen der obigen Systeme brauchbar eingesetzt werden, wo die Ausgabe für verschiedene Vorrichtungen erzeugt wird, wie beispielsweise eine Anzeige, ein Drucker, ein Netz und/oder eine Datei. Eine einzelne Vorrichtung kann den Formprozessor verwenden, um jede beliebige oder alle dieser Vorrichtungen zu verwenden.
  • Obwohl die Erfindung in Verbindung mit den bevorzugten detailliert gezeigten und beschriebenen Ausführungsformen offenbart worden ist, versteht es sich, dass die Erfindung nicht auf die hier offenbarten Ausführungsformen begrenzt sein soll, sondern durch die folgenden Ansprüche definiert wird, die so weitläufig wie es das Gesetz erlaubt interpretiert werden sollen.

Claims (61)

  1. Ein Verfahren zur Aufbereitung eines Bilds als eine Anzeige, die eine Vielzahl von Pixelzeilen beinhaltet, das Folgendes beinhaltet: Empfangen eines Stroms von anzuzeigenden Objekten (100), wobei jedes Objekt eine Form (102) und eine Füllung (104) umfasst; für jedes Objekt, Umwandeln (220, 512) der Form des Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten, die einen von mindestens zwei möglichen Zuständen für jedes Pixel der Anzeige aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und Mischen (226, 516) jeder der Vielzahl von Zeilen von codierten Abtastdaten und der Füllung in eine Zeile eines Einzelbilds für die Anzeige; dadurch gekennzeichnet, dass: Umwandeln der Form des Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten Folgendes beinhaltet: a. Darstellen jedes Pixels der Anzeige als eine Unterpixelmatrix, wobei die Unterpixelmatrix einen oder mehrere das Pixel abdeckende Unterpixelbereiche umfasst; b. Erzeugen, für jede waagerechte Reihe in der Unterpixelmatrix, von Schnittdaten, die eine Koordinate für jeden Schnittpunkt zwischen der Form des Objekts und der Unterpixelmatrix umfassen; c. Verarbeiten der Schnittdaten für jede Reihe der Unterpixelmatrix, um Läufe von ,an'-Unterpixeln, die sich innerhalb der Form befinden oder ,aus'-Unterpixeln, die sich außerhalb der Form befinden, zu entnehmen, und für jede Zeile der Anzeige: d. Analysieren der entnommenen Läufe von Unterpixeln, um Läufe von Pixeln, die sich innerhalb der Form befinden, die dem ersten Zustand zugehören, Läufe von Pixeln, die sich außerhalb der Form befinden, die dem zweiten Zustand zugehören, und Läufe von Übergangspixeln, die sich auf den Kanten einer Form befinden, so dass sie sich teilweise innerhalb und teilweise außerhalb befinden, die dem dritten Zustand zugehören, zu identifizieren; e. weiteres Verarbeiten jener Pixel, die als Übergangspixel identifiziert wurden, um einen Grauwert für jedes Übergangspixel, das der Proportion des innerhalb der Form befindlichen Übergangspixels entspricht, zu erzeugen; f. Erzeugen einer Zeile von codierten Abtastdaten, die die Länge der Läufe von Pixeln in jedem Zustand, und für Übergangspixel im dritten Zustand, den zugehörigen Grauwert beinhalten.
  2. Verfahren gemäß Anspruch 1, wobei der Grauwert für ein Übergangspixel berechnet wird, indem ermittelt wird, welche der Vielzahl von Unterpixelbereichen sich innerhalb der Form befindet und indem ein Verhältnis derjenigen der Vielzahl von Unterpixelbereichen innerhalb der Form zu der Vielzahl von Unterpixelbereichen ermittelt wird.
  3. Verfahren gemäß Anspruch 1 oder Anspruch 2, wobei die Form einen Pfad (108), der eine Vielzahl von Segmenten umfasst, beinhaltet.
  4. Verfahren gemäß Anspruch 3, wobei die Pfadsegmente Parameter, die die Stricheigenschaften der Pfadsegmente definieren, umfassen.
  5. Verfahren gemäß Anspruch 3 oder Anspruch 4, das ferner das Umwandeln einer oder mehrerer der Vielzahl von Segmenten des Pfads, der in eine Vielzahl nicht gekrümmter Segmente gekrümmt ist, beinhaltet.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei das Einzelbild mindestens entweder einen Videospeicher oder eine Anzeigevorrichtung umfasst.
  7. Verfahren gemäß einem der Ansprüche 1 bis 6, wobei das Einzelbild mindestens einem eines Nicht-Video-Speichers oder eines Ausgabe-Pixelmusterformatpuffers entspricht.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, das ferner das Speichern (514) der Vielzahl von Zeilen von codierten Abtastdaten als eine Clip-Maske in einem Cachespeicher beinhaltet.
  9. Verfahren gemäß Anspruch 8, das ferner das Indexieren der Clip-Maske gemäß der Form beinhaltet.
  10. Verfahren gemäß Anspruch 8 oder Anspruch 9, wobei das Mischen das Zugreifen auf die Clip-Maske und das Mischen der codierten Abtastdaten, die der Clip-Maske zugehören, umfasst.
  11. Verfahren gemäß einem der Ansprüche 1 bis 10, wobei das anzuzeigende Objekt eine Transparenz (106) umfasst und das Mischen ferner das Mischen jeder der Vielzahl von Zeilen von codierten Abtastdaten und der Transparenz in eine Zeile eines Einzelbilds für die Anzeige beinhaltet.
  12. Verfahren gemäß einem der Ansprüche 1 bis 11, wobei das anzuzeigende Objekt eine Transparenz (106) umfasst, wobei die Transparenz gemäß mindestens einer Bittiefen-Korrektur, einer Farbton-Korrektur, einer Skalierung, einer Dekompression oder einem Decodieren vorverarbeitet wird.
  13. Verfahren gemäß Anspruch 12, wobei die Transparenz einen Zeiger auf ein Pixelmuster der Transparenzwerte für die Form beinhaltet.
  14. Verfahren gemäß einem der Ansprüche 1 bis 13, wobei die Füllung (104) mindestens eines von einer Farbe (116), einer Textur oder einem Pixelmuster (118) umfasst.
  15. Verfahren gemäß einem der Ansprüche 1 bis 14, wobei die Form eine Clip-Maske (114) umfasst, die eine Vielzahl von Zeilen von codierten, durch das Verfahren aus Anspruch 1 erzeugten Abtastdaten beinhaltet, die die Form darstellt.
  16. Verfahren gemäß einem der vorhergehenden Ansprüche, das ferner das Anwenden eines Algorithmus zur Ermittlung einer Innenseite der Form und einer Außenseite der Form beinhaltet.
  17. Verfahren gemäß Anspruch 16, wobei das Anwenden eines Algorithmus das Anwenden einer Windungsregel umfasst.
  18. Verfahren gemäß einem der vorhergehenden Ansprüche, das für die achromatische Bildglättung der Kanten eines aufbereiteten Farbbilds angepasst ist, wobei die Füllung (104) des anzuzeigenden Objekts eine oder mehrere Farben (116, 118) umfasst, das das Mischen des Graustufenwerts für jedes Übergangspixel und der Füllung (104), die jenem Pixel mit einem vorhergehenden Wert für das Pixel entspricht, beinhaltet.
  19. Verfahren gemäß einem der vorhergehenden Ansprüche, das ferner die Lauflängencodierung der Graustufenwerte für die Übergangspixel beinhaltet.
  20. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei eine oder mehrere Dimensionen der Unterpixelmatrix durch einen Glättewert gesteuert werden.
  21. Verfahren gemäß einem der vorhergehenden Ansprüche, das für das Glätten einer Kante des Objekts angepasst ist, wobei die Form des Objekts einen das Objekt abgrenzenden Pfad (108) umfasst, wobei der Pfad eine Innenseite und eine Außenseite aufweist, das Folgendes beinhaltet: für jedes einer Vielzahl von Pixeln, die den Pfad schneiden, die Überabtastung des einen der Pixel, um einen für einen Teil des einen der Pixel darstellenden Graustufenwert, der sich innerhalb des Pfads befindet, zu erhalten; und Mischen der Vielzahl von Pixeln mit in einem Pixelraster gespeicherten Daten.
  22. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei jedes Objekt ferner eine grafische Begrenzungslinie (101) umfasst, wobei die grafische Begrenzungslinie einen Bereich, in den das Objekt aufbereitet werden soll, zeigt.
  23. Verfahren gemäß Anspruch 22, das ferner das Vorverarbeiten des Objekts durch das Schneiden der grafischen Begrenzungslinie des Objekts mit die Begrenzungen der Anzeige definierenden Parametern beinhaltet, um zu ermitteln, wann das Objekt in den Anzeigebereich fällt.
  24. Verfahren gemäß Anspruch 23, wobei die vorverarbeiteten Objekte, die einen Nullschnitt zwischen der grafischen Begrenzungslinie des Objekts und der Anzeige aufweisen, nicht weiter verarbeitet werden.
  25. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das Mischen jeder der Vielzahl von Zeilen von codierten Abtastdaten und der Füllung in eine Zeile eines Einzelbilds für die Anzeige das Mischen der Füllung (104), der einem Pixel mit einem vorhergehenden Wert für das Pixel entspricht, durch Bewertung der Füllung (104) mit einem Bewertungsfaktor und Ent-Bewertung des vorhergehenden Pixelwerts mit einem ergänzenden Faktor, beinhaltet, wobei der Bewertungsfaktor auf Einheit für innere Pixel eingestellt ist, auf Null für äußere Pixel eingestellt ist und auf gleich dem Grauwert für Übergangspixel eingestellt ist.
  26. Verfahren gemäß Anspruch 25, wobei das anzuzeigende Objekt eine Transparenz (106) umfasst und das Mischen zusätzlich gemäß der Transparenz bewertet wird.
  27. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Schnittdaten für jede Reihe der Unterpixelmatrix ferner eine Abszisse für jeden Schnittpunkt zwischen der Form des Objekts und der Unterpixelreihe, zusammen mit einer Richtung nach oben oder nach unten, in der die Form die Reihe überschneidet, beinhalten.
  28. Ein System zur Verarbeitung grafischer Objekte zur Aufbereitung eines Bilds als eine Anzeige, das eine Vielzahl von Pixelzeilen beinhaltet, das Folgendes beinhaltet: Empfangsmittel (202, 204, 206) zum Empfangen eines Stroms anzuzeigender Objekte (100), wobei jedes Objekt eine Form (102), eine Füllung (104) und ein Alpha (106) umfasst; Umwandlungsmittel (220, 222, 224) zum Umwandeln (220, 512) der Form jedes Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten, die einen von mindestens zwei möglichen Zuständen für jedes Pixel der Anzeige aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und Mischmittel (226) zum Mischen jeder der Vielzahl von Zeilen von codierten Abtastdaten, der Füllung und des Alphas in eine Zeile eines Einzelbilds für die Anzeige; dadurch gekennzeichnet, dass: das Umwandlungsmittel für Folgendes angepasst ist: a. Darstellen jedes Pixels der Anzeige als eine Unterpixelmatrix, wobei die Unterpixelmatrix einen oder mehrere die Pixel abdeckende Unterpixelbereiche umfasst; b. Erzeugen für jede waagerechte Reihe in der Unterpixelmatrix, von Schnittdaten, die eine Koordinate für jeden Schnittpunkt zwischen der Form des Objekts und der Unterpixelmatrix umfassen; c. Verarbeiten der Schnittdaten für jede Reihe der Unterpixelmatrix, um Läufe von ,an'-Unterpixeln, die sich innerhalb der Form befinden oder ,aus'-Unterpixeln, die sich außerhalb der Form befinden, zu entnehmen, und für jede Zeile der Anzeige: d. Analysieren der entnommenen Läufe von Unterpixeln, um Läufe von Pixeln, die sich innerhalb der Form befinden, die dem ersten Zustand zugehören, Läufe von Pixeln, die sich außerhalb der Form befinden, die dem zweiten Zustand zugehören, und Läufe von Übergangspixeln, die sich auf den Kanten einer Form befinden, so dass sie sich teilweise innerhalb und teilweise außerhalb befinden, die dem dritten Zustand zugehören, zu identifizieren; e. weiteres Verarbeiten jener Pixel, die als Übergangspixel identifiziert wurden, um einen Grauwert für jedes Übergangspixel, das der Proportion des innerhalb der Form befindlichen Übergangspixels entspricht, zu erzeugen; f. Erzeugen einer Zeile von codierten Abtastdaten, die die Länge der Läufe von Pixeln in jedem Zustand, und für Übergangspixel im dritten Zustand, den zugehörigen Grauwert beinhalten.
  29. System gemäß Anspruch 28, wobei das Einzelbild mindestens einer Anzeige, einem Drucker, einer Datei oder einem Netzanschluss entspricht.
  30. System gemäß Anspruch 28 oder 29, wobei jedes Objekt ferner mindestens eine Hintergrundfüllung oder eine Ersatzfüllung umfasst, wobei das Mischmittel die mindestens eine Hintergrundfüllung oder die Ersatzfüllung in eine Zeile eines Einzelbilds mischt.
  31. System gemäß einem der Ansprüche 28 bis 30, wobei das Empfangsmittel, das Umwandlungsmittel und das Mischmittel einen Prozessor und einen Speicher beinhalten, wobei der Prozessor konfiguriert ist, um die codierten Abtastdaten, die Füllung und das Alpha mit einer Zeile von Pixeldaten zu verbinden; und wobei der Speicher angepasst ist, um die Zeile von Pixeldaten zu speichern und um dem Prozessor die Zeile von Pixeldaten bereitzustellen, und wobei der Speicher angepasst ist, um eine neue Zeile von Pixeldaten, die erzeugt wird, wenn die Zeile von Pixeldaten mit den codierten Abtastdaten, der Füllung und der Transparenz verbunden wird, zu speichern.
  32. System gemäß Anspruch 31, das ferner eine Anzeige beinhaltet, wobei die Anzeige konfiguriert ist, um den Speicher anzuzeigen.
  33. System gemäß Anspruch 31 oder Anspruch 32, wobei der Prozessor ferner eines oder mehrere von einem Mikroprozessor, einem Mikrocontroller, einem eingebetteten Mikrocontroller, einem programmierbaren digitalen Signalprozessor, einem anwendungsspezifischen integrierten Schaltkreis, einer programmierbaren Gate-Array oder programmierbarer Array-Logic beinhaltet.
  34. System gemäß einem der Ansprüche 31 bis 33, das ferner mindestens eines von einem Drucker, der konfiguriert ist, um die Zeilen der im Speicher gespeicherten Pixeldaten zu drucken, einer Speichervorrichtung, die konfiguriert ist, um die Zeilen der im Speicher gespeicherten Pixeldaten zu speichern, einer Netzvorrichtung, die konfiguriert ist, um die Zeilen von im Speicher gespeicherter Pixeldaten auszugeben, beinhaltet.
  35. System gemäß einem der Ansprüche 31 bis 34, wobei der Prozessor mindestens ein Chip, ein Chip-Satz oder ein Mikroplättchen ist.
  36. System gemäß einem der Ansprüche 31 bis 34, wobei der Prozessor und der Speicher mindestens ein Chip, ein Chip-Satz oder ein Mikroplättchen sind.
  37. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige eine Anzeige von mindestens einem von einem elektronischem Organisator, einem Palmtop-Computer, einer tragbaren Spielvorrichtung, einem Mobiltelefon mit Internet-Zugriffsmöglichkeit, einem persönlichen digitalen Assistenten, einem intelligenten Telefon, einem Kommunikationsteilnehmer in einem Netzwerk oder einer Set-Top-Box ist.
  38. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige mindestens ein Drucker oder ein Plotter ist.
  39. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige in einem Dokumentenverwaltungssystem verwendet wird.
  40. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige in mindestens einem von einem Faksimilegerät, einem Fotokopierer oder einem Drucker eines Dokumentenverwaltungssystems verwendet wird.
  41. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige in einem System in einem Auto verwendet wird.
  42. System gemäß Anspruch 32 oder einem der Ansprüche 33 bis 36, wenn von Anspruch 32 abhängig, wobei die Anzeige in mindestens einem von einem Audio-Player, einer Mikrowelle, einem Kühlschrank, einer Waschmaschine, einem Wäschetrockner, einem Backofen oder einem Geschirrspüler verwendet wird.
  43. System gemäß einem der Ansprüche 31 bis 42, wobei der Prozessor eine Vielzahl von grafischen Objekten empfängt und die Vielzahl von grafischen Objekten parallel verarbeitet.
  44. System gemäß einem der Ansprüche 28 bis 30, wobei: das Empfangsmittel einen Eingabemechanismus zum Empfangen des Stroms der Objekte umfasst; und das Umwandlungsmittel und das Mischmittel einen Objektprozessor, der den Strom von Objekten auf einer Objekt-um-Objekt-Basis verarbeitet, um ein Pixelraster zu erstellen, beinhalten.
  45. System gemäß Anspruch 44, wobei die Form jedes Objekts einen Pfad umfasst, wobei der Objektprozessor den Pfad verarbeitet, um ein Pixelraster, das einen Umriss des Bilds darstellt, zu erstellen.
  46. System gemäß Anspruch 45, wobei der Objektprozessor die Kanten des Pfads glättet.
  47. System gemäß Anspruch 45 oder Anspruch 46, wobei der Objektprozessor den Umriss des Bilds codiert.
  48. System gemäß einem der Ansprüche 44 bis 47, wobei jedes Objekt ferner eine grafische Begrenzungslinie (101) umfasst, wobei die grafische Begrenzungslinie dem Objektprozessor einen Bereich, in dem das Objekt aufbereitet werden soll, zeigt.
  49. System gemäß einem der Ansprüche 44 bis 48, wobei der Objektprozessor einen Glättefaktor (210) empfängt, wobei der Glättefaktor einen Betrag von Überabtastung des Objekts relativ zum Pixelraster spezifiziert.
  50. System gemäß einem der Ansprüche 44 bis 49, wobei das Alpha (106) jedes Objekts einen Transparenzwert oder einen Zeiger auf ein Pixelmuster von Transparenzwerten für die Form umfasst.
  51. System gemäß einem der Ansprüche 44 bis 50, wobei die Füllung (104) jedes Objekts mindestens eines von einer Farbe (116), einer Textur oder einem Pixelmuster (118) umfasst.
  52. System gemäß Anspruch 46 oder einem der Ansprüche 47 bis 51, wenn von Anspruch 46 abhängig, wobei die geglätteten Kanten als Graustufenwerte dargestellt sind.
  53. System gemäß Anspruch 52, wobei eine Farbton-Reaktionskurve auf die Graustufenwerte der geglätteten Kanten angewendet wird.
  54. System gemäß einem der Ansprüche 44 bis 53, wobei das Pixelraster auf mindestens eines von einem Bildschirm, einem Drucker, einem Netzanschluss oder eine Datei übertragen wird.
  55. System gemäß einem der Ansprüche 44 bis 54, wobei jedes Objekt vorverarbeitete Formdaten umfasst.
  56. System gemäß Anspruch 55, wobei die vorverarbeiteten Formdaten eine Clip-Maske umfassen, die eine Vielzahl von Zeilen von codierten, durch das System aus Anspruch 31 erzeugten Abtastdaten beinhaltet, die die Form darstellen.
  57. System gemäß Anspruch 55 oder Anspruch 56, wobei die vorverarbeiteten Formdaten eine Transparenz umfassen.
  58. System gemäß einem der Ansprüche 55 bis 67, wobei die vorverarbeiteten Formdaten eine Füllung umfassen.
  59. System gemäß einem der Ansprüche 44 bis 58, das ferner das Speichern von Zwischenverarbeitungsdaten in einem Cachespeicher beinhaltet, wobei die Zwischenverarbeitungsdaten mindestens eine wie in Anspruch 59 definierte Clip-Maske, einer von einer Füllung oder einer Transparenz umfassen.
  60. Ein Computerprogramm zur Verarbeitung von grafischen Objekten zur Aufbereitung eines Bilds als eine Anzeige, das eine Vielzahl von Pixelzeilen beinhaltet, das einen durch den Computer ausführbaren Code für Folgendes beinhaltet: Empfangen eines Stroms von anzuzeigenden Objekten (100), wobei jedes Objekt eine Form (102) und eine Füllung (104) und ein Alpha (106) umfasst; für jedes Objekt, Umwandeln (220, 512) der Form des Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten, die einen von mindestens zwei möglichen Zuständen für jedes Pixel der Anzeige aufweisen, die einen ersten Zustand und einen zweiten Zustand umfassen, wobei der erste Zustand ein Pixel innerhalb der Form darstellt und der zweite Zustand ein Pixel außerhalb der Form darstellt; und Mischen (226, 516) jeder der Vielzahl von Zeilen von codierten Abtastdaten, der Füllung und des Alphas in eine Zeile eines Einzelbilds für die Anzeige; dadurch gekennzeichnet, dass Umwandeln der Form des Objekts in eine Vielzahl von Zeilen von codierten Abtastdaten Folgendes beinhaltet: a. Darstellen jedes Pixels der Anzeige als eine Unterpixelmatrix, wobei die Unterpixelmatrix einen oder mehrere das Pixel abdeckende Unterpixelbereiche umfasst; b. Erzeugen für jede waagerechte Reihe in der Unterpixelmatrix, von Schnittdaten, die eine Koordinate für jeden Schnittpunkt zwischen der Form des Objekts und der Unterpixelmatrix umfassen; c. Verarbeiten der Schnittdaten für jede Reihe der Unterpixelmatrix, um Läufe von ,an'-Unterpixeln, die sich innerhalb der Form befinden oder ,aus'-Unterpixeln, die sich außerhalb der Form befinden, zu entnehmen, und für jede Zeile der Anzeige: d. Analysieren der entnommenen Läufe von Unterpixeln, um Läufe von Pixeln, die sich innerhalb der Form befinden, die dem ersten Zustand zugehören, Läufe von Pixeln, die sich außerhalb der Form befinden, die dem zweiten Zustand zugehören, und Läufe von Übergangspixeln, die sich auf den Kanten einer Form befinden, so dass sie sich teilweise innerhalb und teilweise außerhalb befinden, die dem dritten Zustand zugehören, zu identifizieren; e. weiteres Verarbeiten jener Pixel, die als Übergangspixel identifiziert wurden, um einen Grauwert für jedes Übergangspixel, das der Proportion des innerhalb der Form befindlichen Übergangspixels entspricht, zu erzeugen; f. Erzeugen einer Zeile von codierten Abtastdaten, die die Länge der Läufe von Pixeln in jedem Zustand, und für Übergangspixel im dritten Zustand, den zugehörigen Grauwert beinhalten.
  61. Computerprogramm gemäß Anspruch 60, wobei die Anzeige mindestens einem von einer Anzeige, einem Drucker, einer Datei oder einem Netzanschluss entspricht.
DE60108093T 2000-04-14 2001-04-17 Formdatenprozessor Expired - Lifetime DE60108093T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB0009129 2000-04-14
GBGB0009129.8A GB0009129D0 (en) 2000-04-14 2000-04-14 Digital document processing
US703502 2000-10-31
US09/703,502 US7055095B1 (en) 2000-04-14 2000-10-31 Systems and methods for digital document processing
PCT/GB2001/001712 WO2001080183A1 (en) 2000-04-14 2001-04-17 Shape processor

Publications (2)

Publication Number Publication Date
DE60108093D1 DE60108093D1 (de) 2005-02-03
DE60108093T2 true DE60108093T2 (de) 2006-01-12

Family

ID=38666808

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60108093T Expired - Lifetime DE60108093T2 (de) 2000-04-14 2001-04-17 Formdatenprozessor

Country Status (10)

Country Link
US (2) US6781600B2 (de)
EP (2) EP1528510B1 (de)
JP (1) JP5106735B2 (de)
CN (1) CN1241150C (de)
AT (1) ATE286285T1 (de)
AU (1) AU2001254915A1 (de)
DE (1) DE60108093T2 (de)
ES (1) ES2236219T3 (de)
HK (1) HK1057121A1 (de)
WO (1) WO2001080183A1 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
GB0105561D0 (en) * 2001-03-07 2001-04-25 Segmentis Ltd Improvements in and relating to image signal processing and printing of picture therefrom
JP3576126B2 (ja) * 2001-07-30 2004-10-13 株式会社ナムコ 画像生成システム、プログラム及び情報記憶媒体
GB0124630D0 (en) * 2001-10-13 2001-12-05 Picsel Res Ltd "Systems and methods for generating visual representations of graphical data and digital document processing"
AUPS134202A0 (en) * 2002-03-25 2002-05-09 Canon Kabushiki Kaisha System and method for optimizing halftoning printer performance
US7109997B1 (en) * 2002-06-28 2006-09-19 Microsoft Corporation Systems and methods for direct storage of compressed scan converted data
JP2004120122A (ja) * 2002-09-24 2004-04-15 Sharp Corp 画像処理装置
US7800631B2 (en) 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
US7209105B2 (en) * 2003-06-06 2007-04-24 Clairvoyante, Inc System and method for compensating for visual effects upon panels having fixed pattern noise with reduced quantization error
US7420568B1 (en) * 2003-12-17 2008-09-02 Nvidia Corporation System and method for packing data in different formats in a tiled graphics memory
US7277095B2 (en) * 2004-03-16 2007-10-02 Canon Kabushiki Kaisha Method of rendering graphical objects
US20050240818A1 (en) * 2004-04-05 2005-10-27 James Don R Jr System and method for processor diagnostic device with video controller
KR100600350B1 (ko) * 2004-05-15 2006-07-14 삼성에스디아이 주식회사 역다중화 및 이를 구비한 유기 전계발광 표시 장치
US20050264554A1 (en) * 2004-05-25 2005-12-01 Deming James L Tile based rendering of smooth points using polygons
US7868903B2 (en) * 2004-10-14 2011-01-11 Daktronics, Inc. Flexible pixel element fabrication and sealing method
US8001455B2 (en) * 2004-10-14 2011-08-16 Daktronics, Inc. Translation table
US7893948B1 (en) 2004-10-14 2011-02-22 Daktronics, Inc. Flexible pixel hardware and method
US8344410B2 (en) 2004-10-14 2013-01-01 Daktronics, Inc. Flexible pixel element and signal distribution means
US8184128B2 (en) * 2004-10-27 2012-05-22 Hewlett-Packard Development Company, L. P. Data distribution system and method therefor
JP4266939B2 (ja) 2005-02-10 2009-05-27 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画データ圧縮方法
US7747946B2 (en) * 2005-04-11 2010-06-29 Microsoft Corporation System and method for adorning shapes with data driven objects
JP2006338507A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp 処理装置及び処理方法
JP2006338506A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp コネクタ
US20070067517A1 (en) * 2005-09-22 2007-03-22 Tzu-Jen Kuo Integrated physics engine and related graphics processing system
US8294731B2 (en) * 2005-11-15 2012-10-23 Advanced Micro Devices, Inc. Buffer management in vector graphics hardware
US20090009526A1 (en) * 2007-07-03 2009-01-08 Sun Microsystems, Inc. Method and system for rendering a shape
US8407619B2 (en) * 2008-07-30 2013-03-26 Autodesk, Inc. Method and apparatus for selecting and highlighting objects in a client browser
US8218904B2 (en) * 2008-08-27 2012-07-10 Lockheed Martin Corporation Method and system for circular to horizontal transposition of an image
KR20110007838A (ko) * 2009-07-17 2011-01-25 삼성전자주식회사 영상 처리 방법 및 장치
EP2845164B1 (de) 2012-04-30 2018-06-06 Dolby Laboratories Licensing Corporation Referenzkarte für szenenbezogene metadatenerfassung
US10019137B2 (en) 2012-05-09 2018-07-10 Qualcomm Incorporated Electronic document display
JP2014106809A (ja) * 2012-11-28 2014-06-09 Konica Minolta Inc データ処理装置、コンテンツ表示方法およびブラウジングプログラム
EP4040395A1 (de) * 2016-01-18 2022-08-10 Advanced Micro Devices, Inc. Durchführung von anti-aliasing-operationen in einem computersystem
JP6295299B2 (ja) * 2016-08-26 2018-03-14 株式会社ミツトヨ 座標補正方法及び三次元測定装置
EP3293672A1 (de) * 2016-09-07 2018-03-14 Malvern Panalytical Limited Partikelgrenzenidentifizierung
CN106651807B (zh) * 2016-12-29 2020-03-10 上海天马有机发光显示技术有限公司 一种图像处理系统、显示设备及图像处理方法
CN107492139B (zh) * 2017-08-25 2020-06-16 网易(杭州)网络有限公司 泛光信息的处理方法、装置、存储介质、处理器及终端
CN107730467B (zh) * 2017-10-16 2020-04-10 芯颖科技有限公司 显示方法、装置、设备及存储介质
US10699374B2 (en) 2017-12-05 2020-06-30 Microsoft Technology Licensing, Llc Lens contribution-based virtual reality display rendering
CN107943479B (zh) * 2017-12-12 2020-11-10 网易(杭州)网络有限公司 图形用户界面中物理边界的定义方法、装置和设备
CN108762832A (zh) * 2018-05-16 2018-11-06 无锡小天鹅股份有限公司 家用电器默认数据设置方法、装置和衣物处理装置
US10650576B1 (en) * 2018-11-12 2020-05-12 Adobe Inc. Snapping experience with clipping masks
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler
US11748923B2 (en) 2021-11-12 2023-09-05 Rockwell Collins, Inc. System and method for providing more readable font characters in size adjusting avionics charts
US11887222B2 (en) 2021-11-12 2024-01-30 Rockwell Collins, Inc. Conversion of filled areas to run length encoded vectors
US11854110B2 (en) 2021-11-12 2023-12-26 Rockwell Collins, Inc. System and method for determining geographic information of airport terminal chart and converting graphical image file to hardware directives for display unit
US11954770B2 (en) 2021-11-12 2024-04-09 Rockwell Collins, Inc. System and method for recreating graphical image using character recognition to reduce storage space
US11915389B2 (en) 2021-11-12 2024-02-27 Rockwell Collins, Inc. System and method for recreating image with repeating patterns of graphical image file to reduce storage space
US11842429B2 (en) 2021-11-12 2023-12-12 Rockwell Collins, Inc. System and method for machine code subroutine creation and execution with indeterminate addresses

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083262A (en) 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
GB2240016A (en) 1990-01-15 1991-07-17 Philips Electronic Associated Texture memories store data at alternating levels of resolution
US5459823A (en) 1990-07-05 1995-10-17 Canon Kabushiki Kaisha Graphics engine for true colour 2D graphics
JPH04246690A (ja) 1990-08-29 1992-09-02 Xerox Corp 高品質のイメージを並みの解像度で表示する方法
JPH04262473A (ja) 1990-09-28 1992-09-17 Xerox Corp 多重ステッパーを用いた高速図形画像生成法
US5390320A (en) 1991-01-22 1995-02-14 Grumman Aerospace Corporation Automatically converting structured analysis tool database outputs into an integrated simulation model via transportable standardized metafile
CA2062911A1 (en) 1991-05-17 1992-11-18 Stephen C. Gates Computer graphics system and method for auto-tresselating graphic objects
EP0529121A1 (de) 1991-08-24 1993-03-03 International Business Machines Corporation Werkzeug zur Graphikdarstellung
JPH07146931A (ja) * 1993-03-08 1995-06-06 Canon Inf Syst Res Australia Pty Ltd 画像創成方法
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5528738A (en) * 1993-10-06 1996-06-18 Silicon Graphics, Inc. Method and apparatus for antialiasing raster scanned, polygonal shaped images
US5911066A (en) 1994-02-22 1999-06-08 Microsoft Corporation Data transfer utilizing a single functionally independent data transfer mechanism
JPH07271958A (ja) * 1994-03-31 1995-10-20 Toshiba Corp 画像ファイル装置及び画像ファイルアクセス方法
JPH07282274A (ja) * 1994-04-04 1995-10-27 Mitsubishi Electric Corp グラフィック表示装置
JP3000855B2 (ja) * 1994-07-29 2000-01-17 日本ビクター株式会社 文字図形処理装置及び情報処理装置
AUPM822394A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Object based rendering system
AUPM822194A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Utilisation of scanned images in an image compositing system
US5920323A (en) * 1995-02-09 1999-07-06 Canon Kabushiki Kaisha Diagram processing apparatus and method
US6025853A (en) * 1995-03-24 2000-02-15 3Dlabs Inc. Ltd. Integrated graphics subsystem with message-passing architecture
JP3634447B2 (ja) 1995-07-14 2005-03-30 キヤノン株式会社 画像処理装置及び方法
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
JP3753263B2 (ja) 1995-08-23 2006-03-08 ヒューレット・パッカード・カンパニー 画像を処理する方法
US6173075B1 (en) * 1995-08-30 2001-01-09 Usanimation, Inc. Drawing pixmap to vector conversion
US5910805A (en) 1996-01-11 1999-06-08 Oclc Online Computer Library Center Method for displaying bitmap derived text at a display having limited pixel-to-pixel spacing resolution
AU2585797A (en) 1996-03-15 1997-10-01 University Of Massachusetts Compact tree for storage and retrieval of structured hypermedia documents
KR0172581B1 (ko) 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
US5754348A (en) 1996-05-14 1998-05-19 Planetweb, Inc. Method for context-preserving magnification of digital image regions
JPH09325748A (ja) * 1996-06-03 1997-12-16 Toshiba Corp 文字パターン形成装置及び文字パターン形成方法
EP0925542B1 (de) 1996-09-09 2002-08-07 Design Intelligence, Inc. Automatische anordnung und formatierung von inhalt für einen entwurf auf einem medium
AU6155498A (en) 1997-02-10 1998-09-09 Logitech, Inc. Touch pad with scroll bar, command bar
JP3361951B2 (ja) 1997-02-25 2003-01-07 大日本スクリーン製造株式会社 印刷データ処理装置および方法
JP2957511B2 (ja) * 1997-03-28 1999-10-04 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィック処理装置
US5982381A (en) 1997-07-03 1999-11-09 Microsoft Corporation Method and apparatus for modifying a cutout image for compositing
US6417848B1 (en) 1997-08-25 2002-07-09 Ati International Srl Pixel clustering for improved graphics throughput
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
US6034700A (en) 1998-01-23 2000-03-07 Xerox Corporation Efficient run-based anti-aliasing
US6857102B1 (en) 1998-04-07 2005-02-15 Fuji Xerox Co., Ltd. Document re-authoring systems and methods for providing device-independent access to the world wide web
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
AU743218B2 (en) * 1998-09-11 2002-01-24 Canon Kabushiki Kaisha Fast renering techniques for rasterised graphic object based images
US6336124B1 (en) 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6125391A (en) 1998-10-16 2000-09-26 Commerce One, Inc. Market makers using documents for commerce in trading partner networks
US6608630B1 (en) * 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US6480201B1 (en) * 1999-08-24 2002-11-12 Microsoft Corporation Alpha regions

Also Published As

Publication number Publication date
JP2003531446A (ja) 2003-10-21
EP1272977B8 (de) 2005-08-10
JP5106735B2 (ja) 2012-12-26
ES2236219T3 (es) 2005-07-16
WO2001080183A8 (en) 2004-12-23
EP1528510A3 (de) 2012-03-07
DE60108093D1 (de) 2005-02-03
EP1528510B1 (de) 2017-01-18
CN1426574A (zh) 2003-06-25
US6781600B2 (en) 2004-08-24
HK1057121A1 (en) 2004-03-12
WO2001080183A1 (en) 2001-10-25
US7009624B2 (en) 2006-03-07
US20050030321A1 (en) 2005-02-10
US20010030655A1 (en) 2001-10-18
EP1272977B1 (de) 2004-12-29
ATE286285T1 (de) 2005-01-15
AU2001254915A1 (en) 2001-10-30
EP1528510A2 (de) 2005-05-04
EP1272977A1 (de) 2003-01-08
CN1241150C (zh) 2006-02-08

Similar Documents

Publication Publication Date Title
DE60108093T2 (de) Formdatenprozessor
DE69822545T2 (de) Bildverbesserung unter Benutzung einer Flächeninterpolation
DE60305573T2 (de) Verfahren zur Darstellung von gemischten Bildrasterinhaltsebenen
DE10204751B4 (de) Verfahren zur Konvertierung eines Linework Datenformats in das Format einer Seitenbeschreibungssprache
DE60031337T2 (de) Geräteabhängige Darstellung von Zeichen
DE69634040T2 (de) Verfahren und Gerät zur Bitratenreduktion und Rekonstruktion von Bilddaten mittels Ditherfeldern
DE69935120T2 (de) Automatische Verbesserung der Druckqualität basiert auf Grösse, Form, Orientierung und Farbe von Strukturen
DE602004002393T2 (de) Antialiasing-verfahren und -vorrichtung zur darstellung einer region eines zweidimensionalen distanzfeldes, das ein objekt darstellt
DE69529500T2 (de) Verwendung von abgetasteten Bildern in einem Bildzusammensetzungssystem
DE19713654B4 (de) Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben
US6259821B1 (en) PDL operator overloading for line width management of lines that intersect filled objects
DE10137164A1 (de) Graustufen-Halbton-Bearbeitung
DE19623318C2 (de) Teilpixelcodierungs- und Decodierungsverfahren
DE60033716T2 (de) Verfahren und Vorrichtung zur Bilddatenkompression
DE69730268T2 (de) Verfahren und System zur Bestimmung von Farbmittelmengen
DE69924592T2 (de) Hochauflösende Rasterpufferarchitektur zur Unterdrückung von Alias-Störungen
DE69919115T2 (de) System und Verfahren zur Kompression und Dekompression
DE69728918T2 (de) Verfahren und Gerät zur wirkungsvollen Bildinterpolation
DE602004011234T2 (de) Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder
US6246419B1 (en) PDL operator overloading for line width management
DE69927269T2 (de) Vorrichtung und verfahren zum erkennen und erzeugen grafischer elemente
DE69724707T2 (de) Filter und Rasteroperationen
US6201551B1 (en) PDL operator overloading for line width management
CN110097147B (zh) 图元绘制属性的设置方法、系统、计算机设备及存储介质
DE19944213C1 (de) Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: PICSEL (RESEARCH) LTD., PAISLEY, GB

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SAMSUNG ELECTRONICS CO., LTD., SUWON, KYONGGI, KR