handy-interface und datenkomprimierung für sensorknoten · 2009-08-03 · hussein hammoud institut...

45
Handy- Interface und Datenkom- pression H. Hammoud Sensornetzwerk Handy- Interface Sensor Interface Dienste Daten- kompression Arith. Kodierung Implementierung Range Coder Testergebnisse Kompressions- raten Zeitaufwand Handy-Interface und Datenkomprimierung f¨ ur Sensorknoten Hussein Hammoud Institut f¨ ur Energie- und Automatisierungstechnik Fachgebiet Elektronische Mess- und Diagnosetechnik Technische Universit¨ at Berlin 02. M¨ arz 2009 H. Hammoud Handy-Interface und Datenkompression 02. M¨ arz 2009 1 / 38

Upload: others

Post on 27-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Handy-Interface und Datenkomprimierung fürSensorknoten

    Hussein Hammoud

    Institut für Energie- und AutomatisierungstechnikFachgebiet Elektronische Mess- und Diagnosetechnik

    Technische Universität Berlin

    02. März 2009

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 1 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Inhaltsverzeichnis

    1 Sensornetzwerk

    2 Handy-InterfaceSensorInterfaceDienste

    3 DatenkompressionArithmetische KodierungImplementierungRange Coder

    4 TestergebnisseKompressionsratenZeitaufwand

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 2 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Was ist ein Sensornetzwerk?

    Relativ junges Gebiet der eingebetteten Systeme

    Ein drahtloses, mobiles Ad-hoc-Netzwerk

    Ressourcenarme, autonom agierende Sensorknoten

    Sensorknoten arbeiten gemeinsam an der Lösung einerkomplexen Aufgabe

    Einsatzbereiche: Militär, Medizin, Katastrophenschutz u.v.m

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 3 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Eine Auswahl an Sensorknoten

    Berkeley Mote

    Eco

    MicaZ

    Mica2

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 4 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Spisa-Sensor

    Spisa-Sensor: Sensor für intelligente Signalverarbeitung

    16 Bit Signalcontroller dsPIC30F4013

    2 KB RAM, 48 KB Flash-Speicher

    30 MHz Taktfrequenz

    Kamera-Modul C328-7640

    Bluetooth-Modul BlueNiceCom4

    SD-Speicherkarte

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 5 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Handy-Interface

    Zweck

    Zugang zu den Diensten des Spisa-Sensors

    Etwas genauer...

    Zugriff auf die SD-Karte

    Zugriff auf den Software-Datenstack

    Kamera-Ansteuerung/Aufnahme von Standbildern

    Datenkompression

    Kommunikation?

    Kommunikation über eine virtuelle serielle Verbindung mittelsBluetooth-Serial Port Profile (SPP)

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 6 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Dienste für SD-Karte

    Zugriff auf die SD-Karte als dauerhaftes Speichermedium des Sensors:

    Befehl Beschreibunginit Karte initialisierendir Auflistung aller gespeicherten Dateien

    load Datei vom Handy auf Sensor übertragensave Datei vom Sensor auf Handy übertragenfind Suche von Dateien auf der Karte

    remove Löschen von Dateien auf der Karteclear Karte formatieren

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 7 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Dienste für Datenstack

    Zugriff auf den Software-Datenstack für temporäre Zwischen-speicherung von Daten:

    Befehl Beschreibungstack Auflistung aller Stack-Elementefirst Anzeige des obersten Elementsload Datei vom Handy auf Stack schreibensave Oberstes Element auf Handy übertragen

    delete Oberstes Element löschenkill Alle Stack-Elemente löschen

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 8 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Dienste für Kamera

    Zugriff auf die angebrachte Kamera:

    Befehl Beschreibunginit Kamera initialisieren

    getpic Bild aufnehmen und auf SD-Karte speichern—loadpic Bild direkt an Handy übertragen

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 9 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Dienste für Datenkompression

    Durchführung von Datenkompression auf Handy und Sensor:

    Befehl Beschreibung- Datei auf Handy komprimieren- Datei auf Handy dekomprimieren

    encode Datei auf Sensor komprimierendecode Datei auf Sensor dekomprimieren

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 10 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Datenkompression auf dem Sensor

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 11 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Arithmetische Kodierung

    Wesentliche Eigenschaften des Verfahrens:

    Verlustfreie Kompression

    Statistisches Verfahren

    (De-)Kodierung mit Hilfe einfacher arithmetischer Operationen

    Keine feste Zuordnung von Eingangssymbolen zu Codewörtern

    Kodierung von Symbolen mit unganzzahliger Bitanzahl

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 12 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Kodierer......Prinzip der Intervall-Reduzierung

    Nachricht: SpisaAlphabet: A = {a, i, p, s}

    Symbol Wahrsch. Bereicha 1/5 0.0 - 0.2i 1/5 0.2 - 0.4p 1/5 0.4 - 0.6s 2/5 0.6 - 1.0

    —-

    Endintervall [0.7856, 0.78688)

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 13 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Dekodierer......Simulation der Arbeitsschritte des Kodierers

    Zahl : 0.7856Alphabet: A = {a, i, p, s}

    Symbol Wahrsch. Bereicha 1/5 0.0 - 0.2i 1/5 0.2 - 0.4p 1/5 0.4 - 0.6s 2/5 0.6 - 1.0

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 14 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ressourceneinschränkungen

    - Sensor verfügt nur über 2 KByte Datenspeicher (RAM)- Quell-/Zieldatei können nicht in Datenspeicher gehalten werden- Benutzung zweier 256 Bytes Buffer für Eingangs-/Ausgabedaten- Verfahren mit adaptivem Datenmodell: ca. 6 KByte groß und– 328 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 15 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Range Coder

    Eine Variation des Verfahrens der arithmetischen Kodierung

    Modifikation betrifft einen implementierungstechnischen Aspektund nicht das Verfahren als solches

    Verfahren arbeitet nun Byte- und nicht länger Bit-orientiert

    Zeitaufwand kann dadurch stark reduziert werden

    Verfahren mit adaptivem Datenmodell: ca. 5 KByte groß und312 Byte RAM-Verbrauch

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 16 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Vergleich der Kompressionsraten

    Unterschiede so minimal, dass beide Verfahren hinsichtlich erzielterKompressionsraten praktisch gleichwertig sind

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 17 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Vergleich der Komprimierungszeiten (1)

    Mit Range Coder wird der Zeitaufwand für die Komprimierung einerDatei um durchschnittlich 16,5 % reduziert

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 18 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Vergleich der Komprimierungszeiten (2)

    Exemplarische Messwerte (AC: Arith. Kodierung, RC : Range Coder)

    Datei Größe[byte] Inhalt Ausgabe[byte] Zeit[sek]progc 39611 Quellcode RC: 26392 (66%) RC: 2,91progc 36911 Quellcode AC: 26391 (66%) AC: 3,17obj2 246814 Objektdatei RC: 181892 (73%) RC: 18,39obj2 246814 Objektdatei AC: 181889 (73%) AC: 21,23book1 768771 Text RC: 456490 (59%) RC: 52,80book1 768771 Text AC: 456486 (59%) AC: 60,17

    ... Video zur Kompression derDatei OBJ2 auf dem Sensor

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 19 / 38

    ac_coding.aviMedia File (video/avi)

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Vergleich der Dekomprimierungszeiten

    Mit Range Coder wird der Zeitaufwand für die Dekomprimierungeiner Datei um durchschnittlich 72 % reduziert

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 20 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ein-/Ausgabezeiten

    - Beob. 1: Ein-/Ausgabezeiten stellen einen beachtlichen- Anteil an Anteil an dem Gesamt-Zeitaufwand dar- Beob. 2: Zugriffszeiten variieren stark je nach Größe der SD-Karte

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 21 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Ende

    Vielen Dank für IhreAufmerksamkeit

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 22 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Klassendiagramm Handy-Interface

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 23 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Zustandsdiagramm Handy-Interface

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 24 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Arbeitsschritte des Kodierers (AC)

    - Nachricht wird durch eine reelle Zahl aus dem Intervall- [0, 1) := {x ∈ R|0 ≤ x < 1} kodiert- Intervall wird mit fortschreitender Kodierung immer weiter- eingeschränkt

    1: while weitere Symbole noch zu verarbeiten do2: Wahrscheinlichkeitsvert. der Symbole des verwendeten Alphabets

    vom Datenmodell abfragen3: Intervall in Abhäng. von (2) in Teilbereiche aufteilen und diese den

    Symbolen zuordnen4: Kodierung eines Symbols Si durch Reduzierung des Intervalls auf

    den korrespond. Teilbereich von Si5: Ggf. adaptives Datenmodell für Si aktualisieren6: end while

    7: return Wert aus Endintervall [low , high)

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 25 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Arbeitsschritte des Dekodierers (AC)

    - Beliebiger Wert aus dem Endintervall des Kodiervorgangs als–Eingabe (Zahl)- Simulierung der Arbeitsschritte des Kodierers

    Require: Zahl ∈ [low , high)1: repeat2: Wahrscheinlichkeitsvert. der Symbole des verwendeten Alphabets

    vom Datenmodell abfragen3: Intervall in Abhäng. von (2) in Teilbereiche aufteilen und diese den

    Symbolen zuordnen4: Überprüfen, in welchen Teilbereich des Intervalls Zahl liegt5: Ausgabe des dem betreffenden Teilbereich zugeordneten Symbols Si6: Reduzierung des Intervalls auf den korrespond. Teilbereich von Si7: Ggf. adaptives Datenmodell für Si aktualisieren8: until EOF-Symbol wird detektiert

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 26 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Umstieg auf Integer-Arith.(AC)

    Änderungen zwecks Implementierung:

    Intervall [0, 1) ⇒ [0, RANGE), RANGE ∈ N

    Kumulative Häufigkeiten zur Darstellung der Auftretens-wahrscheinlichkeiten. Für Symbol Si gilt, Si symbLeft =

    ∑i−1k=0 ck

    bzw. Si symbRight =∑i

    k=0 ck , Sk ≤ Si

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 27 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Intervall-Reduzierungs-Problematik (AC)

    Problem: Reduzierung des Intervalls nicht beliebig oft möglich

    Forderung: Es muss immer gelten stepSize = (high− low)/total > 0Lösung: Intervall-Vergrößerung ⇒ Skalierung

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 28 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungstypen (AC)

    - Definition dreier Hilfs-Intervalle

    - Aktuelles Intervall [low, high) ⊆ [0, RANGE)

    Typ III: [low, high) ⊆ Subintervall 1: MSB low = MSBhigh = 0

    Typ III: [low, high) ⊆ Subintervall 2: MSB low = MSBhigh = 1

    Typ III: [low, high) ⊆ Subintervall 3: MSB low 6= MSBhigh

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 29 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode I (AC)

    Für Skalierungstyp I:

    while(high < HALF){writeBit(0);low = 2 * low;high = 2 * high;

    }

    Multiplikation mit 2 entspricht Verschiebung der Variablen um 1Stelle nach links

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 30 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode II (AC)

    Für Skalierungstyp II:

    while(low >= HALF){writeBit(1);low = 2 * (low-HALF);high = 2 * (high-HALF);

    }

    Multiplikation mit 2 entspricht Verschiebung der Variablen um 1Stelle nach links

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 31 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode III (AC)

    Für Skalierungstyp III:

    while( (low >= 1stQUARTER)&& (high < 3rdQUARTER) )

    {low = 2*(low-1stQUARTER);high = 2*(high-1stQUARTER);count++;

    }

    Multiplikation mit 2 entspricht Verschiebung der Variablen um 1Stelle nach links

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 32 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode III (AC)

    - Anders als für Subintervall 1,2 gilt, MSB low 6= MSBhigh- Ausgabe also verzögern, bis [low, high) ⊆ Subintervall 1,2- Dann count inverse Bits ausgeben

    Ergänzung der Skalierungsmethoden I,II:

    while(high < HALF) while(low >= HALF){ {writeBit(0); writeBit(1);low = 2 * low; low = 2 * (low-HALF);high = 2 * high; high = 2 * (high-HALF);

    for(; count>0; count--) for(; count>0; count--)writeBit(1); writeBit(0);

    } }

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 33 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethoden des Dekodierers(AC)

    Analog zu denen des Kodierers, nur dass anstatt der bitweisenDatenausgabe bitweises Einlesen der kodierten Nachrichtdurchgeführt wird: Hier also auch inkrementelle Dekodierung.

    Beispiel Skalierungstyp I:

    while(high < HALF) while(high < HALF){ {writeBit(0); number = (2*number) + readBit();low = 2 * low; ---> low = 2 * low;high = 2 * high; high = 2 * high;} }

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 34 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Die Variable low (RC)

    Logische Unterteilung der Variable low (kodierte Zahl)

    carry-Bit: Für die (Früh-)Erkennung eines Übertrags beiNeuberechnung von low

    Skalierungs-Byte: Teil der kodierten Zahl für inkrementelle(De-)Kodierung

    restliche Bits: Die restlichen Bits der kodierten Zahl

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 35 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode des Kodierers (RC)

    Prinzip:- Mit Bitbreite w und b ≤ w − 1 muss immer gelten:

    2b−8 < range ≤ 2b (1)0 ≤ low < 2b (2)

    - Aktual. von low : low+ = ((range/total) ∗ symbLeft)

    - Wenn range die Untergrenze der Gleichung (1) unterschreitet, wird– das Skalierungs-Byte der Variablen low bei Neuberechnungen nicht– mehr verändert ⇒ Skalierungs-Byte ausgeben und Intervall- entsprechend vergrößern.

    - In Abhängigkeit des carry-Bits und des Skalierungs-Bytes-Wertes- werden unterschiedliche Aktionen durchgeführt...

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 36 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode des Kodierers (RC)

    Ablaufplan:

    H. Hammoud Handy-Interface und Datenkompression 02. März 2009 37 / 38

  • Handy-Interface undDatenkom-

    pression

    H. Hammoud

    Sensornetzwerk

    Handy-Interface

    Sensor

    Interface

    Dienste

    Daten-kompression

    Arith.Kodierung

    Implementierung

    Range Coder

    Testergebnisse

    Kompressions-raten

    Zeitaufwand

    Anhang: Skalierungsmethode des Dekodierers (RC)

    Analog zur arithmetischen Kodierung simuliert der Dekodierer dieArbeitsschritte des Kodierers. Anstatt der byteweisen Datenausgabewird nun byteweises Einlesen der kodierten Nachricht durchgeführt.Hier also auch inkrementelle Dekodierung.

    while(range