Dieses Projekt führt eine Datenkompressionsanalyse mit Huffman-Codierung von Prädiktorabweichungen auf ereignisbasierten Sensordaten durch und visualisiert die benötigte Bandbreite für die Übertragung dieser Daten. Die entsprechenden Annahmen und Auswertungen finden sich in meiner Bachelorthesis wieder.
Diese Datei führt die Hauptanalyse der Datenkompression durch. Die wichtigsten Schritte sind:
- Daten einlesen: Liest Ereignisdaten aus einer HDF5-Datei.
- Rauschen hinzufügen: Fügt den Daten basierend auf angegebenen Genauigkeiten Rauschen hinzu.
- RMSE berechnen: Berechnet den Root Mean Square Error (RMSE) für x, y und Zeit.
- Huffman-Codierung: Codiert die Delta-Werte von x, y und Zeit mit Huffman-Codierung.
- Kompressionsraten berechnen: Berechnet Kompressionsraten für verschiedene Genauigkeiten.
- Ergebnisse visualisieren: Stellt die Kompressionsraten gegen die Genauigkeiten grafisch dar.
Das Programm erstellt und speichert Plots, die die Kompressionsraten in Abhängigkeit von der Genauigkeit zeigen.
Die von Model.py
erzeugten .png
Dateien sind:
compression_rate_vs_accuracy.png
: Zeigt die Kompressionsraten in Abhängigkeit von der Genauigkeit.compression_rate_vs_accuracy_transparent
: Zeigt das gleiche wie compression_rate_vs_accuracy.png nur mit transparentem Hintergrund
Diese Plots helfen dabei, die Effizienz der Huffman-Codierung und den Einfluss der Genauigkeit auf die Kompressionsrate und den Fehler zu visualisieren.
Diese Datei visualisiert die benötigte Bandbreite für die Übertragung von Ereignisdaten und vergleicht verschiedene Komprimierungsmethoden. Die wichtigsten Schritte sind:
- Daten einlesen: Liest Ereignisdaten aus einer HDF5-Datei.
- SEP (Same Event Prediction) durchführen Hierbei wird die Differenz zum nächsten Event genommen und als ∆E gespeichert. Annahme: Das nächste Event tritt an der gleichen Stelle auf.
- Huffman-Codierung: Führt eine Huffman-Codierung auf den Same Event Prediction ∆E Daten durch.
- Bitraten berechnen: Berechnet die Bitrate für verschiedene Komprimierungsmethoden.
- Animation erstellen: Erstellt eine Animation der Bitraten über die Zeit.
- Huffman-Baum visualisieren: Visualisiert den Huffman-Baum basierend auf den gegebenen Codes.
Das Programm erstellt und speichert Plots und Animationen, die die Bitraten der verschiedenen Komprimierungsmethoden über die Zeit darstellen.
Die von BoundedBitRate Animated.py
erzeugten Dateien sind:
bitrate_plot.png
: Zeigt die Bitraten der verschiedenen Komprimierungsmethoden.bitrate_plot_transparent.png
: Zeigt das gleiche wie bitrate_plot.png nur mit transparentem Hintergrund.bitrate_animation.mp4
: Zeigt eine Animation der Bitraten über die Zeit
Diese Dateien helfen dabei, die Effizienz der verschiedenen Komprimierungsmethoden und deren Einfluss auf die benötigte Bandbreite zu visualisieren.
- Python 3.x
- h5py
- matplotlib
- numpy
- scipy
- pandas
- graphviz
Um die Skripte auszuführen, stellen Sie sicher, dass alle Abhängigkeiten installiert sind und führen Sie die Skripte, je nachdem was sie erzeugen wollen aus:
Model.py
BoundedBitRate Animated.py
Die Ergebnisse werden als Plots und Animationen im aktuellen Verzeichnis gespeichert.
Für die Ausführung der Skripte sind spezifische Datensätze erforderlich:
- Für
BoundedBitRate Animated.py
wird die Dateidriving_sample.hdf5
von Prophesee benötigt, die hier zu finden ist: driving_sample.hdf5. - Für
Model.py
wird die Dateirec1487857941.hdf5
des DDD20-Datensatzes benötigt (sofern man die Grafik aus dem der Bachelorthesis rekonstruieren möchte), die mit den DDD20-Utils von GitHub exportiert wurde. Es können jedoch auch alle anderen Datensätze aus dem DDD20-Datensatz verwendet werden.