Verfahren zum Komprimieren und Dekomprimieren von Daten eines Datenstromes
Stand der Technik
Die Erfindung geht aus von einem Verfahren zum Komprimieren von Daten eines Datenstromes.
In der DE 101 06 502.7 wird ein Verfahren zum Übertragen von Routendaten beschrieben. Die Routendaten umfassen Knoten in Form von Wegepunktdaten mit dazwischen liegenden Kanten (Wegen) sowie zugehörige Attribute. Die einzelnen egepunkte eines Routenkorridors sind so miteinander verknüpft, dass ein möglichst geringes Datenvolumen erzeugt wird. Vorzugsweise werden die Wegepunktdaten sequentiell übertragen.
In der DE 101 05 897.7 ist ein Verfahren zum Austausch von Navigationsdaten zwischen einem Endgerät und einer Zentrale beschrieben mit einer Segmentierung und einer Übertragung von Teilrouten zwischen einem Start- und Zielpunkt. Offboard- Navigationsgeräte nach diesem Verfahren berechnen Routeninformationen nicht autark, sondern fragen diese über eine geeignete (Funk)-Schnittstelle von einem Server an, der sie dann zum Navigationsgerät überträgt.
Aus der DE 100 12 441 C2 ist ein Verfahren τm Zieleingabe an einem Navigationsgerät bekannt. Zur Reduzierung des Verarbeitungsaufwandes werden dort nur solche Zielnamen aufgenommen, die im Umkreis des aktuellen Standortes liegen. Außerdem werden in einer Zielnamenliste die Ziele nach der Entfernung sortiert.
Vorteile der Erfindung
Beim Verfahren nach der Erfindung werden Daten eines Datenstromes unterschiedlichen Informationsgehaltes, insbesondere Routendaten die aus.topografischen Knoten (Wegepunkten) und Kanten (Verbindungswegen) sowie deren Attributen (Straßennamen, Straßenklassen, usw.) bestehen, komprimiert, wobei der Komprimierungsgrad in Abhängigkeit des Informationsgehaltes der Daten konfigurierbar ausgebildet ist und wobei die Komprimierung dadurch erfolgt, dass vorgegebene Attribute weggelassen werden, die Genauigkeit begrenzt wird, z.B. hinsichtlich der Koordinatengenauigkeit, oder eine maximale Datenmenge vorgegeben wird mit entsprechender Steuerung des Komprimierungsgrades .
Im Gegensatz zu bekannten Komprimierungsverfahren, bei denen Daten ungeachtet ihrer Bedeutung bzw. ihres Informationsgehaltes komprimiert werden, werden bei der Erfindung die Daten interpretiert und durch Kenntnis ihrer Bedeutung insbesondere redundante Elemente eliminiert.
Optionale Datenfelder, beispielsweise in einem vorgegebenen Datenformat zur Übertragung von Routeninformationen gemäß der DE 101 06 502.7, können optimal genutzt werden.
Das Verfahren nach der Erfindung eignet sich vorteilhaft für die Komprimierung von Routendaten, kann aber auf allen möglichen Daten angewandt werden, vorzugsweise auf Daten, die in ihrer Struktur aus Graphen bestehen, also aus Polygonzügen mit topografischen Knoten und Kanten, z.B. Kartendaten, CAD-Zeichnungen.
Das erfindungsgemäße Verfahren zur Komprimierung wird insbesondere für Offboard- Navigationssysteme vorzugsweise auf einem Server bei einem Diensteanbieter eingesetzt, das Dekomprimieren bzw. Entschlüsseln der Daten vorzugsweise auf der Endgeräte-Seite bzw. beim Client.
In den Unteransprüchen sind vorteilhafte Weiterbildungen des erfindungsgemäßen Verfahrens zum Komprimieren bzw. zum Dekomprimieren aufgezeigt. Weitere Vorteile des Verfahrens sind insbesondere in folgenden Punkten zu sehen: 1. Die Größenreduktion der verarbeiteten Daten, wodurch Übertragungsmedien mit geringen Datenraten gut genutzt werden können.
2. Die geringe Komplexität des Komprimierungs- bzw. Dekomprimierungsalgorithmus, so dass sich dieses Verfahren z.B. auch für prozessorschwache Endgeräte mit wenig Arbeitsspeicher eignet.
3. Das Komprimierungsverfahren kann streng sequentiell ausgestaltet sein, das heißt bereits während der Komprimierung können Teildatensätze gespeichert bzw. übertragen werden.
4. Bei einem sequentiellen Aufbau der komprimierten Daten wird eine Dekomprimierung bereits auf Teildatensätzen noch während der Übertragung ermöglicht.
5. Da nicht wie bei vielen anderen Komprimierungsverfahren eine komplette Tabelle mit häufig vorkommenden Datenelementen am Anfang oder am Ende der Daten stehen muss, sondern die einzelnen Elemente an der Stelle eingefügt sind, wo sie erstmalig benötigt werden, ist zu jedem Zeitpunkt der Übertragung eine maximale Anzahl Datenelemente verfügbar.
Zeichnungen
Anhand der Zeichnungen werden Ausführungsbeispiele der Erfindung erläutert. Es zeigen
Figur 1 eine sequentielle Abarbeitung eines Routengraphen,
Figur 2 ein Blockschaltbild eines Komprimierungsprozesses unter Nutzung eines
Assoziativspeichers ,
Figur 3 die Komprimierung eines Attributwertes,
Figur 4 ein Beispiel für eine Routengraphen.
Beschreibung von Ausführungsbeispielen
Das Verfahren nach der Erfindung geht davon aus, dass topografische Routen- bzw. Kartendaten aus Wegepunkten (Knoten) und Straßenzügen (Kanten) bestehen, die als gerichtete Verbindungen zwischen den Knoten erzeugt wurden. Weiterhin unterliegen die Knoten und damit die Kanten einer Reihenfolge, die bei Routendaten vorteilhafter Weise vom Startpunkt in Richtung Ziel besteht.
Wegepunkte besitzen im allgemeinen ein oder mehrer der folgenden Attribute:
Koordinaten - Eindeutige Kennung (ID)
Kanten besitzen im allgemeinen ein oder mehrere der folgenden Attribute:
Straßenname
Straßenklasse
Zielführungsanweisung (grafisch und/oder akustisch)
Zielknoten (Verweis auf Wegpunkt)
Fahrdauer - Weglänge
Eindeutige Kennung (ID)
In dem verwendeten Datenformat wird für geeignete dieser Attribute das heißt diejenigen, die optional übertragen werden, z.B. IDs bzw. diejenigen, die eine große Redundanz aufweisen, z.B. Straßennamen und Zielführungsanweisungen jeweils ein Indikator definiert, der zwei oder mehrere der folgenden Werte annehmen kann:
Datenelement ist nicht vorhanden (bzw. gleich Default-Wert) (N.V.)
Datenelement ist gleich dem des Vorgängers (Vorgänger)
Datenelement ist gleich dem des x-ten Elements →lndex x folgt (Index) Datenwert des Elementes folgt (Explizit).
Vorteilhafter Weise werden die Indikatoren für je einen zu übertragenden Wegpunkt/eine zu übertragende Kante zu einem Bitfeld zusammengefasst.
Der Komprimierungsalgorithmus geht nun sequentiell und insbesondere iterativ alle vorhandenen Wegepunkte durch, vgl. Figur 1:
1. Übertragen der Punktattribute eines aktuellen Punktes (Ablaufpunkt 3) nach dem Start 1 und der Zuordnung 2 (aktueller Punkt gleich erster Wegepunkt)
2. Merken des aktuellen Punktes als Vorgängerpunkt (Ablaufpunkt 4)
3. Iterativ über alle vom aktuellen Punkt ausgehenden Kanten, vorzugsweise beginnend bei der Hauptroute (Ablaufpunkt 5)
3b. Übertragen der Kantenattribute der aktuellen Kante (Ablaufpunkt 6) 3b. Merken der aktuellen Kanten der als Vorgängerkante (Ablaufpunkt 7)
4. Vorzugsweise Merken der ersten vom aktuellen Punkt ausgehenden Kante (Hauptroute) als Vorgängerkante (Ablaufpunkt 9).
Beim Ablaufpunkt 8 wird untersucht, ob der aktuelle Punkt weitere Kanten hat. Falls ja, wird als aktuelle Kante die nächste Kante des aktuellen Punktes gewählt und das Verfahren bei Ablaufpunkt 6 fortgesetzt.
Beim Ablaufpunkt 10 wird überprüft, ob weitere Punkte vorhanden sind. Ist dies nicht der Fall, wird der Ablauf beendet. Andernfalls wird der nächste Punkt als aktueller Punkt definiert und der Ablauf bei Ablaufpunkt 3 erneut fortgesetzt.
Die eigentliche Komprimierung geschieht bei der Übertragung der Attribute. Hierzu verfügt der Komprin-derangsalgorithmus für jedes Attribut, für das ein Indikator definiert ist, der den Wert Index annehmen kann über einen Assoziativspeicher 27 (Figur 2). Der Algorithmus weist jedem Attributwert die Nummer des Elements (Punkt/Kante) zu, bei dem dieser Wert zuerst vorkommt. Also z.B. „Robert-Bosch-Straße" → 5 was bedeutet, dass der Straßenname „Robert-Bosch-Straße" an der 5. Kante zuerst vorgekommen ist. Der Attributivspeicher 27 wird als Zwischenspeicher genutzt, während der Komprimierung angelegt und hinterher wieder gelöscht. Alternativ kann den Attributwerten auch die Elementnummer im Speicher zugeordnet werden, also z.B. 3, wenn der entsprechende Attributwert als drittes in den Speicher eingefügt wurde. Der Komprimierungsprozess 28 ist direkt mit dem Assoziativspeicher 27 verknüpft. Die Eingangsdaten sind die unkomprimierten Routendaten und die Ausgangsdaten die komprimierten Routendaten 30.
Bevor die eigentlichen Punkt-/Kantenattributwerte in den komprimierten Datenbereich übertragen werden, wird für jedes Element der Indikator bestimmt, um dann anstatt des Wertes gegebenenfalls nur noch einen Verweis auf das Vorgängerelement oder einen Verweis auf ein beliebiges anderes Element zu übertragen.
Den detaillierten Ablauf für jedes einzelne Attribut eines Wegepunktes/einer Kante beschreibt Figur 3. Gemäß Figur 3 wird zuerst geprüft, ob ein Indikator für ein Attribut definiert ist (Ablaufpunkt 12). Falls ja, wird überprüft, ob der Attributwert gefüllt bzw. gültig ist (Ablaufpunkt 13). Wenn nicht, wird ein Indikator als N.V. definiert, das heißt der Attributwert bleibt leer (Ablaufpunkt 14). Andernfalls wird geprüft, ob der aktuelle Attributwert gleich dem des Vorgängerelements ist (Ablaufpunkt 15). Ist dies der Fall, wird der Attributwert dieses Elements gleich dem Vorgängerelements definiert (Ablaufpunkt 16). Ansonsten wird geprüft, ob ein „Index" als zulässiger Wert für einen aktuellen Indikator vorgesehen ist (Ablaufpunkt 17). Ist dies der Fall, wird geprüft, ob der
entsprechende Attributwert im Assoziativspeicher vorhanden ist (Ablaufpunkt 18). Im positiven Fall wird zum Indikator ein Index definiert (Ablaufpunkt 19). Im negativen Fall wird der Attributwert bzw. seine Elementnummer gespeichert (Ablaufpunkt 20). Der Indikator wird als „Explizit" definiert, das heißt unkomprimiert verarbeitet (Ablaufpunkt 21). Anschließend werden die Indikatoren für die drei Fälle nach den Ablaufpunkten 21, 19 und 14 in den Speicher geschrieben (Ablaufpunkte 22, 23 und 24) und nachfolgend der Attributwert geschrieben (Ablaufpun-kt 25) bzw. die Elementnummer (Ablaufpunkt 26).
Die Dekomprimierung geht beim Lesen in derselben Reihenfolge sequentiell durch die Daten, das heißt iterativ über alle Wegpunkte und Kanten und speichert die einzelnen Wegpunkt- und Kantenelemente in jeweils einer Tabelle in der Reihenfolge des Auftretens. Der Dekomprimierungsgrad ist in Abhängigkeit des Informationsgehaltes der Daten konfigurierbar ausgebildet unter Berücksichtigung der bei der Komprimierung getroffenen Maßnahmen (siehe dortige Beschreibung). Beim Lesen der einzelnen Attributwerte aus den komprimierten Daten wird anhand der gelesenen Indikatorwerte folgendermaßen vorgegangen: Indikator ist gleich
N.V.: Attributwert bleibt leer, bzw. bekommt Defaultwert zugewiesen
Vorgänger: Attributwert dieses Elements wird gleich dem des Elements eine Zeile vorher in der Tabelle gesetzt
Index: Index i wird aus den komprimierten Daten gelesen und der Attributwert wird gleich dem des n-ten Elementeintrags in der Tabelle gesetzt
Explizit: Attributwert wird unkomprimiert aus den Daten gelesen.
In vorteilhafter Weise kann der Komprimierungsalgorithmus, z.B. von einem Client, konfiguriert werden, so dass (vom Client) die Art der Komprimierung und/oder der Komprimierungsgrad vorgegeben werden, wodurch Daten eingespart werden können. Folgende Konfigurationsmöglichkeiten sind einzeln oder in Kombination möglich:
Weglassen von Informationen, die z.B. (vom Client) nicht verarbeitet werden können, z.B. Kanten IDs
Vorgabe von Genauigkeiten, die z.B. für eine Applikation, die die dekomprimierten
Daten nutzt, nicht benötigt werden, z.B.:
Koordinatengenauigkeit
Vorgabe einer maximalen Größe der komprimierten Daten, wodurch der
Komprimieralgorithmus die Kompression bei Erreichen des vorgeschriebenen
Kriteriums abbricht, z.B. max x kByte Datenmenge max x Meter Länge der Hauptroute max x Minuten Fahrtzeit der Hauptroute
Das Verfahren nach der Erfindung kann vorteilhafter Weise in einem oder mehreren der folgenden Verfahren zur Größenreduktion der Routen-/Kartendaten kombiniert werden: Verringerung der Koordinatendaten dadurch, dass die Koordinatengenauigkeit (Auflösung der Wegepunkte) generell eingeschränkt wird und weiterhin, sofern möglich, für einen Wegpunkt nicht seine absoluten Koordinaten sondern seine relative Entfernung als Vektor zum zuvor übertragenen Wegpunkt übertragen/gespeichert wird
Ersetzen von häufig vorkommenden Begriffen durch nicht anderweitig verwendete Sonderzeichen, z.B. „Straße" durch „Paragraphzeichen". Diese Begriffsersetzung ist unabhängig von bestimmten Routen-/Kartendaten und wird vorab definiert Weiteres Komprimieren der nach diesem Verfahren reduzierten Daten durch einen anderen allgemeinen Komprimierung'salgorithmus
Nachfolgend wird ein konkretes Ausführungsbeispiel beschrieben.
In Figur 4 ist exemplarisch ein Routengraph dargestellt:
Die Hauptroute verläuft vom Punkt Pl über die Kanten Kl, K2 und K5 zu Punkt P6. Alle drei Kanten haben den Straßennamen „Robert-Bosch-Straße" und die Straßenklasse 3.
An Punkt P2 beginnt ein Abzweig über die Kanten K3, K4, die zur Hildesheimer Straße gehören und der Straßenklasse 5 zugeordnet sind.
Für die Übertragung wird für die Straßennamen ein Indikator vereinbart, der die Werte Explizit, Vorgänger und Index annehmen kann. Für die Straßenklasse analog ein Indikator mit den möglichen Werten Explizit und Vorgänger.
Nach Durchlaufen des Komprimieralgorithmus ergeben sich die in der folgenden Tabelle dargestellten Werte für die Übertragung/Speicherung. Der Einfachheit halber sind hier nur die zu übertragenden speichernden Attribute der Kanten dargestellt.