-
HINTERGRUND DER ERFINDUNG
-
Moderne Fahrzeuge können mithilfe der V2X-Kommunikation Daten zu anderen Fahrzeugen, zentralen Servern und/oder Infrastrukturentitäten entlang der Straßen (wie etwa Ampeln) übertragen. In Fahrzeugen können Daten zwischen Sensoren und ECUs, Infotainmentsystemen usw. übertragen werden. Die erforderliche Bandbreite zwischen Sendern und Empfängern kann sehr groß sein. Der Bedarf an mehr Bandbreite für den Austausch großer Datenmengen zwischen Systemen hat dazu geführt, dass Systeme Gigabytes an Daten in Sekunden bearbeiten können.
-
Informationen, die zwischen Systemen ausgetauscht werden, können auf symbolische Weise gesendet werden, wodurch die erforderlichen Bandbreiten reduziert werden können, das heißt es werden Informationen, die die Daten repräsentieren, aber nicht die Daten selbst übertragen. Dies ist die Basis vieler Komprimierungstechnologien.
-
Falls jedoch die Komprimierung und Dekomprimierung für Datenblöcke erfolgt, kann der Echtzeitcharakter der Datenübertragung verloren gehen, wenn die Datenblöcke zu groß sind. Wenn die Datenblöcke zu klein sind, ist die Komprimierung möglicherweise nicht effizient.
-
Ein anderer Ansatz besteht darin, eine Wahrscheinlichkeitstheorie anzuwenden, um die maximale bis minimale Häufigkeit des Auftretens der Datenentitäten zu ermitteln und jeder der Datenentitäten ein Symbol- oder Codewort zuzuweisen, sodass eine Datenentität mit der maximalen Häufigkeit des Auftretens das Symbol- oder Codewort mit der geringsten Größe aufweist und eine Datenentität mit der geringsten Häufigkeit des Auftretens das Symbol- oder Codewort mit der maximal benötigten Größe aufweist. Die Beziehung zwischen Symbol- oder Codewörtern und den Datenentitäten kann in einer Wörterbuch-Nachschlagetabelle gefunden werden. Diese Komprimierungstechnik wird für viele verlustfreie Datenkomprimierungsalgorithmen wie LZW und Huffman-Code verwendet.
-
Die Häufigkeit des Auftretens von Datenentitäten kann jedoch im Laufe der Zeit variieren, was dazu führen kann, dass die Wörterbuch-Nachschlagetabelle ungültig oder weniger effizient ist.
-
ZIEL DER ERFINDUNG
-
Das Ziel der Erfindung besteht darin, die Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen in einem Fahrzeug zu optimieren.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Das Ziel der Erfindung wird durch ein Verfahren nach Anspruch 1, einen Sender nach Anspruch 7 und ein System nach Anspruch 9 erfüllt.
-
Hierbei wird ein Verfahren zur kontinuierlichen Optimierung der Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen für die Kommunikation zwischen einem Sender in einem Fahrzeug und einem Empfänger bereitgestellt, das die folgenden Schritte aufweist:
- - Bereitstellen einer ersten und einer zweiten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle in dem Sender;
- - Empfangen eines Datenblocks in dem Sender;
- - Komprimieren des Datenblocks in dem Sender unter Verwendung der ersten Tabelle;
- - Aktualisieren eines Inhalts der zweiten Tabelle unter Verwendung des Datenblocks und Berechnen einer Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und einer Komprimierungseffizienz der zweiten Tabelle für den Datenblock;
- - Übertragen des komprimierten Datenblocks zu dem Empfänger; und
- - wenn die Differenz mehr als einen vordefinierten Schwellenwert beträgt, Ersetzen eines Inhalts der ersten Tabelle durch einen Inhalt der aktualisierten zweiten Tabelle in dem Sender und Übertragen des Inhalts der aktualisierten zweiten Tabelle zu dem Empfänger.
-
Der Sender kann Teil eines Sensors oder einer elektronischen Steuereinheit (ECU) in einem Fahrzeug sein. Die Daten können Sensordaten oder/und Steuerdaten sein. Der Empfänger kann Teil eines anderen Sensors oder einer anderen ECU im selben Fahrzeug sein. Der Empfänger kann sich somit im selben Fahrzeug wie der Sender befinden. In einer oder mehreren Ausführungsformen kann sich der Empfänger außerhalb des Fahrzeugs befinden, in dem sich der Sender befindet.
-
Die Kommunikation zwischen dem Sender und dem Empfänger kann auf einem drahtgebundenen Kommunikationsprotokoll wie etwa Ethernet oder CAN basieren, oder sie kann auf einem drahtlosen Kommunikationsprotokoll wie etwa 4G/5G oder WiFi oder V2X-Kommunikation basieren.
-
Ein Fahrzeug kann ein Auto, ein Motorrad, ein Kleintransporter oder ein LKW sein. Es kann auch ein Fahrrad oder ein Scooter sein.
-
Die Formulierung „Kontinuierliche Optimierung der Datenkomprimierung“ gibt an, dass, während Datenblöcke kontinuierlich komprimiert und übertragen werden, dieselben Datenblöcke gleichzeitig zum Aktualisieren der Wörterbuch-Nachschlagetabelle verwendet werden, um die Komprimierung der nächsten Datenblöcke effizienter zu gestalten.
-
Daher kann der Schritt des Komprimierens des Datenblocks in dem Sender und/oder der Schritt des Übertragens des komprimierten Datenblocks zu dem Empfänger gleichzeitig mit dem Schritt des Aktualisierens eines Inhalts der zweiten Tabelle und/oder dem Schritt des Berechnens der Differenz ausgeführt werden.
-
Eine häufigkeitsbasierte Wörterbuch-Nachschlagetabelle ist eine Tabelle, die Datenentitäten mit Codewörtern verknüpft. Dabei bezieht sich eine Länge oder Größe eines Codeworts für eine Datenentität auf die Häufigkeit des Auftretens der Datenentität in den Daten. Die Tabelle kann auf Huffman-Codierung basieren. Es werden zwei Tabellen bereitgestellt, d. h. eine erste und eine zweite häufigkeitsbasierte Wörterbuch-Nachschlagetabelle.
-
Die empfangenen Datenblöcke können Datenentitäten aufweisen, die in der ersten Tabelle aufgeführt sind, und können Datenentitäten aufweisen, die nicht in der ersten Tabelle aufgeführt sind.
-
Beim Komprimieren der Datenblöcke können die in der ersten Tabelle aufgeführten Datenentitäten durch ihre entsprechenden Codewörter ersetzt werden. Die Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, werden nicht ersetzt und in ihrer ursprünglichen Form übertragen. Die komprimierten Datenblöcke können daher Codewörter und die Datenentitäten, die nicht ersetzt wurden, aufweisen.
-
Die empfangenen Datenblöcke werden nicht nur komprimiert, sondern auch zum Aktualisieren einer zweiten Tabelle verwendet. Basierend auf der Häufigkeit des Auftretens von Datenentitäten in den empfangenen Datenblöcken wird die zweite Tabelle angepasst oder aktualisiert. Dies kann das Hinzufügen oder Entfernen einer oder mehrerer Datenentitäten zu bzw. aus der zweiten Liste und/oder das Ändern des entsprechenden Codeworts für eine oder mehrere Datenentitäten in der zweiten Liste einschließen.
-
Eine Komprimierungseffizienz einer Tabelle gibt an, in welchem Umfang die Datenblöcke unter Verwendung dieser Tabelle komprimiert wurden oder um wie viel kleiner die Bitgröße der unter Verwendung dieser Tabelle komprimierten Datenblöcke in Bezug auf die unkomprimierten Datenblöcke ist. Die Komprimierungseffizienz kann daher als die Differenz in der Bitgröße zwischen den komprimierten Datenblöcken und den unkomprimierten Datenblöcken geteilt durch die Bitgröße der unkomprimierten Datenblöcke definiert werden.
-
Es kann der Fall sein, dass für die empfangenen Datenblöcke die Komprimierungseffizienz der zweiten Tabelle höher ist als die Komprimierungseffizienz der ersten Tabelle. In diesem Fall wird ein Inhalt der ersten Tabelle durch einen Inhalt der zweiten Tabelle ersetzt. Mit anderen Worten wird die erste Tabelle mit der zweiten Tabelle identisch. Mit dieser ersten Tabelle werden die nächsten empfangenen Datenblöcke komprimiert, während die zweite Tabelle unter Verwendung der nächsten empfangenen Datenblöcke aktualisiert wird. Der Inhalt der aktualisierten zweiten Tabelle wird ebenfalls zu dem Empfänger übertragen, da für eine Dekomprimierung im Empfänger eine Kopie der für die Komprimierung verwendeten Tabelle benötigt wird.
-
Da die zweite Tabelle basierend auf den empfangenen Daten erzeugt wird, kann erwartet werden, dass für die empfangenen Datenblöcke tatsächlich die Komprimierungseffizienz der zweiten Tabelle höher ist als die Komprimierungseffizienz der ersten Tabelle. Wenn der Inhalt der ersten Tabelle durch den Inhalt der aktualisierten zweiten Tabelle ersetzt wird, kann keine Komprimierung von Datenblöcken stattfinden. Das Ersetzen des Inhalts wirkt sich daher negativ auf die Menge der übertragenen Daten pro Zeiteinheit aus. Darüber hinaus erfordert das Übertragen des Inhalts der aktualisierten zweiten Tabelle zu dem Empfänger auch eine gewisse Bandbreite, was sich auch negativ auf die Menge der übertragenen Daten pro Zeiteinheit auswirkt.
-
Daher wird nur für den Fall, dass eine Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und der zweiten Tabelle mehr als ein vordefinierter Schwellenwert ist, der Inhalt der ersten Tabelle ersetzt und der Inhalt der aktualisierten zweiten Tabelle zu dem Empfänger übertragen. Dies begrenzt das Auftreten der beiden oben genannten negativen Effekte.
-
Das Ersetzen des Inhalts der ersten Tabelle durch den Inhalt der aktualisierten zweiten Tabelle kann die Komprimierungseffizienz verbessern und sich daher positiv auf die Menge der übertragenen Daten pro Zeiteinheit auswirken.
-
Der vordefinierte Schwellenwert kann so gewählt werden, dass der oben erwähnte positive Effekt nicht durch die beiden oben genannten negativen Effekte aufgehoben wird.
-
In einer oder mehreren Ausführungsformen weist das Verfahren ferner die folgenden Schritte auf:
- - Bereitstellen einer Kopie der ersten Tabelle in dem Empfänger;
- - Empfangen des komprimierten Datenblocks in dem Empfänger;
- - Dekomprimieren des empfangenen komprimierten Datenblocks in dem Empfänger unter Verwendung der Kopie;
- - Empfangen des Inhalts der aktualisierten zweiten Tabelle in dem Empfänger; und
- - Ersetzen eines Inhalts der Kopie durch den empfangenen Inhalt der aktualisierten zweiten Tabelle in dem Empfänger.
-
In einer oder mehreren Ausführungsformen weist der Datenblock Datenentitäten, die in der ersten Tabelle aufgeführt sind, und/oder Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, auf, und wobei der komprimierte Datenblock Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, und/oder Codewörter, die die in der ersten Tabelle aufgeführten Datenentitäten ersetzen, aufweist.
-
In einer oder mehreren Ausführungsformen basiert das Komprimieren und/oder Dekomprimieren auf der Huffman-Datenkomprimierung.
-
Es wird ein Computerprogramm bereitgestellt, wobei das Computerprogramm dazu eingerichtet ist, ein beliebiges der in diesem Dokument beschriebenen Verfahren durchzuführen, während das Computerprogramm auf einem Computer ausgeführt wird.
-
Es wird ein computerlesbares Speicherungsmedium bereitgestellt, das einen Satz von ausführbarem Steuereinheit-Code speichert, der, wenn er in einer Vorrichtung, auf einem Verarbeitungssystem oder in einem Digitalsignalprozessor ausgeführt wird, ein beliebiges der in diesem Dokument beschriebenen Verfahren durchführt.
-
Es wird ein Sender zur kontinuierlichen Optimierung der Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen zur Kommunikation zwischen dem Sender in einem Fahrzeug und einem Empfänger bereitgestellt, der Folgendes aufweist:
- - eine Speichereinheit mit einer ersten und einer zweiten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle;
- - eine Komprimierungseinheit zum (i) Empfangen eines Datenblocks und (ii) Komprimieren des Datenblocks in dem Sender unter Verwendung der ersten Tabelle;
- - eine Lerneinheit zum (i) Empfangen des Datenblocks; (ii) Aktualisieren eines Inhalts der zweiten Tabelle unter Verwendung des Datenblocks; (iii) Berechnen einer Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und einer Komprimierungseffizienz der zweiten Tabelle für den Datenblock; und (iv) Ersetzen eines Inhalts der ersten Tabelle durch einen Inhalt der aktualisierten zweiten Tabelle, wenn die Differenz mehr als einen vordefinierten Schwellenwert beträgt; und
- - eine Ausgabeeinheit zum (i) Übertragen des komprimierten Datenblocks zu dem Empfänger und (ii) Übertragen des Inhalts der aktualisierten zweiten Tabelle zu dem Empfänger, wenn die Differenz größer als der vordefinierte Schwellenwert ist.
-
In einer oder mehreren Ausführungsformen des Senders weist der Datenblock Datenentitäten, die in der ersten Tabelle aufgeführt sind, und/oder Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, auf, und wobei der komprimierte Datenblock Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, und/oder Codewörter, die die in der ersten Tabelle aufgeführten Datenentitäten ersetzen, aufweist.
-
Es wird ein System zur kontinuierlichen Optimierung der Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen für die Kommunikation zwischen einem Sender in einem Fahrzeug und einem Empfänger bereitgestellt, das einen Sender gemäß einer der in diesem Dokument beschriebenen Ausführungsformen und einen Empfänger aufweist, wobei der Empfänger Folgendes aufweist:
- - eine Speichereinheit mit einer Kopie der ersten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle;
- - eine Dekomprimierungseinheit zum (i) Empfangen des komprimierten Datenblocks und (ii) Dekomprimieren des empfangenen komprimierten Datenblocks unter Verwendung der Kopie;
- - eine Aktualisierungseinheit zum (i) Empfangen des Inhalts der aktualisierten zweiten Tabelle und (ii) Ersetzen eines Inhalts der Kopie durch den empfangenen Inhalt der aktualisierten zweiten Tabelle.
-
Zusätzlich ist ein Fahrzeug mit einem Sender gemäß einer der in diesem Dokument beschriebenen Ausführungsformen des Senders oder mit einem System gemäß einer der in diesem Dokument beschriebenen Ausführungsformen des Systems ausgestattet.
-
Es versteht sich, dass (i) die Arbeitsweise des Senders, des Systems und/oder des Systems, (ii) die damit verbundenen Vorteile und (iii) weitere Ausführungsformen des Senders, des Systems und/oder des Fahrzeugs gemäß den entsprechenden Verfahrensschritten wie in diesem Dokument beschrieben sind.
-
Figurenliste
-
Für ein vollständigeres Verständnis der vorliegenden Erfindung wird ein Bezug auf die folgende Beschreibung hergestellt, der in Verbindung mit begleitenden Zeichnungen vorgenommen wird, in denen gilt:
- 1 zeigt schematisch einen Sender, einen Empfänger und ein System gemäß einer oder mehreren Ausführungsformen der Erfindung;
- 2 veranschaulicht schematisch ein Fahrzeug gemäß einer oder mehreren Ausführungsformen der Erfindung; und
- 3 veranschaulicht schematisch ein Verfahren gemäß einer oder mehreren Ausführungsformen der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
1 zeigt schematisch einen Sender 110, einen Empfänger 120 und ein System 100 gemäß einer oder mehreren Ausführungsformen der Erfindung. In einer oder mehreren Ausführungsformen kann der Sender 110 eine Speichereinheit 160, eine Komprimierungseinheit 140, eine Lerneinheit 140 und/oder eine Ausgabeeinheit 150 aufweisen. In der Speichereinheit 160 können in einer oder mehreren Ausführungsformen eine erste und eine zweite häufigkeitsbasierte Wörterbuch-Nachschlagetabelle gespeichert sein. Beispiele für solche Tabellen werden unten besprochen.
-
Die Komprimierungseinheit 140 kann zum Empfangen von Datenblöcken eingerichtet sein, beispielsweise von einem Datengenerator unter Verwendung einer Datenkommunikationsleitung 105. Der Datengenerator kann eine Kamera oder ein Sensor sein. Der Sender und der Datengenerator können in einer Vorrichtung kombiniert sein. Die Komprimierungseinheit 140 ist zum Komprimieren der empfangenen Datenblöcke unter Verwendung der ersten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle eingerichtet.
-
Obwohl die Daten durch den Empfänger kontinuierlich empfangen werden können, erfolgt die Komprimierung und Dekomprimierung von Datenblöcken sukzessive. Die Komprimierung und Dekomprimierung kann in Echtzeit erfolgen, was darauf hinweisen kann, dass sowohl der Datengenerator als auch der Datennutzer (z. B. eine CPU, die die dekomprimierten Daten verarbeitet) die Datenblöcke ohne Verzögerung, die durch die Komprimierung und Dekomprimierung verursacht wird, beispielsweise mit einer Rate von 100 Mb/s, erzeugen und/oder empfangen können.
-
In einer oder mehreren Ausführungsformen weist der Datenblock Datenentitäten auf, die in der ersten Tabelle aufgeführt sind, und/oder Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind. Eine Datenentität kann eine Zeichenfolge einer bestimmten Länge sein. Für die Datenentitäten, die in der ersten Tabelle aufgeführt sind, wurde möglicherweise die Häufigkeit ihres Auftretens in vorherigen Datenblöcken sowie ein Codewort ermittelt, das diese bei der Komprimierung ersetzt. Diese Datenentitäten, die nicht in der ersten Tabelle aufgeführt sind, können neue Datenentitäten sein, die nicht in früheren Datenblöcken enthalten waren oder deren Häufigkeit des Auftretens im Vergleich zu anderen Datenentitäten so gering ist, dass das Ersetzen durch ein Codewort die Komprimierungseffizienz nicht verbessert. Daher werden diese Datenentitäten nicht in der ersten Tabelle aufgeführt und nicht komprimiert.
-
Somit kann der komprimierte Datenblock komprimierte Datenentitäten und unkomprimierte Datenentitäten aufweisen. Die unkomprimierten Datenentitäten können mit einer eindeutigen Identifizierung gekennzeichnet sein, sodass der Empfänger 120 oder die Dekomprimierungseinheit 190 nicht versuchen, diese zu dekomprimieren.
-
Die Lerneinheit 140 kann dazu eingerichtet sein, denselben Datenblock zu empfangen und ihn zum Aktualisieren der zweiten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle zu verwenden. Die aktualisierte zweite Tabelle ist für die Komprimierung des empfangenen Datenblocks optimiert. Die Lerneinheit kann die Komprimierungseffizienz der ersten und zweiten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle vergleichen und den Inhalt der ersten Tabelle (die in der Speichereinheit 160 gespeichert sein kann) durch einen Inhalt der aktualisierten zweiten Tabelle (die auch in der Speichereinheit 160 gespeichert sein kann) ersetzen, wenn die Differenz mehr als einen vordefinierten Schwellenwert beträgt.
-
In einer oder mehreren Ausführungsformen kann dieser vordefinierte Schwellenwert eine Verbesserung von 10 % oder 25 % darstellen. In einer oder mehreren Ausführungsformen kann die Lerneinheit 140 dazu eingerichtet sein, den Inhalt der aktualisierten zweiten Tabelle zu der Ausgabeeinheit 150 zu senden.
-
In einer oder mehreren Ausführungsformen wird die Komprimierungseffizienz der ersten und zweiten Tabelle auf Basis von mehr als einem empfangenen Datenblock oder auf Basis der Anzahl empfangener Datenblöcke in einem vordefinierten Zeitraum, beispielsweise 1 Sekunde, bestimmt.
-
Wenn der Inhalt einer Tabelle ersetzt wird, kann die Tabelle nicht zum Komprimieren verwendet werden. Dies wirkt sich negativ auf die Menge der übertragenen Daten pro Zeiteinheit aus. Daher kann in einer oder mehreren Ausführungsformen das Ersetzen des Inhalts der ersten Tabelle durch den Inhalt der aktualisierten zweiten Tabelle wie folgt erfolgen: eine temporale erste häufigkeitsbasierte Wörterbuch-Nachschlagetabelle kann in der Speichereinheit 160 gespeichert werden. Die Lerneinheit 140 ersetzt den Inhalt dieser temporalen ersten Tabelle durch den Inhalt der aktualisierten zweiten Tabelle. Dann ändert (oder umbenennt) die Lerneinheit 140 (i) die temporale erste Tabelle in die erste Tabelle und (ii) die erste Tabelle in die temporale erste Tabelle. Da das Ersetzen des Tabelleninhalts länger dauern kann als das Ändern oder Umbenennen, wird der Zeitraum, in dem die Tabelle zum Komprimieren nicht verfügbar ist, verkürzt.
-
Die Ausgabeeinheit 150 kann zum Übertragen des komprimierten Datenblocks zu dem Empfänger 120 unter Verwendung einer Datenkommunikationsverbindung 115 eingerichtet sein. Diese Datenkommunikationsverbindung kann drahtgebunden oder drahtlos sein und auf einem Ethernet-, WiFi- oder 5G-Standard basieren. Die Ausgabeeinheit 150 kann auch zum Übertragen des Inhalts der aktualisierten zweiten Tabelle zu dem Empfänger 120 eingerichtet sein, wenn die Differenz der Kompressionseffizienz größer als der vordefinierte Schwellenwert ist.
-
In einer oder mehreren Ausführungsformen ist die Ausgabeeinheit 150 ferner dazu eingerichtet, die komprimierten Datenblöcke und den Inhalt der aktualisierten zweiten Tabelle zu kombinieren. Der Inhalt der aktualisierten zweiten Tabelle kann mit einer eindeutigen Identifizierung gekennzeichnet sein, sodass der Empfänger 120 oder die Dekomprimierungseinheit 190 nicht versuchen wird, diese zu dekomprimieren, und die Aktualisierungseinheit 170 wird diese als einen Inhalt der aktualisierten zweiten Tabelle erkennen.
-
In einer oder mehreren Ausführungsformen kann der Empfänger 120 eine Speichereinheit 180 mit einer Kopie der ersten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle, eine Dekomprimierungseinheit 190 und eine Aktualisierungseinheit 170 aufweisen. Die Dekomprimierungseinheit 190 kann eingerichtet sein zum
Empfangen des komprimierten Datenblocks über die Datenkommunikationsverbindung 115 und Dekomprimieren des empfangenen komprimierten Datenblocks unter Verwendung der Kopie der ersten Tabelle, die auf der Speichereinheit 180 gespeichert ist.
-
Die Dekomprimierungseinheit 190 kann ferner zum Übertragen des dekomprimierten Datenblocks unter Verwendung einer Datenkommunikationsverbindung 125 eingerichtet sein, die drahtgebunden oder drahtlos sein kann. Die Verbindung 125 basiert auf einem Ethernet-, einem WiFi- oder einem 5G-Standard. Der über die Verbindung 125 übertragene dekomprimierte Datenblock ist identisch mit dem über die Verbindung 105 empfangenen Datenblock.
-
In einer oder mehreren Ausführungsformen kann die Aktualisierungseinheit 170 dazu eingerichtet sein, den Inhalt der aktualisierten zweiten Tabelle, vorzugsweise über die Verbindung 115, zu empfangen und den Inhalt der Kopie der ersten Tabelle, die auf der Speichereinheit 180 gespeichert ist, durch den empfangenen Inhalt der aktualisierten zweiten Tabelle zu ersetzen.
-
In einer oder mehreren Ausführungsformen kann das Ersetzen des Inhalts der Kopie durch den Inhalt der aktualisierten zweiten Tabelle wie folgt erfolgen: eine temporale Kopie kann in der Speichereinheit 160 gespeichert werden. Die Aktualisierungseinheit 170 ersetzt den Inhalt dieser temporalen Kopie durch den Inhalt der aktualisierten zweiten Tabelle. Dann ändert (oder umbenennt) die Aktualisierungseinheit 170 (i) die temporale Kopie in die Kopie und (ii) die Kopie in die temporale Kopie. Da das Ersetzen des Tabelleninhalts länger dauern kann als das Ändern oder Umbenennen, wird der Zeitraum, in dem die Kopie zum Dekomprimieren nicht verfügbar ist, verkürzt.
-
In 1 ist ein System 100 zur kontinuierlichen Optimierung der Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen für die Kommunikation zwischen dem Sender 110 in einem Fahrzeug und dem Empfänger 120 gemäß einer oder mehreren Ausführungsformen schematisch dargestellt. Der Empfänger 120 kann sich innerhalb oder außerhalb des Fahrzeugs befinden.
-
In 2 ist ein Fahrzeug 200 gemäß einer oder mehreren Ausführungsformen der Erfindung schematisch dargestellt. In einer oder mehreren Ausführungsformen kann das Fahrzeug 200 einen Sender 110 gemäß einer oder mehreren Ausführungsformen, wie in diesem Dokument beschrieben, und/oder einen Empfänger 120 gemäß einer oder mehreren Ausführungsformen, wie in diesem Dokument beschrieben, aufweisen.
-
3 veranschaulicht schematisch ein Verfahren 300 gemäß einer oder mehreren Ausführungsformen der Erfindung. Sie zeigt die folgenden Schritte:
- Schritt 310: Bereitstellen einer ersten und einer zweiten häufigkeitsbasierten Wörterbuch-Nachschlagetabelle in dem Sender;
- Schritt 315: Empfangen eines Datenblocks in dem Sender; Schritt 320: Komprimieren des Datenblocks in dem Sender unter Verwendung der ersten Tabelle;
- Schritt 325: Aktualisieren eines Inhalts der zweiten Tabelle unter Verwendung des Datenblocks und Berechnen einer Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und einer Komprimierungseffizienz der zweiten Tabelle für den Datenblock;
- Schritt 330: Übertragen des komprimierten Datenblocks zu dem Empfänger; und
- Schritt 335: wenn die Differenz mehr als einen vordefinierten Schwellenwert beträgt, Ersetzen eines Inhalts der ersten Tabelle durch einen Inhalt der aktualisierten zweiten Tabelle in dem Sender und Übertragen des Inhalts der aktualisierten zweiten Tabelle zu dem Empfänger.
-
In einer oder mehreren Ausführungsformen kann das Verfahren 300 ferner die folgenden Schritte aufweisen:
- Schritt 340: Bereitstellen einer Kopie der ersten Tabelle in dem Empfänger;
- Schritt 345: Empfangen des komprimierten Datenblocks in dem Empfänger;
- Schritt 350: Dekomprimieren des empfangenen komprimierten Datenblocks in dem Empfänger unter Verwendung der Kopie; Schritt 355: Empfangen des Inhalts der aktualisierten zweiten Tabelle in dem Empfänger; und
- Schritt 360: Ersetzen eines Inhalts der Kopie durch den empfangenen Inhalt der aktualisierten zweiten Tabelle in dem Empfänger.
-
In einer oder mehreren Ausführungsformen kann die Anzahl verschiedener Datenblöcke begrenzt sein, beispielsweise wenn sich die Datenblöcke auf wiederholte Schritte beziehen, oder auf eine Anzahl zwischen einem Minimum und einem Maximum für ein gegebenes System. Beispielsweise: ein die Motordrehzahl führendes CAN-Signal darf nur Werte zwischen 0 und 8000 U/min in Schritten von 10 U/min aufweisen. 2. Oder in einem anderen Beispiel: ein 12-Bit-Analog-Digital-Wandler (ADC) mit einem Eingangsbereich von 0 bis 10 V darf nur einen digitalen Ausgang von 0 bis 4095 in 0,0024 Schritten erzeugen. Da die möglichen Datenwerte im Datenblock fest sind und es sich um kontinuierliche Daten handelt, die einer Normalverteilung entsprechen können, ist eine effektive Datenkomprimierung möglich.
-
Beispielsweise können zwei Datenblöcke in Betracht gezogen werden:
- - Datenblock 1 = {3A 3A B1 26 26 F0 F0 26 17 3A AB AB AB AB AB AB AB AB AB 9C 11} * 50-mal wiederholt; und
- - Datenblock 2 = {3A 3A AB 26 26 F0 F0 26 17 3A B1 B1 B1 B1 B1 B1 B1 B1 B1 9C 11} * 50-mal wiederholt.
-
Jeder Datenblock weist 1050 Datenentitäten auf. In diesem Beispiel wird die Häufigkeit des Auftretens jeder Entität sorgfältig ausgewählt, sodass die am häufigsten auftretende Entität in Datenblock 1 „AB“ und in Datenblock 2 „B1“ ist.
-
Für den Datenblock 1 ist die Wahrscheinlichkeitsverteilung wie folgt
Symbol | Symbolzählwert | Wahrscheinlichkeit |
B1 | 50 | 0,047619048 |
17 | 50 | 0,047619048 |
3A | 250 | 0,238095238 |
26 | 150 | 0,142857143 |
AB | 450 | 0,428571429 |
9C | 50 | 0,047619048 |
11 | 50 | 0,047619048 |
-
Auf Basis der Wahrscheinlichkeitsverteilung kann die folgende häufigkeitsbasierte Wörterbuch-Nachschlagetabelle erzeugt werden:
Symbol | Huffman-Code |
B1 | 00001 |
17 | 00000 |
3A | 01 |
26 | 001 |
AB | 1 |
9C | 00011 |
11 | 00010 |
-
Diese Tabelle kann als die erste Tabelle zum Komprimieren und Dekomprimieren von Datenblöcken verwendet werden. Sie kann für Datenblock 1 optimiert sein. Wenn angenommen wird, dass der Datenblock 2 ein nächster Datenblock ist, der vom Sender empfangen wird, kann die Lerneinheit
140 die folgende Wahrscheinlichkeitsverteilung für den Datenblock 2 erzeugen:
Symbol | Symbol zähl wert | Wahrscheinlichkeit |
B1 | 450 | 0,428571429 |
17 | 50 | 0,047619048 |
3A | 250 | 0,238095238 |
26 | 150 | 0,142857143 |
AB | 50 | 0,047619048 |
9C | 50 | 0,047619048 |
11 | 50 | 0,047619048 |
-
Auf Basis der Wahrscheinlichkeitsverteilung kann die folgende häufigkeitsbasierte Wörterbuch-Nachschlagetabelle erzeugt werden:
Symbol | Huffman-Code |
B1 | 1 |
17 | 00001 |
3A | 01 |
26 | 001 |
AB | 00000 |
9C | 00011 |
11 | 00010 |
-
Diese Tabelle kann als die zweite Tabelle verwendet werden. Die Lerneinheit
140 kann nun eine Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und einer Komprimierungseffizienz der zweiten Tabelle für den Datenblock 2 berechnen:
| erste Tabelle | zweite Tabelle |
Ursprüngliche Datengröße | 1150 Bytes | 1150 Bytes |
Komprimierte Datengröße | 500 Bytes | 300 Bytes |
Komprimierungseffizienz | 56,5 % | 73,9 % |
-
Die berechnete Differenz beträgt 17,4 %. Wenn der vorgegebene Schwellenwert zum Ersetzen des Inhalts der ersten Tabelle durch den Inhalt der zweiten Tabelle 20 % beträgt, wird der Inhalt der ersten Tabelle im Sender (und die Kopie im Empfänger) nicht ersetzt oder aktualisiert.
-
Darüber hinaus können eine oder mehrere Ausführungsformen durch das Folgende beschrieben werden: es wird ein Verfahren zur kontinuierlichen Optimierung der Datenkomprimierung unter Verwendung häufigkeitsbasierter Wörterbuch-Nachschlagetabellen für die Kommunikation zwischen einem Sender in einem Fahrzeug und einem Empfänger bereitgestellt. Das Verfahren weist die folgenden Schritte auf. In einem Sender wird eine erste und eine zweite häufigkeitsbasierte Wörterbuch-Nachschlagetabelle bereitgestellt. Der Sender empfängt einen Datenblock und komprimiert ihn unter Verwendung der ersten Tabelle. Die zweite Tabelle wird unter Verwendung des Datenblocks aktualisiert und eine Differenz zwischen einer Komprimierungseffizienz der ersten Tabelle und einer Komprimierungseffizienz der zweiten Tabelle für den Datenblock wird berechnet. Der komprimierte Datenblock wird zu dem Empfänger übertragen. Wenn die Differenz mehr als einen vordefinierten Schwellenwert beträgt, wird der Inhalt der ersten Tabelle durch den Inhalt der aktualisierten zweiten Tabelle im Sender ersetzt. Der Inhalt der aktualisierten zweiten Tabelle wird dann auch zu dem Empfänger übertragen.
-
Wie ein Fachmann erkennen wird, können Aspekte der vorliegenden Erfindung als ein System, eine Vorrichtung, ein Verfahren oder ein Computerprogrammprodukt umgesetzt sein. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer Ausführungsform vollständig aus Hardware, einer Ausführungsform vollständig aus Software (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardwareaspekte kombiniert, annehmen, die hierin alle allgemein als eine „Einheit“, ein „Modul“, ein „System“, eine „Vorrichtung“ oder ein „Element“ bezeichnet werden können.
-
In diesem Dokument beschriebene Funktionen oder Schritte können als ein durch einen Mikroprozessor eines Computers ausgeführter Algorithmus implementiert werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit darauf umgesetztem, z. B. gespeichertem, computerlesbarem Programmcode umgesetzt ist.
-
Es versteht sich, dass die obige Beschreibung dahingehend aufgenommen ist, die Betriebsweise der bevorzugten Ausführungsformen zu veranschaulichen, und den Schutzumfang der Erfindung nicht beschränken soll. Aus der obigen Erörterung werden dem Fachmann viele Variationen ersichtlich, die noch von dem Schutzumfang der vorliegenden Erfindung einzuschließen sind.