Handy-Interface und Datenkomprimierung für Sensorknoten · 2009-08-03 · Hussein Hammoud Institut...
Transcript of Handy-Interface und Datenkomprimierung für Sensorknoten · 2009-08-03 · Hussein Hammoud Institut...
-
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