-
Aspekte
der vorliegenden Erfindung sind auf das Erzeugen und Verwenden von
Dateien gerichtet. Im Speziellen bezieht sich die vorliegende Erfindung auf
das Rendern zusammengesetzter Bilder.
-
Die
Verwendung nicht-veränderbarer
Dateien hat mit dem Wachstum des Internets zugenommen. Ein Standarddateiformat
zum Veröffentlichen von
Dokumenten ist das Adobe Acrobat Dateiformat (im Allgemeinen mit
der Endung .PDF verbunden). Andere Dateiformate schließen JPEG
und BITMAP Dateien ein. Ein Vorteil dieser Dateien ist, dass jemand
diese Dateiformate benutzen kann, um Informationen über das
Internet mit minimalen Bedenken bezüglich Veränderungen der Dokumente auszutauschen.
-
Ein
anderes Dateiformat, das häufig
gebraucht wird, ist die MRC- oder gemischte Rasterinhaltsdatei (Mixed
Raster Content File). Dieses Dateiformat teilt ein Bild in drei
gleich große
Bilder und speichert diese mit verschiedenen Auflösungen,
und in manchen Fällen
mit verschiedenen Kompressionsraten oder-technologien. 2 zeigt
einen typischen Prozess zum Erzeugen von MRC-Dateien. Ein Bildgenerator 301 gibt
ein Ursprungsbild 302 aus. Das Ursprungsbild 302 hat
eine Bildauflösung
von 300 dpi. Das Ursprungsbild 302 wird durch einen Trennungsprozess 303 in
drei einzelne Bilder 304 bis 306 getrennt. Die
drei einzelnen Bilder schließen
ein schwarz/weiß (S/W)
maskiertes Bild 304, ein Vordergrundbild 305,
und ein Hintergrundbild 306 ein. Die drei Bilder 304 bis 306 haben
die gleichen Dimensionen (x, y) wie das Ursprungsbild 302.
Wie in 2 gezeigt, sind die Auflösungen der drei Bilder 304 bis 306 mit
300 dpi, 300 dpi, bzw. 100 dpi gezeigt. Die drei Bilder können wahlweise
durch den Komprimierungsprozess 307 in verschiedenen Graden
durch verschiedene Kompressionstechnologien komprimiert werden.
-
Trotz
des Vorteils aus der Möglichkeit
ein Ursprungsbild 302 in verschiedene andere Dateien 304 bis 306 zu
zerlegen, leiden MRC-Dateien, wie es der Fachwelt bekannt ist, unter
einem langen Zerlegungsprozess (Trennungsprozess 303).
Der Trennungsprozess 303 versucht alle Komponenten eines Bildes
zu analysieren und Aspekte zum Einschließen in jede der Dateien 304 bis 306 auszusortieren.
Es gibt einen Bedarf, MRC-Dateien ohne große Verzögerung zu erzeugen.
-
Die
zusammengesetzten Dateien 304 bis 306 können auch
groß sein,
während
sie wenig Inhalt besitzen. 3 zeigt
eine beispielhafte konventionelle MRC-Datei. Die Datei enthält drei
Ebenen (Layer) einschließlich
einer Hintergrundebene 401, Auswahlebene oder schwarzweiß oder S/W
maskierten Ebene 402 und eine Vordergrundebene 403.
Zum Zweck der Darstellung ist das zusammengesetzte Bild 411 als
das resultierende Bild gezeigt, wenn die drei Ebenen (401 bis 403)
kombiniert werden. Wie es in der Fachwelt bekannt ist, hat die Hintergrundebene
eine Farbtiefe pro Pixel von 24 Bits pro Pixel (24 bpp), hat die
Auswahlebene eine Farbtiefe pro Pixel von 1 bpp, und hat die Vordergrundebene
eine Farbtiefe von 24 bpp.
-
Jede
Ebene beinhaltet ein Bild. Jedes Bild hat die gleichen Dimensionen
(x, y) (wie in 2 und 3 gezeigt).
Z.B. enthält
die Hintergrundebene 401 ein Bild mit dem Inhalt 404 in
der Mitte. Die Auswahlebene 402 enthält ein Bild mit drei Sätzen von Inhalt 405 bis 407.
Der Inhalt 405 ist „schwarzer
Text" (Black Text),
welcher dafür
gedacht ist, schwarzen Text darzustellen. Der Inhalt 406 ist „Farbtext
A" (Color Text A),
welcher Text ist, der die Farbe A in dem zusammengesetzten Bild 411 hat,
obwohl er in der Auswahlebene 402 als schwarzer Text dargestellt
ist. Dies liegt daran, dass die Auswahlebene 402 eine Farbtiefe
von nur 1 bpp hat. Ebenso ist Inhalt 407 „Farbtext
B" (Color Text B),
welcher Text ist, der die Farbe B in dem zusammengesetzten Bild 411 hat,
jedoch schwarzer Text in der Auswahlebene 402 ist. Die
Vordergrundebene 403 enthält drei Sätze mit Farbpaletten, einschließlich Schwarz 408,
Farbe A 409 und Farbe B 410. Ein Anliegen bzgl.
der MRC-Datei aus 3 ist die signifikante Menge
an nicht verwendetem Platz. Der nicht verwendete Platz vergrößert die
zugrundeliegende Bildgröße jeder Ebene.
Dieser nicht verwendete Platz erhöht die Zeit, die für Codieren,
Decodieren und Zusammensetzungsphasen benötigt wird. Die Kombination
von nicht verwendetem Platz und Inhalt führt auch manchmal zu einer
schlechten Komprimierung der Ebenen. Entsprechend gibt es einen
Bedarf, nicht verwendeten Platz in den zusammengesetzten Dateien 304 bis 306 zu
minimieren.
-
Bottou
L et al: „High
Quality Document Image Compression with DJVU„ Journal
of Electronic Imaging, SPIE + IS&T,
US, vol. 7, Nummer 3, 1 Juli 1998, Seiten 410–425 offenbart eine Bildkomprimierungstechnik,
die "DjVu" genannt wird, die
speziell auf die Komprimierung von hochauflösenden Bildern hoher Qualität von gescannten
Farbdokumenten gerichtet ist. Sie ermöglicht eine schnelle Übermittlung
von Dokumentbildern über
langsame Verbindungen, während
die visuellen Aspekte des Dokuments reproduziert wer den. Der DjVu-Komprimierer
teilt den Text und die Bilder, welche eine hohe räumliche
Auflösung brauchen,
von den Bildern und Hintergründen,
welche gleichmäßiger sind
und mit einer kleineren räumlichen
Auflösung
codiert werden können.
Zwei Techniken werden verwendet, um das Komprimierungsverhältnis zu
maximieren. Beide Techniken verwenden einen adaptiven, binären Arithmetikkodierer,
der ZP-Kodierer genannt wird.
-
Bottou
U et al: „Efficient
conversion of digital documents to multilayer raster formats", Document Analysis
and Recognition, 2001. Proceedings, Sixth International Conference
on Seattle, WA, USA, 10.–13.
September 2001, Seiten 444–448
diskutieren, wie die Beschreibung von digitalen Dokumenten in etwas
Effizientes für
Multilayer-Rasterformate
umgewandelt werden kann.
-
P.
Haffner, L. Bottou, Y. Lecun: „A
General Segmentation Scheme for DJVU Document Compression" Intemational Symposium
on Mathematical Morphology VI, Proceedings of ISMM2002, 03.–05. April
2002, Sydney, New South Wales, Australia, Seiten 17 bis 35 offenbaren
eine Dokumentbildkomprimierungsmethodik, die eine Musterabstimmungstechnik
verwendet, die die Vorteile aus den Ähnlichkeiten zwischen Zeichenumrissen
zieht.
-
„ITU-T
Recommendation T.44 – Mixed
raster content (MRC)",
ITU-T Recommendation T.44, April 1999, Seiten 1–31, bieten eine Empfehlung,
die die technischen Merkmale von Mixed-Raster-Content-Bildformaten
(MRC-Bildformaten) spezifiziert, die eine effiziente Bearbeitung,
Austausch und Archivierung von rasterorientierten Seiten ermöglicht,
die einen Mix aus Multi-Level- und Bi-Level-Bildern enthalten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, einen verbesserten Prozess
und entsprechende computerlesbare Medien bereitzustellen, die ein Programm
darauf gespeichert haben, zum Rendern von zusammengesetzten Bildern.
-
Diese
Aufgabe ist durch den Gegenstand der unabhängigen Ansprüche 1 und
6 gelöst.
-
Bevorzugte
Ausführungsformen
sind in den abhängigen
Ansprüchen
definiert.
-
Aspekte
sind auf die Erzeugung und Verwendung von MRC-Dateien gerichtet,
um ein oder mehrere der oben beschriebenen Bedürfnisse zu behandeln. In manchen
Aspekten werden MRC-Dateien durch Druckertreiber erzeugt, ohne durch
einen Trennungsprozess bearbeitet werden zu müssen. In anderen Aspekten kann
jede Ebene von MRC-Dateien ein
oder mehr Bilder (oder Unterbilder) einschließen, um Komprimierung zu erlauben,
die effizienter ist, als ein einzelnes Bild, das jede Ebene abdeckt.
Diese verschiedenen Aspekte können
getrennt oder in Kombination verwendet werden.
-
Diese
und andere Merkmale der Erfindung werden unter Berücksichtigung
der folgenden detaillierten Beschreibung der verschiedenen Ausführungsformen
deutlich.
-
KURZE BESCHREIBUNG
DER FIGUREN
-
Die
vorangegangene Kurzfassung der Beschreibung sowie die folgende detaillierte
Beschreibung der bevorzugten Ausführungsformen wird besser verstanden,
wenn sie in Verbindung mit den angehängten Figuren gelesen wird,
welche als Beispiel und nicht als Einschränkung in Bezug auf die beanspruchte
Erfindung angefügt
sind.
-
1 ist
ein schematisches Diagramm einer Allzweck, digitalen Computerumgebung,
die verwendet werden kann, um verschiedene Aspekte der Erfindung
zu implementieren.
-
2 zeigt
einen konventionellen Prozess zum Erzeugen einer Mixed Raster Content
Datei.
-
3 zeigt
eine konventionelle Mixed Raster Content Datei.
-
4 zeigt
einen Prozess zum Erzeugen einer Mixed Raster Content Datei.
-
5 zeigt
ein Beispiel einer Mixed Raster Content Datei gemäß Aspekten
der vorliegenden Erfindung.
-
6 zeigt
ein anderes Beispiel einer Mixed Raster Content Datei gemäß Aspekten
der vorliegenden Erfindung.
-
7A und 7B zeigen
verschiedene Prozesse zum Erzeugen von Mixed Raster Content Dateien.
-
8A und 8B zeigen
alternative Prozessschritte für 7A.
-
9A und 9B zeigen
verschiedene Prozesse zum Rendern eines zusammengesetzten Bildes
von einer Mixed Raster Content Datei gemäß Aspekten der vorliegenden
Erfindung.
-
10 zeigt
einen anderen exemplarischen Prozess zum Erzeugen einer Mixed Raster
Content Datei.
-
11 zeigt
einen beispielhaften Prozess zum Vereinigen von Bildern.
-
12 zeigt
verschiedene Ergebnisse für die
Zusammensetzung von Bildern
-
13 zeigt
einen beispielhaften Prozess zum Einrichten der Nähe von Bildern.
-
14 zeigt
zwei Bilder und verschiedene Darstellungen von Platz, der durch
ihre Verbindung verbraucht wird.
-
15A, 15B und 15C zeigen verschiedene Darstellungen der Berechnung
des verbrauchten Platzes in kombinierten Bildern.
-
DETAILLIERTE
BESCHREIBUNG
-
Die
folgende Beschreibung richtet sich auf Mixed Raster Content Dateien.
Es wird begrüßt, dass die
offenbarten Konzepte und Ansätze
auf andere Dateitypen angewandet werden können. Verschiedene Prozesse
werden auch offenbart. Diese Prozesse werden als Beispiele bereitgestellt,
die verwendet werden können
und die nicht als die einzige Ausdrucksweise der verschiedenen Prozesse
gedacht ist, die verwendet werden, um die verbesserten Mixed Raster
Content Dateien zu erzeugen oder zu verwenden. Des Weiteren sind
die Pixelfarben der Auswahlebene im Allgemeinen als Schwarz und Weiß bezeichnet.
Es wird begrüßt, dass
die Auswahlebene nur ein Bit pro Pixel Farbtiefe haben kann und deshalb
nur Pixel haben kann, die an oder aus sind (oder den Farbstatus
1 bzw. Farbstatus 0 haben). Schwarz und Weiß werden verwendet, um die
Nomenklatur zu vereinfachen. Jedoch können irgendwelche Farben (z.B.
Fuchsia und Cyan) oder „an
und aus" und Ähnliches
anstatt dessen verwendet werden.
-
1 stellt
ein schematisches Diagramm einer konventionellen Allzweckdigitalcomputerumgebung
dar, die verwendet werden kann, um verschiedene Aspekte der vorliegenden
Erfindung zu implementieren. In 1 enthält ein Computer 100 eine Prozessoreinheit 110,
einen Systemspeicher 120 und einen Systembus 130,
der verschiedene Systemkomponenten koppelt, einschließlich dem
Systemspeicher mit der Prozessoreinheit 110. Der Systembus 130 kann
irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem Speicherbus
oder Speichercontroller, einem Peripheriebus, und einem lokalen
Bus, der irgendeine einer Vielfalt von Busarchitekturen verwendet.
Der Systemspeicher 120 schließt Read Only Memory (ROM) 140 und
Random Access Memory (RAM) 150 ein.
-
Ein
Basic Input/Output System 160 (BIOS), welches die Basisroutinen
enthält,
die helfen Informationen zwischen Elementen innerhalb des Computers 100 zu übermitteln,
wie z.B. während
des Hochfahrens, ist in dem ROM 140 gespeichert. Der Computer 100 enthält auch
ein Festplattenlaufwerk 170 zum Lesen von und Schreiben
zu einer Festplatte (nicht gezeigt), ein magnetisches Disklaufwerk 180 zum
Lesen von oder Schreiben zu einer entfernbaren magnetischen Disk 190,
und einem optischen Disklaufwerk 191 zum Lesen von oder
Schreiben zu einer entfernbaren optischen Disk 192, wie
z.B. einer CD-ROM oder anderen optischen Medien. Das Festplattenlaufwerk 170,
magnetische Disklaufwerk 180 und optische Disklaufwerk 191 sind
mit dem Systembus 130 über
eine Festplattenlaufwerksschnittstelle 192, eine magnetische
Disklaufwerksschnittstelle 193, bzw. einer optischen Disklaufwerksschnittstelle 194 verbunden.
Die Laufwerke und deren zugehörige computerlesbare
Medien stellen nicht-flüchtigen Speicher
für computerlesbare
Instruktionen, Datenstrukturen, Programmmodule und andere Daten
für den
Personalcomputer 100 bereit. Es wird durch Fachleute begrüßt, dass
andere Typen von computerlesbaren Medien, die Daten speichern können, die durch
einen Computer zugreifbar sind, ebenso in der beispielhaften Arbeitsumgebung
verwendet werden können,
wie z.B. magnetischen Kassetten, Flash Memory Karten, Digital Video
Discs, Bernoulli Kartuschen, Random Access Memories (RAMs), Read Only
Memories (ROMs), und Ähnliches.
-
Eine
Zahl von Programmmodulen können auf
dem Festplattenlaufwerk 170, magnetischer Disk 190,
optischer Disk 192, ROM 140 oder RAM 150 gespeichert
werden, einschließlich
einem Betriebssystem 195, einem oder mehreren Anwendungsprogrammen 196,
anderen Programmmodulen 197 und Programmdaten 198.
Ein Benutzer kann Befehle und Informationen in den Computer 100 durch
Eingabegeräte,
wie z.B. ein Keyboard 101 und Zeigergerät 102 eingeben. Andere
Eingabegeräte
(nicht gezeigt) können
ein Mikrofon, Joystick, Game Pad, Satellitenschüssel, Scanner oder Ähnliches
einschließen.
Diese und andere Eingabegeräte
sind oft mit der Prozessoreinheit 110 durch eine serielle
Anschlussschnittstelle 106 verbunden, die mit dem Systembus
gekoppelt ist, können
aber auch durch andere Schnittstellen verbunden sein, wie z.B. einem
Parallelanschluss, Game Port oder einem Universal Serial Bus (USB).
Des Weiteren können
diese Geräte
direkt mit dem Systembus 130 über eine geeignete Schnittstelle
(nicht gezeigt) gekoppelt sein. Ein Monitor 107 oder anderer
Anzeigegerättyp
ist auch mit dem Systembus 130 über eine Schnittstelle verbunden,
wie z.B. einem Videoadapter 108. Zusätzlich zu dem Monitor enthalten
Personalcomputer üblicherweise
andere periphere Ausgabegeräte
(nicht gezeigt), wie z.B. Lautsprecher und Drucker. In manchen Ausführungsformen
werden ein Stiftdigitalisierer 165 und zugehöriger Stift
oder Schreiber 166 bereitgestellt, um freihändige Eingaben
digital zu erfassen. Obwohl eine Verbindung zwischen dem Stiftdigitalisierer 165 und
dem seriellen Schnittstellenanschluss 106 gezeigt ist,
kann der Stiftdigitalisierer 165 in der Praxis auch mit
der Prozessoreinheit 110 direkt über einen Parallelanschluss
oder andere Schnittstelle und dem Systembus 130, wie der
Fachwelt bekannt, gekoppelt sein. Ferner, obwohl der Digitalisierer 165 getrennt
von dem Monitor 107 gezeigt ist, kann das verwendbare Eingabegebiet
des Digitalisierers 165 flächengleich mit dem Anzeigegebiet
des Monitors 107 sein. Des Weiteren kann der Digitalisierer 165 in
den Monitor 107 integriert sein, oder kann als separates Gerät vorhanden
sein, das dem Monitor übersteht oder
anders angehängt
ist.
-
Der
Computer 100 kann in einer Netzwerkumgebung arbeiten, die
logische Verbindungen zu einem oder mehreren Remote Computern, wie
z.B. einem Remote Computer 109, verwenden. Der Remote Computer 109 kann
ein Server, ein Router, ein Netzwerk PC, ein Peer-Gerät oder anderer
bekannter Netzwerkknoten sein, und enthält üblicherweise viele oder alle
der oben in Bezug auf Computer 100 beschriebenen Elemente,
obwohl nur ein Speichergerät 111 in
der 1 dargestellt worden ist. Die logischen Verbindungen,
die in 1 gezeigt sind, schließen ein Local Area Network
(LAN) 112 und ein Wide Area Network (WAN) 113 ein.
Solche Netzwerkumgebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken,
Intranets und dem Internet.
-
Wenn
er in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 100 mit
dem lokalen Netzwerk 112 durch eine Netzwerkschnittstelle oder
Adapter 114 verbunden. Wenn er in einer WAN-Netzwerkumgebung
verwendet wird, enthält der
Personalcomputer 100 üblicherweise
ein Modem 115 oder andere Mittel zum Herstellen einer Verbindung über das
Wide Area Network 113, wie z.B. dem Internet. Das Modem 115,
welches intern oder extern sein kann, ist mit dem Systembus 130 über die
serielle Anschlussschnittstelle 106 verbunden. In einer Netzwerkumgebung
können
Programmmodule, die in Bezug auf Personalcomputer 100 dargestellt
sind, oder Teile davon, in dem Remote Speichergerät gespeichert
sein.
-
Es
wird begrüßt, dass
die gezeigten Netzwerksverbindungen beispielhaft sind, und andere Techniken
zum Herstellen einer Kommunikationsverbindung zwischen den Computern
verwendet werden kann. Die Existenz von irgendeinem von verschiedenen
bekannten Protokollen, so wie z.B. TCP/IP, Ethernet, FTP, HTTP und Ähnliches
wird vorausgesetzt, und das System kann in einer Client-Server Konfiguration
arbeiten, um es einem Benutzer zu erlauben, Webseiten von einem
webbasierten Server abzurufen. Irgendeiner von verschiedenen konventionellen
Web Browsern kann verwendet werden, um Daten auf Webseiten anzuzeigen
und zu manipulieren.
-
4 zeigt
einen Prozess zum Erzeugen einer Mixed Raster Content Datei. Ein
Bildgenerator 500 (z.B. ein Zeichenprogramm, Textverarbeitungsprogramm,
Webveröffentlichungssystem,
u.ä.) gibt den
Inhalt der MRC-Datei (die drei Ebenen: Auswahlebene 502,
Vordergrundebene 503, und Hintergrundebene 504)
aus, ohne ein zusammengesetztes Bild auszugeben, dass durch den
Prozess 303 von 2 konvertiert (d.h. getrennt)
werden müsste.
Diese Ausgabe kann Aufrufe an eine Grafik-Rendering-Engine 501 einschließen (z.B.
die GDI API, verfügbar durch
Microsoft Corporation aus Redmond, Washington). Andere Grafik-Renderer 501 können ebenso verwendet
werden. Alternativ kann das Rendering vollständig innerhalb des Bildgenerators 505 stattfinden.
Schließlich
kann die MRC-Datei optional durch eine ausgewählte Komprimierungs-Engine 505 komprimiert
werden. Die Komprimierung ist optional, was durch ein gestricheltes
Rechteck gezeigt ist.
-
5 zeigt
ein Beispiel einer Mixed Raster Content Datei gemäß Aspekten
der vorliegenden Erfindung. Die MRC-Datei enthält drei Ebenen: Hintergrundebene 601,
Auswahlebene 602 und Vordergrundebene 603. Das
zusammengesetzte Bild 604 ist als Er läuterung gezeigt. Die Hintergrundebene enthält Inhalt 605.
Der Hintergrundinhalt 605 kann durch ein Bild mit der Größe des zusammengesetzten
Bildes 604 dargestellt werden. Alternativ kann der Hintergrundinhalt
durch ein Bild dargestellt werden, das ein begrenzendes Rechteck
hat, das kleiner ist, als die Größe des zusammengesetzten
Bildes 604. Die Auswahlebene 602 schließt Inhalt 606 ein,
der durch „Farbtext
A" (Color Text A)
dargestellt ist, wobei, während
dieser als Text mit der Schriftfarbe A dargestellt ist, die Auswahlebene 602 den
Inhalt 600 als schwarzen Text darstellt. Vordergrundebene 603 enthält schwarzen
Text 607, ein farbiges Rechteck 608 in der Farbe
A, und Inhalt 609 als „Farbtext B" (Color Text B) mit
der Schriftfarbe B. Das farbige Rechteck 608 kann in einer
Anzahl von Vorgängen eliminiert
werden. Z.B., wenn der Text eine einheitliche Farbe hat und durch
die Kombination von Auswahl- und Hintergrundebene dargestellt wird.
Der Inhalt 607 bis 609 kann als ein einzelnes
Bild mit der Größe des zusammengesetzten
Bildes 604 dargestellt werden (ähnlich zu der Beschreibung
der identischen Größe oben).
Alternativ kann der Inhalt 607 bis 609 durch zwei
oder mehr Bilder (oder Unterbilder) dargestellt werden. Die Bilder
können
durch begrenzende Gebiete definiert sein (Rechtecke oder andere
in der Fachwelt bekannte Formen), wie es durch die begrenzenden
Gebiete dargestellt ist, die jeden der Inhalte 607 bis 609 umgeben.
-
Wie
in 5 gezeigt, wird die Auswahlebene 602 verwendet,
wenn ein Vordergrundbild ein Hintergrundbild überlappt. Hier macht das Verschieben
von Inhalt aus der Auswahlebene in die Vordergrundebene die Rendering-Funktion
schneller, weil es kein Prüfen
und Ausführen
von Auswahl oder Alpha-Blending gibt, wenn es keine Überlappung
des Vordergrund- und Hintergrundinhalts gibt. Ein anderer Aspekt
ist, dass einheitlich farbiger Text und bestimmte Linienzeichnungen
als binäre
Bilder in der Vordergrundebene mit geeigneter Farbpalette gespeichert werden
können,
anstatt als ein binäres
Bild in der Auswahlebene plus ein Farbbild in der Vordergrundebene
gespeichert zu werden. Es wird geglaubt, dass das Verschieben von
Inhalt aus der Auswahlebene in die Vordergrundebene die Komprimierungs-
und Rendering-Leistung verbessert.
-
Eine
andere Kombination wird in 5 gezeigt,
in der die Auswahl- und Hintergrundebenen ohne eine Vordergrundebene
da sind. In diesem Fall, wenn es ein nicht weißes Pixel in der Auswahlebene gibt,
aber kein entsprechendes Pixel in der Vordergrundebene, ist die
Farbe des Pixels in dem zusammengesetzten Bild die der Auswahlebene.
Diese Kombination ist gebräuchlich
und kann effizienter bezüglich
Rendering-Leistung und Komprimierung sein, als die Kombination aus
Hintergrund-, Auswahl-, und Vordergrundebene.
-
Die
Vordergrundebene kann eine höhere Farbtiefe
haben (z.B. 24 bpp). In einer Ausführungsform haben alle Bilder
in der Vordergrundebene die gleiche Farbtiefe. Alternativ können die
Bilder im Vordergrund eine oder mehrere Farbtiefen haben. Z.B. kann
der Inhalt 607 eine Farbtiefe von 1 bpp haben, während Inhalte 608 und 609 eine
andere Farbtiefe von 24 bpp haben. Es gibt Situationen, in denen
die eigentliche Farbe, die mit einer Region assoziiert ist, basierend
auf weniger als einer hohen Farbtiefe definierbar sein kann. In
einer weiteren Ausführungsform kann
der Inhalt 608 eine Farbtiefe von 8 bpp haben, während der
Inhalt 609 eine Farbtiefe von einem anderen Wert als 1
bpp und 8 bpp hat (einschließlich, aber
nicht darauf begrenzt, 2 bpp, 4 bpp, 16 bpp, 24 bpp, 32 bpp, und Ähnliches).
Das Verwenden der Farbtiefe in dem notwendigen Umfang, um einen Farbbereich
zu definieren (eher als sie für
eine gesamte Ebene voreinzustellen), erlaubt eine größere und/oder
effizientere Komprimierung durch das Eliminieren unnötiger Farbe,
die Bits pro Pixel spezifizieren, und/oder schnellere Komprimierungs-
und Renderingperfomance.
-
Die
Fähigkeit
Farbtiefen basierend auf jedem Bild oder Sammlung von Bildern in
einer Ebene zu definieren, ist ebenso auf die Hintergrundebene anwendbar.
-
6 zeigt
eine andere Darstellung einer MRC-Datei. Hier ist ein Hintergrundbild 610 mit „Farbtext
C" (Color Text C) 611 und „schwarzer
Text" (Black Text) 612 verbunden,
um ein zusammengesetztes Bild 613 zu bilden. Jedes Bild 610, 611 und 612 hat
eine Größe, die
kleiner als die Größe des zusammengesetzten
Bildes ist. In diesem alternativen Beispiel ist die kombinierte
Summe der Bilder 610, 611 und 612 kleiner
als die Größe des zusammengesetzten
Bildes.
-
7A zeigt
einen exemplarischen Vorgang zum Erzeugen einer Mixed Raster Content
Datei. Der Prozess beginnt mit Schritt 701 von der bilderzeugenden
Anwendung. Zuerst werden Text und Linienzeichnungen in Schritt 702 verarbeitet.
Wenn Text und/oder Linienzeichnungen vorhanden sind, werden diese
zu der Auswahlebene in Schritt 703 hinzugefügt. Die
Farbe der Linie oder des Textes wird verwendet, um ein Farbgebiet
für den
Vordergrund in Schritt 704 zu erzeugen. Das Farbgebiet
kann rechteckig oder irgendeine andere benötigte Form sein, um das Gebiet
in der Vordergrundebene zu definieren, um die Farbe für den Text
und/oder die Linien aus Schritt 702 richtig zu spezifizieren.
Als nächstes werden
die Bilder, die in der Bilddatei liegen, in Schritt 705 bearbeitet
und zu der Hintergrundebene in Schritt 706 hinzugefügt.
-
Das
Beispiel aus 7A zeigt die Fähigkeit, Bilder
direkt von einer Anwendung zu bearbeiten, während sie zu einem Gerätetreiber
gesendet werden, oder von einer gespulten Meta-Datei. Im Gegensatz
dazu ist der konventionelle Ansatz, um die MRC-Datei zu erzeugen,
ein intaktes zusammengesetztes Bild zu nehmen und es in verschiedene
Komponenten über
den Trennungsprozess 303 zu trennen. Der Trennungsprozess 303 ist
fehleranfällig
und verbraucht signifikant Ressourcen, um den Bildzerlegungsprozess
abzuwickeln. Das Beispiel aus 7A jedoch
stellt die Fähigkeit
bereit, MRC-Dateien ohne den Trennungsprozess zu erzeugen, weil
das Beispiel aus 7A die verschiedenen Komponenten eines
Bildes abarbeitet, während
die verschiedenen Komponenten immer noch separat adressierbar sind.
-
7B zeigt
einen alternativen Prozess zum Erzeugen einer MRC-Datei. Hier werden,
wenn ein Grafikrenderer den MRC-Generierungsprozess in Schritt 701 beginnt,
die Grafikaufrufe mit den relevanten Bildgebieten in Schritt 708 aufgelistet.
Die Liste kann eins oder mehr der folgenden Punkte für jedes Bildgebiet
einschließen:
- • begrenzendes
Gebiet;
- • Typ
der Grafikausgabe; und
- • verwendete
Farbe.
-
Als
nächstes
wird in Schritt 709, wenn das Bildgebiet Text oder Linienzeichnungen
sind, das Bildgebiet zu der Auswahlebene in Schritt 703 hinzugefügt. Andernfalls
wird in Schritt 710 das Bildgebiet zu der Vordergrund-/Hintergrundebene
hinzugefügt. Jeglicher
Typ von Bild wird zu der Vordergrund-/Hintergrundebene hinzugefügt, was
die Vordergrund-/Hintergrundebene zu einer guten Darstellung des
Dokuments macht.
-
Die 8A und 8B zeigen
verschiedene Optionen für
Schritt 704 aus 7A. In 8A werden
die Schrift- oder Pinselfarbe des Textes bzw. Linien in Schritt 801 vermerkt
und an Schritt 803 weitergegeben. Außerdem werden in Schritt 802 das
begrenzende Gebiet oder Gebiete (welche Rechtecke oder andere Formen
sein können,
die die Grenzen des Textes und/oder der Linien definieren) ermittelt und
an Schritt 803 weitergegeben. Die Schritte 801 und 802 können in
irgendeiner Reihenfolge stattfinden oder gleichzeitig abgehandelt
werden. Es wird des Weiteren begrüßt, dass die Gebiete, die in
Schritt 802 ermittelt werden, nicht vollständig gefüllt sein müssen. Z.B.
kann eine Linienzeichnung eines Kreises ein begrenzendes Gebiet
in der Form eines Torus haben. In Schritt 803 werden das
Gebiet oder die Gebiete, die in Schritt 802 ermittelt wurden,
als gefüllte Gebiete
in der Vordergrundebene ausgemalt.
-
8B zeigt
eine andere Alternative für
den Schritt 704. Zuerst wird jedes Pixel in der Auswahlebene 804 gescannt.
Wenn das Pixel schwarz ist, wie in Schritt 805 ermittelt,
dann wird die Farbe des Hintergrundpixels verwendet, um die Farbe
eines entsprechenden Vordergrundpixels in Schritt 806 zu
verfüllen.
Der scannende Schritt 804 kann jedes Pixel der gesamten
Auswahlebene abdecken.
-
Alternativ
kann der Schritt 804, während
die Auswahlebene in Bilder aufgebrochen wird, die Inhalt enthalten,
nur die Bilder in der Auswahlebene scannen. Weil das Gebiet der
Auswahlebene, das nicht durch Bilder verwendet wird, keinen Inhalt
beinhalten würde,
würden
diese Gebiete nicht durch Schritt 804 gescannt werden.
-
In
einem anderen Aspekt der Erfindung wird die Anordnung der MRC-Datei
verändert. 9A zeigt
einen beispielhaften Prozess zum Rendern eines zusammengesetzten
Bildes von einer Mixed Raster Content Datei aus 6.
In Schritt 901 beginnt das System ein zusammengesetztes
Bild von verschiedenen MRC-Ebenen zu konstruieren. Für alle Pixel
in dem zusammengesetzten Bild wird in Schritt 902 ermittelt,
ob ein Pixel in der Auswahlebene ist. Wenn ja, dann ermittelt das
System in Schritt 905, ob das Pixel in der Auswahlebene
weiß ist. Wenn
das Pixel weiß ist,
dann überprüft das System in
Schritt 906, ob es ein Pixel in der Hintergrundebene gibt.
Wenn es kein Pixel in der Hintergrundebene gibt, dann wird die vorgegebene
Hintergrundfarbe in Schritt 909 verwendet, wobei andererseits
die Farbe von dem entsprechenden Pixel in der Hintergrundebene in
Schritt 910 verwendet wird.
-
Wenn
das Pixel in der Auswahlebene von Schritt 905 nicht weiß ist, dann überprüft das System in
Schritt 907, ob es ein Pixel in der Vordergrundebene gibt.
Wenn es kein Pixel in der Vordergrundebene gibt, dann wird in Schritt 908 die
Farbe des Pixels in der Aus wahlebene verwendet. Wenn es ein Pixel
in der Vordergrundebene in Schritt 907 gibt, dann wird in
Schritt 904 die Farbe von dem entsprechenden Pixel in der
Vordergrundebene verwendet.
-
Wenn
es kein Pixel in der Auswahlebene von Schritt 902 gibt,
dann ermittelt das System in Schritt 903, ob es ein Pixel
in der Vordergrundebene gibt. Wenn es ein Pixel in der Vordergrundebene
gibt, dann verwendet das System in Schritt 904 die Farbe von
dem entsprechenden Pixel in der Vordergrundebene. Andernfalls ermittelt
das System in Schritt 906, ob es ein Pixel in der Hintergrundebene
gibt, und fährt
wie oben beschrieben fort.
-
Wenn
es kein Pixel in der Auswahlebene gibt, wie in Schritt 902 ermittelt,
dann ermittelt das System in Schritt 903, ob es ein entsprechendes
Pixel in der Vordergrundebene gibt. Wenn nein, dann wird die Farbe
von dem entsprechenden Pixel in der Hintergrundebene verwendet (Schritt 906).
Wenn es kein entsprechendes Pixel in dem Hintergrundbild gibt, dann
kann eine vorgegebene Pixelfarbe verwendet werden (z.B. weiß oder grau
oder es kann sogar als transparent eingestellt werden). Wenn das
Ergebnis von Schritt 903 ja ist, dann wird die Farbe von dem
entsprechenden Pixel in der Vordergrundebene verwendet (904).
-
9B zeigt
einen Prozess zum Verbinden der vielen Ebenen in ein zusammengesetztes
Bild. Ausgehend von dem Beginn in 901, erhält das System
die begrenzenden Rechtecke oder anderen Formen für den Inhalt der Ebenen. Als
nächstes
berechnet das System vier Listen. Die erste Liste (NOL_FGBG) stellt
Gebiete dar, in denen der Vordergrund nicht mit den Auswahlgebieten
und Gebieten überlappt,
wo der Hintergrund nicht mit den Vordergrundgebieten überlappt.
Die zweite Liste (SEL) stellt Gebiete dar, wo die Auswahl nicht
mit den Vordergrundgebieten überlappt.
Die dritte Liste (SELFG) stellt Gebiete dar, wo nur die Auswahl
und Vordergrundgebiete überlappen.
Die vierte Liste (BGFGSEL) stellt Gebiete dar, wo die Hintergrund-,
Auswahl-, und Vordergrundebenen alle überlappen.
-
Als
nächstes
wird in Schritt 913 das zusammengesetzte Bild mit einer
vorgegebenen Hintergrundfarbe gefüllt. Jede Liste wird in den
Schritten 914 bis 917 bearbeitet. In Schritt 914,
wird jedes Gebiet in der ersten Liste (NOL_FGBG), wenn es ein Vorder grundgebiet
gibt, mit dem Vordergrundbild gefüllt. Andernfalls wird das Gebiet
mit dem Hintergrundbild gefüllt.
-
In
Schritt 915 wird für
jedes Gebiet aus der zweiten Liste (SEL), wenn das Pixel aus der
Auswahlebene weiß ist,
werden keine Veränderungen
an dem zusammengesetzten Bild gemacht. Andernfalls wird der Farbwert
von dem Pixel in der Auswahlebene verwendet.
-
In
Schritt 916 wird für
jedes Gebiet in der dritten Liste (SELFG), wenn das Pixel in der
Auswahlebene weiß ist,
wird keine Veränderung
an dem zusammengesetzten Bild gemacht. Andernfalls wird die Farbe
des Pixels in der Vordergrundebene verwendet.
-
In
Schritt 917 wird für
jedes Gebiet in der vierten Liste (BGFGSEL), wenn das Pixel in der
Auswahlliste weiß ist,
die Farbe des Hintergrunds verwendet. Andernfalls wird die Farbe
des Pixels im Vordergrund verwendet.
-
10 zeigt
einen anderen beispielhaften Prozess zum Erzeugen einer Mixed Raster
Content Datei. Der Prozess, wie in 10 gezeigt,
stellt die MRC-Datei aus 6 her. Der Prozess beginnt mit Schritt 1001,
wo der Prozess angestoßen
wird. In einem Beispiel kann der Schritt 1000 der Empfang
eines Befehls zum Drucken der MRC-Datei sein. Weil Schritt 1000 ein
Teil einer Anwendung, Teil einer Grafiktoolbox, aufgerufen durch
eine Anwendung, oder ein Host für
andere Wege, das Erzeugen der MRC-Datei anzustoßen, sein kann, ist Schritt 1000 in einem
gestrichelten Rechteck gezeigt.
-
Zum
Zweck der Einfachheit ist das Folgende in Verbindung mit dem Herstellen
von MRC-Dateien in einem Druckertreiber beschrieben. Das Folgende schließt einen
Bezug zu der GDI API ein, die in dem WINDOWS® Betriebssystem
verfügbar
ist, das von Microsoft Corporation erhältlich ist, welche verschiedene
Funktionen zur Bildmanipulation darlegt. Es wird begrüßt, dass
Betriebssysteme, einschließlich LINUX
und Applebasierte Systeme Abweichungen bei den verschiedenen Funktionen
haben werden. Weil beabsichtigt ist, dass alle Betriebssysteme und Druckertreiber
durch den Gültigkeitsbereich
dieser Offenbarung umfasst sind, ist es demnach beabsichtigt, dass
der Bezug zu GDI-Aufrufen nicht einschränkend und nur für erläuternde
Zwecke ist.
-
Um
einen Druckertreiber unter Verwendung von GDI zu bauen, können etliche
Aufrufe verwendet werden. Das Folgende beschreibt etliche Aufrufe,
die helfen, Inhalt in ver schiedene Ebenen zu trennen. Die Aufrufe
können
allgemein als DrvXXX GDI APIs beschrieben werden. Im Speziellen
schließen
diese ein:
- • DrvCopyBits
- • DrvBitBlt
- • DrvStretchBlt
- • DrvStrokePath
- • DrvFillPath
- • DrvStrokeAndFillPath
- • DrvLineTo
- • DrvTextOut
- • DrvAlphaBlend
- • DrvGradientFill
- • DrvPlgBlt
- • DrvStretchBltROP
- • DrvTransparentBlt
-
Diese
Aufrufe sind in vordergrunderzeugende Methoden und hintergrunderzeugende
Methoden wie folgt aufgeteilt:
- • Vordergrunderzeugende
Methoden
• DrvStrokePath
• DrvLineTo
• DrvTextOut
• DrvBitBlt
- • Hintergrunderzeugende
Methoden
• DrvCopyBits
• DrvBitBlt
• DrvStretchBlt
• DrvAlphaBlend
• DrvGradientFill
• DrvPlgBlt
• DrvStretchBltROP
• Drv/TransparentBlt
• DrvFillPath
• DrvStrokeAndFillPath
-
Es
gilt als anerkannt, dass Grafikrenderer sich mit der Zeit verändern. Dementsprechend
ist die oben genannte Liste als Beispiel gedacht. Es wird begrüßt, dass
andere Aufrufe verwendet werden können oder den Fachleuten bekannt
werden, und werden mit in dem Umfang der Grafikaufrufe, wie oben genannt,
betrachtet.
-
Der
Druckprozess kann zum Zweck der Erläuterung in zwei Stufen getrennt
werden. Diese zwei Stufen werden durch die linke und rechte Hälfte von 10 dargestellt.
Während
der ersten Stufe werden zwei Bitmap-Puffer in Schritt 1001 erstellt.
Die zwei Bitmaps sind die Auswahlebene und eine Kombinations-Hintergrund/Vordergrund-Ebene.
Die Kombinationsebene kann als BGFG_SURFACE bezeichnet werden und
die Auswahlebene als SEL_SURFACE bezeichnet werden. Beide Bitmaps
decken die gesamte Seite ab. In Schritt 1002 ermittelt
das System, ob einer der empfangenen Aufrufe ein vordergrunderzeugender
DrvXXX-Aufruf war. Alternativ können
FillPath- und StrokeAndFillPath-Aufrufe, im Gegensatz zu BitBlt-Aufrufen,
verwendet werden, wenn ein Pinselstrich eine feste Farbe hat und
verschiedene Rasterfunktionen verwendet. Wenn ja, dann rendert es
in Schritt 1004 auf beiden BGFG_SURFACE und SEL_SURFACE
unter Verwendung eines entsprechenden EngXXX-Aufrufs (als Teil der
GDI API) auf der BGFG_SURFACE und SEL_SURFACE getrennt. Wenn der
Aufruf ein hintergrunderzeugender DrvXXX-Aufruf war (dargestellt als „nein" von dem Entscheidungsschritt 1002),
rendert es auf der BGFG_SURFACE unter Verwendung des entsprechenden
EngXXX-Aufrufs aus
der GDI Toolbox in Schritt 1006.
-
Für jeden
DrvXXX-Aufruf wird auch ein Datenknoten erstellt, der mindestens
manche der folgenden Informationen enthält:
- • Begrenzendes
Rechteck oder Gebiet, das durch den DrvXXX-Aufruf beeinflusst wird,
- • Farbwert
des Textes für
einen DrvTextOut-Aufruf und für
Linienzeichnungen.
- • ID,
um den Typ des DrvXXX-Aufrufs zu identifizieren.
-
Zusätzlich wird
jeder Knoten zu einer Liste mit Hintergrundelementen (BGE_LIST)
oder einer Liste mit Vordergrundelementen (FGE_LIST) zur Bearbeitung
in der zweiten Stufe hinzugefügt.
Die Prozessschritte 1003 und 1005 zeigen wie der
Knoten in jede Liste ver schoben werden kann. Weil jedoch der Einsatz
dieser Schritte vor oder nach den Schritten 1004 und 1006 erfolgen
kann, sind die Schritte 1003 und 1005 in gestrichelten
Rechtecken gezeigt.
-
BGFG_SURFACE
kann die gleiche Auflösung
haben, wie die höchste
zu verwendende Auflösung
für Hintergrund-
und Vordergrundbilder. Alternativ kann die Auflösung von BGFG_SURFACE auf die
gleiche Auflösung
wie die Seitenauflösung,
wie in dem endgültigen
Bild gesetzt werden.
-
Die
zweite Stufe beginnt nachdem alle DrvXXX-Aufrufe bearbeitet sind.
In dieser Stufe werden Bilder für
jede der drei Ebenen erstellt. In Schritt 1007 ermittelt
der Prozess, ob die Bilder in der Hintergrund/Vordergrundliste überlappen.
Wenn ja, dann werden die Bilder durch Hinzufügen zu den Bildern bearbeitet,
um durch den MRC-Prozess (oder Prozessen) verbunden zu werden. Wenn
die Bilder nicht überlappen,
versucht der Prozess die Bilder zu der Auswahlliste in Schritt 1009 zu
verschieben. Um zu ermitteln, wo Auswahlbilder benötigt werden,
wird ein Überschneidungstest
für jedes
Bild in der BGE_LIST mit jedem Bild in der FGE_LIST durchgeführt. Alle
Gebiete (Rechtecke oder andere), wo Vordergrundelemente und Hintergrundelemente
sich überschneiden,
werden durch ein Auswahlbild adressiert.
-
In
einem Beispiel versucht der Prozess so viele der Bilder der Auswahlebene
wie möglich
in die Vordergrundebene zu platzieren. In einem anderen Beispiel
versucht der Prozess die Summe der Gebiete aller Bilder auf einem
Minimum zu halten, um die Komprimierungsgröße zu reduzieren und die Leistungsfähigkeit
beim Komprimieren, Dekomprimieren und bei Renderstufen zu vergrößern. In
einem weiteren Beispiel versucht der Prozess zu probieren, die geringste
Anzahl von allen Bildern in allen Ebenen zu erhalten. Diese Beispiele
können
kombiniert oder separat verwendet werden. Sie sind zusammen zum Zweck
der Erläuterung
beschrieben worden.
-
In
Schritt 1010 versucht der Prozess die Anzahl der Objekte
oder Bilder pro Ebene zu reduzieren. Z.B. können zwei nicht überlappende
Textbilder derselben Farbe verbunden werden.
-
In
Schritt 1010 versucht der Prozess die Anzahl der Elemente
in den Ebenen zu reduzieren. Hier werden Elemente der gleichen Ebene
miteinander verbunden, um größere E lemente
in große
umzuwandeln. Es sollte beachtet werden, dass dieser Schritt neue
Objekte in den Listen einfügen
kann. Im Folgenden werden verschiedene Ansätze zum Verbinden der Elemente
aufgelistet. Eins oder mehrere können
verwendet werden, um zu ermitteln, wie die Elemente der Ebenen zu
kopieren sind:
- • Das verbundene Element sollte
vermeiden, neue Überlappungen
mit Elementen in anderen Ebenen zu erzeugen, außer dies bringt Vorteile in
anderen Aspekten, wie unten aufgelistet;
- • Das
Gebiet mit einem verbundenen Element sollte nicht größer als
die Summe der einzelnen Elemente sein. Ein Grenzwert kann gesetzt
werden (z.B. 30% bis 40%) und verglichen werden, um zu ermitteln,
wenn verbundene Elemente zu groß werden;
und
- • Rendering-spezielle
Aufrufe können
Kennzeichner haben (z.B. Vordergrundelemente, die durch DrvTextOut
erzeugt wurden, sollten nicht mit Elementen verbunden werden, die
durch andere DrvXXX-Aufrufe erzeugt wurden, weil sie verschiedene
BPP Werte haben. Auch innerhalb der Vordergrundelemente, die durch
DrvTextOut erzeugt wurden, können
nur Elemente mit der gleichen Farbe verbunden werden).
-
Nach
dem Ermitteln, wie die Seite zu zerlegen ist, existieren drei Listen:
- • BGE_LIST;
- • SLE_LIST;
und,
- • FGE_LIST.
-
Jede
Liste enthält
eine Liste mit Knoten, die ein Gebiet beschreiben (z.B. Rechteck
oder andere Formen), um von der Seite abgeschnitten zu werden. In
einer weiteren Ausführungsform
können
die Listen einen Maßstabsfaktor
einschließen,
der beschreibt, wie das Bild in der Liste auf dem endgültigen Bild skaliert
wird. Der Maßstabsfaktor
gestattet die Fähigkeit,
jedes Elementbild mit einer unterschiedlichen Auflösung zu
speichern, selbst innerhalb der gleichen Ebenen.
-
Letztendlich
werden die verschiedenen Ebenen in Schritt 1011 gerendert.
Für jedes
Element in der Hintergrundelementliste, das sich nicht mit Auswahlbildern überschneidet,
kann ein Bild durch das Abschneiden eines Gebietes von der BGFG_SURFACE
gebildet werden und in der Hintergrundebene platziert werden. Für jedes
Element in der Vordergrundelementliste, das sich nicht mit Auswahlbildern überschneidet,
kann ein Bild durch Abschneiden eines Gebietes von der SEL_SURFACE gebildet
werden und zu der Vordergrundebene hinzugefügt werden. Für Elemente
in der Hintergrund- und Vordergrundliste, die sich mit Auswahlbildern überschneiden,
werden Bilder für
jede Ebene durch Verwenden beiden SEL_SURFACE und BGFG_SURFACE,
erzeugt.
-
Z.B.
kann, und dabei auch auf die Überschneidungs/Pixei-bei-Pixel-Vergleichoption
aus 9B verweisend, für ein Hintergrundelement, das sich
mit dem Auswahlbild überschneidet,
das Hintergrundbild durch Abschneiden eines Gebiets aus der BGFG_SURFACE
hergestellt werden. Als nächstes überprüft der Prozess
für jedes
Pixel in dem Hintergrundbild das entsprechende Pixel in der SEL_SURFACE.
Wenn das Pixel in der SEL_SURFACE schwarz ist, wird der Pixelwert
in dem Hintergrundbild durch ein nahegelegenes Hintergrundpixel
ersetzt, dessen entsprechendes Pixel in SEL_SURFACE weiß ist. Für ein Vordergrundelement,
das sich mit dem Auswahlbild überschneidet, kann
das Vordergrundbild durch Ausschneiden eines Gebiets aus BGFG_SURFACE
konstruiert werden. Als nächstes überprüft der Prozess
für jedes
Pixel in dem Vordergrundbild das entsprechende Pixel in SEL_SURFACE.
Wenn das Pixel SEL_SURFACE weiß ist,
wird der Pixelwert in dem Hintergrundbild durch ein nahegelegenes
Vordergrundpixel ersetzt, dessen entsprechendes Pixel SEL_SURFACE schwarz
ist. Ein Vorteil des Verschiebens von Bildern in die Auswahlebene
und/oder das reduzieren der Anzahl von Bildern pro Ebene liegt darin,
dass die resultierenden Ebenen mit einer höheren Effizienz komprimiert
werden können.
-
Wie
oben erwähnt,
können
verschiedene Kompressionstechniken verwendet werden, um die verschiedenen
Bilder zu komprimieren. Z.B. kann man jedes Bild, das 1 bpp hat,
unter Verwendung von G4 Kompression komprimieren. Jedes Bild, das
24 bpp hat, kann man es unter Verwendung von JPEG Komprimierung,
wie in der Fachwelt bekannt, komprimieren.
-
11 zeigt
einen Prozess zum Zusammenfassen von Bildern. Bilder können alle
zusammen bearbeitet werden oder in Gruppen getrennt werden (hierin
als „Chunks" be zeichnet). Die
Bilder in den Chunks können
nach dem Bildtyp gruppiert werden. Alternativ können die Chunks nach der Reihenfolge, in
der sie erzeugt werden, gruppiert werden. Die Chunks können eine
vordefinierte maximale Anzahl von Bildern haben oder auch nicht.
-
In 11 hat
Chunk 1 N Bilder. Die Bilder sind nach der Nähe zueinander geordnet. Die
Nähe ist
unterhalb mit Bezug auf 13 beschrieben.
Die Nähe
kann als physische Distanz zwischen den Bildern angesehen werden
oder kann als die Nähe
der Bilder zueinander für
Zusammenführungszwecke sein.
Wenn zwei Bilder überlappen,
ist ihr Nähewert gleich „0", d.h., dass sie
den geringsten Nähewert
haben und zusammengeführt
werden sollten. Bilder, die nicht zusammengeführt werden sollten, können mit einem
Nähewert
von 1 oder mehr versehen werden. Es wird begrüßt, dass irgendeine Näheskalierung verwendet
werden kann.
-
Alle
Bilder in Chunk 1 werden gegeneinander verglichen, und jedes Bildpaar
wird in Bezug auf den Nähewert
in einer Reihenfolge eingeordnet. Wenn N = 5 in 11 gilt,
wären die
Bildpaare wie folgt:
Bild 1, Bild 2
Bild 1, Bild 3
Bild
1, Bild 4
Bild 1, Bild 5
Bild 2, Bild 3
Bild 2, Bild
4
Bild 2, Bild 5
Bild 3, Bild 4
Bild 3, Bild 5
Bild
4, Bild 5
-
Die
Nähe für jedes
Paar wird ermittelt und die Paare wie in 11 gezeigt
für Chunk
1 auf der linken Seite der Fig. geordnet.
-
In
Schritt 1101 ermittelt der Prozess für das erste Bildpaar, ob der
Grenzwert kleiner als ein vordefinierter Grenzwert ist. Wenn ja,
werden die Bilder in Schritt 1102 zusammengeführt und
die Nähe
für die
restlichen Bilder erneut berechnet. Wenn die Nähe aus Schritt 1101 größer als
der Grenzwert ist, kann das Zusammenführen in Schritt 1104 gestoppt werden.
Z.B. kann der Grenzwert auf irgendeinen Wert zwischen dem geringen
Nähewert
(d.h. die Bilder werden zusammengeführt) und dem hohen Nähewert (d.h.
die Bilder sollen nicht zusammengeführt werden) gesetzt werden.
Der Bereich für
den Grenzwert kann 0,4 bis 0,6 sein. Es wird angemerkt, dass der
Grenzwert größer oder
kleiner sein kann, als der oben genannte Bereich, abhängig von
den Bildtypen, den Verhältnissen
zwischen den Bildtypen und anderen Faktoren.
-
Wie
oben dargelegt, versucht der Prozess die Bilder miteinander zu verbinden,
die nahe zueinander liegen. Ein anderer Vorteil kann durch die Minimierung
der Anzahl von resultierenden Bildern erreicht werden, die die MRC-Funktion
zu bearbeiten hat. In diesem Fall kann, obwohl die Bilder eine Nähe unterhalb
des in 1101 verwendeten Grenzwertes haben, eine gewünschte Anzahl
von Bildern pro Chunk festgelegt werden, um die Anzahl der Bilder
zu minimieren, die bearbeitet werden müssen. Schritt 1103 stellt
eine Ermittlung dar, ob die Anzahl der Bilder in dem Chunk kleiner
als die gewünschte
Anzahl von Bildern in dem Chunk ist. Z.B. kann die gewünschte Anzahl
von Bildern vier sein. Auch wenn der Nähewert zwischen irgendwelchen
zwei der Bilder hoch sein kann, so können die Bilder immer noch
zusammengeführt
werden (Schritt 1102), um die Anzahl der resultierenden
Bilder und die Nähe
der resultierenden Bildpaare, wie in Schritt 1105 neu berechnet,
zu reduzieren.
-
12 zeigt
ein Beispiel einer Zusammenführungsfunktion,
die durch Bildpaare und resultierende Bilder schreitet. Die einzelnen
Bilder werden durch die Bildgebiete 1-N bzw. 1201 bis 1205 dargestellt.
Der Zusammenführungsprozess 1206 bewegt sich
zwischen den Bildern 1201 bis 1205. Das Zusammenführen von
irgendwelchen zwei Bildern kann ein einfacher Zusammenführungsprozess
(Prozess 1207) sein, in welchem das resultierende Bild
(Bildgebiet A, welches ein einzelnes Bild ist und als ein Hintergrundbild
behandelt wird) nicht in irgendwelchen MRC-Bildern resultiert. Alternativ
kann die resultierende Zusammenführung
eine komplexe Zusammenführung
mit MRC sein, wie in Prozess 1208 gezeigt. Es gibt mindestens
zwei Arten von Zusammenführungsergebnissen
aus der MRC-Zusammenführung 1208.
Das erste 1211 ist ein Bildgebiet C, in welchem Hintergrund-
und Auswahlebenen hergestellt werden. Das dritte 1212 ist
das Bildgebiet D, in welchem Hintergrund-, Auswahl-, und Vordergrundebenen
erstellt werden. Diese Ordnung von einzelnem (Hintergrund-) Bild,
MRC mit Hintergrund und Auswahl, und MRC mit Hintergrund-, Auswahl-,
und Vordergrundebenen ist auch die Bevorzugung zur Ermittlung, welche
Zusammenführung
ausgeführt
werden soll. D.h. man würde
eher eine MRC-Datei mit einer einzelnen Hintergrundebene erzeugen,
als eine MRC-Datei mit Hintergrund-, Auswahl-, und Vordergrundebenen.
-
13 zeigt
einen Prozess zum Ermitteln der Nähe von irgendwelchen zwei Bildgebieten.
Zwei Bildgebiete A 1301 und B 1302 werden auf Überlappung
in Schritt 1303 überprüft. Wenn
die Bilder überlappen,
dann wird in Schritt 1307 die Nähe auf den Wert 0 gesetzt.
Wenn nicht, ermittelt der Prozess in Schritt 1304, ob beide
Bilder gegenwärtig
MRC-Bilder sind. Wenn beide Bilder MRC-Bilder sind, dann wird die
Nähe der
Bilder auf einen Wert zwischen 0 und einem hohen Wert (hier ist
der hohe Wert 1) gesetzt (Schritt 1308). Dieser Zwischenwert
kann ein fester Wert für
alle Situationen sein (z.B. 0,5). Alternativ kann der Wert als ein
Vehältnis
gesetzt werden. In einem Beispiel kann das Vehältnis das Verhältnis zur
Effizienz des Verbindens der Bildgebiete sein. Mit anderen Worten
kann das Vehältnis
der unbenutzte Platz des zusammengefügten Bildes geteilt durch das
Gesamtgebiet der kombinierten Bilder sein. Dieses Verhältnis wird
durch die Gleichung in Schritt 1308 gezeigt.
-
14 zeigt
ein Beispiel zum Ermitteln des unbenutzten Platzes. In 14 wird
das Textbild A 1401 zur Kombination mit Textbild B 1402 in
Betracht gezogen. In diesem Beispiel sind die begrenzenden Gebiete
von 1401 und 1402 durch Rechtecke gezeigt. Das
kombinierte Bildgebiet der zwei Gebiete 1401 und 1402 ergibt
unbenutzten Platz 1403, der durch gepunktete Linien umrandet
gezeigt ist. In einer alternativen Ausführungsform kann der unbenutzte
Platz auf einem rechteckigen Gitter basiert sein, was das gesamte
Gebiet einschließlich 1401, 1402,
das Gebiet, welches durch die gepunkteten Linien eingefasst ist 1403,
und außen
liegende Gebiete 1404 und 1405 ergibt. In dem
ersten Beispiel schließt der
unbenutzte Platz das Gebiet 1403 ein. In dem zweiten Beispiel
schließt
der unbenutzte Platz die unbenutzten Gebiete 1403, 1404 und 1405 ein.
-
Wieder
Bezug nehmend auf 13, wenn beide Bilder gegenwärtig keine
MRC-Bilder sind, dann ermittelt der Prozess in Schritt 1305,
ob beide Bilder Text/Linienbilder sind. Wenn ja, und die Bilder dieselbe
Farbe haben (Schritt 1306), wird die Nähe in Schritt 1308 wie
oben beschrieben gesetzt.
-
Wenn
die Text/Linienbilder nicht dieselbe Farbe haben, muss MRC verwendet
werden, so dass die Nähe
hoch gesetzt wird (z.B. 1), wie in Schritt 1309 gezeigt.
Alternativ kann die Nähe
wie in Schritt 1310 gezeigt hoch gesetzt werden, indem
die Nähe auf
einen Koeffizienten multipliziert mit dem neue MRC-Gebiet gesetzt
wird, das erzeugt wird durch die Zusammenführung der zwei Bilder geteilt
durch das gesamte Gebiet der kombinierten Bilder.
-
Wenn
das Ergebnis aus Schritt 1305 nein ist, dann wird die Nähe in Schritt 1310 gesetzt.
Alternativ kann man die Nähe
wie in Schritt 1309 setzen.
-
Sobald
die zusammengefügten
Dateien erstellt wurden, kann die Menge an Platz, die durch die Originalbilder
in den verbundenen Bildern verbraucht wird, gemerkt werden. Es gibt
verschiedene Wege, den Platz für
zusammengeführte
Bilder zu zählen. 15A zeigt drei Bilder (1 bis 3), in welchem jedes drei
Größeneinheiten
hat. Es wird begrüßt, dass
irgendeine Zuweisung von Platz verwendet werden kann, einschließlich Quadratzentimeter,
Quadratmillimeter, Quadratinch, Pixels und Ähnliches. Bild 1 überlappt
mit Bild 3 und Bild 2 überlappt
mit Bild 3. In 15B zeigt 1501 die
Kombination aus Bildern 1 und 2. Nach der Zusammenführung der
kombinierten Bilder 1 und 3 mit Bild 2, wird die resultierende Kombination
als 1502 dargestellt. In 1502 ist die Anzahl der
eigentlich verwendeten Einheiten 7. Jedoch kann diese Anzahl geschätzt werden
durch Betrachten der Kombination der Bilder 1 und 3 (1503)
und Hinzuzählen
der Größe des Bildes
2 1504, was die geschätzte Größe von 8
Einheiten ergibt.
-
15C zeigt noch eine andere Darstellung. Hier werden
die Bilder 1 und 2 zuerst verbunden, was Bild 1505 ergibt.
Das Hinzuzählen
von Bild 2 ergibt Bild 1506, welches wieder die Größe von 7
Einheiten hat, weil die mittige Einheit von Bild 2 und die untere Einheit
von Bild 3 nicht separat, aber kombiniert, gezählt werden. Alternativ kann
dieser Wert der Größe des verwendeten
Platzes in dem kombinierten Bild 1507 der Bilder 1 und
2 mit Bild 3 1508 einschließen, was zu einer Gesamtzahl
von 9 Einheiten führt.
In noch einem weiteren Beispiel kann die Größe des zusammengefügten Bildes
bei der Gesamtgröße des kombinierten
Bildes gekappt werden.
-
Während beispielhafte
Systeme und Verfahren, die die vorliegende Erfindung verkörpern, als Beispiel
gezeigt wurden, gilt es natürlich
als verstanden, dass die Erfindung nicht auf diese Ausführungsformen
begrenzt ist. Veränderungen
können
durch Fachleute gemacht werden, im Speziellen in Bezug auf die vorgehende
Lehre. Z.B. jedes der Elemente der zuvor erwähnten Ausführungsformen kann alleine oder
in Kombination mit Elementen der anderen Ausführungsformen verwendet werden.
Obwohl die Erfindung unter Verwendung der anhängigen Ansprüche definiert
ist, sind diese Ansprüche
beispielhaft, indem die Erfindung so gedacht ist, dass die hierin
beschriebenen Elemente und Schritte in irgendeiner Kombination oder
Unterkombination eingeschlossen sind. Dementsprechend gibt es irgendeine
Anzahl von alternativen Kombinationen zum Definieren der Erfindung,
welche ein oder mehrere Elemente von der Ausführung, einschließlich der Beschreibung,
den Ansprüchen
und den Zeichnungen, in verschiedenen Kombinationen oder Unterkombinationen
beinhalten. Es wird den Fachleuten der relevanten Technologie angesichts
der vorliegenden Ausführung
offensichtlich sein, dass wechselnde Kombinationen der Aspekte der
Erfindung, entweder allein oder in Kombination mit einem oder mehreren der
hierin definierten Elemente oder Schritte als Veränderungen
oder Wechsel der Erfindung oder als Teil der Erfindung verwendet
werden kann. Es ist vorgesehen, dass die hier enthaltene dargelegte
Beschreibung der Erfindung alle solche Veränderungen und Wechsel abdeckt.