-
HINTERGRUND
DER ERFINDUNG
-
GEBIET DER
ERFINDUNG
-
Diese
Erfindung bezieht sich auf Bildaufteilungsverfahren und Geräte wie Computer,
auf denen solche Verfahren implementiert werden können. Spezifischer
bezieht sich die Erfindung auf das Aufteilen einer Menge von überlappenden
Bildern, um die Herunterlade- und Verarbeitungseffizienz zu verbessern. Überlappende
Bilder werden aufgeteilt, so dass, wenn die Bilddaten übertragen
werden (zum Beispiel heruntergeladen werden) nur die sichtbaren Teile
der Bilder heruntergeladen werden. Unsichtbare Bildteile werden
nicht übertragen,
um Übertragungskapazität zu sparen.
-
BESCHREIBUNG
DES STANDS DER TECHNIK
-
Verschiedene
Online-Hilfsmittel existieren, die es zulassen, dass ein Benutzer
Grafiken wie Geschäftskarten
und Grußkarten über das
Internet mit einem Standard-Webbrowser erzeugt und editiert. Viele
dieser Hilfsmittel erlauben es dem Benutzer, ein oder mehrere Bilder
zu der Gruß-
oder Geschäftskarte
hinzuzufügen.
Der Benutzer kann die Bilder umherschieben, ihre Größe ändern, sie
rotieren etc.
-
Während des
Bedienungsprozesses geht der Benutzer typischerweise nur mit Minibildern
um. Dies minimiert die Anforderungen an die Client-Maschine. Es
mi nimiert auch die Herunterladezeit. Das Herunterladen des Bildes
in voller Größe kann
aufgeschoben werden, bis der Benutzer zum Ausdrucken bereit ist.
Auf diese Weise wird für
das Herunterladen eines Bildes voller Größe keine Zeit verschwendet, wenn
der Benutzer seine Meinung darüber ändert, welches
Bild er verwenden will.
-
In
einigen Fällen
mag der Benutzer es wünschen,
mehrere Bilder in das Grafikdokument einzubauen, von denen sich
einige teilweise überlappen. In
jedem Überlappungsbereich
ist nur der entsprechende Anteil des obersten Bilds sichtbar; die
entsprechenden Teile der weiter unten gelegenen Bilder im Stapel
werden verdeckt. Entsprechend dem gegenwärtigen Stand der Technik werden
die gesamten Bilddaten heruntergeladen, wenn der Benutzer die Bilder
herunterladen will, sogar die Daten von Bildanteilen, die nicht
sichtbar werden werden. Dies ist zeitraubend und unnötig.
-
Das
Dokument US-A-5917962 offenbart ein Verfahren zum Aufteilen eines
Bildes in Unterbilder vor der Übertragung
und das Verwenden der Positionsinformation, die eine relative Platzierung
eines Unterbildes innerhalb des Bildes in einem ersten Raum bestimmt,
um Grenzen zwischen den Unterbildern in einem zweiten Raum zu bestimmen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die erwähnten Probleme
und Nachteile des konventionellen Verarbeitens von überlappenden
Bildern zu überwinden.
-
Eine
andere Aufgabe dieser Erfindung ist es, ein System zum Aufteilen
einer Menge von überlappenden
Bildern bereitzustellen, um die Übertragungs-
und Verarbeitungseffizienz zu erhöhen.
-
Ein
weiteres Ziel der vorliegenden Erfindung ist es, ein System zum
Aufteilen einer Menge von überlappenden
Bildern bereitzustellen, sodass nur die sichtbaren Anteile der Bilder übertragen
werden.
-
Noch
eine andere Aufgabe dieser Erfindung ist es, ein System zum Aufteilen
einer Menge von überlappenden
Bildern bereitzustellen, die in einem komprimierten Bereich sind
und nur die komprimierten Daten aus dem aufgeteilten Bereich zu übertragen.
-
Gemäß einem
Aspekt dieser Erfindung wird ein Verfahren bereitgestellt zum Aufteilen
einer Gruppe von Bildern, die mindestens ein erstes am weitesten
unten liegendes Bild und ein zweites Bild vor dem ersten Bild und
dieses teilweise überlappend
umfasst. Das Verfahren umfasst das Aufteilen eines nicht überlappten
Anteils des ersten Bildes in mindestens zwei Teile, basierend auf
der Position des zweiten Bildes, um eine erste Menge von Bildelementen
zu bilden und das Übertragen
nur der ersten Menge von Bildelementen.
-
Wenn
nötig wird
ein nicht überlappter
Anteil von jedem teilweise überlappten
Bildelement in der ersten Menge von Bildelementen vorzugsweise weiter
in einer zweiten Aufteilungsstufe in mindestens zwei Teile aufgeteilt,
basierend auf der Position eines dritten Bildes in der Gruppe von
Bildern, die teilweise die erste Menge von Bildelementen überlappt.
Diese zweite Stufe des Aufteilens resultiert in der Bildung einer
zweiten Menge von Bildelementen. In diesem Fall werden nur die erste
und zweite Menge von Bildelementen übertragen.
-
In
einem anderen Aspekt der Erfindung wird ein Verfahren zum Aufteilen
einer Gruppe von Bildern bereitgestellt, bei der sich mindestens
einige von ihnen teilweise überlappen,
wobei die Gruppe von Bildern ein erstes am weitesten unten liegendes
Bild und ein letztes am weitesten oben liegendes Bild enthält. Das
Verfahren umfasst das Aufteilen. eines nicht überlappten Anteils des ersten
Bildes in eine Mehrzahl von Rechtecken, basierend auf der Position
eines zweiten Bildes vor ihm und das erste Bild teilweise überlappend,
um eine erste Menge von Rechtecken zu bilden; iteratives Bilden
von neuen Mengen von Rechtecken durch Aufteilen einer gegenwärtigen Menge
von Rechtecken, basierend auf einem nächsten Bild in der Gruppe von
Bildern, bis eine endgültige
Menge von Rechtecken gebildet wird, basierend auf der Position des
am weitesten oben liegenden Bildes; und Übertragen der endgültigen Menge
von Rechtecken. Vorzugsweise enthält die erste Menge von Rechtecken
das zweite Bild und jede zusätzliche Menge
von Rechtecken enthält
das Bild, auf welchem das Aufteilen jener zusätzlichen Menge basiert.
-
Vorzugsweise
enthält
die erste Menge von Bildelementen das zweite Bild und die zweite
Menge von Bildelementen enthält
das dritte Bild.
-
Ebenfalls
vorzugsweise hat jeder Teil und jedes Bildelement die Form eines
Rechtecks.
-
Ebenfalls
vorzugsweise wird das Aufteilen in einem komprimierten oder teilweise
komprimierten Bereich durchgeführt.
-
Gemäß einem
anderen Aspekt der Erfindung wird eine Vorrichtung bereitgestellt
zum Aufteilen einer Gruppe von Bildern im Einklang mit dem/den oben
beschriebenen Verfahren. Die Vorrichtung kann ein digitaler Computer,
ein anderes durch ein Prozessor gesteuertes Gerät oder Äquivalentes sein.
-
In
noch einem anderen Aspekt der Erfindung kann/können das/die oben beschriebene(n)
Verfahren in einem Programm von Befehlen verwirklicht werden, das
in einem Medium gespeichert ist, welches für einen digitalen Computer
oder ein anderes durch ein Prozessor gesteuertes Gerät lesbar
ist. Alternativ kann/können
das/die Verfahren implementiert werden unter Benutzung von Hardware
oder einer Kombination von Software und Hardware.
-
Andere
Ziele und Leistungen zusammen mit einem besseren Verständnis der
Erfindung werden deutlich werden und zur Kenntnis genommen werden durch
Bezug auf die folgenden Beschreibung und Ansprüche in Verbindung mit den begleitenden
Zeichnungen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
In
den Zeichnungen beziehen sich gleiche Bezugszeichen auf gleiche
Teile:
-
1 ist
eine schematische Darstellung eines Netzwerks, das einen Netzwerk-Client und einen Netzwerk-Server
verbindet;
-
2 ist
ein funktionales Blockdiagramm eines typischen Computers, der als
ein Netzwerk-Client oder ein Netzwerk-Server verwendet werden kann,
um verschiedene Aspekte der vorliegenden Erfindung zu implementieren;
-
3A, 3B und 3C zeigen
verschiedene Implementierungen von allen oder Teilen der Bildaufteilungstechniken
der vorliegenden Erfindung;
-
4 ist
ein Flussdiagramm, das den Ablauf des Bildaufteilungsalgorithmus
der vorliegenden Erfindung zeigt und
-
5A bis 5Q zeigen
die siebzehn verschiedenen Arten, auf die zwei Rechtecke/Bilder
zueinander positioniert sein können.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
Bildaufteilungstechniken der vorliegenden Erfindung können mit
Grafiken oder Bildverarbeitungsanwendungen verwendet werden, bei
denen ein Benutzer mit mehreren Bildern arbeitet, wobei einige oder
alle von ihnen sich teilweise überlappen und
die Bilddaten übertragen
werden sollen. Solche Anwendungen können zum Beispiel Programme
einschließen,
die es einem Benutzer erlauben, Geschäfts- oder Grußkarten
zu erzeugen. Die Techniken der vorliegenden Erfindung verbessern
die Übertragungs-
und Verarbeitungseffizienz durch Aufteilen der mehreren überlappenden
Bilder, so dass nur die sichtbaren Anteile der Bilder übertragen
werden. Demnach hat die vorliegende Erfindung eine besondere Nützlichkeit
in Verbindung mit Online-Grafiken oder Bildverarbeitungsanwendungen,
bei denen der Benutzer auf einem Client-Computer arbeitet, der über ein
Netzwerk mit einem Server interagiert.
-
1 ist
eine schematische Darstellung eines Netzwerks. Der Einfachheit der
Darstellung halber werden nur ein Client und ein Server gezeigt;
jedoch wird es Fachleuten offensichtlich sein, dass das Netzwerk
eine Mehrzahl von Clients und Servern enthalten kann (typischerweise
tut es dies auch). Der Netzwerk-Client 11 verwendet das
Netzwerk 13, um auf Ressourcen zuzugreifen, die von dem
Netzwerk-Server 12 bereitgestellt werden. Obwohl daran gedacht
werden kann, dass der Netzwerk-Server 12 ein Hypermedia-Server
ist, vielleicht im Einklang mit dem Hypertext Transfer Protocol
(HTTP) arbeitend, ist dies nicht notwendig, um die vorliegende Erfindung
durchzuführen.
Die Natur der Kommunikationswege, die den Netzwerk-Client 11 und
den Netzwerk-Server 12 verbinden, ist nicht entscheidend
für die
Durchführung
der vorliegenden Erfindung. Solche Wege können als geschaltete Wege und/oder
Standleitungen unter Benutzung von privaten und/oder öffentlichen
Vorrichtungen implementiert werden. Ähnlich ist die Topologie des
Netzwerks 13 nicht entscheidend und kann in einer Vielfalt
von Arten implementiert werden, einschließlich hierarchischen und Peer-to-Peer-Netzwerken. Der Netzwerk-Client 11 und
der Netzwerk-Server 12 können sich zum Beispiel lokal
zueinander befinden und können
auf derselben Hardware implementiert werden.
-
2 ist
ein funktionales Blockdiagramm eines typischen Computersystems 20,
das verwendet werden kann, um den Netzwerkclient 11 und/oder den
Netzwerkserver 12 zu implementieren. Wie gezeigt enthält dieses
Computersystem den Bus 21, der die Central Processing Unit
(CPU) 22, den Systemspeicher 23 und verschiedene
Geräteschnittstellen verbindet.
Der Bus 21 kann durch mehr als einen physikalischen Bus
implementiert werden, wie einen Systembus und einen Prozessor-Local-Bus.
Die CPU 22 stellt einen Verarbeitungsschaltkreis wie einen
Mikroprozessor dar. Der Systemspeicher 23 repräsentiert
verschiedene Speicherkomponenten wie Random Access Memory (RAM)
und Read-Only Memory (ROM). Die Input-Kontrolle 25 repräsentiert
einen Schnittstellenschaltkreis, der mit einem. oder mehreren Inputgeräten 3S wie
einer Tastatur, Maus, einer Rollkugel oder einem Stylus verbindet.
Die Anzeigekontrolle 26 repräsentiert einen Schnittstellenschaltkreis,
der mit einem oder mehr Anzeigegeräten 36 wie einem Video-Anzeigeterminal
verbindet. Die I/O-Kontrolle 27 repräsentiert einen Schnittstellenschaltkreis,
der mit einem oder mehr I/O-Geräten 37 wie
einem Modem oder einer Netzwerkverbindung verbindet. Die Speicherkontrolle 28 repräsentiert
einen Schnittstellenschaltkreis, der mit einem oder mehr Speichergeräten 38 wie
einem Laufwerk für eine
magnetischen Platte, einem Laufwerk für ein magnetisches Band, einem
Laufwerk für
eine Bildplatte oder einen Festkörperspeichergerät verbindet. Die
Druckerkontrolle 29 repräsentiert einen Schnittstellenschaltkreis,
der mit einem oder mehr Druckergeräten 39 wie einem Laserdrucker,
einem Tintenstrahldrucker oder einem Plotter verbindet. Keine besondere
Art von Computersystem ist entscheidend zur Durchführung der
vorliegenden Erfindung. Zum Beispiel kann ein Computer mit einer
Busarchitektur, die verschieden von der in 2 gezeigten
ist, verwendet werden.
-
In
einer bevorzugten Ausführungsform
führt das
Computersystem 20 die Bildaufteilungstechniken der vorliegenden
Erfindung durch das Benutzen der CPU 22 aus, um ein Programm
mit Befehlen, das sich im RAM befindet, auszuführen, das von dem ROM, dem
Speichergerät 38,
abgerufen werden kann oder vom Netzwerk-Server oder einer anderen Quelle
durch das I/O-Gerät 37 erhalten
werden kann. Das Programm von Befehlen (d.h. Software) kann durch
ein Medium geliefert werden, das mit einem Computer oder einem anderen
prozessorgesteuerten Gerät
lesbar ist einschließlich
verschiedenen magnetischen Medien. wie einer Plat te oder einem Band,
verschiedenen optischen Medien wie Compact Disks und optischen,
infraroten und Basisband- oder modulierten Kommunikationswegen durch
das elektro-magnetische Spektrum von Überschall bis zu ultravioletten
Frequenzen. Demnach ist der Begriff „durch ein Gerät lesbares
Medium", wie er
in den Ansprüchen
verwendet wird, so gemeint, dass er alle solchen Medien abdeckt,
einschließlich
der Trägerwelle,
die kodiert ist, um das Programm von Befehlen zu übertragen.
-
Alternativ
können
die Bildaufteilungstechniken der vorliegenden Erfindung mit Hardware
implementiert werden unter Verwendung von diskreten Komponenten,
anwendungsspezifischen integrierten Schaltkreisen (ASICs), digitalen
Signalverarbeitern oder ähnlichem.
Solche Hardware kann z.B. in einem Bildverarbeiter 40 verwirklicht
werden, der physikalisch in die CPU 22 (3A)
integriert werden kann oder ein separates Element sein kann. Wenn
der Bildverarbeiter 40 ein separates Element ist, kann
er im Computer 20 selbst (3B) oder
einer Option-Card 41 verwirklicht werden, die in einen
vorhandenen Computer-Einbauschlitz 42 eingesetzt werden kann
(3c).
-
Die
Bildaufteilungstechniken können
auch unter Verwendung einer Kombination von Software und Hardware
implementiert werden. Verschiedene Aspekte des darunterliegenden
Aufteilungsalgorithmus können
mit Hardware implementiert werden, während andere unter Verwendung
von Software implementiert werden.
-
Demnach
ist jede „Mittel
für"-Formulierung in den
Ansprüchen
so gemeint, um die angemessenen Programmabschnitt(e) der funktional äquivalenten Hardwaregerät(e) zum
Implementieren der beschriebenen Funktion abzudecken.
-
Sich
nun dem darunterliegenden Bildaufteilungsalgorithmus der vorliegenden
Erfindung zuwendend, wird eine Menge von überlappenden Bildern in kleinere
Teile aufgeteilt, so dass nur die sichtbaren Anteile der Bilder übertragen
(d.h. heruntergeladen) werden. Das Aufteilen wird vorzugsweise unter
Verwendung von Rechtecken durchgeführt, da digitale Geräte wie Computer
typischerweise mit Bildern in der Form von Rechtecken arbeiten.
Um den Verbrauch von Übertragungskapazität weiter
zu reduzieren und um weiter die Verarbeitungseffizienz zu verbessern,
wird das Aufteilen vorzugsweise durchgeführt, während die Bilder im teilweise
komprimierten (d.h. Frequenz)-Bereich sind und danach werden die komprimierten
(d.h. Datenstrom)-Daten nur in den aufgeteilten Bereichen übertragen.
-
Es
sollte jedoch bemerkt werden, dass die Erfindung nicht auf eine
besondere Aufteilungsprozedur begrenzt ist. Eher kann jede bekannte
Ausschneideprozedur im räumlichen
Bereich oder im Frequenzbereich verwendet werden, um das tatsächliche
Aufteilen der Bilddaten durchzuführen.
Jedoch wird in den bevorzugten Ausführungsformen das Aufteilen
unter Verwendung einer Ausschneideprozedur im Frequenzbereich durchgeführt, wobei danach
die komprimierten Daten nur in den ausgeschnittenen Bereichen übertragen
werden. Bei JPEG-Bildern werden die Bilddaten vorzugsweise im Frequenz-
oder teilweise komprimierten Bereich verarbeitet unter Verwendung
einer JPEG-Ausschneideprozedur.
-
4 zeigt
ein Flussdiagramm, welches den Prozess des iterativen Bildausschneidealgorithmus der
vorliegenden Erfindung illustriert. Der Algorithmus beginnt in Schritt 41,
bei dem im Stapel von überlappenden
Bildern jedes Bild mit einer unterschiedlichen z-Ordnungszahl bezeichnet
wird, die seine Ordnung im Stapel darstellt. Zum Beispiel können die
z-Ordnungszahlen so aufeinander folgend zugewiesen werden, dass
die niedrigste Zahl (d.h. 0) das am weitesten unten liegende Bild
im Stapel repräsentiert
und die höchste
Zahl (d.h. n – 1)
das am weitesten oben liegende Bild im Stapel repräsentiert, wobei
die Zahl der Bilder im Stapel gleich n ist. Mit diesem Nummerierungsschema
zeigt eine höhere z-Ordnungszahl gewöhnlicher
Weise ein weiter vorne liegendes Bild an. Jedoch kann eine Situation
auftreten, bei der zwei Bilder jeweils ein Bild unmittelbar darunter überlappen,
aber nicht miteinander überlappen.
In diesem Fall wird kei nes der beiden Bilder weiter nach vorne liegend
mit Bezug auf das andere sein, obwohl eines eine höhere z-Ordnungszahl
als das andere hat.
-
Bei
jeder Stufe behält
der Algorithmus eine gegenwärtige
Menge von sichtbaren Rechtecken, die initialisiert ist, das am weitesten
unten liegende Bild (z-Ordnung = 0) zu enthalten im Schritt 42.
Als Herz des Algorithmus wird diese gegenwärtige Menge von sichtbaren
Rechtecken iterativ durch das Bild mit der nächsten z-Ordnung aufgeteilt. Diese nächste z-Ordnung
wird durch eine inkrementierte Variable i bezeichnet, die im Schritt 43 auf
1 initialisiert wird.
-
Als
nächstes
wird die gegenwärtige
Menge von sichtbaren Rechtecken mit dem Bild, das eine z-Ordnungszahl
von i hat, verglichen, um den Überlappungsbereich
zu bestimmen. Nach dem Bestimmen der Überlappungsbereiche werden
alle nicht überlappenden
Anteile von allen Rechtecken im gegenwärtig sichtbaren Bereich aufgeteilt,
um die nächste
Menge von Rechtecken zu bilden. Das Bild mit der z-Ordnungsnummer von
i wird auch zu dieser Menge hinzugefügt, und diese Menge wird die
gegenwärtige
Menge von sichtbaren Rechtecken für die nächste Iteration, bei der i
auf i + 1 erhöht
wird. Dieser Prozess setzt sich fort, wobei das nächste Bild
in der z-Ordnung mit der vorher erzeugten (d.h. „gegenwärtigen") Menge von sichtbaren Rechtecken verglichen
wird, um eine „neue" Menge von sichtbaren Rechtecken
zu erzeugen, bis alle Bilder betrachtet worden sind. Nachdem das
letzte (d.h. am weitesten oben liegende) Bild betrachtet wird und
das finale Aufteilen beendet ist, wird eine endgültige Menge von Rechtecken
erzeugt, die nur die sichtbaren Anteile des Stapels von Bildern
repräsentiert.
-
Demnach
kann Schritt 44 allgemein als das Vergleichen der gegenwärtigen Menge
von sichtbaren Rechtecken mit einem Rechteck beschrieben werden,
das eine z-Ordnung von i hat (d.h. das am nächsten nach vorne liegende
Bild im Stapel), um den Überlappungsbereich
zu bestimmen. Im ersten Vergleich besteht die gegenwärtige Menge
von sichtbaren Rechtecken nur aus dem am weitesten unten gelegenen
Bild. Schritt 45, der allgemeiner beschrieben wird, beinhaltet
das Auf teilen des nicht überlappten
Anteils von jedem teilweise überlappten
Rechteck in der gegenwärtigen
Menge von sichtbaren Rechtecken, um die nächste Menge von sichtbaren. Rechtecken
zu bilden, die auch das Bild mit der z-Ordnung i einschließt.
-
Nach
jeder Stufe des Aufteilens bestimmt der Algorithmus, ob alle Bilder
im Stapel im Aufteilungsprozess betrachtet worden sind, oder nicht
(Schritt 46). Wenn nicht, wird i im Schritt 47 um
1 erhöht
und der Algorithmus geht zum Schritt 44 zurück, um das am
nächsten
nach vorne liegende Bild im Stapel mit der „gegenwärtigen Menge" von sichtbaren Rechtecken
zu vergleichen. Der Prozess setzt sich fort, bis alle Bilder/Rechtecke
betrachtet worden sind und das Aufteilen beendet ist, wobei dann
eine weitere Verarbeitung der finalen Menge von sichtbaren Rechtecken
im Schritt 48 durchgeführt
werden kann. Eine solche weitere Verarbeitung kann z.B. das Zusammenfügen in größere Rechtecke
von benachbarten Rechtecken umfassen, die zum selben Bild gehören, wenn
es effizient ist, dies zu machen.
-
Danach
werden in Schritt 49 nur die Daten in der endgültigen Menge
von Rechtecken, die nur die sichtbaren Anteile des Stapels von Bildern
repräsentieren, übertragen,
um Übertragungskapazität zu sparen
und die Verarbeitungseffizienz zu verbessern. Wie oben bemerkt wird
das Aufteilen bevorzugt durchgeführt,
während
die Bilder im teilweise komprimierten (d.h. Frequenz)-Bereich sind.
Demnach extrahiert der Algorithmus bei den bevorzugten Ausführungsformen,
nachdem die finale Menge von Rechtecken erzeugt ist, die komprimierten
Daten aus dem ausgeschnittenen (d.h. aufgeteilten Bereich), der durch
die finale Menge von Rechtecken dargestellt wird. Der Algorithmus
sendet dann diese Daten in komprimierter Form. Das Durchführen der
Aufteilung im teilweise komprimierten Bereich und das Übertragen
im komprimierten Bereich resultiert in einer zusätzlichen Verringerung der Übertragungskapazität und einer
weiteren. Verbesserung der Verarbeitungseffizienz.
-
Bei
einer gegebenen Menge von überlappenden
Bildern betrachtet jede Stufe des Aufteilens nur die „gegenwärtige" Menge von sichtbaren
Rechtecken mit Bezug auf das Rechteck/Bild, das die nächsthöhere z-Ordnung
im Stapel hat. Jedes teilweise überlappte
Rechteck in der „gegenwärtigen" Menge von sichtbaren
Rechtecken wird in kleinere Rechtecke aufgeteilt, basierend auf
dem Rechteck/Bild, das eine z-Ordnung i hat, um eine „neue" Menge von sichtbaren
Rechtecken zu erzeugen, die das Rechteck einschließt, das
durch die z-Ordnung i definiert ist. Diese „neue" Menge von Rechtecken, die nun die „gegenwärtige" Menge von Rechtecken wird,
wird dann mit dem nächsten
Rechteck/Bild. im Stapel verglichen. Weiteres Aufteilen der nicht überlappten
Anteile von jedem teilweise überlappten Rechteck
in der „gegenwärtigen" Menge führt zu einer „neuen" Menge von Rechtecken.
-
Ein „früheres" Rechteck in der „gegenwärtigen" Menge wird nur aufgeteilt,
wenn ein „neues" Rechteck sich vor
ihm befindet und wenn das „neue" Rechteck teilweise
das „frühere" Rechteck überlappt. Das „frühere" Rechteck kann das
Resultat eines vorangegangenen Aufteilens gewesen sein. Der Algorithmus
nimmt vorzugsweise seine Entscheidung über das Aufspalten eines „früheren" Rechtecks nicht zurück. Wenn
ein „früheres" Rechteck aufgespalten werden
soll, ist es von einer Rechenperspektive aus vorteilhaft, das „frühere" Rechteck so aufzuspalten, dass
die resultierenden kleineren Rechtecke ungefähr die gleiche Fläche haben.
-
Wie
oben bemerkt ist das Rechteck die bevorzugte Form des Aufteilens,
da Computer typischerweise mit Bildern in Rechteckform umgehen. Demnach
werden in einer bevorzugten Ausführungsform
Rechtecke nicht in unregelmäßige Polygonstücke aufgeteilt,
bei denen die Kanten der Stücke
zufällige
Liniensegmente sind. Vielmehr sind die Kanten der aufgespaltenen
Stücke
entweder horizontal oder vertikal. Gegeben Rechtecke A und B, wobei
A vor B liegt, werden die Stücke,
in welche das Rechteck B aufgeteilt wird, Kanten haben, die mit
einer der Kanten von A und/oder B ausgerichtet sind. Der Algorithmus
nimmt auch an, dass die Rechtecke nicht gedreht sind.
-
Wie
in den 5A–5Q dargestellt,
gibt es siebzehn. Arten, auf welche zwei Rechtecke A und B zueinander
positioniert werden können.
In jedem Fall, in dem zwei Rechtecke überlappen, ist das obere Rechteck
schraffiert. Der Algorithmus behandelt jeden dieser Fälle separat,
wenn er eine Entscheidung bzgl. Aufteilens macht. Einige der Fälle sind ähnlich (der
einzige Unterschied ist, dass sie um ein Vielfaches von 90° gedreht
sind). In den Fällen
1 und 2 (5A bzw. 5B) wird
das am weitesten unten gelegene Rechteck B nicht aufgeteilt, da
es keine nicht überlappten
Anteile zum Aufteilen gibt. Im Fall 1 gibt es keine Schnittmenge
und im Fall 2 wird das untere Rechteck vollständig durch das obere Rechteck abgedeckt.
In jedem der übrigen
Fälle 3–17 wird
das untere Rechteck aufgeteilt, wie in den 5C–5Q jeweils
gezeigt. Wenn das obere Rechteck so positioniert ist, dass das untere
Rechteck in mehr als ein neues Rechteck aufgeteilt wird (5C–5G und 5L–5O),
werden gestrichelte Linien hinzugefügt, um die Aufteilung zu zeigen.
-
Gegeben
eine Menge von N Bildern, kann dieses Schema bis zu O(N2)
Operationen benötigen, um
zum Ende zu kommen. Darüber
hinaus kann die Zahl der Rechtecke mit einer theoretischen oberen Schranke
von O(N2) wachsen, wobei N die Zahl der Bilder
ist und O die Standardnotation, die in der Komplexitätstheorie
verwendet wird. Obwohl es unwahrscheinlich ist, dass solch eine
Situation in der Praxis auftritt, ist, um das Erzeugen einer exzessiv
hohen Anzahl von Rechtecken zu vermeiden, der Algorithmus vorzugsweise
so entworfen, das Aufteilen zu beenden, sobald eine maximale Anzahl
von Rechtecken, beispielsweise 100, überschritten worden ist. Sobald
das voreingestellte Maximum erreicht wird, beendet der Algorithmus
das Aufteilen und führt
eine finale Verarbeitung durch und sendet die Daten, wie sie sind.
Das heißt,
dass Bilder mit höherer
z-Ordnung in voller Größe gesendet
werden zusammen mit der gegenwärtigen
(und in diesem Fall letzten) Menge von sichtbaren Rechtecken.
-
Wie
die vorangegangene Beschreibung zeigt, sind die Bildaufteilungstechniken
der vorliegenden Erfindung besonders gut geeignet zum Gebrauch in
Verbindung mit Online-Graphikanwendungen, bei denen ein Benutzer
mit mehreren überlappenden
Bildern arbeitet. Der Aufteilungsalgorithmus kann unter Verwendung
von Software, Hardware oder einer Kombination davon implementiert
werden. Dies bedenkend sollte es sich verstehen, dass die Block-
und Flussdiagramme, die verwendet werden, um die Techniken der vorliegenden
Erfindung zu illustrieren, die Durchführung von bestimmten spezifizierten
Funktionen und Beziehungen zwischen ihnen zeigen. Die Grenzen dieser
funktionalen Blöcke
sind hier beliebig definiert worden, der Einfachheit der Beschreibung
halber. Alternative Grenzen können
definiert werden, solange die spezifizierten Funktionen durchgeführt werden
und die Beziehungen zwischen den Funktionen angemessen aufrechterhalten
werden. Die Diagramme und begleitende Beschreibung stellen die funktionale
Information bereit, die ein Fachmann benötigen würde, um ein System zu implementieren,
um die benötigte
Verarbeitung durchzuführen.
Jede der Funktionen, die in den Block- und Flussdiagrammen dargestellt
wird, kann z.B. durch Software, funktional äquivalente Hardware oder eine Kombination
davon implementiert werden.
-
Während Ausführungsformen
der Erfindung beschrieben worden sind, werden im Lichte der vorangegangenen
Beschreibung viele weitere Alternativen, Modifikationen und Variationen
für Fachleute einleuchtend
sein. Die hier beschriebene Erfindung ist so intendiert, dass sie
alle solche Alternativen, Modifikationen, Anwendungen und Variationen
umfasst, die in den Umfang der angehängten Patentansprüche fallen.